@acorex/components 20.7.5 → 20.7.7

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.
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-modal-modal-content.component-DPMt_zaI.mjs","sources":["../tmp-esm2022/modal/lib/modal-content/modal-content.component.js"],"sourcesContent":["import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { AXFocusTrapDirective } from '@acorex/cdk/focus-trap';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { CommonModule } from '@angular/common';\nimport { afterNextRender, ChangeDetectionStrategy, Component, computed, effect, HostBinding, HostListener, inject, input, model, signal, TemplateRef, viewChild, ViewEncapsulation, } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { AXModalFooterComponent } from '../modal-footer/modal-footer.component';\nimport { AXModalStateService } from '../modal-state.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/cdk/focus-trap\";\nimport * as i2 from \"@angular/common\";\nimport * as i3 from \"@acorex/components/decorators\";\nexport class AXModalContentComponent extends NXComponent {\n constructor() {\n super(...arguments);\n this.__content__ = input.required(...(ngDevMode ? [{ debugName: \"__content__\" }] : []));\n this.id = input(...(ngDevMode ? [undefined, { debugName: \"id\" }] : []));\n this.inputs = model(...(ngDevMode ? [undefined, { debugName: \"inputs\" }] : []));\n this.serviceState = inject(AXModalStateService);\n this.sanitizer = inject(DomSanitizer);\n this.modalContainer = viewChild('c', ...(ngDevMode ? [{ debugName: \"modalContainer\" }] : []));\n this.footer = viewChild(AXModalFooterComponent, ...(ngDevMode ? [{ debugName: \"footer\" }] : []));\n this.isTemplate = computed(() => this.__content__() instanceof TemplateRef, ...(ngDevMode ? [{ debugName: \"isTemplate\" }] : []));\n this.isHtmlElement = computed(() => this.__content__() instanceof HTMLElement, ...(ngDevMode ? [{ debugName: \"isHtmlElement\" }] : []));\n this.component = computed(() => this.__content__(), ...(ngDevMode ? [{ debugName: \"component\" }] : []));\n this.template = computed(() => this.__content__(), ...(ngDevMode ? [{ debugName: \"template\" }] : []));\n this.element = computed(() => this.__content__(), ...(ngDevMode ? [{ debugName: \"element\" }] : []));\n this.modalSizeState = signal('normal', ...(ngDevMode ? [{ debugName: \"modalSizeState\" }] : []));\n this.fullScreenState = signal(false, ...(ngDevMode ? [{ debugName: \"fullScreenState\" }] : []));\n this.isMouseDown = signal(false, ...(ngDevMode ? [{ debugName: \"isMouseDown\" }] : []));\n this.offsetX = signal(0, ...(ngDevMode ? [{ debugName: \"offsetX\" }] : []));\n this.offsetY = signal(0, ...(ngDevMode ? [{ debugName: \"offsetY\" }] : []));\n this.prevLeft = signal('', ...(ngDevMode ? [{ debugName: \"prevLeft\" }] : []));\n this.prevTop = signal('', ...(ngDevMode ? [{ debugName: \"prevTop\" }] : []));\n this.backdropState = computed(() => this.serviceState.modalOption()?.backdrop?.enabled ?? true, ...(ngDevMode ? [{ debugName: \"backdropState\" }] : []));\n this.closeOnEscape = computed(() => this.serviceState.modalOption()?.closeOnEscape ?? true, ...(ngDevMode ? [{ debugName: \"closeOnEscape\" }] : []));\n this.panelClass = computed(() => this.serviceState.modalOption()?.panelClass ?? '', ...(ngDevMode ? [{ debugName: \"panelClass\" }] : []));\n this.headerState = computed(() => this.serviceState.modalOption()?.header ?? false, ...(ngDevMode ? [{ debugName: \"headerState\" }] : []));\n this.footerState = computed(() => this.serviceState.modalOption()?.footer ?? false, ...(ngDevMode ? [{ debugName: \"footerState\" }] : []));\n this.closeHeaderButton = computed(() => this.serviceState.modalOption()?.buttons?.close ?? true, ...(ngDevMode ? [{ debugName: \"closeHeaderButton\" }] : []));\n this.backdropBackground = computed(() => this.serviceState.modalOption()?.backdrop?.background ?? true, ...(ngDevMode ? [{ debugName: \"backdropBackground\" }] : []));\n this.backdropClass = computed(() => this.serviceState.modalOption()?.backdrop?.backdropClass ?? '', ...(ngDevMode ? [{ debugName: \"backdropClass\" }] : []));\n this.backdropCloseOnClick = computed(() => this.serviceState.modalOption()?.backdrop?.closeOnClick ?? true, ...(ngDevMode ? [{ debugName: \"backdropCloseOnClick\" }] : []));\n this.minimizePosition = computed(() => this.serviceState.modalOption()?.buttons?.minimize?.position ?? 'bottom-right', ...(ngDevMode ? [{ debugName: \"minimizePosition\" }] : []));\n this.minimizeState = computed(() => this.serviceState.modalOption()?.buttons?.minimize?.enable ?? false, ...(ngDevMode ? [{ debugName: \"minimizeState\" }] : []));\n this.maximizeState = computed(() => this.serviceState.modalOption()?.buttons?.maximize ?? false, ...(ngDevMode ? [{ debugName: \"maximizeState\" }] : []));\n this.modalSize = computed(() => this.serviceState.modalOption()?.size ?? 'lg', ...(ngDevMode ? [{ debugName: \"modalSize\" }] : []));\n this.headerTitle = computed(() => this.serviceState.modalOption()?.title ?? '', ...(ngDevMode ? [{ debugName: \"headerTitle\" }] : []));\n this.draggable = computed(() => this.serviceState.modalOption()?.draggable ?? true, ...(ngDevMode ? [{ debugName: \"draggable\" }] : []));\n this.#init = afterNextRender(() => {\n this.nativeElement.focus();\n const popFooter = this.nativeElement.querySelector('.ax-modal-footer');\n const footer = this.nativeElement.querySelector('.ax-modal-content ax-modal-footer');\n if (footer) {\n popFooter?.append(footer);\n }\n });\n this.#eff = effect(() => {\n const host = this.nativeElement;\n if (this.draggable())\n host.classList.add('ax-draggable');\n if (!this.backdropState())\n return;\n this.addBackdrop();\n if (!this.backdropBackground())\n return;\n }, ...(ngDevMode ? [{ debugName: \"#eff\" }] : []));\n }\n #init;\n close() {\n this.serviceState.close(this.id());\n }\n minimize() {\n if (this.fullScreenState())\n document.exitFullscreen();\n this.modalContainer().nativeElement.style.transition = 'all 200ms ease-out';\n this.modalContainer().nativeElement.style.top = `auto`;\n this.modalContainer().nativeElement.style.bottom = `0`;\n if (this.backdropState())\n this.removeBackdrop();\n this.modalContainer().nativeElement.classList.remove('ax-normal-modal');\n this.modalContainer().nativeElement.classList.add('ax-minimize-modal');\n requestAnimationFrame(() => {\n const width = this.modalContainer().nativeElement.offsetWidth;\n const index = this.serviceState.getMapIndexOf(this.id());\n if (this.minimizePosition() === 'bottom-right') {\n this.modalContainer().nativeElement.style.left = `auto`;\n this.modalContainer().nativeElement.style.right = `${index * (width + 10)}px`;\n }\n else {\n this.modalContainer().nativeElement.style.right = `auto`;\n this.modalContainer().nativeElement.style.left = `${index * (width + 10)}px`;\n }\n });\n this.modalSizeState.set('minimize');\n }\n maximize() {\n this.modalContainer().nativeElement.style.transition = 'none';\n if (this.modalSizeState() === 'minimize')\n this.restore();\n if (!document.fullscreenElement) {\n this.modalContainer().nativeElement.requestFullscreen();\n this.fullScreenState.set(true);\n }\n else {\n document.exitFullscreen();\n }\n document.addEventListener('fullscreenchange', () => {\n if (!document.fullscreenElement) {\n this.fullScreenState.set(false);\n }\n });\n }\n restore() {\n setTimeout(() => {\n this.modalContainer().nativeElement.style.transition = 'none';\n }, 200);\n if (this.fullScreenState()) {\n document.exitFullscreen();\n return;\n }\n this.modalContainer().nativeElement.style.bottom = `auto`;\n this.modalContainer().nativeElement.style.right = `auto`;\n this.modalContainer().nativeElement.style.left = this.prevLeft();\n this.modalContainer().nativeElement.style.top = this.prevTop();\n if (this.backdropState())\n this.addBackdrop();\n this.modalContainer().nativeElement.classList.remove(`ax-minimize-modal`);\n this.modalContainer().nativeElement.classList.add('ax-normal-modal');\n this.modalSizeState.set('normal');\n }\n pointerDownHandler(e) {\n if (!this.draggable() || this.modalSizeState() === 'minimize' || this.fullScreenState())\n return;\n this.isMouseDown.set(true);\n this.offsetX.set(e.clientX - this.modalContainer().nativeElement.offsetLeft);\n this.offsetY.set(e.clientY - this.modalContainer().nativeElement.offsetTop);\n }\n addBackdrop() {\n const backdropElem = document.createElement('div');\n backdropElem.classList.add('ax-modal-drawer-backdrop');\n if (this.backdropClass()) {\n backdropElem.classList.add(...this.backdropClass().split(' '));\n }\n else {\n backdropElem.classList.add('ax-default-backdrop');\n }\n backdropElem.addEventListener('pointerdown', (e) => {\n if (!this.backdropCloseOnClick())\n return;\n if (e.target === e.currentTarget) {\n this.close();\n }\n });\n this.nativeElement.appendChild(backdropElem);\n }\n removeBackdrop() {\n const backdropElem = this.nativeElement.querySelector('.ax-modal-drawer-backdrop');\n if (backdropElem) {\n backdropElem.remove();\n }\n }\n pointerMoveHandler(e) {\n if (!this.draggable() || this.modalSizeState() === 'minimize' || this.fullScreenState())\n return;\n if (!this.isMouseDown())\n return;\n this.modalContainer().nativeElement.style.left = `${e.clientX - this.offsetX()}px`;\n this.modalContainer().nativeElement.style.top = `${e.clientY - this.offsetY()}px`;\n this.prevLeft.set(`${e.clientX - this.offsetX()}px`);\n this.prevTop.set(`${e.clientY - this.offsetY()}px`);\n }\n pointerUpHandler() {\n if (!this.draggable() || this.modalSizeState() === 'minimize' || this.fullScreenState())\n return;\n this.isMouseDown.set(false);\n }\n get role() {\n return '0';\n }\n escapeHandler(e) {\n if (e.key === 'Escape' && this.closeOnEscape()) {\n this.close();\n }\n }\n #eff;\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXModalContentComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXModalContentComponent, isStandalone: true, selector: \"ax-modal-content\", inputs: { __content__: { classPropertyName: \"__content__\", publicName: \"__content__\", isSignal: true, isRequired: true, transformFunction: null }, id: { classPropertyName: \"id\", publicName: \"id\", isSignal: true, isRequired: false, transformFunction: null }, inputs: { classPropertyName: \"inputs\", publicName: \"inputs\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { inputs: \"inputsChange\" }, host: { listeners: { \"pointermove\": \"pointerMoveHandler($event)\", \"pointerup\": \"pointerUpHandler($event)\", \"pointerleave\": \"pointerUpHandler($event)\", \"keydown\": \"escapeHandler($event)\" }, properties: { \"attr.tabindex\": \"this.role\" } }, providers: [{ provide: AXComponent, useExisting: AXModalContentComponent }], viewQueries: [{ propertyName: \"modalContainer\", first: true, predicate: [\"c\"], descendants: true, isSignal: true }, { propertyName: \"footer\", first: true, predicate: AXModalFooterComponent, descendants: true, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: i1.AXFocusTrapDirective }], ngImport: i0, template: \"<div\\n #c\\n class=\\\"ax-modal-container ax-{{ modalSizeState() }}-modal ax-modal-{{ modalSize() }} {{ panelClass() }}\\\"\\n animate.enter=\\\"ax-fade-slide-in\\\"\\n animate.leave=\\\"ax-fade-slide-out\\\"\\n>\\n @if (headerState()) {\\n <div (pointerdown)=\\\"pointerDownHandler($event)\\\" class=\\\"ax-modal-header\\\">\\n <ax-text>{{ headerTitle() }}</ax-text>\\n\\n <div>\\n @if (minimizeState()) {\\n <ax-button class=\\\"ax-sm\\\" (onClick)=\\\"minimize()\\\" look=\\\"blank\\\" color=\\\"default\\\">\\n <ax-icon class=\\\"ax-icon ax-icon-minimize\\\"> </ax-icon>\\n </ax-button>\\n }\\n\\n @if (modalSizeState() !== 'normal' || fullScreenState()) {\\n <ax-button class=\\\"ax-sm\\\" (onClick)=\\\"restore()\\\" look=\\\"blank\\\" color=\\\"default\\\">\\n <ax-icon class=\\\"ax-icon ax-icon-maximize\\\"> </ax-icon>\\n </ax-button>\\n }\\n\\n @if (maximizeState()) {\\n <ax-button class=\\\"ax-sm\\\" (onClick)=\\\"maximize()\\\" look=\\\"blank\\\" color=\\\"default\\\">\\n <ax-icon class=\\\"ax-icon ax-icon-full-screen\\\"> </ax-icon>\\n </ax-button>\\n }\\n\\n @if (closeHeaderButton()) {\\n <ax-button class=\\\"ax-sm\\\" look=\\\"blank\\\" (onClick)=\\\"close()\\\" color=\\\"default\\\">\\n <ax-icon class=\\\"ax-icon ax-icon-close\\\"> </ax-icon>\\n </ax-button>\\n }\\n </div>\\n </div>\\n }\\n\\n <div class=\\\"ax-modal-content\\\">\\n @if (isTemplate()) {\\n <ng-container [ngTemplateOutlet]=\\\"this.template()\\\" [ngTemplateOutletContext]=\\\"inputs()\\\"></ng-container>\\n } @else if (isHtmlElement()) {\\n <div [innerHTML]=\\\"sanitizer.bypassSecurityTrustHtml(this.element().outerHTML)\\\"></div>\\n } @else {\\n <ng-container [ngComponentOutlet]=\\\"this.component()\\\" [ngComponentOutletInputs]=\\\"inputs()\\\"></ng-container>\\n }\\n </div>\\n\\n @if (footerState()) {\\n <div class=\\\"ax-modal-footer\\\"></div>\\n }\\n</div>\\n\", styles: [\"ax-modal-content{touch-action:none;-webkit-user-select:none;user-select:none}ax-modal-content .ax-modal-drawer-backdrop{position:fixed;top:0;left:0;z-index:50;width:100vw;height:calc(100 * var(--ax-vh))}ax-modal-content .ax-modal-drawer-backdrop.ax-default-backdrop{background-color:#00000080}ax-modal-content.ax-draggable .ax-modal-header:hover{cursor:move}ax-modal-content .ax-modal-container{overflow:hidden;position:fixed;z-index:55;background-color:rgba(var(--ax-comp-modal-bg-color, var(--ax-sys-color-lightest-surface)));display:flex;flex-direction:column;justify-content:space-between;border-radius:var(--ax-comp-modal-border-radius, var(--ax-sys-border-radius));border:var(--ax-comp-modal-border-width, 1px) solid rgba(var(--ax-comp-modal-border-color, var(--ax-sys-color-border-lightest-surface)));max-height:90vh;max-width:100vw}ax-modal-content .ax-modal-container.ax-modal-full{max-height:100vh!important;width:100%;height:100%}ax-modal-content .ax-modal-container.ax-modal-fit{width:fit-content}@media (min-width: 320px) and (max-width: 640px){ax-modal-content .ax-modal-container.ax-modal-sm,ax-modal-content .ax-modal-container.ax-modal-md,ax-modal-content .ax-modal-container.ax-modal-lg,ax-modal-content .ax-modal-container.ax-modal-fit{width:93vw}}@media (min-width: 768px){ax-modal-content .ax-modal-container.ax-modal-sm{width:55vw}ax-modal-content .ax-modal-container.ax-modal-md{width:65vw}ax-modal-content .ax-modal-container.ax-modal-lg{width:75vw}}@media (min-width: 1280px){ax-modal-content .ax-modal-container.ax-modal-sm{width:30vw}ax-modal-content .ax-modal-container.ax-modal-md{width:50vw}ax-modal-content .ax-modal-container.ax-modal-lg{width:85vw}}@media (min-width: 1536px){ax-modal-content .ax-modal-container.ax-modal-sm{width:25vw}ax-modal-content .ax-modal-container.ax-modal-md{width:40vw}ax-modal-content .ax-modal-container.ax-modal-lg{width:65vw}}ax-modal-content .ax-modal-container.ax-normal-modal{top:50%;left:50%;transform:translate(-50%,-50%)}ax-modal-content .ax-modal-container.ax-normal-modal .ax-modal-content{display:block}ax-modal-content .ax-modal-container.ax-normal-modal .ax-modal-footer{display:block}ax-modal-content .ax-modal-container.ax-minimize-modal{width:fit-content}ax-modal-content .ax-modal-container.ax-minimize-modal .ax-modal-content{display:none}ax-modal-content .ax-modal-container.ax-minimize-modal .ax-modal-footer{display:none}ax-modal-content .ax-modal-container .ax-modal-header,ax-modal-content .ax-modal-container .ax-modal-footer{padding:.5rem}ax-modal-content .ax-modal-container .ax-modal-header,ax-modal-content .ax-modal-container .ax-modal-footer{height:fit-content}ax-modal-content .ax-modal-container .ax-modal-content{flex-grow:1}ax-modal-content .ax-modal-container .ax-modal-header{display:flex;justify-content:space-between;align-items:center;gap:.5rem;border-bottom:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-modal-content .ax-modal-container .ax-modal-footer{border-top:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}@keyframes fadeSlideIn{0%{opacity:0;scale:.8}}ax-modal-content .ax-fade-slide-in{transform-origin:top left;animation:fadeSlideIn var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function)}ax-modal-content .ax-fade-slide-out{transform-origin:top left;animation:fadeSlideOut var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function)}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i2.NgComponentOutlet, selector: \"[ngComponentOutlet]\", inputs: [\"ngComponentOutlet\", \"ngComponentOutletInputs\", \"ngComponentOutletInjector\", \"ngComponentOutletEnvironmentInjector\", \"ngComponentOutletContent\", \"ngComponentOutletNgModule\", \"ngComponentOutletNgModuleFactory\"], exportAs: [\"ngComponentOutlet\"] }, { kind: \"directive\", type: i2.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i3.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i3.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXModalContentComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-modal-content', imports: [CommonModule, AXButtonComponent, AXDecoratorModule], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [AXFocusTrapDirective], providers: [{ provide: AXComponent, useExisting: AXModalContentComponent }], template: \"<div\\n #c\\n class=\\\"ax-modal-container ax-{{ modalSizeState() }}-modal ax-modal-{{ modalSize() }} {{ panelClass() }}\\\"\\n animate.enter=\\\"ax-fade-slide-in\\\"\\n animate.leave=\\\"ax-fade-slide-out\\\"\\n>\\n @if (headerState()) {\\n <div (pointerdown)=\\\"pointerDownHandler($event)\\\" class=\\\"ax-modal-header\\\">\\n <ax-text>{{ headerTitle() }}</ax-text>\\n\\n <div>\\n @if (minimizeState()) {\\n <ax-button class=\\\"ax-sm\\\" (onClick)=\\\"minimize()\\\" look=\\\"blank\\\" color=\\\"default\\\">\\n <ax-icon class=\\\"ax-icon ax-icon-minimize\\\"> </ax-icon>\\n </ax-button>\\n }\\n\\n @if (modalSizeState() !== 'normal' || fullScreenState()) {\\n <ax-button class=\\\"ax-sm\\\" (onClick)=\\\"restore()\\\" look=\\\"blank\\\" color=\\\"default\\\">\\n <ax-icon class=\\\"ax-icon ax-icon-maximize\\\"> </ax-icon>\\n </ax-button>\\n }\\n\\n @if (maximizeState()) {\\n <ax-button class=\\\"ax-sm\\\" (onClick)=\\\"maximize()\\\" look=\\\"blank\\\" color=\\\"default\\\">\\n <ax-icon class=\\\"ax-icon ax-icon-full-screen\\\"> </ax-icon>\\n </ax-button>\\n }\\n\\n @if (closeHeaderButton()) {\\n <ax-button class=\\\"ax-sm\\\" look=\\\"blank\\\" (onClick)=\\\"close()\\\" color=\\\"default\\\">\\n <ax-icon class=\\\"ax-icon ax-icon-close\\\"> </ax-icon>\\n </ax-button>\\n }\\n </div>\\n </div>\\n }\\n\\n <div class=\\\"ax-modal-content\\\">\\n @if (isTemplate()) {\\n <ng-container [ngTemplateOutlet]=\\\"this.template()\\\" [ngTemplateOutletContext]=\\\"inputs()\\\"></ng-container>\\n } @else if (isHtmlElement()) {\\n <div [innerHTML]=\\\"sanitizer.bypassSecurityTrustHtml(this.element().outerHTML)\\\"></div>\\n } @else {\\n <ng-container [ngComponentOutlet]=\\\"this.component()\\\" [ngComponentOutletInputs]=\\\"inputs()\\\"></ng-container>\\n }\\n </div>\\n\\n @if (footerState()) {\\n <div class=\\\"ax-modal-footer\\\"></div>\\n }\\n</div>\\n\", styles: [\"ax-modal-content{touch-action:none;-webkit-user-select:none;user-select:none}ax-modal-content .ax-modal-drawer-backdrop{position:fixed;top:0;left:0;z-index:50;width:100vw;height:calc(100 * var(--ax-vh))}ax-modal-content .ax-modal-drawer-backdrop.ax-default-backdrop{background-color:#00000080}ax-modal-content.ax-draggable .ax-modal-header:hover{cursor:move}ax-modal-content .ax-modal-container{overflow:hidden;position:fixed;z-index:55;background-color:rgba(var(--ax-comp-modal-bg-color, var(--ax-sys-color-lightest-surface)));display:flex;flex-direction:column;justify-content:space-between;border-radius:var(--ax-comp-modal-border-radius, var(--ax-sys-border-radius));border:var(--ax-comp-modal-border-width, 1px) solid rgba(var(--ax-comp-modal-border-color, var(--ax-sys-color-border-lightest-surface)));max-height:90vh;max-width:100vw}ax-modal-content .ax-modal-container.ax-modal-full{max-height:100vh!important;width:100%;height:100%}ax-modal-content .ax-modal-container.ax-modal-fit{width:fit-content}@media (min-width: 320px) and (max-width: 640px){ax-modal-content .ax-modal-container.ax-modal-sm,ax-modal-content .ax-modal-container.ax-modal-md,ax-modal-content .ax-modal-container.ax-modal-lg,ax-modal-content .ax-modal-container.ax-modal-fit{width:93vw}}@media (min-width: 768px){ax-modal-content .ax-modal-container.ax-modal-sm{width:55vw}ax-modal-content .ax-modal-container.ax-modal-md{width:65vw}ax-modal-content .ax-modal-container.ax-modal-lg{width:75vw}}@media (min-width: 1280px){ax-modal-content .ax-modal-container.ax-modal-sm{width:30vw}ax-modal-content .ax-modal-container.ax-modal-md{width:50vw}ax-modal-content .ax-modal-container.ax-modal-lg{width:85vw}}@media (min-width: 1536px){ax-modal-content .ax-modal-container.ax-modal-sm{width:25vw}ax-modal-content .ax-modal-container.ax-modal-md{width:40vw}ax-modal-content .ax-modal-container.ax-modal-lg{width:65vw}}ax-modal-content .ax-modal-container.ax-normal-modal{top:50%;left:50%;transform:translate(-50%,-50%)}ax-modal-content .ax-modal-container.ax-normal-modal .ax-modal-content{display:block}ax-modal-content .ax-modal-container.ax-normal-modal .ax-modal-footer{display:block}ax-modal-content .ax-modal-container.ax-minimize-modal{width:fit-content}ax-modal-content .ax-modal-container.ax-minimize-modal .ax-modal-content{display:none}ax-modal-content .ax-modal-container.ax-minimize-modal .ax-modal-footer{display:none}ax-modal-content .ax-modal-container .ax-modal-header,ax-modal-content .ax-modal-container .ax-modal-footer{padding:.5rem}ax-modal-content .ax-modal-container .ax-modal-header,ax-modal-content .ax-modal-container .ax-modal-footer{height:fit-content}ax-modal-content .ax-modal-container .ax-modal-content{flex-grow:1}ax-modal-content .ax-modal-container .ax-modal-header{display:flex;justify-content:space-between;align-items:center;gap:.5rem;border-bottom:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-modal-content .ax-modal-container .ax-modal-footer{border-top:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}@keyframes fadeSlideIn{0%{opacity:0;scale:.8}}ax-modal-content .ax-fade-slide-in{transform-origin:top left;animation:fadeSlideIn var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function)}ax-modal-content .ax-fade-slide-out{transform-origin:top left;animation:fadeSlideOut var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function)}\\n\"] }]\n }], propDecorators: { pointerMoveHandler: [{\n type: HostListener,\n args: ['pointermove', ['$event']]\n }], pointerUpHandler: [{\n type: HostListener,\n args: ['pointerup', ['$event']]\n }, {\n type: HostListener,\n args: ['pointerleave', ['$event']]\n }], role: [{\n type: HostBinding,\n args: ['attr.tabindex']\n }], escapeHandler: [{\n type: HostListener,\n args: ['keydown', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL21vZGFsL3NyYy9saWIvbW9kYWwtY29udGVudC9tb2RhbC1jb250ZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvbW9kYWwvc3JjL2xpYi9tb2RhbC1jb250ZW50L21vZGFsLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBRU4sV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7OztBQVk3RCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsV0FBVztJQVZ4RDs7UUFXRSxnQkFBVyxHQUFHLEtB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QkFBdUIsZ3RCQUZ2QixDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQyx3S0FVdEIsc0JBQXNCLGlKQzdDN0UsbTREQW9EQSw0NEdEckJZLFlBQVksdWhCQUFFLGlCQUFpQiwwVUFBRSxpQkFBaUI7OzJGQU1qRCx1QkFBdUI7a0JBVm5DLFNBQVM7K0JBQ0Usa0JBQWtCLFdBR25CLENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDLGlCQUM5QyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGtCQUMvQixDQUFDLG9CQUFvQixDQUFDLGFBQzNCLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcseUJBQXlCLEVBQUUsQ0FBQzs4QkErSmpFLGtCQUFrQjtzQkFEM0IsWUFBWTt1QkFBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBWTdCLGdCQUFnQjtzQkFGekIsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUNwQyxZQUFZO3VCQUFDLGNBQWMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFNTixJQUFJO3NCQUFyQyxXQUFXO3VCQUFDLGVBQWU7Z0JBS2xCLGFBQWE7c0JBRHRCLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDb21wb25lbnQsIE5YQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYRm9jdXNUcmFwRGlyZWN0aXZlIH0gZnJvbSAnQGFjb3JleC9jZGsvZm9jdXMtdHJhcCc7XG5pbXBvcnQgeyBBWEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWENvbXBvbmVudENvbnRlbnQsIEFYQ29tcG9uZW50SW5wdXRzLCBBWENvbXBvbmVudFR5cGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgYWZ0ZXJOZXh0UmVuZGVyLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBtb2RlbCxcbiAgc2lnbmFsLFxuICBUZW1wbGF0ZVJlZixcbiAgdmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEFYTW9kYWxGb290ZXJDb21wb25lbnQgfSBmcm9tICcuLi9tb2RhbC1mb290ZXIvbW9kYWwtZm9vdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWE1vZGFsU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vbW9kYWwtc3RhdGUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LW1vZGFsLWNvbnRlbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwtY29udGVudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9tb2RhbC1jb250ZW50LmNvbXBvbmVudC5zY3NzJyxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQVhCdXR0b25Db21wb25lbnQsIEFYRGVjb3JhdG9yTW9kdWxlXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3REaXJlY3RpdmVzOiBbQVhGb2N1c1RyYXBEaXJlY3RpdmVdLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhNb2RhbENvbnRlbnRDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYTW9kYWxDb250ZW50Q29tcG9uZW50IGV4dGVuZHMgTlhDb21wb25lbnQge1xuICBfX2NvbnRlbnRfXyA9IGlucHV0LnJlcXVpcmVkPEFYQ29tcG9uZW50Q29udGVudCB8IEhUTUxFbGVtZW50PigpO1xuICBwdWJsaWMgaWQgPSBpbnB1dDxudW1iZXI+KCk7XG4gIHB1YmxpYyBpbnB1dHMgPSBtb2RlbDxBWENvbXBvbmVudElucHV0cz4oKTtcbiAgcHJpdmF0ZSBzZXJ2aWNlU3RhdGUgPSBpbmplY3QoQVhNb2RhbFN0YXRlU2VydmljZSk7XG4gIHByb3RlY3RlZCBzYW5pdGl6ZXIgPSBpbmplY3QoRG9tU2FuaXRpemVyKTtcblxuICBwcm90ZWN0ZWQgbW9kYWxDb250YWluZXIgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZj4oJ2MnKTtcbiAgcHJvdGVjdGVkIGZvb3RlciA9IHZpZXdDaGlsZDxBWE1vZGFsRm9vdGVyQ29tcG9uZW50PihBWE1vZGFsRm9vdGVyQ29tcG9uZW50KTtcblxuICBwcm90ZWN0ZWQgaXNUZW1wbGF0ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX19jb250ZW50X18oKSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKTtcbiAgcHJvdGVjdGVkIGlzSHRtbEVsZW1lbnQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9fY29udGVudF9fKCkgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCk7XG5cbiAgcHVibGljIGNvbXBvbmVudCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX19jb250ZW50X18oKSBhcyBBWENvbXBvbmVudFR5cGU8YW55Pik7XG4gIHB1YmxpYyB0ZW1wbGF0ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX19jb250ZW50X18oKSBhcyBUZW1wbGF0ZVJlZjxhbnk+KTtcbiAgcHVibGljIGVsZW1lbnQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9fY29udGVudF9fKCkgYXMgSFRNTEVsZW1lbnQpO1xuXG4gIHByb3RlY3RlZCBtb2RhbFNpemVTdGF0ZSA9IHNpZ25hbDwnbWluaW1pemUnIHwgJ25vcm1hbCc+KCdub3JtYWwnKTtcbiAgcHJvdGVjdGVkIGZ1bGxTY3JlZW5TdGF0ZSA9IHNpZ25hbChmYWxzZSk7XG4gIHByaXZhdGUgaXNNb3VzZURvd24gPSBzaWduYWwoZmFsc2UpO1xuICBwcml2YXRlIG9mZnNldFggPSBzaWduYWwoMCk7XG4gIHByaXZhdGUgb2Zmc2V0WSA9IHNpZ25hbCgwKTtcbiAgcHJpdmF0ZSBwcmV2TGVmdCA9IHNpZ25hbCgnJyk7XG4gIHByaXZhdGUgcHJldlRvcCA9IHNpZ25hbCgnJyk7XG4gIHByaXZhdGUgYmFja2Ryb3BTdGF0ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc2VydmljZVN0YXRlLm1vZGFsT3B0aW9uKCk/LmJhY2tkcm9wPy5lbmFibGVkID8/IHRydWUpO1xuICBwcml2YXRlIGNsb3NlT25Fc2NhcGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNlcnZpY2VTdGF0ZS5tb2RhbE9wdGlvbigpPy5jbG9zZU9uRXNjYXBlID8/IHRydWUpO1xuICBwcm90ZWN0ZWQgcGFuZWxDbGFzcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc2VydmljZVN0YXRlLm1vZGFsT3B0aW9uKCk/LnBhbmVsQ2xhc3MgPz8gJycpO1xuICBwcm90ZWN0ZWQgaGVhZGVyU3RhdGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNlcnZpY2VTdGF0ZS5tb2RhbE9wdGlvbigpPy5oZWFkZXIgPz8gZmFsc2UpO1xuICBwcm90ZWN0ZWQgZm9vdGVyU3RhdGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNlcnZpY2VTdGF0ZS5tb2RhbE9wdGlvbigpPy5mb290ZXIgPz8gZmFsc2UpO1xuICBwcm90ZWN0ZWQgY2xvc2VIZWFkZXJCdXR0b24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNlcnZpY2VTdGF0ZS5tb2RhbE9wdGlvbigpPy5idXR0b25zPy5jbG9zZSA/PyB0cnVlKTtcbiAgcHJpdmF0ZSBiYWNrZHJvcEJhY2tncm91bmQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNlcnZpY2VTdGF0ZS5tb2RhbE9wdGlvbigpPy5iYWNrZHJvcD8uYmFja2dyb3VuZCA/PyB0cnVlKTtcbiAgcHJpdmF0ZSBiYWNrZHJvcENsYXNzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zZXJ2aWNlU3RhdGUubW9kYWxPcHRpb24oKT8uYmFja2Ryb3A/LmJhY2tkcm9wQ2xhc3MgPz8gJycpO1xuICBwcml2YXRlIGJhY2tkcm9wQ2xvc2VPbkNsaWNrID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zZXJ2aWNlU3RhdGUubW9kYWxPcHRpb24oKT8uYmFja2Ryb3A/LmNsb3NlT25DbGljayA/PyB0cnVlKTtcbiAgcHJpdmF0ZSBtaW5pbWl6ZVBvc2l0aW9uID0gY29tcHV0ZWQoXG4gICAgKCkgPT4gdGhpcy5zZXJ2aWNlU3RhdGUubW9kYWxPcHRpb24oKT8uYnV0dG9ucz8ubWluaW1pemU/LnBvc2l0aW9uID8/ICdib3R0b20tcmlnaHQnLFxuICApO1xuICBwcm90ZWN0ZWQgbWluaW1pemVTdGF0ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc2VydmljZVN0YXRlLm1vZGFsT3B0aW9uKCk/LmJ1dHRvbnM/Lm1pbmltaXplPy5lbmFibGUgPz8gZmFsc2UpO1xuICBwcm90ZWN0ZWQgbWF4aW1pemVTdGF0ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc2VydmljZVN0YXRlLm1vZGFsT3B0aW9uKCk/LmJ1dHRvbnM/Lm1heGltaXplID8/IGZhbHNlKTtcbiAgcHJvdGVjdGVkIG1vZGFsU2l6ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc2VydmljZVN0YXRlLm1vZGFsT3B0aW9uKCk/LnNpemUgPz8gJ2xnJyk7XG4gIHByb3RlY3RlZCBoZWFkZXJUaXRsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc2VydmljZVN0YXRlLm1vZGFsT3B0aW9uKCk/LnRpdGxlID8/ICcnKTtcbiAgcHJpdmF0ZSBkcmFnZ2FibGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNlcnZpY2VTdGF0ZS5tb2RhbE9wdGlvbigpPy5kcmFnZ2FibGUgPz8gdHJ1ZSk7XG5cbiAgI2luaXQgPSBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICAgIHRoaXMubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIGNvbnN0IHBvcEZvb3RlciA9IHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PignLmF4LW1vZGFsLWZvb3RlcicpO1xuICAgIGNvbnN0IGZvb3RlciA9IHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PignLmF4LW1vZGFsLWNvbnRlbnQgYXgtbW9kYWwtZm9vdGVyJyk7XG4gICAgaWYgKGZvb3Rlcikge1xuICAgICAgcG9wRm9vdGVyPy5hcHBlbmQoZm9vdGVyKTtcbiAgICB9XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBjbG9zZSgpIHtcbiAgICB0aGlzLnNlcnZpY2VTdGF0ZS5jbG9zZSh0aGlzLmlkKCkpO1xuICB9XG5cbiAgbWluaW1pemUoKSB7XG4gICAgaWYgKHRoaXMuZnVsbFNjcmVlblN0YXRlKCkpIGRvY3VtZW50LmV4aXRGdWxsc2NyZWVuKCk7XG4gICAgdGhpcy5tb2RhbENvbnRhaW5lcigpLm5hdGl2ZUVsZW1lbnQuc3R5bGUudHJhbnNpdGlvbiA9ICdhbGwgMjAwbXMgZWFzZS1vdXQnO1xuXG4gICAgdGhpcy5tb2RhbENvbnRhaW5lcigpLm5hdGl2ZUVsZW1lbnQuc3R5bGUudG9wID0gYGF1dG9gO1xuICAgIHRoaXMubW9kYWxDb250YWluZXIoKS5uYXRpdmVFbGVtZW50LnN0eWxlLmJvdHRvbSA9IGAwYDtcblxuICAgIGlmICh0aGlzLmJhY2tkcm9wU3RhdGUoKSkgdGhpcy5yZW1vdmVCYWNrZHJvcCgpO1xuICAgIHRoaXMubW9kYWxDb250YWluZXIoKS5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2F4LW5vcm1hbC1tb2RhbCcpO1xuICAgIHRoaXMubW9kYWxDb250YWluZXIoKS5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2F4LW1pbmltaXplLW1vZGFsJyk7XG5cbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgY29uc3Qgd2lkdGggPSB0aGlzLm1vZGFsQ29udGFpbmVyKCkubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZXJ2aWNlU3RhdGUuZ2V0TWFwSW5kZXhPZih0aGlzLmlkKCkpO1xuXG4gICAgICBpZiAodGhpcy5taW5pbWl6ZVBvc2l0aW9uKCkgPT09ICdib3R0b20tcmlnaHQnKSB7XG4gICAgICAgIHRoaXMubW9kYWxDb250YWluZXIoKS5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSBgYXV0b2A7XG4gICAgICAgIHRoaXMubW9kYWxDb250YWluZXIoKS5uYXRpdmVFbGVtZW50LnN0eWxlLnJpZ2h0ID0gYCR7aW5kZXggKiAod2lkdGggKyAxMCl9cHhgO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5tb2RhbENvbnRhaW5lcigpLm5hdGl2ZUVsZW1lbnQuc3R5bGUucmlnaHQgPSBgYXV0b2A7XG4gICAgICAgIHRoaXMubW9kYWxDb250YWluZXIoKS5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSBgJHtpbmRleCAqICh3aWR0aCArIDEwKX1weGA7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLm1vZGFsU2l6ZVN0YXRlLnNldCgnbWluaW1pemUnKTtcbiAgfVxuXG4gIG1heGltaXplKCkge1xuICAgIHRoaXMubW9kYWxDb250YWluZXIoKS5uYXRpdmVFbGVtZW50LnN0eWxlLnRyYW5zaXRpb24gPSAnbm9uZSc7XG5cbiAgICBpZiAodGhpcy5tb2RhbFNpemVTdGF0ZSgpID09PSAnbWluaW1pemUnKSB0aGlzLnJlc3RvcmUoKTtcblxuICAgIGlmICghZG9jdW1lbnQuZnVsbHNjcmVlbkVsZW1lbnQpIHtcbiAgICAgIHRoaXMubW9kYWxDb250YWluZXIoKS5uYXRpdmVFbGVtZW50LnJlcXVlc3RGdWxsc2NyZWVuKCk7XG4gICAgICB0aGlzLmZ1bGxTY3JlZW5TdGF0ZS5zZXQodHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRvY3VtZW50LmV4aXRGdWxsc2NyZWVuKCk7XG4gICAgfVxuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZnVsbHNjcmVlbmNoYW5nZScsICgpID0+IHtcbiAgICAgIGlmICghZG9jdW1lbnQuZnVsbHNjcmVlbkVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5mdWxsU2NyZWVuU3RhdGUuc2V0KGZhbHNlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJlc3RvcmUoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLm1vZGFsQ29udGFpbmVyKCkubmF0aXZlRWxlbWVudC5zdHlsZS50cmFuc2l0aW9uID0gJ25vbmUnO1xuICAgIH0sIDIwMCk7XG5cbiAgICBpZiAodGhpcy5mdWxsU2NyZWVuU3RhdGUoKSkge1xuICAgICAgZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4oKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm1vZGFsQ29udGFpbmVyKCkubmF0aXZlRWxlbWVudC5zdHlsZS5ib3R0b20gPSBgYXV0b2A7XG4gICAgdGhpcy5tb2RhbENvbnRhaW5lcigpLm5hdGl2ZUVsZW1lbnQuc3R5bGUucmlnaHQgPSBgYXV0b2A7XG4gICAgdGhpcy5tb2RhbENvbnRhaW5lcigpLm5hdGl2ZUVsZW1lbnQuc3R5bGUubGVmdCA9IHRoaXMucHJldkxlZnQoKTtcbiAgICB0aGlzLm1vZGFsQ29udGFpbmVyKCkubmF0aXZlRWxlbWVudC5zdHlsZS50b3AgPSB0aGlzLnByZXZUb3AoKTtcblxuICAgIGlmICh0aGlzLmJhY2tkcm9wU3RhdGUoKSkgdGhpcy5hZGRCYWNrZHJvcCgpO1xuICAgIHRoaXMubW9kYWxDb250YWluZXIoKS5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoYGF4LW1pbmltaXplLW1vZGFsYCk7XG4gICAgdGhpcy5tb2RhbENvbnRhaW5lcigpLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnYXgtbm9ybWFsLW1vZGFsJyk7XG4gICAgdGhpcy5tb2RhbFNpemVTdGF0ZS5zZXQoJ25vcm1hbCcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBvaW50ZXJEb3duSGFuZGxlcihlOiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLmRyYWdnYWJsZSgpIHx8IHRoaXMubW9kYWxTaXplU3RhdGUoKSA9PT0gJ21pbmltaXplJyB8fCB0aGlzLmZ1bGxTY3JlZW5TdGF0ZSgpKSByZXR1cm47XG4gICAgdGhpcy5pc01vdXNlRG93bi5zZXQodHJ1ZSk7XG4gICAgdGhpcy5vZmZzZXRYLnNldChlLmNsaWVudFggLSB0aGlzLm1vZGFsQ29udGFpbmVyKCkubmF0aXZlRWxlbWVudC5vZmZzZXRMZWZ0KTtcbiAgICB0aGlzLm9mZnNldFkuc2V0KGUuY2xpZW50WSAtIHRoaXMubW9kYWxDb250YWluZXIoKS5uYXRpdmVFbGVtZW50Lm9mZnNldFRvcCk7XG4gIH1cblxuICBwcml2YXRlIGFkZEJhY2tkcm9wKCkge1xuICAgIGNvbnN0IGJhY2tkcm9wRWxlbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIGJhY2tkcm9wRWxlbS5jbGFzc0xpc3QuYWRkKCdheC1tb2RhbC1kcmF3ZXItYmFja2Ryb3AnKTtcblxuICAgIGlmICh0aGlzLmJhY2tkcm9wQ2xhc3MoKSkge1xuICAgICAgYmFja2Ryb3BFbGVtLmNsYXNzTGlzdC5hZGQoLi4udGhpcy5iYWNrZHJvcENsYXNzKCkuc3BsaXQoJyAnKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJhY2tkcm9wRWxlbS5jbGFzc0xpc3QuYWRkKCdheC1kZWZhdWx0LWJhY2tkcm9wJyk7XG4gICAgfVxuXG4gICAgYmFja2Ryb3BFbGVtLmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGlmICghdGhpcy5iYWNrZHJvcENsb3NlT25DbGljaygpKSByZXR1cm47XG4gICAgICBpZiAoZS50YXJnZXQgPT09IGUuY3VycmVudFRhcmdldCkge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQoYmFja2Ryb3BFbGVtKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlQmFja2Ryb3AoKSB7XG4gICAgY29uc3QgYmFja2Ryb3BFbGVtID0gdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5heC1tb2RhbC1kcmF3ZXItYmFja2Ryb3AnKTtcbiAgICBpZiAoYmFja2Ryb3BFbGVtKSB7XG4gICAgICBiYWNrZHJvcEVsZW0ucmVtb3ZlKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigncG9pbnRlcm1vdmUnLCBbJyRldmVudCddKVxuICBwcm90ZWN0ZWQgcG9pbnRlck1vdmVIYW5kbGVyKGU6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuZHJhZ2dhYmxlKCkgfHwgdGhpcy5tb2RhbFNpemVTdGF0ZSgpID09PSAnbWluaW1pemUnIHx8IHRoaXMuZnVsbFNjcmVlblN0YXRlKCkpIHJldHVybjtcbiAgICBpZiAoIXRoaXMuaXNNb3VzZURvd24oKSkgcmV0dXJuO1xuICAgIHRoaXMubW9kYWxDb250YWluZXIoKS5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSBgJHtlLmNsaWVudFggLSB0aGlzLm9mZnNldFgoKX1weGA7XG4gICAgdGhpcy5tb2RhbENvbnRhaW5lcigpLm5hdGl2ZUVsZW1lbnQuc3R5bGUudG9wID0gYCR7ZS5jbGllbnRZIC0gdGhpcy5vZmZzZXRZKCl9cHhgO1xuICAgIHRoaXMucHJldkxlZnQuc2V0KGAke2UuY2xpZW50WCAtIHRoaXMub2Zmc2V0WCgpfXB4YCk7XG4gICAgdGhpcy5wcmV2VG9wLnNldChgJHtlLmNsaWVudFkgLSB0aGlzLm9mZnNldFkoKX1weGApO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigncG9pbnRlcnVwJywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcigncG9pbnRlcmxlYXZlJywgWyckZXZlbnQnXSlcbiAgcHJvdGVjdGVkIHBvaW50ZXJVcEhhbmRsZXIoKSB7XG4gICAgaWYgKCF0aGlzLmRyYWdnYWJsZSgpIHx8IHRoaXMubW9kYWxTaXplU3RhdGUoKSA9PT0gJ21pbmltaXplJyB8fCB0aGlzLmZ1bGxTY3JlZW5TdGF0ZSgpKSByZXR1cm47XG4gICAgdGhpcy5pc01vdXNlRG93bi5zZXQoZmFsc2UpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JykgZ2V0IHJvbGUoKSB7XG4gICAgcmV0dXJuICcwJztcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBwcm90ZWN0ZWQgZXNjYXBlSGFuZGxlcihlOiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKGUua2V5ID09PSAnRXNjYXBlJyAmJiB0aGlzLmNsb3NlT25Fc2NhcGUoKSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gICNlZmYgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhvc3QgPSB0aGlzLm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKHRoaXMuZHJhZ2dhYmxlKCkpIGhvc3QuY2xhc3NMaXN0LmFkZCgnYXgtZHJhZ2dhYmxlJyk7XG4gICAgaWYgKCF0aGlzLmJhY2tkcm9wU3RhdGUoKSkgcmV0dXJuO1xuICAgIHRoaXMuYWRkQmFja2Ryb3AoKTtcbiAgICBpZiAoIXRoaXMuYmFja2Ryb3BCYWNrZ3JvdW5kKCkpIHJldHVybjtcbiAgfSk7XG59XG4iLCI8ZGl2XG4gICNjXG4gIGNsYXNzPVwiYXgtbW9kYWwtY29udGFpbmVyIGF4LXt7IG1vZGFsU2l6ZVN0YXRlKCkgfX0tbW9kYWwgIGF4LW1vZGFsLXt7IG1vZGFsU2l6ZSgpIH19IHt7IHBhbmVsQ2xhc3MoKSB9fVwiXG4gIGFuaW1hdGUuZW50ZXI9XCJheC1mYWRlLXNsaWRlLWluXCJcbiAgYW5pbWF0ZS5sZWF2ZT1cImF4LWZhZGUtc2xpZGUtb3V0XCJcbj5cbiAgQGlmIChoZWFkZXJTdGF0ZSgpKSB7XG4gICAgPGRpdiAocG9pbnRlcmRvd24pPVwicG9pbnRlckRvd25IYW5kbGVyKCRldmVudClcIiBjbGFzcz1cImF4LW1vZGFsLWhlYWRlclwiPlxuICAgICAgPGF4LXRleHQ+e3sgaGVhZGVyVGl0bGUoKSB9fTwvYXgtdGV4dD5cblxuICAgICAgPGRpdj5cbiAgICAgICAgQGlmIChtaW5pbWl6ZVN0YXRlKCkpIHtcbiAgICAgICAgICA8YXgtYnV0dG9uIGNsYXNzPVwiYXgtc21cIiAob25DbGljayk9XCJtaW5pbWl6ZSgpXCIgbG9vaz1cImJsYW5rXCIgY29sb3I9XCJkZWZhdWx0XCI+XG4gICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1taW5pbWl6ZVwiPiA8L2F4LWljb24+XG4gICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKG1vZGFsU2l6ZVN0YXRlKCkgIT09ICdub3JtYWwnIHx8IGZ1bGxTY3JlZW5TdGF0ZSgpKSB7XG4gICAgICAgICAgPGF4LWJ1dHRvbiBjbGFzcz1cImF4LXNtXCIgKG9uQ2xpY2spPVwicmVzdG9yZSgpXCIgbG9vaz1cImJsYW5rXCIgY29sb3I9XCJkZWZhdWx0XCI+XG4gICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1tYXhpbWl6ZVwiPiA8L2F4LWljb24+XG4gICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKG1heGltaXplU3RhdGUoKSkge1xuICAgICAgICAgIDxheC1idXR0b24gY2xhc3M9XCJheC1zbVwiIChvbkNsaWNrKT1cIm1heGltaXplKClcIiBsb29rPVwiYmxhbmtcIiBjb2xvcj1cImRlZmF1bHRcIj5cbiAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWZ1bGwtc2NyZWVuXCI+IDwvYXgtaWNvbj5cbiAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoY2xvc2VIZWFkZXJCdXR0b24oKSkge1xuICAgICAgICAgIDxheC1idXR0b24gY2xhc3M9XCJheC1zbVwiIGxvb2s9XCJibGFua1wiIChvbkNsaWNrKT1cImNsb3NlKClcIiBjb2xvcj1cImRlZmF1bHRcIj5cbiAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWNsb3NlXCI+IDwvYXgtaWNvbj5cbiAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIH1cblxuICA8ZGl2IGNsYXNzPVwiYXgtbW9kYWwtY29udGVudFwiPlxuICAgIEBpZiAoaXNUZW1wbGF0ZSgpKSB7XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRoaXMudGVtcGxhdGUoKVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJpbnB1dHMoKVwiPjwvbmctY29udGFpbmVyPlxuICAgIH0gQGVsc2UgaWYgKGlzSHRtbEVsZW1lbnQoKSkge1xuICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cInNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbCh0aGlzLmVsZW1lbnQoKS5vdXRlckhUTUwpXCI+PC9kaXY+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8bmctY29udGFpbmVyIFtuZ0NvbXBvbmVudE91dGxldF09XCJ0aGlzLmNvbXBvbmVudCgpXCIgW25nQ29tcG9uZW50T3V0bGV0SW5wdXRzXT1cImlucHV0cygpXCI+PC9uZy1jb250YWluZXI+XG4gICAgfVxuICA8L2Rpdj5cblxuICBAaWYgKGZvb3RlclN0YXRlKCkpIHtcbiAgICA8ZGl2IGNsYXNzPVwiYXgtbW9kYWwtZm9vdGVyXCI+PC9kaXY+XG4gIH1cbjwvZGl2PlxuIl19"],"names":[],"mappings":";;;;;;;;;;;;;AAaO,MAAM,uBAAuB,SAAS,WAAW,CAAC;AACzD,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/F,QAAQ,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/E,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvF,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,mBAAmB,CAAC;AACvD,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC;AAC7C,QAAQ,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrG,QAAQ,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,sBAAsB,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACxG,QAAQ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,YAAY,WAAW,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACxI,QAAQ,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,YAAY,WAAW,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9I,QAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/G,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7G,QAAQ,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3G,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,QAAQ,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvG,QAAQ,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACtG,QAAQ,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9F,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrF,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACnF,QAAQ,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,OAAO,IAAI,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/J,QAAQ,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,aAAa,IAAI,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3J,QAAQ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,UAAU,IAAI,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChJ,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,MAAM,IAAI,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjJ,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,MAAM,IAAI,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjJ,QAAQ,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACpK,QAAQ,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,UAAU,IAAI,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5K,QAAQ,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,aAAa,IAAI,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACnK,QAAQ,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,YAAY,IAAI,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClL,QAAQ,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,IAAI,cAAc,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACzL,QAAQ,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACxK,QAAQ,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,QAAQ,IAAI,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChK,QAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1I,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7I,QAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,SAAS,IAAI,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/I,QAAQ,IAAI,CAAC,KAAK,GAAG,eAAe,CAAC,MAAM;AAC3C,YAAY,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;AACtC,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,kBAAkB,CAAC;AAClF,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,mCAAmC,CAAC;AAChG,YAAY,IAAI,MAAM,EAAE;AACxB,gBAAgB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC;AACzC,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM;AACjC,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa;AAC3C,YAAY,IAAI,IAAI,CAAC,SAAS,EAAE;AAChC,gBAAgB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC;AAClD,YAAY,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACrC,gBAAgB;AAChB,YAAY,IAAI,CAAC,WAAW,EAAE;AAC9B,YAAY,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC1C,gBAAgB;AAChB,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACzD,IAAI;AACJ,IAAI,KAAK;AACT,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;AAC1C,IAAI;AACJ,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE;AAClC,YAAY,QAAQ,CAAC,cAAc,EAAE;AACrC,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,oBAAoB;AACnF,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;AAC9D,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC9D,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE;AAChC,YAAY,IAAI,CAAC,cAAc,EAAE;AACjC,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC;AAC/E,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC;AAC9E,QAAQ,qBAAqB,CAAC,MAAM;AACpC,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,WAAW;AACzE,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;AACpE,YAAY,IAAI,IAAI,CAAC,gBAAgB,EAAE,KAAK,cAAc,EAAE;AAC5D,gBAAgB,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC;AACvE,gBAAgB,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;AAC7F,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC;AACxE,gBAAgB,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;AAC5F,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC;AAC3C,IAAI;AACJ,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM;AACrE,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,UAAU;AAChD,YAAY,IAAI,CAAC,OAAO,EAAE;AAC1B,QAAQ,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE;AACzC,YAAY,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,iBAAiB,EAAE;AACnE,YAAY,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;AAC1C,QAAQ;AACR,aAAa;AACb,YAAY,QAAQ,CAAC,cAAc,EAAE;AACrC,QAAQ;AACR,QAAQ,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,MAAM;AAC5D,YAAY,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE;AAC7C,gBAAgB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/C,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,QAAQ,UAAU,CAAC,MAAM;AACzB,YAAY,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM;AACzE,QAAQ,CAAC,EAAE,GAAG,CAAC;AACf,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;AACpC,YAAY,QAAQ,CAAC,cAAc,EAAE;AACrC,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC;AACjE,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC;AAChE,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE;AACxE,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE;AACtE,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE;AAChC,YAAY,IAAI,CAAC,WAAW,EAAE;AAC9B,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;AACjF,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC;AAC5E,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC;AACzC,IAAI;AACJ,IAAI,kBAAkB,CAAC,CAAC,EAAE;AAC1B,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,UAAU,IAAI,IAAI,CAAC,eAAe,EAAE;AAC/F,YAAY;AACZ,QAAQ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;AAClC,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC;AACpF,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC;AACnF,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC1D,QAAQ,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,0BAA0B,CAAC;AAC9D,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AAClC,YAAY,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC1E,QAAQ;AACR,aAAa;AACb,YAAY,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC;AAC7D,QAAQ;AACR,QAAQ,YAAY,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC,KAAK;AAC5D,YAAY,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;AAC5C,gBAAgB;AAChB,YAAY,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,aAAa,EAAE;AAC9C,gBAAgB,IAAI,CAAC,KAAK,EAAE;AAC5B,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,YAAY,CAAC;AACpD,IAAI;AACJ,IAAI,cAAc,GAAG;AACrB,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,2BAA2B,CAAC;AAC1F,QAAQ,IAAI,YAAY,EAAE;AAC1B,YAAY,YAAY,CAAC,MAAM,EAAE;AACjC,QAAQ;AACR,IAAI;AACJ,IAAI,kBAAkB,CAAC,CAAC,EAAE;AAC1B,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,UAAU,IAAI,IAAI,CAAC,eAAe,EAAE;AAC/F,YAAY;AACZ,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AAC/B,YAAY;AACZ,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;AAC1F,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;AACzF,QAAQ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5D,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AAC3D,IAAI;AACJ,IAAI,gBAAgB,GAAG;AACvB,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,UAAU,IAAI,IAAI,CAAC,eAAe,EAAE;AAC/F,YAAY;AACZ,QAAQ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;AACnC,IAAI;AACJ,IAAI,IAAI,IAAI,GAAG;AACf,QAAQ,OAAO,GAAG;AAClB,IAAI;AACJ,IAAI,aAAa,CAAC,CAAC,EAAE;AACrB,QAAQ,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACxD,YAAY,IAAI,CAAC,KAAK,EAAE;AACxB,QAAQ;AACR,IAAI;AACJ,IAAI,IAAI;AACR,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC3L,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,uBAAuB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,aAAa,EAAE,4BAA4B,EAAE,WAAW,EAAE,0BAA0B,EAAE,cAAc,EAAE,0BAA0B,EAAE,SAAS,EAAE,uBAAuB,EAAE,EAAE,UAAU,EAAE,EAAE,eAAe,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,sBAAsB,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,oBAAoB,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,m4DAAm4D,EAAE,MAAM,EAAE,CAAC,q1GAAq1G,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,mBAAmB,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,sCAAsC,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,kCAAkC,CAAC,EAAE,QAAQ,EAAE,CAAC,mBAAmB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,yBAAyB,EAAE,kBAAkB,EAAE,0BAA0B,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,wBAAwB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,2BAA2B,EAAE,QAAQ,EAAE,8IAA8I,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;AACnxP;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,UAAU,EAAE,CAAC;AACjI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,oBAAoB,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC,EAAE,QAAQ,EAAE,m4DAAm4D,EAAE,MAAM,EAAE,CAAC,q1GAAq1G,CAAC,EAAE;AAC/iL,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,kBAAkB,EAAE,CAAC;AACnD,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,IAAI,EAAE,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC;AAChD,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;AACnC,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;AAC9C,aAAa,EAAE;AACf,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,IAAI,EAAE,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC;AACjD,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC;AACvB,gBAAgB,IAAI,EAAE,WAAW;AACjC,gBAAgB,IAAI,EAAE,CAAC,eAAe;AACtC,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;AAChC,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;AAC5C,aAAa,CAAC,EAAE,EAAE,CAAC;;;;"}
1
+ {"version":3,"file":"acorex-components-modal-modal-content.component-BrqcqGTz.mjs","sources":["../tmp-esm2022/modal/lib/modal-content/modal-content.component.js"],"sourcesContent":["import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { AXFocusTrapDirective } from '@acorex/cdk/focus-trap';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { CommonModule } from '@angular/common';\nimport { afterNextRender, ChangeDetectionStrategy, Component, computed, effect, HostBinding, HostListener, inject, input, model, signal, TemplateRef, viewChild, ViewEncapsulation, } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { AXModalFooterComponent } from '../modal-footer/modal-footer.component';\nimport { AXModalStateService } from '../modal-state.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/cdk/focus-trap\";\nimport * as i2 from \"@angular/common\";\nimport * as i3 from \"@acorex/components/decorators\";\nexport class AXModalContentComponent extends NXComponent {\n constructor() {\n super(...arguments);\n this.__content__ = input.required(...(ngDevMode ? [{ debugName: \"__content__\" }] : []));\n this.id = input(...(ngDevMode ? [undefined, { debugName: \"id\" }] : []));\n this.inputs = model(...(ngDevMode ? [undefined, { debugName: \"inputs\" }] : []));\n this.serviceState = inject(AXModalStateService);\n this.sanitizer = inject(DomSanitizer);\n this.modalContainer = viewChild('c', ...(ngDevMode ? [{ debugName: \"modalContainer\" }] : []));\n this.footer = viewChild(AXModalFooterComponent, ...(ngDevMode ? [{ debugName: \"footer\" }] : []));\n this.isTemplate = computed(() => this.__content__() instanceof TemplateRef, ...(ngDevMode ? [{ debugName: \"isTemplate\" }] : []));\n this.isHtmlElement = computed(() => this.__content__() instanceof HTMLElement, ...(ngDevMode ? [{ debugName: \"isHtmlElement\" }] : []));\n this.component = computed(() => this.__content__(), ...(ngDevMode ? [{ debugName: \"component\" }] : []));\n this.template = computed(() => this.__content__(), ...(ngDevMode ? [{ debugName: \"template\" }] : []));\n this.element = computed(() => this.__content__(), ...(ngDevMode ? [{ debugName: \"element\" }] : []));\n this.modalSizeState = signal('normal', ...(ngDevMode ? [{ debugName: \"modalSizeState\" }] : []));\n this.fullScreenState = signal(false, ...(ngDevMode ? [{ debugName: \"fullScreenState\" }] : []));\n this.isMouseDown = signal(false, ...(ngDevMode ? [{ debugName: \"isMouseDown\" }] : []));\n this.offsetX = signal(0, ...(ngDevMode ? [{ debugName: \"offsetX\" }] : []));\n this.offsetY = signal(0, ...(ngDevMode ? [{ debugName: \"offsetY\" }] : []));\n this.prevLeft = signal('', ...(ngDevMode ? [{ debugName: \"prevLeft\" }] : []));\n this.prevTop = signal('', ...(ngDevMode ? [{ debugName: \"prevTop\" }] : []));\n this.backdropState = computed(() => this.serviceState.modalOption()?.backdrop?.enabled ?? true, ...(ngDevMode ? [{ debugName: \"backdropState\" }] : []));\n this.closeOnEscape = computed(() => this.serviceState.modalOption()?.closeOnEscape ?? true, ...(ngDevMode ? [{ debugName: \"closeOnEscape\" }] : []));\n this.panelClass = computed(() => this.serviceState.modalOption()?.panelClass ?? '', ...(ngDevMode ? [{ debugName: \"panelClass\" }] : []));\n this.headerState = computed(() => this.serviceState.modalOption()?.header ?? false, ...(ngDevMode ? [{ debugName: \"headerState\" }] : []));\n this.footerState = computed(() => this.serviceState.modalOption()?.footer ?? false, ...(ngDevMode ? [{ debugName: \"footerState\" }] : []));\n this.closeHeaderButton = computed(() => this.serviceState.modalOption()?.buttons?.close ?? true, ...(ngDevMode ? [{ debugName: \"closeHeaderButton\" }] : []));\n this.backdropBackground = computed(() => this.serviceState.modalOption()?.backdrop?.background ?? true, ...(ngDevMode ? [{ debugName: \"backdropBackground\" }] : []));\n this.backdropClass = computed(() => this.serviceState.modalOption()?.backdrop?.backdropClass ?? '', ...(ngDevMode ? [{ debugName: \"backdropClass\" }] : []));\n this.backdropCloseOnClick = computed(() => this.serviceState.modalOption()?.backdrop?.closeOnClick ?? true, ...(ngDevMode ? [{ debugName: \"backdropCloseOnClick\" }] : []));\n this.minimizePosition = computed(() => this.serviceState.modalOption()?.buttons?.minimize?.position ?? 'bottom-right', ...(ngDevMode ? [{ debugName: \"minimizePosition\" }] : []));\n this.minimizeState = computed(() => this.serviceState.modalOption()?.buttons?.minimize?.enable ?? false, ...(ngDevMode ? [{ debugName: \"minimizeState\" }] : []));\n this.maximizeState = computed(() => this.serviceState.modalOption()?.buttons?.maximize ?? false, ...(ngDevMode ? [{ debugName: \"maximizeState\" }] : []));\n this.modalSize = computed(() => this.serviceState.modalOption()?.size ?? 'lg', ...(ngDevMode ? [{ debugName: \"modalSize\" }] : []));\n this.headerTitle = computed(() => this.serviceState.modalOption()?.title ?? '', ...(ngDevMode ? [{ debugName: \"headerTitle\" }] : []));\n this.draggable = computed(() => this.serviceState.modalOption()?.draggable ?? true, ...(ngDevMode ? [{ debugName: \"draggable\" }] : []));\n this.#init = afterNextRender(() => {\n this.nativeElement.focus();\n const popFooter = this.nativeElement.querySelector('.ax-modal-footer');\n const footer = this.nativeElement.querySelector('.ax-modal-content ax-modal-footer');\n if (footer) {\n popFooter?.append(footer);\n }\n });\n this.#eff = effect(() => {\n const host = this.nativeElement;\n if (this.draggable())\n host.classList.add('ax-draggable');\n if (!this.backdropState())\n return;\n this.addBackdrop();\n if (!this.backdropBackground())\n return;\n }, ...(ngDevMode ? [{ debugName: \"#eff\" }] : []));\n }\n #init;\n close() {\n this.serviceState.close(this.id());\n }\n minimize() {\n if (this.fullScreenState())\n document.exitFullscreen();\n this.modalContainer().nativeElement.style.transition = 'all 200ms ease-out';\n this.modalContainer().nativeElement.style.top = `auto`;\n this.modalContainer().nativeElement.style.bottom = `0`;\n if (this.backdropState())\n this.removeBackdrop();\n this.modalContainer().nativeElement.classList.remove('ax-normal-modal');\n this.modalContainer().nativeElement.classList.add('ax-minimize-modal');\n requestAnimationFrame(() => {\n const width = this.modalContainer().nativeElement.offsetWidth;\n const index = this.serviceState.getMapIndexOf(this.id());\n if (this.minimizePosition() === 'bottom-right') {\n this.modalContainer().nativeElement.style.left = `auto`;\n this.modalContainer().nativeElement.style.right = `${index * (width + 10)}px`;\n }\n else {\n this.modalContainer().nativeElement.style.right = `auto`;\n this.modalContainer().nativeElement.style.left = `${index * (width + 10)}px`;\n }\n });\n this.modalSizeState.set('minimize');\n }\n maximize() {\n this.modalContainer().nativeElement.style.transition = 'none';\n if (this.modalSizeState() === 'minimize')\n this.restore();\n if (!document.fullscreenElement) {\n this.modalContainer().nativeElement.requestFullscreen();\n this.fullScreenState.set(true);\n }\n else {\n document.exitFullscreen();\n }\n document.addEventListener('fullscreenchange', () => {\n if (!document.fullscreenElement) {\n this.fullScreenState.set(false);\n }\n });\n }\n restore() {\n setTimeout(() => {\n this.modalContainer().nativeElement.style.transition = 'none';\n }, 200);\n if (this.fullScreenState()) {\n document.exitFullscreen();\n return;\n }\n this.modalContainer().nativeElement.style.bottom = `auto`;\n this.modalContainer().nativeElement.style.right = `auto`;\n this.modalContainer().nativeElement.style.left = this.prevLeft();\n this.modalContainer().nativeElement.style.top = this.prevTop();\n if (this.backdropState())\n this.addBackdrop();\n this.modalContainer().nativeElement.classList.remove(`ax-minimize-modal`);\n this.modalContainer().nativeElement.classList.add('ax-normal-modal');\n this.modalSizeState.set('normal');\n }\n pointerDownHandler(e) {\n if (!this.draggable() || this.modalSizeState() === 'minimize' || this.fullScreenState())\n return;\n this.isMouseDown.set(true);\n this.offsetX.set(e.clientX - this.modalContainer().nativeElement.offsetLeft);\n this.offsetY.set(e.clientY - this.modalContainer().nativeElement.offsetTop);\n }\n addBackdrop() {\n const backdropElem = document.createElement('div');\n backdropElem.classList.add('ax-modal-drawer-backdrop');\n if (this.backdropClass()) {\n backdropElem.classList.add(...this.backdropClass().split(' '));\n }\n else {\n backdropElem.classList.add('ax-default-backdrop');\n }\n backdropElem.addEventListener('pointerdown', (e) => {\n if (!this.backdropCloseOnClick())\n return;\n if (e.target === e.currentTarget) {\n this.close();\n }\n });\n this.nativeElement.appendChild(backdropElem);\n }\n removeBackdrop() {\n const backdropElem = this.nativeElement.querySelector('.ax-modal-drawer-backdrop');\n if (backdropElem) {\n backdropElem.remove();\n }\n }\n pointerMoveHandler(e) {\n if (!this.draggable() || this.modalSizeState() === 'minimize' || this.fullScreenState())\n return;\n if (!this.isMouseDown())\n return;\n this.modalContainer().nativeElement.style.left = `${e.clientX - this.offsetX()}px`;\n this.modalContainer().nativeElement.style.top = `${e.clientY - this.offsetY()}px`;\n this.prevLeft.set(`${e.clientX - this.offsetX()}px`);\n this.prevTop.set(`${e.clientY - this.offsetY()}px`);\n }\n pointerUpHandler() {\n if (!this.draggable() || this.modalSizeState() === 'minimize' || this.fullScreenState())\n return;\n this.isMouseDown.set(false);\n }\n get role() {\n return '0';\n }\n escapeHandler(e) {\n if (e.key === 'Escape' && this.closeOnEscape()) {\n this.close();\n }\n }\n #eff;\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXModalContentComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXModalContentComponent, isStandalone: true, selector: \"ax-modal-content\", inputs: { __content__: { classPropertyName: \"__content__\", publicName: \"__content__\", isSignal: true, isRequired: true, transformFunction: null }, id: { classPropertyName: \"id\", publicName: \"id\", isSignal: true, isRequired: false, transformFunction: null }, inputs: { classPropertyName: \"inputs\", publicName: \"inputs\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { inputs: \"inputsChange\" }, host: { listeners: { \"pointermove\": \"pointerMoveHandler($event)\", \"pointerup\": \"pointerUpHandler($event)\", \"pointerleave\": \"pointerUpHandler($event)\", \"keydown\": \"escapeHandler($event)\" }, properties: { \"attr.tabindex\": \"this.role\" } }, providers: [{ provide: AXComponent, useExisting: AXModalContentComponent }], viewQueries: [{ propertyName: \"modalContainer\", first: true, predicate: [\"c\"], descendants: true, isSignal: true }, { propertyName: \"footer\", first: true, predicate: AXModalFooterComponent, descendants: true, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: i1.AXFocusTrapDirective }], ngImport: i0, template: \"<div\\n #c\\n class=\\\"ax-modal-container ax-{{ modalSizeState() }}-modal ax-modal-{{ modalSize() }} {{ panelClass() }}\\\"\\n animate.enter=\\\"ax-fade-slide-in\\\"\\n animate.leave=\\\"ax-fade-slide-out\\\"\\n>\\n @if (headerState()) {\\n <div (pointerdown)=\\\"pointerDownHandler($event)\\\" class=\\\"ax-modal-header\\\">\\n <ax-text>{{ headerTitle() }}</ax-text>\\n\\n <div>\\n @if (minimizeState()) {\\n <ax-button class=\\\"ax-sm\\\" (onClick)=\\\"minimize()\\\" look=\\\"blank\\\" color=\\\"default\\\">\\n <ax-icon class=\\\"ax-icon ax-icon-minimize\\\"> </ax-icon>\\n </ax-button>\\n }\\n\\n @if (modalSizeState() !== 'normal' || fullScreenState()) {\\n <ax-button class=\\\"ax-sm\\\" (onClick)=\\\"restore()\\\" look=\\\"blank\\\" color=\\\"default\\\">\\n <ax-icon class=\\\"ax-icon ax-icon-maximize\\\"> </ax-icon>\\n </ax-button>\\n }\\n\\n @if (maximizeState()) {\\n <ax-button class=\\\"ax-sm\\\" (onClick)=\\\"maximize()\\\" look=\\\"blank\\\" color=\\\"default\\\">\\n <ax-icon class=\\\"ax-icon ax-icon-full-screen\\\"> </ax-icon>\\n </ax-button>\\n }\\n\\n @if (closeHeaderButton()) {\\n <ax-button class=\\\"ax-sm\\\" look=\\\"blank\\\" (onClick)=\\\"close()\\\" color=\\\"default\\\">\\n <ax-icon class=\\\"ax-icon ax-icon-close\\\"> </ax-icon>\\n </ax-button>\\n }\\n </div>\\n </div>\\n }\\n\\n <div class=\\\"ax-modal-content\\\">\\n @if (isTemplate()) {\\n <ng-container [ngTemplateOutlet]=\\\"this.template()\\\" [ngTemplateOutletContext]=\\\"inputs()\\\"></ng-container>\\n } @else if (isHtmlElement()) {\\n <div [innerHTML]=\\\"sanitizer.bypassSecurityTrustHtml(this.element().outerHTML)\\\"></div>\\n } @else {\\n <ng-container [ngComponentOutlet]=\\\"this.component()\\\" [ngComponentOutletInputs]=\\\"inputs()\\\"></ng-container>\\n }\\n </div>\\n\\n @if (footerState()) {\\n <div class=\\\"ax-modal-footer\\\"></div>\\n }\\n</div>\\n\", styles: [\"ax-modal-content{touch-action:none;-webkit-user-select:none;user-select:none}ax-modal-content .ax-modal-drawer-backdrop{position:fixed;top:0;left:0;z-index:50;width:100vw;height:calc(100 * var(--ax-vh))}ax-modal-content .ax-modal-drawer-backdrop.ax-default-backdrop{background-color:#00000080}ax-modal-content.ax-draggable .ax-modal-header:hover{cursor:move}ax-modal-content .ax-modal-container{overflow:hidden;position:fixed;z-index:55;background-color:rgba(var(--ax-comp-modal-bg-color, var(--ax-sys-color-lightest-surface)));display:flex;flex-direction:column;justify-content:space-between;border-radius:var(--ax-comp-modal-border-radius, var(--ax-sys-border-radius));border:var(--ax-comp-modal-border-width, 1px) solid rgba(var(--ax-comp-modal-border-color, var(--ax-sys-color-border-lightest-surface)));max-height:90vh;max-width:100vw}ax-modal-content .ax-modal-container.ax-modal-full{max-height:100vh!important;width:100%;height:100%}ax-modal-content .ax-modal-container.ax-modal-fit{width:fit-content}@media (min-width: 320px) and (max-width: 640px){ax-modal-content .ax-modal-container.ax-modal-sm,ax-modal-content .ax-modal-container.ax-modal-md,ax-modal-content .ax-modal-container.ax-modal-lg,ax-modal-content .ax-modal-container.ax-modal-fit{width:93vw}}@media (min-width: 768px){ax-modal-content .ax-modal-container.ax-modal-sm{width:55vw}ax-modal-content .ax-modal-container.ax-modal-md{width:65vw}ax-modal-content .ax-modal-container.ax-modal-lg{width:75vw}}@media (min-width: 1280px){ax-modal-content .ax-modal-container.ax-modal-sm{width:30vw}ax-modal-content .ax-modal-container.ax-modal-md{width:50vw}ax-modal-content .ax-modal-container.ax-modal-lg{width:85vw}}@media (min-width: 1536px){ax-modal-content .ax-modal-container.ax-modal-sm{width:25vw}ax-modal-content .ax-modal-container.ax-modal-md{width:40vw}ax-modal-content .ax-modal-container.ax-modal-lg{width:65vw}}ax-modal-content .ax-modal-container.ax-normal-modal{top:50%;left:50%;transform:translate(-50%,-50%)}ax-modal-content .ax-modal-container.ax-normal-modal .ax-modal-content{display:block}ax-modal-content .ax-modal-container.ax-normal-modal .ax-modal-footer{display:block}ax-modal-content .ax-modal-container.ax-minimize-modal{width:fit-content}ax-modal-content .ax-modal-container.ax-minimize-modal .ax-modal-content{display:none}ax-modal-content .ax-modal-container.ax-minimize-modal .ax-modal-footer{display:none}ax-modal-content .ax-modal-container .ax-modal-header,ax-modal-content .ax-modal-container .ax-modal-footer{padding:.5rem}ax-modal-content .ax-modal-container .ax-modal-header,ax-modal-content .ax-modal-container .ax-modal-footer{height:fit-content}ax-modal-content .ax-modal-container .ax-modal-content{flex-grow:1}ax-modal-content .ax-modal-container .ax-modal-header{display:flex;justify-content:space-between;align-items:center;gap:.5rem;border-bottom:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-modal-content .ax-modal-container .ax-modal-footer{border-top:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}@keyframes fadeSlideIn{0%{opacity:0;scale:.8}}ax-modal-content .ax-fade-slide-in{transform-origin:top left;animation:fadeSlideIn var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function)}ax-modal-content .ax-fade-slide-out{transform-origin:top left;animation:fadeSlideOut var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function)}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i2.NgComponentOutlet, selector: \"[ngComponentOutlet]\", inputs: [\"ngComponentOutlet\", \"ngComponentOutletInputs\", \"ngComponentOutletInjector\", \"ngComponentOutletEnvironmentInjector\", \"ngComponentOutletContent\", \"ngComponentOutletNgModule\", \"ngComponentOutletNgModuleFactory\"], exportAs: [\"ngComponentOutlet\"] }, { kind: \"directive\", type: i2.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i3.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i3.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXModalContentComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-modal-content', imports: [CommonModule, AXButtonComponent, AXDecoratorModule], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [AXFocusTrapDirective], providers: [{ provide: AXComponent, useExisting: AXModalContentComponent }], template: \"<div\\n #c\\n class=\\\"ax-modal-container ax-{{ modalSizeState() }}-modal ax-modal-{{ modalSize() }} {{ panelClass() }}\\\"\\n animate.enter=\\\"ax-fade-slide-in\\\"\\n animate.leave=\\\"ax-fade-slide-out\\\"\\n>\\n @if (headerState()) {\\n <div (pointerdown)=\\\"pointerDownHandler($event)\\\" class=\\\"ax-modal-header\\\">\\n <ax-text>{{ headerTitle() }}</ax-text>\\n\\n <div>\\n @if (minimizeState()) {\\n <ax-button class=\\\"ax-sm\\\" (onClick)=\\\"minimize()\\\" look=\\\"blank\\\" color=\\\"default\\\">\\n <ax-icon class=\\\"ax-icon ax-icon-minimize\\\"> </ax-icon>\\n </ax-button>\\n }\\n\\n @if (modalSizeState() !== 'normal' || fullScreenState()) {\\n <ax-button class=\\\"ax-sm\\\" (onClick)=\\\"restore()\\\" look=\\\"blank\\\" color=\\\"default\\\">\\n <ax-icon class=\\\"ax-icon ax-icon-maximize\\\"> </ax-icon>\\n </ax-button>\\n }\\n\\n @if (maximizeState()) {\\n <ax-button class=\\\"ax-sm\\\" (onClick)=\\\"maximize()\\\" look=\\\"blank\\\" color=\\\"default\\\">\\n <ax-icon class=\\\"ax-icon ax-icon-full-screen\\\"> </ax-icon>\\n </ax-button>\\n }\\n\\n @if (closeHeaderButton()) {\\n <ax-button class=\\\"ax-sm\\\" look=\\\"blank\\\" (onClick)=\\\"close()\\\" color=\\\"default\\\">\\n <ax-icon class=\\\"ax-icon ax-icon-close\\\"> </ax-icon>\\n </ax-button>\\n }\\n </div>\\n </div>\\n }\\n\\n <div class=\\\"ax-modal-content\\\">\\n @if (isTemplate()) {\\n <ng-container [ngTemplateOutlet]=\\\"this.template()\\\" [ngTemplateOutletContext]=\\\"inputs()\\\"></ng-container>\\n } @else if (isHtmlElement()) {\\n <div [innerHTML]=\\\"sanitizer.bypassSecurityTrustHtml(this.element().outerHTML)\\\"></div>\\n } @else {\\n <ng-container [ngComponentOutlet]=\\\"this.component()\\\" [ngComponentOutletInputs]=\\\"inputs()\\\"></ng-container>\\n }\\n </div>\\n\\n @if (footerState()) {\\n <div class=\\\"ax-modal-footer\\\"></div>\\n }\\n</div>\\n\", styles: [\"ax-modal-content{touch-action:none;-webkit-user-select:none;user-select:none}ax-modal-content .ax-modal-drawer-backdrop{position:fixed;top:0;left:0;z-index:50;width:100vw;height:calc(100 * var(--ax-vh))}ax-modal-content .ax-modal-drawer-backdrop.ax-default-backdrop{background-color:#00000080}ax-modal-content.ax-draggable .ax-modal-header:hover{cursor:move}ax-modal-content .ax-modal-container{overflow:hidden;position:fixed;z-index:55;background-color:rgba(var(--ax-comp-modal-bg-color, var(--ax-sys-color-lightest-surface)));display:flex;flex-direction:column;justify-content:space-between;border-radius:var(--ax-comp-modal-border-radius, var(--ax-sys-border-radius));border:var(--ax-comp-modal-border-width, 1px) solid rgba(var(--ax-comp-modal-border-color, var(--ax-sys-color-border-lightest-surface)));max-height:90vh;max-width:100vw}ax-modal-content .ax-modal-container.ax-modal-full{max-height:100vh!important;width:100%;height:100%}ax-modal-content .ax-modal-container.ax-modal-fit{width:fit-content}@media (min-width: 320px) and (max-width: 640px){ax-modal-content .ax-modal-container.ax-modal-sm,ax-modal-content .ax-modal-container.ax-modal-md,ax-modal-content .ax-modal-container.ax-modal-lg,ax-modal-content .ax-modal-container.ax-modal-fit{width:93vw}}@media (min-width: 768px){ax-modal-content .ax-modal-container.ax-modal-sm{width:55vw}ax-modal-content .ax-modal-container.ax-modal-md{width:65vw}ax-modal-content .ax-modal-container.ax-modal-lg{width:75vw}}@media (min-width: 1280px){ax-modal-content .ax-modal-container.ax-modal-sm{width:30vw}ax-modal-content .ax-modal-container.ax-modal-md{width:50vw}ax-modal-content .ax-modal-container.ax-modal-lg{width:85vw}}@media (min-width: 1536px){ax-modal-content .ax-modal-container.ax-modal-sm{width:25vw}ax-modal-content .ax-modal-container.ax-modal-md{width:40vw}ax-modal-content .ax-modal-container.ax-modal-lg{width:65vw}}ax-modal-content .ax-modal-container.ax-normal-modal{top:50%;left:50%;transform:translate(-50%,-50%)}ax-modal-content .ax-modal-container.ax-normal-modal .ax-modal-content{display:block}ax-modal-content .ax-modal-container.ax-normal-modal .ax-modal-footer{display:block}ax-modal-content .ax-modal-container.ax-minimize-modal{width:fit-content}ax-modal-content .ax-modal-container.ax-minimize-modal .ax-modal-content{display:none}ax-modal-content .ax-modal-container.ax-minimize-modal .ax-modal-footer{display:none}ax-modal-content .ax-modal-container .ax-modal-header,ax-modal-content .ax-modal-container .ax-modal-footer{padding:.5rem}ax-modal-content .ax-modal-container .ax-modal-header,ax-modal-content .ax-modal-container .ax-modal-footer{height:fit-content}ax-modal-content .ax-modal-container .ax-modal-content{flex-grow:1}ax-modal-content .ax-modal-container .ax-modal-header{display:flex;justify-content:space-between;align-items:center;gap:.5rem;border-bottom:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-modal-content .ax-modal-container .ax-modal-footer{border-top:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}@keyframes fadeSlideIn{0%{opacity:0;scale:.8}}ax-modal-content .ax-fade-slide-in{transform-origin:top left;animation:fadeSlideIn var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function)}ax-modal-content .ax-fade-slide-out{transform-origin:top left;animation:fadeSlideOut var(--ax-sys-transition-duration) var(--ax-sys-transition-timing-function)}\\n\"] }]\n }], propDecorators: { pointerMoveHandler: [{\n type: HostListener,\n args: ['pointermove', ['$event']]\n }], pointerUpHandler: [{\n type: HostListener,\n args: ['pointerup', ['$event']]\n }, {\n type: HostListener,\n args: ['pointerleave', ['$event']]\n }], role: [{\n type: HostBinding,\n args: ['attr.tabindex']\n }], escapeHandler: [{\n type: HostListener,\n args: ['keydown', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL21vZGFsL3NyYy9saWIvbW9kYWwtY29udGVudC9tb2RhbC1jb250ZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvbW9kYWwvc3JjL2xpYi9tb2RhbC1jb250ZW50L21vZGFsLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBRU4sV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7OztBQVk3RCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsV0FBVztJQVZ4RDs7UUFXRSxnQkFBVyxHQUFHLEtB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QkFBdUIsZ3RCQUZ2QixDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQyx3S0FVdEIsc0JBQXNCLGlKQzdDN0UsbTREQW9EQSw0NEdEckJZLFlBQVksdWhCQUFFLGlCQUFpQiwwVUFBRSxpQkFBaUI7OzJGQU1qRCx1QkFBdUI7a0JBVm5DLFNBQVM7K0JBQ0Usa0JBQWtCLFdBR25CLENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDLGlCQUM5QyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGtCQUMvQixDQUFDLG9CQUFvQixDQUFDLGFBQzNCLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcseUJBQXlCLEVBQUUsQ0FBQzs4QkErSmpFLGtCQUFrQjtzQkFEM0IsWUFBWTt1QkFBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBWTdCLGdCQUFnQjtzQkFGekIsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUNwQyxZQUFZO3VCQUFDLGNBQWMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFNTixJQUFJO3NCQUFyQyxXQUFXO3VCQUFDLGVBQWU7Z0JBS2xCLGFBQWE7c0JBRHRCLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDb21wb25lbnQsIE5YQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYRm9jdXNUcmFwRGlyZWN0aXZlIH0gZnJvbSAnQGFjb3JleC9jZGsvZm9jdXMtdHJhcCc7XG5pbXBvcnQgeyBBWEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWENvbXBvbmVudENvbnRlbnQsIEFYQ29tcG9uZW50SW5wdXRzLCBBWENvbXBvbmVudFR5cGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgYWZ0ZXJOZXh0UmVuZGVyLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBtb2RlbCxcbiAgc2lnbmFsLFxuICBUZW1wbGF0ZVJlZixcbiAgdmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEFYTW9kYWxGb290ZXJDb21wb25lbnQgfSBmcm9tICcuLi9tb2RhbC1mb290ZXIvbW9kYWwtZm9vdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWE1vZGFsU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vbW9kYWwtc3RhdGUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LW1vZGFsLWNvbnRlbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwtY29udGVudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9tb2RhbC1jb250ZW50LmNvbXBvbmVudC5zY3NzJyxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQVhCdXR0b25Db21wb25lbnQsIEFYRGVjb3JhdG9yTW9kdWxlXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3REaXJlY3RpdmVzOiBbQVhGb2N1c1RyYXBEaXJlY3RpdmVdLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhNb2RhbENvbnRlbnRDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYTW9kYWxDb250ZW50Q29tcG9uZW50IGV4dGVuZHMgTlhDb21wb25lbnQge1xuICBfX2NvbnRlbnRfXyA9IGlucHV0LnJlcXVpcmVkPEFYQ29tcG9uZW50Q29udGVudCB8IEhUTUxFbGVtZW50PigpO1xuICBwdWJsaWMgaWQgPSBpbnB1dDxudW1iZXI+KCk7XG4gIHB1YmxpYyBpbnB1dHMgPSBtb2RlbDxBWENvbXBvbmVudElucHV0cz4oKTtcbiAgcHJpdmF0ZSBzZXJ2aWNlU3RhdGUgPSBpbmplY3QoQVhNb2RhbFN0YXRlU2VydmljZSk7XG4gIHByb3RlY3RlZCBzYW5pdGl6ZXIgPSBpbmplY3QoRG9tU2FuaXRpemVyKTtcblxuICBwcm90ZWN0ZWQgbW9kYWxDb250YWluZXIgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZj4oJ2MnKTtcbiAgcHJvdGVjdGVkIGZvb3RlciA9IHZpZXdDaGlsZDxBWE1vZGFsRm9vdGVyQ29tcG9uZW50PihBWE1vZGFsRm9vdGVyQ29tcG9uZW50KTtcblxuICBwcm90ZWN0ZWQgaXNUZW1wbGF0ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX19jb250ZW50X18oKSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKTtcbiAgcHJvdGVjdGVkIGlzSHRtbEVsZW1lbnQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9fY29udGVudF9fKCkgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCk7XG5cbiAgcHVibGljIGNvbXBvbmVudCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX19jb250ZW50X18oKSBhcyBBWENvbXBvbmVudFR5cGU8YW55Pik7XG4gIHB1YmxpYyB0ZW1wbGF0ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX19jb250ZW50X18oKSBhcyBUZW1wbGF0ZVJlZjxhbnk+KTtcbiAgcHVibGljIGVsZW1lbnQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9fY29udGVudF9fKCkgYXMgSFRNTEVsZW1lbnQpO1xuXG4gIHByb3RlY3RlZCBtb2RhbFNpemVTdGF0ZSA9IHNpZ25hbDwnbWluaW1pemUnIHwgJ25vcm1hbCc+KCdub3JtYWwnKTtcbiAgcHJvdGVjdGVkIGZ1bGxTY3JlZW5TdGF0ZSA9IHNpZ25hbChmYWxzZSk7XG4gIHByaXZhdGUgaXNNb3VzZURvd24gPSBzaWduYWwoZmFsc2UpO1xuICBwcml2YXRlIG9mZnNldFggPSBzaWduYWwoMCk7XG4gIHByaXZhdGUgb2Zmc2V0WSA9IHNpZ25hbCgwKTtcbiAgcHJpdmF0ZSBwcmV2TGVmdCA9IHNpZ25hbCgnJyk7XG4gIHByaXZhdGUgcHJldlRvcCA9IHNpZ25hbCgnJyk7XG4gIHByaXZhdGUgYmFja2Ryb3BTdGF0ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc2VydmljZVN0YXRlLm1vZGFsT3B0aW9uKCk/LmJhY2tkcm9wPy5lbmFibGVkID8/IHRydWUpO1xuICBwcml2YXRlIGNsb3NlT25Fc2NhcGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNlcnZpY2VTdGF0ZS5tb2RhbE9wdGlvbigpPy5jbG9zZU9uRXNjYXBlID8/IHRydWUpO1xuICBwcm90ZWN0ZWQgcGFuZWxDbGFzcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc2VydmljZVN0YXRlLm1vZGFsT3B0aW9uKCk/LnBhbmVsQ2xhc3MgPz8gJycpO1xuICBwcm90ZWN0ZWQgaGVhZGVyU3RhdGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNlcnZpY2VTdGF0ZS5tb2RhbE9wdGlvbigpPy5oZWFkZXIgPz8gZmFsc2UpO1xuICBwcm90ZWN0ZWQgZm9vdGVyU3RhdGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNlcnZpY2VTdGF0ZS5tb2RhbE9wdGlvbigpPy5mb290ZXIgPz8gZmFsc2UpO1xuICBwcm90ZWN0ZWQgY2xvc2VIZWFkZXJCdXR0b24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNlcnZpY2VTdGF0ZS5tb2RhbE9wdGlvbigpPy5idXR0b25zPy5jbG9zZSA/PyB0cnVlKTtcbiAgcHJpdmF0ZSBiYWNrZHJvcEJhY2tncm91bmQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNlcnZpY2VTdGF0ZS5tb2RhbE9wdGlvbigpPy5iYWNrZHJvcD8uYmFja2dyb3VuZCA/PyB0cnVlKTtcbiAgcHJpdmF0ZSBiYWNrZHJvcENsYXNzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zZXJ2aWNlU3RhdGUubW9kYWxPcHRpb24oKT8uYmFja2Ryb3A/LmJhY2tkcm9wQ2xhc3MgPz8gJycpO1xuICBwcml2YXRlIGJhY2tkcm9wQ2xvc2VPbkNsaWNrID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zZXJ2aWNlU3RhdGUubW9kYWxPcHRpb24oKT8uYmFja2Ryb3A/LmNsb3NlT25DbGljayA/PyB0cnVlKTtcbiAgcHJpdmF0ZSBtaW5pbWl6ZVBvc2l0aW9uID0gY29tcHV0ZWQoXG4gICAgKCkgPT4gdGhpcy5zZXJ2aWNlU3RhdGUubW9kYWxPcHRpb24oKT8uYnV0dG9ucz8ubWluaW1pemU/LnBvc2l0aW9uID8/ICdib3R0b20tcmlnaHQnLFxuICApO1xuICBwcm90ZWN0ZWQgbWluaW1pemVTdGF0ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc2VydmljZVN0YXRlLm1vZGFsT3B0aW9uKCk/LmJ1dHRvbnM/Lm1pbmltaXplPy5lbmFibGUgPz8gZmFsc2UpO1xuICBwcm90ZWN0ZWQgbWF4aW1pemVTdGF0ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc2VydmljZVN0YXRlLm1vZGFsT3B0aW9uKCk/LmJ1dHRvbnM/Lm1heGltaXplID8/IGZhbHNlKTtcbiAgcHJvdGVjdGVkIG1vZGFsU2l6ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc2VydmljZVN0YXRlLm1vZGFsT3B0aW9uKCk/LnNpemUgPz8gJ2xnJyk7XG4gIHByb3RlY3RlZCBoZWFkZXJUaXRsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc2VydmljZVN0YXRlLm1vZGFsT3B0aW9uKCk/LnRpdGxlID8/ICcnKTtcbiAgcHJpdmF0ZSBkcmFnZ2FibGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNlcnZpY2VTdGF0ZS5tb2RhbE9wdGlvbigpPy5kcmFnZ2FibGUgPz8gdHJ1ZSk7XG5cbiAgI2luaXQgPSBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICAgIHRoaXMubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIGNvbnN0IHBvcEZvb3RlciA9IHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PignLmF4LW1vZGFsLWZvb3RlcicpO1xuICAgIGNvbnN0IGZvb3RlciA9IHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PignLmF4LW1vZGFsLWNvbnRlbnQgYXgtbW9kYWwtZm9vdGVyJyk7XG4gICAgaWYgKGZvb3Rlcikge1xuICAgICAgcG9wRm9vdGVyPy5hcHBlbmQoZm9vdGVyKTtcbiAgICB9XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBjbG9zZSgpIHtcbiAgICB0aGlzLnNlcnZpY2VTdGF0ZS5jbG9zZSh0aGlzLmlkKCkpO1xuICB9XG5cbiAgbWluaW1pemUoKSB7XG4gICAgaWYgKHRoaXMuZnVsbFNjcmVlblN0YXRlKCkpIGRvY3VtZW50LmV4aXRGdWxsc2NyZWVuKCk7XG4gICAgdGhpcy5tb2RhbENvbnRhaW5lcigpLm5hdGl2ZUVsZW1lbnQuc3R5bGUudHJhbnNpdGlvbiA9ICdhbGwgMjAwbXMgZWFzZS1vdXQnO1xuXG4gICAgdGhpcy5tb2RhbENvbnRhaW5lcigpLm5hdGl2ZUVsZW1lbnQuc3R5bGUudG9wID0gYGF1dG9gO1xuICAgIHRoaXMubW9kYWxDb250YWluZXIoKS5uYXRpdmVFbGVtZW50LnN0eWxlLmJvdHRvbSA9IGAwYDtcblxuICAgIGlmICh0aGlzLmJhY2tkcm9wU3RhdGUoKSkgdGhpcy5yZW1vdmVCYWNrZHJvcCgpO1xuICAgIHRoaXMubW9kYWxDb250YWluZXIoKS5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2F4LW5vcm1hbC1tb2RhbCcpO1xuICAgIHRoaXMubW9kYWxDb250YWluZXIoKS5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2F4LW1pbmltaXplLW1vZGFsJyk7XG5cbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgY29uc3Qgd2lkdGggPSB0aGlzLm1vZGFsQ29udGFpbmVyKCkubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZXJ2aWNlU3RhdGUuZ2V0TWFwSW5kZXhPZih0aGlzLmlkKCkpO1xuXG4gICAgICBpZiAodGhpcy5taW5pbWl6ZVBvc2l0aW9uKCkgPT09ICdib3R0b20tcmlnaHQnKSB7XG4gICAgICAgIHRoaXMubW9kYWxDb250YWluZXIoKS5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSBgYXV0b2A7XG4gICAgICAgIHRoaXMubW9kYWxDb250YWluZXIoKS5uYXRpdmVFbGVtZW50LnN0eWxlLnJpZ2h0ID0gYCR7aW5kZXggKiAod2lkdGggKyAxMCl9cHhgO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5tb2RhbENvbnRhaW5lcigpLm5hdGl2ZUVsZW1lbnQuc3R5bGUucmlnaHQgPSBgYXV0b2A7XG4gICAgICAgIHRoaXMubW9kYWxDb250YWluZXIoKS5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSBgJHtpbmRleCAqICh3aWR0aCArIDEwKX1weGA7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLm1vZGFsU2l6ZVN0YXRlLnNldCgnbWluaW1pemUnKTtcbiAgfVxuXG4gIG1heGltaXplKCkge1xuICAgIHRoaXMubW9kYWxDb250YWluZXIoKS5uYXRpdmVFbGVtZW50LnN0eWxlLnRyYW5zaXRpb24gPSAnbm9uZSc7XG5cbiAgICBpZiAodGhpcy5tb2RhbFNpemVTdGF0ZSgpID09PSAnbWluaW1pemUnKSB0aGlzLnJlc3RvcmUoKTtcblxuICAgIGlmICghZG9jdW1lbnQuZnVsbHNjcmVlbkVsZW1lbnQpIHtcbiAgICAgIHRoaXMubW9kYWxDb250YWluZXIoKS5uYXRpdmVFbGVtZW50LnJlcXVlc3RGdWxsc2NyZWVuKCk7XG4gICAgICB0aGlzLmZ1bGxTY3JlZW5TdGF0ZS5zZXQodHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRvY3VtZW50LmV4aXRGdWxsc2NyZWVuKCk7XG4gICAgfVxuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZnVsbHNjcmVlbmNoYW5nZScsICgpID0+IHtcbiAgICAgIGlmICghZG9jdW1lbnQuZnVsbHNjcmVlbkVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5mdWxsU2NyZWVuU3RhdGUuc2V0KGZhbHNlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJlc3RvcmUoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLm1vZGFsQ29udGFpbmVyKCkubmF0aXZlRWxlbWVudC5zdHlsZS50cmFuc2l0aW9uID0gJ25vbmUnO1xuICAgIH0sIDIwMCk7XG5cbiAgICBpZiAodGhpcy5mdWxsU2NyZWVuU3RhdGUoKSkge1xuICAgICAgZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4oKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm1vZGFsQ29udGFpbmVyKCkubmF0aXZlRWxlbWVudC5zdHlsZS5ib3R0b20gPSBgYXV0b2A7XG4gICAgdGhpcy5tb2RhbENvbnRhaW5lcigpLm5hdGl2ZUVsZW1lbnQuc3R5bGUucmlnaHQgPSBgYXV0b2A7XG4gICAgdGhpcy5tb2RhbENvbnRhaW5lcigpLm5hdGl2ZUVsZW1lbnQuc3R5bGUubGVmdCA9IHRoaXMucHJldkxlZnQoKTtcbiAgICB0aGlzLm1vZGFsQ29udGFpbmVyKCkubmF0aXZlRWxlbWVudC5zdHlsZS50b3AgPSB0aGlzLnByZXZUb3AoKTtcblxuICAgIGlmICh0aGlzLmJhY2tkcm9wU3RhdGUoKSkgdGhpcy5hZGRCYWNrZHJvcCgpO1xuICAgIHRoaXMubW9kYWxDb250YWluZXIoKS5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoYGF4LW1pbmltaXplLW1vZGFsYCk7XG4gICAgdGhpcy5tb2RhbENvbnRhaW5lcigpLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnYXgtbm9ybWFsLW1vZGFsJyk7XG4gICAgdGhpcy5tb2RhbFNpemVTdGF0ZS5zZXQoJ25vcm1hbCcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBvaW50ZXJEb3duSGFuZGxlcihlOiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLmRyYWdnYWJsZSgpIHx8IHRoaXMubW9kYWxTaXplU3RhdGUoKSA9PT0gJ21pbmltaXplJyB8fCB0aGlzLmZ1bGxTY3JlZW5TdGF0ZSgpKSByZXR1cm47XG4gICAgdGhpcy5pc01vdXNlRG93bi5zZXQodHJ1ZSk7XG4gICAgdGhpcy5vZmZzZXRYLnNldChlLmNsaWVudFggLSB0aGlzLm1vZGFsQ29udGFpbmVyKCkubmF0aXZlRWxlbWVudC5vZmZzZXRMZWZ0KTtcbiAgICB0aGlzLm9mZnNldFkuc2V0KGUuY2xpZW50WSAtIHRoaXMubW9kYWxDb250YWluZXIoKS5uYXRpdmVFbGVtZW50Lm9mZnNldFRvcCk7XG4gIH1cblxuICBwcml2YXRlIGFkZEJhY2tkcm9wKCkge1xuICAgIGNvbnN0IGJhY2tkcm9wRWxlbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIGJhY2tkcm9wRWxlbS5jbGFzc0xpc3QuYWRkKCdheC1tb2RhbC1kcmF3ZXItYmFja2Ryb3AnKTtcblxuICAgIGlmICh0aGlzLmJhY2tkcm9wQ2xhc3MoKSkge1xuICAgICAgYmFja2Ryb3BFbGVtLmNsYXNzTGlzdC5hZGQoLi4udGhpcy5iYWNrZHJvcENsYXNzKCkuc3BsaXQoJyAnKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJhY2tkcm9wRWxlbS5jbGFzc0xpc3QuYWRkKCdheC1kZWZhdWx0LWJhY2tkcm9wJyk7XG4gICAgfVxuXG4gICAgYmFja2Ryb3BFbGVtLmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGlmICghdGhpcy5iYWNrZHJvcENsb3NlT25DbGljaygpKSByZXR1cm47XG4gICAgICBpZiAoZS50YXJnZXQgPT09IGUuY3VycmVudFRhcmdldCkge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQoYmFja2Ryb3BFbGVtKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlQmFja2Ryb3AoKSB7XG4gICAgY29uc3QgYmFja2Ryb3BFbGVtID0gdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5heC1tb2RhbC1kcmF3ZXItYmFja2Ryb3AnKTtcbiAgICBpZiAoYmFja2Ryb3BFbGVtKSB7XG4gICAgICBiYWNrZHJvcEVsZW0ucmVtb3ZlKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigncG9pbnRlcm1vdmUnLCBbJyRldmVudCddKVxuICBwcm90ZWN0ZWQgcG9pbnRlck1vdmVIYW5kbGVyKGU6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuZHJhZ2dhYmxlKCkgfHwgdGhpcy5tb2RhbFNpemVTdGF0ZSgpID09PSAnbWluaW1pemUnIHx8IHRoaXMuZnVsbFNjcmVlblN0YXRlKCkpIHJldHVybjtcbiAgICBpZiAoIXRoaXMuaXNNb3VzZURvd24oKSkgcmV0dXJuO1xuICAgIHRoaXMubW9kYWxDb250YWluZXIoKS5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSBgJHtlLmNsaWVudFggLSB0aGlzLm9mZnNldFgoKX1weGA7XG4gICAgdGhpcy5tb2RhbENvbnRhaW5lcigpLm5hdGl2ZUVsZW1lbnQuc3R5bGUudG9wID0gYCR7ZS5jbGllbnRZIC0gdGhpcy5vZmZzZXRZKCl9cHhgO1xuICAgIHRoaXMucHJldkxlZnQuc2V0KGAke2UuY2xpZW50WCAtIHRoaXMub2Zmc2V0WCgpfXB4YCk7XG4gICAgdGhpcy5wcmV2VG9wLnNldChgJHtlLmNsaWVudFkgLSB0aGlzLm9mZnNldFkoKX1weGApO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigncG9pbnRlcnVwJywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcigncG9pbnRlcmxlYXZlJywgWyckZXZlbnQnXSlcbiAgcHJvdGVjdGVkIHBvaW50ZXJVcEhhbmRsZXIoKSB7XG4gICAgaWYgKCF0aGlzLmRyYWdnYWJsZSgpIHx8IHRoaXMubW9kYWxTaXplU3RhdGUoKSA9PT0gJ21pbmltaXplJyB8fCB0aGlzLmZ1bGxTY3JlZW5TdGF0ZSgpKSByZXR1cm47XG4gICAgdGhpcy5pc01vdXNlRG93bi5zZXQoZmFsc2UpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JykgZ2V0IHJvbGUoKSB7XG4gICAgcmV0dXJuICcwJztcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBwcm90ZWN0ZWQgZXNjYXBlSGFuZGxlcihlOiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKGUua2V5ID09PSAnRXNjYXBlJyAmJiB0aGlzLmNsb3NlT25Fc2NhcGUoKSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gICNlZmYgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhvc3QgPSB0aGlzLm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKHRoaXMuZHJhZ2dhYmxlKCkpIGhvc3QuY2xhc3NMaXN0LmFkZCgnYXgtZHJhZ2dhYmxlJyk7XG4gICAgaWYgKCF0aGlzLmJhY2tkcm9wU3RhdGUoKSkgcmV0dXJuO1xuICAgIHRoaXMuYWRkQmFja2Ryb3AoKTtcbiAgICBpZiAoIXRoaXMuYmFja2Ryb3BCYWNrZ3JvdW5kKCkpIHJldHVybjtcbiAgfSk7XG59XG4iLCI8ZGl2XG4gICNjXG4gIGNsYXNzPVwiYXgtbW9kYWwtY29udGFpbmVyIGF4LXt7IG1vZGFsU2l6ZVN0YXRlKCkgfX0tbW9kYWwgIGF4LW1vZGFsLXt7IG1vZGFsU2l6ZSgpIH19IHt7IHBhbmVsQ2xhc3MoKSB9fVwiXG4gIGFuaW1hdGUuZW50ZXI9XCJheC1mYWRlLXNsaWRlLWluXCJcbiAgYW5pbWF0ZS5sZWF2ZT1cImF4LWZhZGUtc2xpZGUtb3V0XCJcbj5cbiAgQGlmIChoZWFkZXJTdGF0ZSgpKSB7XG4gICAgPGRpdiAocG9pbnRlcmRvd24pPVwicG9pbnRlckRvd25IYW5kbGVyKCRldmVudClcIiBjbGFzcz1cImF4LW1vZGFsLWhlYWRlclwiPlxuICAgICAgPGF4LXRleHQ+e3sgaGVhZGVyVGl0bGUoKSB9fTwvYXgtdGV4dD5cblxuICAgICAgPGRpdj5cbiAgICAgICAgQGlmIChtaW5pbWl6ZVN0YXRlKCkpIHtcbiAgICAgICAgICA8YXgtYnV0dG9uIGNsYXNzPVwiYXgtc21cIiAob25DbGljayk9XCJtaW5pbWl6ZSgpXCIgbG9vaz1cImJsYW5rXCIgY29sb3I9XCJkZWZhdWx0XCI+XG4gICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1taW5pbWl6ZVwiPiA8L2F4LWljb24+XG4gICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKG1vZGFsU2l6ZVN0YXRlKCkgIT09ICdub3JtYWwnIHx8IGZ1bGxTY3JlZW5TdGF0ZSgpKSB7XG4gICAgICAgICAgPGF4LWJ1dHRvbiBjbGFzcz1cImF4LXNtXCIgKG9uQ2xpY2spPVwicmVzdG9yZSgpXCIgbG9vaz1cImJsYW5rXCIgY29sb3I9XCJkZWZhdWx0XCI+XG4gICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1tYXhpbWl6ZVwiPiA8L2F4LWljb24+XG4gICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKG1heGltaXplU3RhdGUoKSkge1xuICAgICAgICAgIDxheC1idXR0b24gY2xhc3M9XCJheC1zbVwiIChvbkNsaWNrKT1cIm1heGltaXplKClcIiBsb29rPVwiYmxhbmtcIiBjb2xvcj1cImRlZmF1bHRcIj5cbiAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWZ1bGwtc2NyZWVuXCI+IDwvYXgtaWNvbj5cbiAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoY2xvc2VIZWFkZXJCdXR0b24oKSkge1xuICAgICAgICAgIDxheC1idXR0b24gY2xhc3M9XCJheC1zbVwiIGxvb2s9XCJibGFua1wiIChvbkNsaWNrKT1cImNsb3NlKClcIiBjb2xvcj1cImRlZmF1bHRcIj5cbiAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWNsb3NlXCI+IDwvYXgtaWNvbj5cbiAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIH1cblxuICA8ZGl2IGNsYXNzPVwiYXgtbW9kYWwtY29udGVudFwiPlxuICAgIEBpZiAoaXNUZW1wbGF0ZSgpKSB7XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRoaXMudGVtcGxhdGUoKVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJpbnB1dHMoKVwiPjwvbmctY29udGFpbmVyPlxuICAgIH0gQGVsc2UgaWYgKGlzSHRtbEVsZW1lbnQoKSkge1xuICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cInNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbCh0aGlzLmVsZW1lbnQoKS5vdXRlckhUTUwpXCI+PC9kaXY+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8bmctY29udGFpbmVyIFtuZ0NvbXBvbmVudE91dGxldF09XCJ0aGlzLmNvbXBvbmVudCgpXCIgW25nQ29tcG9uZW50T3V0bGV0SW5wdXRzXT1cImlucHV0cygpXCI+PC9uZy1jb250YWluZXI+XG4gICAgfVxuICA8L2Rpdj5cblxuICBAaWYgKGZvb3RlclN0YXRlKCkpIHtcbiAgICA8ZGl2IGNsYXNzPVwiYXgtbW9kYWwtZm9vdGVyXCI+PC9kaXY+XG4gIH1cbjwvZGl2PlxuIl19"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { b as AXModalComponent, c as AXModalComponentBase, a as AXModalFooterComponent, d as AXModalModule, e as AXModalService } from './acorex-components-modal-acorex-components-modal-DwBY73dZ.mjs';
1
+ export { A as AXModalComponent, a as AXModalComponentBase, b as AXModalFooterComponent, c as AXModalModule, d as AXModalService } from './acorex-components-modal-acorex-components-modal-BzK-OlgL.mjs';
2
2
  //# sourceMappingURL=acorex-components-modal.mjs.map
@@ -1,9 +1,12 @@
1
1
  import { AXInputMaskDirective } from '@acorex/cdk/input-mask';
2
2
  import * as i0 from '@angular/core';
3
- import { input, model, signal, viewChild, afterNextRender, effect, forwardRef, HostBinding, ViewEncapsulation, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
3
+ import { input, model, signal, viewChild, inject, afterNextRender, effect, forwardRef, HostBinding, ViewEncapsulation, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
4
4
  import { MXInputBaseValueComponent, MXLookComponent, AXComponent, AXFocusableComponent, AXClearableComponent, AXValuableComponent } from '@acorex/cdk/common';
5
5
  import { AXButtonModule } from '@acorex/components/button';
6
6
  import { AXDecoratorModule } from '@acorex/components/decorators';
7
+ import * as i2 from '@acorex/components/form';
8
+ import { AXFormModule } from '@acorex/components/form';
9
+ import { AXTranslationService } from '@acorex/core/translation';
7
10
  import * as i1 from '@angular/forms';
8
11
  import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
9
12
  import { classes } from 'polytype';
@@ -26,6 +29,30 @@ class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), MXLookCo
26
29
  this.mode = signal('digits', ...(ngDevMode ? [{ debugName: "mode" }] : []));
27
30
  this.input = viewChild('input', ...(ngDevMode ? [{ debugName: "input" }] : []));
28
31
  this.stringValue = signal('', ...(ngDevMode ? [{ debugName: "stringValue" }] : []));
32
+ this.translationService = inject(AXTranslationService);
33
+ this.validateFn = async (val) => {
34
+ const min = this.minValue();
35
+ if (min != null && val != null && val < min) {
36
+ const message = await this.translationService.translateAsync('@acorex:validation.messages.min', {
37
+ params: { value: min },
38
+ });
39
+ return {
40
+ result: false,
41
+ message,
42
+ };
43
+ }
44
+ const max = this.maxValue();
45
+ if (max != null && val != null && val > max) {
46
+ const message = await this.translationService.translateAsync('@acorex:validation.messages.max', {
47
+ params: { value: max },
48
+ });
49
+ return {
50
+ result: false,
51
+ message,
52
+ };
53
+ }
54
+ return { result: true };
55
+ };
29
56
  this.#init = afterNextRender(() => {
30
57
  this.onFocus.subscribe(() => {
31
58
  this.input().nativeElement.select();
@@ -66,7 +93,7 @@ class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), MXLookCo
66
93
  return;
67
94
  }
68
95
  const currentValue = this.getNumericValue();
69
- const nextValue = this.getSteppedValue(currentValue, 1);
96
+ const nextValue = this.clampToRange(this.getSteppedValue(currentValue, 1));
70
97
  this.commitValue(nextValue, true);
71
98
  if (this.mode() === 'thousandsSeparator') {
72
99
  const addSeparator = nextValue.toLocaleString();
@@ -81,7 +108,7 @@ class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), MXLookCo
81
108
  return;
82
109
  }
83
110
  const currentValue = this.getNumericValue();
84
- const nextValue = this.getSteppedValue(currentValue, -1);
111
+ const nextValue = this.clampToRange(this.getSteppedValue(currentValue, -1));
85
112
  this.commitValue(nextValue, true);
86
113
  if (this.mode() === 'thousandsSeparator') {
87
114
  const addSeparator = nextValue.toLocaleString();
@@ -105,6 +132,17 @@ class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), MXLookCo
105
132
  const stepUnits = Math.round(step * scale) * direction;
106
133
  return (currentUnits + stepUnits) / scale;
107
134
  }
135
+ clampToRange(value) {
136
+ const min = this.minValue();
137
+ const max = this.maxValue();
138
+ if (min != null && value < min) {
139
+ return min;
140
+ }
141
+ if (max != null && value > max) {
142
+ return max;
143
+ }
144
+ return value;
145
+ }
108
146
  getFractionDigits(value) {
109
147
  if (!Number.isFinite(value)) {
110
148
  return 0;
@@ -175,7 +213,7 @@ class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), MXLookCo
175
213
  useExisting: forwardRef(() => AXNumberBoxComponent),
176
214
  multi: true,
177
215
  },
178
- ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"ax-editor-container ax-{{ look }}\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <input\n #input\n [name]=\"name\"\n axInputMask\n (onMaskChanged)=\"handleOnMaskChanged($event)\"\n [maskMode]=\"mode()\"\n inputmode=\"numeric\"\n class=\"ax-input\"\n [minValue]=\"minValue()\"\n [maxValue]=\"maxValue()\"\n [separator]=\"thousandsSeparator()\"\n [decimal]=\"decimals()\"\n [id]=\"id\"\n [attr.placeholder]=\"placeholder\"\n [attr.autocomplete]=\"'off'\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n [(ngModel)]=\"stringValue\"\n (keydown)=\"handleOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n (wheel)=\"onWheel($event)\"\n />\n @if (input.value && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n @if (showSpinButtons()) {\n <div class=\"ax-number-box-control\">\n <button\n type=\"button\"\n class=\"ax-editor-button\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleUpClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-up ax-arrow-button\"></span>\n </button>\n <button\n type=\"button\"\n class=\"ax-editor-button\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleDownClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-down ax-arrow-button\"></span>\n </button>\n </div>\n }\n\n <ng-content select=\"ax-suffix\"> </ng-content>\n</div>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n<div class=\"ax-error-container\"></div>\n", styles: ["ax-number-box input::-webkit-outer-spin-button,ax-number-box input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}ax-number-box input[type=number]{-moz-appearance:textfield}ax-number-box .ax-number-box-control{--ax-comp-editor-button-height: 50%;--ax-comp-editor-button-font-size: .75rem;height:90%;display:flex;flex-direction:column;gap:.1rem}ax-number-box .ax-number-box-control button{font-size:.75rem;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: AXInputMaskDirective, selector: "[axInputMask]", inputs: ["maskMode", "separator", "eager", "minValue", "maxValue", "decimal", "maskPattern", "customTokens"], outputs: ["onMaskChanged"], exportAs: ["axInputMask"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXDecoratorModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
216
+ ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"ax-editor-container ax-{{ look }}\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <input\n #input\n [name]=\"name\"\n axInputMask\n (onMaskChanged)=\"handleOnMaskChanged($event)\"\n [maskMode]=\"mode()\"\n inputmode=\"numeric\"\n class=\"ax-input\"\n [separator]=\"thousandsSeparator()\"\n [decimal]=\"decimals()\"\n [id]=\"id\"\n [attr.placeholder]=\"placeholder\"\n [attr.autocomplete]=\"'off'\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n [(ngModel)]=\"stringValue\"\n (keydown)=\"handleOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n (wheel)=\"onWheel($event)\"\n />\n @if (input.value && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n @if (showSpinButtons()) {\n <div class=\"ax-number-box-control\">\n <button\n type=\"button\"\n class=\"ax-editor-button\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleUpClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-up ax-arrow-button\"></span>\n </button>\n <button\n type=\"button\"\n class=\"ax-editor-button\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleDownClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-down ax-arrow-button\"></span>\n </button>\n </div>\n }\n\n <ng-content select=\"ax-suffix\"> </ng-content>\n</div>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n@if (minValue() != null || maxValue() != null) {\n <ax-validation-rule rule=\"callback\" [options]=\"{ validate: validateFn }\"></ax-validation-rule>\n}\n<div class=\"ax-error-container\"></div>\n", styles: ["ax-number-box input::-webkit-outer-spin-button,ax-number-box input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}ax-number-box input[type=number]{-moz-appearance:textfield}ax-number-box .ax-number-box-control{--ax-comp-editor-button-height: 50%;--ax-comp-editor-button-font-size: .75rem;height:90%;display:flex;flex-direction:column;gap:.1rem}ax-number-box .ax-number-box-control button{font-size:.75rem;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: AXInputMaskDirective, selector: "[axInputMask]", inputs: ["maskMode", "separator", "eager", "minValue", "maxValue", "decimal", "maskPattern", "customTokens"], outputs: ["onMaskChanged"], exportAs: ["axInputMask"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i2.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
179
217
  }
180
218
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXNumberBoxComponent, decorators: [{
181
219
  type: Component,
@@ -200,7 +238,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
200
238
  useExisting: forwardRef(() => AXNumberBoxComponent),
201
239
  multi: true,
202
240
  },
203
- ], imports: [FormsModule, AXInputMaskDirective, AXButtonModule, AXDecoratorModule], template: "<div\n class=\"ax-editor-container ax-{{ look }}\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <input\n #input\n [name]=\"name\"\n axInputMask\n (onMaskChanged)=\"handleOnMaskChanged($event)\"\n [maskMode]=\"mode()\"\n inputmode=\"numeric\"\n class=\"ax-input\"\n [minValue]=\"minValue()\"\n [maxValue]=\"maxValue()\"\n [separator]=\"thousandsSeparator()\"\n [decimal]=\"decimals()\"\n [id]=\"id\"\n [attr.placeholder]=\"placeholder\"\n [attr.autocomplete]=\"'off'\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n [(ngModel)]=\"stringValue\"\n (keydown)=\"handleOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n (wheel)=\"onWheel($event)\"\n />\n @if (input.value && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n @if (showSpinButtons()) {\n <div class=\"ax-number-box-control\">\n <button\n type=\"button\"\n class=\"ax-editor-button\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleUpClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-up ax-arrow-button\"></span>\n </button>\n <button\n type=\"button\"\n class=\"ax-editor-button\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleDownClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-down ax-arrow-button\"></span>\n </button>\n </div>\n }\n\n <ng-content select=\"ax-suffix\"> </ng-content>\n</div>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n<div class=\"ax-error-container\"></div>\n", styles: ["ax-number-box input::-webkit-outer-spin-button,ax-number-box input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}ax-number-box input[type=number]{-moz-appearance:textfield}ax-number-box .ax-number-box-control{--ax-comp-editor-button-height: 50%;--ax-comp-editor-button-font-size: .75rem;height:90%;display:flex;flex-direction:column;gap:.1rem}ax-number-box .ax-number-box-control button{font-size:.75rem;align-items:center}\n"] }]
241
+ ], imports: [FormsModule, AXInputMaskDirective, AXButtonModule, AXDecoratorModule, AXFormModule], template: "<div\n class=\"ax-editor-container ax-{{ look }}\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <input\n #input\n [name]=\"name\"\n axInputMask\n (onMaskChanged)=\"handleOnMaskChanged($event)\"\n [maskMode]=\"mode()\"\n inputmode=\"numeric\"\n class=\"ax-input\"\n [separator]=\"thousandsSeparator()\"\n [decimal]=\"decimals()\"\n [id]=\"id\"\n [attr.placeholder]=\"placeholder\"\n [attr.autocomplete]=\"'off'\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n [(ngModel)]=\"stringValue\"\n (keydown)=\"handleOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n (wheel)=\"onWheel($event)\"\n />\n @if (input.value && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n @if (showSpinButtons()) {\n <div class=\"ax-number-box-control\">\n <button\n type=\"button\"\n class=\"ax-editor-button\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleUpClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-up ax-arrow-button\"></span>\n </button>\n <button\n type=\"button\"\n class=\"ax-editor-button\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleDownClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-down ax-arrow-button\"></span>\n </button>\n </div>\n }\n\n <ng-content select=\"ax-suffix\"> </ng-content>\n</div>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n@if (minValue() != null || maxValue() != null) {\n <ax-validation-rule rule=\"callback\" [options]=\"{ validate: validateFn }\"></ax-validation-rule>\n}\n<div class=\"ax-error-container\"></div>\n", styles: ["ax-number-box input::-webkit-outer-spin-button,ax-number-box input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}ax-number-box input[type=number]{-moz-appearance:textfield}ax-number-box .ax-number-box-control{--ax-comp-editor-button-height: 50%;--ax-comp-editor-button-font-size: .75rem;height:90%;display:flex;flex-direction:column;gap:.1rem}ax-number-box .ax-number-box-control button{font-size:.75rem;align-items:center}\n"] }]
204
242
  }], propDecorators: { __hostName: [{
205
243
  type: HostBinding,
206
244
  args: ['attr.name']