diff --git a/packages/common/package.json b/packages/common/package.json index ceda0d26c396344b3e180e3df8a01d8ec81e07f6..cef9b7e0582c7a350fda633e1badbbf18e4b54c0 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 64f7b396b9cd77d269b04d5cffc9fcd5d82a119b..5fb9d93b2b0870ee6f9c238218621a5edd4d5bc1 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; +};