From a156db845ac39b252aa9ca15604945298f61816b Mon Sep 17 00:00:00 2001 From: STEINNI Date: Sat, 28 Feb 2026 20:55:44 +0000 Subject: [PATCH] graflow split tests + fixed height bug + fixed subflow reenter loses style --- app/assets/html/test.html | 184 +--------------------------- app/assets/html/test1.html | 92 ++++++++++++++ app/assets/html/test2.html | 92 ++++++++++++++ app/assets/html/test3.html | 90 ++++++++++++++ app/assets/html/test4.html | 91 ++++++++++++++ app/thirdparty/buildoz/bzGraflow.js | 24 +++- 6 files changed, 389 insertions(+), 184 deletions(-) create mode 100644 app/assets/html/test1.html create mode 100644 app/assets/html/test2.html create mode 100644 app/assets/html/test3.html create mode 100644 app/assets/html/test4.html diff --git a/app/assets/html/test.html b/app/assets/html/test.html index 87fdd24..0438f5e 100644 --- a/app/assets/html/test.html +++ b/app/assets/html/test.html @@ -4,186 +4,14 @@ graflow - - - - - - - -
- - - -
-
-
- - -
- - - -
-
-
- - -
- - - -
-
-
- - - -
- - - -
-
-
- + diff --git a/app/assets/html/test1.html b/app/assets/html/test1.html new file mode 100644 index 0000000..d2137a1 --- /dev/null +++ b/app/assets/html/test1.html @@ -0,0 +1,92 @@ + + + + graflow + + + + + + + + + + + + +
+ + + +
+
+
+ + + diff --git a/app/assets/html/test2.html b/app/assets/html/test2.html new file mode 100644 index 0000000..f15230f --- /dev/null +++ b/app/assets/html/test2.html @@ -0,0 +1,92 @@ + + + + graflow + + + + + + + + + + + + +
+ + + +
+
+
+ + + diff --git a/app/assets/html/test3.html b/app/assets/html/test3.html new file mode 100644 index 0000000..ed1bf0f --- /dev/null +++ b/app/assets/html/test3.html @@ -0,0 +1,90 @@ + + + + graflow + + + + + + + + + + + + +
+ + + +
+
+
+ + diff --git a/app/assets/html/test4.html b/app/assets/html/test4.html new file mode 100644 index 0000000..c0c5014 --- /dev/null +++ b/app/assets/html/test4.html @@ -0,0 +1,91 @@ + + + + graflow + + + + + + + + + + + + +
+ + + +
+
+
+ + diff --git a/app/thirdparty/buildoz/bzGraflow.js b/app/thirdparty/buildoz/bzGraflow.js index 3c06e67..b7f7176 100644 --- a/app/thirdparty/buildoz/bzGraflow.js +++ b/app/thirdparty/buildoz/bzGraflow.js @@ -143,18 +143,27 @@ class BZgraflow extends Buildoz{ } } - // Now load styles (once) + // Now load styles const isIsolated = this.hasAttribute('isolated') - if(isIsolated || !BZgraflow._loadedNodeStyles.has(url)) { - const styles = doc.querySelectorAll('style') + const styles = doc.querySelectorAll('style') + if(isIsolated) { + // Shadow DOM: styles are per-instance styles.forEach(styleEl => { const style = document.createElement('style') style.textContent = styleEl.textContent this.mainContainer.appendChild(style) }) - // In non-isolated (light DOM) mode, styles apply globally so we can de-dupe across instances. - // In isolated (shadow DOM) mode, styles must be injected per instance. - if(!isIsolated) BZgraflow._loadedNodeStyles.add(url) + } else { + // Light DOM: inject into document.head once per nodesFile url + if(!BZgraflow._loadedNodeStyles.has(url)) { + styles.forEach(styleEl => { + const style = document.createElement('style') + style.textContent = styleEl.textContent + style.dataset.bzgfNodesStyle = url + document.head.appendChild(style) + }) + BZgraflow._loadedNodeStyles.add(url) + } } this.dispatchEvent(new CustomEvent('nodesLoaded', { detail: { url }, @@ -302,6 +311,9 @@ class BZgraflow extends Buildoz{ if(pos === 'static') oldEl.style.position = 'relative' newEl.style.position = 'absolute' newEl.style.inset = '0' + // Override bz-graflow's default width/height (100vw/50vh) when used as an embedded overlay + newEl.style.width = '100%' + newEl.style.height = '100%' newEl.style.display = 'block' oldEl.appendChild(newEl) }