@acorex/cdk 22.3.10 → 22.3.11

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.
@@ -14,10 +14,10 @@ class AXDrawerItemDirective {
14
14
  this.zIndexService = inject(AXZIndexService);
15
15
  this.localeService = inject(AXLocaleService);
16
16
  this.zToken = null;
17
- /** Whether the drawer panel is currently shown (DOM + animation state). */
18
- this.visible = signal(false, /* @ts-ignore */
19
- ...(ngDevMode ? [{ debugName: "visible" }] : /* istanbul ignore next */ []));
20
- this.hideTimer = null;
17
+ this.collapseState = signal(false, /* @ts-ignore */
18
+ ...(ngDevMode ? [{ debugName: "collapseState" }] : /* istanbul ignore next */ []));
19
+ // Reactive RTL flag derived from the active locale profile so the drawer
20
+ // re-positions itself whenever the user switches language at runtime.
21
21
  this.isRtl = this.localeService.isRtl;
22
22
  this.collapseStateChanged = output();
23
23
  this.location = model('start', /* @ts-ignore */
@@ -40,18 +40,24 @@ class AXDrawerItemDirective {
40
40
  this.id = Math.random();
41
41
  this.#init = afterNextRender(() => {
42
42
  this.htmlElem.set(this.el.nativeElement);
43
+ if (this.collapsed()) {
44
+ this.htmlElem().style.display = 'none';
45
+ }
43
46
  this.htmlElem().style.height = '100%';
44
- window.addEventListener('resize', this.onWindowResize);
47
+ window.addEventListener('resize', this.removeBackDropOnResize);
48
+ this.resizeObserver = new ResizeObserver(() => {
49
+ if (this.collapsed()) {
50
+ this.hide();
51
+ }
52
+ });
53
+ this.resizeObserver.observe(this.htmlElem());
45
54
  });
46
55
  this.#eff2 = effect(() => {
47
- if (!this.htmlElem()) {
48
- return;
49
- }
50
56
  if (this.collapsed()) {
51
- this.applyHide();
57
+ this.hide();
52
58
  }
53
59
  else {
54
- this.applyShow();
60
+ this.show();
55
61
  }
56
62
  }, /* @ts-ignore */
57
63
  ...(ngDevMode ? [{ debugName: "#eff2" }] : /* istanbul ignore next */ []));
@@ -96,13 +102,9 @@ class AXDrawerItemDirective {
96
102
  }
97
103
  }, /* @ts-ignore */
98
104
  ...(ngDevMode ? [{ debugName: "#eff4" }] : /* istanbul ignore next */ []));
99
- this.onWindowResize = () => {
100
- if (!this.visible() || this.mode() !== 'overlay' || !this.backDrop()) {
101
- return;
102
- }
103
- const hasBackdrop = this.parent.el.nativeElement.querySelector(`.ax-cdk-drawer-backdrop[data-drawer-id="${this.id}"]`);
104
- if (!hasBackdrop) {
105
- this.addBackdrop();
105
+ this.removeBackDropOnResize = () => {
106
+ if (this.collapseState() && this.mode() === 'overlay') {
107
+ this.removeBackdrop();
106
108
  }
107
109
  };
108
110
  }
@@ -110,176 +112,159 @@ class AXDrawerItemDirective {
110
112
  #eff2;
111
113
  #eff3;
112
114
  #eff4;
115
+ /**
116
+ * Shows the drawer by animating it into view.
117
+ *
118
+ * @returns void - No return value. The drawer becomes visible.
119
+ */
113
120
  show() {
114
- this.collapsed.set(false);
115
- }
116
- hide() {
117
- this.collapsed.set(true);
118
- }
119
- toggle() {
120
- this.collapsed.set(!this.collapsed());
121
- }
122
- applyShow() {
123
- const host = this.htmlElem();
124
- if (!host || this.collapsed()) {
121
+ if (!this.htmlElem())
122
+ return;
123
+ // Idempotency guard: if the drawer is already shown, do not re-acquire a
124
+ // new z-index. Without this guard, repeated show() calls (e.g. from effects
125
+ // re-evaluating on window resize or input changes) would keep incrementing
126
+ // the z-index via AXZIndexService, causing the drawer to jump above other
127
+ // overlays like popup/modal that were opened later.
128
+ if (this.collapseState() && this.zToken) {
125
129
  return;
126
130
  }
127
- this.clearHideTimer();
128
131
  if (this.singleOpenMode()) {
129
132
  this.parent.drawerItem().forEach((item) => {
130
- if (item.location() === this.location() && item.id !== this.id) {
133
+ if (item.location() === this.location() && item.id !== this.id)
131
134
  item.hide();
132
- }
133
135
  });
134
136
  }
137
+ this.resizeObserver.unobserve(this.htmlElem());
138
+ // Release any stale token before acquiring a new one so we never leak
139
+ // tokens inside AXZIndexService.
135
140
  if (this.zToken) {
136
141
  this.zIndexService.release(this.zToken);
137
142
  this.zToken = null;
138
143
  }
144
+ // Acquire z-index from service
139
145
  this.zToken = this.zIndexService.acquire();
140
- host.style.zIndex = String(this.zToken.zIndex);
141
- host.style.transition = `${this.transition()}ms all ease`;
142
- host.style.display = 'block';
143
- this.resetPanelPosition(host);
146
+ this.htmlElem().style.zIndex = String(this.zToken.zIndex);
147
+ this.htmlElem().style.transition = `${this.transition()}ms all ease`;
148
+ this.htmlElem().style.display = 'block';
144
149
  if (this.mode() === 'overlay') {
145
150
  if (this.location() === 'start') {
146
- this.isRtl() ? (host.style.right = `0px`) : (host.style.left = `0px`);
151
+ this.isRtl() ? (this.htmlElem().style.right = `0px`) : (this.htmlElem().style.left = `0px`);
147
152
  }
148
153
  if (this.location() === 'end') {
149
- this.isRtl() ? (host.style.left = `0px`) : (host.style.right = `0px`);
154
+ this.isRtl() ? (this.htmlElem().style.left = `0px`) : (this.htmlElem().style.right = `0px`);
150
155
  }
151
156
  if (this.location() === 'top' || this.location() === 'bottom') {
152
- host.style.top = `0px`;
157
+ this.htmlElem().style.top = `0px`;
153
158
  }
154
159
  }
155
160
  if (this.mode() === 'push') {
156
161
  if (this.location() === 'start') {
157
- host.style.marginInlineStart = '0px';
162
+ this.htmlElem().style.marginInlineStart = '0px';
158
163
  }
159
164
  if (this.location() === 'end') {
160
- host.style.marginInlineEnd = '0px';
165
+ this.htmlElem().style.marginInlineEnd = '0px';
161
166
  }
162
167
  if (this.location() === 'bottom') {
163
- host.style.marginBlockStart = '0px';
168
+ this.htmlElem().style.marginBlockStart = '0px';
164
169
  }
165
170
  if (this.location() === 'top') {
166
- host.style.marginBlockStart = '0px';
171
+ this.htmlElem().style.marginBlockStart = '0px';
167
172
  }
168
173
  }
169
174
  if (this.backDrop() && this.mode() === 'overlay') {
170
175
  this.addBackdrop();
171
176
  }
172
- this.visible.set(true);
177
+ this.collapseState.set(true);
173
178
  this.collapseStateChanged.emit(true);
174
179
  }
175
- applyHide() {
176
- const host = this.htmlElem();
177
- if (!host || !this.collapsed()) {
178
- return;
179
- }
180
- this.clearHideTimer();
181
- if (!this.visible()) {
182
- this.teardownStack(host);
183
- host.style.display = 'none';
184
- this.resetPanelPosition(host);
185
- this.visible.set(false);
180
+ /**
181
+ * Hides the drawer by animating it out of view.
182
+ *
183
+ * @returns void - No return value. The drawer becomes hidden.
184
+ */
185
+ hide() {
186
+ if (!this.htmlElem())
186
187
  return;
187
- }
188
- if (this.zToken) {
189
- this.zIndexService.release(this.zToken);
190
- this.zToken = null;
191
- }
192
- host.style.zIndex = '';
193
- const rect = host.getBoundingClientRect();
188
+ // Release z-index token
189
+ this.zIndexService.release(this.zToken);
190
+ this.zToken = null;
191
+ this.htmlElem().style.zIndex = '';
192
+ const rect = this.htmlElem().getBoundingClientRect();
194
193
  if (this.mode() === 'push') {
195
194
  if (this.location() === 'end') {
196
- host.style.marginInlineEnd = `-${rect.width}px`;
195
+ this.htmlElem().style.marginInlineEnd = `-${rect.width}px`;
197
196
  }
198
197
  if (this.location() === 'start') {
199
- host.style.marginInlineStart = `-${rect.width}px`;
198
+ this.htmlElem().style.marginInlineStart = `-${rect.width}px`;
200
199
  }
201
200
  if (this.location() === 'bottom') {
202
- host.style.marginBlockStart = `${rect.height}px`;
201
+ this.htmlElem().style.marginBlockStart = `${rect.height}px`;
203
202
  }
204
203
  if (this.location() === 'top') {
205
- host.style.marginBlockStart = `-${rect.height}px`;
204
+ this.htmlElem().style.marginBlockStart = `-${rect.height}px`;
206
205
  }
207
206
  }
208
207
  if (this.mode() === 'overlay') {
209
208
  if (this.location() === 'start') {
210
- this.isRtl() ? (host.style.right = `-${rect.width}px`) : (host.style.left = `-${rect.width}px`);
209
+ this.isRtl()
210
+ ? (this.htmlElem().style.right = `-${rect.width}px`)
211
+ : (this.htmlElem().style.left = `-${rect.width}px`);
211
212
  }
212
213
  if (this.location() === 'end') {
213
- this.isRtl() ? (host.style.left = `-${rect.width}px`) : (host.style.right = `-${rect.width}px`);
214
+ this.isRtl()
215
+ ? (this.htmlElem().style.left = `-${rect.width}px`)
216
+ : (this.htmlElem().style.right = `-${rect.width}px`);
214
217
  }
215
218
  if (this.location() === 'top') {
216
- this.isRtl() ? (host.style.bottom = `-${rect.height}px`) : (host.style.top = `-${rect.height}px`);
219
+ this.isRtl()
220
+ ? (this.htmlElem().style.bottom = `-${rect.height}px`)
221
+ : (this.htmlElem().style.top = `-${rect.height}px`);
217
222
  }
218
223
  if (this.location() === 'bottom') {
219
- this.isRtl() ? (host.style.top = `${rect.height}px`) : (host.style.bottom = `-${rect.height}px`);
224
+ this.isRtl()
225
+ ? (this.htmlElem().style.top = `${rect.height}px`)
226
+ : (this.htmlElem().style.bottom = `${rect.height}px`);
220
227
  }
221
228
  }
222
229
  if (this.backDrop() && this.mode() === 'overlay') {
223
230
  this.removeBackdrop();
224
231
  }
225
- this.visible.set(false);
232
+ this.collapseState.set(false);
226
233
  this.collapseStateChanged.emit(false);
227
- const transitionMs = Math.max(0, this.transition());
228
- this.hideTimer = setTimeout(() => {
229
- if (this.collapsed() && this.htmlElem() && !this.visible()) {
230
- this.htmlElem().style.display = 'none';
231
- this.resetPanelPosition(this.htmlElem());
232
- }
233
- this.hideTimer = null;
234
- }, transitionMs);
235
234
  }
236
- teardownStack(host) {
237
- if (this.zToken) {
238
- this.zIndexService.release(this.zToken);
239
- this.zToken = null;
240
- }
241
- host.style.zIndex = '';
242
- if (this.backDrop() && this.mode() === 'overlay') {
243
- this.removeBackdropImmediate();
235
+ /**
236
+ * Toggles the drawer state between visible and hidden.
237
+ *
238
+ * @returns void - No return value. The drawer state is toggled.
239
+ */
240
+ toggle() {
241
+ if (this.collapseState()) {
242
+ this.hide();
244
243
  }
245
- }
246
- /** Resets inline slide offsets so the next open always animates from a known state. */
247
- resetPanelPosition(host) {
248
- host.style.marginInlineStart = '';
249
- host.style.marginInlineEnd = '';
250
- host.style.marginBlockStart = '';
251
- host.style.marginBlockEnd = '';
252
- host.style.left = '';
253
- host.style.right = '';
254
- host.style.top = '';
255
- host.style.bottom = '';
256
- }
257
- clearHideTimer() {
258
- if (this.hideTimer !== null) {
259
- clearTimeout(this.hideTimer);
260
- this.hideTimer = null;
244
+ else {
245
+ this.show();
261
246
  }
262
247
  }
263
248
  addBackdrop() {
264
- this.removeBackdropImmediate();
265
249
  const backdropElem = document.createElement('div');
266
250
  backdropElem.classList.add('ax-cdk-drawer-backdrop');
267
- backdropElem.dataset['drawerId'] = String(this.id);
268
251
  backdropElem.style.position = 'absolute';
269
252
  backdropElem.style.top = '0';
270
253
  backdropElem.style.width = '100vw';
271
254
  backdropElem.style.height = '100vh';
255
+ // Set backdrop z-index just below the drawer's z-index
272
256
  backdropElem.style.zIndex = String((this.zToken?.zIndex ?? 1001) - 1);
273
257
  backdropElem.style.opacity = '0';
274
258
  backdropElem.style.transition = `opacity ${this.transition()}ms ease`;
275
- backdropElem.classList.add(...this.backdropClass().split(' ').filter(Boolean));
259
+ backdropElem.classList.add(...this.backdropClass().split(' '));
276
260
  this.parent.el.nativeElement.appendChild(backdropElem);
261
+ // Trigger animation after element is added to DOM
277
262
  requestAnimationFrame(() => {
278
263
  backdropElem.style.opacity = '1';
279
264
  });
280
265
  backdropElem.addEventListener('pointerdown', (event) => {
281
266
  event.stopPropagation();
282
- if (!this.htmlElem()?.contains(event.target) && this.visible()) {
267
+ if (!this.htmlElem().contains(event.target) && this.collapseState()) {
283
268
  this.onBackdropClick.emit({ nativeEvent: event, component: this });
284
269
  if (this.closeOnBackdropClick()) {
285
270
  this.hide();
@@ -287,31 +272,28 @@ class AXDrawerItemDirective {
287
272
  }
288
273
  });
289
274
  }
290
- removeBackdropImmediate() {
291
- this.parent.el.nativeElement
292
- .querySelectorAll(`.ax-cdk-drawer-backdrop[data-drawer-id="${this.id}"]`)
293
- .forEach((node) => node.remove());
294
- }
295
275
  removeBackdrop() {
296
- const backdropElem = this.parent.el.nativeElement.querySelector(`.ax-cdk-drawer-backdrop[data-drawer-id="${this.id}"]`);
297
- if (!backdropElem) {
298
- return;
276
+ const backdropElem = this.parent.el.nativeElement.querySelector('.ax-cdk-drawer-backdrop');
277
+ if (backdropElem) {
278
+ backdropElem.style.opacity = '0';
279
+ // Remove element after animation completes
280
+ setTimeout(() => {
281
+ if (backdropElem.parentNode) {
282
+ backdropElem.remove();
283
+ }
284
+ }, parseFloat(String(this.transition())));
299
285
  }
300
- backdropElem.style.opacity = '0';
301
- setTimeout(() => {
302
- backdropElem.remove();
303
- }, Math.max(0, this.transition()));
304
286
  }
305
287
  ngOnDestroy() {
306
- this.clearHideTimer();
307
- if (this.zToken) {
308
- this.zIndexService.release(this.zToken);
309
- this.zToken = null;
288
+ // Release z-index token on destroy
289
+ this.zIndexService.release(this.zToken);
290
+ this.zToken = null;
291
+ if (this.resizeObserver && this.htmlElem()) {
292
+ this.resizeObserver.unobserve(this.htmlElem());
310
293
  }
311
294
  if (isPlatformBrowser(this.platformID)) {
312
- window.removeEventListener('resize', this.onWindowResize);
295
+ window.removeEventListener('resize', this.removeBackDropOnResize);
313
296
  }
314
- this.removeBackdropImmediate();
315
297
  }
316
298
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXDrawerItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
317
299
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.6", type: AXDrawerItemDirective, isStandalone: true, selector: "[axDrawerItem]", inputs: { location: { classPropertyName: "location", publicName: "location", isSignal: true, isRequired: false, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null }, backDrop: { classPropertyName: "backDrop", publicName: "backDrop", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, transition: { classPropertyName: "transition", publicName: "transition", isSignal: true, isRequired: false, transformFunction: null }, closeOnBackdropClick: { classPropertyName: "closeOnBackdropClick", publicName: "closeOnBackdropClick", isSignal: true, isRequired: false, transformFunction: null }, backdropClass: { classPropertyName: "backdropClass", publicName: "backdropClass", isSignal: true, isRequired: false, transformFunction: null }, singleOpenMode: { classPropertyName: "singleOpenMode", publicName: "singleOpenMode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { collapseStateChanged: "collapseStateChanged", location: "locationChange", collapsed: "collapsedChange", backDrop: "backDropChange", mode: "modeChange", transition: "transitionChange", closeOnBackdropClick: "closeOnBackdropClickChange", backdropClass: "backdropClassChange", onBackdropClick: "onBackdropClick", singleOpenMode: "singleOpenModeChange" }, exportAs: ["axDrawerItem"], ngImport: i0 }); }
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-cdk-drawer.mjs","sources":["../../../../packages/cdk/drawer/src/lib/drawer-item.directive.ts","../../../../packages/cdk/drawer/src/lib/drawer-container.directive.ts","../../../../packages/cdk/drawer/src/lib/drawer.module.ts","../../../../packages/cdk/drawer/src/acorex-cdk-drawer.ts"],"sourcesContent":["import { AXClickEvent } from '@acorex/cdk/common';\nimport { AXLocaleService } from '@acorex/core/locale';\nimport { AXZIndexService, AXZToken } from '@acorex/core/z-index';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n afterNextRender,\n Directive,\n effect,\n ElementRef,\n inject,\n model,\n OnDestroy,\n output,\n PLATFORM_ID,\n signal,\n} from '@angular/core';\nimport { AXDrawerContainerDirective } from './drawer-container.directive';\nexport type AXDrawerMode = 'push' | 'overlay';\nexport type AXDrawerLocation = 'start' | 'end' | 'top' | 'bottom';\n\n@Directive({\n selector: '[axDrawerItem]',\n exportAs: 'axDrawerItem',\n})\nexport class AXDrawerItemDirective implements OnDestroy {\n private el = inject(ElementRef);\n private htmlElem = signal<HTMLElement | null>(null);\n private parent = inject(AXDrawerContainerDirective);\n private platformID = inject(PLATFORM_ID);\n private zIndexService = inject(AXZIndexService);\n private localeService = inject(AXLocaleService);\n private zToken: AXZToken | null = null;\n /** Whether the drawer panel is currently shown (DOM + animation state). */\n private visible = signal(false);\n private hideTimer: ReturnType<typeof setTimeout> | null = null;\n private readonly isRtl = this.localeService.isRtl;\n collapseStateChanged = output<boolean>();\n\n location = model<AXDrawerLocation>('start');\n collapsed = model(true);\n backDrop = model(true);\n mode = model<AXDrawerMode>('overlay');\n transition = model<number>(100);\n closeOnBackdropClick = model(false);\n backdropClass = model('ax-bg-black/45');\n onBackdropClick = output<AXClickEvent>();\n singleOpenMode = model(true);\n id = Math.random();\n\n #init = afterNextRender(() => {\n this.htmlElem.set(this.el.nativeElement as HTMLElement);\n this.htmlElem()!.style.height = '100%';\n window.addEventListener('resize', this.onWindowResize);\n });\n\n #eff2 = effect(() => {\n if (!this.htmlElem()) {\n return;\n }\n\n if (this.collapsed()) {\n this.applyHide();\n } else {\n this.applyShow();\n }\n });\n\n #eff3 = effect(() => {\n if (!this.htmlElem()) return;\n\n if (this.mode() === 'overlay') {\n this.htmlElem()!.style.position = 'absolute';\n this.htmlElem()!.style.marginInlineEnd = 'auto';\n this.htmlElem()!.style.marginInlineStart = 'auto';\n this.htmlElem()!.style.marginBlockStart = 'auto';\n this.htmlElem()!.style.marginBlockEnd = 'auto';\n }\n });\n\n #eff4 = effect(() => {\n if (!this.htmlElem()) return;\n\n if (this.mode() === 'push') {\n this.htmlElem()!.style.position = 'relative';\n this.htmlElem()!.style.top = 'auto';\n this.htmlElem()!.style.left = 'auto';\n this.htmlElem()!.style.right = 'auto';\n this.htmlElem()!.style.bottom = 'auto';\n\n switch (this.location()) {\n case 'end':\n this.htmlElem()!.style.order = '999';\n this.parent.el.nativeElement.style.justifyContent = 'space-between';\n break;\n case 'start':\n this.htmlElem()!.style.order = '-999';\n break;\n case 'bottom':\n this.htmlElem()!.style.order = '999';\n this.parent.el.nativeElement.style.flexDirection = 'column';\n break;\n case 'top':\n this.htmlElem()!.style.order = '-999';\n this.parent.el.nativeElement.style.flexDirection = 'column';\n break;\n }\n }\n });\n\n public show() {\n this.collapsed.set(false);\n }\n\n public hide() {\n this.collapsed.set(true);\n }\n\n public toggle() {\n this.collapsed.set(!this.collapsed());\n }\n\n private applyShow() {\n const host = this.htmlElem();\n if (!host || this.collapsed()) {\n return;\n }\n\n this.clearHideTimer();\n\n if (this.singleOpenMode()) {\n this.parent.drawerItem().forEach((item) => {\n if (item.location() === this.location() && item.id !== this.id) {\n item.hide();\n }\n });\n }\n\n if (this.zToken) {\n this.zIndexService.release(this.zToken);\n this.zToken = null;\n }\n\n this.zToken = this.zIndexService.acquire();\n host.style.zIndex = String(this.zToken.zIndex);\n host.style.transition = `${this.transition()}ms all ease`;\n host.style.display = 'block';\n this.resetPanelPosition(host);\n\n if (this.mode() === 'overlay') {\n if (this.location() === 'start') {\n this.isRtl() ? (host.style.right = `0px`) : (host.style.left = `0px`);\n }\n\n if (this.location() === 'end') {\n this.isRtl() ? (host.style.left = `0px`) : (host.style.right = `0px`);\n }\n\n if (this.location() === 'top' || this.location() === 'bottom') {\n host.style.top = `0px`;\n }\n }\n\n if (this.mode() === 'push') {\n if (this.location() === 'start') {\n host.style.marginInlineStart = '0px';\n }\n\n if (this.location() === 'end') {\n host.style.marginInlineEnd = '0px';\n }\n\n if (this.location() === 'bottom') {\n host.style.marginBlockStart = '0px';\n }\n\n if (this.location() === 'top') {\n host.style.marginBlockStart = '0px';\n }\n }\n\n if (this.backDrop() && this.mode() === 'overlay') {\n this.addBackdrop();\n }\n\n this.visible.set(true);\n this.collapseStateChanged.emit(true);\n }\n\n private applyHide() {\n const host = this.htmlElem();\n if (!host || !this.collapsed()) {\n return;\n }\n\n this.clearHideTimer();\n\n if (!this.visible()) {\n this.teardownStack(host);\n host.style.display = 'none';\n this.resetPanelPosition(host);\n this.visible.set(false);\n return;\n }\n\n if (this.zToken) {\n this.zIndexService.release(this.zToken);\n this.zToken = null;\n }\n host.style.zIndex = '';\n\n const rect = host.getBoundingClientRect();\n\n if (this.mode() === 'push') {\n if (this.location() === 'end') {\n host.style.marginInlineEnd = `-${rect.width}px`;\n }\n\n if (this.location() === 'start') {\n host.style.marginInlineStart = `-${rect.width}px`;\n }\n\n if (this.location() === 'bottom') {\n host.style.marginBlockStart = `${rect.height}px`;\n }\n\n if (this.location() === 'top') {\n host.style.marginBlockStart = `-${rect.height}px`;\n }\n }\n\n if (this.mode() === 'overlay') {\n if (this.location() === 'start') {\n this.isRtl() ? (host.style.right = `-${rect.width}px`) : (host.style.left = `-${rect.width}px`);\n }\n\n if (this.location() === 'end') {\n this.isRtl() ? (host.style.left = `-${rect.width}px`) : (host.style.right = `-${rect.width}px`);\n }\n\n if (this.location() === 'top') {\n this.isRtl() ? (host.style.bottom = `-${rect.height}px`) : (host.style.top = `-${rect.height}px`);\n }\n\n if (this.location() === 'bottom') {\n this.isRtl() ? (host.style.top = `${rect.height}px`) : (host.style.bottom = `-${rect.height}px`);\n }\n }\n\n if (this.backDrop() && this.mode() === 'overlay') {\n this.removeBackdrop();\n }\n\n this.visible.set(false);\n this.collapseStateChanged.emit(false);\n\n const transitionMs = Math.max(0, this.transition());\n this.hideTimer = setTimeout(() => {\n if (this.collapsed() && this.htmlElem() && !this.visible()) {\n this.htmlElem()!.style.display = 'none';\n this.resetPanelPosition(this.htmlElem()!);\n }\n this.hideTimer = null;\n }, transitionMs);\n }\n\n private teardownStack(host: HTMLElement) {\n if (this.zToken) {\n this.zIndexService.release(this.zToken);\n this.zToken = null;\n }\n host.style.zIndex = '';\n\n if (this.backDrop() && this.mode() === 'overlay') {\n this.removeBackdropImmediate();\n }\n }\n\n /** Resets inline slide offsets so the next open always animates from a known state. */\n private resetPanelPosition(host: HTMLElement) {\n host.style.marginInlineStart = '';\n host.style.marginInlineEnd = '';\n host.style.marginBlockStart = '';\n host.style.marginBlockEnd = '';\n host.style.left = '';\n host.style.right = '';\n host.style.top = '';\n host.style.bottom = '';\n }\n\n private clearHideTimer() {\n if (this.hideTimer !== null) {\n clearTimeout(this.hideTimer);\n this.hideTimer = null;\n }\n }\n\n private addBackdrop() {\n this.removeBackdropImmediate();\n\n const backdropElem = document.createElement('div');\n backdropElem.classList.add('ax-cdk-drawer-backdrop');\n backdropElem.dataset['drawerId'] = String(this.id);\n backdropElem.style.position = 'absolute';\n backdropElem.style.top = '0';\n backdropElem.style.width = '100vw';\n backdropElem.style.height = '100vh';\n backdropElem.style.zIndex = String((this.zToken?.zIndex ?? 1001) - 1);\n backdropElem.style.opacity = '0';\n backdropElem.style.transition = `opacity ${this.transition()}ms ease`;\n backdropElem.classList.add(...this.backdropClass().split(' ').filter(Boolean));\n\n this.parent.el.nativeElement.appendChild(backdropElem);\n\n requestAnimationFrame(() => {\n backdropElem.style.opacity = '1';\n });\n\n backdropElem.addEventListener('pointerdown', (event: MouseEvent) => {\n event.stopPropagation();\n if (!this.htmlElem()?.contains(event.target as Node) && this.visible()) {\n this.onBackdropClick.emit({ nativeEvent: event, component: this });\n if (this.closeOnBackdropClick()) {\n this.hide();\n }\n }\n });\n }\n\n private removeBackdropImmediate() {\n this.parent.el.nativeElement\n .querySelectorAll(`.ax-cdk-drawer-backdrop[data-drawer-id=\"${this.id}\"]`)\n .forEach((node) => node.remove());\n }\n\n private removeBackdrop() {\n const backdropElem = this.parent.el.nativeElement.querySelector(\n `.ax-cdk-drawer-backdrop[data-drawer-id=\"${this.id}\"]`,\n );\n if (!backdropElem) {\n return;\n }\n\n (backdropElem as HTMLElement).style.opacity = '0';\n\n setTimeout(\n () => {\n backdropElem.remove();\n },\n Math.max(0, this.transition()),\n );\n }\n\n private onWindowResize = () => {\n if (!this.visible() || this.mode() !== 'overlay' || !this.backDrop()) {\n return;\n }\n\n const hasBackdrop = this.parent.el.nativeElement.querySelector(\n `.ax-cdk-drawer-backdrop[data-drawer-id=\"${this.id}\"]`,\n );\n if (!hasBackdrop) {\n this.addBackdrop();\n }\n };\n\n ngOnDestroy(): void {\n this.clearHideTimer();\n\n if (this.zToken) {\n this.zIndexService.release(this.zToken);\n this.zToken = null;\n }\n\n if (isPlatformBrowser(this.platformID)) {\n window.removeEventListener('resize', this.onWindowResize);\n }\n\n this.removeBackdropImmediate();\n }\n}\n","import { afterNextRender, contentChildren, Directive, ElementRef, inject } from '@angular/core';\nimport { AXDrawerItemDirective } from './drawer-item.directive';\n\n@Directive({\n selector: '[axDrawerContainer]',\n exportAs: 'axDrawerContainer',\n})\nexport class AXDrawerContainerDirective {\n el = inject(ElementRef);\n drawerItem = contentChildren(AXDrawerItemDirective, { descendants: true });\n\n #init = afterNextRender(() => {\n const htmlElem = this.el.nativeElement as HTMLElement;\n htmlElem.style.position = 'relative';\n htmlElem.style.overflow = 'hidden';\n htmlElem.style.display = 'flex';\n htmlElem.style.touchAction = 'none';\n htmlElem.style.width = '100%';\n });\n}\n","import { NgModule } from '@angular/core';\nimport { AXDrawerContainerDirective } from './drawer-container.directive';\nimport { AXDrawerItemDirective } from './drawer-item.directive';\n\nconst COMPONENT = [AXDrawerContainerDirective, AXDrawerItemDirective];\n\nconst MODULES = [];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXDrawerDirectiveModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-cdk-drawer.mjs","sources":["../../../../packages/cdk/drawer/src/lib/drawer-item.directive.ts","../../../../packages/cdk/drawer/src/lib/drawer-container.directive.ts","../../../../packages/cdk/drawer/src/lib/drawer.module.ts","../../../../packages/cdk/drawer/src/acorex-cdk-drawer.ts"],"sourcesContent":["import { AXClickEvent } from '@acorex/cdk/common';\nimport { AXLocaleService } from '@acorex/core/locale';\nimport { AXZIndexService, AXZToken } from '@acorex/core/z-index';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n afterNextRender,\n Directive,\n effect,\n ElementRef,\n inject,\n model,\n OnDestroy,\n output,\n PLATFORM_ID,\n signal,\n} from '@angular/core';\nimport { AXDrawerContainerDirective } from './drawer-container.directive';\nexport type AXDrawerMode = 'push' | 'overlay';\nexport type AXDrawerLocation = 'start' | 'end' | 'top' | 'bottom';\n\n@Directive({\n selector: '[axDrawerItem]',\n exportAs: 'axDrawerItem',\n})\nexport class AXDrawerItemDirective implements OnDestroy {\n private el = inject(ElementRef);\n private htmlElem = signal<HTMLElement>(null);\n private parent = inject(AXDrawerContainerDirective);\n private platformID = inject(PLATFORM_ID);\n private zIndexService = inject(AXZIndexService);\n private localeService = inject(AXLocaleService);\n private zToken: AXZToken | null = null;\n private collapseState = signal(false);\n private resizeObserver: ResizeObserver;\n // Reactive RTL flag derived from the active locale profile so the drawer\n // re-positions itself whenever the user switches language at runtime.\n private readonly isRtl = this.localeService.isRtl;\n collapseStateChanged = output<boolean>();\n\n location = model<AXDrawerLocation>('start');\n collapsed = model(true);\n backDrop = model(true);\n mode = model<AXDrawerMode>('overlay');\n transition = model<number>(100);\n closeOnBackdropClick = model(false);\n backdropClass = model('ax-bg-black/45');\n onBackdropClick = output<AXClickEvent>();\n singleOpenMode = model(true);\n id = Math.random();\n\n #init = afterNextRender(() => {\n this.htmlElem.set(this.el.nativeElement as HTMLElement);\n\n if (this.collapsed()) {\n this.htmlElem().style.display = 'none';\n }\n\n this.htmlElem().style.height = '100%';\n\n window.addEventListener('resize', this.removeBackDropOnResize);\n\n this.resizeObserver = new ResizeObserver(() => {\n if (this.collapsed()) {\n this.hide();\n }\n });\n this.resizeObserver.observe(this.htmlElem());\n });\n\n #eff2 = effect(() => {\n if (this.collapsed()) {\n this.hide();\n } else {\n this.show();\n }\n });\n\n #eff3 = effect(() => {\n if (!this.htmlElem()) return;\n\n if (this.mode() === 'overlay') {\n this.htmlElem().style.position = 'absolute';\n this.htmlElem().style.marginInlineEnd = 'auto';\n this.htmlElem().style.marginInlineStart = 'auto';\n this.htmlElem().style.marginBlockStart = 'auto';\n this.htmlElem().style.marginBlockEnd = 'auto';\n }\n });\n\n #eff4 = effect(() => {\n if (!this.htmlElem()) return;\n\n if (this.mode() === 'push') {\n this.htmlElem().style.position = 'relative';\n this.htmlElem().style.top = 'auto';\n this.htmlElem().style.left = 'auto';\n this.htmlElem().style.right = 'auto';\n this.htmlElem().style.bottom = 'auto';\n\n switch (this.location()) {\n case 'end':\n this.htmlElem().style.order = '999';\n this.parent.el.nativeElement.style.justifyContent = 'space-between';\n break;\n case 'start':\n this.htmlElem().style.order = '-999';\n break;\n case 'bottom':\n this.htmlElem().style.order = '999';\n this.parent.el.nativeElement.style.flexDirection = 'column';\n break;\n case 'top':\n this.htmlElem().style.order = '-999';\n this.parent.el.nativeElement.style.flexDirection = 'column';\n break;\n }\n }\n });\n\n /**\n * Shows the drawer by animating it into view.\n *\n * @returns void - No return value. The drawer becomes visible.\n */\n public show() {\n if (!this.htmlElem()) return;\n\n // Idempotency guard: if the drawer is already shown, do not re-acquire a\n // new z-index. Without this guard, repeated show() calls (e.g. from effects\n // re-evaluating on window resize or input changes) would keep incrementing\n // the z-index via AXZIndexService, causing the drawer to jump above other\n // overlays like popup/modal that were opened later.\n if (this.collapseState() && this.zToken) {\n return;\n }\n\n if (this.singleOpenMode()) {\n this.parent.drawerItem().forEach((item) => {\n if (item.location() === this.location() && item.id !== this.id) item.hide();\n });\n }\n\n this.resizeObserver.unobserve(this.htmlElem());\n\n // Release any stale token before acquiring a new one so we never leak\n // tokens inside AXZIndexService.\n if (this.zToken) {\n this.zIndexService.release(this.zToken);\n this.zToken = null;\n }\n\n // Acquire z-index from service\n this.zToken = this.zIndexService.acquire();\n this.htmlElem().style.zIndex = String(this.zToken.zIndex);\n\n this.htmlElem().style.transition = `${this.transition()}ms all ease`;\n this.htmlElem().style.display = 'block';\n\n if (this.mode() === 'overlay') {\n if (this.location() === 'start') {\n this.isRtl() ? (this.htmlElem().style.right = `0px`) : (this.htmlElem().style.left = `0px`);\n }\n\n if (this.location() === 'end') {\n this.isRtl() ? (this.htmlElem().style.left = `0px`) : (this.htmlElem().style.right = `0px`);\n }\n\n if (this.location() === 'top' || this.location() === 'bottom') {\n this.htmlElem().style.top = `0px`;\n }\n }\n\n if (this.mode() === 'push') {\n if (this.location() === 'start') {\n this.htmlElem().style.marginInlineStart = '0px';\n }\n\n if (this.location() === 'end') {\n this.htmlElem().style.marginInlineEnd = '0px';\n }\n\n if (this.location() === 'bottom') {\n this.htmlElem().style.marginBlockStart = '0px';\n }\n\n if (this.location() === 'top') {\n this.htmlElem().style.marginBlockStart = '0px';\n }\n }\n\n if (this.backDrop() && this.mode() === 'overlay') {\n this.addBackdrop();\n }\n\n this.collapseState.set(true);\n this.collapseStateChanged.emit(true);\n }\n\n /**\n * Hides the drawer by animating it out of view.\n *\n * @returns void - No return value. The drawer becomes hidden.\n */\n public hide() {\n if (!this.htmlElem()) return;\n\n // Release z-index token\n this.zIndexService.release(this.zToken);\n this.zToken = null;\n this.htmlElem().style.zIndex = '';\n\n const rect = this.htmlElem().getBoundingClientRect();\n\n if (this.mode() === 'push') {\n if (this.location() === 'end') {\n this.htmlElem().style.marginInlineEnd = `-${rect.width}px`;\n }\n\n if (this.location() === 'start') {\n this.htmlElem().style.marginInlineStart = `-${rect.width}px`;\n }\n\n if (this.location() === 'bottom') {\n this.htmlElem().style.marginBlockStart = `${rect.height}px`;\n }\n\n if (this.location() === 'top') {\n this.htmlElem().style.marginBlockStart = `-${rect.height}px`;\n }\n }\n\n if (this.mode() === 'overlay') {\n if (this.location() === 'start') {\n this.isRtl()\n ? (this.htmlElem().style.right = `-${rect.width}px`)\n : (this.htmlElem().style.left = `-${rect.width}px`);\n }\n\n if (this.location() === 'end') {\n this.isRtl()\n ? (this.htmlElem().style.left = `-${rect.width}px`)\n : (this.htmlElem().style.right = `-${rect.width}px`);\n }\n\n if (this.location() === 'top') {\n this.isRtl()\n ? (this.htmlElem().style.bottom = `-${rect.height}px`)\n : (this.htmlElem().style.top = `-${rect.height}px`);\n }\n\n if (this.location() === 'bottom') {\n this.isRtl()\n ? (this.htmlElem().style.top = `${rect.height}px`)\n : (this.htmlElem().style.bottom = `${rect.height}px`);\n }\n }\n\n if (this.backDrop() && this.mode() === 'overlay') {\n this.removeBackdrop();\n }\n\n this.collapseState.set(false);\n this.collapseStateChanged.emit(false);\n }\n\n /**\n * Toggles the drawer state between visible and hidden.\n *\n * @returns void - No return value. The drawer state is toggled.\n */\n public toggle() {\n if (this.collapseState()) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n private addBackdrop() {\n const backdropElem = document.createElement('div');\n backdropElem.classList.add('ax-cdk-drawer-backdrop');\n backdropElem.style.position = 'absolute';\n backdropElem.style.top = '0';\n backdropElem.style.width = '100vw';\n backdropElem.style.height = '100vh';\n // Set backdrop z-index just below the drawer's z-index\n backdropElem.style.zIndex = String((this.zToken?.zIndex ?? 1001) - 1);\n backdropElem.style.opacity = '0';\n backdropElem.style.transition = `opacity ${this.transition()}ms ease`;\n backdropElem.classList.add(...this.backdropClass().split(' '));\n\n this.parent.el.nativeElement.appendChild(backdropElem);\n\n // Trigger animation after element is added to DOM\n requestAnimationFrame(() => {\n backdropElem.style.opacity = '1';\n });\n backdropElem.addEventListener('pointerdown', (event: MouseEvent) => {\n event.stopPropagation();\n if (!this.htmlElem().contains(event.target as Node) && this.collapseState()) {\n this.onBackdropClick.emit({ nativeEvent: event, component: this });\n if (this.closeOnBackdropClick()) {\n this.hide();\n }\n }\n });\n }\n\n private removeBackdrop() {\n const backdropElem = this.parent.el.nativeElement.querySelector('.ax-cdk-drawer-backdrop');\n if (backdropElem) {\n backdropElem.style.opacity = '0';\n\n // Remove element after animation completes\n setTimeout(\n () => {\n if (backdropElem.parentNode) {\n backdropElem.remove();\n }\n },\n parseFloat(String(this.transition())),\n );\n }\n }\n\n private removeBackDropOnResize = () => {\n if (this.collapseState() && this.mode() === 'overlay') {\n this.removeBackdrop();\n }\n };\n\n ngOnDestroy(): void {\n // Release z-index token on destroy\n this.zIndexService.release(this.zToken);\n this.zToken = null;\n\n if (this.resizeObserver && this.htmlElem()) {\n this.resizeObserver.unobserve(this.htmlElem());\n }\n\n if (isPlatformBrowser(this.platformID)) {\n window.removeEventListener('resize', this.removeBackDropOnResize);\n }\n }\n}\n","import { afterNextRender, contentChildren, Directive, ElementRef, inject } from '@angular/core';\nimport { AXDrawerItemDirective } from './drawer-item.directive';\n\n@Directive({\n selector: '[axDrawerContainer]',\n exportAs: 'axDrawerContainer',\n})\nexport class AXDrawerContainerDirective {\n el = inject(ElementRef);\n drawerItem = contentChildren(AXDrawerItemDirective, { descendants: true });\n\n #init = afterNextRender(() => {\n const htmlElem = this.el.nativeElement as HTMLElement;\n htmlElem.style.position = 'relative';\n htmlElem.style.overflow = 'hidden';\n htmlElem.style.display = 'flex';\n htmlElem.style.touchAction = 'none';\n htmlElem.style.width = '100%';\n });\n}\n","import { NgModule } from '@angular/core';\nimport { AXDrawerContainerDirective } from './drawer-container.directive';\nimport { AXDrawerItemDirective } from './drawer-item.directive';\n\nconst COMPONENT = [AXDrawerContainerDirective, AXDrawerItemDirective];\n\nconst MODULES = [];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXDrawerDirectiveModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAwBa,qBAAqB,CAAA;AAJlC,IAAA,WAAA,GAAA;AAKU,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;QACvB,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAc,IAAI;qFAAC;AACpC,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,0BAA0B,CAAC;AAC3C,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AAChC,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC;AACvC,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC;QACvC,IAAA,CAAA,MAAM,GAAoB,IAAI;QAC9B,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,KAAK;0FAAC;;;AAIpB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK;QACjD,IAAA,CAAA,oBAAoB,GAAG,MAAM,EAAW;QAExC,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAmB,OAAO;qFAAC;QAC3C,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,IAAI;sFAAC;QACvB,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,IAAI;qFAAC;QACtB,IAAA,CAAA,IAAI,GAAG,KAAK,CAAe,SAAS;iFAAC;QACrC,IAAA,CAAA,UAAU,GAAG,KAAK,CAAS,GAAG;uFAAC;QAC/B,IAAA,CAAA,oBAAoB,GAAG,KAAK,CAAC,KAAK;iGAAC;QACnC,IAAA,CAAA,aAAa,GAAG,KAAK,CAAC,gBAAgB;0FAAC;QACvC,IAAA,CAAA,eAAe,GAAG,MAAM,EAAgB;QACxC,IAAA,CAAA,cAAc,GAAG,KAAK,CAAC,IAAI;2FAAC;AAC5B,QAAA,IAAA,CAAA,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE;AAElB,QAAA,IAAA,CAAA,KAAK,GAAG,eAAe,CAAC,MAAK;YAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,aAA4B,CAAC;AAEvD,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;gBACpB,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;YACxC;YAEA,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM;YAErC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC;AAE9D,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,MAAK;AAC5C,gBAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;oBACpB,IAAI,CAAC,IAAI,EAAE;gBACb;AACF,YAAA,CAAC,CAAC;YACF,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC9C,QAAA,CAAC,CAAC;AAEF,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,MAAK;AAClB,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;gBACpB,IAAI,CAAC,IAAI,EAAE;YACb;iBAAO;gBACL,IAAI,CAAC,IAAI,EAAE;YACb;QACF,CAAC;kFAAC;AAEF,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,MAAK;AAClB,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAAE;AAEtB,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;gBAC3C,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,eAAe,GAAG,MAAM;gBAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,iBAAiB,GAAG,MAAM;gBAChD,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,gBAAgB,GAAG,MAAM;gBAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,cAAc,GAAG,MAAM;YAC/C;QACF,CAAC;kFAAC;AAEF,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,MAAK;AAClB,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAAE;AAEtB,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE;gBAC1B,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;gBAC3C,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM;gBAClC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM;gBACnC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM;gBACpC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM;AAErC,gBAAA,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACrB,oBAAA,KAAK,KAAK;wBACR,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK;AACnC,wBAAA,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,GAAG,eAAe;wBACnE;AACF,oBAAA,KAAK,OAAO;wBACV,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM;wBACpC;AACF,oBAAA,KAAK,QAAQ;wBACX,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK;AACnC,wBAAA,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,GAAG,QAAQ;wBAC3D;AACF,oBAAA,KAAK,KAAK;wBACR,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM;AACpC,wBAAA,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,GAAG,QAAQ;wBAC3D;;YAEN;QACF,CAAC;kFAAC;QAgNM,IAAA,CAAA,sBAAsB,GAAG,MAAK;AACpC,YAAA,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBACrD,IAAI,CAAC,cAAc,EAAE;YACvB;AACF,QAAA,CAAC;AAeF,IAAA;AAtSC,IAAA,KAAK;AAmBL,IAAA,KAAK;AAQL,IAAA,KAAK;AAYL,IAAA,KAAK;AA8BL;;;;AAIG;IACI,IAAI,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAAE;;;;;;QAOtB,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE;YACvC;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;YACzB,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AACxC,gBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE;oBAAE,IAAI,CAAC,IAAI,EAAE;AAC7E,YAAA,CAAC,CAAC;QACJ;QAEA,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;;;AAI9C,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AACvC,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI;QACpB;;QAGA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;AAC1C,QAAA,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AAEzD,QAAA,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,CAAA,EAAG,IAAI,CAAC,UAAU,EAAE,aAAa;QACpE,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO;AAEvC,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,SAAS,EAAE;AAC7B,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,OAAO,EAAE;AAC/B,gBAAA,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,CAAA,GAAA,CAAK,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,CAAA,GAAA,CAAK,CAAC;YAC7F;AAEA,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK,EAAE;AAC7B,gBAAA,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,CAAA,GAAA,CAAK,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,CAAA,GAAA,CAAK,CAAC;YAC7F;AAEA,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,QAAQ,EAAE;gBAC7D,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA,GAAA,CAAK;YACnC;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE;AAC1B,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,OAAO,EAAE;gBAC/B,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,iBAAiB,GAAG,KAAK;YACjD;AAEA,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK,EAAE;gBAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,eAAe,GAAG,KAAK;YAC/C;AAEA,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,QAAQ,EAAE;gBAChC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK;YAChD;AAEA,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK,EAAE;gBAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK;YAChD;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,SAAS,EAAE;YAChD,IAAI,CAAC,WAAW,EAAE;QACpB;AAEA,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;IACtC;AAEA;;;;AAIG;IACI,IAAI,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAAE;;QAGtB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AACvC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;QAClB,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE;QAEjC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,qBAAqB,EAAE;AAEpD,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE;AAC1B,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK,EAAE;AAC7B,gBAAA,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,eAAe,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,KAAK,IAAI;YAC5D;AAEA,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,OAAO,EAAE;AAC/B,gBAAA,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,iBAAiB,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,KAAK,IAAI;YAC9D;AAEA,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,QAAQ,EAAE;AAChC,gBAAA,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,gBAAgB,GAAG,CAAA,EAAG,IAAI,CAAC,MAAM,IAAI;YAC7D;AAEA,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK,EAAE;AAC7B,gBAAA,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,gBAAgB,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,MAAM,IAAI;YAC9D;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,SAAS,EAAE;AAC7B,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,OAAO,EAAE;gBAC/B,IAAI,CAAC,KAAK;AACR,uBAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,KAAK,IAAI;AACnD,uBAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,KAAK,CAAA,EAAA,CAAI,CAAC;YACvD;AAEA,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK,EAAE;gBAC7B,IAAI,CAAC,KAAK;AACR,uBAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,KAAK,IAAI;AAClD,uBAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,KAAK,CAAA,EAAA,CAAI,CAAC;YACxD;AAEA,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK,EAAE;gBAC7B,IAAI,CAAC,KAAK;AACR,uBAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,MAAM,IAAI;AACrD,uBAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,MAAM,CAAA,EAAA,CAAI,CAAC;YACvD;AAEA,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,QAAQ,EAAE;gBAChC,IAAI,CAAC,KAAK;AACR,uBAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,MAAM,IAAI;AACjD,uBAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAA,EAAG,IAAI,CAAC,MAAM,CAAA,EAAA,CAAI,CAAC;YACzD;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,SAAS,EAAE;YAChD,IAAI,CAAC,cAAc,EAAE;QACvB;AAEA,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;AAC7B,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC;IACvC;AAEA;;;;AAIG;IACI,MAAM,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;YACxB,IAAI,CAAC,IAAI,EAAE;QACb;aAAO;YACL,IAAI,CAAC,IAAI,EAAE;QACb;IACF;IAEQ,WAAW,GAAA;QACjB,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAClD,QAAA,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,wBAAwB,CAAC;AACpD,QAAA,YAAY,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;AACxC,QAAA,YAAY,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG;AAC5B,QAAA,YAAY,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO;AAClC,QAAA,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO;;AAEnC,QAAA,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,IAAI,IAAI,CAAC,CAAC;AACrE,QAAA,YAAY,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;QAChC,YAAY,CAAC,KAAK,CAAC,UAAU,GAAG,CAAA,QAAA,EAAW,IAAI,CAAC,UAAU,EAAE,CAAA,OAAA,CAAS;AACrE,QAAA,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE9D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,YAAY,CAAC;;QAGtD,qBAAqB,CAAC,MAAK;AACzB,YAAA,YAAY,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;AAClC,QAAA,CAAC,CAAC;QACF,YAAY,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,KAAiB,KAAI;YACjE,KAAK,CAAC,eAAe,EAAE;AACvB,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AAC3E,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAClE,gBAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE,EAAE;oBAC/B,IAAI,CAAC,IAAI,EAAE;gBACb;YACF;AACF,QAAA,CAAC,CAAC;IACJ;IAEQ,cAAc,GAAA;AACpB,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,yBAAyB,CAAC;QAC1F,IAAI,YAAY,EAAE;AAChB,YAAA,YAAY,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;;YAGhC,UAAU,CACR,MAAK;AACH,gBAAA,IAAI,YAAY,CAAC,UAAU,EAAE;oBAC3B,YAAY,CAAC,MAAM,EAAE;gBACvB;AACF,YAAA,CAAC,EACD,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CACtC;QACH;IACF;IAQA,WAAW,GAAA;;QAET,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AACvC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;QAElB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YAC1C,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChD;AAEA,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACtC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC;QACnE;IACF;8GA/TW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,YAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,4BAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE,cAAc;AACzB,iBAAA;;;MChBY,0BAA0B,CAAA;AAJvC,IAAA,WAAA,GAAA;AAKE,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;QACvB,IAAA,CAAA,UAAU,GAAG,eAAe,CAAC,qBAAqB,kFAAI,WAAW,EAAE,IAAI,EAAA,CAAG;AAE1E,QAAA,IAAA,CAAA,KAAK,GAAG,eAAe,CAAC,MAAK;AAC3B,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,aAA4B;AACrD,YAAA,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;AACpC,YAAA,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ;AAClC,YAAA,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;AAC/B,YAAA,QAAQ,CAAC,KAAK,CAAC,WAAW,GAAG,MAAM;AACnC,YAAA,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM;AAC/B,QAAA,CAAC,CAAC;AACH,IAAA;AARC,IAAA,KAAK;8GAJM,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,0GAER,qBAAqB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAFvC,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAJtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,mBAAmB;AAC9B,iBAAA;AAG8B,SAAA,CAAA,EAAA,cAAA,EAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAAA,qBAAqB,CAAA,EAAA,EAAA,GAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;ACL3E,MAAM,SAAS,GAAG,CAAC,0BAA0B,EAAE,qBAAqB,CAAC;AAErE,MAAM,OAAO,GAAG,EAAE;MAOL,uBAAuB,CAAA;8GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,YATjB,0BAA0B,EAAE,qBAAqB,CAAA,EAAA,OAAA,EAAA,CAAjD,0BAA0B,EAAE,qBAAqB,CAAA,EAAA,CAAA,CAAA;AASvD,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,YAJrB,OAAO,CAAA,EAAA,CAAA,CAAA;;2FAIT,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC;AACnC,oBAAA,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC;AACvB,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA;;;ACZD;;AAEG;;"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@acorex/cdk",
3
- "version": "22.3.10",
3
+ "version": "22.3.11",
4
4
  "peerDependencies": {
5
- "@acorex/core": "22.3.10",
5
+ "@acorex/core": "22.3.11",
6
6
  "quill": ">=2.0.2",
7
7
  "qrcode": ">=1.5.4",
8
8
  "swiper": ">=11.1.15",
@@ -13,9 +13,8 @@ declare class AXDrawerItemDirective implements OnDestroy {
13
13
  private zIndexService;
14
14
  private localeService;
15
15
  private zToken;
16
- /** Whether the drawer panel is currently shown (DOM + animation state). */
17
- private visible;
18
- private hideTimer;
16
+ private collapseState;
17
+ private resizeObserver;
19
18
  private readonly isRtl;
20
19
  collapseStateChanged: _angular_core.OutputEmitterRef<boolean>;
21
20
  location: _angular_core.ModelSignal<AXDrawerLocation>;
@@ -28,19 +27,27 @@ declare class AXDrawerItemDirective implements OnDestroy {
28
27
  onBackdropClick: _angular_core.OutputEmitterRef<AXClickEvent>;
29
28
  singleOpenMode: _angular_core.ModelSignal<boolean>;
30
29
  id: number;
30
+ /**
31
+ * Shows the drawer by animating it into view.
32
+ *
33
+ * @returns void - No return value. The drawer becomes visible.
34
+ */
31
35
  show(): void;
36
+ /**
37
+ * Hides the drawer by animating it out of view.
38
+ *
39
+ * @returns void - No return value. The drawer becomes hidden.
40
+ */
32
41
  hide(): void;
42
+ /**
43
+ * Toggles the drawer state between visible and hidden.
44
+ *
45
+ * @returns void - No return value. The drawer state is toggled.
46
+ */
33
47
  toggle(): void;
34
- private applyShow;
35
- private applyHide;
36
- private teardownStack;
37
- /** Resets inline slide offsets so the next open always animates from a known state. */
38
- private resetPanelPosition;
39
- private clearHideTimer;
40
48
  private addBackdrop;
41
- private removeBackdropImmediate;
42
49
  private removeBackdrop;
43
- private onWindowResize;
50
+ private removeBackDropOnResize;
44
51
  ngOnDestroy(): void;
45
52
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXDrawerItemDirective, never>;
46
53
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AXDrawerItemDirective, "[axDrawerItem]", ["axDrawerItem"], { "location": { "alias": "location"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "backDrop": { "alias": "backDrop"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "transition": { "alias": "transition"; "required": false; "isSignal": true; }; "closeOnBackdropClick": { "alias": "closeOnBackdropClick"; "required": false; "isSignal": true; }; "backdropClass": { "alias": "backdropClass"; "required": false; "isSignal": true; }; "singleOpenMode": { "alias": "singleOpenMode"; "required": false; "isSignal": true; }; }, { "collapseStateChanged": "collapseStateChanged"; "location": "locationChange"; "collapsed": "collapsedChange"; "backDrop": "backDropChange"; "mode": "modeChange"; "transition": "transitionChange"; "closeOnBackdropClick": "closeOnBackdropClickChange"; "backdropClass": "backdropClassChange"; "onBackdropClick": "onBackdropClick"; "singleOpenMode": "singleOpenModeChange"; }, never, never, true, never>;