@acorex/cdk 20.7.6 → 20.7.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/drawer/index.d.ts CHANGED
@@ -11,9 +11,11 @@ declare class AXDrawerItemDirective implements OnDestroy {
11
11
  private parent;
12
12
  private platformID;
13
13
  private zIndexService;
14
+ private localeService;
14
15
  private zToken;
15
16
  private collapseState;
16
17
  private resizeObserver;
18
+ private isRtl;
17
19
  collapseStateChanged: _angular_core.OutputEmitterRef<boolean>;
18
20
  location: _angular_core.ModelSignal<AXDrawerLocation>;
19
21
  collapsed: _angular_core.ModelSignal<boolean>;
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, ElementRef, signal, PLATFORM_ID, output, model, afterNextRender, effect, Directive, contentChildren, NgModule } from '@angular/core';
3
- import { AXHtmlUtil } from '@acorex/core/utils';
2
+ import { inject, ElementRef, signal, PLATFORM_ID, computed, output, model, afterNextRender, effect, Directive, contentChildren, NgModule } from '@angular/core';
3
+ import { AXLocaleService } from '@acorex/core/locale';
4
4
  import { AXZIndexService } from '@acorex/core/z-index';
5
5
  import { isPlatformBrowser } from '@angular/common';
6
6
 
@@ -11,8 +11,12 @@ class AXDrawerItemDirective {
11
11
  this.parent = inject(AXDrawerContainerDirective);
12
12
  this.platformID = inject(PLATFORM_ID);
13
13
  this.zIndexService = inject(AXZIndexService);
14
+ this.localeService = inject(AXLocaleService);
14
15
  this.zToken = null;
15
16
  this.collapseState = signal(false, ...(ngDevMode ? [{ debugName: "collapseState" }] : []));
17
+ // Reactive RTL flag derived from the active locale profile so the drawer
18
+ // re-positions itself whenever the user switches language at runtime.
19
+ this.isRtl = computed(() => !!this.localeService.activeProfile()?.i18nMeta?.rtl, ...(ngDevMode ? [{ debugName: "isRtl" }] : []));
16
20
  this.collapseStateChanged = output();
17
21
  this.location = model('start', ...(ngDevMode ? [{ debugName: "location" }] : []));
18
22
  this.collapsed = model(true, ...(ngDevMode ? [{ debugName: "collapsed" }] : []));
@@ -131,14 +135,10 @@ class AXDrawerItemDirective {
131
135
  this.htmlElem().style.display = 'block';
132
136
  if (this.mode() === 'overlay') {
133
137
  if (this.location() === 'start') {
134
- AXHtmlUtil.isRtl(this.htmlElem())
135
- ? (this.htmlElem().style.right = `0px`)
136
- : (this.htmlElem().style.left = `0px`);
138
+ this.isRtl() ? (this.htmlElem().style.right = `0px`) : (this.htmlElem().style.left = `0px`);
137
139
  }
138
140
  if (this.location() === 'end') {
139
- AXHtmlUtil.isRtl(this.htmlElem())
140
- ? (this.htmlElem().style.left = `0px`)
141
- : (this.htmlElem().style.right = `0px`);
141
+ this.isRtl() ? (this.htmlElem().style.left = `0px`) : (this.htmlElem().style.right = `0px`);
142
142
  }
143
143
  if (this.location() === 'top' || this.location() === 'bottom') {
144
144
  this.htmlElem().style.top = `0px`;
@@ -193,22 +193,22 @@ class AXDrawerItemDirective {
193
193
  }
194
194
  if (this.mode() === 'overlay') {
195
195
  if (this.location() === 'start') {
196
- AXHtmlUtil.isRtl(this.htmlElem())
196
+ this.isRtl()
197
197
  ? (this.htmlElem().style.right = `-${rect.width}px`)
198
198
  : (this.htmlElem().style.left = `-${rect.width}px`);
199
199
  }
200
200
  if (this.location() === 'end') {
201
- AXHtmlUtil.isRtl(this.htmlElem())
201
+ this.isRtl()
202
202
  ? (this.htmlElem().style.left = `-${rect.width}px`)
203
203
  : (this.htmlElem().style.right = `-${rect.width}px`);
204
204
  }
205
205
  if (this.location() === 'top') {
206
- AXHtmlUtil.isRtl(this.htmlElem())
206
+ this.isRtl()
207
207
  ? (this.htmlElem().style.bottom = `-${rect.height}px`)
208
208
  : (this.htmlElem().style.top = `-${rect.height}px`);
209
209
  }
210
210
  if (this.location() === 'bottom') {
211
- AXHtmlUtil.isRtl(this.htmlElem())
211
+ this.isRtl()
212
212
  ? (this.htmlElem().style.top = `${rect.height}px`)
213
213
  : (this.htmlElem().style.bottom = `${rect.height}px`);
214
214
  }
@@ -1 +1 @@
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 // 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 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 // 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 // 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.3\", ngImport: i0, type: AXDrawerItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.3\", 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.3\", ngImport: i0, type: AXDrawerItemDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axDrawerItem]',\n exportAs: 'axDrawerItem',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLWl0ZW0uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY2RrL2RyYXdlci9zcmMvbGliL2RyYXdlci1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBWSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFDTCxlQUFlLEVBQ2YsU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFFTCxNQUFNLEVBQ04sV0FBVyxFQUNYLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFRMUUsTUFBTSxPQUFPLHFCQUFxQjtJQUpsQztRQUtVLE9BQUUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEIsYUFBUSxHQUFHLE1BQU0sQ0FBYyxJQUFJLG9EQUFDLENBQUM7UUFDckMsV0FBTSxHQUFHLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQzVDLGVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakMsa0JBQWEsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDeEMsV0FBTSxHQUFvQixJQUFJLENBQUM7UUFDL0Isa0JBQWEsR0FBRyxNQUFNLENBQUMsS0FBSyx5REFBQyxDQUFDO1FBRXRDLHlCQUFvQixHQUFHLE1BQU0sRUFBVyxDQUFDO1FBRXpDLGFBQVEsR0FBRyxLQUFLLENBQW1CLE9BQU8sb0RBQUMsQ0FBQztRQUM1QyxjQUFTLEdBQUcsS0FBSyxDQUFDLElBQUkscURBQUMsQ0FBQztRQUN4Qixh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QztRQUVuQixJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7WUFDM0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDakQsQ0FBQztRQUVELElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDdkMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUNwRSxDQUFDO0lBQ0gsQ0FBQzs4R0EvVFUscUJBQXFCO2tHQUFyQixxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBSmpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsUUFBUSxFQUFFLGNBQWM7aUJBQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDbGlja0V2ZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYSHRtbFV0aWwgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgQVhaSW5kZXhTZXJ2aWNlLCBBWFpUb2tlbiB9IGZyb20gJ0BhY29yZXgvY29yZS96LWluZGV4JztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIGFmdGVyTmV4dFJlbmRlcixcbiAgRGlyZWN0aXZlLFxuICBlZmZlY3QsXG4gIEVsZW1lbnRSZWYsXG4gIGluamVjdCxcbiAgbW9kZWwsXG4gIE9uRGVzdHJveSxcbiAgb3V0cHV0LFxuICBQTEFURk9STV9JRCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYRHJhd2VyQ29udGFpbmVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kcmF3ZXItY29udGFpbmVyLmRpcmVjdGl2ZSc7XG5leHBvcnQgdHlwZSBBWERyYXdlck1vZGUgPSAncHVzaCcgfCAnb3ZlcmxheSc7XG5leHBvcnQgdHlwZSBBWERyYXdlckxvY2F0aW9uID0gJ3N0YXJ0JyB8ICdlbmQnIHwgJ3RvcCcgfCAnYm90dG9tJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2F4RHJhd2VySXRlbV0nLFxuICBleHBvcnRBczogJ2F4RHJhd2VySXRlbScsXG59KVxuZXhwb3J0IGNsYXNzIEFYRHJhd2VySXRlbURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgZWwgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHByaXZhdGUgaHRtbEVsZW0gPSBzaWduYWw8SFRNTEVsZW1lbnQ+KG51bGwpO1xuICBwcml2YXRlIHBhcmVudCA9IGluamVjdChBWERyYXdlckNvbnRhaW5lckRpcmVjdGl2ZSk7XG4gIHByaXZhdGUgcGxhdGZvcm1JRCA9IGluamVjdChQTEFURk9STV9JRCk7XG4gIHByaXZhdGUgekluZGV4U2VydmljZSA9IGluamVjdChBWFpJbmRleFNlcnZpY2UpO1xuICBwcml2YXRlIHpUb2tlbjogQVhaVG9rZW4gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBjb2xsYXBzZVN0YXRlID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJpdmF0ZSByZXNpemVPYnNlcnZlcjogUmVzaXplT2JzZXJ2ZXI7XG4gIGNvbGxhcHNlU3RhdGVDaGFuZ2VkID0gb3V0cHV0PGJvb2xlYW4+KCk7XG5cbiAgbG9jYXRpb24gPSBtb2RlbDxBWERyYXdlckxvY2F0aW9uPignc3RhcnQnKTtcbiAgY29sbGFwc2VkID0gbW9kZWwodHJ1ZSk7XG4gIGJhY2tEcm9wID0gbW9kZWwodHJ1ZSk7XG4gIG1vZGUgPSBtb2RlbDxBWERyYXdlck1vZGU+KCdvdmVybGF5Jyk7XG4gIHRyYW5zaXRpb24gPSBtb2RlbDxudW1iZXI+KDEwMCk7XG4gIGNsb3NlT25CYWNrZHJvcENsaWNrID0gbW9kZWwoZmFsc2UpO1xuICBiYWNrZHJvcENsYXNzID0gbW9kZWwoJ2F4LWJnLWJsYWNrLzQ1Jyk7XG4gIG9uQmFja2Ryb3BDbGljayA9IG91dHB1dDxBWENsaWNrRXZlbnQ+KCk7XG4gIHNpbmdsZU9wZW5Nb2RlID0gbW9kZWwodHJ1ZSk7XG4gIGlkID0gTWF0aC5yYW5kb20oKTtcblxuICAjaW5pdCA9IGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgdGhpcy5odG1sRWxlbS5zZXQodGhpcy5lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KTtcblxuICAgIGlmICh0aGlzLmNvbGxhcHNlZCgpKSB7XG4gICAgICB0aGlzLmh0bWxFbGVtKCkuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICB9XG5cbiAgICB0aGlzLmh0bWxFbGVtKCkuc3R5bGUuaGVpZ2h0ID0gJzEwMCUnO1xuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMucmVtb3ZlQmFja0Ryb3BPblJlc2l6ZSk7XG5cbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmNvbGxhcHNlZCgpKSB7XG4gICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmh0bWxFbGVtKCkpO1xuICB9KTtcblxuICAjZWZmMiA9IGVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuY29sbGFwc2VkKCkpIHtcbiAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNob3coKTtcbiAgICB9XG4gIH0pO1xuXG4gICNlZmYzID0gZWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXRoaXMuaHRtbEVsZW0oKSkgcmV0dXJuO1xuXG4gICAgaWYgKHRoaXMubW9kZSgpID09PSAnb3ZlcmxheScpIHtcbiAgICAgIHRoaXMuaHRtbEVsZW0oKS5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgICB0aGlzLmh0bWxFbGVtKCkuc3R5bGUubWFyZ2luSW5saW5lRW5kID0gJ2F1dG8nO1xuICAgICAgdGhpcy5odG1sRWxlbSgpLnN0eWxlLm1hcmdpbklubGluZVN0YXJ0ID0gJ2F1dG8nO1xuICAgICAgdGhpcy5odG1sRWxlbSgpLnN0eWxlLm1hcmdpbkJsb2NrU3RhcnQgPSAnYXV0byc7XG4gICAgICB0aGlzLmh0bWxFbGVtKCkuc3R5bGUubWFyZ2luQmxvY2tFbmQgPSAnYXV0byc7XG4gICAgfVxuICB9KTtcblxuICAjZWZmNCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF0aGlzLmh0bWxFbGVtKCkpIHJldHVybjtcblxuICAgIGlmICh0aGlzLm1vZGUoKSA9PT0gJ3B1c2gnKSB7XG4gICAgICB0aGlzLmh0bWxFbGVtKCkuc3R5bGUucG9zaXRpb24gPSAncmVsYXRpdmUnO1xuICAgICAgdGhpcy5odG1sRWxlbSgpLnN0eWxlLnRvcCA9ICdhdXRvJztcbiAgICAgIHRoaXMuaHRtbEVsZW0oKS5zdHlsZS5sZWZ0ID0gJ2F1dG8nO1xuICAgICAgdGhpcy5odG1sRWxlbSgpLnN0eWxlLnJpZ2h0ID0gJ2F1dG8nO1xuICAgICAgdGhpcy5odG1sRWxlbSgpLnN0eWxlLmJvdHRvbSA9ICdhdXRvJztcblxuICAgICAgc3dpdGNoICh0aGlzLmxvY2F0aW9uKCkpIHtcbiAgICAgICAgY2FzZSAnZW5kJzpcbiAgICAgICAgICB0aGlzLmh0bWxFbGVtKCkuc3R5bGUub3JkZXIgPSAnOTk5JztcbiAgICAgICAgICB0aGlzLnBhcmVudC5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLmp1c3RpZnlDb250ZW50ID0gJ3NwYWNlLWJldHdlZW4nO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdzdGFydCc6XG4gICAgICAgICAgdGhpcy5odG1sRWxlbSgpLnN0eWxlLm9yZGVyID0gJy05OTknO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICAgIHRoaXMuaHRtbEVsZW0oKS5zdHlsZS5vcmRlciA9ICc5OTknO1xuICAgICAgICAgIHRoaXMucGFyZW50LmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuZmxleERpcmVjdGlvbiA9ICdjb2x1bW4nO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICd0b3AnOlxuICAgICAgICAgIHRoaXMuaHRtbEVsZW0oKS5zdHlsZS5vcmRlciA9ICctOTk5JztcbiAgICAgICAgICB0aGlzLnBhcmVudC5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLmZsZXhEaXJlY3Rpb24gPSAnY29sdW1uJztcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBTaG93cyB0aGUgZHJhd2VyIGJ5IGFuaW1hdGluZyBpdCBpbnRvIHZpZXcuXG4gICAqXG4gICAqIEByZXR1cm5zIHZvaWQgLSBObyByZXR1cm4gdmFsdWUuIFRoZSBkcmF3ZXIgYmVjb21lcyB2aXNpYmxlLlxuICAgKi9cbiAgcHVibGljIHNob3coKSB7XG4gICAgaWYgKCF0aGlzLmh0bWxFbGVtKCkpIHJldHVybjtcblxuICAgIC8vIElkZW1wb3RlbmN5IGd1YXJkOiBpZiB0aGUgZHJhd2VyIGlzIGFscmVhZHkgc2hvd24sIGRvIG5vdCByZS1hY3F1aXJlIGFcbiAgICAvLyBuZXcgei1pbmRleC4gV2l0aG91dCB0aGlzIGd1YXJkLCByZXBlYXRlZCBzaG93KCkgY2FsbHMgKGUuZy4gZnJvbSBlZmZlY3RzXG4gICAgLy8gcmUtZXZhbHVhdGluZyBvbiB3aW5kb3cgcmVzaXplIG9yIGlucHV0IGNoYW5nZXMpIHdvdWxkIGtlZXAgaW5jcmVtZW50aW5nXG4gICAgLy8gdGhlIHotaW5kZXggdmlhIEFYWkluZGV4U2VydmljZSwgY2F1c2luZyB0aGUgZHJhd2VyIHRvIGp1bXAgYWJvdmUgb3RoZXJcbiAgICAvLyBvdmVybGF5cyBsaWtlIHBvcHVwL21vZGFsIHRoYXQgd2VyZSBvcGVuZWQgbGF0ZXIuXG4gICAgaWYgKHRoaXMuY29sbGFwc2VTdGF0ZSgpICYmIHRoaXMuelRva2VuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2luZ2xlT3Blbk1vZGUoKSkge1xuICAgICAgdGhpcy5wYXJlbnQuZHJhd2VySXRlbSgpLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgaWYgKGl0ZW0ubG9jYXRpb24oKSA9PT0gdGhpcy5sb2NhdGlvbigpICYmIGl0ZW0uaWQgIT09IHRoaXMuaWQpIGl0ZW0uaGlkZSgpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5yZXNpemVPYnNlcnZlci51bm9ic2VydmUodGhpcy5odG1sRWxlbSgpKTtcblxuICAgIC8vIFJlbGVhc2UgYW55IHN0YWxlIHRva2VuIGJlZm9yZSBhY3F1aXJpbmcgYSBuZXcgb25lIHNvIHdlIG5ldmVyIGxlYWtcbiAgICAvLyB0b2tlbnMgaW5zaWRlIEFYWkluZGV4U2VydmljZS5cbiAgICBpZiAodGhpcy56VG9rZW4pIHtcbiAgICAgIHRoaXMuekluZGV4U2VydmljZS5yZWxlYXNlKHRoaXMuelRva2VuKTtcbiAgICAgIHRoaXMuelRva2VuID0gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBBY3F1aXJlIHotaW5kZXggZnJvbSBzZXJ2aWNlXG4gICAgdGhpcy56VG9rZW4gPSB0aGlzLnpJbmRleFNlcnZpY2UuYWNxdWlyZSgpO1xuICAgIHRoaXMuaHRtbEVsZW0oKS5zdHlsZS56SW5kZXggPSBTdHJpbmcodGhpcy56VG9rZW4uekluZGV4KTtcblxuICAgIHRoaXMuaHRtbEVsZW0oKS5zdHlsZS50cmFuc2l0aW9uID0gYCR7dGhpcy50cmFuc2l0aW9uKCl9bXMgYWxsIGVhc2VgO1xuICAgIHRoaXMuaHRtbEVsZW0oKS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcblxuICAgIGlmICh0aGlzLm1vZGUoKSA9PT0gJ292ZXJsYXknKSB7XG4gICAgICBpZiAodGhpcy5sb2NhdGlvbigpID09PSAnc3RhcnQnKSB7XG4gICAgICAgIEFYSHRtbFV0aWwuaXNSdGwodGhpcy5odG1sRWxlbSgpKVxuICAgICAgICAgID8gKHRoaXMuaHRtbEVsZW0oKS5zdHlsZS5yaWdodCA9IGAwcHhgKVxuICAgICAgICAgIDogKHRoaXMuaHRtbEVsZW0oKS5zdHlsZS5sZWZ0ID0gYDBweGApO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5sb2NhdGlvbigpID09PSAnZW5kJykge1xuICAgICAgICBBWEh0bWxVdGlsLmlzUnRsKHRoaXMuaHRtbEVsZW0oKSlcbiAgICAgICAgICA/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.3\", ngImport: i0, type: AXDrawerContainerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.2.0\", version: \"20.3.3\", 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.3\", ngImport: i0, type: AXDrawerContainerDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axDrawerContainer]',\n exportAs: 'axDrawerContainer',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLWNvbnRhaW5lci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvZHJhd2VyL3NyYy9saWIvZHJhd2VyLWNvbnRhaW5lci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBTWhFLE1BQU0sT0FBTywwQkFBMEI7SUFKdkM7UUFLRSxPQUFFLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hCLGVBQVUsR0FBRyxlQUFlLENBQUMscUJBQXFCLDhDQUFJLFdBQVcsRUFBRSxJQUFJLE9BQW5CLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxHQUFDLENBQUM7UUFFM0UsVUFBSyxHQUFHLGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDM0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUE0QixDQUFDO1lBQ3RELFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztZQUNyQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7WUFDbkMsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1lBQ2hDLFFBQVEsQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQztZQUNwQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7S0FDSjtJQVJDLEtBQUssQ0FPRjs4R0FYUSwwQkFBMEI7a0dBQTFCLDBCQUEwQiwwR0FFUixxQkFBcUI7OzJGQUZ2QywwQkFBMEI7a0JBSnRDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFLG1CQUFtQjtpQkFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZnRlck5leHRSZW5kZXIsIGNvbnRlbnRDaGlsZHJlbiwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYRHJhd2VySXRlbURpcmVjdGl2ZSB9IGZyb20gJy4vZHJhd2VyLWl0ZW0uZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2F4RHJhd2VyQ29udGFpbmVyXScsXG4gIGV4cG9ydEFzOiAnYXhEcmF3ZXJDb250YWluZXInLFxufSlcbmV4cG9ydCBjbGFzcyBBWERyYXdlckNvbnRhaW5lckRpcmVjdGl2ZSB7XG4gIGVsID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBkcmF3ZXJJdGVtID0gY29udGVudENoaWxkcmVuKEFYRHJhd2VySXRlbURpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KTtcblxuICAjaW5pdCA9IGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgY29uc3QgaHRtbEVsZW0gPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgaHRtbEVsZW0uc3R5bGUucG9zaXRpb24gPSAncmVsYXRpdmUnO1xuICAgIGh0bWxFbGVtLnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gICAgaHRtbEVsZW0uc3R5bGUuZGlzcGxheSA9ICdmbGV4JztcbiAgICBodG1sRWxlbS5zdHlsZS50b3VjaEFjdGlvbiA9ICdub25lJztcbiAgICBodG1sRWxlbS5zdHlsZS53aWR0aCA9ICcxMDAlJztcbiAgfSk7XG59XG4iXX0=","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.3\", ngImport: i0, type: AXDrawerDirectiveModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.3\", ngImport: i0, type: AXDrawerDirectiveModule, imports: [AXDrawerContainerDirective, AXDrawerItemDirective], exports: [AXDrawerContainerDirective, AXDrawerItemDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXDrawerDirectiveModule, imports: [MODULES] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay9kcmF3ZXIvc3JjL2xpYi9kcmF3ZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDMUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBRWhFLE1BQU0sU0FBUyxHQUFHLENBQUMsMEJBQTBCLEVBQUUscUJBQXFCLENBQUMsQ0FBQztBQUV0RSxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7QUFPbkIsTUFBTSxPQUFPLHVCQUF1Qjs4R0FBdkIsdUJBQXVCOytHQUF2Qix1QkFBdUIsWUFUakIsMEJBQTBCLEVBQUUscUJBQXFCLGFBQWpELDBCQUEwQixFQUFFLHFCQUFxQjsrR0FTdkQsdUJBQXVCLFlBSnJCLE9BQU87OzJGQUlULHVCQUF1QjtrQkFMbkMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxHQUFHLE9BQU8sRUFBRSxHQUFHLFNBQVMsQ0FBQztvQkFDbkMsT0FBTyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUM7b0JBQ3ZCLFNBQVMsRUFBRSxFQUFFO2lCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYRHJhd2VyQ29udGFpbmVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kcmF3ZXItY29udGFpbmVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBWERyYXdlckl0ZW1EaXJlY3RpdmUgfSBmcm9tICcuL2RyYXdlci1pdGVtLmRpcmVjdGl2ZSc7XG5cbmNvbnN0IENPTVBPTkVOVCA9IFtBWERyYXdlckNvbnRhaW5lckRpcmVjdGl2ZSwgQVhEcmF3ZXJJdGVtRGlyZWN0aXZlXTtcblxuY29uc3QgTU9EVUxFUyA9IFtdO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbLi4uTU9EVUxFUywgLi4uQ09NUE9ORU5UXSxcbiAgZXhwb3J0czogWy4uLkNPTVBPTkVOVF0sXG4gIHByb3ZpZGVyczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYRHJhd2VyRGlyZWN0aXZlTW9kdWxlIHt9XG4iXX0=","/**\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
+ {"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 { AXLocaleService } from '@acorex/core/locale';\nimport { AXZIndexService } from '@acorex/core/z-index';\nimport { isPlatformBrowser } from '@angular/common';\nimport { afterNextRender, computed, 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.localeService = inject(AXLocaleService);\n this.zToken = null;\n this.collapseState = signal(false, ...(ngDevMode ? [{ debugName: \"collapseState\" }] : []));\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 this.isRtl = computed(() => !!this.localeService.activeProfile()?.i18nMeta?.rtl, ...(ngDevMode ? [{ debugName: \"isRtl\" }] : []));\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 // 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 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 // 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 // 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 this.isRtl() ? (this.htmlElem().style.right = `0px`) : (this.htmlElem().style.left = `0px`);\n }\n if (this.location() === 'end') {\n this.isRtl() ? (this.htmlElem().style.left = `0px`) : (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 this.isRtl()\n ? (this.htmlElem().style.right = `-${rect.width}px`)\n : (this.htmlElem().style.left = `-${rect.width}px`);\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 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 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 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.3\", ngImport: i0, type: AXDrawerItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.3\", 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.3\", ngImport: i0, type: AXDrawerItemDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axDrawerItem]',\n exportAs: 'axDrawerItem',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLWl0ZW0uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY2RrL2RyYXdlci9zcmMvbGliL2RyYXdlci1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBWSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFDTCxlQUFlLEVBQ2YsUUFBUSxFQUNSLFNBQVMsRUFDVCxNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUNOLFdBQVcsRUFDWCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBUTFFLE1BQU0sT0FBTyxxQkFBcUI7SUFKbEM7UUFLVSxPQUFFLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hCLGFBQVEsR0FBRyxNQUFNLENBQWMsSUFBSSxvREFBQyxDQUFDO1FBQ3JDLFdBQU0sR0FBRyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUM1QyxlQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pDLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3hDLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3hDLFdBQU0sR0FBb0IsSUFBSSxDQUFDO1FBQy9CLGtCQUFhLEdBQUcsTUFBTSxDQUFDLEtBQUsseURBQUMsQ0FBQztRQUV0Qyx5RUFBeUU7UUFDekUsc0VBQXNFO1FBQzlELFVBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxD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SUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFFbkIsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFFRCxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDcEUsQ0FBQztJQUNILENBQUM7OEdBL1RVLHFCQUFxQjtrR0FBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQUpqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFFBQVEsRUFBRSxjQUFjO2lCQUN6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ2xpY2tFdmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWExvY2FsZVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvbG9jYWxlJztcbmltcG9ydCB7IEFYWkluZGV4U2VydmljZSwgQVhaVG9rZW4gfSBmcm9tICdAYWNvcmV4L2NvcmUvei1pbmRleCc7XG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBhZnRlck5leHRSZW5kZXIsXG4gIGNvbXB1dGVkLFxuICBEaXJlY3RpdmUsXG4gIGVmZmVjdCxcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBtb2RlbCxcbiAgT25EZXN0cm95LFxuICBvdXRwdXQsXG4gIFBMQVRGT1JNX0lELFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhEcmF3ZXJDb250YWluZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RyYXdlci1jb250YWluZXIuZGlyZWN0aXZlJztcbmV4cG9ydCB0eXBlIEFYRHJhd2VyTW9kZSA9ICdwdXNoJyB8ICdvdmVybGF5JztcbmV4cG9ydCB0eXBlIEFYRHJhd2VyTG9jYXRpb24gPSAnc3RhcnQnIHwgJ2VuZCcgfCAndG9wJyB8ICdib3R0b20nO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXhEcmF3ZXJJdGVtXScsXG4gIGV4cG9ydEFzOiAnYXhEcmF3ZXJJdGVtJyxcbn0pXG5leHBvcnQgY2xhc3MgQVhEcmF3ZXJJdGVtRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBlbCA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSBodG1sRWxlbSA9IHNpZ25hbDxIVE1MRWxlbWVudD4obnVsbCk7XG4gIHByaXZhdGUgcGFyZW50ID0gaW5qZWN0KEFYRHJhd2VyQ29udGFpbmVyRGlyZWN0aXZlKTtcbiAgcHJpdmF0ZSBwbGF0Zm9ybUlEID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgcHJpdmF0ZSB6SW5kZXhTZXJ2aWNlID0gaW5qZWN0KEFYWkluZGV4U2VydmljZSk7XG4gIHByaXZhdGUgbG9jYWxlU2VydmljZSA9IGluamVjdChBWExvY2FsZVNlcnZpY2UpO1xuICBwcml2YXRlIHpUb2tlbjogQVhaVG9rZW4gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBjb2xsYXBzZVN0YXRlID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJpdmF0ZSByZXNpemVPYnNlcnZlcjogUmVzaXplT2JzZXJ2ZXI7XG4gIC8vIFJlYWN0aXZlIFJUTCBmbGFnIGRlcml2ZWQgZnJvbSB0aGUgYWN0aXZlIGxvY2FsZSBwcm9maWxlIHNvIHRoZSBkcmF3ZXJcbiAgLy8gcmUtcG9zaXRpb25zIGl0c2VsZiB3aGVuZXZlciB0aGUgdXNlciBzd2l0Y2hlcyBsYW5ndWFnZSBhdCBydW50aW1lLlxuICBwcml2YXRlIGlzUnRsID0gY29tcHV0ZWQoKCkgPT4gISF0aGlzLmxvY2FsZVNlcnZpY2UuYWN0aXZlUHJvZmlsZSgpPy5pMThuTWV0YT8ucnRsKTtcbiAgY29sbGFwc2VTdGF0ZUNoYW5nZWQgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcblxuICBsb2NhdGlvbiA9IG1vZGVsPEFYRHJhd2VyTG9jYXRpb24+KCdzdGFydCcpO1xuICBjb2xsYXBzZWQgPSBtb2RlbCh0cnVlKTtcbiAgYmFja0Ryb3AgPSBtb2RlbCh0cnVlKTtcbiAgbW9kZSA9IG1vZGVsPEFYRHJhd2VyTW9kZT4oJ292ZXJsYXknKTtcbiAgdHJhbnNpdGlvbiA9IG1vZGVsPG51bWJlcj4oMTAwKTtcbiAgY2xvc2VPbkJhY2tkcm9wQ2xpY2sgPSBtb2RlbChmYWxzZSk7XG4gIGJhY2tkcm9wQ2xhc3MgPSBtb2RlbCgnYXgtYmctYmxhY2svNDUnKTtcbiAgb25CYWNrZHJvcENsaWNrID0gb3V0cHV0PEFYQ2xpY2tFdmVudD4oKTtcbiAgc2luZ2xlT3Blbk1vZGUgPSBtb2RlbCh0cnVlKTtcbiAgaWQgPSBNYXRoLnJhbmRvbSgpO1xuXG4gICNpbml0ID0gYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICB0aGlzLmh0bWxFbGVtLnNldCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpO1xuXG4gICAgaWYgKHRoaXMuY29sbGFwc2VkKCkpIHtcbiAgICAgIHRoaXMuaHRtbEVsZW0oKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgIH1cblxuICAgIHRoaXMuaHRtbEVsZW0oKS5zdHlsZS5oZWlnaHQgPSAnMTAwJSc7XG5cbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5yZW1vdmVCYWNrRHJvcE9uUmVzaXplKTtcblxuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuY29sbGFwc2VkKCkpIHtcbiAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuaHRtbEVsZW0oKSk7XG4gIH0pO1xuXG4gICNlZmYyID0gZWZmZWN0KCgpID0+IHtcbiAgICBpZiAodGhpcy5jb2xsYXBzZWQoKSkge1xuICAgICAgdGhpcy5oaWRlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2hvdygpO1xuICAgIH1cbiAgfSk7XG5cbiAgI2VmZjMgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGlmICghdGhpcy5odG1sRWxlbSgpKSByZXR1cm47XG5cbiAgICBpZiAodGhpcy5tb2RlKCkgPT09ICdvdmVybGF5Jykge1xuICAgICAgdGhpcy5odG1sRWxlbSgpLnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcbiAgICAgIHRoaXMuaHRtbEVsZW0oKS5zdHlsZS5tYXJnaW5JbmxpbmVFbmQgPSAnYXV0byc7XG4gICAgICB0aGlzLmh0bWxFbGVtKCkuc3R5bGUubWFyZ2luSW5saW5lU3RhcnQgPSAnYXV0byc7XG4gICAgICB0aGlzLmh0bWxFbGVtKCkuc3R5bGUubWFyZ2luQmxvY2tTdGFydCA9ICdhdXRvJztcbiAgICAgIHRoaXMuaHRtbEVsZW0oKS5zdHlsZS5tYXJnaW5CbG9ja0VuZCA9ICdhdXRvJztcbiAgICB9XG4gIH0pO1xuXG4gICNlZmY0ID0gZWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXRoaXMuaHRtbEVsZW0oKSkgcmV0dXJuO1xuXG4gICAgaWYgKHRoaXMubW9kZSgpID09PSAncHVzaCcpIHtcbiAgICAgIHRoaXMuaHRtbEVsZW0oKS5zdHlsZS5wb3NpdGlvbiA9ICdyZWxhdGl2ZSc7XG4gICAgICB0aGlzLmh0bWxFbGVtKCkuc3R5bGUudG9wID0gJ2F1dG8nO1xuICAgICAgdGhpcy5odG1sRWxlbSgpLnN0eWxlLmxlZnQgPSAnYXV0byc7XG4gICAgICB0aGlzLmh0bWxFbGVtKCkuc3R5bGUucmlnaHQgPSAnYXV0byc7XG4gICAgICB0aGlzLmh0bWxFbGVtKCkuc3R5bGUuYm90dG9tID0gJ2F1dG8nO1xuXG4gICAgICBzd2l0Y2ggKHRoaXMubG9jYXRpb24oKSkge1xuICAgICAgICBjYXNlICdlbmQnOlxuICAgICAgICAgIHRoaXMuaHRtbEVsZW0oKS5zdHlsZS5vcmRlciA9ICc5OTknO1xuICAgICAgICAgIHRoaXMucGFyZW50LmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuanVzdGlmeUNvbnRlbnQgPSAnc3BhY2UtYmV0d2Vlbic7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3N0YXJ0JzpcbiAgICAgICAgICB0aGlzLmh0bWxFbGVtKCkuc3R5bGUub3JkZXIgPSAnLTk5OSc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgICAgdGhpcy5odG1sRWxlbSgpLnN0eWxlLm9yZGVyID0gJzk5OSc7XG4gICAgICAgICAgdGhpcy5wYXJlbnQuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5mbGV4RGlyZWN0aW9uID0gJ2NvbHVtbic7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgICAgdGhpcy5odG1sRWxlbSgpLnN0eWxlLm9yZGVyID0gJy05OTknO1xuICAgICAgICAgIHRoaXMucGFyZW50LmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuZmxleERpcmVjdGlvbiA9ICdjb2x1bW4nO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgLyoqXG4gICAqIFNob3dzIHRoZSBkcmF3ZXIgYnkgYW5pbWF0aW5nIGl0IGludG8gdmlldy5cbiAgICpcbiAgICogQHJldHVybnMgdm9pZCAtIE5vIHJldHVybiB2YWx1ZS4gVGhlIGRyYXdlciBiZWNvbWVzIHZpc2libGUuXG4gICAqL1xuICBwdWJsaWMgc2hvdygpIHtcbiAgICBpZiAoIXRoaXMuaHRtbEVsZW0oKSkgcmV0dXJuO1xuXG4gICAgLy8gSWRlbXBvdGVuY3kgZ3VhcmQ6IGlmIHRoZSBkcmF3ZXIgaXMgYWxyZWFkeSBzaG93biwgZG8gbm90IHJlLWFjcXVpcmUgYVxuICAgIC8vIG5ldyB6LWluZGV4LiBXaXRob3V0IHRoaXMgZ3VhcmQsIHJlcGVhdGVkIHNob3coKSBjYWxscyAoZS5nLiBmcm9tIGVmZmVjdHNcbiAgICAvLyByZS1ldmFsdWF0aW5nIG9uIHdpbmRvdyByZXNpemUgb3IgaW5wdXQgY2hhbmdlcykgd291bGQga2VlcCBpbmNyZW1lbnRpbmdcbiAgICAvLyB0aGUgei1pbmRleCB2aWEgQVhaSW5kZXhTZXJ2aWNlLCBjYXVzaW5nIHRoZSBkcmF3ZXIgdG8ganVtcCBhYm92ZSBvdGhlclxuICAgIC8vIG92ZXJsYXlzIGxpa2UgcG9wdXAvbW9kYWwgdGhhdCB3ZXJlIG9wZW5lZCBsYXRlci5cbiAgICBpZiAodGhpcy5jb2xsYXBzZVN0YXRlKCkgJiYgdGhpcy56VG9rZW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zaW5nbGVPcGVuTW9kZSgpKSB7XG4gICAgICB0aGlzLnBhcmVudC5kcmF3ZXJJdGVtKCkuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBpZiAoaXRlbS5sb2NhdGlvbigpID09PSB0aGlzLmxvY2F0aW9uKCkgJiYgaXRlbS5pZCAhPT0gdGhpcy5pZCkgaXRlbS5oaWRlKCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLnVub2JzZXJ2ZSh0aGlzLmh0bWxFbGVtKCkpO1xuXG4gICAgLy8gUmVsZWFzZSBhbnkgc3RhbGUgdG9rZW4gYmVmb3JlIGFjcXVpcmluZyBhIG5ldyBvbmUgc28gd2UgbmV2ZXIgbGVha1xuICAgIC8vIHRva2VucyBpbnNpZGUgQVhaSW5kZXhTZXJ2aWNlLlxuICAgIGlmICh0aGlzLnpUb2tlbikge1xuICAgICAgdGhpcy56SW5kZXhTZXJ2aWNlLnJlbGVhc2UodGhpcy56VG9rZW4pO1xuICAgICAgdGhpcy56VG9rZW4gPSBudWxsO1xuICAgIH1cblxuICAgIC8vIEFjcXVpcmUgei1pbmRleCBmcm9tIHNlcnZpY2VcbiAgICB0aGlzLnpUb2tlbiA9IHRoaXMuekluZGV4U2VydmljZS5hY3F1aXJlKCk7XG4gICAgdGhpcy5odG1sRWxlbSgpLnN0eWxlLnpJbmRleCA9IFN0cmluZyh0aGlzLnpUb2tlbi56SW5kZXgpO1xuXG4gICAgdGhpcy5odG1sRWxlbSgpLnN0eWxlLnRyYW5zaXRpb24gPSBgJHt0aGlzLnRyYW5zaXRpb24oKX1tcyBhbGwgZWFzZWA7XG4gICAgdGhpcy5odG1sRWxlbSgpLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xuXG4gICAgaWYgKHRoaXMubW9kZSgpID09PSAnb3ZlcmxheScpIHtcbiAgICAgIGlmICh0aGlzLmxvY2F0aW9uKCkgPT09ICdzdGFydCcpIHtcbiAgICAgICAgdGhpcy5pc1J0bCgpID8gKHRoaXMuaHRtbEVsZW0oKS5zdHlsZS5yaWdodCA9IGAwcHhgKSA6ICh0aGlzLmh0bWxFbGVtKCkuc3R5bGUubGVmdCA9IGAwcHhgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMubG9jYXRpb24oKSA9PT0gJ2VuZCcpIHtcbiAgICAgICAgdGhpcy5pc1J0bCgpID8gKHRoaXMuaHRtbEVsZW0oKS5zdHlsZS5sZWZ0ID0gYDBweGApIDogKHRoaXMuaHRtbEVsZW0oKS5zdHlsZS5yaWdodCA9IGAwcHhgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMubG9jYXRpb24oKSA9PT0gJ3RvcCcgfHwgdGhpcy5sb2NhdGlvbigpID09PSAnYm90dG9tJykge1xuICAgICAgICB0aGlzLmh0bWxFbGVtKCkuc3R5bGUudG9wID0gYDBweGA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubW9kZSgpID09PSAncHVzaCcpIHtcbiAgICAgIGlmICh0aGlzLmxvY2F0aW9uKCkgPT09ICdzdGFydCcpIHtcbiAgICAgICAgdGhpcy5odG1sRWxlbSgpLnN0eWxlLm1hcmdpbklubGluZVN0YXJ0ID0gJzBweCc7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmxvY2F0aW9uKCkgPT09ICdlbmQnKSB7XG4gICAgICAgIHRoaXMuaHRtbEVsZW0oKS5zdHlsZS5tYXJnaW5JbmxpbmVFbmQgPSAnMHB4JztcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMubG9jYXRpb24oKSA9PT0gJ2JvdHRvbScpIHtcbiAgICAgICAgdGhpcy5odG1sRWxlbSgpLnN0eWxlLm1hcmdpbkJsb2NrU3RhcnQgPSAnMHB4JztcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMubG9jYXRpb24oKSA9PT0gJ3RvcCcpIHtcbiAgICAgICAgdGhpcy5odG1sRWxlbSgpLnN0eWxlLm1hcmdpbkJsb2NrU3RhcnQgPSAnMHB4JztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5iYWNrRHJvcCgpICYmIHRoaXMubW9kZSgpID09PSAnb3ZlcmxheScpIHtcbiAgICAgIHRoaXMuYWRkQmFja2Ryb3AoKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbGxhcHNlU3RhdGUuc2V0KHRydWUpO1xuICAgIHRoaXMuY29sbGFwc2VTdGF0ZUNoYW5nZWQuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIaWRlcyB0aGUgZHJhd2VyIGJ5IGFuaW1hdGluZyBpdCBvdXQgb2Ygdmlldy5cbiAgICpcbiAgICogQHJldHVybnMgdm9pZCAtIE5vIHJldHVybiB2YWx1ZS4gVGhlIGRyYXdlciBiZWNvbWVzIGhpZGRlbi5cbiAgICovXG4gIHB1YmxpYyBoaWRlKCkge1xuICAgIGlmICghdGhpcy5odG1sRWxlbSgpKSByZXR1cm47XG5cbiAgICAvLyBSZWxlYXNlIHotaW5kZXggdG9rZW5cbiAgICB0aGlzLnpJbmRleFNlcnZpY2UucmVsZWFzZSh0aGlzLnpUb2tlbik7XG4gICAgdGhpcy56VG9rZW4gPSBudWxsO1xuICAgIHRoaXMuaHRtbEVsZW0oKS5zdHlsZS56SW5kZXggPSAnJztcblxuICAgIGNvbnN0IHJlY3QgPSB0aGlzLmh0bWxFbGVtKCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBpZiAodGhpcy5tb2RlKCkgPT09ICdwdXNoJykge1xuICAgICAgaWYgKHRoaXMubG9jYXRpb24oKSA9PT0gJ2VuZCcpIHtcbiAgICAgICAgdGhpcy5odG1sRWxlbSgpLnN0eWxlLm1hcmdpbklubGluZUVuZCA9IGAtJHtyZWN0LndpZHRofXB4YDtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMubG9jYXRpb24oKSA9PT0gJ3N0YXJ0Jykge1xuICAgICAgICB0aGlzLmh0bWxFbGVtKCkuc3R5bGUubWFyZ2luSW5saW5lU3RhcnQgPSBgLSR7cmVjdC53aWR0aH1weGA7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmxvY2F0aW9uKCkgPT09ICdib3R0b20nKSB7XG4gICAgICAgIHRoaXMuaHRtbEVsZW0oKS5zdHlsZS5tYXJnaW5CbG9ja1N0YXJ0ID0gYCR7cmVjdC5oZWlnaHR9cHhgO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5sb2NhdGlvbigpID09PSAndG9wJykge1xuICAgICAgICB0aGlzLmh0bWxFbGVtKCkuc3R5bGUubWFyZ2luQmxvY2tTdGFydCA9IGAtJHtyZWN0LmhlaWdodH1weGA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubW9kZSgpID09PSAnb3ZlcmxheScpIHtcbiAgICAgIGlmICh0aGlzLmxvY2F0aW9uKCkgPT09ICdzdGFydCcpIHtcbiAgICAgICAgdGhpcy5pc1J0bCgpXG4gICAgICAgICAgPyAodGhpcy5odG1sRWxlbSgpLnN0eWxlLnJpZ2h0ID0gYC0ke3JlY3Qud2lkdGh9cHhgKVxuICAgICAgICAgIDogKHRoaXMuaHRtbEVsZW0oKS5zdHlsZS5sZWZ0ID0gYC0ke3JlY3Qud2lkdGh9cHhgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMubG9jYXRpb24oKSA9PT0gJ2VuZCcpIHtcbiAgICAgICAgdGhpcy5pc1J0bCgpXG4gICAgICAgICAgPyAodGhpcy5odG1sRWxlbSgpLnN0eWxlLmxlZnQgPSBgLSR7cmVjdC53aWR0aH1weGApXG4gICAgICAgICAgOiAodGhpcy5odG1sRWxlbSgpLnN0eWxlLnJpZ2h0ID0gYC0ke3JlY3Qud2lkdGh9cHhgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMubG9jYXRpb24oKSA9PT0gJ3RvcCcpIHtcbiAgICAgICAgdGhpcy5pc1J0bCgpXG4gICAgICAgICAgPyAodGhpcy5odG1sRWxlbSgpLnN0eWxlLmJvdHRvbSA9IGAtJHtyZWN0LmhlaWdodH1weGApXG4gICAgICAgICAgOiAodGhpcy5odG1sRWxlbSgpLnN0eWxlLnRvcCA9IGAtJHtyZWN0LmhlaWdodH1weGApO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5sb2NhdGlvbigpID09PSAnYm90dG9tJykge1xuICAgICAgICB0aGlzLmlzUnRsKClcbiAgICAgICAgICA/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.3\", ngImport: i0, type: AXDrawerContainerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.2.0\", version: \"20.3.3\", 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.3\", ngImport: i0, type: AXDrawerContainerDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axDrawerContainer]',\n exportAs: 'axDrawerContainer',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLWNvbnRhaW5lci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvZHJhd2VyL3NyYy9saWIvZHJhd2VyLWNvbnRhaW5lci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBTWhFLE1BQU0sT0FBTywwQkFBMEI7SUFKdkM7UUFLRSxPQUFFLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hCLGVBQVUsR0FBRyxlQUFlLENBQUMscUJBQXFCLDhDQUFJLFdBQVcsRUFBRSxJQUFJLE9BQW5CLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxHQUFDLENBQUM7UUFFM0UsVUFBSyxHQUFHLGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDM0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUE0QixDQUFDO1lBQ3RELFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztZQUNyQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7WUFDbkMsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1lBQ2hDLFFBQVEsQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQztZQUNwQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7S0FDSjtJQVJDLEtBQUssQ0FPRjs4R0FYUSwwQkFBMEI7a0dBQTFCLDBCQUEwQiwwR0FFUixxQkFBcUI7OzJGQUZ2QywwQkFBMEI7a0JBSnRDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFLG1CQUFtQjtpQkFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZnRlck5leHRSZW5kZXIsIGNvbnRlbnRDaGlsZHJlbiwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYRHJhd2VySXRlbURpcmVjdGl2ZSB9IGZyb20gJy4vZHJhd2VyLWl0ZW0uZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2F4RHJhd2VyQ29udGFpbmVyXScsXG4gIGV4cG9ydEFzOiAnYXhEcmF3ZXJDb250YWluZXInLFxufSlcbmV4cG9ydCBjbGFzcyBBWERyYXdlckNvbnRhaW5lckRpcmVjdGl2ZSB7XG4gIGVsID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBkcmF3ZXJJdGVtID0gY29udGVudENoaWxkcmVuKEFYRHJhd2VySXRlbURpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KTtcblxuICAjaW5pdCA9IGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgY29uc3QgaHRtbEVsZW0gPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgaHRtbEVsZW0uc3R5bGUucG9zaXRpb24gPSAncmVsYXRpdmUnO1xuICAgIGh0bWxFbGVtLnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gICAgaHRtbEVsZW0uc3R5bGUuZGlzcGxheSA9ICdmbGV4JztcbiAgICBodG1sRWxlbS5zdHlsZS50b3VjaEFjdGlvbiA9ICdub25lJztcbiAgICBodG1sRWxlbS5zdHlsZS53aWR0aCA9ICcxMDAlJztcbiAgfSk7XG59XG4iXX0=","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.3\", ngImport: i0, type: AXDrawerDirectiveModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.3\", ngImport: i0, type: AXDrawerDirectiveModule, imports: [AXDrawerContainerDirective, AXDrawerItemDirective], exports: [AXDrawerContainerDirective, AXDrawerItemDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXDrawerDirectiveModule, imports: [MODULES] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay9kcmF3ZXIvc3JjL2xpYi9kcmF3ZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDMUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBRWhFLE1BQU0sU0FBUyxHQUFHLENBQUMsMEJBQTBCLEVBQUUscUJBQXFCLENBQUMsQ0FBQztBQUV0RSxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7QUFPbkIsTUFBTSxPQUFPLHVCQUF1Qjs4R0FBdkIsdUJBQXVCOytHQUF2Qix1QkFBdUIsWUFUakIsMEJBQTBCLEVBQUUscUJBQXFCLGFBQWpELDBCQUEwQixFQUFFLHFCQUFxQjsrR0FTdkQsdUJBQXVCLFlBSnJCLE9BQU87OzJGQUlULHVCQUF1QjtrQkFMbkMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxHQUFHLE9BQU8sRUFBRSxHQUFHLFNBQVMsQ0FBQztvQkFDbkMsT0FBTyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUM7b0JBQ3ZCLFNBQVMsRUFBRSxFQUFFO2lCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYRHJhd2VyQ29udGFpbmVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kcmF3ZXItY29udGFpbmVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBWERyYXdlckl0ZW1EaXJlY3RpdmUgfSBmcm9tICcuL2RyYXdlci1pdGVtLmRpcmVjdGl2ZSc7XG5cbmNvbnN0IENPTVBPTkVOVCA9IFtBWERyYXdlckNvbnRhaW5lckRpcmVjdGl2ZSwgQVhEcmF3ZXJJdGVtRGlyZWN0aXZlXTtcblxuY29uc3QgTU9EVUxFUyA9IFtdO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbLi4uTU9EVUxFUywgLi4uQ09NUE9ORU5UXSxcbiAgZXhwb3J0czogWy4uLkNPTVBPTkVOVF0sXG4gIHByb3ZpZGVyczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYRHJhd2VyRGlyZWN0aXZlTW9kdWxlIHt9XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNkay1kcmF3ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvZHJhd2VyL3NyYy9hY29yZXgtY2RrLWRyYXdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ class AXPanViewDirective {
13
13
  this.startY = signal(0, ...(ngDevMode ? [{ debugName: "startY" }] : []));
14
14
  this.pointerDown = signal(false, ...(ngDevMode ? [{ debugName: "pointerDown" }] : []));
15
15
  this.wrapper = signal(null, ...(ngDevMode ? [{ debugName: "wrapper" }] : []));
16
+ this.wheelListener = (e) => this.handleWheel(e);
16
17
  this.zoomStep = input(7, ...(ngDevMode ? [{ debugName: "zoomStep" }] : []));
17
18
  this.minZoom = input(25, ...(ngDevMode ? [{ debugName: "minZoom" }] : []));
18
19
  this.maxZoom = input(400, ...(ngDevMode ? [{ debugName: "maxZoom" }] : []));
@@ -33,26 +34,10 @@ class AXPanViewDirective {
33
34
  // Create Wrapper
34
35
  this.createWrapper();
35
36
  this.zone.runOutsideAngular(() => {
36
- // Wheel Event
37
- this.wrapper().onwheel = (e) => {
38
- e.preventDefault();
39
- if (e.ctrlKey || this.freeMode()) {
40
- this.handleZoomChange(e);
41
- return;
42
- }
43
- else if (e.shiftKey) {
44
- if (this.disablePan())
45
- return;
46
- this.panX.update((prev) => prev - e.deltaY / 3);
47
- this.setElementPosition();
48
- }
49
- else {
50
- if (this.disablePan())
51
- return;
52
- this.panY.update((prev) => prev - e.deltaY / 3);
53
- this.setElementPosition();
54
- }
55
- };
37
+ const wrapper = this.wrapper();
38
+ if (!wrapper)
39
+ return;
40
+ wrapper.addEventListener('wheel', this.wheelListener, { passive: false });
56
41
  // Pointer Down Event
57
42
  this.wrapper().onpointerdown = (e) => this.handlePointerDown(e);
58
43
  // Pointer Move Event
@@ -70,10 +55,13 @@ class AXPanViewDirective {
70
55
  });
71
56
  });
72
57
  }
58
+ static { this.WHEEL_PAN_FACTOR = 1 / 3; }
73
59
  #anr;
74
60
  ngOnDestroy() {
75
- if (isPlatformBrowser(this.platformId))
76
- this.resizeObserver.disconnect();
61
+ if (!isPlatformBrowser(this.platformId))
62
+ return;
63
+ this.wrapper()?.removeEventListener('wheel', this.wheelListener);
64
+ this.resizeObserver?.disconnect();
77
65
  }
78
66
  createWrapper() {
79
67
  this.wrapper.set(this.render.createElement('div'));
@@ -120,10 +108,38 @@ class AXPanViewDirective {
120
108
  this.pointerDown.set(false);
121
109
  this.wrapper().style.cursor = 'auto';
122
110
  }
111
+ handleWheel(e) {
112
+ e.preventDefault();
113
+ if (this.freeMode()) {
114
+ this.handleZoomChange(e);
115
+ return;
116
+ }
117
+ if (e.ctrlKey) {
118
+ this.handleZoomChange(e);
119
+ return;
120
+ }
121
+ if (this.disablePan())
122
+ return;
123
+ const delta = this.getWheelDelta(e, e.shiftKey);
124
+ this.zone.run(() => {
125
+ if (e.shiftKey) {
126
+ this.panX.update((prev) => prev - delta * AXPanViewDirective.WHEEL_PAN_FACTOR);
127
+ }
128
+ else {
129
+ this.panY.update((prev) => prev - delta * AXPanViewDirective.WHEEL_PAN_FACTOR);
130
+ }
131
+ this.setElementPosition();
132
+ });
133
+ }
134
+ getWheelDelta(e, horizontal) {
135
+ if (horizontal) {
136
+ return e.deltaX !== 0 ? e.deltaX : e.deltaY;
137
+ }
138
+ return e.deltaY !== 0 ? e.deltaY : e.deltaX;
139
+ }
123
140
  handleZoomChange(e) {
124
141
  if (this.disableZoom())
125
142
  return;
126
- e.preventDefault();
127
143
  const rect = this.nativeEl().getBoundingClientRect();
128
144
  const mouseX = e.clientX - rect.left;
129
145
  const mouseY = e.clientY - rect.top;
@@ -131,11 +147,13 @@ class AXPanViewDirective {
131
147
  const zoomDirection = e.deltaY > 0 ? -1 : 1; // Scroll up -> zoom in, scroll down -> zoom out
132
148
  const newZoom = Math.round(Math.max(this.minZoom(), Math.min(this.maxZoom(), this.zoom() + zoomDirection * this.zoomStep())));
133
149
  const scaleChange = newZoom / this.zoom();
134
- // Adjust pan to keep zoom centered at the mouse position
135
- this.panX.update((prev) => prev - (mouseX - rect.width / 2) * (scaleChange - 1));
136
- this.panY.update((prev) => prev - (mouseY - rect.height / 2) * (scaleChange - 1));
137
- this.zoom.set(newZoom);
138
- this.setElementPosition();
150
+ this.zone.run(() => {
151
+ // Adjust pan to keep zoom centered at the mouse position
152
+ this.panX.update((prev) => prev - (mouseX - rect.width / 2) * (scaleChange - 1));
153
+ this.panY.update((prev) => prev - (mouseY - rect.height / 2) * (scaleChange - 1));
154
+ this.zoom.set(newZoom);
155
+ this.setElementPosition();
156
+ });
139
157
  }
140
158
  sizeChanged() {
141
159
  const prevWidth = this.initialWidth();
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-cdk-pan-view.mjs","sources":["../tmp-esm2022/pan-view/lib/pan-view.directive.js","../tmp-esm2022/pan-view/acorex-cdk-pan-view.js"],"sourcesContent":["import { isPlatformBrowser } from '@angular/common';\nimport { afterNextRender, computed, Directive, DOCUMENT, ElementRef, inject, input, linkedSignal, model, NgZone, output, PLATFORM_ID, Renderer2, signal, } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPanViewDirective {\n constructor() {\n this.platformId = inject(PLATFORM_ID);\n this.zone = inject(NgZone);\n this.render = inject(Renderer2);\n this.document = inject(DOCUMENT);\n this.el = inject((ElementRef));\n this.startX = signal(0, ...(ngDevMode ? [{ debugName: \"startX\" }] : []));\n this.startY = signal(0, ...(ngDevMode ? [{ debugName: \"startY\" }] : []));\n this.pointerDown = signal(false, ...(ngDevMode ? [{ debugName: \"pointerDown\" }] : []));\n this.wrapper = signal(null, ...(ngDevMode ? [{ debugName: \"wrapper\" }] : []));\n this.zoomStep = input(7, ...(ngDevMode ? [{ debugName: \"zoomStep\" }] : []));\n this.minZoom = input(25, ...(ngDevMode ? [{ debugName: \"minZoom\" }] : []));\n this.maxZoom = input(400, ...(ngDevMode ? [{ debugName: \"maxZoom\" }] : []));\n this.freeMode = input(false, ...(ngDevMode ? [{ debugName: \"freeMode\" }] : []));\n this.fitContent = input(true, ...(ngDevMode ? [{ debugName: \"fitContent\" }] : []));\n this.disablePan = input(false, ...(ngDevMode ? [{ debugName: \"disablePan\" }] : []));\n this.disableZoom = input(false, ...(ngDevMode ? [{ debugName: \"disableZoom\" }] : []));\n this.wrapperClasses = input('', ...(ngDevMode ? [{ debugName: \"wrapperClasses\" }] : []));\n this.panX = model(0, ...(ngDevMode ? [{ debugName: \"panX\" }] : []));\n this.panY = model(0, ...(ngDevMode ? [{ debugName: \"panY\" }] : []));\n this.zoom = model(100, ...(ngDevMode ? [{ debugName: \"zoom\" }] : []));\n this.zoomChange = output();\n this.positionChange = output();\n this.nativeEl = computed(() => this.el.nativeElement, ...(ngDevMode ? [{ debugName: \"nativeEl\" }] : []));\n this.initialWidth = linkedSignal(() => this.nativeEl().getBoundingClientRect().width, ...(ngDevMode ? [{ debugName: \"initialWidth\" }] : []));\n this.initialHeight = linkedSignal(() => this.nativeEl().getBoundingClientRect().height, ...(ngDevMode ? [{ debugName: \"initialHeight\" }] : []));\n this.#anr = afterNextRender(() => {\n // Create Wrapper\n this.createWrapper();\n this.zone.runOutsideAngular(() => {\n // Wheel Event\n this.wrapper().onwheel = (e) => {\n e.preventDefault();\n if (e.ctrlKey || this.freeMode()) {\n this.handleZoomChange(e);\n return;\n }\n else if (e.shiftKey) {\n if (this.disablePan())\n return;\n this.panX.update((prev) => prev - e.deltaY / 3);\n this.setElementPosition();\n }\n else {\n if (this.disablePan())\n return;\n this.panY.update((prev) => prev - e.deltaY / 3);\n this.setElementPosition();\n }\n };\n // Pointer Down Event\n this.wrapper().onpointerdown = (e) => this.handlePointerDown(e);\n // Pointer Move Event\n this.document.onpointermove = (e) => this.handlePointerMove(e);\n // Pointer Up/Leave Event\n this.document.onpointerup = (e) => this.handlePointerUp(e);\n if (isPlatformBrowser(this.platformId)) {\n this.resizeObserver = new ResizeObserver(() => this.sizeChanged());\n this.resizeObserver.observe(this.wrapper());\n this.resizeObserver.observe(this.nativeEl());\n }\n });\n setTimeout(() => {\n this.resetPosition();\n });\n });\n }\n #anr;\n ngOnDestroy() {\n if (isPlatformBrowser(this.platformId))\n this.resizeObserver.disconnect();\n }\n createWrapper() {\n this.wrapper.set(this.render.createElement('div'));\n this.render.addClass(this.wrapper(), 'ax-pan-view-wrapper');\n if (this.wrapperClasses())\n this.render.addClass(this.wrapper(), this.wrapperClasses());\n const parent = this.nativeEl().parentNode;\n this.render.appendChild(this.wrapper(), this.nativeEl());\n this.render.insertBefore(parent, this.wrapper(), this.nativeEl().nextSibling);\n this.render.setStyle(this.wrapper(), 'width', '100%');\n this.render.setStyle(this.wrapper(), 'height', '100%');\n this.render.setStyle(this.wrapper(), 'overflow', 'hidden');\n this.render.setStyle(this.wrapper(), 'position', 'relative');\n this.render.setStyle(this.nativeEl(), 'top', '0');\n this.render.setStyle(this.nativeEl(), 'left', '0');\n this.render.setStyle(this.nativeEl(), 'position', 'absolute');\n }\n handlePointerDown(e) {\n if (this.disablePan())\n return;\n if (!this.freeMode() && e.pointerType === 'mouse' && e.buttons !== 4)\n return;\n if (this.freeMode() && e.pointerType === 'mouse' && e.buttons !== 1)\n return;\n e.preventDefault();\n this.pointerDown.set(true);\n this.wrapper().style.cursor = 'grabbing';\n // Update previous position for next move\n this.startX.set(e.clientX - this.panX());\n this.startY.set(e.clientY - this.panY());\n }\n handlePointerMove(e) {\n if (!this.pointerDown() || this.disablePan())\n return;\n e.preventDefault();\n this.panX.set(e.clientX - this.startX());\n this.panY.set(e.clientY - this.startY());\n this.setElementPosition();\n }\n handlePointerUp(e) {\n if (!this.pointerDown() || this.disablePan())\n return;\n e.preventDefault();\n this.pointerDown.set(false);\n this.wrapper().style.cursor = 'auto';\n }\n handleZoomChange(e) {\n if (this.disableZoom())\n return;\n e.preventDefault();\n const rect = this.nativeEl().getBoundingClientRect();\n const mouseX = e.clientX - rect.left;\n const mouseY = e.clientY - rect.top;\n // Calculate the new zoom based on step\n const zoomDirection = e.deltaY > 0 ? -1 : 1; // Scroll up -> zoom in, scroll down -> zoom out\n const newZoom = Math.round(Math.max(this.minZoom(), Math.min(this.maxZoom(), this.zoom() + zoomDirection * this.zoomStep())));\n const scaleChange = newZoom / this.zoom();\n // Adjust pan to keep zoom centered at the mouse position\n this.panX.update((prev) => prev - (mouseX - rect.width / 2) * (scaleChange - 1));\n this.panY.update((prev) => prev - (mouseY - rect.height / 2) * (scaleChange - 1));\n this.zoom.set(newZoom);\n this.setElementPosition();\n }\n sizeChanged() {\n const prevWidth = this.initialWidth();\n const prevHeight = this.initialHeight();\n this.initialWidth.set((this.nativeEl().getBoundingClientRect().width * 100) / this.zoom());\n this.initialHeight.set((this.nativeEl().getBoundingClientRect().height * 100) / this.zoom());\n const newWidth = this.initialWidth();\n const newHeight = this.initialHeight();\n // Maintain the same relative position\n this.panX.update((prev) => prev - (newWidth - prevWidth) / 2);\n this.panY.update((prev) => prev - (newHeight - prevHeight) / 2);\n this.setElementPosition();\n }\n setFitContentScale() {\n if (!this.fitContent())\n return;\n const height = this.wrapper().clientHeight / this.nativeEl().clientHeight;\n const width = this.wrapper().clientWidth / this.nativeEl().clientWidth;\n this.zoom.set(Math.round(Math.min(height, width) * 100));\n }\n setElementPosition() {\n this.nativeEl().style.transform = `translate(${this.panX()}px, ${this.panY()}px) scale(${this.zoom() / 100})`;\n this.positionChange.emit({ x: this.panX(), y: this.panY() });\n this.zoomChange.emit(this.zoom());\n }\n resetPosition() {\n const containerWidth = this.wrapper().offsetWidth;\n const containerHeight = this.wrapper().offsetHeight;\n const boxLeft = (containerWidth - this.initialWidth()) / 2;\n const boxTop = (containerHeight - this.initialHeight()) / 2;\n this.panX.set(boxLeft);\n this.panY.set(boxTop);\n if (this.fitContent())\n this.setFitContentScale();\n else\n this.zoom.set(100);\n this.setElementPosition();\n }\n zoomIn() {\n this.zoom.set(Math.round(Math.max(this.minZoom(), Math.min(this.maxZoom(), this.zoom() + this.zoomStep()))));\n this.setElementPosition();\n }\n zoomOut() {\n this.zoom.set(Math.round(Math.max(this.minZoom(), Math.min(this.maxZoom(), this.zoom() - this.zoomStep()))));\n this.setElementPosition();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXPanViewDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.3\", type: AXPanViewDirective, isStandalone: true, selector: \"[axPanView]\", inputs: { zoomStep: { classPropertyName: \"zoomStep\", publicName: \"zoomStep\", isSignal: true, isRequired: false, transformFunction: null }, minZoom: { classPropertyName: \"minZoom\", publicName: \"minZoom\", isSignal: true, isRequired: false, transformFunction: null }, maxZoom: { classPropertyName: \"maxZoom\", publicName: \"maxZoom\", isSignal: true, isRequired: false, transformFunction: null }, freeMode: { classPropertyName: \"freeMode\", publicName: \"freeMode\", isSignal: true, isRequired: false, transformFunction: null }, fitContent: { classPropertyName: \"fitContent\", publicName: \"fitContent\", isSignal: true, isRequired: false, transformFunction: null }, disablePan: { classPropertyName: \"disablePan\", publicName: \"disablePan\", isSignal: true, isRequired: false, transformFunction: null }, disableZoom: { classPropertyName: \"disableZoom\", publicName: \"disableZoom\", isSignal: true, isRequired: false, transformFunction: null }, wrapperClasses: { classPropertyName: \"wrapperClasses\", publicName: \"wrapperClasses\", isSignal: true, isRequired: false, transformFunction: null }, panX: { classPropertyName: \"panX\", publicName: \"panX\", isSignal: true, isRequired: false, transformFunction: null }, panY: { classPropertyName: \"panY\", publicName: \"panY\", isSignal: true, isRequired: false, transformFunction: null }, zoom: { classPropertyName: \"zoom\", publicName: \"zoom\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { panX: \"panXChange\", panY: \"panYChange\", zoom: \"zoomChange\", zoomChange: \"zoomChange\", positionChange: \"positionChange\" }, exportAs: [\"axPanView\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXPanViewDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axPanView]',\n exportAs: 'axPanView',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuLXZpZXcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY2RrL3Bhbi12aWV3L3NyYy9saWIvcGFuLXZpZXcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFDTCxlQUFlLEVBQ2YsUUFBUSxFQUNSLFNBQVMsRUFDVCxRQUFRLEVBQ1IsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDOztBQU12QixNQUFNLE9BQU8sa0JBQWtCO0lBSi9CO1FBT1UsZUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqQyxTQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RCLFdBQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0IsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixPQUFFLEdBQUcsTUFBTSxDQUFDLENBQUEsVUFBdUIsQ0FBQSxDQUFDLENBQUM7UUFFckMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLGtEQUFDLENBQUM7UUFDbkIsV0FBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLGtEQUFDLENBQUM7UUFDbkIsZ0JBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyx1REFBQyxDQUFDO1FBQzVCLFlBQU8sR0FBRyxNQUFNLENBQXdCLElBQUksbURBQUMsQ0FBQztRQUV0RCxhQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsb0RBQUMsQ0FBQztRQUNwQixZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQUUsbURBQUMsQ0FBQztRQUNwQixZQUFPLEdBQUcsS0FB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LEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFVBQVUsQ0FBQztRQUMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFOUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUU3RCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRU8saUJBQWlCLENBQUMsQ0FBZTtRQUN2QyxJQUFJLElBQUksQ0FBQyxV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QixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDOzhHQTdNVSxrQkFBa0I7a0dBQWxCLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFKOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsUUFBUSxFQUFFLFdBQVc7aUJBQ3RCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgYWZ0ZXJOZXh0UmVuZGVyLFxuICBjb21wdXRlZCxcbiAgRGlyZWN0aXZlLFxuICBET0NVTUVOVCxcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgbGlua2VkU2lnbmFsLFxuICBtb2RlbCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIG91dHB1dCxcbiAgUExBVEZPUk1fSUQsXG4gIFJlbmRlcmVyMixcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2F4UGFuVmlld10nLFxuICBleHBvcnRBczogJ2F4UGFuVmlldycsXG59KVxuZXhwb3J0IGNsYXNzIEFYUGFuVmlld0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xuXG4gIHByaXZhdGUgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG4gIHByaXZhdGUgem9uZSA9IGluamVjdChOZ1pvbmUpO1xuICBwcml2YXRlIHJlbmRlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICBwcml2YXRlIGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgcHJpdmF0ZSBlbCA9IGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik7XG5cbiAgcHJpdmF0ZSBzdGFydFggPSBzaWduYWwoMCk7XG4gIHByaXZhdGUgc3RhcnRZID0gc2lnbmFsKDApO1xuICBwcml2YXRlIHBvaW50ZXJEb3duID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJpdmF0ZSB3cmFwcGVyID0gc2lnbmFsPEhUTUxEaXZFbGVtZW50IHwgbnVsbD4obnVsbCk7XG5cbiAgem9vbVN0ZXAgPSBpbnB1dCg3KTtcbiAgbWluWm9vbSA9IGlucHV0KDI1KTtcbiAgbWF4Wm9vbSA9IGlucHV0KDQwMCk7XG4gIGZyZWVNb2RlID0gaW5wdXQoZmFsc2UpO1xuICBmaXRDb250ZW50ID0gaW5wdXQodHJ1ZSk7XG4gIGRpc2FibGVQYW4gPSBpbnB1dChmYWxzZSk7XG4gIGRpc2FibGVab29tID0gaW5wdXQoZmFsc2UpO1xuICB3cmFwcGVyQ2xhc3NlcyA9IGlucHV0KCcnKTtcblxuICBwYW5YID0gbW9kZWwoMCk7XG4gIHBhblkgPSBtb2RlbCgwKTtcbiAgem9vbSA9IG1vZGVsKDEwMCk7XG5cbiAgem9vbUNoYW5nZSA9IG91dHB1dDxudW1iZXI+KCk7XG4gIHBvc2l0aW9uQ2hhbmdlID0gb3V0cHV0PHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfT4oKTtcblxuICBwcml2YXRlIG5hdGl2ZUVsID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KTtcblxuICBwcml2YXRlIGluaXRpYWxXaWR0aCA9IGxpbmtlZFNpZ25hbCgoKSA9PiB0aGlzLm5hdGl2ZUVsKCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgpO1xuICBwcml2YXRlIGluaXRpYWxIZWlnaHQgPSBsaW5rZWRTaWduYWwoKCkgPT4gdGhpcy5uYXRpdmVFbCgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCk7XG5cbiAgI2FuciA9IGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgLy8gQ3JlYXRlIFdyYXBwZXJcbiAgICB0aGlzLmNyZWF0ZVdyYXBwZXIoKTtcbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgLy8gV2hlZWwgRXZlbnRcbiAgICAgIHRoaXMud3JhcHBlcigpLm9ud2hlZWwgPSAoZSkgPT4ge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmIChlLmN0cmxLZXkgfHwgdGhpcy5mcmVlTW9kZSgpKSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVab29tQ2hhbmdlKGUpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIGlmIChlLnNoaWZ0S2V5KSB7XG4gICAgICAgICAgaWYgKHRoaXMuZGlzYWJsZVBhbigpKSByZXR1cm47XG4gICAgICAgICAgdGhpcy5wYW5YLnVwZGF0ZSgocHJldikgPT4gcHJldiAtIGUuZGVsdGFZIC8gMyk7XG4gICAgICAgICAgdGhpcy5zZXRFbGVtZW50UG9zaXRpb24oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAodGhpcy5kaXNhYmxlUGFuKCkpIHJldHVybjtcbiAgICAgICAgICB0aGlzLnBhblkudXBkYXRlKChwcmV2KSA9PiBwcmV2IC0gZS5kZWx0YVkgLyAzKTtcbiAgICAgICAgICB0aGlzLnNldEVsZW1lbnRQb3NpdGlvbigpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgLy8gUG9pbnRlciBEb3duIEV2ZW50XG4gICAgICB0aGlzLndyYXBwZXIoKS5vbnBvaW50ZXJkb3duID0gKGUpID0+IHRoaXMuaGFuZGxlUG9pbnRlckRvd24oZSk7XG4gICAgICAvLyBQb2ludGVyIE1vdmUgRXZlbnRcbiAgICAgIHRoaXMuZG9jdW1lbnQub25wb2ludGVybW92ZSA9IChlKSA9PiB0aGlzLmhhbmRsZVBvaW50ZXJNb3ZlKGUpO1xuICAgICAgLy8gUG9pbnRlciBVcC9MZWF2ZSBFdmVudFxuICAgICAgdGhpcy5kb2N1bWVudC5vbnBvaW50ZXJ1cCA9IChlKSA9PiB0aGlzLmhhbmRsZVBvaW50ZXJVcChlKTtcblxuICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB0aGlzLnNpemVDaGFuZ2VkKCkpO1xuICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy53cmFwcGVyKCkpO1xuICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5uYXRpdmVFbCgpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucmVzZXRQb3NpdGlvbigpO1xuICAgIH0pO1xuICB9KTtcblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgdGhpcy5yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVdyYXBwZXIoKSB7XG4gICAgdGhpcy53cmFwcGVyLnNldCh0aGlzLnJlbmRlci5jcmVhdGVFbGVtZW50KCdkaXYnKSk7XG4gICAgdGhpcy5yZW5kZXIuYWRkQ2xhc3ModGhpcy53cmFwcGVyKCksICdheC1wYW4tdmlldy13cmFwcGVyJyk7XG4gICAgaWYgKHRoaXMud3JhcHBlckNsYXNzZXMoKSkgdGhpcy5yZW5kZXIuYWRkQ2xhc3ModGhpcy53cmFwcGVyKCksIHRoaXMud3JhcHBlckNsYXNzZXMoKSk7XG5cbiAgICBjb25zdCBwYXJlbnQgPSB0aGlzLm5hdGl2ZUVsKCkucGFyZW50Tm9kZTtcbiAgICB0aGlzLnJlbmRlci5hcHBlbmRDaGlsZCh0aGlzLndyYXBwZXIoKSwgdGhpcy5uYXRpdmVFbCgpKTtcbiAgICB0aGlzLnJlbmRlci5pbnNlcnRCZWZvcmUocGFyZW50LCB0aGlzLndyYXBwZXIoKSwgdGhpcy5uYXRpdmVFbCgpLm5leHRTaWJsaW5nKTtcblxuICAgIHRoaXMucmVuZGVyLnNldFN0eWxlKHRoaXMud3JhcHBlcigpLCAnd2lkdGgnLCAnMTAwJScpO1xuICAgIHRoaXMucmVuZGVyLnNldFN0eWxlKHRoaXMud3JhcHBlcigpLCAnaGVpZ2h0JywgJzEwMCUnKTtcbiAgICB0aGlzLnJlbmRlci5zZXRTdHlsZSh0aGlzLndyYXBwZXIoKSwgJ292ZXJmbG93JywgJ2hpZGRlbicpO1xuICAgIHRoaXMucmVuZGVyLnNldFN0eWxlKHRoaXMud3JhcHBlcigpLCAncG9zaXRpb24nLCAncmVsYXRpdmUnKTtcblxuICAgIHRoaXMucmVuZGVyLnNldFN0eWxlKHRoaXMubmF0aXZlRWwoKSwgJ3RvcCcsICcwJyk7XG4gICAgdGhpcy5yZW5kZXIuc2V0U3R5bGUodGhpcy5uYXRpdmVFbCgpLCAnbGVmdCcsICcwJyk7XG4gICAgdGhpcy5yZW5kZXIuc2V0U3R5bGUodGhpcy5uYXRpdmVFbCgpLCAncG9zaXRpb24nLCAnYWJzb2x1dGUnKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlUG9pbnRlckRvd24oZTogUG9pbnRlckV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZVBhbigpKSByZXR1cm47XG4gICAgaWYgKCF0aGlzLmZyZWVNb2RlKCkgJiYgZS5wb2ludGVyVHlwZSA9PT0gJ21vdXNlJyAmJiBlLmJ1dHRvbnMgIT09IDQpIHJldHVybjtcbiAgICBpZiAodGhpcy5mcmVlTW9kZSgpICYmIGUucG9pbnRlclR5cGUgPT09ICdtb3VzZScgJiYgZS5idXR0b25zICE9PSAxKSByZXR1cm47XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMucG9pbnRlckRvd24uc2V0KHRydWUpO1xuICAgIHRoaXMud3JhcHBlcigpLnN0eWxlLmN1cnNvciA9ICdncmFiYmluZyc7XG5cbiAgICAvLyBVcGRhdGUgcHJldmlvdXMgcG9zaXRpb24gZm9yIG5leHQgbW92ZVxuICAgIHRoaXMuc3RhcnRYLnNldChlLmNsaWVudFggLSB0aGlzLnBhblgoKSk7XG4gICAgdGhpcy5zdGFydFkuc2V0KGUuY2xpZW50WSAtIHRoaXMucGFuWSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlUG9pbnRlck1vdmUoZTogUG9pbnRlckV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLnBvaW50ZXJEb3duKCkgfHwgdGhpcy5kaXNhYmxlUGFuKCkpIHJldHVybjtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5wYW5YLnNldChlLmNsaWVudFggLSB0aGlzLnN0YXJ0WCgpKTtcbiAgICB0aGlzLnBhblkuc2V0KGUuY2xpZW50WSAtIHRoaXMuc3RhcnRZKCkpO1xuXG4gICAgdGhpcy5zZXRFbGVtZW50UG9zaXRpb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlUG9pbnRlclVwKGU6IFBvaW50ZXJFdmVudCkge1xuICAgIGlmICghdGhpcy5wb2ludGVyRG93bigpIHx8IHRoaXMuZGlzYWJsZVBhbigpKSByZXR1cm47XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMucG9pbnRlckRvd24uc2V0KGZhbHNlKTtcbiAgICB0aGlzLndyYXBwZXIoKS5zdHlsZS5jdXJzb3IgPSAnYXV0byc7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVpvb21DaGFuZ2UoZTogV2hlZWxFdmVudCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVab29tKCkpIHJldHVybjtcblxuICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgIGNvbnN0IHJlY3QgPSB0aGlzLm5hdGl2ZUVsKCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgbW91c2VYID0gZS5jbGllbnRYIC0gcmVjdC5sZWZ0O1xuICAgIGNvbnN0IG1vdXNlWSA9IGUuY2xpZW50WSAtIHJlY3QudG9wO1xuXG4gICAgLy8gQ2FsY3VsYXRlIHRoZSBuZXcgem9vbSBiYXNlZCBvbiBzdGVwXG4gICAgY29uc3Qgem9vbURpcmVjdGlvbiA9IGUuZGVsdGFZID4gMCA/IC0xIDogMTsgLy8gU2Nyb2xsIHVwIC0+IHpvb20gaW4sIHNjcm9sbCBkb3duIC0+IHpvb20gb3V0XG4gICAgY29uc3QgbmV3Wm9vbSA9IE1hdGgucm91bmQoXG4gICAgICBNYXRoLm1heCh0aGlzLm1pblpvb20oKSwgTWF0aC5taW4odGhpcy5tYXhab29tKCksIHRoaXMuem9vbSgpICsgem9vbURpcmVjdGlvbiAqIHRoaXMuem9vbVN0ZXAoKSkpLFxuICAgICk7XG5cbiAgICBjb25zdCBzY2FsZUNoYW5nZSA9IG5ld1pvb20gLyB0aGlzLnpvb20oKTtcblxuICAgIC8vIEFkanVzdCBwYW4gdG8ga2VlcCB6b29tIGNlbnRlcmVkIGF0IHRoZSBtb3VzZSBwb3NpdGlvblxuICAgIHRoaXMucGFuWC51cGRhdGUoKHByZXYpID0+IHByZXYgLSAobW91c2VYIC0gcmVjdC53aWR0aCAvIDIpICogKHNjYWxlQ2hhbmdlIC0gMSkpO1xuICAgIHRoaXMucGFuWS51cGRhdGUoKHByZXYpID0+IHByZXYgLSAobW91c2VZIC0gcmVjdC5oZWlnaHQgLyAyKSAqIChzY2FsZUNoYW5nZSAtIDEpKTtcbiAgICB0aGlzLnpvb20uc2V0KG5ld1pvb20pO1xuXG4gICAgdGhpcy5zZXRFbGVtZW50UG9zaXRpb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgc2l6ZUNoYW5nZWQoKSB7XG4gICAgY29uc3QgcHJldldpZHRoID0gdGhpcy5pbml0aWFsV2lkdGgoKTtcbiAgICBjb25zdCBwcmV2SGVpZ2h0ID0gdGhpcy5pbml0aWFsSGVpZ2h0KCk7XG5cbiAgICB0aGlzLmluaXRpYWxXaWR0aC5zZXQoKHRoaXMubmF0aXZlRWwoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCAqIDEwMCkgLyB0aGlzLnpvb20oKSk7XG4gICAgdGhpcy5pbml0aWFsSGVpZ2h0LnNldCgodGhpcy5uYXRpdmVFbCgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCAqIDEwMCkgLyB0aGlzLnpvb20oKSk7XG5cbiAgICBjb25zdCBuZXdXaWR0aCA9IHRoaXMuaW5pdGlhbFdpZHRoKCk7XG4gICAgY29uc3QgbmV3SGVpZ2h0ID0gdGhpcy5pbml0aWFsSGVpZ2h0KCk7XG5cbiAgICAvLyBNYWludGFpbiB0aGUgc2FtZSByZWxhdGl2ZSBwb3NpdGlvblxuICAgIHRoaXMucGFuWC51cGRhdGUoKHByZXYpID0+IHByZXYgLSAobmV3V2lkdGggLSBwcmV2V2lkdGgpIC8gMik7XG4gICAgdGhpcy5wYW5ZLnVwZGF0ZSgocHJldikgPT4gcHJldiAtIChuZXdIZWlnaHQgLSBwcmV2SGVpZ2h0KSAvIDIpO1xuXG4gICAgdGhpcy5zZXRFbGVtZW50UG9zaXRpb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Rml0Q29udGVudFNjYWxlKCkge1xuICAgIGlmICghdGhpcy5maXRDb250ZW50KCkpIHJldHVybjtcbiAgICBjb25zdCBoZWlnaHQgPSB0aGlzLndyYXBwZXIoKS5jbGllbnRIZWlnaHQgLyB0aGlzLm5hdGl2ZUVsKCkuY2xpZW50SGVpZ2h0O1xuICAgIGNvbnN0IHdpZHRoID0gdGhpcy53cmFwcGVyKCkuY2xpZW50V2lkdGggLyB0aGlzLm5hdGl2ZUVsKCkuY2xpZW50V2lkdGg7XG4gICAgdGhpcy56b29tLnNldChNYXRoLnJvdW5kKE1hdGgubWluKGhlaWdodCwgd2lkdGgpICogMTAwKSk7XG4gIH1cblxuICBzZXRFbGVtZW50UG9zaXRpb24oKSB7XG4gICAgdGhpcy5uYXRpdmVFbCgpLnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUoJHt0aGlzLnBhblgoKX1weCwgJHt0aGlzLnBhblkoKX1weCkgc2NhbGUoJHt0aGlzLnpvb20oKSAvIDEwMH0pYDtcblxuICAgIHRoaXMucG9zaXRpb25DaGFuZ2UuZW1pdCh7IHg6IHRoaXMucGFuWCgpLCB5OiB0aGlzLnBhblkoKSB9KTtcbiAgICB0aGlzLnpvb21DaGFuZ2UuZW1pdCh0aGlzLnpvb20oKSk7XG4gIH1cblxuICByZXNldFBvc2l0aW9uKCkge1xuICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gdGhpcy53cmFwcGVyKCkub2Zmc2V0V2lkdGg7XG4gICAgY29uc3QgY29udGFpbmVySGVpZ2h0ID0gdGhpcy53cmFwcGVyKCkub2Zmc2V0SGVpZ2h0O1xuXG4gICAgY29uc3QgYm94TGVmdCA9IChjb250YWluZXJXaWR0aCAtIHRoaXMuaW5pdGlhbFdpZHRoKCkpIC8gMjtcbiAgICBjb25zdCBib3hUb3AgPSAoY29udGFpbmVySGVpZ2h0IC0gdGhpcy5pbml0aWFsSGVpZ2h0KCkpIC8gMjtcblxuICAgIHRoaXMucGFuWC5zZXQoYm94TGVmdCk7XG4gICAgdGhpcy5wYW5ZLnNldChib3hUb3ApO1xuXG4gICAgaWYgKHRoaXMuZml0Q29udGVudCgpKSB0aGlzLnNldEZpdENvbnRlbnRTY2FsZSgpO1xuICAgIGVsc2UgdGhpcy56b29tLnNldCgxMDApO1xuXG4gICAgdGhpcy5zZXRFbGVtZW50UG9zaXRpb24oKTtcbiAgfVxuXG4gIHpvb21JbigpIHtcbiAgICB0aGlzLnpvb20uc2V0KE1hdGgucm91bmQoTWF0aC5tYXgodGhpcy5taW5ab29tKCksIE1hdGgubWluKHRoaXMubWF4Wm9vbSgpLCB0aGlzLnpvb20oKSArIHRoaXMuem9vbVN0ZXAoKSkpKSk7XG4gICAgdGhpcy5zZXRFbGVtZW50UG9zaXRpb24oKTtcbiAgfVxuXG4gIHpvb21PdXQoKSB7XG4gICAgdGhpcy56b29tLnNldChNYXRoLnJvdW5kKE1hdGgubWF4KHRoaXMubWluWm9vbSgpLCBNYXRoLm1pbih0aGlzLm1heFpvb20oKSwgdGhpcy56b29tKCkgLSB0aGlzLnpvb21TdGVwKCkpKSkpO1xuICAgIHRoaXMuc2V0RWxlbWVudFBvc2l0aW9uKCk7XG4gIH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNkay1wYW4tdmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay9wYW4tdmlldy9zcmMvYWNvcmV4LWNkay1wYW4tdmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-cdk-pan-view.mjs","sources":["../tmp-esm2022/pan-view/lib/pan-view.directive.js","../tmp-esm2022/pan-view/acorex-cdk-pan-view.js"],"sourcesContent":["import { isPlatformBrowser } from '@angular/common';\nimport { afterNextRender, computed, Directive, DOCUMENT, ElementRef, inject, input, linkedSignal, model, NgZone, output, PLATFORM_ID, Renderer2, signal, } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPanViewDirective {\n constructor() {\n this.platformId = inject(PLATFORM_ID);\n this.zone = inject(NgZone);\n this.render = inject(Renderer2);\n this.document = inject(DOCUMENT);\n this.el = inject((ElementRef));\n this.startX = signal(0, ...(ngDevMode ? [{ debugName: \"startX\" }] : []));\n this.startY = signal(0, ...(ngDevMode ? [{ debugName: \"startY\" }] : []));\n this.pointerDown = signal(false, ...(ngDevMode ? [{ debugName: \"pointerDown\" }] : []));\n this.wrapper = signal(null, ...(ngDevMode ? [{ debugName: \"wrapper\" }] : []));\n this.wheelListener = (e) => this.handleWheel(e);\n this.zoomStep = input(7, ...(ngDevMode ? [{ debugName: \"zoomStep\" }] : []));\n this.minZoom = input(25, ...(ngDevMode ? [{ debugName: \"minZoom\" }] : []));\n this.maxZoom = input(400, ...(ngDevMode ? [{ debugName: \"maxZoom\" }] : []));\n this.freeMode = input(false, ...(ngDevMode ? [{ debugName: \"freeMode\" }] : []));\n this.fitContent = input(true, ...(ngDevMode ? [{ debugName: \"fitContent\" }] : []));\n this.disablePan = input(false, ...(ngDevMode ? [{ debugName: \"disablePan\" }] : []));\n this.disableZoom = input(false, ...(ngDevMode ? [{ debugName: \"disableZoom\" }] : []));\n this.wrapperClasses = input('', ...(ngDevMode ? [{ debugName: \"wrapperClasses\" }] : []));\n this.panX = model(0, ...(ngDevMode ? [{ debugName: \"panX\" }] : []));\n this.panY = model(0, ...(ngDevMode ? [{ debugName: \"panY\" }] : []));\n this.zoom = model(100, ...(ngDevMode ? [{ debugName: \"zoom\" }] : []));\n this.zoomChange = output();\n this.positionChange = output();\n this.nativeEl = computed(() => this.el.nativeElement, ...(ngDevMode ? [{ debugName: \"nativeEl\" }] : []));\n this.initialWidth = linkedSignal(() => this.nativeEl().getBoundingClientRect().width, ...(ngDevMode ? [{ debugName: \"initialWidth\" }] : []));\n this.initialHeight = linkedSignal(() => this.nativeEl().getBoundingClientRect().height, ...(ngDevMode ? [{ debugName: \"initialHeight\" }] : []));\n this.#anr = afterNextRender(() => {\n // Create Wrapper\n this.createWrapper();\n this.zone.runOutsideAngular(() => {\n const wrapper = this.wrapper();\n if (!wrapper)\n return;\n wrapper.addEventListener('wheel', this.wheelListener, { passive: false });\n // Pointer Down Event\n this.wrapper().onpointerdown = (e) => this.handlePointerDown(e);\n // Pointer Move Event\n this.document.onpointermove = (e) => this.handlePointerMove(e);\n // Pointer Up/Leave Event\n this.document.onpointerup = (e) => this.handlePointerUp(e);\n if (isPlatformBrowser(this.platformId)) {\n this.resizeObserver = new ResizeObserver(() => this.sizeChanged());\n this.resizeObserver.observe(this.wrapper());\n this.resizeObserver.observe(this.nativeEl());\n }\n });\n setTimeout(() => {\n this.resetPosition();\n });\n });\n }\n static { this.WHEEL_PAN_FACTOR = 1 / 3; }\n #anr;\n ngOnDestroy() {\n if (!isPlatformBrowser(this.platformId))\n return;\n this.wrapper()?.removeEventListener('wheel', this.wheelListener);\n this.resizeObserver?.disconnect();\n }\n createWrapper() {\n this.wrapper.set(this.render.createElement('div'));\n this.render.addClass(this.wrapper(), 'ax-pan-view-wrapper');\n if (this.wrapperClasses())\n this.render.addClass(this.wrapper(), this.wrapperClasses());\n const parent = this.nativeEl().parentNode;\n this.render.appendChild(this.wrapper(), this.nativeEl());\n this.render.insertBefore(parent, this.wrapper(), this.nativeEl().nextSibling);\n this.render.setStyle(this.wrapper(), 'width', '100%');\n this.render.setStyle(this.wrapper(), 'height', '100%');\n this.render.setStyle(this.wrapper(), 'overflow', 'hidden');\n this.render.setStyle(this.wrapper(), 'position', 'relative');\n this.render.setStyle(this.nativeEl(), 'top', '0');\n this.render.setStyle(this.nativeEl(), 'left', '0');\n this.render.setStyle(this.nativeEl(), 'position', 'absolute');\n }\n handlePointerDown(e) {\n if (this.disablePan())\n return;\n if (!this.freeMode() && e.pointerType === 'mouse' && e.buttons !== 4)\n return;\n if (this.freeMode() && e.pointerType === 'mouse' && e.buttons !== 1)\n return;\n e.preventDefault();\n this.pointerDown.set(true);\n this.wrapper().style.cursor = 'grabbing';\n // Update previous position for next move\n this.startX.set(e.clientX - this.panX());\n this.startY.set(e.clientY - this.panY());\n }\n handlePointerMove(e) {\n if (!this.pointerDown() || this.disablePan())\n return;\n e.preventDefault();\n this.panX.set(e.clientX - this.startX());\n this.panY.set(e.clientY - this.startY());\n this.setElementPosition();\n }\n handlePointerUp(e) {\n if (!this.pointerDown() || this.disablePan())\n return;\n e.preventDefault();\n this.pointerDown.set(false);\n this.wrapper().style.cursor = 'auto';\n }\n handleWheel(e) {\n e.preventDefault();\n if (this.freeMode()) {\n this.handleZoomChange(e);\n return;\n }\n if (e.ctrlKey) {\n this.handleZoomChange(e);\n return;\n }\n if (this.disablePan())\n return;\n const delta = this.getWheelDelta(e, e.shiftKey);\n this.zone.run(() => {\n if (e.shiftKey) {\n this.panX.update((prev) => prev - delta * AXPanViewDirective.WHEEL_PAN_FACTOR);\n }\n else {\n this.panY.update((prev) => prev - delta * AXPanViewDirective.WHEEL_PAN_FACTOR);\n }\n this.setElementPosition();\n });\n }\n getWheelDelta(e, horizontal) {\n if (horizontal) {\n return e.deltaX !== 0 ? e.deltaX : e.deltaY;\n }\n return e.deltaY !== 0 ? e.deltaY : e.deltaX;\n }\n handleZoomChange(e) {\n if (this.disableZoom())\n return;\n const rect = this.nativeEl().getBoundingClientRect();\n const mouseX = e.clientX - rect.left;\n const mouseY = e.clientY - rect.top;\n // Calculate the new zoom based on step\n const zoomDirection = e.deltaY > 0 ? -1 : 1; // Scroll up -> zoom in, scroll down -> zoom out\n const newZoom = Math.round(Math.max(this.minZoom(), Math.min(this.maxZoom(), this.zoom() + zoomDirection * this.zoomStep())));\n const scaleChange = newZoom / this.zoom();\n this.zone.run(() => {\n // Adjust pan to keep zoom centered at the mouse position\n this.panX.update((prev) => prev - (mouseX - rect.width / 2) * (scaleChange - 1));\n this.panY.update((prev) => prev - (mouseY - rect.height / 2) * (scaleChange - 1));\n this.zoom.set(newZoom);\n this.setElementPosition();\n });\n }\n sizeChanged() {\n const prevWidth = this.initialWidth();\n const prevHeight = this.initialHeight();\n this.initialWidth.set((this.nativeEl().getBoundingClientRect().width * 100) / this.zoom());\n this.initialHeight.set((this.nativeEl().getBoundingClientRect().height * 100) / this.zoom());\n const newWidth = this.initialWidth();\n const newHeight = this.initialHeight();\n // Maintain the same relative position\n this.panX.update((prev) => prev - (newWidth - prevWidth) / 2);\n this.panY.update((prev) => prev - (newHeight - prevHeight) / 2);\n this.setElementPosition();\n }\n setFitContentScale() {\n if (!this.fitContent())\n return;\n const height = this.wrapper().clientHeight / this.nativeEl().clientHeight;\n const width = this.wrapper().clientWidth / this.nativeEl().clientWidth;\n this.zoom.set(Math.round(Math.min(height, width) * 100));\n }\n setElementPosition() {\n this.nativeEl().style.transform = `translate(${this.panX()}px, ${this.panY()}px) scale(${this.zoom() / 100})`;\n this.positionChange.emit({ x: this.panX(), y: this.panY() });\n this.zoomChange.emit(this.zoom());\n }\n resetPosition() {\n const containerWidth = this.wrapper().offsetWidth;\n const containerHeight = this.wrapper().offsetHeight;\n const boxLeft = (containerWidth - this.initialWidth()) / 2;\n const boxTop = (containerHeight - this.initialHeight()) / 2;\n this.panX.set(boxLeft);\n this.panY.set(boxTop);\n if (this.fitContent())\n this.setFitContentScale();\n else\n this.zoom.set(100);\n this.setElementPosition();\n }\n zoomIn() {\n this.zoom.set(Math.round(Math.max(this.minZoom(), Math.min(this.maxZoom(), this.zoom() + this.zoomStep()))));\n this.setElementPosition();\n }\n zoomOut() {\n this.zoom.set(Math.round(Math.max(this.minZoom(), Math.min(this.maxZoom(), this.zoom() - this.zoomStep()))));\n this.setElementPosition();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXPanViewDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.3\", type: AXPanViewDirective, isStandalone: true, selector: \"[axPanView]\", inputs: { zoomStep: { classPropertyName: \"zoomStep\", publicName: \"zoomStep\", isSignal: true, isRequired: false, transformFunction: null }, minZoom: { classPropertyName: \"minZoom\", publicName: \"minZoom\", isSignal: true, isRequired: false, transformFunction: null }, maxZoom: { classPropertyName: \"maxZoom\", publicName: \"maxZoom\", isSignal: true, isRequired: false, transformFunction: null }, freeMode: { classPropertyName: \"freeMode\", publicName: \"freeMode\", isSignal: true, isRequired: false, transformFunction: null }, fitContent: { classPropertyName: \"fitContent\", publicName: \"fitContent\", isSignal: true, isRequired: false, transformFunction: null }, disablePan: { classPropertyName: \"disablePan\", publicName: \"disablePan\", isSignal: true, isRequired: false, transformFunction: null }, disableZoom: { classPropertyName: \"disableZoom\", publicName: \"disableZoom\", isSignal: true, isRequired: false, transformFunction: null }, wrapperClasses: { classPropertyName: \"wrapperClasses\", publicName: \"wrapperClasses\", isSignal: true, isRequired: false, transformFunction: null }, panX: { classPropertyName: \"panX\", publicName: \"panX\", isSignal: true, isRequired: false, transformFunction: null }, panY: { classPropertyName: \"panY\", publicName: \"panY\", isSignal: true, isRequired: false, transformFunction: null }, zoom: { classPropertyName: \"zoom\", publicName: \"zoom\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { panX: \"panXChange\", panY: \"panYChange\", zoom: \"zoomChange\", zoomChange: \"zoomChange\", positionChange: \"positionChange\" }, exportAs: [\"axPanView\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXPanViewDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axPanView]',\n exportAs: 'axPanView',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuLXZpZXcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY2RrL3Bhbi12aWV3L3NyYy9saWIvcGFuLXZpZXcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFDTCxlQUFlLEVBQ2YsUUFBUSxFQUNSLFNBQVMsRUFDVCxRQUFRLEVBQ1IsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDOztBQU12QixNQUFNLE9BQU8sa0JBQWtCO0lBSi9CO1FBT1UsZUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqQyxTQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RCLFdBQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0IsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixPQUFFLEdBQUcsTUFBTSxDQUFDLENBQUEsVUFBdUIsQ0FBQSxDQUFDLENBQUM7UUFFckMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLGtEQUFDLENBQUM7UUFDbkIsV0FBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLGtEQUFDLENBQUM7UUFDbkIsZ0JBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyx1REFBQyxDQUFDO1FBQzVCLFlBQU8sR0FBRyxNQUFNLENBQXdCLElBQUksbURBQUMsQ0FBQztRQUNyQyxrQkFBYSxHQUFHLENBQUMsQ0FBYSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBSXhFLGFBQVEsR0FBRyxLQUFLLENBQUMs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QUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7OEdBck9VLGtCQUFrQjtrR0FBbEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUo5QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixRQUFRLEVBQUUsV0FBVztpQkFDdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBhZnRlck5leHRSZW5kZXIsXG4gIGNvbXB1dGVkLFxuICBEaXJlY3RpdmUsXG4gIERPQ1VNRU5ULFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBsaW5rZWRTaWduYWwsXG4gIG1vZGVsLFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgb3V0cHV0LFxuICBQTEFURk9STV9JRCxcbiAgUmVuZGVyZXIyLFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXhQYW5WaWV3XScsXG4gIGV4cG9ydEFzOiAnYXhQYW5WaWV3Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQYW5WaWV3RGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZXNpemVPYnNlcnZlcjogUmVzaXplT2JzZXJ2ZXI7XG5cbiAgcHJpdmF0ZSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgcHJpdmF0ZSB6b25lID0gaW5qZWN0KE5nWm9uZSk7XG4gIHByaXZhdGUgcmVuZGVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gIHByaXZhdGUgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICBwcml2YXRlIGVsID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTtcblxuICBwcml2YXRlIHN0YXJ0WCA9IHNpZ25hbCgwKTtcbiAgcHJpdmF0ZSBzdGFydFkgPSBzaWduYWwoMCk7XG4gIHByaXZhdGUgcG9pbnRlckRvd24gPSBzaWduYWwoZmFsc2UpO1xuICBwcml2YXRlIHdyYXBwZXIgPSBzaWduYWw8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSB3aGVlbExpc3RlbmVyID0gKGU6IFdoZWVsRXZlbnQpID0+IHRoaXMuaGFuZGxlV2hlZWwoZSk7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgV0hFRUxfUEFOX0ZBQ1RPUiA9IDEgLyAzO1xuXG4gIHpvb21TdGVwID0gaW5wdXQoNyk7XG4gIG1pblpvb20gPSBpbnB1dCgyNSk7XG4gIG1heFpvb20gPSBpbnB1dCg0MDApO1xuICBmcmVlTW9kZSA9IGlucHV0KGZhbHNlKTtcbiAgZml0Q29udGVudCA9IGlucHV0KHRydWUpO1xuICBkaXNhYmxlUGFuID0gaW5wdXQoZmFsc2UpO1xuICBkaXNhYmxlWm9vbSA9IGlucHV0KGZhbHNlKTtcbiAgd3JhcHBlckNsYXNzZXMgPSBpbnB1dCgnJyk7XG5cbiAgcGFuWCA9IG1vZGVsKDApO1xuICBwYW5ZID0gbW9kZWwoMCk7XG4gIHpvb20gPSBtb2RlbCgxMDApO1xuXG4gIHpvb21DaGFuZ2UgPSBvdXRwdXQ8bnVtYmVyPigpO1xuICBwb3NpdGlvbkNoYW5nZSA9IG91dHB1dDx7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0+KCk7XG5cbiAgcHJpdmF0ZSBuYXRpdmVFbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCk7XG5cbiAgcHJpdmF0ZSBpbml0aWFsV2lkdGggPSBsaW5rZWRTaWduYWwoKCkgPT4gdGhpcy5uYXRpdmVFbCgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoKTtcbiAgcHJpdmF0ZSBpbml0aWFsSGVpZ2h0ID0gbGlua2VkU2lnbmFsKCgpID0+IHRoaXMubmF0aXZlRWwoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQpO1xuXG4gICNhbnIgPSBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICAgIC8vIENyZWF0ZSBXcmFwcGVyXG4gICAgdGhpcy5jcmVhdGVXcmFwcGVyKCk7XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGNvbnN0IHdyYXBwZXIgPSB0aGlzLndyYXBwZXIoKTtcbiAgICAgIGlmICghd3JhcHBlcikgcmV0dXJuO1xuICAgICAgd3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCd3aGVlbCcsIHRoaXMud2hlZWxMaXN0ZW5lciwgeyBwYXNzaXZlOiBmYWxzZSB9KTtcbiAgICAgIC8vIFBvaW50ZXIgRG93biBFdmVudFxuICAgICAgdGhpcy53cmFwcGVyKCkub25wb2ludGVyZG93biA9IChlKSA9PiB0aGlzLmhhbmRsZVBvaW50ZXJEb3duKGUpO1xuICAgICAgLy8gUG9pbnRlciBNb3ZlIEV2ZW50XG4gICAgICB0aGlzLmRvY3VtZW50Lm9ucG9pbnRlcm1vdmUgPSAoZSkgPT4gdGhpcy5oYW5kbGVQb2ludGVyTW92ZShlKTtcbiAgICAgIC8vIFBvaW50ZXIgVXAvTGVhdmUgRXZlbnRcbiAgICAgIHRoaXMuZG9jdW1lbnQub25wb2ludGVydXAgPSAoZSkgPT4gdGhpcy5oYW5kbGVQb2ludGVyVXAoZSk7XG5cbiAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4gdGhpcy5zaXplQ2hhbmdlZCgpKTtcbiAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMud3JhcHBlcigpKTtcbiAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMubmF0aXZlRWwoKSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnJlc2V0UG9zaXRpb24oKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG4gICAgdGhpcy53cmFwcGVyKCk/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3doZWVsJywgdGhpcy53aGVlbExpc3RlbmVyKTtcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVdyYXBwZXIoKSB7XG4gICAgdGhpcy53cmFwcGVyLnNldCh0aGlzLnJlbmRlci5jcmVhdGVFbGVtZW50KCdkaXYnKSk7XG4gICAgdGhpcy5yZW5kZXIuYWRkQ2xhc3ModGhpcy53cmFwcGVyKCksICdheC1wYW4tdmlldy13cmFwcGVyJyk7XG4gICAgaWYgKHRoaXMud3JhcHBlckNsYXNzZXMoKSkgdGhpcy5yZW5kZXIuYWRkQ2xhc3ModGhpcy53cmFwcGVyKCksIHRoaXMud3JhcHBlckNsYXNzZXMoKSk7XG5cbiAgICBjb25zdCBwYXJlbnQgPSB0aGlzLm5hdGl2ZUVsKCkucGFyZW50Tm9kZTtcbiAgICB0aGlzLnJlbmRlci5hcHBlbmRDaGlsZCh0aGlzLndyYXBwZXIoKSwgdGhpcy5uYXRpdmVFbCgpKTtcbiAgICB0aGlzLnJlbmRlci5pbnNlcnRCZWZvcmUocGFyZW50LCB0aGlzLndyYXBwZXIoKSwgdGhpcy5uYXRpdmVFbCgpLm5leHRTaWJsaW5nKTtcblxuICAgIHRoaXMucmVuZGVyLnNldFN0eWxlKHRoaXMud3JhcHBlcigpLCAnd2lkdGgnLCAnMTAwJScpO1xuICAgIHRoaXMucmVuZGVyLnNldFN0eWxlKHRoaXMud3JhcHBlcigpLCAnaGVpZ2h0JywgJzEwMCUnKTtcbiAgICB0aGlzLnJlbmRlci5zZXRTdHlsZSh0aGlzLndyYXBwZXIoKSwgJ292ZXJmbG93JywgJ2hpZGRlbicpO1xuICAgIHRoaXMucmVuZGVyLnNldFN0eWxlKHRoaXMud3JhcHBlcigpLCAncG9zaXRpb24nLCAncmVsYXRpdmUnKTtcblxuICAgIHRoaXMucmVuZGVyLnNldFN0eWxlKHRoaXMubmF0aXZlRWwoKSwgJ3RvcCcsICcwJyk7XG4gICAgdGhpcy5yZW5kZXIuc2V0U3R5bGUodGhpcy5uYXRpdmVFbCgpLCAnbGVmdCcsICcwJyk7XG4gICAgdGhpcy5yZW5kZXIuc2V0U3R5bGUodGhpcy5uYXRpdmVFbCgpLCAncG9zaXRpb24nLCAnYWJzb2x1dGUnKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlUG9pbnRlckRvd24oZTogUG9pbnRlckV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZVBhbigpKSByZXR1cm47XG4gICAgaWYgKCF0aGlzLmZyZWVNb2RlKCkgJiYgZS5wb2ludGVyVHlwZSA9PT0gJ21vdXNlJyAmJiBlLmJ1dHRvbnMgIT09IDQpIHJldHVybjtcbiAgICBpZiAodGhpcy5mcmVlTW9kZSgpICYmIGUucG9pbnRlclR5cGUgPT09ICdtb3VzZScgJiYgZS5idXR0b25zICE9PSAxKSByZXR1cm47XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMucG9pbnRlckRvd24uc2V0KHRydWUpO1xuICAgIHRoaXMud3JhcHBlcigpLnN0eWxlLmN1cnNvciA9ICdncmFiYmluZyc7XG5cbiAgICAvLyBVcGRhdGUgcHJldmlvdXMgcG9zaXRpb24gZm9yIG5leHQgbW92ZVxuICAgIHRoaXMuc3RhcnRYLnNldChlLmNsaWVudFggLSB0aGlzLnBhblgoKSk7XG4gICAgdGhpcy5zdGFydFkuc2V0KGUuY2xpZW50WSAtIHRoaXMucGFuWSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlUG9pbnRlck1vdmUoZTogUG9pbnRlckV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLnBvaW50ZXJEb3duKCkgfHwgdGhpcy5kaXNhYmxlUGFuKCkpIHJldHVybjtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5wYW5YLnNldChlLmNsaWVudFggLSB0aGlzLnN0YXJ0WCgpKTtcbiAgICB0aGlzLnBhblkuc2V0KGUuY2xpZW50WSAtIHRoaXMuc3RhcnRZKCkpO1xuXG4gICAgdGhpcy5zZXRFbGVtZW50UG9zaXRpb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlUG9pbnRlclVwKGU6IFBvaW50ZXJFdmVudCkge1xuICAgIGlmICghdGhpcy5wb2ludGVyRG93bigpIHx8IHRoaXMuZGlzYWJsZVBhbigpKSByZXR1cm47XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMucG9pbnRlckRvd24uc2V0KGZhbHNlKTtcbiAgICB0aGlzLndyYXBwZXIoKS5zdHlsZS5jdXJzb3IgPSAnYXV0byc7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVdoZWVsKGU6IFdoZWVsRXZlbnQpIHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICBpZiAodGhpcy5mcmVlTW9kZSgpKSB7XG4gICAgICB0aGlzLmhhbmRsZVpvb21DaGFuZ2UoZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGUuY3RybEtleSkge1xuICAgICAgdGhpcy5oYW5kbGVab29tQ2hhbmdlKGUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRpc2FibGVQYW4oKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgZGVsdGEgPSB0aGlzLmdldFdoZWVsRGVsdGEoZSwgZS5zaGlmdEtleSk7XG4gICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICBpZiAoZS5zaGlmdEtleSkge1xuICAgICAgICB0aGlzLnBhblgudXBkYXRlKChwcmV2KSA9PiBwcmV2IC0gZGVsdGEgKiBBWFBhblZpZXdEaXJlY3RpdmUuV0hFRUxfUEFOX0ZBQ1RPUik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnBhblkudXBkYXRlKChwcmV2KSA9PiBwcmV2IC0gZGVsdGEgKiBBWFBhblZpZXdEaXJlY3RpdmUuV0hFRUxfUEFOX0ZBQ1RPUik7XG4gICAgICB9XG4gICAgICB0aGlzLnNldEVsZW1lbnRQb3NpdGlvbigpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRXaGVlbERlbHRhKGU6IFdoZWVsRXZlbnQsIGhvcml6b250YWw6IGJvb2xlYW4pOiBudW1iZXIge1xuICAgIGlmIChob3Jpem9udGFsKSB7XG4gICAgICByZXR1cm4gZS5kZWx0YVggIT09IDAgPyBlLmRlbHRhWCA6IGUuZGVsdGFZO1xuICAgIH1cbiAgICByZXR1cm4gZS5kZWx0YVkgIT09IDAgPyBlLmRlbHRhWSA6IGUuZGVsdGFYO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVab29tQ2hhbmdlKGU6IFdoZWVsRXZlbnQpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlWm9vbSgpKSByZXR1cm47XG5cbiAgICBjb25zdCByZWN0ID0gdGhpcy5uYXRpdmVFbCgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IG1vdXNlWCA9IGUuY2xpZW50WCAtIHJlY3QubGVmdDtcbiAgICBjb25zdCBtb3VzZVkgPSBlLmNsaWVudFkgLSByZWN0LnRvcDtcblxuICAgIC8vIENhbGN1bGF0ZSB0aGUgbmV3IHpvb20gYmFzZWQgb24gc3RlcFxuICAgIGNvbnN0IHpvb21EaXJlY3Rpb24gPSBlLmRlbHRhWSA+IDAgPyAtMSA6IDE7IC8vIFNjcm9sbCB1cCAtPiB6b29tIGluLCBzY3JvbGwgZG93biAtPiB6b29tIG91dFxuICAgIGNvbnN0IG5ld1pvb20gPSBNYXRoLnJvdW5kKFxuICAgICAgTWF0aC5tYXgodGhpcy5taW5ab29tKCksIE1hdGgubWluKHRoaXMubWF4Wm9vbSgpLCB0aGlzLnpvb20oKSArIHpvb21EaXJlY3Rpb24gKiB0aGlzLnpvb21TdGVwKCkpKSxcbiAgICApO1xuXG4gICAgY29uc3Qgc2NhbGVDaGFuZ2UgPSBuZXdab29tIC8gdGhpcy56b29tKCk7XG5cbiAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgIC8vIEFkanVzdCBwYW4gdG8ga2VlcCB6b29tIGNlbnRlcmVkIGF0IHRoZSBtb3VzZSBwb3NpdGlvblxuICAgICAgdGhpcy5wYW5YLnVwZGF0ZSgocHJldikgPT4gcHJldiAtIChtb3VzZVggLSByZWN0LndpZHRoIC8gMikgKiAoc2NhbGVDaGFuZ2UgLSAxKSk7XG4gICAgICB0aGlzLnBhblkudXBkYXRlKChwcmV2KSA9PiBwcmV2IC0gKG1vdXNlWSAtIHJlY3QuaGVpZ2h0IC8gMikgKiAoc2NhbGVDaGFuZ2UgLSAxKSk7XG4gICAgICB0aGlzLnpvb20uc2V0KG5ld1pvb20pO1xuICAgICAgdGhpcy5zZXRFbGVtZW50UG9zaXRpb24oKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2l6ZUNoYW5nZWQoKSB7XG4gICAgY29uc3QgcHJldldpZHRoID0gdGhpcy5pbml0aWFsV2lkdGgoKTtcbiAgICBjb25zdCBwcmV2SGVpZ2h0ID0gdGhpcy5pbml0aWFsSGVpZ2h0KCk7XG5cbiAgICB0aGlzLmluaXRpYWxXaWR0aC5zZXQoKHRoaXMubmF0aXZlRWwoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCAqIDEwMCkgLyB0aGlzLnpvb20oKSk7XG4gICAgdGhpcy5pbml0aWFsSGVpZ2h0LnNldCgodGhpcy5uYXRpdmVFbCgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCAqIDEwMCkgLyB0aGlzLnpvb20oKSk7XG5cbiAgICBjb25zdCBuZXdXaWR0aCA9IHRoaXMuaW5pdGlhbFdpZHRoKCk7XG4gICAgY29uc3QgbmV3SGVpZ2h0ID0gdGhpcy5pbml0aWFsSGVpZ2h0KCk7XG5cbiAgICAvLyBNYWludGFpbiB0aGUgc2FtZSByZWxhdGl2ZSBwb3NpdGlvblxuICAgIHRoaXMucGFuWC51cGRhdGUoKHByZXYpID0+IHByZXYgLSAobmV3V2lkdGggLSBwcmV2V2lkdGgpIC8gMik7XG4gICAgdGhpcy5wYW5ZLnVwZGF0ZSgocHJldikgPT4gcHJldiAtIChuZXdIZWlnaHQgLSBwcmV2SGVpZ2h0KSAvIDIpO1xuXG4gICAgdGhpcy5zZXRFbGVtZW50UG9zaXRpb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Rml0Q29udGVudFNjYWxlKCkge1xuICAgIGlmICghdGhpcy5maXRDb250ZW50KCkpIHJldHVybjtcbiAgICBjb25zdCBoZWlnaHQgPSB0aGlzLndyYXBwZXIoKS5jbGllbnRIZWlnaHQgLyB0aGlzLm5hdGl2ZUVsKCkuY2xpZW50SGVpZ2h0O1xuICAgIGNvbnN0IHdpZHRoID0gdGhpcy53cmFwcGVyKCkuY2xpZW50V2lkdGggLyB0aGlzLm5hdGl2ZUVsKCkuY2xpZW50V2lkdGg7XG4gICAgdGhpcy56b29tLnNldChNYXRoLnJvdW5kKE1hdGgubWluKGhlaWdodCwgd2lkdGgpICogMTAwKSk7XG4gIH1cblxuICBzZXRFbGVtZW50UG9zaXRpb24oKSB7XG4gICAgdGhpcy5uYXRpdmVFbCgpLnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUoJHt0aGlzLnBhblgoKX1weCwgJHt0aGlzLnBhblkoKX1weCkgc2NhbGUoJHt0aGlzLnpvb20oKSAvIDEwMH0pYDtcblxuICAgIHRoaXMucG9zaXRpb25DaGFuZ2UuZW1pdCh7IHg6IHRoaXMucGFuWCgpLCB5OiB0aGlzLnBhblkoKSB9KTtcbiAgICB0aGlzLnpvb21DaGFuZ2UuZW1pdCh0aGlzLnpvb20oKSk7XG4gIH1cblxuICByZXNldFBvc2l0aW9uKCkge1xuICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gdGhpcy53cmFwcGVyKCkub2Zmc2V0V2lkdGg7XG4gICAgY29uc3QgY29udGFpbmVySGVpZ2h0ID0gdGhpcy53cmFwcGVyKCkub2Zmc2V0SGVpZ2h0O1xuXG4gICAgY29uc3QgYm94TGVmdCA9IChjb250YWluZXJXaWR0aCAtIHRoaXMuaW5pdGlhbFdpZHRoKCkpIC8gMjtcbiAgICBjb25zdCBib3hUb3AgPSAoY29udGFpbmVySGVpZ2h0IC0gdGhpcy5pbml0aWFsSGVpZ2h0KCkpIC8gMjtcblxuICAgIHRoaXMucGFuWC5zZXQoYm94TGVmdCk7XG4gICAgdGhpcy5wYW5ZLnNldChib3hUb3ApO1xuXG4gICAgaWYgKHRoaXMuZml0Q29udGVudCgpKSB0aGlzLnNldEZpdENvbnRlbnRTY2FsZSgpO1xuICAgIGVsc2UgdGhpcy56b29tLnNldCgxMDApO1xuXG4gICAgdGhpcy5zZXRFbGVtZW50UG9zaXRpb24oKTtcbiAgfVxuXG4gIHpvb21JbigpIHtcbiAgICB0aGlzLnpvb20uc2V0KE1hdGgucm91bmQoTWF0aC5tYXgodGhpcy5taW5ab29tKCksIE1hdGgubWluKHRoaXMubWF4Wm9vbSgpLCB0aGlzLnpvb20oKSArIHRoaXMuem9vbVN0ZXAoKSkpKSk7XG4gICAgdGhpcy5zZXRFbGVtZW50UG9zaXRpb24oKTtcbiAgfVxuXG4gIHpvb21PdXQoKSB7XG4gICAgdGhpcy56b29tLnNldChNYXRoLnJvdW5kKE1hdGgubWF4KHRoaXMubWluWm9vbSgpLCBNYXRoLm1pbih0aGlzLm1heFpvb20oKSwgdGhpcy56b29tKCkgLSB0aGlzLnpvb21TdGVwKCkpKSkpO1xuICAgIHRoaXMuc2V0RWxlbWVudFBvc2l0aW9uKCk7XG4gIH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNkay1wYW4tdmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay9wYW4tdmlldy9zcmMvYWNvcmV4LWNkay1wYW4tdmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@acorex/cdk",
3
- "version": "20.7.6",
3
+ "version": "20.7.8",
4
4
  "peerDependencies": {
5
- "@acorex/core": "20.7.6",
5
+ "@acorex/core": "20.7.8",
6
6
  "quill": ">=2.0.2",
7
7
  "qrcode": ">=1.5.4",
8
8
  "swiper": ">=11.1.15",
@@ -51,10 +51,6 @@
51
51
  "types": "./drawer/index.d.ts",
52
52
  "default": "./fesm2022/acorex-cdk-drawer.mjs"
53
53
  },
54
- "./focus-trap": {
55
- "types": "./focus-trap/index.d.ts",
56
- "default": "./fesm2022/acorex-cdk-focus-trap.mjs"
57
- },
58
54
  "./full-screen": {
59
55
  "types": "./full-screen/index.d.ts",
60
56
  "default": "./fesm2022/acorex-cdk-full-screen.mjs"
@@ -63,6 +59,10 @@
63
59
  "types": "./input-mask/index.d.ts",
64
60
  "default": "./fesm2022/acorex-cdk-input-mask.mjs"
65
61
  },
62
+ "./focus-trap": {
63
+ "types": "./focus-trap/index.d.ts",
64
+ "default": "./fesm2022/acorex-cdk-focus-trap.mjs"
65
+ },
66
66
  "./list-navigation": {
67
67
  "types": "./list-navigation/index.d.ts",
68
68
  "default": "./fesm2022/acorex-cdk-list-navigation.mjs"
@@ -13,6 +13,8 @@ declare class AXPanViewDirective implements OnDestroy {
13
13
  private startY;
14
14
  private pointerDown;
15
15
  private wrapper;
16
+ private readonly wheelListener;
17
+ private static readonly WHEEL_PAN_FACTOR;
16
18
  zoomStep: _angular_core.InputSignal<number>;
17
19
  minZoom: _angular_core.InputSignal<number>;
18
20
  maxZoom: _angular_core.InputSignal<number>;
@@ -37,6 +39,8 @@ declare class AXPanViewDirective implements OnDestroy {
37
39
  private handlePointerDown;
38
40
  private handlePointerMove;
39
41
  private handlePointerUp;
42
+ private handleWheel;
43
+ private getWheelDelta;
40
44
  private handleZoomChange;
41
45
  private sizeChanged;
42
46
  private setFitContentScale;