From 8339f5447e77ab9173513ed007f377a701f7b1ca Mon Sep 17 00:00:00 2001
From: Volker Schukai <volker.schukai@schukai.com>
Date: Mon, 20 Jan 2025 23:26:36 +0100
Subject: [PATCH] fix: update resizeobserver

---
 source/components/content/copy.mjs              | 15 ++++++++++++++-
 .../components/datatable/filter/date-range.mjs  | 13 ++++++++++++-
 source/components/form/button-bar.mjs           | 17 +++++++++++++++--
 source/components/form/popper-button.mjs        | 15 ++++++++++++++-
 source/components/form/select.mjs               | 15 ++++++++++++++-
 source/components/layout/popper.mjs             | 15 ++++++++++++++-
 6 files changed, 83 insertions(+), 7 deletions(-)

diff --git a/source/components/content/copy.mjs b/source/components/content/copy.mjs
index 6ee6bc632..0f522cf64 100644
--- a/source/components/content/copy.mjs
+++ b/source/components/content/copy.mjs
@@ -267,7 +267,20 @@ function attachResizeObserver() {
 		});
 	});
 
-	this[resizeObserverSymbol].observe(this.parentElement);
+	requestAnimationFrame(() => {
+
+		let parent = this.parentNode;
+		while(!(parent instanceof HTMLElement) && parent !== null) {
+			parent = parent.parentNode;
+		}
+
+		if (parent instanceof HTMLElement) {
+			this[resizeObserverSymbol].observe(parent);
+		}
+
+
+	});
+
 }
 
 /**
diff --git a/source/components/datatable/filter/date-range.mjs b/source/components/datatable/filter/date-range.mjs
index 311421494..d18921d45 100644
--- a/source/components/datatable/filter/date-range.mjs
+++ b/source/components/datatable/filter/date-range.mjs
@@ -689,7 +689,18 @@ function attachResizeObserver() {
 		});
 	});
 
-	this[resizeObserverSymbol].observe(this.parentElement);
+	requestAnimationFrame(() => {
+
+		let parent = this.parentNode;
+		while(!(parent instanceof HTMLElement) && parent !== null) {
+			parent = parent.parentNode;
+		}
+
+		if (parent instanceof HTMLElement) {
+			this[resizeObserverSymbol].observe(parent);
+		}
+	});
+
 }
 
 function disconnectResizeObserver() {
diff --git a/source/components/form/button-bar.mjs b/source/components/form/button-bar.mjs
index 1ff6671bd..ee78be148 100644
--- a/source/components/form/button-bar.mjs
+++ b/source/components/form/button-bar.mjs
@@ -567,8 +567,21 @@ function updateResizeObserverObservation() {
 		this[resizeObserverSymbol].observe(node);
 	});
 
-	if (this.parentElement === null) return;
-	this[resizeObserverSymbol].observe(this.parentElement);
+	requestAnimationFrame(() => {
+
+		let parent = this.parentNode;
+		while(!(parent instanceof HTMLElement) && parent !== null) {
+			parent = parent.parentNode;
+		}
+
+		if (parent instanceof HTMLElement) {
+			this[resizeObserverSymbol].observe(parent);
+		}
+
+
+	});
+
+
 }
 
 /**
diff --git a/source/components/form/popper-button.mjs b/source/components/form/popper-button.mjs
index 05a38566a..52d8f8979 100644
--- a/source/components/form/popper-button.mjs
+++ b/source/components/form/popper-button.mjs
@@ -345,7 +345,20 @@ function attachResizeObserver() {
 		});
 	});
 
-	this[resizeObserverSymbol].observe(this.parentElement);
+	requestAnimationFrame(() => {
+
+		let parent = this.parentNode;
+		while(!(parent instanceof HTMLElement) && parent !== null) {
+			parent = parent.parentNode;
+		}
+
+		if (parent instanceof HTMLElement) {
+			this[resizeObserverSymbol].observe(parent);
+		}
+
+
+	});
+
 }
 
 function disconnectResizeObserver() {
diff --git a/source/components/form/select.mjs b/source/components/form/select.mjs
index c77c1f539..4473fdac0 100644
--- a/source/components/form/select.mjs
+++ b/source/components/form/select.mjs
@@ -1097,7 +1097,20 @@ function attachResizeObserver() {
 		});
 	});
 
-	this[resizeObserverSymbol].observe(this.parentElement);
+	requestAnimationFrame(() => {
+
+		let parent = this.parentNode;
+		while(!(parent instanceof HTMLElement) && parent !== null) {
+			parent = parent.parentNode;
+		}
+
+		if (parent instanceof HTMLElement) {
+			this[resizeObserverSymbol].observe(parent);
+		}
+
+
+	});
+
 }
 
 /**
diff --git a/source/components/layout/popper.mjs b/source/components/layout/popper.mjs
index 657c77adf..e90b41b26 100644
--- a/source/components/layout/popper.mjs
+++ b/source/components/layout/popper.mjs
@@ -357,7 +357,20 @@ function attachResizeObserver() {
 		});
 	});
 
-	this[resizeObserverSymbol].observe(this.parentElement);
+	requestAnimationFrame(() => {
+
+		let parent = this.parentNode;
+		while(!(parent instanceof HTMLElement) && parent !== null) {
+			parent = parent.parentNode;
+		}
+
+		if (parent instanceof HTMLElement) {
+			this[resizeObserverSymbol].observe(parent);
+		}
+
+
+	});
+
 }
 
 function disconnectResizeObserver() {
-- 
GitLab