@acorex/components 20.2.0-next.1 → 20.2.0-next.2
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/datetime-box/index.d.ts +1 -0
- package/fesm2022/acorex-components-calendar.mjs +16 -1
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-box.mjs +15 -2
- package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
- package/fesm2022/acorex-components-popover.mjs +30 -1
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +2 -2
- package/fesm2022/acorex-components-popup.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler.mjs +44 -18
- package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
- package/fesm2022/acorex-components-select-box.mjs +4 -3
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/fesm2022/acorex-components-time-duration.mjs +1 -1
- package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
- package/package.json +5 -5
- package/popover/index.d.ts +10 -2
- package/scheduler/index.d.ts +5 -1
- package/select-box/index.d.ts +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-components-popover.mjs","sources":["../tmp-esm2022/popover/lib/popover.component.js","../tmp-esm2022/popover/lib/popover.module.js","../tmp-esm2022/popover/acorex-components-popover.js"],"sourcesContent":["import { AXComponent, AXFocusableComponent, MXBaseComponent, convertToPlacement, } from '@acorex/cdk/common';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXHtmlUtil } from '@acorex/core/utils';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport { isPlatformBrowser } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, DOCUMENT, ElementRef, EventEmitter, Input, Output, PLATFORM_ID, Renderer2, TemplateRef, ViewChild, ViewEncapsulation, inject, input, } from '@angular/core';\nimport { delay, fromEvent } from 'rxjs';\nimport * as i0 from \"@angular/core\";\n/**\n * @category Components\n * A popover component with custom encapsulation and change detection settings.\n */\nexport class AXPopoverComponent extends MXBaseComponent {\n constructor() {\n super(...arguments);\n this.#platform = inject(AXPlatform);\n this.document = inject(DOCUMENT);\n this.platformID = inject(PLATFORM_ID);\n this.renderer = inject(Renderer2);\n this.onKeyDownListenerFn = () => undefined;\n /** @ignore */\n this._platform = inject(AXPlatform);\n /** @ignore */\n this._overlay = inject(Overlay);\n /** @ignore */\n this._isMouseOverButton = false;\n /** @ignore */\n this._isMouseOverTooltip = false;\n /** @ignore */\n this._targetEvents = {};\n /** @ignore */\n this._overlayEvents = {};\n //\n /** @ignore */\n this._disabled = false;\n this.width = input('auto', ...(ngDevMode ? [{ debugName: \"width\" }] : []));\n //\n /** @ignore */\n this._offsetX = 0;\n //\n /** @ignore */\n this._offsetY = 0;\n //\n /** @ignore */\n this._defautPlacements = convertToPlacement('bottom-start');\n /** @ignore */\n this._placements = [...this._defautPlacements];\n /** @ignore */\n this._placement = this._placements;\n //\n /** @ignore */\n this._openOn = 'toggle';\n //\n /** @ignore */\n this._closeOn = 'clickOut';\n //\n /**\n * Determines if a backdrop should be displayed behind the popover.\n */\n this.hasBackdrop = false;\n //\n /**\n * Delay in milliseconds before the popover opens after a trigger event.\n */\n this.openAfter = 200;\n /**\n * Delay in milliseconds before the popover closes after a trigger event.\n */\n this.closeAfter = 200;\n /**\n * Enables or disables adaptivity.\n */\n this.adaptivityEnabled = false;\n //\n /**\n * Emits when the component is opened.\n * @event\n */\n this.onOpened = new EventEmitter();\n /**\n * Emits when the component is closed.\n * @event\n */\n this.onClosed = new EventEmitter();\n }\n #platform;\n /**\n * Gets or sets whether the popover is disabled.\n * When disabled, the popover will not open and will close if already open.\n */\n get disabled() {\n return this._disabled;\n }\n set disabled(v) {\n this._disabled = v;\n if (this._disabled && this.isOpen) {\n this.close();\n }\n }\n /**\n * Gets or sets the horizontal offset and updates it accordingly.\n */\n get offsetX() {\n return this._offsetX;\n }\n /**\n * Sets the horizontal offset and updates it with a callback.\n */\n set offsetX(v) {\n this.setOption({\n name: 'offsetX',\n value: v,\n afterCallback: () => {\n this.updateOffset();\n },\n });\n }\n /**\n * Vertical offset with update callback.\n */\n get offsetY() {\n return this._offsetY;\n }\n /**\n * Sets the vertical offset and updates the component position.\n */\n set offsetY(v) {\n this.setOption({\n name: 'offsetY',\n value: v,\n afterCallback: () => {\n this.updateOffset();\n },\n });\n }\n /**\n * Gets or sets the target element, supporting Element, ElementRef, or MXBaseComponent.\n */\n get target() {\n return this._target;\n }\n /**\n * Sets the target element and updates event bindings.\n */\n set target(v) {\n this.removeTargetEvents();\n if (v instanceof Element)\n this._target = v;\n else if (v instanceof ElementRef)\n this._target = v.nativeElement;\n else if (typeof v?.getHostElement == 'function')\n this._target = v.getHostElement();\n //\n this.bindTargetEvents();\n }\n /**\n * Gets or sets the component's placement and updates position settings.\n */\n get placement() {\n return this._placement;\n }\n /**\n * Sets the component's placement and updates its position settings.\n */\n set placement(v) {\n this.setOption({\n name: 'placement',\n value: v,\n afterCallback: (o, n) => {\n const converted = convertToPlacement(n);\n this._placements = converted.length ? converted : this._defautPlacements;\n this.updateOffset();\n this.updatePositionStrategy();\n },\n });\n }\n /**\n * Gets the reference to the component.\n */\n get componentRef() {\n return this._componentRef;\n }\n /**\n * Gets or sets the trigger for opening the popover and updates target events.\n */\n get openOn() {\n return this._openOn;\n }\n /**\n * Sets the trigger for opening the popover and updates target events.\n */\n set openOn(v) {\n this.setOption({\n name: 'openOn',\n value: v,\n afterCallback: () => {\n this.bindTargetEvents();\n },\n });\n }\n /**\n * Gets or sets the trigger for closing the popover.\n */\n get closeOn() {\n return this._closeOn;\n }\n /**\n * Sets the trigger for closing the popover and rebinds target events.\n * @param v\n */\n set closeOn(v) {\n this.setOption({\n name: 'closeOn',\n value: v,\n afterCallback: () => {\n this.bindTargetEvents();\n },\n });\n }\n /** @ignore */\n _emitOnOpenedEvent() {\n this.onOpened.emit({\n component: this,\n htmlElement: this.getHostElement(),\n });\n }\n /** @ignore */\n _emitOnClosedEvent() {\n this.onClosed.emit({\n component: this,\n htmlElement: this.getHostElement(),\n });\n }\n //\n /** @ignore */\n _handleMouseEnter(e) {\n this._isMouseOverTooltip = true;\n }\n /** @ignore */\n _handleMouseLeave(e) {\n this._isMouseOverTooltip = false;\n setTimeout(() => {\n if (!this._isMouseOverButton && this.closeOn == 'leave') {\n this.close();\n }\n }, 250);\n }\n /** @ignore */\n removeTargetEvents() {\n Object.entries(this._targetEvents).forEach((e) => {\n e[1].unsubscribe();\n });\n }\n /** @ignore */\n bindTargetEvents() {\n this.removeTargetEvents();\n if (!this._target)\n return;\n const targetMouseEnter$ = fromEvent(this._target, 'mouseenter');\n const targetMouseLeave$ = fromEvent(this._target, 'mouseleave');\n if (this.openOn == 'hover') {\n this._targetEvents.mouseenter = targetMouseEnter$.pipe(delay(this.openAfter)).subscribe(() => {\n this._isMouseOverButton = true;\n this.open();\n });\n }\n if (this.closeOn == 'leave') {\n this._targetEvents.mouseleave = targetMouseLeave$.pipe(delay(this.closeAfter)).subscribe(() => {\n this._isMouseOverButton = false;\n if (!this._isMouseOverTooltip) {\n this.close();\n }\n });\n }\n if (this.openOn === 'click' || this.openOn === 'toggle') {\n const click$ = fromEvent(this._target, 'click');\n this._targetEvents.click = click$.subscribe((e) => {\n this.openOn == 'toggle' ? this.toggle() : this.open();\n });\n }\n }\n //\n /** @ignore */\n bindOverlayEvents() {\n this.removeOverlayEvents();\n this._overlayEvents.attach = this._overlayRef.attachments().subscribe(() => {\n if (this.openOn == 'hover') {\n this._overlayRef.overlayElement.addEventListener('mouseenter', this._handleMouseEnter.bind(this));\n }\n if (this.closeOn == 'leave') {\n this._overlayRef.overlayElement.addEventListener('mouseleave', this._handleMouseLeave.bind(this));\n }\n //\n this._overlayEvents.outside = this._overlayRef._outsidePointerEvents.subscribe((e) => {\n const el = e.target;\n if (this.closeOn == 'clickOut' &&\n this.isOpen &&\n !this._target.contains(el) &&\n !this._overlayRef?.overlayElement?.contains(el)) {\n this.close();\n }\n });\n //\n this._overlayEvents.scroll = this._platform.scroll.subscribe((c) => {\n //__axContext__\n const el = c.nativeEvent.target;\n if (!this.isActionsheetStyle && isPlatformBrowser(this.platformID)) {\n if (el == this.document) {\n this.close();\n return;\n }\n if (el?.closest &&\n !el.closest('.ax-overlay-pane') &&\n !this._target.contains(el) &&\n !this._overlayRef?.overlayElement?.contains(el)) {\n this.close();\n }\n }\n });\n });\n }\n /** @ignore */\n removeOverlayEvents() {\n this._overlayRef?.overlayElement.removeEventListener('mouseenter', this._handleMouseEnter.bind(this));\n this._overlayRef?.overlayElement.addEventListener('mouseleave', this._handleMouseLeave.bind(this));\n Object.entries(this._overlayEvents).forEach((e) => {\n e[1].unsubscribe();\n });\n }\n //\n /**\n * Toggles the component's open state.\n */\n toggle() {\n this.isOpen ? this.close() : this.open();\n }\n //\n /**\n * Closes the component if it's open, detaches the overlay, restores focus, and emits the closed event.\n */\n close() {\n if (!this.isOpen) {\n return;\n }\n this._overlayRef?.detach();\n this.restoreFocus();\n this._emitOnClosedEvent();\n this.onKeyDownListenerFn();\n }\n //\n /**\n * Opens the component if it's not already open, saves focus, opens the overlay, and emits the opened event.\n */\n open() {\n if (this.isOpen || this.disabled) {\n return;\n }\n if (isPlatformBrowser(this.platformID)) {\n this.onKeyDownListenerFn = this.renderer.listen(this.document.body, 'keydown', (e) => {\n if (e.key == 'Escape') {\n this.close();\n }\n });\n }\n this.saveFocus();\n this.openOverlayInternal();\n this._emitOnOpenedEvent();\n }\n /** @ignore */\n saveFocus() {\n if (isPlatformBrowser(this.platformID)) {\n this._lastActiveElement = this.document.activeElement;\n }\n }\n /** @ignore */\n restoreFocus() {\n if (this._lastActiveElement instanceof HTMLElement) {\n if (this._lastActiveElement?.focus) {\n this._lastActiveElement.focus();\n }\n }\n }\n /** @ignore */\n openOverlayInternal() {\n const targetRef = this._target;\n if (!targetRef)\n return;\n //if (!this._overlayRef) {\n if (this.isActionsheetStyle) {\n this._overlayRef = this._overlay.create({\n positionStrategy: this._overlay.position().global().bottom().centerHorizontally(),\n disposeOnNavigation: true,\n scrollStrategy: this._overlay.scrollStrategies.block(),\n panelClass: [\n 'ax-actionsheet-base',\n 'ax-animate-slideInUp',\n 'ax-animate-faster',\n this.panelClass ? this.panelClass : this.#platform.isDark() ? 'ax-dark' : '',\n ],\n hasBackdrop: true,\n width: '100%',\n });\n }\n else {\n this._overlayRef = this._overlay.create({\n positionStrategy: this._overlay.position().flexibleConnectedTo(targetRef).withPositions(this._placements),\n scrollStrategy: this._overlay.scrollStrategies.noop(),\n disposeOnNavigation: true,\n panelClass: ['ax-animate-fadeIn', 'ax-animate-faster', this.#platform.isDark() ? 'ax-dark' : ''],\n maxHeight: 'unset',\n hasBackdrop: this.hasBackdrop,\n backdropClass: [this.backdropClass || 'cdk-overlay-transparent-backdrop'],\n direction: AXHtmlUtil.isRtl(this.getHostElement()) ? 'rtl' : 'ltr',\n width: this.width(),\n });\n // this._overlayRef.setDirection()\n }\n //\n this.bindOverlayEvents();\n //}\n //\n if (this.content instanceof TemplateRef) {\n this._portal = new TemplatePortal(this.content, this.getViewContainer(), {\n $implicit: this.context,\n ref: this,\n });\n this._overlayRef?.attach(this._portal);\n }\n else if (typeof this.content === 'function') {\n this._portal = new ComponentPortal(this.content);\n this._componentRef = this._overlayRef?.attach(this._portal);\n Object.assign(this._componentRef.instance, this.context);\n }\n else {\n this._portal = new TemplatePortal(this._baseTemplate, this.getViewContainer(), {\n $implicit: this.context,\n ref: this,\n });\n this._overlayRef?.attach(this._portal);\n }\n }\n /**\n * Checks if the overlay is currently open.\n * @returns {boolean}\n */\n get isOpen() {\n return this._overlayRef ? this._overlayRef.hasAttached() : false;\n }\n /**\n * Determines if the actionsheet style should be applied.\n * @returns {boolean}\n */\n get isActionsheetStyle() {\n return this._platform.is('SM') && this.adaptivityEnabled;\n }\n /** @ignore */\n updatePositionStrategy() {\n const targetRef = this._target;\n if (!targetRef)\n return;\n let strategy;\n if (this.isActionsheetStyle) {\n strategy = this._overlay.position().global().bottom().centerHorizontally();\n }\n else {\n strategy = this._overlay.position().flexibleConnectedTo(targetRef).withPositions(this._placements);\n }\n this._overlayRef?.updatePositionStrategy(strategy);\n }\n /** @ignore */\n updateOffset() {\n this._placements?.forEach((p) => {\n if (this.offsetY != null)\n p.offsetY = this.offsetY;\n if (this.offsetX != null)\n p.offsetX = this.offsetX;\n });\n }\n /**\n * Updates the position of the overlay and focuses on it.\n */\n updatePosition() {\n this._overlayRef?.updatePosition();\n this.focus();\n }\n /**\n * Focuses the overlay element.\n */\n focus() {\n //TODO: need this??\n }\n //\n ngOnInit() {\n super.ngOnInit();\n // this.platformService.directionChange.subscribe((c) => {\n // this.isRtl = c.data == 'rtl';\n // });\n }\n /** @ignore */\n ngOnDestroy() {\n this.removeTargetEvents();\n this.removeOverlayEvents();\n this._overlayRef?.detach();\n this._overlayRef?.dispose();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXPopoverComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.3\", type: AXPopoverComponent, isStandalone: true, selector: \"ax-popover\", inputs: { width: { classPropertyName: \"width\", publicName: \"width\", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: false, isRequired: false, transformFunction: null }, offsetX: { classPropertyName: \"offsetX\", publicName: \"offsetX\", isSignal: false, isRequired: false, transformFunction: null }, offsetY: { classPropertyName: \"offsetY\", publicName: \"offsetY\", isSignal: false, isRequired: false, transformFunction: null }, target: { classPropertyName: \"target\", publicName: \"target\", isSignal: false, isRequired: false, transformFunction: null }, placement: { classPropertyName: \"placement\", publicName: \"placement\", isSignal: false, isRequired: false, transformFunction: null }, content: { classPropertyName: \"content\", publicName: \"content\", isSignal: false, isRequired: false, transformFunction: null }, openOn: { classPropertyName: \"openOn\", publicName: \"openOn\", isSignal: false, isRequired: false, transformFunction: null }, closeOn: { classPropertyName: \"closeOn\", publicName: \"closeOn\", isSignal: false, isRequired: false, transformFunction: null }, hasBackdrop: { classPropertyName: \"hasBackdrop\", publicName: \"hasBackdrop\", isSignal: false, isRequired: false, transformFunction: null }, openAfter: { classPropertyName: \"openAfter\", publicName: \"openAfter\", isSignal: false, isRequired: false, transformFunction: null }, closeAfter: { classPropertyName: \"closeAfter\", publicName: \"closeAfter\", isSignal: false, isRequired: false, transformFunction: null }, backdropClass: { classPropertyName: \"backdropClass\", publicName: \"backdropClass\", isSignal: false, isRequired: false, transformFunction: null }, panelClass: { classPropertyName: \"panelClass\", publicName: \"panelClass\", isSignal: false, isRequired: false, transformFunction: null }, adaptivityEnabled: { classPropertyName: \"adaptivityEnabled\", publicName: \"adaptivityEnabled\", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onOpened: \"onOpened\", onClosed: \"onClosed\" }, providers: [\n { provide: AXFocusableComponent, useExisting: AXPopoverComponent },\n { provide: AXComponent, useExisting: AXPopoverComponent },\n ], viewQueries: [{ propertyName: \"_baseTemplate\", first: true, predicate: [\"baseTemplate\"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: \"<ng-template #baseTemplate>\\n <ng-content></ng-content>\\n</ng-template>\\n\", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXPopoverComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-popover', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [\n { provide: AXFocusableComponent, useExisting: AXPopoverComponent },\n { provide: AXComponent, useExisting: AXPopoverComponent },\n ], template: \"<ng-template #baseTemplate>\\n <ng-content></ng-content>\\n</ng-template>\\n\" }]\n }], propDecorators: { disabled: [{\n type: Input\n }], offsetX: [{\n type: Input\n }], offsetY: [{\n type: Input\n }], target: [{\n type: Input\n }], placement: [{\n type: Input\n }], _baseTemplate: [{\n type: ViewChild,\n args: ['baseTemplate', { static: true }]\n }], content: [{\n type: Input\n }], openOn: [{\n type: Input\n }], closeOn: [{\n type: Input\n }], hasBackdrop: [{\n type: Input\n }], openAfter: [{\n type: Input\n }], closeAfter: [{\n type: Input\n }], backdropClass: [{\n type: Input\n }], panelClass: [{\n type: Input\n }], adaptivityEnabled: [{\n type: Input\n }], onOpened: [{\n type: Output\n }], onClosed: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3BvcG92ZXIvc3JjL2xpYi9wb3BvdmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvcG9wb3Zlci9zcmMvbGliL3BvcG92ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFdBQVcsRUFHWCxvQkFBb0IsRUFFcEIsZUFBZSxFQUNmLGtCQUFrQixHQUNuQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLE9BQU8sRUFBZ0MsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZUFBZSxFQUF5QixjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxRQUFRLEVBQ1IsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxFQUNOLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWdCLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBTXREOzs7R0FHRztBQVdILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxlQUFlO0lBVnZEOztRQVdFLGNBQVMsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkIsYUFBUSxHQUFHLE1BQU0s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dUNLLFNBQVM7c0JBTG5CLEtBQUs7Z0JBZ0ROLGFBQWE7c0JBRFosU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQVEzQyxPQUFPO3NCQUROLEtBQUs7Z0JBZUssTUFBTTtzQkFMaEIsS0FBSztnQkE4QkssT0FBTztzQkFEakIsS0FBSztnQkF5Qk4sV0FBVztzQkFEVixLQUFLO2dCQVFOLFNBQVM7c0JBRFIsS0FBSztnQkFPTixVQUFVO3NCQURULEtBQUs7Z0JBT04sYUFBYTtzQkFEWixLQUFLO2dCQU9OLFVBQVU7c0JBRFQsS0FBSztnQkFPTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBU04sUUFBUTtzQkFEUCxNQUFNO2dCQVFQLFFBQVE7c0JBRFAsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFYQ29tcG9uZW50LFxuICBBWENvbm5lY3RlZFBvc2l0aW9uLFxuICBBWEV2ZW50LFxuICBBWEZvY3VzYWJsZUNvbXBvbmVudCxcbiAgQVhQbGFjZW1lbnRUeXBlLFxuICBNWEJhc2VDb21wb25lbnQsXG4gIGNvbnZlcnRUb1BsYWNlbWVudCxcbn0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYUGxhdGZvcm0gfSBmcm9tICdAYWNvcmV4L2NvcmUvcGxhdGZvcm0nO1xuaW1wb3J0IHsgQVhIdG1sVXRpbCB9IGZyb20gJ0BhY29yZXgvY29yZS91dGlscyc7XG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5UmVmLCBQb3NpdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsLCBDb21wb25lbnRUeXBlLCBQb3J0YWwsIFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRSZWYsXG4gIERPQ1VNRU5ULFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFBMQVRGT1JNX0lELFxuICBSZW5kZXJlcjIsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBpbmplY3QsXG4gIGlucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZGVsYXksIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgdHlwZSBBWFBvcG92ZXJPcGVuVHJpZ2dlciA9ICdtYW51YWwnIHwgJ2NsaWNrJyB8ICdob3ZlcicgfCAndG9nZ2xlJztcblxuZXhwb3J0IHR5cGUgQVhQb3BvdmVyQ2xvc2VUcmlnZ2VyID0gJ21hbnVhbCcgfCAnY2xpY2tPdXQnIHwgJ2xlYXZlJztcblxuLyoqXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICogQSBwb3BvdmVyIGNvbXBvbmVudCB3aXRoIGN1c3RvbSBlbmNhcHN1bGF0aW9uIGFuZCBjaGFuZ2UgZGV0ZWN0aW9uIHNldHRpbmdzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1wb3BvdmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvcG92ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBBWEZvY3VzYWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYUG9wb3ZlckNvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFBvcG92ZXJDb21wb25lbnQgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQb3BvdmVyQ29tcG9uZW50IGV4dGVuZHMgTVhCYXNlQ29tcG9uZW50IHtcbiAgI3BsYXRmb3JtID0gaW5qZWN0KEFYUGxhdGZvcm0pO1xuICBwcml2YXRlIGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgcHJpdmF0ZSBwbGF0Zm9ybUlEID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgcHJpdmF0ZSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuXG4gIHByaXZhdGUgb25LZXlEb3duTGlzdGVuZXJGbiA9ICgpID0+IHVuZGVmaW5lZDtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9wbGF0Zm9ybTogQVhQbGF0Zm9ybSA9IGluamVjdChBWFBsYXRmb3JtKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9vdmVybGF5OiBPdmVybGF5ID0gaW5qZWN0KE92ZXJsYXkpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX292ZXJsYXlSZWYhOiBPdmVybGF5UmVmO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX2lzTW91c2VPdmVyQnV0dG9uID0gZmFsc2U7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfaXNNb3VzZU92ZXJUb29sdGlwID0gZmFsc2U7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfbGFzdEFjdGl2ZUVsZW1lbnQ6IEVsZW1lbnQ7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfdGFyZ2V0RXZlbnRzOiB7XG4gICAgbW91c2VlbnRlcj86IFN1YnNjcmlwdGlvbjtcbiAgICBtb3VzZWxlYXZlPzogU3Vic2NyaXB0aW9uO1xuICAgIGNsaWNrPzogU3Vic2NyaXB0aW9uO1xuICB9ID0ge307XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfb3ZlcmxheUV2ZW50czoge1xuICAgIGF0dGFjaD86IFN1YnNjcmlwdGlvbjtcbiAgICBkZXRhY2g/OiBTdWJzY3JpcHRpb247XG4gICAgc2Nyb2xsPzogU3Vic2NyaXB0aW9uO1xuICAgIG91dHNpZGU/OiBTdWJzY3JpcHRpb247XG4gIH0gPSB7fTtcblxuICAvL1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgd2lkdGggPSBpbnB1dDxzdHJpbmc+KCdhdXRvJyk7XG5cbiAgLyoqXG4gICAqIEdldHMgb3Igc2V0cyB3aGV0aGVyIHRoZSBwb3BvdmVyIGlzIGRpc2FibGVkLlxuICAgKiBXaGVuIGRpc2FibGVkLCB0aGUgcG9wb3ZlciB3aWxsIG5vdCBvcGVuIGFuZCB3aWxsIGNsb3NlIGlmIGFscmVhZHkgb3Blbi5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodjogYm9vbGVhbikge1xuICAgIHRoaXMuX2Rpc2FibGVkID0gdjtcbiAgICBpZiAodGhpcy5fZGlzYWJsZWQgJiYgdGhpcy5pc09wZW4pIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICAvL1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX29mZnNldFggPSAwO1xuXG4gIC8qKlxuICAgKiBHZXRzIG9yIHNldHMgdGhlIGhvcml6b250YWwgb2Zmc2V0IGFuZCB1cGRhdGVzIGl0IGFjY29yZGluZ2x5LlxuICAgKi9cbiAgQElucHV0KClcblxuICAvKipcbiAgICogR2V0cyB0aGUgaG9yaXpvbnRhbCBvZmZzZXQgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgZ2V0IG9mZnNldFgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fb2Zmc2V0WDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBob3Jpem9udGFsIG9mZnNldCBhbmQgdXBkYXRlcyBpdCB3aXRoIGEgY2FsbGJhY2suXG4gICAqL1xuICBwdWJsaWMgc2V0IG9mZnNldFgodjogbnVtYmVyKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ29mZnNldFgnLFxuICAgICAgdmFsdWU6IHYsXG4gICAgICBhZnRlckNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlT2Zmc2V0KCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIC8vXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfb2Zmc2V0WSA9IDA7XG5cbiAgLyoqXG4gICAqIFZlcnRpY2FsIG9mZnNldCB3aXRoIHVwZGF0ZSBjYWxsYmFjay5cbiAgICovXG4gIEBJbnB1dCgpXG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHZlcnRpY2FsIG9mZnNldCBvZiB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGdldCBvZmZzZXRZKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX29mZnNldFk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdmVydGljYWwgb2Zmc2V0IGFuZCB1cGRhdGVzIHRoZSBjb21wb25lbnQgcG9zaXRpb24uXG4gICAqL1xuICBwdWJsaWMgc2V0IG9mZnNldFkodjogbnVtYmVyKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ29mZnNldFknLFxuICAgICAgdmFsdWU6IHYsXG4gICAgICBhZnRlckNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlT2Zmc2V0KCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLy9cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF90YXJnZXQhOiBFbGVtZW50O1xuXG4gIC8qKlxuICAgKiBHZXRzIG9yIHNldHMgdGhlIHRhcmdldCBlbGVtZW50LCBzdXBwb3J0aW5nIEVsZW1lbnQsIEVsZW1lbnRSZWYsIG9yIE1YQmFzZUNvbXBvbmVudC5cbiAgICovXG4gIEBJbnB1dCgpXG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnQgdGFyZ2V0IGVsZW1lbnQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHRhcmdldCgpOiBFbGVtZW50IHwgRWxlbWVudFJlZiB8IE1YQmFzZUNvbXBvbmVudCB7XG4gICAgcmV0dXJuIHRoaXMuX3RhcmdldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB0YXJnZXQgZWxlbWVudCBhbmQgdXBkYXRlcyBldmVudCBiaW5kaW5ncy5cbiAgICovXG4gIHB1YmxpYyBzZXQgdGFyZ2V0KHY6IEVsZW1lbnQgfCBFbGVtZW50UmVmIHwgTVhCYXNlQ29tcG9uZW50KSB7XG4gICAgdGhpcy5yZW1vdmVUYXJnZXRFdmVudHMoKTtcbiAgICBpZiAodiBpbnN0YW5jZW9mIEVsZW1lbnQpIHRoaXMuX3RhcmdldCA9IHY7XG4gICAgZWxzZSBpZiAodiBpbnN0YW5jZW9mIEVsZW1lbnRSZWYpIHRoaXMuX3RhcmdldCA9IHYubmF0aXZlRWxlbWVudDtcbiAgICBlbHNlIGlmICh0eXBlb2Ygdj8uZ2V0SG9zdEVsZW1lbnQgPT0gJ2Z1bmN0aW9uJykgdGhpcy5fdGFyZ2V0ID0gdi5nZXRIb3N0RWxlbWVudCgpO1xuICAgIC8vXG4gICAgdGhpcy5iaW5kVGFyZ2V0RXZlbnRzKCk7XG4gIH1cbiAgLy9cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9kZWZhdXRQbGFjZW1lbnRzOiBBWENvbm5lY3RlZFBvc2l0aW9uW10gPSBjb252ZXJ0VG9QbGFjZW1lbnQoJ2JvdHRvbS1zdGFydCcpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX3BsYWNlbWVudHM6IEFYQ29ubmVjdGVkUG9zaXRpb25bXSA9IFsuLi50aGlzLl9kZWZhdXRQbGFjZW1lbnRzXTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9wbGFjZW1lbnQ6IEFYUGxhY2VtZW50VHlwZSA9IHRoaXMuX3BsYWNlbWVudHM7XG5cbiAgLyoqXG4gICAqIEdldHMgb3Igc2V0cyB0aGUgY29tcG9uZW50J3MgcGxhY2VtZW50IGFuZCB1cGRhdGVzIHBvc2l0aW9uIHNldHRpbmdzLlxuICAgKi9cbiAgQElucHV0KClcblxuICAvKipcbiAgICogR2V0cyB0aGUgY3VycmVudCBwbGFjZW1lbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBnZXQgcGxhY2VtZW50KCk6IEFYUGxhY2VtZW50VHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuX3BsYWNlbWVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjb21wb25lbnQncyBwbGFjZW1lbnQgYW5kIHVwZGF0ZXMgaXRzIHBvc2l0aW9uIHNldHRpbmdzLlxuICAgKi9cbiAgcHVibGljIHNldCBwbGFjZW1lbnQodjogQVhQbGFjZW1lbnRUeXBlKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ3BsYWNlbWVudCcsXG4gICAgICB2YWx1ZTogdixcbiAgICAgIGFmdGVyQ2FsbGJhY2s6IChvLCBuKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnZlcnRlZCA9IGNvbnZlcnRUb1BsYWNlbWVudChuKTtcbiAgICAgICAgdGhpcy5fcGxhY2VtZW50cyA9IGNvbnZlcnRlZC5sZW5ndGggPyBjb252ZXJ0ZWQgOiB0aGlzLl9kZWZhdXRQbGFjZW1lbnRzO1xuICAgICAgICB0aGlzLnVwZGF0ZU9mZnNldCgpO1xuICAgICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3koKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgLy9cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9wb3J0YWw6IFBvcnRhbDx1bmtub3duPjtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9jb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjx1bmtub3duPjtcblxuICAvKipcbiAgICogR2V0cyB0aGUgcmVmZXJlbmNlIHRvIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNvbXBvbmVudFJlZigpOiBDb21wb25lbnRSZWY8dW5rbm93bj4ge1xuICAgIHJldHVybiB0aGlzLl9jb21wb25lbnRSZWY7XG4gIH1cblxuICAvKipcbiAgICogSG9sZHMgdGhlIGNvbnRleHQgZGF0YSBmb3IgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBjb250ZXh0OiB1bmtub3duO1xuXG4gIC8vXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQFZpZXdDaGlsZCgnYmFzZVRlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgX2Jhc2VUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG4gIC8vXG5cbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIGNvbnRlbnQgdG8gYmUgZGlzcGxheWVkLCB3aGljaCBjYW4gYmUgYSB0ZW1wbGF0ZSBvciBhIGNvbXBvbmVudC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGNvbnRlbnQ6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgQ29tcG9uZW50VHlwZTx1bmtub3duPjtcbiAgLy9cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9vcGVuT246IEFYUG9wb3Zlck9wZW5UcmlnZ2VyID0gJ3RvZ2dsZSc7XG5cbiAgLyoqXG4gICAqIEdldHMgb3Igc2V0cyB0aGUgdHJpZ2dlciBmb3Igb3BlbmluZyB0aGUgcG9wb3ZlciBhbmQgdXBkYXRlcyB0YXJnZXQgZXZlbnRzLlxuICAgKi9cbiAgQElucHV0KClcblxuICAvKipcbiAgICogR2V0cyB0aGUgdHJpZ2dlciBmb3Igb3BlbmluZyB0aGUgcG9wb3Zlci5cbiAgICovXG4gIHB1YmxpYyBnZXQgb3Blbk9uKCk6IEFYUG9wb3Zlck9wZW5UcmlnZ2VyIHtcbiAgICByZXR1cm4gdGhpcy5fb3Blbk9uO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHRyaWdnZXIgZm9yIG9wZW5pbmcgdGhlIHBvcG92ZXIgYW5kIHVwZGF0ZXMgdGFyZ2V0IGV2ZW50cy5cbiAgICovXG4gIHB1YmxpYyBzZXQgb3Blbk9uKHY6IEFYUG9wb3Zlck9wZW5UcmlnZ2VyKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ29wZW5PbicsXG4gICAgICB2YWx1ZTogdixcbiAgICAgIGFmdGVyQ2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgdGhpcy5iaW5kVGFyZ2V0RXZlbnRzKCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIC8vXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfY2xvc2VPbjogQVhQb3BvdmVyQ2xvc2VUcmlnZ2VyID0gJ2NsaWNrT3V0JztcblxuICAvKipcbiAgICogR2V0cyBvciBzZXRzIHRoZSB0cmlnZ2VyIGZvciBjbG9zaW5nIHRoZSBwb3BvdmVyLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBjbG9zZU9uKCk6IEFYUG9wb3ZlckNsb3NlVHJpZ2dlciB7XG4gICAgcmV0dXJuIHRoaXMuX2Nsb3NlT247XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdHJpZ2dlciBmb3IgY2xvc2luZyB0aGUgcG9wb3ZlciBhbmQgcmViaW5kcyB0YXJnZXQgZXZlbnRzLlxuICAgKiBAcGFyYW0gdlxuICAgKi9cbiAgcHVibGljIHNldCBjbG9zZU9uKHY6IEFYUG9wb3ZlckNsb3NlVHJpZ2dlcikge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdjbG9zZU9uJyxcbiAgICAgIHZhbHVlOiB2LFxuICAgICAgYWZ0ZXJDYWxsYmFjazogKCkgPT4ge1xuICAgICAgICB0aGlzLmJpbmRUYXJnZXRFdmVudHMoKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvL1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIGEgYmFja2Ryb3Agc2hvdWxkIGJlIGRpc3BsYXllZCBiZWhpbmQgdGhlIHBvcG92ZXIuXG4gICAqL1xuICBASW5wdXQoKVxuICBoYXNCYWNrZHJvcCA9IGZhbHNlO1xuICAvL1xuXG4gIC8qKlxuICAgKiBEZWxheSBpbiBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSBwb3BvdmVyIG9wZW5zIGFmdGVyIGEgdHJpZ2dlciBldmVudC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIG9wZW5BZnRlciA9IDIwMDtcblxuICAvKipcbiAgICogRGVsYXkgaW4gbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgcG9wb3ZlciBjbG9zZXMgYWZ0ZXIgYSB0cmlnZ2VyIGV2ZW50LlxuICAgKi9cbiAgQElucHV0KClcbiAgY2xvc2VBZnRlciA9IDIwMDtcblxuICAvKipcbiAgICogQ1NTIGNsYXNzIHRvIGFwcGx5IHRvIHRoZSBiYWNrZHJvcCBlbGVtZW50LlxuICAgKi9cbiAgQElucHV0KClcbiAgYmFja2Ryb3BDbGFzczogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDU1MgY2xhc3MgdG8gYXBwbHkgdG8gdGhlIGJhY2tkcm9wIGVsZW1lbnQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwYW5lbENsYXNzOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgb3IgZGlzYWJsZXMgYWRhcHRpdml0eS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGFkYXB0aXZpdHlFbmFibGVkID0gZmFsc2U7XG4gIC8vXG5cbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBvcGVuZWQuXG4gICAqIEBldmVudFxuICAgKi9cbiAgQE91dHB1dCgpXG4gIG9uT3BlbmVkOiBFdmVudEVtaXR0ZXI8QVhFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBjbG9zZWQuXG4gICAqIEBldmVudFxuICAgKi9cbiAgQE91dHB1dCgpXG4gIG9uQ2xvc2VkOiBFdmVudEVtaXR0ZXI8QVhFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYRXZlbnQ+KCk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfZW1pdE9uT3BlbmVkRXZlbnQoKSB7XG4gICAgdGhpcy5vbk9wZW5lZC5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGh0bWxFbGVtZW50OiB0aGlzLmdldEhvc3RFbGVtZW50KCksXG4gICAgfSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9lbWl0T25DbG9zZWRFdmVudCgpIHtcbiAgICB0aGlzLm9uQ2xvc2VkLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKSxcbiAgICB9KTtcbiAgfVxuICAvL1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBfaGFuZGxlTW91c2VFbnRlcihlOiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5faXNNb3VzZU92ZXJUb29sdGlwID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBfaGFuZGxlTW91c2VMZWF2ZShlOiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5faXNNb3VzZU92ZXJUb29sdGlwID0gZmFsc2U7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuX2lzTW91c2VPdmVyQnV0dG9uICYmIHRoaXMuY2xvc2VPbiA9PSAnbGVhdmUnKSB7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9LCAyNTApO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSByZW1vdmVUYXJnZXRFdmVudHMoKTogdm9pZCB7XG4gICAgT2JqZWN0LmVudHJpZXModGhpcy5fdGFyZ2V0RXZlbnRzKS5mb3JFYWNoKChlKSA9PiB7XG4gICAgICBlWzFdLnVuc3Vic2NyaWJlKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIGJpbmRUYXJnZXRFdmVudHMoKSB7XG4gICAgdGhpcy5yZW1vdmVUYXJnZXRFdmVudHMoKTtcbiAgICBpZiAoIXRoaXMuX3RhcmdldCkgcmV0dXJuO1xuICAgIGNvbnN0IHRhcmdldE1vdXNlRW50ZXIkID0gZnJvbUV2ZW50KHRoaXMuX3RhcmdldCwgJ21vdXNlZW50ZXInKTtcbiAgICBjb25zdCB0YXJnZXRNb3VzZUxlYXZlJCA9IGZyb21FdmVudCh0aGlzLl90YXJnZXQsICdtb3VzZWxlYXZlJyk7XG5cbiAgICBpZiAodGhpcy5vcGVuT24gPT0gJ2hvdmVyJykge1xuICAgICAgdGhpcy5fdGFyZ2V0RXZlbnRzLm1vdXNlZW50ZXIgPSB0YXJnZXRNb3VzZUVudGVyJC5waXBlKGRlbGF5KHRoaXMub3BlbkFmdGVyKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5faXNNb3VzZU92ZXJCdXR0b24gPSB0cnVlO1xuICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNsb3NlT24gPT0gJ2xlYXZlJykge1xuICAgICAgdGhpcy5fdGFyZ2V0RXZlbnRzLm1vdXNlbGVhdmUgPSB0YXJnZXRNb3VzZUxlYXZlJC5waXBlKGRlbGF5KHRoaXMuY2xvc2VBZnRlcikpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2lzTW91c2VPdmVyQnV0dG9uID0gZmFsc2U7XG4gICAgICAgIGlmICghdGhpcy5faXNNb3VzZU92ZXJUb29sdGlwKSB7XG4gICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcGVuT24gPT09ICdjbGljaycgfHwgdGhpcy5vcGVuT24gPT09ICd0b2dnbGUnKSB7XG4gICAgICBjb25zdCBjbGljayQgPSBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5fdGFyZ2V0LCAnY2xpY2snKTtcbiAgICAgIHRoaXMuX3RhcmdldEV2ZW50cy5jbGljayA9IGNsaWNrJC5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAgICAgdGhpcy5vcGVuT24gPT0gJ3RvZ2dsZScgPyB0aGlzLnRvZ2dsZSgpIDogdGhpcy5vcGVuKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgLy9cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIGJpbmRPdmVybGF5RXZlbnRzKCkge1xuICAgIHRoaXMucmVtb3ZlT3ZlcmxheUV2ZW50cygpO1xuICAgIHRoaXMuX292ZXJsYXlFdmVudHMuYXR0YWNoID0gdGhpcy5fb3ZlcmxheVJlZi5hdHRhY2htZW50cygpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5vcGVuT24gPT0gJ2hvdmVyJykge1xuICAgICAgICB0aGlzLl9vdmVybGF5UmVmLm92ZXJsYXlFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCB0aGlzLl9oYW5kbGVNb3VzZUVudGVyLmJpbmQodGhpcykpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuY2xvc2VPbiA9PSAnbGVhdmUnKSB7XG4gICAgICAgIHRoaXMuX292ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIHRoaXMuX2hhbmRsZU1vdXNlTGVhdmUuYmluZCh0aGlzKSk7XG4gICAgICB9XG4gICAgICAvL1xuICAgICAgdGhpcy5fb3ZlcmxheUV2ZW50cy5vdXRzaWRlID0gdGhpcy5fb3ZlcmxheVJlZi5fb3V0c2lkZVBvaW50ZXJFdmVudHMuc3Vic2NyaWJlKChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGVsID0gZS50YXJnZXQgYXMgRWxlbWVudDtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuY2xvc2VPbiA9PSAnY2xpY2tPdXQnICYmXG4gICAgICAgICAgdGhpcy5pc09wZW4gJiZcbiAgICAgICAgICAhdGhpcy5fdGFyZ2V0LmNvbnRhaW5zKGVsKSAmJlxuICAgICAgICAgICF0aGlzLl9vdmVybGF5UmVmPy5vdmVybGF5RWxlbWVudD8uY29udGFpbnMoZWwpXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICAvL1xuXG4gICAgICB0aGlzLl9vdmVybGF5RXZlbnRzLnNjcm9sbCA9IHRoaXMuX3BsYXRmb3JtLnNjcm9sbC5zdWJzY3JpYmUoKGMpID0+IHtcbiAgICAgICAgLy9fX2F4Q29udGV4dF9fXG4gICAgICAgIGNvbnN0IGVsID0gYy5uYXRpdmVFdmVudC50YXJnZXQgYXMgRWxlbWVudDtcbiAgICAgICAgaWYgKCF0aGlzLmlzQWN0aW9uc2hlZXRTdHlsZSAmJiBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSUQpKSB7XG4gICAgICAgICAgaWYgKGVsID09ICh0aGlzLmRvY3VtZW50IGFzIGFueSkpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZWw/LmNsb3Nlc3QgJiZcbiAgICAgICAgICAgICFlbC5jbG9zZXN0KCcuYXgtb3ZlcmxheS1wYW5lJykgJiZcbiAgICAgICAgICAgICF0aGlzLl90YXJnZXQuY29udGFpbnMoZWwpICYmXG4gICAgICAgICAgICAhdGhpcy5fb3ZlcmxheVJlZj8ub3ZlcmxheUVsZW1lbnQ/LmNvbnRhaW5zKGVsKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHJlbW92ZU92ZXJsYXlFdmVudHMoKSB7XG4gICAgdGhpcy5fb3ZlcmxheVJlZj8ub3ZlcmxheUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIHRoaXMuX2hhbmRsZU1vdXNlRW50ZXIuYmluZCh0aGlzKSk7XG4gICAgdGhpcy5fb3ZlcmxheVJlZj8ub3ZlcmxheUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIHRoaXMuX2hhbmRsZU1vdXNlTGVhdmUuYmluZCh0aGlzKSk7XG4gICAgT2JqZWN0LmVudHJpZXModGhpcy5fb3ZlcmxheUV2ZW50cykuZm9yRWFjaCgoZSkgPT4ge1xuICAgICAgZVsxXS51bnN1YnNjcmliZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgLy9cbiAgLyoqXG4gICAqIFRvZ2dsZXMgdGhlIGNvbXBvbmVudCdzIG9wZW4gc3RhdGUuXG4gICAqL1xuICB0b2dnbGUoKSB7XG4gICAgdGhpcy5pc09wZW4gPyB0aGlzLmNsb3NlKCkgOiB0aGlzLm9wZW4oKTtcbiAgfVxuXG4gIC8vXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIGNvbXBvbmVudCBpZiBpdCdzIG9wZW4sIGRldGFjaGVzIHRoZSBvdmVybGF5LCByZXN0b3JlcyBmb2N1cywgYW5kIGVtaXRzIHRoZSBjbG9zZWQgZXZlbnQuXG4gICAqL1xuICBjbG9zZSgpIHtcbiAgICBpZiAoIXRoaXMuaXNPcGVuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX292ZXJsYXlSZWY/LmRldGFjaCgpO1xuICAgIHRoaXMucmVzdG9yZUZvY3VzKCk7XG4gICAgdGhpcy5fZW1pdE9uQ2xvc2VkRXZlbnQoKTtcbiAgICB0aGlzLm9uS2V5RG93bkxpc3RlbmVyRm4oKTtcbiAgfVxuXG4gIC8vXG4gIC8qKlxuICAgKiBPcGVucyB0aGUgY29tcG9uZW50IGlmIGl0J3Mgbm90IGFscmVhZHkgb3Blbiwgc2F2ZXMgZm9jdXMsIG9wZW5zIHRoZSBvdmVybGF5LCBhbmQgZW1pdHMgdGhlIG9wZW5lZCBldmVudC5cbiAgICovXG4gIG9wZW4oKSB7XG4gICAgaWYgKHRoaXMuaXNPcGVuIHx8IHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JRCkpIHtcbiAgICAgIHRoaXMub25LZXlEb3duTGlzdGVuZXJGbiA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuZG9jdW1lbnQuYm9keSwgJ2tleWRvd24nLCAoZSkgPT4ge1xuICAgICAgICBpZiAoZS5rZXkgPT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnNhdmVGb2N1cygpO1xuICAgIHRoaXMub3Blbk92ZXJsYXlJbnRlcm5hbCgpO1xuICAgIHRoaXMuX2VtaXRPbk9wZW5lZEV2ZW50KCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHNhdmVGb2N1cygpIHtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlEKSkge1xuICAgICAgdGhpcy5fbGFzdEFjdGl2ZUVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgRWxlbWVudDtcbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHJlc3RvcmVGb2N1cygpIHtcbiAgICBpZiAodGhpcy5fbGFzdEFjdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgaWYgKHRoaXMuX2xhc3RBY3RpdmVFbGVtZW50Py5mb2N1cykge1xuICAgICAgICB0aGlzLl9sYXN0QWN0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgb3Blbk92ZXJsYXlJbnRlcm5hbCgpIHtcbiAgICBjb25zdCB0YXJnZXRSZWYgPSB0aGlzLl90YXJnZXQ7XG4gICAgaWYgKCF0YXJnZXRSZWYpIHJldHVybjtcblxuICAgIC8vaWYgKCF0aGlzLl9vdmVybGF5UmVmKSB7XG4gICAgaWYgKHRoaXMuaXNBY3Rpb25zaGVldFN0eWxlKSB7XG4gICAgICB0aGlzLl9vdmVybGF5UmVmID0gdGhpcy5fb3ZlcmxheS5jcmVhdGUoe1xuICAgICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkuYm90dG9tKCkuY2VudGVySG9yaXpvbnRhbGx5KCksXG4gICAgICAgIGRpc3Bvc2VPbk5hdmlnYXRpb246IHRydWUsXG4gICAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuYmxvY2soKSxcbiAgICAgICAgcGFuZWxDbGFzczogW1xuICAgICAgICAgICdheC1hY3Rpb25zaGVldC1iYXNlJyxcbiAgICAgICAgICAnYXgtYW5pbWF0ZS1zbGlkZUluVXAnLFxuICAgICAgICAgICdheC1hbmltYXRlLWZhc3RlcicsXG4gICAgICAgICAgdGhpcy5wYW5lbENsYXNzID8gdGhpcy5wYW5lbENsYXNzIDogdGhpcy4jcGxhdGZvcm0uaXNEYXJrKCkgPyAnYXgtZGFyaycgOiAnJyxcbiAgICAgICAgXSxcbiAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fb3ZlcmxheVJlZiA9IHRoaXMuX292ZXJsYXkuY3JlYXRlKHtcbiAgICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmZsZXhpYmxlQ29ubmVjdGVkVG8odGFyZ2V0UmVmKS53aXRoUG9zaXRpb25zKHRoaXMuX3BsYWNlbWVudHMpLFxuICAgICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5fb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLm5vb3AoKSxcbiAgICAgICAgZGlzcG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSxcbiAgICAgICAgcGFuZWxDbGFzczogWydheC1hbmltYXRlLWZhZGVJbicsICdheC1hbmltYXRlLWZhc3RlcicsIHRoaXMuI3BsYXRmb3JtLmlzRGFyaygpID8gJ2F4LWRhcmsnIDogJyddLFxuICAgICAgICBtYXhIZWlnaHQ6ICd1bnNldCcsXG4gICAgICAgIGhhc0JhY2tkcm9wOiB0aGlzLmhhc0JhY2tkcm9wLFxuICAgICAgICBiYWNrZHJvcENsYXNzOiBbdGhpcy5iYWNrZHJvcENsYXNzIHx8ICdjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCddLFxuICAgICAgICBkaXJlY3Rpb246IEFYSHRtbFV0aWwuaXNSdGwodGhpcy5nZXRIb3N0RWxlbWVudCgpKSA/ICdydGwnIDogJ2x0cicsXG4gICAgICAgIHdpZHRoOiB0aGlzLndpZHRoKCksXG4gICAgICB9KTtcbiAgICAgIC8vIHRoaXMuX292ZXJsYXlSZWYuc2V0RGlyZWN0aW9uKClcbiAgICB9XG5cbiAgICAvL1xuICAgIHRoaXMuYmluZE92ZXJsYXlFdmVudHMoKTtcbiAgICAvL31cbiAgICAvL1xuICAgIGlmICh0aGlzLmNvbnRlbnQgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xuICAgICAgdGhpcy5fcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuY29udGVudCwgdGhpcy5nZXRWaWV3Q29udGFpbmVyKCksIHtcbiAgICAgICAgJGltcGxpY2l0OiB0aGlzLmNvbnRleHQsXG4gICAgICAgIHJlZjogdGhpcyxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5fb3ZlcmxheVJlZj8uYXR0YWNoKHRoaXMuX3BvcnRhbCk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdGhpcy5jb250ZW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzLl9wb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKHRoaXMuY29udGVudCk7XG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYgPSB0aGlzLl9vdmVybGF5UmVmPy5hdHRhY2godGhpcy5fcG9ydGFsKTtcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLCB0aGlzLmNvbnRleHQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9wb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5fYmFzZVRlbXBsYXRlLCB0aGlzLmdldFZpZXdDb250YWluZXIoKSwge1xuICAgICAgICAkaW1wbGljaXQ6IHRoaXMuY29udGV4dCxcbiAgICAgICAgcmVmOiB0aGlzLFxuICAgICAgfSk7XG4gICAgICB0aGlzLl9vdmVybGF5UmVmPy5hdHRhY2godGhpcy5fcG9ydGFsKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBvdmVybGF5IGlzIGN1cnJlbnRseSBvcGVuLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICovXG4gIGdldCBpc09wZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX292ZXJsYXlSZWYgPyB0aGlzLl9vdmVybGF5UmVmLmhhc0F0dGFjaGVkKCkgOiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBhY3Rpb25zaGVldCBzdHlsZSBzaG91bGQgYmUgYXBwbGllZC5cbiAgICogQHJldHVybnMge2Jvb2xlYW59XG4gICAqL1xuICBnZXQgaXNBY3Rpb25zaGVldFN0eWxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9wbGF0Zm9ybS5pcygnU00nKSAmJiB0aGlzLmFkYXB0aXZpdHlFbmFibGVkO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSB1cGRhdGVQb3NpdGlvblN0cmF0ZWd5KCk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldFJlZiA9IHRoaXMuX3RhcmdldDtcbiAgICBpZiAoIXRhcmdldFJlZikgcmV0dXJuO1xuICAgIGxldCBzdHJhdGVneTogUG9zaXRpb25TdHJhdGVneTtcbiAgICBpZiAodGhpcy5pc0FjdGlvbnNoZWV0U3R5bGUpIHtcbiAgICAgIHN0cmF0ZWd5ID0gdGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLmJvdHRvbSgpLmNlbnRlckhvcml6b250YWxseSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHJhdGVneSA9IHRoaXMuX292ZXJsYXkucG9zaXRpb24oKS5mbGV4aWJsZUNvbm5lY3RlZFRvKHRhcmdldFJlZikud2l0aFBvc2l0aW9ucyh0aGlzLl9wbGFjZW1lbnRzKTtcbiAgICB9XG4gICAgdGhpcy5fb3ZlcmxheVJlZj8udXBkYXRlUG9zaXRpb25TdHJhdGVneShzdHJhdGVneSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHVwZGF0ZU9mZnNldCgpIHtcbiAgICB0aGlzLl9wbGFjZW1lbnRzPy5mb3JFYWNoKChwKSA9PiB7XG4gICAgICBpZiAodGhpcy5vZmZzZXRZICE9IG51bGwpIHAub2Zmc2V0WSA9IHRoaXMub2Zmc2V0WTtcbiAgICAgIGlmICh0aGlzLm9mZnNldFggIT0gbnVsbCkgcC5vZmZzZXRYID0gdGhpcy5vZmZzZXRYO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBvdmVybGF5IGFuZCBmb2N1c2VzIG9uIGl0LlxuICAgKi9cbiAgcHVibGljIHVwZGF0ZVBvc2l0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX292ZXJsYXlSZWY/LnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgdGhpcy5mb2N1cygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvY3VzZXMgdGhlIG92ZXJsYXkgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBmb2N1cygpOiB2b2lkIHtcbiAgICAvL1RPRE86IG5lZWQgdGhpcz8/XG4gIH1cbiAgLy9cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAvLyB0aGlzLnBsYXRmb3JtU2VydmljZS5kaXJlY3Rpb25DaGFuZ2Uuc3Vic2NyaWJlKChjKSA9PiB7XG4gICAgLy8gICB0aGlzLmlzUnRsID0gYy5kYXRhID09ICdydGwnO1xuICAgIC8vIH0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5yZW1vdmVUYXJnZXRFdmVudHMoKTtcbiAgICB0aGlzLnJlbW92ZU92ZXJsYXlFdmVudHMoKTtcbiAgICB0aGlzLl9vdmVybGF5UmVmPy5kZXRhY2goKTtcbiAgICB0aGlzLl9vdmVybGF5UmVmPy5kaXNwb3NlKCk7XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjYmFzZVRlbXBsYXRlPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuIl19","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXPopoverComponent } from './popover.component';\nimport * as i0 from \"@angular/core\";\nexport class AXPopoverModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXPopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.3\", ngImport: i0, type: AXPopoverModule, imports: [CommonModule, AXPopoverComponent], exports: [AXPopoverComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXPopoverModule, imports: [CommonModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXPopoverModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule, AXPopoverComponent],\n exports: [AXPopoverComponent],\n providers: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3BvcG92ZXIvc3JjL2xpYi9wb3BvdmVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFPekQsTUFBTSxPQUFPLGVBQWU7OEdBQWYsZUFBZTsrR0FBZixlQUFlLFlBSmhCLFlBQVksRUFBRSxrQkFBa0IsYUFDaEMsa0JBQWtCOytHQUdqQixlQUFlLFlBSmhCLFlBQVk7OzJGQUlYLGVBQWU7a0JBTDNCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGtCQUFrQixDQUFDO29CQUMzQyxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDN0IsU0FBUyxFQUFFLEVBQUU7aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJy4vcG9wb3Zlci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBWFBvcG92ZXJDb21wb25lbnRdLFxuICBleHBvcnRzOiBbQVhQb3BvdmVyQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQb3BvdmVyTW9kdWxlIHt9XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtcG9wb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvcG9wb3Zlci9zcmMvYWNvcmV4LWNvbXBvbmVudHMtcG9wb3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"acorex-components-popover.mjs","sources":["../tmp-esm2022/popover/lib/popover.component.js","../tmp-esm2022/popover/lib/popover.module.js","../tmp-esm2022/popover/acorex-components-popover.js"],"sourcesContent":["import { AXComponent, AXFocusableComponent, MXBaseComponent, convertToPlacement, } from '@acorex/cdk/common';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXHtmlUtil } from '@acorex/core/utils';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport { isPlatformBrowser } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, DOCUMENT, ElementRef, EventEmitter, Input, Output, PLATFORM_ID, Renderer2, TemplateRef, ViewChild, ViewEncapsulation, inject, input, } from '@angular/core';\nimport { Subject, debounceTime, delay, fromEvent } from 'rxjs';\nimport * as i0 from \"@angular/core\";\n/**\n * @category Components\n * A popover component with custom encapsulation and change detection settings.\n */\nexport class AXPopoverComponent extends MXBaseComponent {\n constructor() {\n super(...arguments);\n this.#platform = inject(AXPlatform);\n this.document = inject(DOCUMENT);\n this.platformID = inject(PLATFORM_ID);\n this.renderer = inject(Renderer2);\n this.onKeyDownListenerFn = () => undefined;\n /** @ignore */\n this._platform = inject(AXPlatform);\n /** @ignore */\n this._overlay = inject(Overlay);\n /** @ignore */\n this._isMouseOverButton = false;\n /** @ignore */\n this._isMouseOverTooltip = false;\n /** @ignore */\n this._targetEvents = {};\n /** @ignore */\n this._overlayEvents = {};\n /** @ignore */\n this.resize$ = new Subject();\n //\n /** @ignore */\n this._disabled = false;\n this.width = input('auto', ...(ngDevMode ? [{ debugName: \"width\" }] : []));\n //\n /** @ignore */\n this._offsetX = 0;\n //\n /** @ignore */\n this._offsetY = 0;\n //\n /** @ignore */\n this._defautPlacements = convertToPlacement('bottom-start');\n /** @ignore */\n this._placements = [...this._defautPlacements];\n /** @ignore */\n this._placement = this._placements;\n //\n /** @ignore */\n this._openOn = 'toggle';\n //\n /** @ignore */\n this._closeOn = 'clickOut';\n //\n /**\n * Determines if a backdrop should be displayed behind the popover.\n */\n this.hasBackdrop = false;\n //\n /**\n * Delay in milliseconds before the popover opens after a trigger event.\n */\n this.openAfter = 200;\n /**\n * Delay in milliseconds before the popover closes after a trigger event.\n */\n this.closeAfter = 200;\n /**\n * Enables or disables adaptivity.\n */\n this.adaptivityEnabled = false;\n //\n /**\n * Emits when the component is opened.\n * @event\n */\n this.onOpened = new EventEmitter();\n /**\n * Emits when the component is closed.\n * @event\n */\n this.onClosed = new EventEmitter();\n }\n #platform;\n /**\n * Gets or sets whether the popover is disabled.\n * When disabled, the popover will not open and will close if already open.\n */\n get disabled() {\n return this._disabled;\n }\n set disabled(v) {\n this._disabled = v;\n if (this._disabled && this.isOpen) {\n this.close();\n }\n }\n /**\n * Gets or sets the horizontal offset and updates it accordingly.\n */\n get offsetX() {\n return this._offsetX;\n }\n /**\n * Sets the horizontal offset and updates it with a callback.\n */\n set offsetX(v) {\n this.setOption({\n name: 'offsetX',\n value: v,\n afterCallback: () => {\n this.updateOffset();\n },\n });\n }\n /**\n * Vertical offset with update callback.\n */\n get offsetY() {\n return this._offsetY;\n }\n /**\n * Sets the vertical offset and updates the component position.\n */\n set offsetY(v) {\n this.setOption({\n name: 'offsetY',\n value: v,\n afterCallback: () => {\n this.updateOffset();\n },\n });\n }\n /**\n * Gets or sets the target element, supporting Element, ElementRef, or MXBaseComponent.\n */\n get target() {\n return this._target;\n }\n /**\n * Sets the target element and updates event bindings.\n */\n set target(v) {\n this.removeTargetEvents();\n if (v instanceof Element)\n this._target = v;\n else if (v instanceof ElementRef)\n this._target = v.nativeElement;\n else if (typeof v?.getHostElement == 'function')\n this._target = v.getHostElement();\n //\n this.bindTargetEvents();\n }\n /**\n * Gets or sets the component's placement and updates position settings.\n */\n get placement() {\n return this._placement;\n }\n /**\n * Sets the component's placement and updates its position settings.\n */\n set placement(v) {\n this.setOption({\n name: 'placement',\n value: v,\n afterCallback: (o, n) => {\n const converted = convertToPlacement(n);\n this._placements = converted.length ? converted : this._defautPlacements;\n this.updateOffset();\n this.updatePositionStrategy();\n },\n });\n }\n /**\n * Gets the reference to the component.\n */\n get componentRef() {\n return this._componentRef;\n }\n /**\n * Gets or sets the trigger for opening the popover and updates target events.\n */\n get openOn() {\n return this._openOn;\n }\n /**\n * Sets the trigger for opening the popover and updates target events.\n */\n set openOn(v) {\n this.setOption({\n name: 'openOn',\n value: v,\n afterCallback: () => {\n this.bindTargetEvents();\n },\n });\n }\n /**\n * Gets or sets the trigger for closing the popover.\n */\n get closeOn() {\n return this._closeOn;\n }\n /**\n * Sets the trigger for closing the popover and rebinds target events.\n * @param v\n */\n set closeOn(v) {\n this.setOption({\n name: 'closeOn',\n value: v,\n afterCallback: () => {\n this.bindTargetEvents();\n },\n });\n }\n /** @ignore */\n _emitOnOpenedEvent() {\n this.onOpened.emit({\n component: this,\n htmlElement: this.getHostElement(),\n });\n }\n /** @ignore */\n _emitOnClosedEvent() {\n this.onClosed.emit({\n component: this,\n htmlElement: this.getHostElement(),\n });\n }\n //\n /** @ignore */\n _handleMouseEnter(e) {\n this._isMouseOverTooltip = true;\n }\n /** @ignore */\n _handleMouseLeave(e) {\n this._isMouseOverTooltip = false;\n setTimeout(() => {\n if (!this._isMouseOverButton && this.closeOn == 'leave') {\n this.close();\n }\n }, 250);\n }\n /** @ignore */\n removeTargetEvents() {\n Object.entries(this._targetEvents).forEach((e) => {\n e[1].unsubscribe();\n });\n }\n /** @ignore */\n bindTargetEvents() {\n this.removeTargetEvents();\n if (!this._target)\n return;\n const targetMouseEnter$ = fromEvent(this._target, 'mouseenter');\n const targetMouseLeave$ = fromEvent(this._target, 'mouseleave');\n if (this.openOn == 'hover') {\n this._targetEvents.mouseenter = targetMouseEnter$.pipe(delay(this.openAfter)).subscribe(() => {\n this._isMouseOverButton = true;\n this.open();\n });\n }\n if (this.closeOn == 'leave') {\n this._targetEvents.mouseleave = targetMouseLeave$.pipe(delay(this.closeAfter)).subscribe(() => {\n this._isMouseOverButton = false;\n if (!this._isMouseOverTooltip) {\n this.close();\n }\n });\n }\n if (this.openOn === 'click' || this.openOn === 'toggle') {\n const click$ = fromEvent(this._target, 'click');\n this._targetEvents.click = click$.subscribe((e) => {\n this.openOn == 'toggle' ? this.toggle() : this.open();\n });\n }\n }\n //\n /** @ignore */\n bindOverlayEvents() {\n this.removeOverlayEvents();\n this._overlayEvents.attach = this._overlayRef.attachments().subscribe(() => {\n this.initializeResizeObserver();\n if (this.openOn == 'hover') {\n this._overlayRef.overlayElement.addEventListener('mouseenter', this._handleMouseEnter.bind(this));\n }\n if (this.closeOn == 'leave') {\n this._overlayRef.overlayElement.addEventListener('mouseleave', this._handleMouseLeave.bind(this));\n }\n //\n this._overlayEvents.outside = this._overlayRef._outsidePointerEvents.subscribe((e) => {\n const el = e.target;\n if (this.closeOn == 'clickOut' &&\n this.isOpen &&\n !this._target.contains(el) &&\n !this._overlayRef?.overlayElement?.contains(el)) {\n this.close();\n }\n });\n //\n this._overlayEvents.scroll = this._platform.scroll.subscribe((c) => {\n //__axContext__\n const el = c.nativeEvent.target;\n if (!this.isActionsheetStyle && isPlatformBrowser(this.platformID)) {\n if (el == this.document) {\n this.close();\n return;\n }\n if (el?.closest &&\n !el.closest('.ax-overlay-pane') &&\n !this._target.contains(el) &&\n !this._overlayRef?.overlayElement?.contains(el)) {\n this.close();\n }\n }\n });\n });\n }\n /** @ignore */\n removeOverlayEvents() {\n this._overlayRef?.overlayElement.removeEventListener('mouseenter', this._handleMouseEnter.bind(this));\n this._overlayRef?.overlayElement.addEventListener('mouseleave', this._handleMouseLeave.bind(this));\n Object.entries(this._overlayEvents).forEach((e) => {\n e[1].unsubscribe();\n });\n }\n //\n /**\n * Toggles the component's open state.\n */\n toggle() {\n this.isOpen ? this.close() : this.open();\n }\n //\n /**\n * Closes the component if it's open, detaches the overlay, restores focus, and emits the closed event.\n */\n close() {\n if (!this.isOpen) {\n return;\n }\n this.disconnectResizeObserver();\n this._overlayRef?.detach();\n this.restoreFocus();\n this._emitOnClosedEvent();\n this.onKeyDownListenerFn();\n }\n //\n /**\n * Opens the component if it's not already open, saves focus, opens the overlay, and emits the opened event.\n */\n open() {\n if (this.isOpen || this.disabled) {\n return;\n }\n if (isPlatformBrowser(this.platformID)) {\n this.onKeyDownListenerFn = this.renderer.listen(this.document.body, 'keydown', (e) => {\n if (e.key == 'Escape') {\n this.close();\n }\n });\n }\n this.saveFocus();\n this.openOverlayInternal();\n this._emitOnOpenedEvent();\n }\n /** @ignore */\n saveFocus() {\n if (isPlatformBrowser(this.platformID)) {\n this._lastActiveElement = this.document.activeElement;\n }\n }\n /** @ignore */\n restoreFocus() {\n if (this._lastActiveElement instanceof HTMLElement) {\n if (this._lastActiveElement?.focus) {\n this._lastActiveElement.focus();\n }\n }\n }\n /** @ignore */\n openOverlayInternal() {\n const targetRef = this._target;\n if (!targetRef)\n return;\n //if (!this._overlayRef) {\n if (this.isActionsheetStyle) {\n this._overlayRef = this._overlay.create({\n positionStrategy: this._overlay.position().global().bottom().centerHorizontally(),\n disposeOnNavigation: true,\n scrollStrategy: this._overlay.scrollStrategies.block(),\n panelClass: [\n 'ax-actionsheet-base',\n 'ax-animate-slideInUp',\n 'ax-animate-faster',\n this.panelClass ? this.panelClass : this.#platform.isDark() ? 'ax-dark' : '',\n ],\n hasBackdrop: true,\n width: '100%',\n });\n }\n else {\n this._overlayRef = this._overlay.create({\n positionStrategy: this._overlay.position().flexibleConnectedTo(targetRef).withPositions(this._placements),\n scrollStrategy: this._overlay.scrollStrategies.noop(),\n disposeOnNavigation: true,\n panelClass: ['ax-animate-fadeIn', 'ax-animate-faster', this.#platform.isDark() ? 'ax-dark' : ''],\n maxHeight: 'unset',\n hasBackdrop: this.hasBackdrop,\n backdropClass: [this.backdropClass || 'cdk-overlay-transparent-backdrop'],\n direction: AXHtmlUtil.isRtl(this.getHostElement()) ? 'rtl' : 'ltr',\n width: this.width(),\n });\n // this._overlayRef.setDirection()\n }\n //\n this.bindOverlayEvents();\n //}\n //\n if (this.content instanceof TemplateRef) {\n this._portal = new TemplatePortal(this.content, this.getViewContainer(), {\n $implicit: this.context,\n ref: this,\n });\n this._overlayRef?.attach(this._portal);\n }\n else if (typeof this.content === 'function') {\n this._portal = new ComponentPortal(this.content);\n this._componentRef = this._overlayRef?.attach(this._portal);\n Object.assign(this._componentRef.instance, this.context);\n }\n else {\n this._portal = new TemplatePortal(this._baseTemplate, this.getViewContainer(), {\n $implicit: this.context,\n ref: this,\n });\n this._overlayRef?.attach(this._portal);\n }\n }\n /**\n * Checks if the overlay is currently open.\n * @returns {boolean}\n */\n get isOpen() {\n return this._overlayRef ? this._overlayRef.hasAttached() : false;\n }\n /**\n * Determines if the actionsheet style should be applied.\n * @returns {boolean}\n */\n get isActionsheetStyle() {\n return this._platform.is('SM') && this.adaptivityEnabled;\n }\n /** @ignore */\n updatePositionStrategy() {\n const targetRef = this._target;\n if (!targetRef)\n return;\n let strategy;\n if (this.isActionsheetStyle) {\n strategy = this._overlay.position().global().bottom().centerHorizontally();\n }\n else {\n strategy = this._overlay.position().flexibleConnectedTo(targetRef).withPositions(this._placements);\n }\n this._overlayRef?.updatePositionStrategy(strategy);\n }\n /** @ignore */\n updateOffset() {\n this._placements?.forEach((p) => {\n if (this.offsetY != null)\n p.offsetY = this.offsetY;\n if (this.offsetX != null)\n p.offsetX = this.offsetX;\n });\n }\n /**\n * Updates the position of the overlay and focuses on it.\n */\n updatePosition() {\n this._overlayRef?.updatePosition();\n this.focus();\n }\n /**\n * Focuses the overlay element.\n */\n focus() {\n //TODO: need this??\n }\n /** @ignore */\n initializeResizeObserver() {\n if (!isPlatformBrowser(this.platformID) || !this._overlayRef?.overlayElement) {\n return;\n }\n this.disconnectResizeObserver();\n this.resizeObserver = new ResizeObserver(() => {\n this.resize$.next();\n });\n this.resizeObserver.observe(this._overlayRef.overlayElement);\n }\n /** @ignore */\n disconnectResizeObserver() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n }\n //\n ngOnInit() {\n super.ngOnInit();\n // this.platformService.directionChange.subscribe((c) => {\n // this.isRtl = c.data == 'rtl';\n // });\n this.resize$.pipe(debounceTime(50)).subscribe(() => {\n if (this.isOpen) {\n this.updatePosition();\n }\n });\n }\n /** @ignore */\n ngOnDestroy() {\n this.disconnectResizeObserver();\n this.resize$.complete();\n this.removeTargetEvents();\n this.removeOverlayEvents();\n this._overlayRef?.detach();\n this._overlayRef?.dispose();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXPopoverComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.3\", type: AXPopoverComponent, isStandalone: true, selector: \"ax-popover\", inputs: { width: { classPropertyName: \"width\", publicName: \"width\", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: false, isRequired: false, transformFunction: null }, offsetX: { classPropertyName: \"offsetX\", publicName: \"offsetX\", isSignal: false, isRequired: false, transformFunction: null }, offsetY: { classPropertyName: \"offsetY\", publicName: \"offsetY\", isSignal: false, isRequired: false, transformFunction: null }, target: { classPropertyName: \"target\", publicName: \"target\", isSignal: false, isRequired: false, transformFunction: null }, placement: { classPropertyName: \"placement\", publicName: \"placement\", isSignal: false, isRequired: false, transformFunction: null }, content: { classPropertyName: \"content\", publicName: \"content\", isSignal: false, isRequired: false, transformFunction: null }, openOn: { classPropertyName: \"openOn\", publicName: \"openOn\", isSignal: false, isRequired: false, transformFunction: null }, closeOn: { classPropertyName: \"closeOn\", publicName: \"closeOn\", isSignal: false, isRequired: false, transformFunction: null }, hasBackdrop: { classPropertyName: \"hasBackdrop\", publicName: \"hasBackdrop\", isSignal: false, isRequired: false, transformFunction: null }, openAfter: { classPropertyName: \"openAfter\", publicName: \"openAfter\", isSignal: false, isRequired: false, transformFunction: null }, closeAfter: { classPropertyName: \"closeAfter\", publicName: \"closeAfter\", isSignal: false, isRequired: false, transformFunction: null }, backdropClass: { classPropertyName: \"backdropClass\", publicName: \"backdropClass\", isSignal: false, isRequired: false, transformFunction: null }, panelClass: { classPropertyName: \"panelClass\", publicName: \"panelClass\", isSignal: false, isRequired: false, transformFunction: null }, adaptivityEnabled: { classPropertyName: \"adaptivityEnabled\", publicName: \"adaptivityEnabled\", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onOpened: \"onOpened\", onClosed: \"onClosed\" }, providers: [\n { provide: AXFocusableComponent, useExisting: AXPopoverComponent },\n { provide: AXComponent, useExisting: AXPopoverComponent },\n ], viewQueries: [{ propertyName: \"_baseTemplate\", first: true, predicate: [\"baseTemplate\"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: \"<ng-template #baseTemplate>\\n <ng-content></ng-content>\\n</ng-template>\\n\", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXPopoverComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-popover', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [\n { provide: AXFocusableComponent, useExisting: AXPopoverComponent },\n { provide: AXComponent, useExisting: AXPopoverComponent },\n ], template: \"<ng-template #baseTemplate>\\n <ng-content></ng-content>\\n</ng-template>\\n\" }]\n }], propDecorators: { disabled: [{\n type: Input\n }], offsetX: [{\n type: Input\n }], offsetY: [{\n type: Input\n }], target: [{\n type: Input\n }], placement: [{\n type: Input\n }], _baseTemplate: [{\n type: ViewChild,\n args: ['baseTemplate', { static: true }]\n }], content: [{\n type: Input\n }], openOn: [{\n type: Input\n }], closeOn: [{\n type: Input\n }], hasBackdrop: [{\n type: Input\n }], openAfter: [{\n type: Input\n }], closeAfter: [{\n type: Input\n }], backdropClass: [{\n type: Input\n }], panelClass: [{\n type: Input\n }], adaptivityEnabled: [{\n type: Input\n }], onOpened: [{\n type: Output\n }], onClosed: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3BvcG92ZXIvc3JjL2xpYi9wb3BvdmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvcG9wb3Zlci9zcmMvbGliL3BvcG92ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFdBQVcsRUFHWCxvQkFBb0IsRUFFcEIsZUFBZSxFQUNmLGtCQUFrQixHQUNuQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLE9BQU8sRUFBZ0MsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZUFBZSxFQUF5QixjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxRQUFRLEVBQ1IsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxFQUNOLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFnQixZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFNN0U7OztHQUdHO0FBV0gsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGVBQWU7SUFWdkQ7O1FBV0UsY0FBUyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztR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S0FBSztnQkF1Q0ssU0FBUztzQkFMbkIsS0FBSztnQkFnRE4sYUFBYTtzQkFEWixTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBUTNDLE9BQU87c0JBRE4sS0FBSztnQkFlSyxNQUFNO3NCQUxoQixLQUFLO2dCQThCSyxPQUFPO3NCQURqQixLQUFLO2dCQXlCTixXQUFXO3NCQURWLEtBQUs7Z0JBUU4sU0FBUztzQkFEUixLQUFLO2dCQU9OLFVBQVU7c0JBRFQsS0FBSztnQkFPTixhQUFhO3NCQURaLEtBQUs7Z0JBT04sVUFBVTtzQkFEVCxLQUFLO2dCQU9OLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFTTixRQUFRO3NCQURQLE1BQU07Z0JBUVAsUUFBUTtzQkFEUCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhDb21wb25lbnQsXG4gIEFYQ29ubmVjdGVkUG9zaXRpb24sXG4gIEFYRXZlbnQsXG4gIEFYRm9jdXNhYmxlQ29tcG9uZW50LFxuICBBWFBsYWNlbWVudFR5cGUsXG4gIE1YQmFzZUNvbXBvbmVudCxcbiAgY29udmVydFRvUGxhY2VtZW50LFxufSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhQbGF0Zm9ybSB9IGZyb20gJ0BhY29yZXgvY29yZS9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBBWEh0bWxVdGlsIH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlSZWYsIFBvc2l0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwsIENvbXBvbmVudFR5cGUsIFBvcnRhbCwgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudFJlZixcbiAgRE9DVU1FTlQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBQTEFURk9STV9JRCxcbiAgUmVuZGVyZXIyLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGRlYm91bmNlVGltZSwgZGVsYXksIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgdHlwZSBBWFBvcG92ZXJPcGVuVHJpZ2dlciA9ICdtYW51YWwnIHwgJ2NsaWNrJyB8ICdob3ZlcicgfCAndG9nZ2xlJztcblxuZXhwb3J0IHR5cGUgQVhQb3BvdmVyQ2xvc2VUcmlnZ2VyID0gJ21hbnVhbCcgfCAnY2xpY2tPdXQnIHwgJ2xlYXZlJztcblxuLyoqXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICogQSBwb3BvdmVyIGNvbXBvbmVudCB3aXRoIGN1c3RvbSBlbmNhcHN1bGF0aW9uIGFuZCBjaGFuZ2UgZGV0ZWN0aW9uIHNldHRpbmdzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1wb3BvdmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvcG92ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBBWEZvY3VzYWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYUG9wb3ZlckNvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFBvcG92ZXJDb21wb25lbnQgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQb3BvdmVyQ29tcG9uZW50IGV4dGVuZHMgTVhCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgI3BsYXRmb3JtID0gaW5qZWN0KEFYUGxhdGZvcm0pO1xuICBwcml2YXRlIGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgcHJpdmF0ZSBwbGF0Zm9ybUlEID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgcHJpdmF0ZSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuXG4gIHByaXZhdGUgb25LZXlEb3duTGlzdGVuZXJGbiA9ICgpID0+IHVuZGVmaW5lZDtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9wbGF0Zm9ybTogQVhQbGF0Zm9ybSA9IGluamVjdChBWFBsYXRmb3JtKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9vdmVybGF5OiBPdmVybGF5ID0gaW5qZWN0KE92ZXJsYXkpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX292ZXJsYXlSZWYhOiBPdmVybGF5UmVmO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX2lzTW91c2VPdmVyQnV0dG9uID0gZmFsc2U7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfaXNNb3VzZU92ZXJUb29sdGlwID0gZmFsc2U7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfbGFzdEFjdGl2ZUVsZW1lbnQ6IEVsZW1lbnQ7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfdGFyZ2V0RXZlbnRzOiB7XG4gICAgbW91c2VlbnRlcj86IFN1YnNjcmlwdGlvbjtcbiAgICBtb3VzZWxlYXZlPzogU3Vic2NyaXB0aW9uO1xuICAgIGNsaWNrPzogU3Vic2NyaXB0aW9uO1xuICB9ID0ge307XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfb3ZlcmxheUV2ZW50czoge1xuICAgIGF0dGFjaD86IFN1YnNjcmlwdGlvbjtcbiAgICBkZXRhY2g/OiBTdWJzY3JpcHRpb247XG4gICAgc2Nyb2xsPzogU3Vic2NyaXB0aW9uO1xuICAgIG91dHNpZGU/OiBTdWJzY3JpcHRpb247XG4gIH0gPSB7fTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHJlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSByZXNpemUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvL1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgd2lkdGggPSBpbnB1dDxzdHJpbmc+KCdhdXRvJyk7XG5cbiAgLyoqXG4gICAqIEdldHMgb3Igc2V0cyB3aGV0aGVyIHRoZSBwb3BvdmVyIGlzIGRpc2FibGVkLlxuICAgKiBXaGVuIGRpc2FibGVkLCB0aGUgcG9wb3ZlciB3aWxsIG5vdCBvcGVuIGFuZCB3aWxsIGNsb3NlIGlmIGFscmVhZHkgb3Blbi5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodjogYm9vbGVhbikge1xuICAgIHRoaXMuX2Rpc2FibGVkID0gdjtcbiAgICBpZiAodGhpcy5fZGlzYWJsZWQgJiYgdGhpcy5pc09wZW4pIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICAvL1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX29mZnNldFggPSAwO1xuXG4gIC8qKlxuICAgKiBHZXRzIG9yIHNldHMgdGhlIGhvcml6b250YWwgb2Zmc2V0IGFuZCB1cGRhdGVzIGl0IGFjY29yZGluZ2x5LlxuICAgKi9cbiAgQElucHV0KClcblxuICAvKipcbiAgICogR2V0cyB0aGUgaG9yaXpvbnRhbCBvZmZzZXQgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgZ2V0IG9mZnNldFgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fb2Zmc2V0WDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBob3Jpem9udGFsIG9mZnNldCBhbmQgdXBkYXRlcyBpdCB3aXRoIGEgY2FsbGJhY2suXG4gICAqL1xuICBwdWJsaWMgc2V0IG9mZnNldFgodjogbnVtYmVyKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ29mZnNldFgnLFxuICAgICAgdmFsdWU6IHYsXG4gICAgICBhZnRlckNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlT2Zmc2V0KCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIC8vXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfb2Zmc2V0WSA9IDA7XG5cbiAgLyoqXG4gICAqIFZlcnRpY2FsIG9mZnNldCB3aXRoIHVwZGF0ZSBjYWxsYmFjay5cbiAgICovXG4gIEBJbnB1dCgpXG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHZlcnRpY2FsIG9mZnNldCBvZiB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGdldCBvZmZzZXRZKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX29mZnNldFk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdmVydGljYWwgb2Zmc2V0IGFuZCB1cGRhdGVzIHRoZSBjb21wb25lbnQgcG9zaXRpb24uXG4gICAqL1xuICBwdWJsaWMgc2V0IG9mZnNldFkodjogbnVtYmVyKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ29mZnNldFknLFxuICAgICAgdmFsdWU6IHYsXG4gICAgICBhZnRlckNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlT2Zmc2V0KCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLy9cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF90YXJnZXQhOiBFbGVtZW50O1xuXG4gIC8qKlxuICAgKiBHZXRzIG9yIHNldHMgdGhlIHRhcmdldCBlbGVtZW50LCBzdXBwb3J0aW5nIEVsZW1lbnQsIEVsZW1lbnRSZWYsIG9yIE1YQmFzZUNvbXBvbmVudC5cbiAgICovXG4gIEBJbnB1dCgpXG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnQgdGFyZ2V0IGVsZW1lbnQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHRhcmdldCgpOiBFbGVtZW50IHwgRWxlbWVudFJlZiB8IE1YQmFzZUNvbXBvbmVudCB7XG4gICAgcmV0dXJuIHRoaXMuX3RhcmdldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB0YXJnZXQgZWxlbWVudCBhbmQgdXBkYXRlcyBldmVudCBiaW5kaW5ncy5cbiAgICovXG4gIHB1YmxpYyBzZXQgdGFyZ2V0KHY6IEVsZW1lbnQgfCBFbGVtZW50UmVmIHwgTVhCYXNlQ29tcG9uZW50KSB7XG4gICAgdGhpcy5yZW1vdmVUYXJnZXRFdmVudHMoKTtcbiAgICBpZiAodiBpbnN0YW5jZW9mIEVsZW1lbnQpIHRoaXMuX3RhcmdldCA9IHY7XG4gICAgZWxzZSBpZiAodiBpbnN0YW5jZW9mIEVsZW1lbnRSZWYpIHRoaXMuX3RhcmdldCA9IHYubmF0aXZlRWxlbWVudDtcbiAgICBlbHNlIGlmICh0eXBlb2Ygdj8uZ2V0SG9zdEVsZW1lbnQgPT0gJ2Z1bmN0aW9uJykgdGhpcy5fdGFyZ2V0ID0gdi5nZXRIb3N0RWxlbWVudCgpO1xuICAgIC8vXG4gICAgdGhpcy5iaW5kVGFyZ2V0RXZlbnRzKCk7XG4gIH1cbiAgLy9cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9kZWZhdXRQbGFjZW1lbnRzOiBBWENvbm5lY3RlZFBvc2l0aW9uW10gPSBjb252ZXJ0VG9QbGFjZW1lbnQoJ2JvdHRvbS1zdGFydCcpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX3BsYWNlbWVudHM6IEFYQ29ubmVjdGVkUG9zaXRpb25bXSA9IFsuLi50aGlzLl9kZWZhdXRQbGFjZW1lbnRzXTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9wbGFjZW1lbnQ6IEFYUGxhY2VtZW50VHlwZSA9IHRoaXMuX3BsYWNlbWVudHM7XG5cbiAgLyoqXG4gICAqIEdldHMgb3Igc2V0cyB0aGUgY29tcG9uZW50J3MgcGxhY2VtZW50IGFuZCB1cGRhdGVzIHBvc2l0aW9uIHNldHRpbmdzLlxuICAgKi9cbiAgQElucHV0KClcblxuICAvKipcbiAgICogR2V0cyB0aGUgY3VycmVudCBwbGFjZW1lbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBnZXQgcGxhY2VtZW50KCk6IEFYUGxhY2VtZW50VHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuX3BsYWNlbWVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjb21wb25lbnQncyBwbGFjZW1lbnQgYW5kIHVwZGF0ZXMgaXRzIHBvc2l0aW9uIHNldHRpbmdzLlxuICAgKi9cbiAgcHVibGljIHNldCBwbGFjZW1lbnQodjogQVhQbGFjZW1lbnRUeXBlKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ3BsYWNlbWVudCcsXG4gICAgICB2YWx1ZTogdixcbiAgICAgIGFmdGVyQ2FsbGJhY2s6IChvLCBuKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnZlcnRlZCA9IGNvbnZlcnRUb1BsYWNlbWVudChuKTtcbiAgICAgICAgdGhpcy5fcGxhY2VtZW50cyA9IGNvbnZlcnRlZC5sZW5ndGggPyBjb252ZXJ0ZWQgOiB0aGlzLl9kZWZhdXRQbGFjZW1lbnRzO1xuICAgICAgICB0aGlzLnVwZGF0ZU9mZnNldCgpO1xuICAgICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3koKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgLy9cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9wb3J0YWw6IFBvcnRhbDx1bmtub3duPjtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9jb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjx1bmtub3duPjtcblxuICAvKipcbiAgICogR2V0cyB0aGUgcmVmZXJlbmNlIHRvIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNvbXBvbmVudFJlZigpOiBDb21wb25lbnRSZWY8dW5rbm93bj4ge1xuICAgIHJldHVybiB0aGlzLl9jb21wb25lbnRSZWY7XG4gIH1cblxuICAvKipcbiAgICogSG9sZHMgdGhlIGNvbnRleHQgZGF0YSBmb3IgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBjb250ZXh0OiB1bmtub3duO1xuXG4gIC8vXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQFZpZXdDaGlsZCgnYmFzZVRlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgX2Jhc2VUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG4gIC8vXG5cbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIGNvbnRlbnQgdG8gYmUgZGlzcGxheWVkLCB3aGljaCBjYW4gYmUgYSB0ZW1wbGF0ZSBvciBhIGNvbXBvbmVudC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGNvbnRlbnQ6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgQ29tcG9uZW50VHlwZTx1bmtub3duPjtcbiAgLy9cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9vcGVuT246IEFYUG9wb3Zlck9wZW5UcmlnZ2VyID0gJ3RvZ2dsZSc7XG5cbiAgLyoqXG4gICAqIEdldHMgb3Igc2V0cyB0aGUgdHJpZ2dlciBmb3Igb3BlbmluZyB0aGUgcG9wb3ZlciBhbmQgdXBkYXRlcyB0YXJnZXQgZXZlbnRzLlxuICAgKi9cbiAgQElucHV0KClcblxuICAvKipcbiAgICogR2V0cyB0aGUgdHJpZ2dlciBmb3Igb3BlbmluZyB0aGUgcG9wb3Zlci5cbiAgICovXG4gIHB1YmxpYyBnZXQgb3Blbk9uKCk6IEFYUG9wb3Zlck9wZW5UcmlnZ2VyIHtcbiAgICByZXR1cm4gdGhpcy5fb3Blbk9uO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHRyaWdnZXIgZm9yIG9wZW5pbmcgdGhlIHBvcG92ZXIgYW5kIHVwZGF0ZXMgdGFyZ2V0IGV2ZW50cy5cbiAgICovXG4gIHB1YmxpYyBzZXQgb3Blbk9uKHY6IEFYUG9wb3Zlck9wZW5UcmlnZ2VyKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ29wZW5PbicsXG4gICAgICB2YWx1ZTogdixcbiAgICAgIGFmdGVyQ2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgdGhpcy5iaW5kVGFyZ2V0RXZlbnRzKCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIC8vXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfY2xvc2VPbjogQVhQb3BvdmVyQ2xvc2VUcmlnZ2VyID0gJ2NsaWNrT3V0JztcblxuICAvKipcbiAgICogR2V0cyBvciBzZXRzIHRoZSB0cmlnZ2VyIGZvciBjbG9zaW5nIHRoZSBwb3BvdmVyLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBjbG9zZU9uKCk6IEFYUG9wb3ZlckNsb3NlVHJpZ2dlciB7XG4gICAgcmV0dXJuIHRoaXMuX2Nsb3NlT247XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdHJpZ2dlciBmb3IgY2xvc2luZyB0aGUgcG9wb3ZlciBhbmQgcmViaW5kcyB0YXJnZXQgZXZlbnRzLlxuICAgKiBAcGFyYW0gdlxuICAgKi9cbiAgcHVibGljIHNldCBjbG9zZU9uKHY6IEFYUG9wb3ZlckNsb3NlVHJpZ2dlcikge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdjbG9zZU9uJyxcbiAgICAgIHZhbHVlOiB2LFxuICAgICAgYWZ0ZXJDYWxsYmFjazogKCkgPT4ge1xuICAgICAgICB0aGlzLmJpbmRUYXJnZXRFdmVudHMoKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvL1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIGEgYmFja2Ryb3Agc2hvdWxkIGJlIGRpc3BsYXllZCBiZWhpbmQgdGhlIHBvcG92ZXIuXG4gICAqL1xuICBASW5wdXQoKVxuICBoYXNCYWNrZHJvcCA9IGZhbHNlO1xuICAvL1xuXG4gIC8qKlxuICAgKiBEZWxheSBpbiBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSBwb3BvdmVyIG9wZW5zIGFmdGVyIGEgdHJpZ2dlciBldmVudC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIG9wZW5BZnRlciA9IDIwMDtcblxuICAvKipcbiAgICogRGVsYXkgaW4gbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgcG9wb3ZlciBjbG9zZXMgYWZ0ZXIgYSB0cmlnZ2VyIGV2ZW50LlxuICAgKi9cbiAgQElucHV0KClcbiAgY2xvc2VBZnRlciA9IDIwMDtcblxuICAvKipcbiAgICogQ1NTIGNsYXNzIHRvIGFwcGx5IHRvIHRoZSBiYWNrZHJvcCBlbGVtZW50LlxuICAgKi9cbiAgQElucHV0KClcbiAgYmFja2Ryb3BDbGFzczogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDU1MgY2xhc3MgdG8gYXBwbHkgdG8gdGhlIGJhY2tkcm9wIGVsZW1lbnQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwYW5lbENsYXNzOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgb3IgZGlzYWJsZXMgYWRhcHRpdml0eS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGFkYXB0aXZpdHlFbmFibGVkID0gZmFsc2U7XG4gIC8vXG5cbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBvcGVuZWQuXG4gICAqIEBldmVudFxuICAgKi9cbiAgQE91dHB1dCgpXG4gIG9uT3BlbmVkOiBFdmVudEVtaXR0ZXI8QVhFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBjbG9zZWQuXG4gICAqIEBldmVudFxuICAgKi9cbiAgQE91dHB1dCgpXG4gIG9uQ2xvc2VkOiBFdmVudEVtaXR0ZXI8QVhFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYRXZlbnQ+KCk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfZW1pdE9uT3BlbmVkRXZlbnQoKSB7XG4gICAgdGhpcy5vbk9wZW5lZC5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGh0bWxFbGVtZW50OiB0aGlzLmdldEhvc3RFbGVtZW50KCksXG4gICAgfSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9lbWl0T25DbG9zZWRFdmVudCgpIHtcbiAgICB0aGlzLm9uQ2xvc2VkLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKSxcbiAgICB9KTtcbiAgfVxuICAvL1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBfaGFuZGxlTW91c2VFbnRlcihlOiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5faXNNb3VzZU92ZXJUb29sdGlwID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBfaGFuZGxlTW91c2VMZWF2ZShlOiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5faXNNb3VzZU92ZXJUb29sdGlwID0gZmFsc2U7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuX2lzTW91c2VPdmVyQnV0dG9uICYmIHRoaXMuY2xvc2VPbiA9PSAnbGVhdmUnKSB7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9LCAyNTApO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSByZW1vdmVUYXJnZXRFdmVudHMoKTogdm9pZCB7XG4gICAgT2JqZWN0LmVudHJpZXModGhpcy5fdGFyZ2V0RXZlbnRzKS5mb3JFYWNoKChlKSA9PiB7XG4gICAgICBlWzFdLnVuc3Vic2NyaWJlKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIGJpbmRUYXJnZXRFdmVudHMoKSB7XG4gICAgdGhpcy5yZW1vdmVUYXJnZXRFdmVudHMoKTtcbiAgICBpZiAoIXRoaXMuX3RhcmdldCkgcmV0dXJuO1xuICAgIGNvbnN0IHRhcmdldE1vdXNlRW50ZXIkID0gZnJvbUV2ZW50KHRoaXMuX3RhcmdldCwgJ21vdXNlZW50ZXInKTtcbiAgICBjb25zdCB0YXJnZXRNb3VzZUxlYXZlJCA9IGZyb21FdmVudCh0aGlzLl90YXJnZXQsICdtb3VzZWxlYXZlJyk7XG5cbiAgICBpZiAodGhpcy5vcGVuT24gPT0gJ2hvdmVyJykge1xuICAgICAgdGhpcy5fdGFyZ2V0RXZlbnRzLm1vdXNlZW50ZXIgPSB0YXJnZXRNb3VzZUVudGVyJC5waXBlKGRlbGF5KHRoaXMub3BlbkFmdGVyKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5faXNNb3VzZU92ZXJCdXR0b24gPSB0cnVlO1xuICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNsb3NlT24gPT0gJ2xlYXZlJykge1xuICAgICAgdGhpcy5fdGFyZ2V0RXZlbnRzLm1vdXNlbGVhdmUgPSB0YXJnZXRNb3VzZUxlYXZlJC5waXBlKGRlbGF5KHRoaXMuY2xvc2VBZnRlcikpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2lzTW91c2VPdmVyQnV0dG9uID0gZmFsc2U7XG4gICAgICAgIGlmICghdGhpcy5faXNNb3VzZU92ZXJUb29sdGlwKSB7XG4gICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcGVuT24gPT09ICdjbGljaycgfHwgdGhpcy5vcGVuT24gPT09ICd0b2dnbGUnKSB7XG4gICAgICBjb25zdCBjbGljayQgPSBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5fdGFyZ2V0LCAnY2xpY2snKTtcbiAgICAgIHRoaXMuX3RhcmdldEV2ZW50cy5jbGljayA9IGNsaWNrJC5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAgICAgdGhpcy5vcGVuT24gPT0gJ3RvZ2dsZScgPyB0aGlzLnRvZ2dsZSgpIDogdGhpcy5vcGVuKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgLy9cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIGJpbmRPdmVybGF5RXZlbnRzKCkge1xuICAgIHRoaXMucmVtb3ZlT3ZlcmxheUV2ZW50cygpO1xuICAgIHRoaXMuX292ZXJsYXlFdmVudHMuYXR0YWNoID0gdGhpcy5fb3ZlcmxheVJlZi5hdHRhY2htZW50cygpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmluaXRpYWxpemVSZXNpemVPYnNlcnZlcigpO1xuICAgICAgaWYgKHRoaXMub3Blbk9uID09ICdob3ZlcicpIHtcbiAgICAgICAgdGhpcy5fb3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgdGhpcy5faGFuZGxlTW91c2VFbnRlci5iaW5kKHRoaXMpKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmNsb3NlT24gPT0gJ2xlYXZlJykge1xuICAgICAgICB0aGlzLl9vdmVybGF5UmVmLm92ZXJsYXlFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCB0aGlzLl9oYW5kbGVNb3VzZUxlYXZlLmJpbmQodGhpcykpO1xuICAgICAgfVxuICAgICAgLy9cbiAgICAgIHRoaXMuX292ZXJsYXlFdmVudHMub3V0c2lkZSA9IHRoaXMuX292ZXJsYXlSZWYuX291dHNpZGVQb2ludGVyRXZlbnRzLnN1YnNjcmliZSgoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBlbCA9IGUudGFyZ2V0IGFzIEVsZW1lbnQ7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLmNsb3NlT24gPT0gJ2NsaWNrT3V0JyAmJlxuICAgICAgICAgIHRoaXMuaXNPcGVuICYmXG4gICAgICAgICAgIXRoaXMuX3RhcmdldC5jb250YWlucyhlbCkgJiZcbiAgICAgICAgICAhdGhpcy5fb3ZlcmxheVJlZj8ub3ZlcmxheUVsZW1lbnQ/LmNvbnRhaW5zKGVsKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgLy9cblxuICAgICAgdGhpcy5fb3ZlcmxheUV2ZW50cy5zY3JvbGwgPSB0aGlzLl9wbGF0Zm9ybS5zY3JvbGwuc3Vic2NyaWJlKChjKSA9PiB7XG4gICAgICAgIC8vX19heENvbnRleHRfX1xuICAgICAgICBjb25zdCBlbCA9IGMubmF0aXZlRXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQ7XG4gICAgICAgIGlmICghdGhpcy5pc0FjdGlvbnNoZWV0U3R5bGUgJiYgaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlEKSkge1xuICAgICAgICAgIGlmIChlbCA9PSAodGhpcy5kb2N1bWVudCBhcyBhbnkpKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGVsPy5jbG9zZXN0ICYmXG4gICAgICAgICAgICAhZWwuY2xvc2VzdCgnLmF4LW92ZXJsYXktcGFuZScpICYmXG4gICAgICAgICAgICAhdGhpcy5fdGFyZ2V0LmNvbnRhaW5zKGVsKSAmJlxuICAgICAgICAgICAgIXRoaXMuX292ZXJsYXlSZWY/Lm92ZXJsYXlFbGVtZW50Py5jb250YWlucyhlbClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSByZW1vdmVPdmVybGF5RXZlbnRzKCkge1xuICAgIHRoaXMuX292ZXJsYXlSZWY/Lm92ZXJsYXlFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCB0aGlzLl9oYW5kbGVNb3VzZUVudGVyLmJpbmQodGhpcykpO1xuICAgIHRoaXMuX292ZXJsYXlSZWY/Lm92ZXJsYXlFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCB0aGlzLl9oYW5kbGVNb3VzZUxlYXZlLmJpbmQodGhpcykpO1xuICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuX292ZXJsYXlFdmVudHMpLmZvckVhY2goKGUpID0+IHtcbiAgICAgIGVbMV0udW5zdWJzY3JpYmUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vXG4gIC8qKlxuICAgKiBUb2dnbGVzIHRoZSBjb21wb25lbnQncyBvcGVuIHN0YXRlLlxuICAgKi9cbiAgdG9nZ2xlKCkge1xuICAgIHRoaXMuaXNPcGVuID8gdGhpcy5jbG9zZSgpIDogdGhpcy5vcGVuKCk7XG4gIH1cblxuICAvL1xuICAvKipcbiAgICogQ2xvc2VzIHRoZSBjb21wb25lbnQgaWYgaXQncyBvcGVuLCBkZXRhY2hlcyB0aGUgb3ZlcmxheSwgcmVzdG9yZXMgZm9jdXMsIGFuZCBlbWl0cyB0aGUgY2xvc2VkIGV2ZW50LlxuICAgKi9cbiAgY2xvc2UoKSB7XG4gICAgaWYgKCF0aGlzLmlzT3Blbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmRpc2Nvbm5lY3RSZXNpemVPYnNlcnZlcigpO1xuICAgIHRoaXMuX292ZXJsYXlSZWY/LmRldGFjaCgpO1xuICAgIHRoaXMucmVzdG9yZUZvY3VzKCk7XG4gICAgdGhpcy5fZW1pdE9uQ2xvc2VkRXZlbnQoKTtcbiAgICB0aGlzLm9uS2V5RG93bkxpc3RlbmVyRm4oKTtcbiAgfVxuXG4gIC8vXG4gIC8qKlxuICAgKiBPcGVucyB0aGUgY29tcG9uZW50IGlmIGl0J3Mgbm90IGFscmVhZHkgb3Blbiwgc2F2ZXMgZm9jdXMsIG9wZW5zIHRoZSBvdmVybGF5LCBhbmQgZW1pdHMgdGhlIG9wZW5lZCBldmVudC5cbiAgICovXG4gIG9wZW4oKSB7XG4gICAgaWYgKHRoaXMuaXNPcGVuIHx8IHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JRCkpIHtcbiAgICAgIHRoaXMub25LZXlEb3duTGlzdGVuZXJGbiA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuZG9jdW1lbnQuYm9keSwgJ2tleWRvd24nLCAoZSkgPT4ge1xuICAgICAgICBpZiAoZS5rZXkgPT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnNhdmVGb2N1cygpO1xuICAgIHRoaXMub3Blbk92ZXJsYXlJbnRlcm5hbCgpO1xuICAgIHRoaXMuX2VtaXRPbk9wZW5lZEV2ZW50KCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHNhdmVGb2N1cygpIHtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlEKSkge1xuICAgICAgdGhpcy5fbGFzdEFjdGl2ZUVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgRWxlbWVudDtcbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHJlc3RvcmVGb2N1cygpIHtcbiAgICBpZiAodGhpcy5fbGFzdEFjdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgaWYgKHRoaXMuX2xhc3RBY3RpdmVFbGVtZW50Py5mb2N1cykge1xuICAgICAgICB0aGlzLl9sYXN0QWN0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgb3Blbk92ZXJsYXlJbnRlcm5hbCgpIHtcbiAgICBjb25zdCB0YXJnZXRSZWYgPSB0aGlzLl90YXJnZXQ7XG4gICAgaWYgKCF0YXJnZXRSZWYpIHJldHVybjtcblxuICAgIC8vaWYgKCF0aGlzLl9vdmVybGF5UmVmKSB7XG4gICAgaWYgKHRoaXMuaXNBY3Rpb25zaGVldFN0eWxlKSB7XG4gICAgICB0aGlzLl9vdmVybGF5UmVmID0gdGhpcy5fb3ZlcmxheS5jcmVhdGUoe1xuICAgICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkuYm90dG9tKCkuY2VudGVySG9yaXpvbnRhbGx5KCksXG4gICAgICAgIGRpc3Bvc2VPbk5hdmlnYXRpb246IHRydWUsXG4gICAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuYmxvY2soKSxcbiAgICAgICAgcGFuZWxDbGFzczogW1xuICAgICAgICAgICdheC1hY3Rpb25zaGVldC1iYXNlJyxcbiAgICAgICAgICAnYXgtYW5pbWF0ZS1zbGlkZUluVXAnLFxuICAgICAgICAgICdheC1hbmltYXRlLWZhc3RlcicsXG4gICAgICAgICAgdGhpcy5wYW5lbENsYXNzID8gdGhpcy5wYW5lbENsYXNzIDogdGhpcy4jcGxhdGZvcm0uaXNEYXJrKCkgPyAnYXgtZGFyaycgOiAnJyxcbiAgICAgICAgXSxcbiAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fb3ZlcmxheVJlZiA9IHRoaXMuX292ZXJsYXkuY3JlYXRlKHtcbiAgICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmZsZXhpYmxlQ29ubmVjdGVkVG8odGFyZ2V0UmVmKS53aXRoUG9zaXRpb25zKHRoaXMuX3BsYWNlbWVudHMpLFxuICAgICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5fb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLm5vb3AoKSxcbiAgICAgICAgZGlzcG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSxcbiAgICAgICAgcGFuZWxDbGFzczogWydheC1hbmltYXRlLWZhZGVJbicsICdheC1hbmltYXRlLWZhc3RlcicsIHRoaXMuI3BsYXRmb3JtLmlzRGFyaygpID8gJ2F4LWRhcmsnIDogJyddLFxuICAgICAgICBtYXhIZWlnaHQ6ICd1bnNldCcsXG4gICAgICAgIGhhc0JhY2tkcm9wOiB0aGlzLmhhc0JhY2tkcm9wLFxuICAgICAgICBiYWNrZHJvcENsYXNzOiBbdGhpcy5iYWNrZHJvcENsYXNzIHx8ICdjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCddLFxuICAgICAgICBkaXJlY3Rpb246IEFYSHRtbFV0aWwuaXNSdGwodGhpcy5nZXRIb3N0RWxlbWVudCgpKSA/ICdydGwnIDogJ2x0cicsXG4gICAgICAgIHdpZHRoOiB0aGlzLndpZHRoKCksXG4gICAgICB9KTtcbiAgICAgIC8vIHRoaXMuX292ZXJsYXlSZWYuc2V0RGlyZWN0aW9uKClcbiAgICB9XG5cbiAgICAvL1xuICAgIHRoaXMuYmluZE92ZXJsYXlFdmVudHMoKTtcbiAgICAvL31cbiAgICAvL1xuICAgIGlmICh0aGlzLmNvbnRlbnQgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xuICAgICAgdGhpcy5fcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuY29udGVudCwgdGhpcy5nZXRWaWV3Q29udGFpbmVyKCksIHtcbiAgICAgICAgJGltcGxpY2l0OiB0aGlzLmNvbnRleHQsXG4gICAgICAgIHJlZjogdGhpcyxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5fb3ZlcmxheVJlZj8uYXR0YWNoKHRoaXMuX3BvcnRhbCk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdGhpcy5jb250ZW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzLl9wb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKHRoaXMuY29udGVudCk7XG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYgPSB0aGlzLl9vdmVybGF5UmVmPy5hdHRhY2godGhpcy5fcG9ydGFsKTtcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLCB0aGlzLmNvbnRleHQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9wb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5fYmFzZVRlbXBsYXRlLCB0aGlzLmdldFZpZXdDb250YWluZXIoKSwge1xuICAgICAgICAkaW1wbGljaXQ6IHRoaXMuY29udGV4dCxcbiAgICAgICAgcmVmOiB0aGlzLFxuICAgICAgfSk7XG4gICAgICB0aGlzLl9vdmVybGF5UmVmPy5hdHRhY2godGhpcy5fcG9ydGFsKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBvdmVybGF5IGlzIGN1cnJlbnRseSBvcGVuLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICovXG4gIGdldCBpc09wZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX292ZXJsYXlSZWYgPyB0aGlzLl9vdmVybGF5UmVmLmhhc0F0dGFjaGVkKCkgOiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBhY3Rpb25zaGVldCBzdHlsZSBzaG91bGQgYmUgYXBwbGllZC5cbiAgICogQHJldHVybnMge2Jvb2xlYW59XG4gICAqL1xuICBnZXQgaXNBY3Rpb25zaGVldFN0eWxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9wbGF0Zm9ybS5pcygnU00nKSAmJiB0aGlzLmFkYXB0aXZpdHlFbmFibGVkO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSB1cGRhdGVQb3NpdGlvblN0cmF0ZWd5KCk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldFJlZiA9IHRoaXMuX3RhcmdldDtcbiAgICBpZiAoIXRhcmdldFJlZikgcmV0dXJuO1xuICAgIGxldCBzdHJhdGVneTogUG9zaXRpb25TdHJhdGVneTtcbiAgICBpZiAodGhpcy5pc0FjdGlvbnNoZWV0U3R5bGUpIHtcbiAgICAgIHN0cmF0ZWd5ID0gdGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLmJvdHRvbSgpLmNlbnRlckhvcml6b250YWxseSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHJhdGVneSA9IHRoaXMuX292ZXJsYXkucG9zaXRpb24oKS5mbGV4aWJsZUNvbm5lY3RlZFRvKHRhcmdldFJlZikud2l0aFBvc2l0aW9ucyh0aGlzLl9wbGFjZW1lbnRzKTtcbiAgICB9XG4gICAgdGhpcy5fb3ZlcmxheVJlZj8udXBkYXRlUG9zaXRpb25TdHJhdGVneShzdHJhdGVneSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHVwZGF0ZU9mZnNldCgpIHtcbiAgICB0aGlzLl9wbGFjZW1lbnRzPy5mb3JFYWNoKChwKSA9PiB7XG4gICAgICBpZiAodGhpcy5vZmZzZXRZICE9IG51bGwpIHAub2Zmc2V0WSA9IHRoaXMub2Zmc2V0WTtcbiAgICAgIGlmICh0aGlzLm9mZnNldFggIT0gbnVsbCkgcC5vZmZzZXRYID0gdGhpcy5vZmZzZXRYO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBvdmVybGF5IGFuZCBmb2N1c2VzIG9uIGl0LlxuICAgKi9cbiAgcHVibGljIHVwZGF0ZVBvc2l0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX292ZXJsYXlSZWY/LnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgdGhpcy5mb2N1cygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvY3VzZXMgdGhlIG92ZXJsYXkgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBmb2N1cygpOiB2b2lkIHtcbiAgICAvL1RPRE86IG5lZWQgdGhpcz8/XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIGluaXRpYWxpemVSZXNpemVPYnNlcnZlcigpOiB2b2lkIHtcbiAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JRCkgfHwgIXRoaXMuX292ZXJsYXlSZWY/Lm92ZXJsYXlFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZGlzY29ubmVjdFJlc2l6ZU9ic2VydmVyKCk7XG4gICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICB0aGlzLnJlc2l6ZSQubmV4dCgpO1xuICAgIH0pO1xuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl9vdmVybGF5UmVmLm92ZXJsYXlFbGVtZW50KTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgZGlzY29ubmVjdFJlc2l6ZU9ic2VydmVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlc2l6ZU9ic2VydmVyKSB7XG4gICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8vXG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgLy8gdGhpcy5wbGF0Zm9ybVNlcnZpY2UuZGlyZWN0aW9uQ2hhbmdlLnN1YnNjcmliZSgoYykgPT4ge1xuICAgIC8vICAgdGhpcy5pc1J0bCA9IGMuZGF0YSA9PSAncnRsJztcbiAgICAvLyB9KTtcbiAgICB0aGlzLnJlc2l6ZSQucGlwZShkZWJvdW5jZVRpbWUoNTApKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlUG9zaXRpb24oKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGlzY29ubmVjdFJlc2l6ZU9ic2VydmVyKCk7XG4gICAgdGhpcy5yZXNpemUkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5yZW1vdmVUYXJnZXRFdmVudHMoKTtcbiAgICB0aGlzLnJlbW92ZU92ZXJsYXlFdmVudHMoKTtcbiAgICB0aGlzLl9vdmVybGF5UmVmPy5kZXRhY2goKTtcbiAgICB0aGlzLl9vdmVybGF5UmVmPy5kaXNwb3NlKCk7XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjYmFzZVRlbXBsYXRlPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuIl19","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXPopoverComponent } from './popover.component';\nimport * as i0 from \"@angular/core\";\nexport class AXPopoverModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXPopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.3\", ngImport: i0, type: AXPopoverModule, imports: [CommonModule, AXPopoverComponent], exports: [AXPopoverComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXPopoverModule, imports: [CommonModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXPopoverModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule, AXPopoverComponent],\n exports: [AXPopoverComponent],\n providers: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3BvcG92ZXIvc3JjL2xpYi9wb3BvdmVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFPekQsTUFBTSxPQUFPLGVBQWU7OEdBQWYsZUFBZTsrR0FBZixlQUFlLFlBSmhCLFlBQVksRUFBRSxrQkFBa0IsYUFDaEMsa0JBQWtCOytHQUdqQixlQUFlLFlBSmhCLFlBQVk7OzJGQUlYLGVBQWU7a0JBTDNCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGtCQUFrQixDQUFDO29CQUMzQyxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDN0IsU0FBUyxFQUFFLEVBQUU7aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJy4vcG9wb3Zlci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBWFBvcG92ZXJDb21wb25lbnRdLFxuICBleHBvcnRzOiBbQVhQb3BvdmVyQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQb3BvdmVyTW9kdWxlIHt9XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtcG9wb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvcG9wb3Zlci9zcmMvYWNvcmV4LWNvbXBvbmVudHMtcG9wb3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
@@ -126,12 +126,12 @@ class AXPopupComponent extends MXBaseComponent {
|
|
126
126
|
data: data,
|
127
127
|
});
|
128
128
|
};
|
129
|
-
if (typeof this._componentRef
|
129
|
+
if (typeof this._componentRef?.onClosing === 'function') {
|
130
130
|
const ee = {
|
131
131
|
cancel: false,
|
132
132
|
data,
|
133
133
|
};
|
134
|
-
const closingResult = this._componentRef
|
134
|
+
const closingResult = this._componentRef?.onClosing(ee);
|
135
135
|
if (closingResult instanceof Promise) {
|
136
136
|
closingResult.then(() => {
|
137
137
|
if (!ee.cancel) {
|