Merge pull request #6 from tonn/patch-1

Fix injection in case if there is no style-element
This commit is contained in:
Adam LaCombe 2020-06-11 23:10:26 +08:00 committed by GitHub
commit a4cf9d9c33
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,19 +1,13 @@
export function injectStyles( export function injectStyles(shadowRootElement: HTMLElement, insertBeforeSelector: string, styles: string) {
shadowRootElement: HTMLElement,
insertBeforeSelector: string,
styles: string
) {
const root = shadowRootElement.shadowRoot; const root = shadowRootElement.shadowRoot;
let styleAlreadyAdded = false;
const currentStyleTags = Array.from(root.querySelectorAll('style')); if (root !== null) {
currentStyleTags.forEach((element: HTMLStyleElement, index) => { const styleElements = root.querySelectorAll('style');
if (element.innerHTML === styles) {
styleAlreadyAdded = true; if (!Array.from(styleElements).some(el => el.innerHTML === styles)) {
}
if (currentStyleTags.length - 1 === index && styleAlreadyAdded === false) {
const newStyleTag = document.createElement('style'); const newStyleTag = document.createElement('style');
newStyleTag.innerHTML = styles; newStyleTag.innerHTML = styles;
root.insertBefore(newStyleTag, root.querySelector(insertBeforeSelector)); root.insertBefore(newStyleTag, root.querySelector(insertBeforeSelector));
} }
}); }
} }