@cqa-lib/cqa-ui 1.0.52 → 1.0.53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/utils/tw-overlay-container.mjs +40 -15
- package/fesm2015/cqa-lib-cqa-ui.mjs +39 -14
- package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
- package/fesm2020/cqa-lib-cqa-ui.mjs +39 -14
- package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
- package/lib/utils/tw-overlay-container.d.ts +1 -0
- package/package.json +1 -1
|
@@ -43,34 +43,59 @@ export class TailwindOverlayContainer extends OverlayContainer {
|
|
|
43
43
|
// Also check immediately in case overlays already exist
|
|
44
44
|
requestAnimationFrame(() => this.updateContainerClass());
|
|
45
45
|
}
|
|
46
|
+
isElementVisible(element) {
|
|
47
|
+
const style = window.getComputedStyle(element);
|
|
48
|
+
// Check if element is visible (not display: none, not opacity: 0, not visibility: hidden)
|
|
49
|
+
const isDisplayed = style.display !== 'none';
|
|
50
|
+
const isOpaque = parseFloat(style.opacity) > 0.01; // Allow for very small opacity values during animations
|
|
51
|
+
const isVisible = style.visibility !== 'hidden';
|
|
52
|
+
// Also check if element has dimensions (width/height > 0)
|
|
53
|
+
const rect = element.getBoundingClientRect();
|
|
54
|
+
const hasSize = rect.width > 0 && rect.height > 0;
|
|
55
|
+
return isDisplayed && isOpaque && isVisible && hasSize;
|
|
56
|
+
}
|
|
46
57
|
updateContainerClass() {
|
|
47
58
|
if (!this._containerElement)
|
|
48
59
|
return;
|
|
49
60
|
// Count library overlays (dialogs, select panels, datepicker panels)
|
|
50
|
-
//
|
|
51
|
-
//
|
|
52
|
-
const libraryDialogs = this._containerElement.querySelectorAll('.cqa-dialog-panel')
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
const
|
|
56
|
-
const
|
|
61
|
+
// Only count overlays that are actually visible/active (not hidden or closing)
|
|
62
|
+
// Library dialogs - check visibility
|
|
63
|
+
const libraryDialogs = Array.from(this._containerElement.querySelectorAll('.cqa-dialog-panel'));
|
|
64
|
+
const visibleLibraryDialogs = libraryDialogs.filter(dialog => this.isElementVisible(dialog)).length;
|
|
65
|
+
// Library backdrops - check visibility (backdrops can be transparent but still present)
|
|
66
|
+
const libraryBackdrops = Array.from(this._containerElement.querySelectorAll('.cqa-dialog-backdrop'));
|
|
67
|
+
const visibleLibraryBackdrops = libraryBackdrops.filter(backdrop => {
|
|
68
|
+
// Backdrops might have low opacity but should still be considered if they're showing
|
|
69
|
+
const style = window.getComputedStyle(backdrop);
|
|
70
|
+
return style.display !== 'none' && backdrop.classList.contains('cdk-overlay-backdrop-showing');
|
|
71
|
+
}).length;
|
|
72
|
+
// Select panels - check visibility
|
|
73
|
+
const selectPanels = Array.from(this._containerElement.querySelectorAll('.ctc-select-panel'));
|
|
74
|
+
const visibleSelectPanels = selectPanels.filter(panel => this.isElementVisible(panel)).length;
|
|
75
|
+
// Date panels - check visibility
|
|
76
|
+
const datePanels = Array.from(this._containerElement.querySelectorAll('.ctc-date-range-panel'));
|
|
77
|
+
const visibleDatePanels = datePanels.filter(panel => this.isElementVisible(panel)).length;
|
|
78
|
+
const totalLibraryOverlays = visibleLibraryDialogs + visibleLibraryBackdrops + visibleSelectPanels + visibleDatePanels;
|
|
57
79
|
// Check for portal Material dialogs (those without .cqa-dialog-panel class)
|
|
58
80
|
// Portal dialogs use .mat-dialog-container but NOT .cqa-dialog-panel
|
|
59
|
-
const portalDialogs = this._containerElement.querySelectorAll('.mat-dialog-container:not(.cqa-dialog-panel)')
|
|
60
|
-
|
|
81
|
+
const portalDialogs = Array.from(this._containerElement.querySelectorAll('.mat-dialog-container:not(.cqa-dialog-panel)'));
|
|
82
|
+
const visiblePortalDialogs = portalDialogs.filter(dialog => this.isElementVisible(dialog)).length;
|
|
83
|
+
// Decision logic: Only add cqa-ui-root when VISIBLE library overlays are present
|
|
61
84
|
// This ensures portal Material dialogs don't get affected by library CSS
|
|
85
|
+
// even if library overlays are in the DOM but closing/hidden
|
|
62
86
|
if (totalLibraryOverlays > 0) {
|
|
63
|
-
//
|
|
87
|
+
// Visible library overlays exist - add the class (they need Tailwind styles scoped to .cqa-ui-root)
|
|
64
88
|
this._containerElement.classList.add('cqa-ui-root');
|
|
65
89
|
}
|
|
66
90
|
else {
|
|
67
|
-
// No library overlays exist - remove the class
|
|
68
|
-
// This handles
|
|
91
|
+
// No visible library overlays exist - remove the class
|
|
92
|
+
// This handles:
|
|
69
93
|
// 1. Only portal dialogs exist (should not have cqa-ui-root)
|
|
70
|
-
// 2.
|
|
94
|
+
// 2. Library overlays are closing/hidden (should not have cqa-ui-root)
|
|
95
|
+
// 3. No overlays exist at all (clean state)
|
|
71
96
|
this._containerElement.classList.remove('cqa-ui-root');
|
|
72
97
|
}
|
|
73
|
-
// Note: If both library overlays and portal dialogs exist simultaneously,
|
|
98
|
+
// Note: If both library overlays and portal dialogs exist simultaneously and are visible,
|
|
74
99
|
// the class will be present because library overlays need it. In this case,
|
|
75
100
|
// portal dialogs may be affected by library CSS. To avoid this, ensure library
|
|
76
101
|
// overlays are closed before opening portal dialogs, or use CSS specificity
|
|
@@ -82,4 +107,4 @@ TailwindOverlayContainer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0
|
|
|
82
107
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: TailwindOverlayContainer, decorators: [{
|
|
83
108
|
type: Injectable
|
|
84
109
|
}] });
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHctb3ZlcmxheS1jb250YWluZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3V0aWxzL3R3LW92ZXJsYXktY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBRXhEOzs7Ozs7O0dBT0c7QUFFSCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsZ0JBQWdCO0lBRDlEOztRQUVVLGtCQUFhLEdBQWtCLElBQUksQ0FBQztLQXlFN0M7SUF2RW9CLGdCQUFnQjtRQUNqQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN6QixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQix5RkFBeUY7WUFDekYsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFdkQsNkVBQTZFO1lBQzdFLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVPLHNCQUFzQjtRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQjtZQUFFLE9BQU87UUFFcEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUU7WUFDekMsc0VBQXNFO1lBQ3RFLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxJQUFJLEVBQUU7Z0JBQy9CLG9CQUFvQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUMxQztZQUNELElBQUksQ0FBQyxhQUFhLEdBQUcscUJBQXFCLENBQUMsR0FBRyxFQUFFO2dCQUM5QyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7WUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ3ZDLFNBQVMsRUFBRSxJQUFJO1lBQ2YsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDLENBQUM7UUFFSCx3REFBd0Q7UUFDeEQscUJBQXFCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCO1lBQUUsT0FBTztRQUVwQyxxRUFBcUU7UUFDckUsc0VBQXNFO1FBQ3RFLGtGQUFrRjtRQUNsRixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDM0YsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDaEcsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDaEcsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFFbEcsTUFBTSxvQkFBb0IsR0FBRyxjQUFjLEdBQUcsZ0JBQWdCLEdBQUcsbUJBQW1CLEdBQUcsaUJBQWlCLENBQUM7UUFFekcsNEVBQTRFO1FBQzVFLHFFQUFxRTtRQUNyRSxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsOENBQThDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFFckgseUVBQXlFO1FBQ3pFLHlFQUF5RTtRQUV6RSxJQUFJLG9CQUFvQixHQUFHLENBQUMsRUFBRTtZQUM1Qiw0RkFBNEY7WUFDNUYsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDckQ7YUFBTTtZQUNMLCtDQUErQztZQUMvQywyQkFBMkI7WUFDM0IsNkRBQTZEO1lBQzdELDRDQUE0QztZQUM1QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUN4RDtRQUVELDBFQUEwRTtRQUMxRSw0RUFBNEU7UUFDNUUsK0VBQStFO1FBQy9FLDRFQUE0RTtRQUM1RSxvREFBb0Q7SUFDdEQsQ0FBQzs7cUhBekVVLHdCQUF3Qjt5SEFBeEIsd0JBQXdCOzJGQUF4Qix3QkFBd0I7a0JBRHBDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPdmVybGF5Q29udGFpbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuXG4vKipcbiAqIEVuc3VyZXMgQW5ndWxhciBDREsgb3ZlcmxheSBjb250ZW50IChlLmcuLCBNYXRTZWxlY3QsIERhdGVwaWNrZXIgcGFuZWxzLCBsaWJyYXJ5IGRpYWxvZ3MpXG4gKiBpcyBuZXN0ZWQgdW5kZXIgYW4gZWxlbWVudCB3aXRoIGNsYXNzPVwiY3FhLXVpLXJvb3RcIiBzbyBUYWlsd2luZCB1dGlsaXRpZXNcbiAqIGNvbmZpZ3VyZWQgd2l0aCBpbXBvcnRhbnQ6ICcuY3FhLXVpLXJvb3QnIGFyZSBhcHBsaWVkIGluc2lkZSBvdmVybGF5cy5cbiAqIFxuICogSU1QT1JUQU5UOiBPbmx5IHNldHMgY2xhc3M9XCJjcWEtdWktcm9vdFwiIHdoZW4gbGlicmFyeSBvdmVybGF5cyBhcmUgcHJlc2VudC5cbiAqIFBvcnRhbCBNYXRlcmlhbCBkaWFsb2dzIHNob3VsZCBOT1QgaGF2ZSB0aGlzIGNsYXNzIHRvIHByZXZlbnQgbGlicmFyeSBDU1MgZnJvbSBhZmZlY3RpbmcgdGhlbS5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRhaWx3aW5kT3ZlcmxheUNvbnRhaW5lciBleHRlbmRzIE92ZXJsYXlDb250YWluZXIge1xuICBwcml2YXRlIHVwZGF0ZVRpbWVvdXQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBfY3JlYXRlQ29udGFpbmVyKCk6IHZvaWQge1xuICAgIHN1cGVyLl9jcmVhdGVDb250YWluZXIoKTtcbiAgICBpZiAodGhpcy5fY29udGFpbmVyRWxlbWVudCkge1xuICAgICAgLy8gRG9uJ3Qgc2V0IGNsYXNzIGluaXRpYWxseSAtIHdlJ2xsIHNldCBpdCBkeW5hbWljYWxseSB3aGVuIGxpYnJhcnkgb3ZlcmxheXMgYXJlIGNyZWF0ZWRcbiAgICAgIHRoaXMuX2NvbnRhaW5lckVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnY3FhLXVpLXJvb3QnKTtcbiAgICAgIFxuICAgICAgLy8gVXNlIE11dGF0aW9uT2JzZXJ2ZXIgdG8gZGV0ZWN0IHdoZW4gbGlicmFyeSBvdmVybGF5cyBhcmUgY3JlYXRlZC9kZXN0cm95ZWRcbiAgICAgIHRoaXMub2JzZXJ2ZUxpYnJhcnlPdmVybGF5cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb2JzZXJ2ZUxpYnJhcnlPdmVybGF5cygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2NvbnRhaW5lckVsZW1lbnQpIHJldHVybjtcblxuICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgLy8gRGVib3VuY2UgdXBkYXRlcyB0byBhdm9pZCBleGNlc3NpdmUgY2hlY2tzIGR1cmluZyByYXBpZCBET00gY2hhbmdlc1xuICAgICAgaWYgKHRoaXMudXBkYXRlVGltZW91dCAhPT0gbnVsbCkge1xuICAgICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLnVwZGF0ZVRpbWVvdXQpO1xuICAgICAgfVxuICAgICAgdGhpcy51cGRhdGVUaW1lb3V0ID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVDb250YWluZXJDbGFzcygpO1xuICAgICAgICB0aGlzLnVwZGF0ZVRpbWVvdXQgPSBudWxsO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBvYnNlcnZlci5vYnNlcnZlKHRoaXMuX2NvbnRhaW5lckVsZW1lbnQsIHtcbiAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICAgIHN1YnRyZWU6IHRydWUsXG4gICAgfSk7XG5cbiAgICAvLyBBbHNvIGNoZWNrIGltbWVkaWF0ZWx5IGluIGNhc2Ugb3ZlcmxheXMgYWxyZWFkeSBleGlzdFxuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLnVwZGF0ZUNvbnRhaW5lckNsYXNzKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb250YWluZXJDbGFzcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2NvbnRhaW5lckVsZW1lbnQpIHJldHVybjtcblxuICAgIC8vIENvdW50IGxpYnJhcnkgb3ZlcmxheXMgKGRpYWxvZ3MsIHNlbGVjdCBwYW5lbHMsIGRhdGVwaWNrZXIgcGFuZWxzKVxuICAgIC8vIFRoZXNlIGFyZSBsaWJyYXJ5LXNwZWNpZmljIGNsYXNzZXMgdGhhdCBpbmRpY2F0ZSBsaWJyYXJ5IGNvbXBvbmVudHNcbiAgICAvLyBPbmx5IGNvdW50IG92ZXJsYXlzIHRoYXQgYXJlIGFjdHVhbGx5IGluIHRoZSBET00gKENESyByZW1vdmVzIHRoZW0gd2hlbiBjbG9zZWQpXG4gICAgY29uc3QgbGlicmFyeURpYWxvZ3MgPSB0aGlzLl9jb250YWluZXJFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jcWEtZGlhbG9nLXBhbmVsJykubGVuZ3RoO1xuICAgIGNvbnN0IGxpYnJhcnlCYWNrZHJvcHMgPSB0aGlzLl9jb250YWluZXJFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jcWEtZGlhbG9nLWJhY2tkcm9wJykubGVuZ3RoO1xuICAgIGNvbnN0IGxpYnJhcnlTZWxlY3RQYW5lbHMgPSB0aGlzLl9jb250YWluZXJFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jdGMtc2VsZWN0LXBhbmVsJykubGVuZ3RoO1xuICAgIGNvbnN0IGxpYnJhcnlEYXRlUGFuZWxzID0gdGhpcy5fY29udGFpbmVyRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuY3RjLWRhdGUtcmFuZ2UtcGFuZWwnKS5sZW5ndGg7XG4gICAgXG4gICAgY29uc3QgdG90YWxMaWJyYXJ5T3ZlcmxheXMgPSBsaWJyYXJ5RGlhbG9ncyArIGxpYnJhcnlCYWNrZHJvcHMgKyBsaWJyYXJ5U2VsZWN0UGFuZWxzICsgbGlicmFyeURhdGVQYW5lbHM7XG4gICAgXG4gICAgLy8gQ2hlY2sgZm9yIHBvcnRhbCBNYXRlcmlhbCBkaWFsb2dzICh0aG9zZSB3aXRob3V0IC5jcWEtZGlhbG9nLXBhbmVsIGNsYXNzKVxuICAgIC8vIFBvcnRhbCBkaWFsb2dzIHVzZSAubWF0LWRpYWxvZy1jb250YWluZXIgYnV0IE5PVCAuY3FhLWRpYWxvZy1wYW5lbFxuICAgIGNvbnN0IHBvcnRhbERpYWxvZ3MgPSB0aGlzLl9jb250YWluZXJFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5tYXQtZGlhbG9nLWNvbnRhaW5lcjpub3QoLmNxYS1kaWFsb2ctcGFuZWwpJykubGVuZ3RoO1xuXG4gICAgLy8gRGVjaXNpb24gbG9naWM6IE9ubHkgYWRkIGNxYS11aS1yb290IHdoZW4gbGlicmFyeSBvdmVybGF5cyBhcmUgcHJlc2VudFxuICAgIC8vIFRoaXMgZW5zdXJlcyBwb3J0YWwgTWF0ZXJpYWwgZGlhbG9ncyBkb24ndCBnZXQgYWZmZWN0ZWQgYnkgbGlicmFyeSBDU1NcbiAgICBcbiAgICBpZiAodG90YWxMaWJyYXJ5T3ZlcmxheXMgPiAwKSB7XG4gICAgICAvLyBMaWJyYXJ5IG92ZXJsYXlzIGV4aXN0IC0gYWRkIHRoZSBjbGFzcyAodGhleSBuZWVkIFRhaWx3aW5kIHN0eWxlcyBzY29wZWQgdG8gLmNxYS11aS1yb290KVxuICAgICAgdGhpcy5fY29udGFpbmVyRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdjcWEtdWktcm9vdCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBObyBsaWJyYXJ5IG92ZXJsYXlzIGV4aXN0IC0gcmVtb3ZlIHRoZSBjbGFzc1xuICAgICAgLy8gVGhpcyBoYW5kbGVzIGJvdGggY2FzZXM6XG4gICAgICAvLyAxLiBPbmx5IHBvcnRhbCBkaWFsb2dzIGV4aXN0IChzaG91bGQgbm90IGhhdmUgY3FhLXVpLXJvb3QpXG4gICAgICAvLyAyLiBObyBvdmVybGF5cyBleGlzdCBhdCBhbGwgKGNsZWFuIHN0YXRlKVxuICAgICAgdGhpcy5fY29udGFpbmVyRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdjcWEtdWktcm9vdCcpO1xuICAgIH1cbiAgICBcbiAgICAvLyBOb3RlOiBJZiBib3RoIGxpYnJhcnkgb3ZlcmxheXMgYW5kIHBvcnRhbCBkaWFsb2dzIGV4aXN0IHNpbXVsdGFuZW91c2x5LFxuICAgIC8vIHRoZSBjbGFzcyB3aWxsIGJlIHByZXNlbnQgYmVjYXVzZSBsaWJyYXJ5IG92ZXJsYXlzIG5lZWQgaXQuIEluIHRoaXMgY2FzZSxcbiAgICAvLyBwb3J0YWwgZGlhbG9ncyBtYXkgYmUgYWZmZWN0ZWQgYnkgbGlicmFyeSBDU1MuIFRvIGF2b2lkIHRoaXMsIGVuc3VyZSBsaWJyYXJ5XG4gICAgLy8gb3ZlcmxheXMgYXJlIGNsb3NlZCBiZWZvcmUgb3BlbmluZyBwb3J0YWwgZGlhbG9ncywgb3IgdXNlIENTUyBzcGVjaWZpY2l0eVxuICAgIC8vIHRvIG92ZXJyaWRlIGxpYnJhcnkgc3R5bGVzIHdpdGhpbiBwb3J0YWwgZGlhbG9ncy5cbiAgfVxufVxuXG5cbiJdfQ==
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHctb3ZlcmxheS1jb250YWluZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3V0aWxzL3R3LW92ZXJsYXktY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBRXhEOzs7Ozs7O0dBT0c7QUFFSCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsZ0JBQWdCO0lBRDlEOztRQUVVLGtCQUFhLEdBQWtCLElBQUksQ0FBQztLQXlHN0M7SUF2R29CLGdCQUFnQjtRQUNqQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN6QixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQix5RkFBeUY7WUFDekYsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFdkQsNkVBQTZFO1lBQzdFLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVPLHNCQUFzQjtRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQjtZQUFFLE9BQU87UUFFcEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUU7WUFDekMsc0VBQXNFO1lBQ3RFLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxJQUFJLEVBQUU7Z0JBQy9CLG9CQUFvQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUMxQztZQUNELElBQUksQ0FBQyxhQUFhLEdBQUcscUJBQXFCLENBQUMsR0FBRyxFQUFFO2dCQUM5QyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7WUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFDTCxD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UUFFMUYsTUFBTSxvQkFBb0IsR0FBRyxxQkFBcUIsR0FBRyx1QkFBdUIsR0FBRyxtQkFBbUIsR0FBRyxpQkFBaUIsQ0FBQztRQUV2SCw0RUFBNEU7UUFDNUUscUVBQXFFO1FBQ3JFLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLDhDQUE4QyxDQUFDLENBQUMsQ0FBQztRQUMxSCxNQUFNLG9CQUFvQixHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFFbEcsaUZBQWlGO1FBQ2pGLHlFQUF5RTtRQUN6RSw2REFBNkQ7UUFFN0QsSUFBSSxvQkFBb0IsR0FBRyxDQUFDLEVBQUU7WUFDNUIsb0dBQW9HO1lBQ3BHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ3JEO2FBQU07WUFDTCx1REFBdUQ7WUFDdkQsZ0JBQWdCO1lBQ2hCLDZEQUE2RDtZQUM3RCx1RUFBdUU7WUFDdkUsNENBQTRDO1lBQzVDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ3hEO1FBRUQsMEZBQTBGO1FBQzFGLDRFQUE0RTtRQUM1RSwrRUFBK0U7UUFDL0UsNEVBQTRFO1FBQzVFLG9EQUFvRDtJQUN0RCxDQUFDOztxSEF6R1Usd0JBQXdCO3lIQUF4Qix3QkFBd0I7MkZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE92ZXJsYXlDb250YWluZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5cbi8qKlxuICogRW5zdXJlcyBBbmd1bGFyIENESyBvdmVybGF5IGNvbnRlbnQgKGUuZy4sIE1hdFNlbGVjdCwgRGF0ZXBpY2tlciBwYW5lbHMsIGxpYnJhcnkgZGlhbG9ncylcbiAqIGlzIG5lc3RlZCB1bmRlciBhbiBlbGVtZW50IHdpdGggY2xhc3M9XCJjcWEtdWktcm9vdFwiIHNvIFRhaWx3aW5kIHV0aWxpdGllc1xuICogY29uZmlndXJlZCB3aXRoIGltcG9ydGFudDogJy5jcWEtdWktcm9vdCcgYXJlIGFwcGxpZWQgaW5zaWRlIG92ZXJsYXlzLlxuICogXG4gKiBJTVBPUlRBTlQ6IE9ubHkgc2V0cyBjbGFzcz1cImNxYS11aS1yb290XCIgd2hlbiBsaWJyYXJ5IG92ZXJsYXlzIGFyZSBwcmVzZW50LlxuICogUG9ydGFsIE1hdGVyaWFsIGRpYWxvZ3Mgc2hvdWxkIE5PVCBoYXZlIHRoaXMgY2xhc3MgdG8gcHJldmVudCBsaWJyYXJ5IENTUyBmcm9tIGFmZmVjdGluZyB0aGVtLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGFpbHdpbmRPdmVybGF5Q29udGFpbmVyIGV4dGVuZHMgT3ZlcmxheUNvbnRhaW5lciB7XG4gIHByaXZhdGUgdXBkYXRlVGltZW91dDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIF9jcmVhdGVDb250YWluZXIoKTogdm9pZCB7XG4gICAgc3VwZXIuX2NyZWF0ZUNvbnRhaW5lcigpO1xuICAgIGlmICh0aGlzLl9jb250YWluZXJFbGVtZW50KSB7XG4gICAgICAvLyBEb24ndCBzZXQgY2xhc3MgaW5pdGlhbGx5IC0gd2UnbGwgc2V0IGl0IGR5bmFtaWNhbGx5IHdoZW4gbGlicmFyeSBvdmVybGF5cyBhcmUgY3JlYXRlZFxuICAgICAgdGhpcy5fY29udGFpbmVyRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdjcWEtdWktcm9vdCcpO1xuICAgICAgXG4gICAgICAvLyBVc2UgTXV0YXRpb25PYnNlcnZlciB0byBkZXRlY3Qgd2hlbiBsaWJyYXJ5IG92ZXJsYXlzIGFyZSBjcmVhdGVkL2Rlc3Ryb3llZFxuICAgICAgdGhpcy5vYnNlcnZlTGlicmFyeU92ZXJsYXlzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvYnNlcnZlTGlicmFyeU92ZXJsYXlzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fY29udGFpbmVyRWxlbWVudCkgcmV0dXJuO1xuXG4gICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiB7XG4gICAgICAvLyBEZWJvdW5jZSB1cGRhdGVzIHRvIGF2b2lkIGV4Y2Vzc2l2ZSBjaGVja3MgZHVyaW5nIHJhcGlkIERPTSBjaGFuZ2VzXG4gICAgICBpZiAodGhpcy51cGRhdGVUaW1lb3V0ICE9PSBudWxsKSB7XG4gICAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMudXBkYXRlVGltZW91dCk7XG4gICAgICB9XG4gICAgICB0aGlzLnVwZGF0ZVRpbWVvdXQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZUNvbnRhaW5lckNsYXNzKCk7XG4gICAgICAgIHRoaXMudXBkYXRlVGltZW91dCA9IG51bGw7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIG9ic2VydmVyLm9ic2VydmUodGhpcy5fY29udGFpbmVyRWxlbWVudCwge1xuICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICB9KTtcblxuICAgIC8vIEFsc28gY2hlY2sgaW1tZWRpYXRlbHkgaW4gY2FzZSBvdmVybGF5cyBhbHJlYWR5IGV4aXN0XG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHRoaXMudXBkYXRlQ29udGFpbmVyQ2xhc3MoKSk7XG4gIH1cblxuICBwcml2YXRlIGlzRWxlbWVudFZpc2libGUoZWxlbWVudDogRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG4gICAgLy8gQ2hlY2sgaWYgZWxlbWVudCBpcyB2aXNpYmxlIChub3QgZGlzcGxheTogbm9uZSwgbm90IG9wYWNpdHk6IDAsIG5vdCB2aXNpYmlsaXR5OiBoaWRkZW4pXG4gICAgY29uc3QgaXNEaXNwbGF5ZWQgPSBzdHlsZS5kaXNwbGF5ICE9PSAnbm9uZSc7XG4gICAgY29uc3QgaXNPcGFxdWUgPSBwYXJzZUZsb2F0KHN0eWxlLm9wYWNpdHkpID4gMC4wMTsgLy8gQWxsb3cgZm9yIHZlcnkgc21hbGwgb3BhY2l0eSB2YWx1ZXMgZHVyaW5nIGFuaW1hdGlvbnNcbiAgICBjb25zdCBpc1Zpc2libGUgPSBzdHlsZS52aXNpYmlsaXR5ICE9PSAnaGlkZGVuJztcbiAgICBcbiAgICAvLyBBbHNvIGNoZWNrIGlmIGVsZW1lbnQgaGFzIGRpbWVuc2lvbnMgKHdpZHRoL2hlaWdodCA+IDApXG4gICAgY29uc3QgcmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgaGFzU2l6ZSA9IHJlY3Qud2lkdGggPiAwICYmIHJlY3QuaGVpZ2h0ID4gMDtcbiAgICBcbiAgICByZXR1cm4gaXNEaXNwbGF5ZWQgJiYgaXNPcGFxdWUgJiYgaXNWaXNpYmxlICYmIGhhc1NpemU7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUNvbnRhaW5lckNsYXNzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fY29udGFpbmVyRWxlbWVudCkgcmV0dXJuO1xuXG4gICAgLy8gQ291bnQgbGlicmFyeSBvdmVybGF5cyAoZGlhbG9ncywgc2VsZWN0IHBhbmVscywgZGF0ZXBpY2tlciBwYW5lbHMpXG4gICAgLy8gT25seSBjb3VudCBvdmVybGF5cyB0aGF0IGFyZSBhY3R1YWxseSB2aXNpYmxlL2FjdGl2ZSAobm90IGhpZGRlbiBvciBjbG9zaW5nKVxuICAgIFxuICAgIC8vIExpYnJhcnkgZGlhbG9ncyAtIGNoZWNrIHZpc2liaWxpdHlcbiAgICBjb25zdCBsaWJyYXJ5RGlhbG9ncyA9IEFycmF5LmZyb20odGhpcy5fY29udGFpbmVyRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuY3FhLWRpYWxvZy1wYW5lbCcpKTtcbiAgICBjb25zdCB2aXNpYmxlTGlicmFyeURpYWxvZ3MgPSBsaWJyYXJ5RGlhbG9ncy5maWx0ZXIoZGlhbG9nID0+IHRoaXMuaXNFbGVtZW50VmlzaWJsZShkaWFsb2cpKS5sZW5ndGg7XG4gICAgXG4gICAgLy8gTGlicmFyeSBiYWNrZHJvcHMgLSBjaGVjayB2aXNpYmlsaXR5IChiYWNrZHJvcHMgY2FuIGJlIHRyYW5zcGFyZW50IGJ1dCBzdGlsbCBwcmVzZW50KVxuICAgIGNvbnN0IGxpYnJhcnlCYWNrZHJvcHMgPSBBcnJheS5mcm9tKHRoaXMuX2NvbnRhaW5lckVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmNxYS1kaWFsb2ctYmFja2Ryb3AnKSk7XG4gICAgY29uc3QgdmlzaWJsZUxpYnJhcnlCYWNrZHJvcHMgPSBsaWJyYXJ5QmFja2Ryb3BzLmZpbHRlcihiYWNrZHJvcCA9PiB7XG4gICAgICAvLyBCYWNrZHJvcHMgbWlnaHQgaGF2ZSBsb3cgb3BhY2l0eSBidXQgc2hvdWxkIHN0aWxsIGJlIGNvbnNpZGVyZWQgaWYgdGhleSdyZSBzaG93aW5nXG4gICAgICBjb25zdCBzdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGJhY2tkcm9wKTtcbiAgICAgIHJldHVybiBzdHlsZS5kaXNwbGF5ICE9PSAnbm9uZScgJiYgYmFja2Ryb3AuY2xhc3NMaXN0LmNvbnRhaW5zKCdjZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nJyk7XG4gICAgfSkubGVuZ3RoO1xuICAgIFxuICAgIC8vIFNlbGVjdCBwYW5lbHMgLSBjaGVjayB2aXNpYmlsaXR5XG4gICAgY29uc3Qgc2VsZWN0UGFuZWxzID0gQXJyYXkuZnJvbSh0aGlzLl9jb250YWluZXJFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jdGMtc2VsZWN0LXBhbmVsJykpO1xuICAgIGNvbnN0IHZpc2libGVTZWxlY3RQYW5lbHMgPSBzZWxlY3RQYW5lbHMuZmlsdGVyKHBhbmVsID0+IHRoaXMuaXNFbGVtZW50VmlzaWJsZShwYW5lbCkpLmxlbmd0aDtcbiAgICBcbiAgICAvLyBEYXRlIHBhbmVscyAtIGNoZWNrIHZpc2liaWxpdHlcbiAgICBjb25zdCBkYXRlUGFuZWxzID0gQXJyYXkuZnJvbSh0aGlzLl9jb250YWluZXJFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jdGMtZGF0ZS1yYW5nZS1wYW5lbCcpKTtcbiAgICBjb25zdCB2aXNpYmxlRGF0ZVBhbmVscyA9IGRhdGVQYW5lbHMuZmlsdGVyKHBhbmVsID0+IHRoaXMuaXNFbGVtZW50VmlzaWJsZShwYW5lbCkpLmxlbmd0aDtcbiAgICBcbiAgICBjb25zdCB0b3RhbExpYnJhcnlPdmVybGF5cyA9IHZpc2libGVMaWJyYXJ5RGlhbG9ncyArIHZpc2libGVMaWJyYXJ5QmFja2Ryb3BzICsgdmlzaWJsZVNlbGVjdFBhbmVscyArIHZpc2libGVEYXRlUGFuZWxzO1xuICAgIFxuICAgIC8vIENoZWNrIGZvciBwb3J0YWwgTWF0ZXJpYWwgZGlhbG9ncyAodGhvc2Ugd2l0aG91dCAuY3FhLWRpYWxvZy1wYW5lbCBjbGFzcylcbiAgICAvLyBQb3J0YWwgZGlhbG9ncyB1c2UgLm1hdC1kaWFsb2ctY29udGFpbmVyIGJ1dCBOT1QgLmNxYS1kaWFsb2ctcGFuZWxcbiAgICBjb25zdCBwb3J0YWxEaWFsb2dzID0gQXJyYXkuZnJvbSh0aGlzLl9jb250YWluZXJFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5tYXQtZGlhbG9nLWNvbnRhaW5lcjpub3QoLmNxYS1kaWFsb2ctcGFuZWwpJykpO1xuICAgIGNvbnN0IHZpc2libGVQb3J0YWxEaWFsb2dzID0gcG9ydGFsRGlhbG9ncy5maWx0ZXIoZGlhbG9nID0+IHRoaXMuaXNFbGVtZW50VmlzaWJsZShkaWFsb2cpKS5sZW5ndGg7XG5cbiAgICAvLyBEZWNpc2lvbiBsb2dpYzogT25seSBhZGQgY3FhLXVpLXJvb3Qgd2hlbiBWSVNJQkxFIGxpYnJhcnkgb3ZlcmxheXMgYXJlIHByZXNlbnRcbiAgICAvLyBUaGlzIGVuc3VyZXMgcG9ydGFsIE1hdGVyaWFsIGRpYWxvZ3MgZG9uJ3QgZ2V0IGFmZmVjdGVkIGJ5IGxpYnJhcnkgQ1NTXG4gICAgLy8gZXZlbiBpZiBsaWJyYXJ5IG92ZXJsYXlzIGFyZSBpbiB0aGUgRE9NIGJ1dCBjbG9zaW5nL2hpZGRlblxuICAgIFxuICAgIGlmICh0b3RhbExpYnJhcnlPdmVybGF5cyA+IDApIHtcbiAgICAgIC8vIFZpc2libGUgbGlicmFyeSBvdmVybGF5cyBleGlzdCAtIGFkZCB0aGUgY2xhc3MgKHRoZXkgbmVlZCBUYWlsd2luZCBzdHlsZXMgc2NvcGVkIHRvIC5jcWEtdWktcm9vdClcbiAgICAgIHRoaXMuX2NvbnRhaW5lckVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnY3FhLXVpLXJvb3QnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTm8gdmlzaWJsZSBsaWJyYXJ5IG92ZXJsYXlzIGV4aXN0IC0gcmVtb3ZlIHRoZSBjbGFzc1xuICAgICAgLy8gVGhpcyBoYW5kbGVzOlxuICAgICAgLy8gMS4gT25seSBwb3J0YWwgZGlhbG9ncyBleGlzdCAoc2hvdWxkIG5vdCBoYXZlIGNxYS11aS1yb290KVxuICAgICAgLy8gMi4gTGlicmFyeSBvdmVybGF5cyBhcmUgY2xvc2luZy9oaWRkZW4gKHNob3VsZCBub3QgaGF2ZSBjcWEtdWktcm9vdClcbiAgICAgIC8vIDMuIE5vIG92ZXJsYXlzIGV4aXN0IGF0IGFsbCAoY2xlYW4gc3RhdGUpXG4gICAgICB0aGlzLl9jb250YWluZXJFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2NxYS11aS1yb290Jyk7XG4gICAgfVxuICAgIFxuICAgIC8vIE5vdGU6IElmIGJvdGggbGlicmFyeSBvdmVybGF5cyBhbmQgcG9ydGFsIGRpYWxvZ3MgZXhpc3Qgc2ltdWx0YW5lb3VzbHkgYW5kIGFyZSB2aXNpYmxlLFxuICAgIC8vIHRoZSBjbGFzcyB3aWxsIGJlIHByZXNlbnQgYmVjYXVzZSBsaWJyYXJ5IG92ZXJsYXlzIG5lZWQgaXQuIEluIHRoaXMgY2FzZSxcbiAgICAvLyBwb3J0YWwgZGlhbG9ncyBtYXkgYmUgYWZmZWN0ZWQgYnkgbGlicmFyeSBDU1MuIFRvIGF2b2lkIHRoaXMsIGVuc3VyZSBsaWJyYXJ5XG4gICAgLy8gb3ZlcmxheXMgYXJlIGNsb3NlZCBiZWZvcmUgb3BlbmluZyBwb3J0YWwgZGlhbG9ncywgb3IgdXNlIENTUyBzcGVjaWZpY2l0eVxuICAgIC8vIHRvIG92ZXJyaWRlIGxpYnJhcnkgc3R5bGVzIHdpdGhpbiBwb3J0YWwgZGlhbG9ncy5cbiAgfVxufVxuXG5cbiJdfQ==
|
|
@@ -4255,34 +4255,59 @@ class TailwindOverlayContainer extends OverlayContainer {
|
|
|
4255
4255
|
// Also check immediately in case overlays already exist
|
|
4256
4256
|
requestAnimationFrame(() => this.updateContainerClass());
|
|
4257
4257
|
}
|
|
4258
|
+
isElementVisible(element) {
|
|
4259
|
+
const style = window.getComputedStyle(element);
|
|
4260
|
+
// Check if element is visible (not display: none, not opacity: 0, not visibility: hidden)
|
|
4261
|
+
const isDisplayed = style.display !== 'none';
|
|
4262
|
+
const isOpaque = parseFloat(style.opacity) > 0.01; // Allow for very small opacity values during animations
|
|
4263
|
+
const isVisible = style.visibility !== 'hidden';
|
|
4264
|
+
// Also check if element has dimensions (width/height > 0)
|
|
4265
|
+
const rect = element.getBoundingClientRect();
|
|
4266
|
+
const hasSize = rect.width > 0 && rect.height > 0;
|
|
4267
|
+
return isDisplayed && isOpaque && isVisible && hasSize;
|
|
4268
|
+
}
|
|
4258
4269
|
updateContainerClass() {
|
|
4259
4270
|
if (!this._containerElement)
|
|
4260
4271
|
return;
|
|
4261
4272
|
// Count library overlays (dialogs, select panels, datepicker panels)
|
|
4262
|
-
//
|
|
4263
|
-
//
|
|
4264
|
-
const libraryDialogs = this._containerElement.querySelectorAll('.cqa-dialog-panel')
|
|
4265
|
-
const
|
|
4266
|
-
|
|
4267
|
-
const
|
|
4268
|
-
const
|
|
4273
|
+
// Only count overlays that are actually visible/active (not hidden or closing)
|
|
4274
|
+
// Library dialogs - check visibility
|
|
4275
|
+
const libraryDialogs = Array.from(this._containerElement.querySelectorAll('.cqa-dialog-panel'));
|
|
4276
|
+
const visibleLibraryDialogs = libraryDialogs.filter(dialog => this.isElementVisible(dialog)).length;
|
|
4277
|
+
// Library backdrops - check visibility (backdrops can be transparent but still present)
|
|
4278
|
+
const libraryBackdrops = Array.from(this._containerElement.querySelectorAll('.cqa-dialog-backdrop'));
|
|
4279
|
+
const visibleLibraryBackdrops = libraryBackdrops.filter(backdrop => {
|
|
4280
|
+
// Backdrops might have low opacity but should still be considered if they're showing
|
|
4281
|
+
const style = window.getComputedStyle(backdrop);
|
|
4282
|
+
return style.display !== 'none' && backdrop.classList.contains('cdk-overlay-backdrop-showing');
|
|
4283
|
+
}).length;
|
|
4284
|
+
// Select panels - check visibility
|
|
4285
|
+
const selectPanels = Array.from(this._containerElement.querySelectorAll('.ctc-select-panel'));
|
|
4286
|
+
const visibleSelectPanels = selectPanels.filter(panel => this.isElementVisible(panel)).length;
|
|
4287
|
+
// Date panels - check visibility
|
|
4288
|
+
const datePanels = Array.from(this._containerElement.querySelectorAll('.ctc-date-range-panel'));
|
|
4289
|
+
const visibleDatePanels = datePanels.filter(panel => this.isElementVisible(panel)).length;
|
|
4290
|
+
const totalLibraryOverlays = visibleLibraryDialogs + visibleLibraryBackdrops + visibleSelectPanels + visibleDatePanels;
|
|
4269
4291
|
// Check for portal Material dialogs (those without .cqa-dialog-panel class)
|
|
4270
4292
|
// Portal dialogs use .mat-dialog-container but NOT .cqa-dialog-panel
|
|
4271
|
-
const portalDialogs = this._containerElement.querySelectorAll('.mat-dialog-container:not(.cqa-dialog-panel)')
|
|
4272
|
-
|
|
4293
|
+
const portalDialogs = Array.from(this._containerElement.querySelectorAll('.mat-dialog-container:not(.cqa-dialog-panel)'));
|
|
4294
|
+
const visiblePortalDialogs = portalDialogs.filter(dialog => this.isElementVisible(dialog)).length;
|
|
4295
|
+
// Decision logic: Only add cqa-ui-root when VISIBLE library overlays are present
|
|
4273
4296
|
// This ensures portal Material dialogs don't get affected by library CSS
|
|
4297
|
+
// even if library overlays are in the DOM but closing/hidden
|
|
4274
4298
|
if (totalLibraryOverlays > 0) {
|
|
4275
|
-
//
|
|
4299
|
+
// Visible library overlays exist - add the class (they need Tailwind styles scoped to .cqa-ui-root)
|
|
4276
4300
|
this._containerElement.classList.add('cqa-ui-root');
|
|
4277
4301
|
}
|
|
4278
4302
|
else {
|
|
4279
|
-
// No library overlays exist - remove the class
|
|
4280
|
-
// This handles
|
|
4303
|
+
// No visible library overlays exist - remove the class
|
|
4304
|
+
// This handles:
|
|
4281
4305
|
// 1. Only portal dialogs exist (should not have cqa-ui-root)
|
|
4282
|
-
// 2.
|
|
4306
|
+
// 2. Library overlays are closing/hidden (should not have cqa-ui-root)
|
|
4307
|
+
// 3. No overlays exist at all (clean state)
|
|
4283
4308
|
this._containerElement.classList.remove('cqa-ui-root');
|
|
4284
4309
|
}
|
|
4285
|
-
// Note: If both library overlays and portal dialogs exist simultaneously,
|
|
4310
|
+
// Note: If both library overlays and portal dialogs exist simultaneously and are visible,
|
|
4286
4311
|
// the class will be present because library overlays need it. In this case,
|
|
4287
4312
|
// portal dialogs may be affected by library CSS. To avoid this, ensure library
|
|
4288
4313
|
// overlays are closed before opening portal dialogs, or use CSS specificity
|