From 2ca1fe379b916c1dd0943033e046f7dfd08da3af Mon Sep 17 00:00:00 2001 From: Patrizio Bekerle <patrizio.bekerle@tugraz.at> Date: Tue, 15 Jun 2021 09:44:12 +0200 Subject: [PATCH] Add querySlotted function --- packages/common/package.json | 2 +- packages/common/utils.js | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/packages/common/package.json b/packages/common/package.json index ceda0d26..cef9b7e0 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -1,7 +1,7 @@ { "name": "@dbp-toolkit/common", "homepage": "https://gitlab.tugraz.at/dbp/web-components/toolkit/-/tree/master/packages/common", - "version": "0.2.5", + "version": "0.2.6", "module": "index.js", "license": "LGPL-2.1-or-later", "repository": { diff --git a/packages/common/utils.js b/packages/common/utils.js index 64f7b396..5fb9d93b 100644 --- a/packages/common/utils.js +++ b/packages/common/utils.js @@ -335,3 +335,23 @@ export const getBaseName = (str) => { export const getFileExtension = (str) => { return str.split('.').pop(); }; + +/** + * Queries for "selector" in "root" in the slot html + * + * @param root + * @param selector + * @returns {*[]} + */ +export const querySlotted = (root, selector) => { + let slots = root.querySelectorAll('slot'); + let matched = []; + + slots.forEach((slot) => { + matched = matched.concat(slot.assignedElements().filter((el) => { + return el.matches(selector); + })); + }); + + return matched; +}; -- GitLab