@acorex/cdk 21.0.1-next.13 → 21.0.1-next.14

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.
Files changed (38) hide show
  1. package/common/index.d.ts +7 -9
  2. package/drawer/index.d.ts +2 -0
  3. package/fesm2022/acorex-cdk-accordion.mjs.map +1 -1
  4. package/fesm2022/acorex-cdk-carousel.mjs.map +1 -1
  5. package/fesm2022/acorex-cdk-clipboard.mjs.map +1 -1
  6. package/fesm2022/acorex-cdk-common.mjs +10 -65
  7. package/fesm2022/acorex-cdk-common.mjs.map +1 -1
  8. package/fesm2022/acorex-cdk-dom.mjs.map +1 -1
  9. package/fesm2022/acorex-cdk-double-click.mjs.map +1 -1
  10. package/fesm2022/acorex-cdk-drag-drop.mjs +1 -1
  11. package/fesm2022/acorex-cdk-drag-drop.mjs.map +1 -1
  12. package/fesm2022/acorex-cdk-drawer.mjs +15 -5
  13. package/fesm2022/acorex-cdk-drawer.mjs.map +1 -1
  14. package/fesm2022/acorex-cdk-focus-trap.mjs.map +1 -1
  15. package/fesm2022/acorex-cdk-full-screen.mjs +12 -1
  16. package/fesm2022/acorex-cdk-full-screen.mjs.map +1 -1
  17. package/fesm2022/acorex-cdk-input-mask.mjs.map +1 -1
  18. package/fesm2022/acorex-cdk-list-navigation.mjs.map +1 -1
  19. package/fesm2022/acorex-cdk-outline.mjs.map +1 -1
  20. package/fesm2022/acorex-cdk-overlay.mjs +370 -10
  21. package/fesm2022/acorex-cdk-overlay.mjs.map +1 -1
  22. package/fesm2022/acorex-cdk-pan-view.mjs.map +1 -1
  23. package/fesm2022/acorex-cdk-qrcode.mjs.map +1 -1
  24. package/fesm2022/acorex-cdk-resizable.mjs.map +1 -1
  25. package/fesm2022/acorex-cdk-selection.mjs.map +1 -1
  26. package/fesm2022/acorex-cdk-sliding-item.mjs.map +1 -1
  27. package/fesm2022/acorex-cdk-sticky.mjs.map +1 -1
  28. package/fesm2022/acorex-cdk-uploader.mjs.map +1 -1
  29. package/fesm2022/acorex-cdk-virtual-scroll.mjs.map +1 -1
  30. package/fesm2022/acorex-cdk-wysiwyg.mjs.map +1 -1
  31. package/fesm2022/acorex-cdk-z-index.mjs +35 -0
  32. package/fesm2022/acorex-cdk-z-index.mjs.map +1 -0
  33. package/fesm2022/acorex-cdk.mjs.map +1 -1
  34. package/full-screen/index.d.ts +5 -0
  35. package/overlay/index.d.ts +94 -5
  36. package/package.json +6 -2
  37. package/z-index/README.md +3 -0
  38. package/z-index/index.d.ts +14 -0
@@ -1,6 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { inject, ElementRef, signal, PLATFORM_ID, output, model, afterNextRender, effect, Directive, contentChildren, NgModule } from '@angular/core';
3
3
  import { AXHtmlUtil } from '@acorex/core/utils';
4
+ import { AXZIndexService } from '@acorex/core/z-index';
4
5
  import { isPlatformBrowser } from '@angular/common';
5
6
 
6
7
  class AXDrawerItemDirective {
@@ -9,6 +10,8 @@ class AXDrawerItemDirective {
9
10
  this.htmlElem = signal(null, ...(ngDevMode ? [{ debugName: "htmlElem" }] : []));
10
11
  this.parent = inject(AXDrawerContainerDirective);
11
12
  this.platformID = inject(PLATFORM_ID);
13
+ this.zIndexService = inject(AXZIndexService);
14
+ this.zToken = null;
12
15
  this.collapseState = signal(false, ...(ngDevMode ? [{ debugName: "collapseState" }] : []));
13
16
  this.collapseStateChanged = output();
14
17
  this.location = model('start', ...(ngDevMode ? [{ debugName: "location" }] : []));
@@ -27,7 +30,6 @@ class AXDrawerItemDirective {
27
30
  this.htmlElem().style.display = 'none';
28
31
  }
29
32
  this.htmlElem().style.height = '100%';
30
- this.htmlElem().style.zIndex = '60';
31
33
  window.addEventListener('resize', this.removeBackDropOnResize);
32
34
  this.resizeObserver = new ResizeObserver(() => {
33
35
  if (this.collapsed()) {
@@ -108,6 +110,9 @@ class AXDrawerItemDirective {
108
110
  });
109
111
  }
110
112
  this.resizeObserver.unobserve(this.htmlElem());
113
+ // Acquire z-index from service
114
+ this.zToken = this.zIndexService.acquire();
115
+ this.htmlElem().style.zIndex = String(this.zToken.zIndex);
111
116
  this.htmlElem().style.transition = `${this.transition()}ms all ease`;
112
117
  this.htmlElem().style.display = 'block';
113
118
  if (this.mode() === 'overlay') {
@@ -126,7 +131,6 @@ class AXDrawerItemDirective {
126
131
  }
127
132
  }
128
133
  if (this.mode() === 'push') {
129
- this.htmlElem().style.zIndex = '60';
130
134
  if (this.location() === 'start') {
131
135
  this.htmlElem().style.marginInlineStart = '0px';
132
136
  }
@@ -154,9 +158,12 @@ class AXDrawerItemDirective {
154
158
  hide() {
155
159
  if (!this.htmlElem())
156
160
  return;
161
+ // Release z-index token
162
+ this.zIndexService.release(this.zToken);
163
+ this.zToken = null;
164
+ this.htmlElem().style.zIndex = '';
157
165
  const rect = this.htmlElem().getBoundingClientRect();
158
166
  if (this.mode() === 'push') {
159
- this.htmlElem().style.zIndex = '0';
160
167
  if (this.location() === 'end') {
161
168
  this.htmlElem().style.marginInlineEnd = `-${rect.width}px`;
162
169
  }
@@ -216,10 +223,10 @@ class AXDrawerItemDirective {
216
223
  backdropElem.classList.add('ax-cdk-drawer-backdrop');
217
224
  backdropElem.style.position = 'absolute';
218
225
  backdropElem.style.top = '0';
219
- backdropElem.style.zIndex = '0';
220
226
  backdropElem.style.width = '100vw';
221
227
  backdropElem.style.height = '100vh';
222
- backdropElem.style.zIndex = '50';
228
+ // Set backdrop z-index just below the drawer's z-index
229
+ backdropElem.style.zIndex = String((this.zToken?.zIndex ?? 1001) - 1);
223
230
  backdropElem.style.opacity = '0';
224
231
  backdropElem.style.transition = `opacity ${this.transition()}ms ease`;
225
232
  backdropElem.classList.add(...this.backdropClass().split(' '));
@@ -251,6 +258,9 @@ class AXDrawerItemDirective {
251
258
  }
252
259
  }
253
260
  ngOnDestroy() {
261
+ // Release z-index token on destroy
262
+ this.zIndexService.release(this.zToken);
263
+ this.zToken = null;
254
264
  if (this.resizeObserver && this.htmlElem()) {
255
265
  this.resizeObserver.unobserve(this.htmlElem());
256
266
  }
@@ -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 { AXHtmlUtil } from '@acorex/core/utils';\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 collapseState = signal(false);\n private resizeObserver: ResizeObserver;\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 this.htmlElem().style.zIndex = '60';\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 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 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 AXHtmlUtil.isRtl(this.htmlElem())\n ? (this.htmlElem().style.right = `0px`)\n : (this.htmlElem().style.left = `0px`);\n }\n\n if (this.location() === 'end') {\n AXHtmlUtil.isRtl(this.htmlElem())\n ? (this.htmlElem().style.left = `0px`)\n : (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 this.htmlElem().style.zIndex = '60';\n\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 const rect = this.htmlElem().getBoundingClientRect();\n\n if (this.mode() === 'push') {\n this.htmlElem().style.zIndex = '0';\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 AXHtmlUtil.isRtl(this.htmlElem())\n ? (this.htmlElem().style.right = `-${rect.width}px`)\n : (this.htmlElem().style.left = `-${rect.width}px`);\n }\n\n if (this.location() === 'end') {\n AXHtmlUtil.isRtl(this.htmlElem())\n ? (this.htmlElem().style.left = `-${rect.width}px`)\n : (this.htmlElem().style.right = `-${rect.width}px`);\n }\n\n if (this.location() === 'top') {\n AXHtmlUtil.isRtl(this.htmlElem())\n ? (this.htmlElem().style.bottom = `-${rect.height}px`)\n : (this.htmlElem().style.top = `-${rect.height}px`);\n }\n\n if (this.location() === 'bottom') {\n AXHtmlUtil.isRtl(this.htmlElem())\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.zIndex = '0';\n backdropElem.style.width = '100vw';\n backdropElem.style.height = '100vh';\n backdropElem.style.zIndex = '50';\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 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":"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"}
1
+ {"version":3,"file":"acorex-cdk-drawer.mjs","sources":["../tmp-esm2022/drawer/lib/drawer-item.directive.js","../tmp-esm2022/drawer/lib/drawer-container.directive.js","../tmp-esm2022/drawer/lib/drawer.module.js","../tmp-esm2022/drawer/acorex-cdk-drawer.js"],"sourcesContent":["import { AXHtmlUtil } from '@acorex/core/utils';\nimport { AXZIndexService } from '@acorex/core/z-index';\nimport { isPlatformBrowser } from '@angular/common';\nimport { afterNextRender, Directive, effect, ElementRef, inject, model, output, PLATFORM_ID, signal, } from '@angular/core';\nimport { AXDrawerContainerDirective } from './drawer-container.directive';\nimport * as i0 from \"@angular/core\";\nexport class AXDrawerItemDirective {\n constructor() {\n this.el = inject(ElementRef);\n this.htmlElem = signal(null, ...(ngDevMode ? [{ debugName: \"htmlElem\" }] : []));\n this.parent = inject(AXDrawerContainerDirective);\n this.platformID = inject(PLATFORM_ID);\n this.zIndexService = inject(AXZIndexService);\n this.zToken = null;\n this.collapseState = signal(false, ...(ngDevMode ? [{ debugName: \"collapseState\" }] : []));\n this.collapseStateChanged = output();\n this.location = model('start', ...(ngDevMode ? [{ debugName: \"location\" }] : []));\n this.collapsed = model(true, ...(ngDevMode ? [{ debugName: \"collapsed\" }] : []));\n this.backDrop = model(true, ...(ngDevMode ? [{ debugName: \"backDrop\" }] : []));\n this.mode = model('overlay', ...(ngDevMode ? [{ debugName: \"mode\" }] : []));\n this.transition = model(100, ...(ngDevMode ? [{ debugName: \"transition\" }] : []));\n this.closeOnBackdropClick = model(false, ...(ngDevMode ? [{ debugName: \"closeOnBackdropClick\" }] : []));\n this.backdropClass = model('ax-bg-black/45', ...(ngDevMode ? [{ debugName: \"backdropClass\" }] : []));\n this.onBackdropClick = output();\n this.singleOpenMode = model(true, ...(ngDevMode ? [{ debugName: \"singleOpenMode\" }] : []));\n this.id = Math.random();\n this.#init = afterNextRender(() => {\n this.htmlElem.set(this.el.nativeElement);\n if (this.collapsed()) {\n this.htmlElem().style.display = 'none';\n }\n this.htmlElem().style.height = '100%';\n window.addEventListener('resize', this.removeBackDropOnResize);\n this.resizeObserver = new ResizeObserver(() => {\n if (this.collapsed()) {\n this.hide();\n }\n });\n this.resizeObserver.observe(this.htmlElem());\n });\n this.#eff2 = effect(() => {\n if (this.collapsed()) {\n this.hide();\n }\n else {\n this.show();\n }\n }, ...(ngDevMode ? [{ debugName: \"#eff2\" }] : []));\n this.#eff3 = effect(() => {\n if (!this.htmlElem())\n return;\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 }, ...(ngDevMode ? [{ debugName: \"#eff3\" }] : []));\n this.#eff4 = effect(() => {\n if (!this.htmlElem())\n return;\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 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 }, ...(ngDevMode ? [{ debugName: \"#eff4\" }] : []));\n this.removeBackDropOnResize = () => {\n if (this.collapseState() && this.mode() === 'overlay') {\n this.removeBackdrop();\n }\n };\n }\n #init;\n #eff2;\n #eff3;\n #eff4;\n /**\n * Shows the drawer by animating it into view.\n *\n * @returns void - No return value. The drawer becomes visible.\n */\n show() {\n if (!this.htmlElem())\n return;\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 this.resizeObserver.unobserve(this.htmlElem());\n // Acquire z-index from service\n this.zToken = this.zIndexService.acquire();\n this.htmlElem().style.zIndex = String(this.zToken.zIndex);\n this.htmlElem().style.transition = `${this.transition()}ms all ease`;\n this.htmlElem().style.display = 'block';\n if (this.mode() === 'overlay') {\n if (this.location() === 'start') {\n AXHtmlUtil.isRtl(this.htmlElem())\n ? (this.htmlElem().style.right = `0px`)\n : (this.htmlElem().style.left = `0px`);\n }\n if (this.location() === 'end') {\n AXHtmlUtil.isRtl(this.htmlElem())\n ? (this.htmlElem().style.left = `0px`)\n : (this.htmlElem().style.right = `0px`);\n }\n if (this.location() === 'top' || this.location() === 'bottom') {\n this.htmlElem().style.top = `0px`;\n }\n }\n if (this.mode() === 'push') {\n if (this.location() === 'start') {\n this.htmlElem().style.marginInlineStart = '0px';\n }\n if (this.location() === 'end') {\n this.htmlElem().style.marginInlineEnd = '0px';\n }\n if (this.location() === 'bottom') {\n this.htmlElem().style.marginBlockStart = '0px';\n }\n if (this.location() === 'top') {\n this.htmlElem().style.marginBlockStart = '0px';\n }\n }\n if (this.backDrop() && this.mode() === 'overlay') {\n this.addBackdrop();\n }\n this.collapseState.set(true);\n this.collapseStateChanged.emit(true);\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 hide() {\n if (!this.htmlElem())\n return;\n // Release z-index token\n this.zIndexService.release(this.zToken);\n this.zToken = null;\n this.htmlElem().style.zIndex = '';\n const rect = this.htmlElem().getBoundingClientRect();\n if (this.mode() === 'push') {\n if (this.location() === 'end') {\n this.htmlElem().style.marginInlineEnd = `-${rect.width}px`;\n }\n if (this.location() === 'start') {\n this.htmlElem().style.marginInlineStart = `-${rect.width}px`;\n }\n if (this.location() === 'bottom') {\n this.htmlElem().style.marginBlockStart = `${rect.height}px`;\n }\n if (this.location() === 'top') {\n this.htmlElem().style.marginBlockStart = `-${rect.height}px`;\n }\n }\n if (this.mode() === 'overlay') {\n if (this.location() === 'start') {\n AXHtmlUtil.isRtl(this.htmlElem())\n ? (this.htmlElem().style.right = `-${rect.width}px`)\n : (this.htmlElem().style.left = `-${rect.width}px`);\n }\n if (this.location() === 'end') {\n AXHtmlUtil.isRtl(this.htmlElem())\n ? (this.htmlElem().style.left = `-${rect.width}px`)\n : (this.htmlElem().style.right = `-${rect.width}px`);\n }\n if (this.location() === 'top') {\n AXHtmlUtil.isRtl(this.htmlElem())\n ? (this.htmlElem().style.bottom = `-${rect.height}px`)\n : (this.htmlElem().style.top = `-${rect.height}px`);\n }\n if (this.location() === 'bottom') {\n AXHtmlUtil.isRtl(this.htmlElem())\n ? (this.htmlElem().style.top = `${rect.height}px`)\n : (this.htmlElem().style.bottom = `${rect.height}px`);\n }\n }\n if (this.backDrop() && this.mode() === 'overlay') {\n this.removeBackdrop();\n }\n this.collapseState.set(false);\n this.collapseStateChanged.emit(false);\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 toggle() {\n if (this.collapseState()) {\n this.hide();\n }\n else {\n this.show();\n }\n }\n 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 this.parent.el.nativeElement.appendChild(backdropElem);\n // Trigger animation after element is added to DOM\n requestAnimationFrame(() => {\n backdropElem.style.opacity = '1';\n });\n backdropElem.addEventListener('pointerdown', (event) => {\n event.stopPropagation();\n if (!this.htmlElem().contains(event.target) && this.collapseState()) {\n this.onBackdropClick.emit({ nativeEvent: event, component: this });\n if (this.closeOnBackdropClick()) {\n this.hide();\n }\n }\n });\n }\n removeBackdrop() {\n const backdropElem = this.parent.el.nativeElement.querySelector('.ax-cdk-drawer-backdrop');\n if (backdropElem) {\n backdropElem.style.opacity = '0';\n // Remove element after animation completes\n setTimeout(() => {\n if (backdropElem.parentNode) {\n backdropElem.remove();\n }\n }, parseFloat(String(this.transition())));\n }\n }\n ngOnDestroy() {\n // Release z-index token on destroy\n this.zIndexService.release(this.zToken);\n this.zToken = null;\n if (this.resizeObserver && this.htmlElem()) {\n this.resizeObserver.unobserve(this.htmlElem());\n }\n if (isPlatformBrowser(this.platformID)) {\n window.removeEventListener('resize', this.removeBackDropOnResize);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXDrawerItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.15\", 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 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXDrawerItemDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axDrawerItem]',\n exportAs: 'axDrawerItem',\n }]\n }], propDecorators: { collapseStateChanged: [{ type: i0.Output, args: [\"collapseStateChanged\"] }], location: [{ type: i0.Input, args: [{ isSignal: true, alias: \"location\", required: false }] }, { type: i0.Output, args: [\"locationChange\"] }], collapsed: [{ type: i0.Input, args: [{ isSignal: true, alias: \"collapsed\", required: false }] }, { type: i0.Output, args: [\"collapsedChange\"] }], backDrop: [{ type: i0.Input, args: [{ isSignal: true, alias: \"backDrop\", required: false }] }, { type: i0.Output, args: [\"backDropChange\"] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: \"mode\", required: false }] }, { type: i0.Output, args: [\"modeChange\"] }], transition: [{ type: i0.Input, args: [{ isSignal: true, alias: \"transition\", required: false }] }, { type: i0.Output, args: [\"transitionChange\"] }], closeOnBackdropClick: [{ type: i0.Input, args: [{ isSignal: true, alias: \"closeOnBackdropClick\", required: false }] }, { type: i0.Output, args: [\"closeOnBackdropClickChange\"] }], backdropClass: [{ type: i0.Input, args: [{ isSignal: true, alias: \"backdropClass\", required: false }] }, { type: i0.Output, args: [\"backdropClassChange\"] }], onBackdropClick: [{ type: i0.Output, args: [\"onBackdropClick\"] }], singleOpenMode: [{ type: i0.Input, args: [{ isSignal: true, alias: \"singleOpenMode\", required: false }] }, { type: i0.Output, args: [\"singleOpenModeChange\"] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLWl0ZW0uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY2RrL2RyYXdlci9zcmMvbGliL2RyYXdlci1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBWSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFDTCxlQUFlLEVBQ2YsU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFFTCxNQUFNLEVBQ04sV0FBVyxFQUNYLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFRMUUsTUFBTSxPQUFPLHFCQUFxQjtJQUpsQztRQUtVLE9BQUUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEIsYUFBUSxHQUFHLE1BQU0sQ0FBYyxJQUFJLG9EQUFDLENBQUM7UUFDckMsV0FBTSxHQUFHLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQzVDLGVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakMsa0JBQWEsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDeEMsV0FBTSxHQUFvQixJQUFJLENBQUM7UUFDL0Isa0JBQWEsR0FBRyxNQUFNLENBQUMsS0FBSyx5REFBQyxDQUFDO1FBRXRDLHlCQUFvQixHQUFHLE1BQU0sRUFBVyxDQUFDO1FBRXpDLGFBQVEsR0FBRyxLQUFLLENBQW1CLE9BQU8sb0RBQUMsQ0FBQztRQUM1QyxjQUFTLEdBQUcsS0FBSyxDQUFDLElBQUkscURBQUMsQ0FBQztRQUN4Qixh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QkFBcUI7a0JBSmpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsUUFBUSxFQUFFLGNBQWM7aUJBQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDbGlja0V2ZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYSHRtbFV0aWwgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgQVhaSW5kZXhTZXJ2aWNlLCBBWFpUb2tlbiB9IGZyb20gJ0BhY29yZXgvY29yZS96LWluZGV4JztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIGFmdGVyTmV4dFJlbmRlcixcbiAgRGlyZWN0aXZlLFxuICBlZmZlY3QsXG4gIEVsZW1lbnRSZWYsXG4gIGluamVjdCxcbiAgbW9kZWwsXG4gIE9uRGVzdHJveSxcbiAgb3V0cHV0LFxuICBQTEFURk9STV9JRCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYRHJhd2VyQ29udGFpbmVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kcmF3ZXItY29udGFpbmVyLmRpcmVjdGl2ZSc7XG5leHBvcnQgdHlwZSBBWERyYXdlck1vZGUgPSAncHVzaCcgfCAnb3ZlcmxheSc7XG5leHBvcnQgdHlwZSBBWERyYXdlckxvY2F0aW9uID0gJ3N0YXJ0JyB8ICdlbmQnIHwgJ3RvcCcgfCAnYm90dG9tJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2F4RHJhd2VySXRlbV0nLFxuICBleHBvcnRBczogJ2F4RHJhd2VySXRlbScsXG59KVxuZXhwb3J0IGNsYXNzIEFYRHJhd2VySXRlbURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgZWwgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHByaXZhdGUgaHRtbEVsZW0gPSBzaWduYWw8SFRNTEVsZW1lbnQ+KG51bGwpO1xuICBwcml2YXRlIHBhcmVudCA9IGluamVjdChBWERyYXdlckNvbnRhaW5lckRpcmVjdGl2ZSk7XG4gIHByaXZhdGUgcGxhdGZvcm1JRCA9IGluamVjdChQTEFURk9STV9JRCk7XG4gIHByaXZhdGUgekluZGV4U2VydmljZSA9IGluamVjdChBWFpJbmRleFNlcnZpY2UpO1xuICBwcml2YXRlIHpUb2tlbjogQVhaVG9rZW4gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBjb2xsYXBzZVN0YXRlID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJpdmF0ZSByZXNpemVPYnNlcnZlcjogUmVzaXplT2JzZXJ2ZXI7XG4gIGNvbGxhcHNlU3RhdGVDaGFuZ2VkID0gb3V0cHV0PGJvb2xlYW4+KCk7XG5cbiAgbG9jYXRpb24gPSBtb2RlbDxBWERyYXdlckxvY2F0aW9uPignc3RhcnQnKTtcbiAgY29sbGFwc2VkID0gbW9kZWwodHJ1ZSk7XG4gIGJhY2tEcm9wID0gbW9kZWwodHJ1ZSk7XG4gIG1vZGUgPSBtb2RlbDxBWERyYXdlck1vZGU+KCdvdmVybGF5Jyk7XG4gIHRyYW5zaXRpb24gPSBtb2RlbDxudW1iZXI+KDEwMCk7XG4gIGNsb3NlT25CYWNrZHJvcENsaWNrID0gbW9kZWwoZmFsc2UpO1xuICBiYWNrZHJvcENsYXNzID0gbW9kZWwoJ2F4LWJnLWJsYWNrLzQ1Jyk7XG4gIG9uQmFja2Ryb3BDbGljayA9IG91dHB1dDxBWENsaWNrRXZlbnQ+KCk7XG4gIHNpbmdsZU9wZW5Nb2RlID0gbW9kZWwodHJ1ZSk7XG4gIGlkID0gTWF0aC5yYW5kb20oKTtcblxuICAjaW5pdCA9IGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgdGhpcy5odG1sRWxlbS5zZXQodGhpcy5lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KTtcblxuICAgIGlmICh0aGlzLmNvbGxhcHNlZCgpKSB7XG4gICAgICB0aGlzLmh0bWxFbGVtKCkuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICB9XG5cbiAgICB0aGlzLmh0bWxFbGVtKCkuc3R5bGUuaGVpZ2h0ID0gJzEwMCUnO1xuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMucmVtb3ZlQmFja0Ryb3BPblJlc2l6ZSk7XG5cbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmNvbGxhcHNlZCgpKSB7XG4gICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmh0bWxFbGVtKCkpO1xuICB9KTtcblxuICAjZWZmMiA9IGVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuY29sbGFwc2VkKCkpIHtcbiAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNob3coKTtcbiAgICB9XG4gIH0pO1xuXG4gICNlZmYzID0gZWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXRoaXMuaHRtbEVsZW0oKSkgcmV0dXJuO1xuXG4gICAgaWYgKHRoaXMubW9kZSgpID09PSAnb3ZlcmxheScpIHtcbiAgICAgIHRoaXMuaHRtbEVsZW0oKS5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgICB0aGlzLmh0bWxFbGVtKCkuc3R5bGUubWFyZ2luSW5saW5lRW5kID0gJ2F1dG8nO1xuICAgICAgdGhpcy5odG1sRWxlbSgpLnN0eWxlLm1hcmdpbklubGluZVN0YXJ0ID0gJ2F1dG8nO1xuICAgICAgdGhpcy5odG1sRWxlbSgpLnN0eWxlLm1hcmdpbkJsb2NrU3RhcnQgPSAnYXV0byc7XG4gICAgICB0aGlzLmh0bWxFbGVtKCkuc3R5bGUubWFyZ2luQmxvY2tFbmQgPSAnYXV0byc7XG4gICAgfVxuICB9KTtcblxuICAjZWZmNCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF0aGlzLmh0bWxFbGVtKCkpIHJldHVybjtcblxuICAgIGlmICh0aGlzLm1vZGUoKSA9PT0gJ3B1c2gnKSB7XG4gICAgICB0aGlzLmh0bWxFbGVtKCkuc3R5bGUucG9zaXRpb24gPSAncmVsYXRpdmUnO1xuICAgICAgdGhpcy5odG1sRWxlbSgpLnN0eWxlLnRvcCA9ICdhdXRvJztcbiAgICAgIHRoaXMuaHRtbEVsZW0oKS5zdHlsZS5sZWZ0ID0gJ2F1dG8nO1xuICAgICAgdGhpcy5odG1sRWxlbSgpLnN0eWxlLnJpZ2h0ID0gJ2F1dG8nO1xuICAgICAgdGhpcy5odG1sRWxlbSgpLnN0eWxlLmJvdHRvbSA9ICdhdXRvJztcblxuICAgICAgc3dpdGNoICh0aGlzLmxvY2F0aW9uKCkpIHtcbiAgICAgICAgY2FzZSAnZW5kJzpcbiAgICAgICAgICB0aGlzLmh0bWxFbGVtKCkuc3R5bGUub3JkZXIgPSAnOTk5JztcbiAgICAgICAgICB0aGlzLnBhcmVudC5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLmp1c3RpZnlDb250ZW50ID0gJ3NwYWNlLWJldHdlZW4nO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdzdGFydCc6XG4gICAgICAgICAgdGhpcy5odG1sRWxlbSgpLnN0eWxlLm9yZGVyID0gJy05OTknO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICAgIHRoaXMuaHRtbEVsZW0oKS5zdHlsZS5vcmRlciA9ICc5OTknO1xuICAgICAgICAgIHRoaXMucGFyZW50LmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuZmxleERpcmVjdGlvbiA9ICdjb2x1bW4nO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICd0b3AnOlxuICAgICAgICAgIHRoaXMuaHRtbEVsZW0oKS5zdHlsZS5vcmRlciA9ICctOTk5JztcbiAgICAgICAgICB0aGlzLnBhcmVudC5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLmZsZXhEaXJlY3Rpb24gPSAnY29sdW1uJztcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBTaG93cyB0aGUgZHJhd2VyIGJ5IGFuaW1hdGluZyBpdCBpbnRvIHZpZXcuXG4gICAqXG4gICAqIEByZXR1cm5zIHZvaWQgLSBObyByZXR1cm4gdmFsdWUuIFRoZSBkcmF3ZXIgYmVjb21lcyB2aXNpYmxlLlxuICAgKi9cbiAgcHVibGljIHNob3coKSB7XG4gICAgaWYgKCF0aGlzLmh0bWxFbGVtKCkpIHJldHVybjtcblxuICAgIGlmICh0aGlzLnNpbmdsZU9wZW5Nb2RlKCkpIHtcbiAgICAgIHRoaXMucGFyZW50LmRyYXdlckl0ZW0oKS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGlmIChpdGVtLmxvY2F0aW9uKCkgPT09IHRoaXMubG9jYXRpb24oKSAmJiBpdGVtLmlkICE9PSB0aGlzLmlkKSBpdGVtLmhpZGUoKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIudW5vYnNlcnZlKHRoaXMuaHRtbEVsZW0oKSk7XG5cbiAgICAvLyBBY3F1aXJlIHotaW5kZXggZnJvbSBzZXJ2aWNlXG4gICAgdGhpcy56VG9rZW4gPSB0aGlzLnpJbmRleFNlcnZpY2UuYWNxdWlyZSgpO1xuICAgIHRoaXMuaHRtbEVsZW0oKS5zdHlsZS56SW5kZXggPSBTdHJpbmcodGhpcy56VG9rZW4uekluZGV4KTtcblxuICAgIHRoaXMuaHRtbEVsZW0oKS5zdHlsZS50cmFuc2l0aW9uID0gYCR7dGhpcy50cmFuc2l0aW9uKCl9bXMgYWxsIGVhc2VgO1xuICAgIHRoaXMuaHRtbEVsZW0oKS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcblxuICAgIGlmICh0aGlzLm1vZGUoKSA9PT0gJ292ZXJsYXknKSB7XG4gICAgICBpZiAodGhpcy5sb2NhdGlvbigpID09PSAnc3RhcnQnKSB7XG4gICAgICAgIEFYSHRtbFV0aWwuaXNSdGwodGhpcy5odG1sRWxlbSgpKVxuICAgICAgICAgID8gKHRoaXMuaHRtbEVsZW0oKS5zdHlsZS5yaWdodCA9IGAwcHhgKVxuICAgICAgICAgIDogKHRoaXMuaHRtbEVsZW0oKS5zdHlsZS5sZWZ0ID0gYDBweGApO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5sb2NhdGlvbigpID09PSAnZW5kJykge1xuICAgICAgICBBWEh0bWxVdGlsLmlzUnRsKHRoaXMuaHRtbEVsZW0oKSlcbiAgICAgICAgICA/ICh0aGlzLmh0bWxFbGVtKCkuc3R5bGUubGVmdCA9IGAwcHhgKVxuICAgICAgICAgIDogKHRoaXMuaHRtbEVsZW0oKS5zdHlsZS5yaWdodCA9IGAwcHhgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMubG9jYXRpb24oKSA9PT0gJ3RvcCcgfHwgdGhpcy5sb2NhdGlvbigpID09PSAnYm90dG9tJykge1xuICAgICAgICB0aGlzLmh0bWxFbGVtKCkuc3R5bGUudG9wID0gYDBweGA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubW9kZSgpID09PSAncHVzaCcpIHtcbiAgICAgIGlmICh0aGlzLmxvY2F0aW9uKCkgPT09ICdzdGFydCcpIHtcbiAgICAgICAgdGhpcy5odG1sRWxlbSgpLnN0eWxlLm1hcmdpbklubGluZVN0YXJ0ID0gJzBweCc7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmxvY2F0aW9uKCkgPT09ICdlbmQnKSB7XG4gICAgICAgIHRoaXMuaHRtbEVsZW0oKS5zdHlsZS5tYXJnaW5JbmxpbmVFbmQgPSAnMHB4JztcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMubG9jYXRpb24oKSA9PT0gJ2JvdHRvbScpIHtcbiAgICAgICAgdGhpcy5odG1sRWxlbSgpLnN0eWxlLm1hcmdpbkJsb2NrU3RhcnQgPSAnMHB4JztcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMubG9jYXRpb24oKSA9PT0gJ3RvcCcpIHtcbiAgICAgICAgdGhpcy5odG1sRWxlbSgpLnN0eWxlLm1hcmdpbkJsb2NrU3RhcnQgPSAnMHB4JztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5iYWNrRHJvcCgpICYmIHRoaXMubW9kZSgpID09PSAnb3ZlcmxheScpIHtcbiAgICAgIHRoaXMuYWRkQmFja2Ryb3AoKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbGxhcHNlU3RhdGUuc2V0KHRydWUpO1xuICAgIHRoaXMuY29sbGFwc2VTdGF0ZUNoYW5nZWQuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIaWRlcyB0aGUgZHJhd2VyIGJ5IGFuaW1hdGluZyBpdCBvdXQgb2Ygdmlldy5cbiAgICpcbiAgICogQHJldHVybnMgdm9pZCAtIE5vIHJldHVybiB2YWx1ZS4gVGhlIGRyYXdlciBiZWNvbWVzIGhpZGRlbi5cbiAgICovXG4gIHB1YmxpYyBoaWRlKCkge1xuICAgIGlmICghdGhpcy5odG1sRWxlbSgpKSByZXR1cm47XG5cbiAgICAvLyBSZWxlYXNlIHotaW5kZXggdG9rZW5cbiAgICB0aGlzLnpJbmRleFNlcnZpY2UucmVsZWFzZSh0aGlzLnpUb2tlbik7XG4gICAgdGhpcy56VG9rZW4gPSBudWxsO1xuICAgIHRoaXMuaHRtbEVsZW0oKS5zdHlsZS56SW5kZXggPSAnJztcblxuICAgIGNvbnN0IHJlY3QgPSB0aGlzLmh0bWxFbGVtKCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBpZiAodGhpcy5tb2RlKCkgPT09ICdwdXNoJykge1xuICAgICAgaWYgKHRoaXMubG9jYXRpb24oKSA9PT0gJ2VuZCcpIHtcbiAgICAgICAgdGhpcy5odG1sRWxlbSgpLnN0eWxlLm1hcmdpbklubGluZUVuZCA9IGAtJHtyZWN0LndpZHRofXB4YDtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMubG9jYXRpb24oKSA9PT0gJ3N0YXJ0Jykge1xuICAgICAgICB0aGlzLmh0bWxFbGVtKCkuc3R5bGUubWFyZ2luSW5saW5lU3RhcnQgPSBgLSR7cmVjdC53aWR0aH1weGA7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmxvY2F0aW9uKCkgPT09ICdib3R0b20nKSB7XG4gICAgICAgIHRoaXMuaHRtbEVsZW0oKS5zdHlsZS5tYXJnaW5CbG9ja1N0YXJ0ID0gYCR7cmVjdC5oZWlnaHR9cHhgO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5sb2NhdGlvbigpID09PSAndG9wJykge1xuICAgICAgICB0aGlzLmh0bWxFbGVtKCkuc3R5bGUubWFyZ2luQmxvY2tTdGFydCA9IGAtJHtyZWN0LmhlaWdodH1weGA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubW9kZSgpID09PSAnb3ZlcmxheScpIHtcbiAgICAgIGlmICh0aGlzLmxvY2F0aW9uKCkgPT09ICdzdGFydCcpIHtcbiAgICAgICAgQVhIdG1sVXRpbC5pc1J0bCh0aGlzLmh0bWxFbGVtKCkpXG4gICAgICAgICAgPyAodGhpcy5odG1sRWxlbSgpLnN0eWxlLnJpZ2h0ID0gYC0ke3JlY3Qud2lkdGh9cHhgKVxuICAgICAgICAgIDogKHRoaXMuaHRtbEVsZW0oKS5zdHlsZS5sZWZ0ID0gYC0ke3JlY3Qud2lkdGh9cHhgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMubG9jYXRpb24oKSA9PT0gJ2VuZCcpIHtcbiAgICAgICAgQVhIdG1sVXRpbC5pc1J0bCh0aGlzLmh0bWxFbGVtKCkpXG4gICAgICAgICAgPyAodGhpcy5odG1sRWxlbSgpLnN0eWxlLmxlZnQgPSBgLSR7cmVjdC53aWR0aH1weGApXG4gICAgICAgICAgOiAodGhpcy5odG1sRWxlbSgpLnN0eWxlLnJpZ2h0ID0gYC0ke3JlY3Qud2lkdGh9cHhgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMubG9jYXRpb24oKSA9PT0gJ3RvcCcpIHtcbiAgICAgICAgQVhIdG1sVXRpbC5pc1J0bCh0aGlzLmh0bWxFbGVtKCkpXG4gICAgICAgICAgPyAodGhpcy5odG1sRWxlbSgpLnN0eWxlLmJvdHRvbSA9IGAtJHtyZWN0LmhlaWdodH1weGApXG4gICAgICAgICAgOiAodGhpcy5odG1sRWxlbSgpLnN0eWxlLnRvcCA9IGAtJHtyZWN0LmhlaWdodH1weGApO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5sb2NhdGlvbigpID09PSAnYm90dG9tJykge1xuICAgICAgICBBWEh0bWxVdGlsLmlzUnRsKHRoaXMuaHRtbEVsZW0oKSlcbiAgICAgICAgICA/ICh0aGlzLmh0bWxFbGVtKCkuc3R5bGUudG9wID0gYCR7cmVjdC5oZWlnaHR9cHhgKVxuICAgICAgICAgIDogKHRoaXMuaHRtbEVsZW0oKS5zdHlsZS5ib3R0b20gPSBgJHtyZWN0LmhlaWdodH1weGApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmJhY2tEcm9wKCkgJiYgdGhpcy5tb2RlKCkgPT09ICdvdmVybGF5Jykge1xuICAgICAgdGhpcy5yZW1vdmVCYWNrZHJvcCgpO1xuICAgIH1cblxuICAgIHRoaXMuY29sbGFwc2VTdGF0ZS5zZXQoZmFsc2UpO1xuICAgIHRoaXMuY29sbGFwc2VTdGF0ZUNoYW5nZWQuZW1pdChmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlcyB0aGUgZHJhd2VyIHN0YXRlIGJldHdlZW4gdmlzaWJsZSBhbmQgaGlkZGVuLlxuICAgKlxuICAgKiBAcmV0dXJucyB2b2lkIC0gTm8gcmV0dXJuIHZhbHVlLiBUaGUgZHJhd2VyIHN0YXRlIGlzIHRvZ2dsZWQuXG4gICAqL1xuICBwdWJsaWMgdG9nZ2xlKCkge1xuICAgIGlmICh0aGlzLmNvbGxhcHNlU3RhdGUoKSkge1xuICAgICAgdGhpcy5oaWRlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2hvdygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWRkQmFja2Ryb3AoKSB7XG4gICAgY29uc3QgYmFja2Ryb3BFbGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgYmFja2Ryb3BFbGVtLmNsYXNzTGlzdC5hZGQoJ2F4LWNkay1kcmF3ZXItYmFja2Ryb3AnKTtcbiAgICBiYWNrZHJvcEVsZW0uc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgIGJhY2tkcm9wRWxlbS5zdHlsZS50b3AgPSAnMCc7XG4gICAgYmFja2Ryb3BFbGVtLnN0eWxlLndpZHRoID0gJzEwMHZ3JztcbiAgICBiYWNrZHJvcEVsZW0uc3R5bGUuaGVpZ2h0ID0gJzEwMHZoJztcbiAgICAvLyBTZXQgYmFja2Ryb3Agei1pbmRleCBqdXN0IGJlbG93IHRoZSBkcmF3ZXIncyB6LWluZGV4XG4gICAgYmFja2Ryb3BFbGVtLnN0eWxlLnpJbmRleCA9IFN0cmluZygodGhpcy56VG9rZW4/LnpJbmRleCA/PyAxMDAxKSAtIDEpO1xuICAgIGJhY2tkcm9wRWxlbS5zdHlsZS5vcGFjaXR5ID0gJzAnO1xuICAgIGJhY2tkcm9wRWxlbS5zdHlsZS50cmFuc2l0aW9uID0gYG9wYWNpdHkgJHt0aGlzLnRyYW5zaXRpb24oKX1tcyBlYXNlYDtcbiAgICBiYWNrZHJvcEVsZW0uY2xhc3NMaXN0LmFkZCguLi50aGlzLmJhY2tkcm9wQ2xhc3MoKS5zcGxpdCgnICcpKTtcblxuICAgIHRoaXMucGFyZW50LmVsLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQoYmFja2Ryb3BFbGVtKTtcblxuICAgIC8vIFRyaWdnZXIgYW5pbWF0aW9uIGFmdGVyIGVsZW1lbnQgaXMgYWRkZWQgdG8gRE9NXG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgIGJhY2tkcm9wRWxlbS5zdHlsZS5vcGFjaXR5ID0gJzEnO1xuICAgIH0pO1xuICAgIGJhY2tkcm9wRWxlbS5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBpZiAoIXRoaXMuaHRtbEVsZW0oKS5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkgJiYgdGhpcy5jb2xsYXBzZVN0YXRlKCkpIHtcbiAgICAgICAgdGhpcy5vbkJhY2tkcm9wQ2xpY2suZW1pdCh7IG5hdGl2ZUV2ZW50OiBldmVudCwgY29tcG9uZW50OiB0aGlzIH0pO1xuICAgICAgICBpZiAodGhpcy5jbG9zZU9uQmFja2Ryb3BDbGljaygpKSB7XG4gICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlQmFja2Ryb3AoKSB7XG4gICAgY29uc3QgYmFja2Ryb3BFbGVtID0gdGhpcy5wYXJlbnQuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuYXgtY2RrLWRyYXdlci1iYWNrZHJvcCcpO1xuICAgIGlmIChiYWNrZHJvcEVsZW0pIHtcbiAgICAgIGJhY2tkcm9wRWxlbS5zdHlsZS5vcGFjaXR5ID0gJzAnO1xuXG4gICAgICAvLyBSZW1vdmUgZWxlbWVudCBhZnRlciBhbmltYXRpb24gY29tcGxldGVzXG4gICAgICBzZXRUaW1lb3V0KFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgaWYgKGJhY2tkcm9wRWxlbS5wYXJlbnROb2RlKSB7XG4gICAgICAgICAgICBiYWNrZHJvcEVsZW0ucmVtb3ZlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBwYXJzZUZsb2F0KFN0cmluZyh0aGlzLnRyYW5zaXRpb24oKSkpLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUJhY2tEcm9wT25SZXNpemUgPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMuY29sbGFwc2VTdGF0ZSgpICYmIHRoaXMubW9kZSgpID09PSAnb3ZlcmxheScpIHtcbiAgICAgIHRoaXMucmVtb3ZlQmFja2Ryb3AoKTtcbiAgICB9XG4gIH07XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgLy8gUmVsZWFzZSB6LWluZGV4IHRva2VuIG9uIGRlc3Ryb3lcbiAgICB0aGlzLnpJbmRleFNlcnZpY2UucmVsZWFzZSh0aGlzLnpUb2tlbik7XG4gICAgdGhpcy56VG9rZW4gPSBudWxsO1xuXG4gICAgaWYgKHRoaXMucmVzaXplT2JzZXJ2ZXIgJiYgdGhpcy5odG1sRWxlbSgpKSB7XG4gICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLnVub2JzZXJ2ZSh0aGlzLmh0bWxFbGVtKCkpO1xuICAgIH1cblxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSUQpKSB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5yZW1vdmVCYWNrRHJvcE9uUmVzaXplKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","import { afterNextRender, contentChildren, Directive, ElementRef, inject } from '@angular/core';\nimport { AXDrawerItemDirective } from './drawer-item.directive';\nimport * as i0 from \"@angular/core\";\nexport class AXDrawerContainerDirective {\n constructor() {\n this.el = inject(ElementRef);\n this.drawerItem = contentChildren(AXDrawerItemDirective, ...(ngDevMode ? [{ debugName: \"drawerItem\", descendants: true }] : [{ descendants: true }]));\n this.#init = afterNextRender(() => {\n const htmlElem = this.el.nativeElement;\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 #init;\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXDrawerContainerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.2.0\", version: \"20.3.15\", type: AXDrawerContainerDirective, isStandalone: true, selector: \"[axDrawerContainer]\", queries: [{ propertyName: \"drawerItem\", predicate: AXDrawerItemDirective, descendants: true, isSignal: true }], exportAs: [\"axDrawerContainer\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXDrawerContainerDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axDrawerContainer]',\n exportAs: 'axDrawerContainer',\n }]\n }], propDecorators: { drawerItem: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => AXDrawerItemDirective), { ...{ descendants: true }, isSignal: true }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLWNvbnRhaW5lci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvZHJhd2VyL3NyYy9saWIvZHJhd2VyLWNvbnRhaW5lci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBTWhFLE1BQU0sT0FBTywwQkFBMEI7SUFKdkM7UUFLRSxPQUFFLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hCLGVBQVUsR0FBRyxlQUFlLENBQUMscUJBQXFCLDhDQUFJLFdBQVcsRUFBRSxJQUFJLE9BQW5CLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxHQUFDLENBQUM7UUFFM0UsVUFBSyxHQUFHLGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDM0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUE0QixDQUFDO1lBQ3RELFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztZQUNyQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7WUFDbkMsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1lBQ2hDLFFBQVEsQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQztZQUNwQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7S0FDSjtJQVJDLEtBQUssQ0FPRjsrR0FYUSwwQkFBMEI7bUdBQTFCLDBCQUEwQiwwR0FFUixxQkFBcUI7OzRGQUZ2QywwQkFBMEI7a0JBSnRDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFLG1CQUFtQjtpQkFDOUI7a0dBRzhCLHFCQUFxQixRQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFmdGVyTmV4dFJlbmRlciwgY29udGVudENoaWxkcmVuLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhEcmF3ZXJJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi9kcmF3ZXItaXRlbS5kaXJlY3RpdmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXhEcmF3ZXJDb250YWluZXJdJyxcbiAgZXhwb3J0QXM6ICdheERyYXdlckNvbnRhaW5lcicsXG59KVxuZXhwb3J0IGNsYXNzIEFYRHJhd2VyQ29udGFpbmVyRGlyZWN0aXZlIHtcbiAgZWwgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIGRyYXdlckl0ZW0gPSBjb250ZW50Q2hpbGRyZW4oQVhEcmF3ZXJJdGVtRGlyZWN0aXZlLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pO1xuXG4gICNpbml0ID0gYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICBjb25zdCBodG1sRWxlbSA9IHRoaXMuZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICBodG1sRWxlbS5zdHlsZS5wb3NpdGlvbiA9ICdyZWxhdGl2ZSc7XG4gICAgaHRtbEVsZW0uc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJztcbiAgICBodG1sRWxlbS5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnO1xuICAgIGh0bWxFbGVtLnN0eWxlLnRvdWNoQWN0aW9uID0gJ25vbmUnO1xuICAgIGh0bWxFbGVtLnN0eWxlLndpZHRoID0gJzEwMCUnO1xuICB9KTtcbn1cbiJdfQ==","import { NgModule } from '@angular/core';\nimport { AXDrawerContainerDirective } from './drawer-container.directive';\nimport { AXDrawerItemDirective } from './drawer-item.directive';\nimport * as i0 from \"@angular/core\";\nconst COMPONENT = [AXDrawerContainerDirective, AXDrawerItemDirective];\nconst MODULES = [];\nexport class AXDrawerDirectiveModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXDrawerDirectiveModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.15\", ngImport: i0, type: AXDrawerDirectiveModule, imports: [AXDrawerContainerDirective, AXDrawerItemDirective], exports: [AXDrawerContainerDirective, AXDrawerItemDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXDrawerDirectiveModule, imports: [MODULES] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXDrawerDirectiveModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay9kcmF3ZXIvc3JjL2xpYi9kcmF3ZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDMUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBRWhFLE1BQU0sU0FBUyxHQUFHLENBQUMsMEJBQTBCLEVBQUUscUJBQXFCLENBQUMsQ0FBQztBQUV0RSxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7QUFPbkIsTUFBTSxPQUFPLHVCQUF1QjsrR0FBdkIsdUJBQXVCO2dIQUF2Qix1QkFBdUIsWUFUakIsMEJBQTBCLEVBQUUscUJBQXFCLGFBQWpELDBCQUEwQixFQUFFLHFCQUFxQjtnSEFTdkQsdUJBQXVCLFlBSnJCLE9BQU87OzRGQUlULHVCQUF1QjtrQkFMbkMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxHQUFHLE9BQU8sRUFBRSxHQUFHLFNBQVMsQ0FBQztvQkFDbkMsT0FBTyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUM7b0JBQ3ZCLFNBQVMsRUFBRSxFQUFFO2lCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYRHJhd2VyQ29udGFpbmVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kcmF3ZXItY29udGFpbmVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBWERyYXdlckl0ZW1EaXJlY3RpdmUgfSBmcm9tICcuL2RyYXdlci1pdGVtLmRpcmVjdGl2ZSc7XG5cbmNvbnN0IENPTVBPTkVOVCA9IFtBWERyYXdlckNvbnRhaW5lckRpcmVjdGl2ZSwgQVhEcmF3ZXJJdGVtRGlyZWN0aXZlXTtcblxuY29uc3QgTU9EVUxFUyA9IFtdO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbLi4uTU9EVUxFUywgLi4uQ09NUE9ORU5UXSxcbiAgZXhwb3J0czogWy4uLkNPTVBPTkVOVF0sXG4gIHByb3ZpZGVyczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYRHJhd2VyRGlyZWN0aXZlTW9kdWxlIHt9XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNkay1kcmF3ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvZHJhd2VyL3NyYy9hY29yZXgtY2RrLWRyYXdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-cdk-focus-trap.mjs","sources":["../../../../packages/cdk/focus-trap/src/lib/focus-trap.directive.ts","../../../../packages/cdk/focus-trap/src/acorex-cdk-focus-trap.ts"],"sourcesContent":["import { afterNextRender, Directive, ElementRef, HostListener, inject, OnDestroy, signal } from '@angular/core';\n\n@Directive({\n selector: '[axFocusTrap]',\n})\nexport class AXFocusTrapDirective implements OnDestroy {\n private el = inject(ElementRef);\n private focusableElements: HTMLElement[] = [];\n private firstElement!: HTMLElement;\n private lastElement!: HTMLElement;\n private nativeElement = signal<HTMLElement>(null);\n private observer = new MutationObserver(() => this.setFocusableElements());\n\n #init = afterNextRender(() => {\n this.nativeElement.set(this.el.nativeElement);\n this.setFocusableElements();\n this.observer.observe(this.el.nativeElement, { childList: true, subtree: true });\n });\n\n ngOnDestroy(): void {\n this.observer.disconnect();\n }\n\n private setFocusableElements() {\n const focusableSelectors = [\n 'a[href]',\n 'button:not([disabled])',\n 'textarea:not([disabled])',\n 'input:not([disabled])',\n 'select:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])',\n ];\n\n this.focusableElements = Array.from(this.nativeElement().querySelectorAll(focusableSelectors.join(',')))\n .filter((el: Element) => !el.hasAttribute('disabled'))\n .map((el) => el as HTMLElement);\n\n if (this.focusableElements.length) {\n this.firstElement = this.focusableElements[0];\n this.lastElement = this.focusableElements[this.focusableElements.length - 1];\n }\n }\n\n @HostListener('keydown', ['$event'])\n private handleKeyboardEvent(event: KeyboardEvent): void {\n if (event.key !== 'Tab' || this.focusableElements.length === 0) return;\n\n if (event.shiftKey) {\n if (document.activeElement === this.firstElement) {\n this.lastElement.focus();\n event.preventDefault();\n }\n } else {\n if (document.activeElement === this.lastElement) {\n this.firstElement.focus();\n event.preventDefault();\n }\n }\n }\n}\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-focus-trap.mjs","sources":["../tmp-esm2022/focus-trap/lib/focus-trap.directive.js","../tmp-esm2022/focus-trap/acorex-cdk-focus-trap.js"],"sourcesContent":["import { afterNextRender, Directive, ElementRef, HostListener, inject, signal } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXFocusTrapDirective {\n constructor() {\n this.el = inject(ElementRef);\n this.focusableElements = [];\n this.nativeElement = signal(null, ...(ngDevMode ? [{ debugName: \"nativeElement\" }] : []));\n this.observer = new MutationObserver(() => this.setFocusableElements());\n this.#init = afterNextRender(() => {\n this.nativeElement.set(this.el.nativeElement);\n this.setFocusableElements();\n this.observer.observe(this.el.nativeElement, { childList: true, subtree: true });\n });\n }\n #init;\n ngOnDestroy() {\n this.observer.disconnect();\n }\n setFocusableElements() {\n const focusableSelectors = [\n 'a[href]',\n 'button:not([disabled])',\n 'textarea:not([disabled])',\n 'input:not([disabled])',\n 'select:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])',\n ];\n this.focusableElements = Array.from(this.nativeElement().querySelectorAll(focusableSelectors.join(',')))\n .filter((el) => !el.hasAttribute('disabled'))\n .map((el) => el);\n if (this.focusableElements.length) {\n this.firstElement = this.focusableElements[0];\n this.lastElement = this.focusableElements[this.focusableElements.length - 1];\n }\n }\n handleKeyboardEvent(event) {\n if (event.key !== 'Tab' || this.focusableElements.length === 0)\n return;\n if (event.shiftKey) {\n if (document.activeElement === this.firstElement) {\n this.lastElement.focus();\n event.preventDefault();\n }\n }\n else {\n if (document.activeElement === this.lastElement) {\n this.firstElement.focus();\n event.preventDefault();\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXFocusTrapDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.15\", type: AXFocusTrapDirective, isStandalone: true, selector: \"[axFocusTrap]\", host: { listeners: { \"keydown\": \"handleKeyboardEvent($event)\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXFocusTrapDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axFocusTrap]',\n }]\n }], propDecorators: { handleKeyboardEvent: [{\n type: HostListener,\n args: ['keydown', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtdHJhcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvZm9jdXMtdHJhcC9zcmMvbGliL2ZvY3VzLXRyYXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLaEgsTUFBTSxPQUFPLG9CQUFvQjtJQUhqQztRQUlVLE9BQUUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEIsc0JBQWlCLEdBQWtCLEVBQUUsQ0FBQztRQUd0QyxrQkFBYSxHQUFHLE1BQU0sQ0FBYyxJQUFJLHlEQUFDLENBQUM7UUFDMUMsYUFBUSxHQUFHLElBQUksZ0JBQWdCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztRQUUzRSxVQUFLLEdBQUcsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUMzQixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNuRixDQUFDLENBQUMsQ0FBQztLQTBDSjtJQTlDQyxLQUFLLENBSUY7SUFFSCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLE1BQU0sa0JBQWtCLEdBQUc7WUFDekIsU0FBUztZQUNULHdCQUF3QjtZQUN4QiwwQkFBMEI7WUFDMUIsdUJBQXVCO1lBQ3ZCLHdCQUF3QjtZQUN4QixpQ0FBaUM7U0FDbEMsQ0FBQztRQUVGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUNyRyxNQUFNLENBQUMsQ0FBQyxFQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNyRCxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQWlCLENBQUMsQ0FBQztRQUVsQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQy9FLENBQUM7SUFDSCxDQUFDO0lBR08sbUJBQW1CLENBQUMsS0FBb0I7UUFDOUMsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxLQUFLLENBQUM7WUFBRSxPQUFPO1FBRXZFLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25CLElBQUksUUFBUSxDQUFDLGFBQWEsS0FBSyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ2pELElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3pCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLFFBQVEsQ0FBQyxhQUFhLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNoRCxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUMxQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDekIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDOytHQXJEVSxvQkFBb0I7bUdBQXBCLG9CQUFvQjs7NEZBQXBCLG9CQUFvQjtrQkFIaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtpQkFDMUI7O3NCQXVDRSxZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFmdGVyTmV4dFJlbmRlciwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIGluamVjdCwgT25EZXN0cm95LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2F4Rm9jdXNUcmFwXScsXG59KVxuZXhwb3J0IGNsYXNzIEFYRm9jdXNUcmFwRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBlbCA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSBmb2N1c2FibGVFbGVtZW50czogSFRNTEVsZW1lbnRbXSA9IFtdO1xuICBwcml2YXRlIGZpcnN0RWxlbWVudCE6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIGxhc3RFbGVtZW50ITogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgbmF0aXZlRWxlbWVudCA9IHNpZ25hbDxIVE1MRWxlbWVudD4obnVsbCk7XG4gIHByaXZhdGUgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiB0aGlzLnNldEZvY3VzYWJsZUVsZW1lbnRzKCkpO1xuXG4gICNpbml0ID0gYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuc2V0KHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XG4gICAgdGhpcy5zZXRGb2N1c2FibGVFbGVtZW50cygpO1xuICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pO1xuICB9KTtcblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Rm9jdXNhYmxlRWxlbWVudHMoKSB7XG4gICAgY29uc3QgZm9jdXNhYmxlU2VsZWN0b3JzID0gW1xuICAgICAgJ2FbaHJlZl0nLFxuICAgICAgJ2J1dHRvbjpub3QoW2Rpc2FibGVkXSknLFxuICAgICAgJ3RleHRhcmVhOm5vdChbZGlzYWJsZWRdKScsXG4gICAgICAnaW5wdXQ6bm90KFtkaXNhYmxlZF0pJyxcbiAgICAgICdzZWxlY3Q6bm90KFtkaXNhYmxlZF0pJyxcbiAgICAgICdbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9XCItMVwiXSknLFxuICAgIF07XG5cbiAgICB0aGlzLmZvY3VzYWJsZUVsZW1lbnRzID0gQXJyYXkuZnJvbSh0aGlzLm5hdGl2ZUVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yQWxsKGZvY3VzYWJsZVNlbGVjdG9ycy5qb2luKCcsJykpKVxuICAgICAgLmZpbHRlcigoZWw6IEVsZW1lbnQpID0+ICFlbC5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykpXG4gICAgICAubWFwKChlbCkgPT4gZWwgYXMgSFRNTEVsZW1lbnQpO1xuXG4gICAgaWYgKHRoaXMuZm9jdXNhYmxlRWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICB0aGlzLmZpcnN0RWxlbWVudCA9IHRoaXMuZm9jdXNhYmxlRWxlbWVudHNbMF07XG4gICAgICB0aGlzLmxhc3RFbGVtZW50ID0gdGhpcy5mb2N1c2FibGVFbGVtZW50c1t0aGlzLmZvY3VzYWJsZUVsZW1lbnRzLmxlbmd0aCAtIDFdO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBwcml2YXRlIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQua2V5ICE9PSAnVGFiJyB8fCB0aGlzLmZvY3VzYWJsZUVsZW1lbnRzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gICAgaWYgKGV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gdGhpcy5maXJzdEVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5sYXN0RWxlbWVudC5mb2N1cygpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gdGhpcy5sYXN0RWxlbWVudCkge1xuICAgICAgICB0aGlzLmZpcnN0RWxlbWVudC5mb2N1cygpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNkay1mb2N1cy10cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY2RrL2ZvY3VzLXRyYXAvc3JjL2Fjb3JleC1jZGstZm9jdXMtdHJhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { AXZIndexService } from '@acorex/core/z-index';
1
2
  import * as i0 from '@angular/core';
2
3
  import { signal, output, inject, Renderer2, ElementRef, effect, untracked, Directive } from '@angular/core';
3
4
 
@@ -28,8 +29,13 @@ class AXFullScreenDirective {
28
29
  * Fullscreen change event
29
30
  */
30
31
  this.fullscreenChange = output();
32
+ /**
33
+ * Z-index token for this fullscreen instance
34
+ */
35
+ this.zToken = null;
31
36
  this.renderer = inject(Renderer2);
32
37
  this.elementRef = inject(ElementRef);
38
+ this.zIndexService = inject(AXZIndexService);
33
39
  // Sync state changes to output
34
40
  effect(() => {
35
41
  const isFullscreen = this.isFullscreenState();
@@ -61,6 +67,8 @@ class AXFullScreenDirective {
61
67
  // Store original styles and parent
62
68
  this.storeOriginalStyles(element);
63
69
  this.originalParent = element.parentElement;
70
+ // Acquire z-index token
71
+ this.zToken = this.zIndexService.acquire();
64
72
  // Create fullscreen container
65
73
  this.fullscreenContainer = this.renderer.createElement('div');
66
74
  this.renderer.setStyle(this.fullscreenContainer, 'position', 'fixed');
@@ -68,7 +76,7 @@ class AXFullScreenDirective {
68
76
  this.renderer.setStyle(this.fullscreenContainer, 'left', '0');
69
77
  this.renderer.setStyle(this.fullscreenContainer, 'width', '100vw');
70
78
  this.renderer.setStyle(this.fullscreenContainer, 'height', '100vh');
71
- this.renderer.setStyle(this.fullscreenContainer, 'z-index', '100');
79
+ this.renderer.setStyle(this.fullscreenContainer, 'z-index', String(this.zToken.zIndex));
72
80
  this.renderer.setStyle(this.fullscreenContainer, 'background-color', '#ffffff');
73
81
  this.renderer.setStyle(this.fullscreenContainer, 'overflow', 'auto');
74
82
  // Move element to container
@@ -109,6 +117,9 @@ class AXFullScreenDirective {
109
117
  this.renderer.removeChild(document.body, this.fullscreenContainer);
110
118
  this.fullscreenContainer = null;
111
119
  }
120
+ // Release z-index token
121
+ this.zIndexService.release(this.zToken);
122
+ this.zToken = null;
112
123
  // Restore original styles
113
124
  this.restoreOriginalStyles(element);
114
125
  this.isFullscreenState.set(false);
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-cdk-full-screen.mjs","sources":["../../../../packages/cdk/full-screen/src/lib/full-screen.directive.ts","../../../../packages/cdk/full-screen/src/acorex-cdk-full-screen.ts"],"sourcesContent":["import { Directive, effect, ElementRef, inject, output, Renderer2, signal, untracked } from '@angular/core';\n\n/**\n * Fullscreen directive that provides CSS-based fullscreen functionality\n * Usage: <element axFullscreen #fullscreen=\"axFullscreen\"></element>\n * Then: fullscreen.toggle() or fullscreen.enter() or fullscreen.exit()\n */\n@Directive({\n selector: '[axFullscreen]',\n standalone: true,\n exportAs: 'axFullscreen',\n})\nexport class AXFullScreenDirective {\n /**\n * Current fullscreen state\n */\n private readonly isFullscreenState = signal<boolean>(false);\n\n /**\n * Original element styles to restore\n */\n private originalStyles: {\n position?: string;\n top?: string;\n left?: string;\n width?: string;\n height?: string;\n zIndex?: string;\n backgroundColor?: string;\n margin?: string;\n padding?: string;\n } = {};\n\n /**\n * Original parent element reference\n */\n private originalParent: HTMLElement | null = null;\n\n /**\n * Fullscreen container element\n */\n private fullscreenContainer: HTMLElement | null = null;\n\n /**\n * Fullscreen change event\n */\n readonly fullscreenChange = output<boolean>();\n\n private readonly renderer = inject(Renderer2);\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n constructor() {\n // Sync state changes to output\n effect(() => {\n const isFullscreen = this.isFullscreenState();\n untracked(() => {\n this.fullscreenChange.emit(isFullscreen);\n });\n });\n }\n\n /**\n * Toggle fullscreen state\n */\n toggle(): void {\n if (this.isFullscreenState()) {\n this.exit();\n } else {\n this.enter();\n }\n }\n\n /**\n * Enter fullscreen mode using CSS\n */\n enter(): void {\n if (this.isFullscreenState()) {\n return;\n }\n\n const element = this.elementRef.nativeElement;\n\n try {\n // Store original styles and parent\n this.storeOriginalStyles(element);\n this.originalParent = element.parentElement;\n\n // Create fullscreen container\n this.fullscreenContainer = this.renderer.createElement('div');\n this.renderer.setStyle(this.fullscreenContainer, 'position', 'fixed');\n this.renderer.setStyle(this.fullscreenContainer, 'top', '0');\n this.renderer.setStyle(this.fullscreenContainer, 'left', '0');\n this.renderer.setStyle(this.fullscreenContainer, 'width', '100vw');\n this.renderer.setStyle(this.fullscreenContainer, 'height', '100vh');\n this.renderer.setStyle(this.fullscreenContainer, 'z-index', '100');\n this.renderer.setStyle(this.fullscreenContainer, 'background-color', '#ffffff');\n this.renderer.setStyle(this.fullscreenContainer, 'overflow', 'auto');\n\n // Move element to container\n this.renderer.appendChild(this.fullscreenContainer, element);\n\n // Apply fullscreen styles to element\n this.renderer.setStyle(element, 'position', 'relative');\n this.renderer.setStyle(element, 'width', '100%');\n this.renderer.setStyle(element, 'height', '100%');\n this.renderer.setStyle(element, 'margin', '0');\n this.renderer.setStyle(element, 'padding', '0');\n\n // Append container to body\n this.renderer.appendChild(document.body, this.fullscreenContainer);\n\n // Prevent body scroll\n this.renderer.setStyle(document.body, 'overflow', 'hidden');\n\n this.isFullscreenState.set(true);\n } catch (error) {\n console.error('Error entering fullscreen:', error);\n this.restoreOriginalStyles(element);\n }\n }\n\n /**\n * Exit fullscreen mode\n */\n exit(): void {\n if (!this.isFullscreenState()) {\n return;\n }\n\n const element = this.elementRef.nativeElement;\n\n try {\n // Restore body scroll\n this.renderer.removeStyle(document.body, 'overflow');\n\n // Move element back to original parent\n if (this.fullscreenContainer && this.originalParent) {\n this.renderer.removeChild(this.fullscreenContainer, element);\n this.renderer.appendChild(this.originalParent, element);\n\n // Remove container\n this.renderer.removeChild(document.body, this.fullscreenContainer);\n this.fullscreenContainer = null;\n }\n\n // Restore original styles\n this.restoreOriginalStyles(element);\n\n this.isFullscreenState.set(false);\n } catch (error) {\n console.error('Error exiting fullscreen:', error);\n }\n }\n\n /**\n * Check if currently in fullscreen mode\n */\n isFullscreen(): boolean {\n return this.isFullscreenState();\n }\n\n /**\n * Store original element styles\n */\n private storeOriginalStyles(element: HTMLElement): void {\n const computedStyle = window.getComputedStyle(element);\n this.originalStyles = {\n position: computedStyle.position,\n top: computedStyle.top,\n left: computedStyle.left,\n width: computedStyle.width,\n height: computedStyle.height,\n zIndex: computedStyle.zIndex,\n backgroundColor: computedStyle.backgroundColor,\n margin: computedStyle.margin,\n padding: computedStyle.padding,\n };\n }\n\n /**\n * Restore original element styles\n */\n private restoreOriginalStyles(element: HTMLElement): void {\n if (!this.originalStyles) {\n return;\n }\n\n // Restore each style property\n Object.entries(this.originalStyles).forEach(([key, value]) => {\n const styleKey = this.camelToKebabCase(key);\n if (value) {\n this.renderer.setStyle(element, styleKey, value);\n } else {\n this.renderer.removeStyle(element, styleKey);\n }\n });\n\n this.originalStyles = {};\n }\n\n /**\n * Convert camelCase to kebab-case for CSS properties\n */\n private camelToKebabCase(str: string): string {\n return str.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, '$1-$2').toLowerCase();\n }\n}\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-full-screen.mjs","sources":["../tmp-esm2022/full-screen/lib/full-screen.directive.js","../tmp-esm2022/full-screen/acorex-cdk-full-screen.js"],"sourcesContent":["import { AXZIndexService } from '@acorex/core/z-index';\nimport { Directive, effect, ElementRef, inject, output, Renderer2, signal, untracked } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Fullscreen directive that provides CSS-based fullscreen functionality\n * Usage: <element axFullscreen #fullscreen=\"axFullscreen\"></element>\n * Then: fullscreen.toggle() or fullscreen.enter() or fullscreen.exit()\n */\nexport class AXFullScreenDirective {\n constructor() {\n /**\n * Current fullscreen state\n */\n this.isFullscreenState = signal(false, ...(ngDevMode ? [{ debugName: \"isFullscreenState\" }] : []));\n /**\n * Original element styles to restore\n */\n this.originalStyles = {};\n /**\n * Original parent element reference\n */\n this.originalParent = null;\n /**\n * Fullscreen container element\n */\n this.fullscreenContainer = null;\n /**\n * Fullscreen change event\n */\n this.fullscreenChange = output();\n /**\n * Z-index token for this fullscreen instance\n */\n this.zToken = null;\n this.renderer = inject(Renderer2);\n this.elementRef = inject(ElementRef);\n this.zIndexService = inject(AXZIndexService);\n // Sync state changes to output\n effect(() => {\n const isFullscreen = this.isFullscreenState();\n untracked(() => {\n this.fullscreenChange.emit(isFullscreen);\n });\n });\n }\n /**\n * Toggle fullscreen state\n */\n toggle() {\n if (this.isFullscreenState()) {\n this.exit();\n }\n else {\n this.enter();\n }\n }\n /**\n * Enter fullscreen mode using CSS\n */\n enter() {\n if (this.isFullscreenState()) {\n return;\n }\n const element = this.elementRef.nativeElement;\n try {\n // Store original styles and parent\n this.storeOriginalStyles(element);\n this.originalParent = element.parentElement;\n // Acquire z-index token\n this.zToken = this.zIndexService.acquire();\n // Create fullscreen container\n this.fullscreenContainer = this.renderer.createElement('div');\n this.renderer.setStyle(this.fullscreenContainer, 'position', 'fixed');\n this.renderer.setStyle(this.fullscreenContainer, 'top', '0');\n this.renderer.setStyle(this.fullscreenContainer, 'left', '0');\n this.renderer.setStyle(this.fullscreenContainer, 'width', '100vw');\n this.renderer.setStyle(this.fullscreenContainer, 'height', '100vh');\n this.renderer.setStyle(this.fullscreenContainer, 'z-index', String(this.zToken.zIndex));\n this.renderer.setStyle(this.fullscreenContainer, 'background-color', '#ffffff');\n this.renderer.setStyle(this.fullscreenContainer, 'overflow', 'auto');\n // Move element to container\n this.renderer.appendChild(this.fullscreenContainer, element);\n // Apply fullscreen styles to element\n this.renderer.setStyle(element, 'position', 'relative');\n this.renderer.setStyle(element, 'width', '100%');\n this.renderer.setStyle(element, 'height', '100%');\n this.renderer.setStyle(element, 'margin', '0');\n this.renderer.setStyle(element, 'padding', '0');\n // Append container to body\n this.renderer.appendChild(document.body, this.fullscreenContainer);\n // Prevent body scroll\n this.renderer.setStyle(document.body, 'overflow', 'hidden');\n this.isFullscreenState.set(true);\n }\n catch (error) {\n console.error('Error entering fullscreen:', error);\n this.restoreOriginalStyles(element);\n }\n }\n /**\n * Exit fullscreen mode\n */\n exit() {\n if (!this.isFullscreenState()) {\n return;\n }\n const element = this.elementRef.nativeElement;\n try {\n // Restore body scroll\n this.renderer.removeStyle(document.body, 'overflow');\n // Move element back to original parent\n if (this.fullscreenContainer && this.originalParent) {\n this.renderer.removeChild(this.fullscreenContainer, element);\n this.renderer.appendChild(this.originalParent, element);\n // Remove container\n this.renderer.removeChild(document.body, this.fullscreenContainer);\n this.fullscreenContainer = null;\n }\n // Release z-index token\n this.zIndexService.release(this.zToken);\n this.zToken = null;\n // Restore original styles\n this.restoreOriginalStyles(element);\n this.isFullscreenState.set(false);\n }\n catch (error) {\n console.error('Error exiting fullscreen:', error);\n }\n }\n /**\n * Check if currently in fullscreen mode\n */\n isFullscreen() {\n return this.isFullscreenState();\n }\n /**\n * Store original element styles\n */\n storeOriginalStyles(element) {\n const computedStyle = window.getComputedStyle(element);\n this.originalStyles = {\n position: computedStyle.position,\n top: computedStyle.top,\n left: computedStyle.left,\n width: computedStyle.width,\n height: computedStyle.height,\n zIndex: computedStyle.zIndex,\n backgroundColor: computedStyle.backgroundColor,\n margin: computedStyle.margin,\n padding: computedStyle.padding,\n };\n }\n /**\n * Restore original element styles\n */\n restoreOriginalStyles(element) {\n if (!this.originalStyles) {\n return;\n }\n // Restore each style property\n Object.entries(this.originalStyles).forEach(([key, value]) => {\n const styleKey = this.camelToKebabCase(key);\n if (value) {\n this.renderer.setStyle(element, styleKey, value);\n }\n else {\n this.renderer.removeStyle(element, styleKey);\n }\n });\n this.originalStyles = {};\n }\n /**\n * Convert camelCase to kebab-case for CSS properties\n */\n camelToKebabCase(str) {\n return str.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, '$1-$2').toLowerCase();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXFullScreenDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.15\", type: AXFullScreenDirective, isStandalone: true, selector: \"[axFullscreen]\", outputs: { fullscreenChange: \"fullscreenChange\" }, exportAs: [\"axFullscreen\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXFullScreenDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axFullscreen]',\n standalone: true,\n exportAs: 'axFullscreen',\n }]\n }], ctorParameters: () => [], propDecorators: { fullscreenChange: [{ type: i0.Output, args: [\"fullscreenChange\"] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsbC1zY3JlZW4uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY2RrL2Z1bGwtc2NyZWVuL3NyYy9saWIvZnVsbC1zY3JlZW4uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQVksTUFBTSxzQkFBc0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFNUc7Ozs7R0FJRztBQU1ILE1BQU0sT0FBTyxxQkFBcUI7SUE2Q2hDO1FBNUNBOztXQUVHO1FBQ2Msc0JBQWlCLEdBQUcsTUFBTSxDQUFVLEtBQUssNkRBQUMsQ0FBQztRQUU1RDs7V0FFRztRQUNLLG1CQUFjLEdBVWxCLEVBQUUsQ0FBQztRQUVQOztXQUVHO1FBQ0ssbUJBQWMsR0FBdUIsSUFBSSxDQUFDO1FBRWxEOztXQUVHO1FBQ0ssd0JBQW1CLEdBQXVCLElBQUksQ0FBQztRQUV2RDs7V0FFRztRQUNNLHFCQUFnQixHQUFHLE1BQU0sRUFBVyxDQUFDO1FBRTlDOztXQUVHO1FBQ0ssV0FBTSxHQUFvQixJQUFJLENBQUM7UUFFdEIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QixlQUFVLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQztRQUN6RCxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUd2RCwrQkFBK0I7UUFDL0IsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzlDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FB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SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSyxxQkFBcUIsQ0FBQyxPQUFvQjtRQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3pCLE9BQU87UUFDVCxDQUFDO1FBRUQsOEJBQThCO1FBQzlCLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDM0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzVDLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ1YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNuRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQy9DLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNLLGdCQUFnQixDQUFDLEdBQVc7UUFDbEMsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLDhCQUE4QixFQUFFLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzVFLENBQUM7K0dBOU1VLHFCQUFxQjttR0FBckIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQUxqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsY0FBYztpQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFpJbmRleFNlcnZpY2UsIEFYWlRva2VuIH0gZnJvbSAnQGFjb3JleC9jb3JlL3otaW5kZXgnO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBlZmZlY3QsIEVsZW1lbnRSZWYsIGluamVjdCwgb3V0cHV0LCBSZW5kZXJlcjIsIHNpZ25hbCwgdW50cmFja2VkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogRnVsbHNjcmVlbiBkaXJlY3RpdmUgdGhhdCBwcm92aWRlcyBDU1MtYmFzZWQgZnVsbHNjcmVlbiBmdW5jdGlvbmFsaXR5XG4gKiBVc2FnZTogPGVsZW1lbnQgYXhGdWxsc2NyZWVuICNmdWxsc2NyZWVuPVwiYXhGdWxsc2NyZWVuXCI+PC9lbGVtZW50PlxuICogVGhlbjogZnVsbHNjcmVlbi50b2dnbGUoKSBvciBmdWxsc2NyZWVuLmVudGVyKCkgb3IgZnVsbHNjcmVlbi5leGl0KClcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2F4RnVsbHNjcmVlbl0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBleHBvcnRBczogJ2F4RnVsbHNjcmVlbicsXG59KVxuZXhwb3J0IGNsYXNzIEFYRnVsbFNjcmVlbkRpcmVjdGl2ZSB7XG4gIC8qKlxuICAgKiBDdXJyZW50IGZ1bGxzY3JlZW4gc3RhdGVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgaXNGdWxsc2NyZWVuU3RhdGUgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIC8qKlxuICAgKiBPcmlnaW5hbCBlbGVtZW50IHN0eWxlcyB0byByZXN0b3JlXG4gICAqL1xuICBwcml2YXRlIG9yaWdpbmFsU3R5bGVzOiB7XG4gICAgcG9zaXRpb24/OiBzdHJpbmc7XG4gICAgdG9wPzogc3RyaW5nO1xuICAgIGxlZnQ/OiBzdHJpbmc7XG4gICAgd2lkdGg/OiBzdHJpbmc7XG4gICAgaGVpZ2h0Pzogc3RyaW5nO1xuICAgIHpJbmRleD86IHN0cmluZztcbiAgICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgbWFyZ2luPzogc3RyaW5nO1xuICAgIHBhZGRpbmc/OiBzdHJpbmc7XG4gIH0gPSB7fTtcblxuICAvKipcbiAgICogT3JpZ2luYWwgcGFyZW50IGVsZW1lbnQgcmVmZXJlbmNlXG4gICAqL1xuICBwcml2YXRlIG9yaWdpbmFsUGFyZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBGdWxsc2NyZWVuIGNvbnRhaW5lciBlbGVtZW50XG4gICAqL1xuICBwcml2YXRlIGZ1bGxzY3JlZW5Db250YWluZXI6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIEZ1bGxzY3JlZW4gY2hhbmdlIGV2ZW50XG4gICAqL1xuICByZWFkb25seSBmdWxsc2NyZWVuQ2hhbmdlID0gb3V0cHV0PGJvb2xlYW4+KCk7XG5cbiAgLyoqXG4gICAqIFotaW5kZXggdG9rZW4gZm9yIHRoaXMgZnVsbHNjcmVlbiBpbnN0YW5jZVxuICAgKi9cbiAgcHJpdmF0ZSB6VG9rZW46IEFYWlRva2VuIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IHpJbmRleFNlcnZpY2UgPSBpbmplY3QoQVhaSW5kZXhTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBTeW5jIHN0YXRlIGNoYW5nZXMgdG8gb3V0cHV0XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGlzRnVsbHNjcmVlbiA9IHRoaXMuaXNGdWxsc2NyZWVuU3RhdGUoKTtcbiAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgIHRoaXMuZnVsbHNjcmVlbkNoYW5nZS5lbWl0KGlzRnVsbHNjcmVlbik7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGUgZnVsbHNjcmVlbiBzdGF0ZVxuICAgKi9cbiAgdG9nZ2xlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRnVsbHNjcmVlblN0YXRlKCkpIHtcbiAgICAgIHRoaXMuZXhpdCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVudGVyKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEVudGVyIGZ1bGxzY3JlZW4gbW9kZSB1c2luZyBDU1NcbiAgICovXG4gIGVudGVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRnVsbHNjcmVlblN0YXRlKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICB0cnkge1xuICAgICAgLy8gU3RvcmUgb3JpZ2luYWwgc3R5bGVzIGFuZCBwYXJlbnRcbiAgICAgIHRoaXMuc3RvcmVPcmlnaW5hbFN0eWxlcyhlbGVtZW50KTtcbiAgICAgIHRoaXMub3JpZ2luYWxQYXJlbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XG5cbiAgICAgIC8vIEFjcXVpcmUgei1pbmRleCB0b2tlblxuICAgICAgdGhpcy56VG9rZW4gPSB0aGlzLnpJbmRleFNlcnZpY2UuYWNxdWlyZSgpO1xuXG4gICAgICAvLyBDcmVhdGUgZnVsbHNjcmVlbiBjb250YWluZXJcbiAgICAgIHRoaXMuZnVsbHNjcmVlbkNvbnRhaW5lciA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZnVsbHNjcmVlbkNvbnRhaW5lciwgJ3Bvc2l0aW9uJywgJ2ZpeGVkJyk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZnVsbHNjcmVlbkNvbnRhaW5lciwgJ3RvcCcsICcwJyk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZnVsbHNjcmVlbkNvbnRhaW5lciwgJ2xlZnQnLCAnMCcpO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmZ1bGxzY3JlZW5Db250YWluZXIsICd3aWR0aCcsICcxMDB2dycpO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmZ1bGxzY3JlZW5Db250YWluZXIsICdoZWlnaHQnLCAnMTAwdmgnKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5mdWxsc2NyZWVuQ29udGFpbmVyLCAnei1pbmRleCcsIFN0cmluZyh0aGlzLnpUb2tlbi56SW5kZXgpKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5mdWxsc2NyZWVuQ29udGFpbmVyLCAnYmFja2dyb3VuZC1jb2xvcicsICcjZmZmZmZmJyk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZnVsbHNjcmVlbkNvbnRhaW5lciwgJ292ZXJmbG93JywgJ2F1dG8nKTtcblxuICAgICAgLy8gTW92ZSBlbGVtZW50IHRvIGNvbnRhaW5lclxuICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmZ1bGxzY3JlZW5Db250YWluZXIsIGVsZW1lbnQpO1xuXG4gICAgICAvLyBBcHBseSBmdWxsc2NyZWVuIHN0eWxlcyB0byBlbGVtZW50XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsZW1lbnQsICdwb3NpdGlvbicsICdyZWxhdGl2ZScpO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShlbGVtZW50LCAnd2lkdGgnLCAnMTAwJScpO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShlbGVtZW50LCAnaGVpZ2h0JywgJzEwMCUnKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZWxlbWVudCwgJ21hcmdpbicsICcwJyk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsZW1lbnQsICdwYWRkaW5nJywgJzAnKTtcblxuICAgICAgLy8gQXBwZW5kIGNvbnRhaW5lciB0byBib2R5XG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmJvZHksIHRoaXMuZnVsbHNjcmVlbkNvbnRhaW5lcik7XG5cbiAgICAgIC8vIFByZXZlbnQgYm9keSBzY3JvbGxcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZG9jdW1lbnQuYm9keSwgJ292ZXJmbG93JywgJ2hpZGRlbicpO1xuXG4gICAgICB0aGlzLmlzRnVsbHNjcmVlblN0YXRlLnNldCh0cnVlKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZW50ZXJpbmcgZnVsbHNjcmVlbjonLCBlcnJvcik7XG4gICAgICB0aGlzLnJlc3RvcmVPcmlnaW5hbFN0eWxlcyhlbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRXhpdCBmdWxsc2NyZWVuIG1vZGVcbiAgICovXG4gIGV4aXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzRnVsbHNjcmVlblN0YXRlKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICB0cnkge1xuICAgICAgLy8gUmVzdG9yZSBib2R5IHNjcm9sbFxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZShkb2N1bWVudC5ib2R5LCAnb3ZlcmZsb3cnKTtcblxuICAgICAgLy8gTW92ZSBlbGVtZW50IGJhY2sgdG8gb3JpZ2luYWwgcGFyZW50XG4gICAgICBpZiAodGhpcy5mdWxsc2NyZWVuQ29udGFpbmVyICYmIHRoaXMub3JpZ2luYWxQYXJlbnQpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLmZ1bGxzY3JlZW5Db250YWluZXIsIGVsZW1lbnQpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMub3JpZ2luYWxQYXJlbnQsIGVsZW1lbnQpO1xuXG4gICAgICAgIC8vIFJlbW92ZSBjb250YWluZXJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZChkb2N1bWVudC5ib2R5LCB0aGlzLmZ1bGxzY3JlZW5Db250YWluZXIpO1xuICAgICAgICB0aGlzLmZ1bGxzY3JlZW5Db250YWluZXIgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICAvLyBSZWxlYXNlIHotaW5kZXggdG9rZW5cbiAgICAgIHRoaXMuekluZGV4U2VydmljZS5yZWxlYXNlKHRoaXMuelRva2VuKTtcbiAgICAgIHRoaXMuelRva2VuID0gbnVsbDtcblxuICAgICAgLy8gUmVzdG9yZSBvcmlnaW5hbCBzdHlsZXNcbiAgICAgIHRoaXMucmVzdG9yZU9yaWdpbmFsU3R5bGVzKGVsZW1lbnQpO1xuXG4gICAgICB0aGlzLmlzRnVsbHNjcmVlblN0YXRlLnNldChmYWxzZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGV4aXRpbmcgZnVsbHNjcmVlbjonLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGN1cnJlbnRseSBpbiBmdWxsc2NyZWVuIG1vZGVcbiAgICovXG4gIGlzRnVsbHNjcmVlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0Z1bGxzY3JlZW5TdGF0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3JlIG9yaWdpbmFsIGVsZW1lbnQgc3R5bGVzXG4gICAqL1xuICBwcml2YXRlIHN0b3JlT3JpZ2luYWxTdHlsZXMoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG4gICAgdGhpcy5vcmlnaW5hbFN0eWxlcyA9IHtcbiAgICAgIHBvc2l0aW9uOiBjb21wdXRlZFN0eWxlLnBvc2l0aW9uLFxuICAgICAgdG9wOiBjb21wdXRlZFN0eWxlLnRvcCxcbiAgICAgIGxlZnQ6IGNvbXB1dGVkU3R5bGUubGVmdCxcbiAgICAgIHdpZHRoOiBjb21wdXRlZFN0eWxlLndpZHRoLFxuICAgICAgaGVpZ2h0OiBjb21wdXRlZFN0eWxlLmhlaWdodCxcbiAgICAgIHpJbmRleDogY29tcHV0ZWRTdHlsZS56SW5kZXgsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbXB1dGVkU3R5bGUuYmFja2dyb3VuZENvbG9yLFxuICAgICAgbWFyZ2luOiBjb21wdXRlZFN0eWxlLm1hcmdpbixcbiAgICAgIHBhZGRpbmc6IGNvbXB1dGVkU3R5bGUucGFkZGluZyxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc3RvcmUgb3JpZ2luYWwgZWxlbWVudCBzdHlsZXNcbiAgICovXG4gIHByaXZhdGUgcmVzdG9yZU9yaWdpbmFsU3R5bGVzKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm9yaWdpbmFsU3R5bGVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gUmVzdG9yZSBlYWNoIHN0eWxlIHByb3BlcnR5XG4gICAgT2JqZWN0LmVudHJpZXModGhpcy5vcmlnaW5hbFN0eWxlcykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICBjb25zdCBzdHlsZUtleSA9IHRoaXMuY2FtZWxUb0tlYmFiQ2FzZShrZXkpO1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZWxlbWVudCwgc3R5bGVLZXksIHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUoZWxlbWVudCwgc3R5bGVLZXkpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5vcmlnaW5hbFN0eWxlcyA9IHt9O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgY2FtZWxDYXNlIHRvIGtlYmFiLWNhc2UgZm9yIENTUyBwcm9wZXJ0aWVzXG4gICAqL1xuICBwcml2YXRlIGNhbWVsVG9LZWJhYkNhc2Uoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdHIucmVwbGFjZSgvKFthLXowLTldfCg/PVtBLVpdKSkoW0EtWl0pL2csICckMS0kMicpLnRvTG93ZXJDYXNlKCk7XG4gIH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNkay1mdWxsLXNjcmVlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay9mdWxsLXNjcmVlbi9zcmMvYWNvcmV4LWNkay1mdWxsLXNjcmVlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}