Skip to content

Commit 5150ceb

Browse files
committed
Added observeTree method
1 parent 0ca243b commit 5150ceb

File tree

8 files changed

+82
-5
lines changed

8 files changed

+82
-5
lines changed

dist/assembler.cjs.js

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/assembler.es.js

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/assembler.js

Lines changed: 32 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/assembler.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@asmcss/assembler",
3-
"version": "0.7.0",
3+
"version": "0.7.1",
44
"main": "dist/assembler.cjs.js",
55
"module": "dist/assembler.es.js",
66
"browser": "dist/assembler.js",

src/index.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*/
1616

1717
import {generateStyles} from "./generators";
18-
import {observeDocument, observeShadow} from "./observers";
18+
import {observeDocument, observeShadow, observeTree} from "./observers";
1919
import {getUserSettings} from "./helpers";
2020
import {generateRootVariables} from "./variables";
2121
import StyleHandler from "./StyleHandler";
@@ -86,6 +86,12 @@ export function init(options?: {[key: string]: string}): boolean {
8686

8787
observeDocument(document, styleHandler);
8888

89+
if (window) {
90+
window.addEventListener('DOMContentLoaded', function () {
91+
observeTree(document.body, styleHandler);
92+
});
93+
}
94+
8995
return true;
9096
}
9197

src/observers.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,16 @@ let _elementObserver:MutationObserver = null;
2121
let _shadowRootObserver:MutationObserver = null;
2222
const observedElements = new WeakMap<HTMLElement, any[]>();
2323

24+
export function observeTree(element: HTMLElement, handler: StyleHandler): void {
25+
for (let e = element; e != null; e = e.nextElementSibling as HTMLElement) {
26+
if (!observedElements.has(e)) {
27+
observe(e, handler);
28+
} else {
29+
observeTree(e.firstElementChild as HTMLElement, handler);
30+
}
31+
}
32+
}
33+
2434
export function observeDocument(document: Document, handler: StyleHandler): void {
2535
if (_documentObserver === null) {
2636
_documentObserver = new MutationObserver(function (mutations: MutationRecord[]): void {

types/observers.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
import StyleHandler from "./StyleHandler";
2+
export declare function observeTree(element: HTMLElement, handler: StyleHandler): void;
23
export declare function observeDocument(document: Document, handler: StyleHandler): void;
34
export declare function observeShadow(shadow: ShadowRoot, handler: StyleHandler): void;

0 commit comments

Comments
 (0)