@acorex/components 22.3.11 → 22.3.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/acorex-components-button.mjs +87 -7
- package/fesm2022/acorex-components-button.mjs.map +1 -1
- package/fesm2022/{acorex-components-conversation-acorex-components-conversation-BZjCPB-7.mjs → acorex-components-conversation-acorex-components-conversation-OaSJ3SUq.mjs} +5 -8
- package/fesm2022/acorex-components-conversation-acorex-components-conversation-OaSJ3SUq.mjs.map +1 -0
- package/fesm2022/{acorex-components-conversation-picker-rename-file-dialog.component-CNwDWg_O.mjs → acorex-components-conversation-picker-rename-file-dialog.component-BaLD7loU.mjs} +2 -2
- package/fesm2022/{acorex-components-conversation-picker-rename-file-dialog.component-CNwDWg_O.mjs.map → acorex-components-conversation-picker-rename-file-dialog.component-BaLD7loU.mjs.map} +1 -1
- package/fesm2022/acorex-components-conversation.mjs +1 -1
- package/fesm2022/acorex-components-notification.mjs +2 -2
- package/fesm2022/acorex-components-notification.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +8 -7
- package/fesm2022/acorex-components-popup.mjs.map +1 -1
- package/fesm2022/acorex-components-tabs.mjs +2 -2
- package/fesm2022/acorex-components-tabs.mjs.map +1 -1
- package/fesm2022/acorex-components-toast.mjs +2 -2
- package/fesm2022/acorex-components-toast.mjs.map +1 -1
- package/package.json +3 -3
- package/types/acorex-components-button.d.ts +20 -2
- package/fesm2022/acorex-components-conversation-acorex-components-conversation-BZjCPB-7.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-components-popup.mjs","sources":["../../../../packages/components/popup/src/lib/popup-caption-icon.ts","../../../../packages/components/popup/src/lib/popup.interface.ts","../../../../packages/components/popup/src/lib/popup.component.ts","../../../../packages/components/popup/src/lib/popup.component.html","../../../../packages/components/popup/src/lib/popup.service.ts","../../../../packages/components/popup/src/lib/popup-dock/popup-dock-item.directive.ts","../../../../packages/components/popup/src/lib/popup-dock/popup-dock.component.ts","../../../../packages/components/popup/src/lib/popup-dock/popup-dock.component.html","../../../../packages/components/popup/src/lib/popup-footer/popup-footer.component.ts","../../../../packages/components/popup/src/lib/popup-footer/popup-footer.component.html","../../../../packages/components/popup/src/lib/popup-host/popup-host.component.ts","../../../../packages/components/popup/src/lib/popup.module.ts","../../../../packages/components/popup/src/acorex-components-popup.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nexport type AXPopupCaptionIconName = 'minimize' | 'maximize' | 'restore' | 'close';\n\n/**\n * Windows-style window caption glyphs: minimize, maximize, restore, close.\n */\n@Component({\n selector: 'ax-popup-caption-icon',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ax-popup-caption-icon',\n '[attr.data-name]': 'name()',\n 'aria-hidden': 'true',\n },\n styles: `\n :host {\n display: inline-flex;\n width: 12px;\n height: 12px;\n }\n\n svg {\n display: block;\n width: 100%;\n height: 100%;\n fill: none;\n stroke: currentColor;\n stroke-width: 1.15;\n stroke-linecap: square;\n stroke-linejoin: miter;\n }\n `,\n template: `\n <svg viewBox=\"0 0 10 10\" focusable=\"false\">\n @switch (name()) {\n @case ('minimize') {\n <path d=\"M1.6 5h6.8\" />\n }\n @case ('maximize') {\n <rect x=\"1.4\" y=\"1.4\" width=\"7.2\" height=\"7.2\" rx=\"1\" />\n }\n @case ('restore') {\n <path d=\"M3.15 2.85V1.4h5.45v5.45H7.15\" />\n <rect x=\"1.4\" y=\"3.15\" width=\"5.45\" height=\"5.45\" rx=\"0.7\" />\n }\n @case ('close') {\n <path d=\"M2.05 2.05l5.9 5.9M7.95 2.05l-5.9 5.9\" />\n }\n }\n </svg>\n `,\n})\nexport class AXPopupCaptionIconComponent {\n name = input.required<AXPopupCaptionIconName>();\n}\n","import type { AXResizeHandle } from '@acorex/cdk/resizable';\nimport type { AXOverlayAnimation } from '@acorex/cdk/overlay';\nimport { AXComponentInputs, AXComponentType } from '@acorex/core/components';\nimport { computed, Directive, ElementRef, input, Signal, StaticProvider, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport type AXPopupContentType = TemplateRef<unknown> | AXComponentType<unknown> | HTMLElement;\n\nexport type AXPopupSizeType = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full' | 'fit';\n\nexport type AXPopupMinimizePosition = 'bottom-right' | 'bottom-left';\n\nexport type AXPopupWindowState = 'normal' | 'minimized' | 'maximized';\n\nexport interface AXPopupButtonsConfig {\n minimize?: {\n enable: boolean;\n position: AXPopupMinimizePosition;\n /**\n * Name of an `<ax-popup-dock>` that should host this popup when minimized.\n * Falls back to the built-in bottom bar when no matching dock is registered.\n * @defaultValue 'default'\n */\n dock?: string;\n };\n maximize?: boolean;\n close?: boolean;\n}\n\nexport interface AXPopupResizableConfig {\n handles?: AXResizeHandle[];\n minWidth?: number;\n minHeight?: number;\n /** Defaults to the viewport width when unset. */\n maxWidth?: number;\n /** Defaults to the viewport height when unset. */\n maxHeight?: number;\n lockAspectRatio?: boolean;\n dblClickAction?: 'reset' | 'maximize' | 'fit';\n}\n\nexport const AX_POPUP_DEFAULT_RESIZE_HANDLES: AXResizeHandle[] = [\n 'top',\n 'bottom',\n 'start',\n 'end',\n 'top-start',\n 'top-end',\n 'bottom-start',\n 'bottom-end',\n];\n\nexport interface AXPopupResolvedResizableConfig {\n enable: boolean;\n handles: AXResizeHandle[];\n minWidth: number;\n minHeight: number;\n maxWidth: number | null;\n maxHeight: number | null;\n lockAspectRatio: boolean;\n dblClickAction: 'reset' | 'maximize' | 'fit';\n}\n\nexport interface AXPopupConfig {\n title?: string;\n /** Flat alias; overridden by `buttons.close` when set. */\n closeButton?: boolean;\n header?: boolean;\n footer?: boolean;\n /** Flat alias; overridden by `buttons.maximize` when set. */\n maximizable?: boolean;\n size?: AXPopupSizeType;\n /** @deprecated Use `inputs` instead to pass data to the popup component. */\n data?: unknown;\n inputs?: unknown;\n draggable?: boolean;\n /** Enable drag handles on the popup window. `true` uses defaults; pass an object to customize. */\n resizable?: boolean | AXPopupResizableConfig;\n hasBackdrop?: boolean;\n backdropClass?: string;\n closeOnBackdropClick?: boolean;\n closeOnNavigation?: boolean;\n /** When unset, Escape closes only if the close button is enabled (legacy behavior). */\n closeOnEscape?: boolean;\n viewContainerRef?: ViewContainerRef;\n providers?: StaticProvider[];\n panelClass?: string[];\n /**\n * Overlay enter/leave animation applied to the popup window, not the full-screen container.\n * - omitted / `true`: default fade in and fade out\n * - `false` or `[]`: no animation\n * - `string[]`: custom enter classes\n * - `{ enter, leave }`: custom enter and leave classes\n */\n animation?: AXOverlayAnimation;\n direction?: 'rtl' | 'ltr';\n /** Window chrome buttons. Individual fields override flat `closeButton` / `maximizable` when set. */\n buttons?: AXPopupButtonsConfig;\n /**\n * @internal\n * Called with the popup ref before content is created so callers can inject\n * extra content inputs that depend on the ref.\n */\n _bindContentInputs?: (ref: AXPopupRef) => Record<string, unknown>;\n /**\n * Element used to resolve inherited visual context for overlays rendered\n * outside the originating DOM subtree.\n *\n * This affects Appearance, Light/Dark theme, Contrast, Size, and supported\n * Density context. It does not affect overlay positioning.\n */\n contextElement?: HTMLElement | ElementRef<HTMLElement>;\n /** Delay in ms before the real content is created. While waiting, a skeleton placeholder is shown. */\n delay?: number;\n /** Skeleton template rendered during `delay`. Falls back to a built-in ax-skeleton placeholder. */\n skeletonTemplate?: TemplateRef<unknown>;\n /** Animates the built-in skeleton placeholder. Ignored when `skeletonTemplate` is provided. */\n skeletonAnimated?: boolean;\n}\n\nexport interface AXPopupData {\n title: string;\n closeButton: boolean;\n header: boolean;\n maximizable: boolean;\n size: AXPopupSizeType;\n data?: unknown;\n draggable: boolean;\n content: AXPopupContentType;\n}\n\nexport interface AXPopupDockItem {\n id: number;\n title: Signal<string>;\n data: unknown;\n ref: AXPopupRef;\n restore: () => void;\n maximize: () => void;\n close: () => void;\n}\n\nexport interface AXPopupRef<TResult = any> {\n close: (data?: TResult) => void;\n setInputs: (values: AXComponentInputs) => void;\n setTitle: (title: string) => void;\n minimize: () => void;\n maximize: () => void;\n restore: () => void;\n /** Brings this popup to the front of all other overlays */\n bringToFront: () => void;\n onClose: Subject<TResult>;\n onStateChange: Subject<AXPopupWindowState>;\n readonly state: Signal<AXPopupWindowState>;\n readonly title: Signal<string>;\n readonly isMinimized: Signal<boolean>;\n readonly isMaximized: Signal<boolean>;\n /** The component instance rendered inside the popup (available after content is rendered) */\n componentInstance?: unknown;\n /** @internal Stack index among open popups (minimized bar positioning). */\n _getStackIndex?: () => number;\n /** @internal */\n _setState?: (state: AXPopupWindowState) => void;\n}\n\n@Directive()\nexport abstract class AXPopupComponentBase {\n __popup__ = input<AXPopupRef>();\n\n readonly popupState = computed(() => this.__popup__()?.state() ?? 'normal');\n readonly isMinimized = computed(() => this.__popup__()?.isMinimized() ?? false);\n readonly isMaximized = computed(() => this.__popup__()?.isMaximized() ?? false);\n readonly popupTitle = computed(() => this.__popup__()?.title() ?? '');\n\n public close(data: any = null) {\n this.__popup__()?.close(data);\n }\n\n public setTitle(title: string) {\n this.__popup__()?.setTitle(title);\n }\n\n public minimize() {\n this.__popup__()?.minimize();\n }\n\n public maximize() {\n this.__popup__()?.maximize();\n }\n\n public restore() {\n this.__popup__()?.restore();\n }\n\n public bringToFront() {\n this.__popup__()?.bringToFront();\n }\n}\n\n/** Resolves whether the close header button is shown. `buttons.close` wins over `closeButton`. */\nexport function resolvePopupCloseButton(config?: AXPopupConfig | null): boolean {\n if (config?.buttons?.close !== undefined) {\n return config.buttons.close;\n }\n return config?.closeButton ?? true;\n}\n\n/** Resolves whether maximize is enabled. `buttons.maximize` wins over `maximizable`. Default: false. */\nexport function resolvePopupMaximizable(config?: AXPopupConfig | null): boolean {\n if (config?.buttons?.maximize !== undefined) {\n return config.buttons.maximize;\n }\n return config?.maximizable ?? false;\n}\n\n/** Resolves minimize button config. Default: disabled at bottom-right. */\nexport function resolvePopupMinimize(config?: AXPopupConfig | null): {\n enable: boolean;\n position: AXPopupMinimizePosition;\n dock: string;\n} {\n return {\n enable: config?.buttons?.minimize?.enable ?? false,\n position: config?.buttons?.minimize?.position ?? 'bottom-right',\n dock: config?.buttons?.minimize?.dock ?? 'default',\n };\n}\n\n/** Resolves resize config. Disabled for `size: 'full'` and when `resizable` is false/omitted. */\nexport function resolvePopupResizable(config?: AXPopupConfig | null): AXPopupResolvedResizableConfig {\n const defaults: AXPopupResolvedResizableConfig = {\n enable: false,\n handles: AX_POPUP_DEFAULT_RESIZE_HANDLES,\n minWidth: 240,\n minHeight: 160,\n maxWidth: null,\n maxHeight: null,\n lockAspectRatio: false,\n dblClickAction: 'reset',\n };\n\n if (!config || config.size === 'full') {\n return defaults;\n }\n\n const raw = config.resizable;\n if (!raw) {\n return defaults;\n }\n\n const options = raw === true ? {} : raw;\n\n return {\n enable: true,\n handles: options.handles ?? AX_POPUP_DEFAULT_RESIZE_HANDLES,\n minWidth: options.minWidth ?? defaults.minWidth,\n minHeight: options.minHeight ?? defaults.minHeight,\n maxWidth: options.maxWidth ?? null,\n maxHeight: options.maxHeight ?? null,\n lockAspectRatio: options.lockAspectRatio ?? false,\n dblClickAction: options.dblClickAction ?? 'reset',\n };\n}\n","import { AXPlatform } from '@acorex/core/platform';\nimport {\n afterNextRender,\n Component,\n ComponentRef,\n computed,\n effect,\n ElementRef,\n HostListener,\n inject,\n input,\n NgZone,\n OnDestroy,\n OnInit,\n signal,\n TemplateRef,\n Type,\n viewChild,\n ViewChild,\n viewChildren,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { AXClosableComponent, AXComponent, AXComponentClosing, MXBaseComponent } from '@acorex/cdk/common';\nimport { AXDragDirective, AXDragHandleDirective } from '@acorex/cdk/drag-drop';\nimport { AXResizableDirective } from '@acorex/cdk/resizable';\nimport { AXFocusTrapDirective } from '@acorex/cdk/focus-trap';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXPopupCaptionIconComponent } from './popup-caption-icon';\nimport { AXLoadingService } from '@acorex/components/loading';\nimport { AXSkeletonComponent } from '@acorex/components/skeleton';\nimport { AXComponentInputs } from '@acorex/core/components';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe, DOCUMENT, NgTemplateOutlet } from '@angular/common';\nimport {\n AXPopupConfig,\n AXPopupContentType,\n AXPopupRef,\n resolvePopupCloseButton,\n resolvePopupMaximizable,\n resolvePopupMinimize,\n resolvePopupResizable,\n} from './popup.interface';\n\n/**\n * The Popup is a component which displays content in a dialog overlay\n *\n * @category Components\n */\n@Component({\n selector: 'ax-popup',\n templateUrl: './popup.component.html',\n styleUrls: ['./popup.component.css'],\n\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'ax-popup-host',\n style: 'display: block; max-width: 100%;',\n },\n providers: [\n { provide: AXClosableComponent, useExisting: AXPopupComponent },\n { provide: AXComponent, useExisting: AXPopupComponent },\n ],\n imports: [\n AXPopupCaptionIconComponent,\n AXButtonComponent,\n AsyncPipe,\n NgTemplateOutlet,\n AXTranslatorPipe,\n AXFocusTrapDirective,\n AXSkeletonComponent,\n AXDragDirective,\n AXDragHandleDirective,\n AXResizableDirective,\n ],\n})\nexport class AXPopupComponent extends MXBaseComponent implements OnInit, OnDestroy {\n private _zone = inject(NgZone);\n private loadingService = inject(AXLoadingService);\n private _platform = inject(AXPlatform);\n private document = inject(DOCUMENT);\n\n @ViewChild('contentOutlet', { read: ViewContainerRef, static: true })\n private contentContainerRef: ViewContainerRef;\n\n @ViewChild('contentContainer', { static: true })\n private contentContainerEl: { nativeElement: HTMLElement };\n\n @ViewChild('popupEl', { read: AXDragDirective, static: true })\n private dragDir: AXDragDirective;\n\n private popupEl = viewChild<ElementRef<HTMLElement>>('popupEl');\n private projectedHandles = viewChildren(AXDragHandleDirective);\n\n #syncDragHandles = effect(() => {\n const handles = this.projectedHandles();\n const drag = this.dragDir;\n if (!drag) {\n return;\n }\n for (const handle of handles) {\n drag.registerHandle(handle);\n }\n });\n\n // Inputs from overlay service\n readonly __content__ = input<AXPopupContentType>();\n readonly __config__ = input<AXPopupConfig>();\n readonly __popupRef__ = input<AXPopupRef>();\n readonly __id__ = input<number>();\n\n /**\n * Indicates whether the component is loading.\n * @defaultValue true\n */\n isLoading = true;\n\n /** @ignore */\n private _loadingId: number | undefined;\n\n /** @ignore */\n private _delayTimer: ReturnType<typeof setTimeout> | null = null;\n\n /** @ignore */\n private _componentRef: ComponentRef<unknown> | null = null;\n\n protected showSkeleton = signal(false);\n\n protected skeletonTemplate = () => this.__config__()?.skeletonTemplate ?? null;\n\n /** Current title */\n protected title = signal<string>('');\n\n /** Clamps dragging to the viewport (`document.documentElement`). */\n protected readonly dragBoundary = signal<HTMLElement | undefined>(undefined);\n\n protected readonly dragDisabled = computed(\n () => !this.__config__()?.draggable || this.popupSizeState() === 'minimize' || this.fullScreenState(),\n );\n\n protected readonly resizeConfig = computed(() => resolvePopupResizable(this.__config__()));\n\n protected readonly resizeActive = computed(() => this.resizeConfig().enable);\n\n protected readonly resizeEnabled = computed(\n () =>\n this.resizeConfig().enable && this.popupSizeState() !== 'minimize' && !this.fullScreenState(),\n );\n\n private readonly viewportSize = signal({ width: 0, height: 0 });\n\n protected readonly resizeMaxWidth = computed(() => {\n const max = this.resizeConfig().maxWidth;\n if (max != null) {\n return max;\n }\n const viewport = this.viewportSize().width;\n return viewport > 0 ? viewport : Infinity;\n });\n\n protected readonly resizeMaxHeight = computed(() => {\n const max = this.resizeConfig().maxHeight;\n if (max != null) {\n return max;\n }\n const viewport = this.viewportSize().height;\n return viewport > 0 ? viewport : Infinity;\n });\n\n private viewportResizeHandler = () => {\n const win = this.document.defaultView;\n if (!win) {\n return;\n }\n this.viewportSize.set({ width: win.innerWidth, height: win.innerHeight });\n };\n\n protected popupSizeState = signal<'minimize' | 'normal'>('normal');\n protected fullScreenState = signal(false);\n protected minimizeLeft = signal<string | null>(null);\n protected minimizeRight = signal<string | null>(null);\n protected readonly minimizeSide = computed(() => resolvePopupMinimize(this.__config__()).position);\n\n private fullscreenChangeHandler = () => {\n const isFullscreen = !!document.fullscreenElement;\n this.fullScreenState.set(isFullscreen);\n if (this.__popupRef__()?.state() !== 'minimized') {\n this.__popupRef__()?._setState?.(isFullscreen ? 'maximized' : 'normal');\n }\n this.cdr.markForCheck();\n };\n\n protected closeEnabled = () => resolvePopupCloseButton(this.__config__());\n protected maximizeEnabled = () => resolvePopupMaximizable(this.__config__());\n protected minimizeEnabled = () => resolvePopupMinimize(this.__config__()).enable;\n\n constructor() {\n super();\n afterNextRender(() => {\n this.dragBoundary.set(this.document.documentElement);\n this.viewportResizeHandler();\n const win = this.document.defaultView;\n win?.addEventListener('resize', this.viewportResizeHandler);\n this.bindContentDragHandles();\n });\n }\n\n /** @ignore */\n override ngOnInit() {\n super.ngOnInit();\n\n const config = this.__config__();\n if (this._platform.is('SM')) {\n if (config) {\n config.draggable = false;\n config.resizable = false;\n }\n }\n\n this.title.set(config?.title ?? '');\n\n document.addEventListener('fullscreenchange', this.fullscreenChangeHandler);\n\n const delay = config?.delay ?? 0;\n if (delay > 0) {\n this.showSkeleton.set(true);\n this.cdr.markForCheck();\n this._delayTimer = setTimeout(() => {\n this._zone.run(() => {\n this._delayTimer = null;\n this.showSkeleton.set(false);\n void this.renderContent();\n this.cdr.markForCheck();\n });\n }, delay);\n } else {\n this._loadingId = this.loadingService.show({\n location: this.getHostElement(),\n });\n this.renderContent();\n }\n }\n\n /** @ignore */\n private async renderContent() {\n const content = this.__content__();\n const config = this.__config__();\n\n if (!content) {\n if (this._loadingId !== undefined) {\n this.loadingService.hide(this._loadingId);\n }\n return;\n }\n\n if (content instanceof TemplateRef) {\n this.contentContainerRef.createEmbeddedView(content, {\n $implicit: config?.data,\n ref: this,\n ...(typeof config?.inputs === 'object' && config.inputs ? (config.inputs as object) : {}),\n });\n this.handleContentRendered();\n } else if (content instanceof HTMLElement) {\n this.contentContainerEl.nativeElement.appendChild(content.cloneNode(true));\n this.handleContentRendered();\n } else if (typeof content === 'function') {\n const componentRef = this.contentContainerRef.createComponent(content as Type<unknown>);\n this._componentRef = componentRef;\n\n const popupRef = this.__popupRef__();\n if (popupRef) {\n popupRef.componentInstance = componentRef.instance;\n }\n\n const inputDefs = (componentRef.componentType as unknown as { ɵcmp?: { inputs?: Record<string, unknown> } })?.ɵcmp\n ?.inputs;\n\n if (config?.data && typeof config.data === 'object') {\n Object.entries(config.data).forEach(([key, value]) => {\n (componentRef.instance as Record<string, unknown>)[key] = value;\n });\n }\n\n if (config?.inputs && typeof config.inputs === 'object') {\n Object.entries(config.inputs).forEach(([key, value]) => {\n if (inputDefs && key in inputDefs) {\n componentRef.setInput(key, value);\n }\n });\n }\n\n if (inputDefs && '__popup__' in inputDefs) {\n componentRef.setInput('__popup__', this.__popupRef__());\n }\n\n const instance = componentRef.instance as {\n onClosed?: { subscribe: (fn: (e: { data?: unknown }) => void) => void };\n };\n if (instance.onClosed) {\n instance.onClosed.subscribe((e) => {\n this.close(e.data);\n });\n }\n\n this.handleContentRendered();\n }\n }\n\n /** @ignore */\n private handleContentRendered() {\n this._zone.runOutsideAngular(() => {\n setTimeout(() => {\n const body = this.getHostElement().querySelector<HTMLDivElement>('.ax-popup-body-container');\n const content = body?.children[0];\n\n if (!content || !body) {\n this.focus();\n this.bindContentDragHandles();\n return;\n }\n\n const popHeader = this.getHostElement().querySelector<HTMLDivElement>('.ax-popup-header-container');\n const popFooter = this.getHostElement().querySelector<HTMLDivElement>('.ax-popup-footer-container');\n\n const footer =\n content.querySelector<HTMLElement>(':scope > ax-footer') ||\n content.querySelector<HTMLElement>(':scope > ax-popup-footer') ||\n this.getHostElement().querySelector<HTMLElement>('.ax-popup-body-container ax-popup-footer');\n const header = content.querySelector<HTMLDivElement>(':scope > ax-header');\n\n if (footer && popFooter) {\n popFooter.append(footer);\n }\n if (header && popHeader) {\n popHeader.innerHTML = '';\n popHeader.append(header);\n }\n this.focus();\n this.bindContentDragHandles();\n });\n });\n if (this._loadingId !== undefined) {\n this.loadingService.hide(this._loadingId);\n }\n this.cdr.markForCheck();\n }\n\n private bindContentDragHandles(): void {\n const drag = this.dragDir;\n const root = this.getHostElement();\n if (!drag || !root) {\n return;\n }\n\n this._zone.run(() => {\n root.querySelectorAll<HTMLElement>('[axDragHandle]').forEach((element) => {\n drag.registerHandle(element);\n });\n });\n }\n\n /** @ignore */\n @HostListener('keydown.escape')\n onKeydownHandler() {\n const config = this.__config__();\n const focusedOrHasFocused = this.getHostElement().matches(':focus-within');\n if (!focusedOrHasFocused) return;\n\n if (config?.closeOnEscape === false) return;\n\n if (config?.closeOnEscape === true || this.closeEnabled()) {\n this.close();\n }\n }\n\n /** @ignore */\n protected _handleCloseClick() {\n this.close();\n }\n\n /** @ignore */\n ngOnDestroy() {\n if (this._delayTimer !== null) {\n clearTimeout(this._delayTimer);\n this._delayTimer = null;\n }\n document.removeEventListener('fullscreenchange', this.fullscreenChangeHandler);\n this.document.defaultView?.removeEventListener('resize', this.viewportResizeHandler);\n if (this.fullScreenState() && document.fullscreenElement) {\n document.exitFullscreen().catch(() => undefined);\n }\n if (this._loadingId !== undefined) {\n this.loadingService.hide(this._loadingId);\n }\n if (this._componentRef) {\n this._componentRef.destroy();\n this._componentRef = null;\n }\n }\n\n /**\n * Sets focus on the `.ax-popup` element within the host element after a short delay.\n */\n focus() {\n setTimeout(() => this.getHostElement().querySelector<HTMLDivElement>('.ax-popup')?.focus());\n }\n\n /**\n * Closes the popup, emitting component reference, host element, and optional data.\n */\n close(data?: unknown) {\n const closeFn = () => {\n this.__popupRef__()?.close(data);\n };\n\n const componentInstance = this._componentRef?.instance as\n | { onClosing?: (e: AXComponentClosing) => void | Promise<void> }\n | undefined;\n\n if (typeof componentInstance?.onClosing === 'function') {\n const ee: AXComponentClosing = {\n cancel: false,\n data,\n };\n const closingResult = componentInstance.onClosing(ee);\n if (closingResult instanceof Promise) {\n closingResult.then(() => {\n if (!ee.cancel) {\n closeFn();\n }\n });\n } else {\n if (!ee.cancel) {\n closeFn();\n }\n }\n } else {\n closeFn();\n }\n }\n\n /**\n * Minimizes the popup. Routes through the popup ref so a registered dock can host the tab.\n */\n minimize() {\n this.__popupRef__()?.minimize();\n }\n\n /**\n * Maximizes the popup using the Fullscreen API.\n */\n maximize() {\n this.__popupRef__()?.maximize();\n }\n\n /**\n * Restores the popup from minimized or fullscreen state.\n */\n restore() {\n this.__popupRef__()?.restore();\n }\n\n /**\n * Applies the minimized visual. When `docked` is true the overlay is hidden by the service\n * and the window stays at normal size for the next restore.\n * @internal\n */\n enterMinimized(docked: boolean) {\n if (this.fullScreenState() && document.fullscreenElement) {\n document.exitFullscreen().catch(() => undefined);\n }\n\n if (docked) {\n this.minimizeLeft.set(null);\n this.minimizeRight.set(null);\n this.popupSizeState.set('normal');\n this.cdr.markForCheck();\n return;\n }\n\n const el = this.popupEl()?.nativeElement;\n if (!el) return;\n\n const position = resolvePopupMinimize(this.__config__()).position;\n this.popupSizeState.set('minimize');\n if (position === 'bottom-right') {\n this.minimizeLeft.set(null);\n this.minimizeRight.set('0px');\n } else {\n this.minimizeRight.set(null);\n this.minimizeLeft.set('0px');\n }\n this.cdr.markForCheck();\n\n requestAnimationFrame(() => {\n if (this.popupSizeState() !== 'minimize') {\n return;\n }\n\n if (this.resizeActive()) {\n el.style.height = '';\n el.style.width = '';\n }\n\n const width = el.offsetWidth;\n const index = this.__popupRef__()?._getStackIndex?.() ?? 0;\n const offset = `${index * (width + 10)}px`;\n\n if (position === 'bottom-right') {\n this.minimizeLeft.set(null);\n this.minimizeRight.set(offset);\n } else {\n this.minimizeRight.set(null);\n this.minimizeLeft.set(offset);\n }\n this.cdr.markForCheck();\n });\n }\n\n /**\n * Restores the window from the legacy bottom bar.\n * @internal\n */\n exitMinimized() {\n this.minimizeLeft.set(null);\n this.minimizeRight.set(null);\n this.popupSizeState.set('normal');\n this.cdr.markForCheck();\n }\n\n /**\n * Enters or toggles the Fullscreen API on the popup element.\n * @internal\n */\n enterMaximized() {\n const el = this.popupEl()?.nativeElement;\n if (!el) return;\n\n if (!document.fullscreenElement) {\n el.requestFullscreen()\n .then(() => {\n this.fullScreenState.set(true);\n this.__popupRef__()?._setState?.('maximized');\n this.cdr.markForCheck();\n })\n .catch(() => undefined);\n } else {\n document.exitFullscreen().catch(() => undefined);\n }\n }\n\n /**\n * Leaves fullscreen.\n * @internal\n */\n exitMaximized() {\n if (this.fullScreenState() && document.fullscreenElement) {\n document.exitFullscreen().catch(() => undefined);\n }\n }\n\n /**\n * Sets inputs on the content component.\n */\n setContentInputs(values: AXComponentInputs) {\n const componentRef = this._componentRef;\n if (componentRef) {\n Object.entries(values).forEach(([key, value]) => {\n componentRef.setInput(key, value);\n });\n }\n }\n\n /**\n * Sets the popup title.\n */\n setTitle(title: string) {\n this.title.set(title);\n this.cdr.markForCheck();\n }\n}\n","<div\n class=\"ax-popup-wrapper\"\n aria-modal=\"true\"\n axFocusTrap\n [class.ax-popup-minimized-host]=\"popupSizeState() === 'minimize'\"\n>\n <div\n #popupEl\n axDrag\n class=\"ax-popup ax-popup-{{ __config__()?.size || 'md' }}\"\n tabindex=\"0\"\n [dragDisabled]=\"dragDisabled()\"\n [dragBoundary]=\"dragBoundary()\"\n [dragResetOnDblClick]=\"false\"\n [axResizable]=\"resizeEnabled()\"\n [handles]=\"resizeConfig().handles\"\n [minWidth]=\"resizeConfig().minWidth\"\n [minHeight]=\"resizeConfig().minHeight\"\n [maxWidth]=\"resizeMaxWidth()\"\n [maxHeight]=\"resizeMaxHeight()\"\n [lockAspectRatio]=\"resizeConfig().lockAspectRatio\"\n [dblClickAction]=\"resizeConfig().dblClickAction\"\n [class.ax-popup-resizable]=\"resizeActive()\"\n [class.ax-popup-minimized]=\"popupSizeState() === 'minimize'\"\n [class.ax-popup-minimized-end]=\"popupSizeState() === 'minimize' && minimizeSide() === 'bottom-right'\"\n [class.ax-popup-minimized-start]=\"popupSizeState() === 'minimize' && minimizeSide() === 'bottom-left'\"\n [class.ax-popup-fullscreen]=\"fullScreenState()\"\n [style.left]=\"popupSizeState() === 'minimize' ? minimizeLeft() : null\"\n [style.right]=\"popupSizeState() === 'minimize' ? minimizeRight() : null\"\n >\n <div class=\"ax-popup-header-container\">\n @if (__config__()?.header) {\n <div class=\"ax-popup-header\" axDragHandle>\n <span class=\"ax-popup-title\">{{ title() | translate | async }}</span>\n\n <div class=\"ax-popup-header-actions\" (pointerdown)=\"$event.stopPropagation()\">\n @if (minimizeEnabled() && popupSizeState() !== 'minimize') {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" title=\"Minimize\" (onClick)=\"minimize()\">\n <ax-popup-caption-icon name=\"minimize\" />\n </ax-button>\n }\n\n @if (popupSizeState() === 'minimize' || fullScreenState()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" title=\"Restore\" (onClick)=\"restore()\">\n <ax-popup-caption-icon name=\"restore\" />\n </ax-button>\n } @else if (maximizeEnabled()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" title=\"Maximize\" (onClick)=\"maximize()\">\n <ax-popup-caption-icon name=\"maximize\" />\n </ax-button>\n }\n\n @if (closeEnabled()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" title=\"Close\" tabindex=\"1\" (onClick)=\"_handleCloseClick()\">\n <ax-popup-caption-icon name=\"close\" />\n </ax-button>\n }\n </div>\n </div>\n }\n </div>\n\n <div class=\"ax-popup-main-container ax-loading-container\">\n <div class=\"ax-popup-body-container\" #contentContainer>\n @if (showSkeleton()) {\n <div class=\"ax-popup-skeleton-container\" #skeletonEl>\n @if (skeletonTemplate()) {\n <ng-container [ngTemplateOutlet]=\"skeletonTemplate()\"></ng-container>\n } @else {\n <div class=\"ax-popup-skeleton-default\">\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-title\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-line\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-line ax-popup-skeleton-bar-line-short\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-line\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n </div>\n }\n </div>\n }\n\n <ng-container #contentOutlet />\n </div>\n\n <div class=\"ax-popup-footer-container\" [class.ax-popup-footer-visible]=\"__config__()?.footer\"></div>\n </div>\n </div>\n</div>\n","import { AXComponentClosedPromise } from '@acorex/cdk/common';\nimport { AXOverlayRef, AXOverlayService } from '@acorex/cdk/overlay';\nimport { moveItemInArray } from '@acorex/cdk/drag-drop';\nimport { AXComponentInputs } from '@acorex/core/components';\nimport { ComponentRef, computed, inject, Injectable, Injector, runInInjectionContext, signal } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXPopupComponent } from './popup.component';\nimport {\n AXPopupConfig,\n AXPopupContentType,\n AXPopupDockItem,\n AXPopupRef,\n AXPopupWindowState,\n resolvePopupMinimize,\n} from './popup.interface';\n\ntype PopupEntry = {\n overlay: AXOverlayRef<AXPopupComponent>;\n popup: AXPopupRef;\n dock: string;\n data: unknown;\n};\n\nconst OVERLAY_HIDDEN_CLASS = 'ax-popup-overlay-hidden';\n\n/**\n * This is a service which you can create popup with it\n *\n * @category Components\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPopupService {\n private popupList = new Map<number, PopupEntry>();\n private overlayService = inject(AXOverlayService);\n private injector = inject(Injector);\n private dockCounts = signal<Record<string, number>>({});\n private minimizedByDock = signal<Record<string, number[]>>({});\n\n /**\n * Open popup 1\n */\n open(content: AXPopupContentType, title: string): AXComponentClosedPromise;\n /**\n * Open popup 2\n */\n open(content: AXPopupContentType, config?: AXPopupConfig): AXComponentClosedPromise;\n\n /**\n * @ignore\n */\n open(arg1: AXPopupContentType, arg2?: string | AXPopupConfig): AXComponentClosedPromise {\n const config = this.mergeConfig(arg2);\n\n const promise = new AXComponentClosedPromise((resolve) => {\n this.openRef(arg1, config).then((ref) => {\n ref.onClose.subscribe((data) => {\n if (resolve) {\n resolve({\n sender: ref.componentInstance,\n data: data,\n });\n }\n });\n });\n });\n\n return promise;\n }\n\n /**\n * Opens a popup and returns a mutable reference (for host components and advanced control).\n */\n async openRef<TResult = any>(content: AXPopupContentType, config?: AXPopupConfig): Promise<AXPopupRef<TResult>> {\n return this.openInternal(content, this.mergeConfig(config));\n }\n\n hasDock(name: string): boolean {\n return (this.dockCounts()[name] ?? 0) > 0;\n }\n\n registerDock(name: string): void {\n this.dockCounts.update((counts) => ({\n ...counts,\n [name]: (counts[name] ?? 0) + 1,\n }));\n }\n\n unregisterDock(name: string): void {\n const remaining = Math.max(0, (this.dockCounts()[name] ?? 0) - 1);\n this.dockCounts.update((counts) => ({\n ...counts,\n [name]: remaining,\n }));\n\n if (remaining > 0) {\n return;\n }\n\n const ids = this.minimizedByDock()[name] ?? [];\n for (const id of [...ids]) {\n const instance = this.getPopupInstance(id);\n instance?.enterMinimized(false);\n this.setOverlayVisible(id, true);\n }\n this.minimizedByDock.update((map) => {\n if (!(name in map)) {\n return map;\n }\n const next = { ...map };\n delete next[name];\n return next;\n });\n }\n\n minimizedInDock(dock: string): AXPopupDockItem[] {\n const ids = this.minimizedByDock()[dock] ?? [];\n return ids.map((id) => this.toDockItem(id)).filter((item): item is AXPopupDockItem => !!item);\n }\n\n reorderMinimized(dock: string, fromIndex: number, toIndex: number): void {\n this.minimizedByDock.update((map) => {\n const list = [...(map[dock] ?? [])];\n moveItemInArray(list, fromIndex, toIndex);\n return { ...map, [dock]: list };\n });\n }\n\n private mergeConfig(arg2?: string | AXPopupConfig): AXPopupConfig {\n const config: AXPopupConfig = {\n closeButton: true,\n header: true,\n footer: false,\n size: 'md',\n maximizable: false,\n draggable: true,\n hasBackdrop: true,\n closeOnBackdropClick: false,\n data: {},\n closeOnNavigation: true,\n buttons: {\n close: true,\n maximize: false,\n minimize: {\n enable: false,\n position: 'bottom-right',\n dock: 'default',\n },\n },\n };\n if (typeof arg2 === 'string') {\n config.title = arg2;\n } else if (arg2) {\n const { buttons, ...rest } = arg2;\n Object.assign(config, rest);\n if (buttons) {\n config.buttons = {\n ...config.buttons,\n ...buttons,\n minimize: {\n enable: false,\n position: 'bottom-right',\n dock: 'default',\n ...config.buttons?.minimize,\n ...buttons.minimize,\n },\n };\n }\n }\n return config;\n }\n\n /**\n * Opens a popup with the specified content and configuration.\n */\n private async openInternal<TResult = any>(\n content: AXPopupContentType,\n config: AXPopupConfig,\n ): Promise<AXPopupRef<TResult>> {\n const randomId = Math.floor(Math.random() * 100000000000);\n const onClose = new Subject<TResult>();\n const onStateChange = new Subject<AXPopupWindowState>();\n const state = signal<AXPopupWindowState>('normal');\n const title = signal(config.title ?? '');\n const isMinimized = runInInjectionContext(this.injector, () => computed(() => state() === 'minimized'));\n const isMaximized = runInInjectionContext(this.injector, () => computed(() => state() === 'maximized'));\n const dock = resolvePopupMinimize(config).dock;\n\n const returnRef: AXPopupRef<TResult> = {\n close: (data) => {\n this.close(randomId, data);\n },\n setInputs: (values: AXComponentInputs) => {\n this.setInputs(randomId, values);\n },\n setTitle: (value) => {\n title.set(value);\n this.setTitle(randomId, value);\n },\n minimize: () => {\n this.minimize(randomId);\n },\n maximize: () => {\n this.maximize(randomId);\n },\n restore: () => {\n this.restore(randomId);\n },\n bringToFront: () => {\n this.bringToFront(randomId);\n },\n onClose,\n onStateChange,\n state: state.asReadonly(),\n title: title.asReadonly(),\n isMinimized,\n isMaximized,\n _getStackIndex: () => this.getMapIndexOf(randomId),\n _setState: (next) => {\n if (state() === next) {\n return;\n }\n state.set(next);\n onStateChange.next(next);\n },\n };\n\n if (config._bindContentInputs) {\n config.inputs = {\n ...((config.inputs as Record<string, unknown>) ?? {}),\n ...config._bindContentInputs(returnRef),\n };\n }\n\n const panelClasses = ['ax-popup-overlay'];\n if (config.panelClass?.length) {\n panelClasses.push(...config.panelClass);\n }\n\n const ref = await this.overlayService.create(AXPopupComponent, {\n contextElement: config.contextElement,\n visualContextScope: 'theme',\n closeOnNavigation: config.closeOnNavigation,\n backdrop: {\n enabled: config.hasBackdrop ?? true,\n background: true,\n closeOnClick: config.closeOnBackdropClick ?? false,\n backdropClass: config.backdropClass,\n },\n panelClass: panelClasses,\n animation: config.animation ?? true,\n inputs: {\n __content__: content,\n __config__: config,\n __popupRef__: returnRef,\n __id__: randomId,\n },\n onDispose: () => {\n const entry = this.popupList.get(randomId);\n if (!entry) return;\n this.removeFromDock(randomId);\n this.popupList.delete(randomId);\n entry.popup.onClose.next(undefined as TResult);\n entry.popup.onClose.complete();\n entry.popup.onStateChange.complete();\n },\n });\n\n this.popupList.set(randomId, {\n overlay: ref,\n popup: returnRef,\n dock,\n data: config.data,\n });\n\n return returnRef;\n }\n\n close<TResult = any>(id: number, data?: TResult): void {\n const ref = this.popupList.get(id);\n if (!ref) return;\n this.removeFromDock(id);\n this.popupList.delete(id);\n ref.popup.onClose.next(data);\n ref.popup.onClose.complete();\n ref.popup.onStateChange.complete();\n ref.overlay.dispose();\n }\n\n setInputs(id: number, values: AXComponentInputs): void {\n const ref = this.popupList.get(id)?.overlay.instance;\n if (!ref) return;\n if (ref instanceof ComponentRef) {\n const componentInstance = ref.instance as AXPopupComponent;\n componentInstance.setContentInputs(values);\n }\n }\n\n setTitle(id: number, title: string): void {\n const ref = this.popupList.get(id)?.overlay.instance;\n if (!ref) return;\n if (ref instanceof ComponentRef) {\n const componentInstance = ref.instance as AXPopupComponent;\n componentInstance.setTitle(title);\n }\n }\n\n minimize(id: number): void {\n const entry = this.popupList.get(id);\n const instance = this.getPopupInstance(id);\n if (!entry || !instance || entry.popup.state() === 'minimized') return;\n\n const docked = this.hasDock(entry.dock);\n instance.enterMinimized(docked);\n entry.popup._setState?.('minimized');\n\n if (docked) {\n this.addToDock(id, entry.dock);\n this.setOverlayVisible(id, false);\n }\n }\n\n maximize(id: number): void {\n const entry = this.popupList.get(id);\n const instance = this.getPopupInstance(id);\n if (!entry || !instance) return;\n\n if (entry.popup.state() === 'minimized') {\n this.restore(id);\n }\n\n instance.enterMaximized();\n }\n\n restore(id: number): void {\n const entry = this.popupList.get(id);\n const instance = this.getPopupInstance(id);\n if (!entry || !instance) return;\n\n const current = entry.popup.state();\n if (current === 'normal') {\n return;\n }\n\n if (current === 'maximized') {\n instance.exitMaximized();\n return;\n }\n\n instance.exitMinimized();\n this.removeFromDock(id);\n this.setOverlayVisible(id, true);\n entry.popup._setState?.('normal');\n this.bringToFront(id);\n }\n\n getMapIndexOf(targetKey: number): number {\n let index = 0;\n for (const key of this.popupList.keys()) {\n if (key === targetKey) {\n return index;\n }\n index++;\n }\n return -1;\n }\n\n bringToFront(id: number): void {\n const ref = this.popupList.get(id);\n if (!ref) return;\n ref.overlay.bringToFront();\n }\n\n markMaximized(id: number, maximized: boolean): void {\n const entry = this.popupList.get(id);\n if (!entry || entry.popup.state() === 'minimized') {\n return;\n }\n entry.popup._setState?.(maximized ? 'maximized' : 'normal');\n }\n\n private addToDock(id: number, dock: string): void {\n this.minimizedByDock.update((map) => {\n const list = map[dock] ?? [];\n if (list.includes(id)) {\n return map;\n }\n return { ...map, [dock]: [...list, id] };\n });\n }\n\n private removeFromDock(id: number): void {\n this.minimizedByDock.update((map) => {\n let changed = false;\n const next: Record<string, number[]> = {};\n for (const [dock, ids] of Object.entries(map)) {\n const filtered = ids.filter((item) => item !== id);\n next[dock] = filtered;\n if (filtered.length !== ids.length) {\n changed = true;\n }\n }\n return changed ? next : map;\n });\n }\n\n private setOverlayVisible(id: number, visible: boolean): void {\n const overlay = this.popupList.get(id)?.overlay;\n if (!overlay) return;\n\n overlay.overlayElement?.classList.toggle(OVERLAY_HIDDEN_CLASS, !visible);\n overlay.backdropElement?.classList.toggle(OVERLAY_HIDDEN_CLASS, !visible);\n overlay.overlayElement?.toggleAttribute('aria-hidden', !visible);\n overlay.backdropElement?.toggleAttribute('aria-hidden', !visible);\n }\n\n private toDockItem(id: number): AXPopupDockItem | null {\n const entry = this.popupList.get(id);\n if (!entry) {\n return null;\n }\n return {\n id,\n title: entry.popup.title,\n data: entry.data,\n ref: entry.popup,\n restore: () => entry.popup.restore(),\n maximize: () => entry.popup.maximize(),\n close: () => entry.popup.close(),\n };\n }\n\n private getPopupInstance(id: number): AXPopupComponent | null {\n const ref = this.popupList.get(id)?.overlay.instance;\n if (!ref) return null;\n if (ref instanceof ComponentRef) {\n return ref.instance as AXPopupComponent;\n }\n return null;\n }\n}\n","import { AX_DRAG_PARENT, AXDragDirective } from '@acorex/cdk/drag-drop';\nimport { afterRenderEffect, Directive, ElementRef, inject, Injector } from '@angular/core';\n\n/**\n * Binds `[axDragHandle]` nodes inside a dock tab (including projected templates)\n * to the parent `axDrag` wrapper.\n */\n@Directive({\n selector: '[axPopupDockItem]',\n exportAs: 'axPopupDockItem',\n})\nexport class AXPopupDockItemDirective {\n private host = inject<ElementRef<HTMLElement>>(ElementRef);\n private drag = inject(AXDragDirective);\n\n readonly injector = Injector.create({\n parent: inject(Injector),\n providers: [{ provide: AX_DRAG_PARENT, useValue: this.drag }],\n });\n\n constructor() {\n afterRenderEffect(() => {\n this.host.nativeElement.querySelectorAll<HTMLElement>('[axDragHandle]').forEach((element) => {\n this.drag.registerHandle(element);\n });\n });\n }\n}\n","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport {\n AXDragDirective,\n AXDragHandleDirective,\n AXDropListDirective,\n AXDropListDroppedEvent,\n} from '@acorex/cdk/drag-drop';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXPopupCaptionIconComponent } from '../popup-caption-icon';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n effect,\n inject,\n input,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXPopupDockItem } from '../popup.interface';\nimport { AXPopupService } from '../popup.service';\nimport { AXPopupDockItemDirective } from './popup-dock-item.directive';\n\n/**\n * Page-hosted dock for minimized popups. Place it anywhere in the app; matching\n * `buttons.minimize.dock` names send hidden windows here as reorderable tabs.\n *\n * @example\n * ```html\n * <ax-popup-dock name=\"taskbar\">\n * <ng-template let-item>\n * <button axDragHandle (click)=\"item.restore()\">{{ item.title() }}</button>\n * <button (click)=\"item.close()\">Close</button>\n * </ng-template>\n * </ax-popup-dock>\n * ```\n */\n@Component({\n selector: 'ax-popup-dock',\n templateUrl: './popup-dock.component.html',\n styleUrls: ['./popup-dock.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'ax-popup-dock',\n '[class.ax-popup-dock-empty]': 'items().length === 0',\n '[class.ax-popup-dock-vertical]': 'orientation() === \"vertical\"',\n '[class.ax-popup-dock-horizontal]': 'orientation() === \"horizontal\"',\n },\n imports: [\n NgTemplateOutlet,\n AXDragDirective,\n AXDragHandleDirective,\n AXDropListDirective,\n AXPopupDockItemDirective,\n AXButtonComponent,\n AXPopupCaptionIconComponent,\n ],\n providers: [{ provide: AXComponent, useExisting: AXPopupDockComponent }],\n})\nexport class AXPopupDockComponent extends NXComponent {\n private popupService = inject(AXPopupService);\n\n /**\n * Dock name matched against `buttons.minimize.dock`.\n * @defaultValue 'default'\n */\n name = input('default');\n\n /**\n * Layout of the tab strip.\n * @defaultValue 'horizontal'\n */\n orientation = input<'horizontal' | 'vertical'>('horizontal');\n\n protected itemTemplate = contentChild(TemplateRef);\n\n protected items = computed<AXPopupDockItem[]>(() => this.popupService.minimizedInDock(this.name()));\n\n constructor() {\n super();\n effect((onCleanup) => {\n const name = this.name();\n this.popupService.registerDock(name);\n onCleanup(() => this.popupService.unregisterDock(name));\n });\n }\n\n protected onDropped(event: AXDropListDroppedEvent): void {\n if (event.previousIndex < 0 || event.currentIndex < 0 || event.previousIndex === event.currentIndex) {\n return;\n }\n this.popupService.reorderMinimized(this.name(), event.previousIndex, event.currentIndex);\n }\n}\n","<div\n class=\"ax-popup-dock-list\"\n axDropList\n [dropListOrientation]=\"orientation()\"\n (dropListDropped)=\"onDropped($event)\"\n>\n @for (item of items(); track item.id) {\n <div\n axDrag\n axPopupDockItem\n #dockItem=\"axPopupDockItem\"\n class=\"ax-popup-dock-item\"\n [dragData]=\"item.id\"\n dragCursor=\"grab\"\n >\n @if (itemTemplate(); as tpl) {\n <ng-container\n [ngTemplateOutlet]=\"tpl\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n [ngTemplateOutletInjector]=\"dockItem.injector\"\n />\n } @else {\n <div class=\"ax-popup-dock-tab\">\n <span axDragHandle class=\"ax-popup-dock-tab-title\" (click)=\"item.restore()\">\n {{ item.title() }}\n </span>\n <div class=\"ax-popup-dock-tab-actions\" (pointerdown)=\"$event.stopPropagation()\">\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" title=\"Restore\" (onClick)=\"item.restore()\">\n <ax-popup-caption-icon name=\"restore\" />\n </ax-button>\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" title=\"Maximize\" (onClick)=\"item.maximize()\">\n <ax-popup-caption-icon name=\"maximize\" />\n </ax-button>\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" title=\"Close\" (onClick)=\"item.close()\">\n <ax-popup-caption-icon name=\"close\" />\n </ax-button>\n </div>\n </div>\n }\n </div>\n }\n</div>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ax-popup-footer',\n templateUrl: './popup-footer.component.html',\n styleUrl: './popup-footer.component.css',\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXComponent, useExisting: AXPopupFooterComponent }],\n})\nexport class AXPopupFooterComponent {}\n","<ng-content select=\"ax-prefix\"></ng-content>\n<ng-content select=\"ax-suffix\"></ng-content>\n<ng-content></ng-content>\n","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { AXComponentInputs } from '@acorex/core/components';\nimport { Component, inject, signal, TemplateRef, viewChild, ViewEncapsulation } from '@angular/core';\nimport { AXPopupConfig, AXPopupRef } from '../popup.interface';\nimport { AXPopupService } from '../popup.service';\n\n/**\n * Declarative popup host. Project content and call `open()` / `close()` on the component instance.\n *\n * @example\n * ```html\n * <ax-popup-host #popup>\n * <p>Content</p>\n * </ax-popup-host>\n * <ax-button (onClick)=\"popup.open({ title: 'Hello', header: true })\"></ax-button>\n * ```\n */\n@Component({\n selector: 'ax-popup-host',\n template: `\n <ng-template #contentTemplate>\n <ng-content></ng-content>\n </ng-template>\n `,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXComponent, useExisting: AXPopupHostComponent }],\n})\nexport class AXPopupHostComponent extends NXComponent {\n private popupService = inject(AXPopupService);\n protected template = viewChild(TemplateRef);\n private ref = signal<AXPopupRef | null>(null);\n\n /**\n * Opens the projected content in a popup overlay.\n */\n async open(options?: AXPopupConfig): Promise<AXPopupRef> {\n const template = this.template();\n if (!template) {\n throw new Error('AXPopupHostComponent: content template is not ready.');\n }\n const ref = await this.popupService.openRef(template, options);\n this.ref.set(ref);\n ref.onClose.subscribe(() => {\n if (this.ref() === ref) {\n this.ref.set(null);\n }\n });\n return ref;\n }\n\n /**\n * Closes the currently open popup hosted by this component.\n */\n async close(data?: unknown): Promise<void> {\n const current = this.ref();\n if (!current) return;\n current.close(data);\n }\n\n /**\n * Sets input values for the popup content component.\n */\n async setInputs(values: AXComponentInputs): Promise<void> {\n this.ref()?.setInputs(values);\n }\n\n /**\n * Minimizes the hosted popup.\n */\n async minimize(): Promise<void> {\n this.ref()?.minimize();\n }\n\n /**\n * Maximizes the hosted popup.\n */\n async maximize(): Promise<void> {\n this.ref()?.maximize();\n }\n\n /**\n * Restores the hosted popup.\n */\n async restore(): Promise<void> {\n this.ref()?.restore();\n }\n}\n","import { AXCommonModule } from '@acorex/cdk/common';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXPopupCaptionIconComponent } from './popup-caption-icon';\nimport { AXPopupDockComponent } from './popup-dock/popup-dock.component';\nimport { AXPopupFooterComponent } from './popup-footer/popup-footer.component';\nimport { AXPopupHostComponent } from './popup-host/popup-host.component';\nimport { AXPopupComponent } from './popup.component';\nimport { AXPopupService } from './popup.service';\n\nconst COMPONENT = [\n AXPopupComponent,\n AXPopupHostComponent,\n AXPopupFooterComponent,\n AXPopupDockComponent,\n AXPopupCaptionIconComponent,\n];\nconst MODULES = [CommonModule, AXCommonModule, AXButtonModule, AXDecoratorModule, AXTranslationModule];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [AXPopupService],\n})\nexport class AXPopupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAIA;;AAEG;MA+CU,2BAA2B,CAAA;AA9CxC,IAAA,WAAA,GAAA;QA+CE,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ;iFAA0B;AAChD,IAAA;8GAFY,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EApB5B;;;;;;;;;;;;;;;;;;AAkBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,0LAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEU,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBA9CvC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EAAA,eAAA,EAChB,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACJ,wBAAA,KAAK,EAAE,uBAAuB;AAC9B,wBAAA,kBAAkB,EAAE,QAAQ;AAC5B,wBAAA,aAAa,EAAE,MAAM;qBACtB,EAAA,QAAA,EAmBS;;;;;;;;;;;;;;;;;;AAkBT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,0LAAA,CAAA,EAAA;;;ACVI,MAAM,+BAA+B,GAAqB;IAC/D,KAAK;IACL,QAAQ;IACR,OAAO;IACP,KAAK;IACL,WAAW;IACX,SAAS;IACT,cAAc;IACd,YAAY;;MAoHQ,oBAAoB,CAAA;AAD1C,IAAA,WAAA,GAAA;AAEE,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK;iGAAc;AAEtB,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,QAAQ;uFAAC;AAClE,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,IAAI,KAAK;wFAAC;AACtE,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,IAAI,KAAK;wFAAC;AACtE,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;uFAAC;AAyBtE,IAAA;IAvBQ,KAAK,CAAC,OAAY,IAAI,EAAA;QAC3B,IAAI,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC;IAC/B;AAEO,IAAA,QAAQ,CAAC,KAAa,EAAA;QAC3B,IAAI,CAAC,SAAS,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC;IACnC;IAEO,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE;IAC9B;IAEO,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE;IAC9B;IAEO,OAAO,GAAA;AACZ,QAAA,IAAI,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE;IAC7B;IAEO,YAAY,GAAA;AACjB,QAAA,IAAI,CAAC,SAAS,EAAE,EAAE,YAAY,EAAE;IAClC;8GA9BoB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADzC;;AAkCD;AACM,SAAU,uBAAuB,CAAC,MAA6B,EAAA;IACnE,IAAI,MAAM,EAAE,OAAO,EAAE,KAAK,KAAK,SAAS,EAAE;AACxC,QAAA,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK;IAC7B;AACA,IAAA,OAAO,MAAM,EAAE,WAAW,IAAI,IAAI;AACpC;AAEA;AACM,SAAU,uBAAuB,CAAC,MAA6B,EAAA;IACnE,IAAI,MAAM,EAAE,OAAO,EAAE,QAAQ,KAAK,SAAS,EAAE;AAC3C,QAAA,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ;IAChC;AACA,IAAA,OAAO,MAAM,EAAE,WAAW,IAAI,KAAK;AACrC;AAEA;AACM,SAAU,oBAAoB,CAAC,MAA6B,EAAA;IAKhE,OAAO;QACL,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK;QAClD,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,IAAI,cAAc;QAC/D,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,IAAI,SAAS;KACnD;AACH;AAEA;AACM,SAAU,qBAAqB,CAAC,MAA6B,EAAA;AACjE,IAAA,MAAM,QAAQ,GAAmC;AAC/C,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,OAAO,EAAE,+BAA+B;AACxC,QAAA,QAAQ,EAAE,GAAG;AACb,QAAA,SAAS,EAAE,GAAG;AACd,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,SAAS,EAAE,IAAI;AACf,QAAA,eAAe,EAAE,KAAK;AACtB,QAAA,cAAc,EAAE,OAAO;KACxB;IAED,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;AACrC,QAAA,OAAO,QAAQ;IACjB;AAEA,IAAA,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS;IAC5B,IAAI,CAAC,GAAG,EAAE;AACR,QAAA,OAAO,QAAQ;IACjB;AAEA,IAAA,MAAM,OAAO,GAAG,GAAG,KAAK,IAAI,GAAG,EAAE,GAAG,GAAG;IAEvC,OAAO;AACL,QAAA,MAAM,EAAE,IAAI;AACZ,QAAA,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,+BAA+B;AAC3D,QAAA,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ;AAC/C,QAAA,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS;AAClD,QAAA,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;AAClC,QAAA,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;AACpC,QAAA,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,KAAK;AACjD,QAAA,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,OAAO;KAClD;AACH;;ACxNA;;;;AAIG;AA4BG,MAAO,gBAAiB,SAAQ,eAAe,CAAA;AAkBnD,IAAA,gBAAgB;AAsGhB,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;AAxHD,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;AACtB,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACzC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC;AAC9B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAW3B,IAAA,CAAA,OAAO,GAAG,SAAS,CAA0B,SAAS;oFAAC;QACvD,IAAA,CAAA,gBAAgB,GAAG,YAAY,CAAC,qBAAqB;6FAAC;AAE9D,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,MAAK;AAC7B,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE;AACvC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO;YACzB,IAAI,CAAC,IAAI,EAAE;gBACT;YACF;AACA,YAAA,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AAC5B,gBAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;YAC7B;QACF,CAAC;6FAAC;;AAGO,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK;mGAAsB;AACzC,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK;kGAAiB;AACnC,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK;oGAAc;AAClC,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK;8FAAU;AAEjC;;;AAGG;QACH,IAAA,CAAA,SAAS,GAAG,IAAI;;QAMR,IAAA,CAAA,WAAW,GAAyC,IAAI;;QAGxD,IAAA,CAAA,aAAa,GAAiC,IAAI;QAEhD,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,KAAK;yFAAC;AAE5B,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,EAAE,gBAAgB,IAAI,IAAI;;QAGpE,IAAA,CAAA,KAAK,GAAG,MAAM,CAAS,EAAE;kFAAC;;QAGjB,IAAA,CAAA,YAAY,GAAG,MAAM,CAA0B,SAAS;yFAAC;QAEzD,IAAA,CAAA,YAAY,GAAG,QAAQ,CACxC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,UAAU,IAAI,IAAI,CAAC,eAAe,EAAE;yFACtG;AAEkB,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,qBAAqB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;yFAAC;QAEvE,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM;yFAAC;QAEzD,IAAA,CAAA,aAAa,GAAG,QAAQ,CACzC,MACE,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;0FAChG;QAEgB,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;yFAAC;AAE5C,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,MAAK;YAChD,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,QAAQ;AACxC,YAAA,IAAI,GAAG,IAAI,IAAI,EAAE;AACf,gBAAA,OAAO,GAAG;YACZ;YACA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK;YAC1C,OAAO,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,QAAQ;QAC3C,CAAC;2FAAC;AAEiB,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;YACjD,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,SAAS;AACzC,YAAA,IAAI,GAAG,IAAI,IAAI,EAAE;AACf,gBAAA,OAAO,GAAG;YACZ;YACA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM;YAC3C,OAAO,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,QAAQ;QAC3C,CAAC;4FAAC;QAEM,IAAA,CAAA,qBAAqB,GAAG,MAAK;AACnC,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW;YACrC,IAAI,CAAC,GAAG,EAAE;gBACR;YACF;AACA,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC;AAC3E,QAAA,CAAC;QAES,IAAA,CAAA,cAAc,GAAG,MAAM,CAAwB,QAAQ;2FAAC;QACxD,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,KAAK;4FAAC;QAC/B,IAAA,CAAA,YAAY,GAAG,MAAM,CAAgB,IAAI;yFAAC;QAC1C,IAAA,CAAA,aAAa,GAAG,MAAM,CAAgB,IAAI;0FAAC;AAClC,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,oBAAoB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ;yFAAC;QAE1F,IAAA,CAAA,uBAAuB,GAAG,MAAK;AACrC,YAAA,MAAM,YAAY,GAAG,CAAC,CAAC,QAAQ,CAAC,iBAAiB;AACjD,YAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC;YACtC,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,KAAK,WAAW,EAAE;AAChD,gBAAA,IAAI,CAAC,YAAY,EAAE,EAAE,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAC;YACzE;AACA,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;AACzB,QAAA,CAAC;QAES,IAAA,CAAA,YAAY,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QAC/D,IAAA,CAAA,eAAe,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;AAClE,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM;QAI9E,eAAe,CAAC,MAAK;YACnB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;YACpD,IAAI,CAAC,qBAAqB,EAAE;AAC5B,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW;YACrC,GAAG,EAAE,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,qBAAqB,CAAC;YAC3D,IAAI,CAAC,sBAAsB,EAAE;AAC/B,QAAA,CAAC,CAAC;IACJ;;IAGS,QAAQ,GAAA;QACf,KAAK,CAAC,QAAQ,EAAE;AAEhB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE;QAChC,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;YAC3B,IAAI,MAAM,EAAE;AACV,gBAAA,MAAM,CAAC,SAAS,GAAG,KAAK;AACxB,gBAAA,MAAM,CAAC,SAAS,GAAG,KAAK;YAC1B;QACF;QAEA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;QAEnC,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,uBAAuB,CAAC;AAE3E,QAAA,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC;AAChC,QAAA,IAAI,KAAK,GAAG,CAAC,EAAE;AACb,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;AAC3B,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;AACvB,YAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,MAAK;AACjC,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAK;AAClB,oBAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,oBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;AAC5B,oBAAA,KAAK,IAAI,CAAC,aAAa,EAAE;AACzB,oBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;AACzB,gBAAA,CAAC,CAAC;YACJ,CAAC,EAAE,KAAK,CAAC;QACX;aAAO;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AACzC,gBAAA,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE;AAChC,aAAA,CAAC;YACF,IAAI,CAAC,aAAa,EAAE;QACtB;IACF;;AAGQ,IAAA,MAAM,aAAa,GAAA;AACzB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE;AAClC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE;QAEhC,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;gBACjC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YAC3C;YACA;QACF;AAEA,QAAA,IAAI,OAAO,YAAY,WAAW,EAAE;AAClC,YAAA,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,OAAO,EAAE;gBACnD,SAAS,EAAE,MAAM,EAAE,IAAI;AACvB,gBAAA,GAAG,EAAE,IAAI;gBACT,IAAI,OAAO,MAAM,EAAE,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAI,MAAM,CAAC,MAAiB,GAAG,EAAE,CAAC;AAC1F,aAAA,CAAC;YACF,IAAI,CAAC,qBAAqB,EAAE;QAC9B;AAAO,aAAA,IAAI,OAAO,YAAY,WAAW,EAAE;AACzC,YAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC1E,IAAI,CAAC,qBAAqB,EAAE;QAC9B;AAAO,aAAA,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;YACxC,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,OAAwB,CAAC;AACvF,YAAA,IAAI,CAAC,aAAa,GAAG,YAAY;AAEjC,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE;YACpC,IAAI,QAAQ,EAAE;AACZ,gBAAA,QAAQ,CAAC,iBAAiB,GAAG,YAAY,CAAC,QAAQ;YACpD;AAEA,YAAA,MAAM,SAAS,GAAI,YAAY,CAAC,aAA4E,EAAE;AAC5G,kBAAE,MAAM;YAEV,IAAI,MAAM,EAAE,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;AACnD,gBAAA,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;AAClD,oBAAA,YAAY,CAAC,QAAoC,CAAC,GAAG,CAAC,GAAG,KAAK;AACjE,gBAAA,CAAC,CAAC;YACJ;YAEA,IAAI,MAAM,EAAE,MAAM,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE;AACvD,gBAAA,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;AACrD,oBAAA,IAAI,SAAS,IAAI,GAAG,IAAI,SAAS,EAAE;AACjC,wBAAA,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC;oBACnC;AACF,gBAAA,CAAC,CAAC;YACJ;AAEA,YAAA,IAAI,SAAS,IAAI,WAAW,IAAI,SAAS,EAAE;gBACzC,YAAY,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;YACzD;AAEA,YAAA,MAAM,QAAQ,GAAG,YAAY,CAAC,QAE7B;AACD,YAAA,IAAI,QAAQ,CAAC,QAAQ,EAAE;gBACrB,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;AAChC,oBAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,gBAAA,CAAC,CAAC;YACJ;YAEA,IAAI,CAAC,qBAAqB,EAAE;QAC9B;IACF;;IAGQ,qBAAqB,GAAA;AAC3B,QAAA,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAK;YAChC,UAAU,CAAC,MAAK;gBACd,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAiB,0BAA0B,CAAC;gBAC5F,MAAM,OAAO,GAAG,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEjC,gBAAA,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE;oBACrB,IAAI,CAAC,KAAK,EAAE;oBACZ,IAAI,CAAC,sBAAsB,EAAE;oBAC7B;gBACF;gBAEA,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAiB,4BAA4B,CAAC;gBACnG,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAiB,4BAA4B,CAAC;AAEnG,gBAAA,MAAM,MAAM,GACV,OAAO,CAAC,aAAa,CAAc,oBAAoB,CAAC;AACxD,oBAAA,OAAO,CAAC,aAAa,CAAc,0BAA0B,CAAC;oBAC9D,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAc,0CAA0C,CAAC;gBAC9F,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAiB,oBAAoB,CAAC;AAE1E,gBAAA,IAAI,MAAM,IAAI,SAAS,EAAE;AACvB,oBAAA,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC1B;AACA,gBAAA,IAAI,MAAM,IAAI,SAAS,EAAE;AACvB,oBAAA,SAAS,CAAC,SAAS,GAAG,EAAE;AACxB,oBAAA,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC1B;gBACA,IAAI,CAAC,KAAK,EAAE;gBACZ,IAAI,CAAC,sBAAsB,EAAE;AAC/B,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;YACjC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QAC3C;AACA,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;IACzB;IAEQ,sBAAsB,GAAA;AAC5B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO;AACzB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE;AAClC,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE;YAClB;QACF;AAEA,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAK;YAClB,IAAI,CAAC,gBAAgB,CAAc,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;AACvE,gBAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;AAC9B,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;;IAIA,gBAAgB,GAAA;AACd,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE;QAChC,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC;AAC1E,QAAA,IAAI,CAAC,mBAAmB;YAAE;AAE1B,QAAA,IAAI,MAAM,EAAE,aAAa,KAAK,KAAK;YAAE;QAErC,IAAI,MAAM,EAAE,aAAa,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;YACzD,IAAI,CAAC,KAAK,EAAE;QACd;IACF;;IAGU,iBAAiB,GAAA;QACzB,IAAI,CAAC,KAAK,EAAE;IACd;;IAGA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;AAC7B,YAAA,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;AAC9B,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI;QACzB;QACA,QAAQ,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,IAAI,CAAC,uBAAuB,CAAC;AAC9E,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,qBAAqB,CAAC;QACpF,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,QAAQ,CAAC,iBAAiB,EAAE;YACxD,QAAQ,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,MAAM,SAAS,CAAC;QAClD;AACA,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;YACjC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QAC3C;AACA,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;AAC5B,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI;QAC3B;IACF;AAEA;;AAEG;IACH,KAAK,GAAA;AACH,QAAA,UAAU,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAiB,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC;IAC7F;AAEA;;AAEG;AACH,IAAA,KAAK,CAAC,IAAc,EAAA;QAClB,MAAM,OAAO,GAAG,MAAK;YACnB,IAAI,CAAC,YAAY,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC;AAClC,QAAA,CAAC;AAED,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa,EAAE,QAEjC;AAEb,QAAA,IAAI,OAAO,iBAAiB,EAAE,SAAS,KAAK,UAAU,EAAE;AACtD,YAAA,MAAM,EAAE,GAAuB;AAC7B,gBAAA,MAAM,EAAE,KAAK;gBACb,IAAI;aACL;YACD,MAAM,aAAa,GAAG,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;AACrD,YAAA,IAAI,aAAa,YAAY,OAAO,EAAE;AACpC,gBAAA,aAAa,CAAC,IAAI,CAAC,MAAK;AACtB,oBAAA,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE;AACd,wBAAA,OAAO,EAAE;oBACX;AACF,gBAAA,CAAC,CAAC;YACJ;iBAAO;AACL,gBAAA,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE;AACd,oBAAA,OAAO,EAAE;gBACX;YACF;QACF;aAAO;AACL,YAAA,OAAO,EAAE;QACX;IACF;AAEA;;AAEG;IACH,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE;IACjC;AAEA;;AAEG;IACH,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE;IACjC;AAEA;;AAEG;IACH,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE;IAChC;AAEA;;;;AAIG;AACH,IAAA,cAAc,CAAC,MAAe,EAAA;QAC5B,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,QAAQ,CAAC,iBAAiB,EAAE;YACxD,QAAQ,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,MAAM,SAAS,CAAC;QAClD;QAEA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;AAC3B,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC;AACjC,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;YACvB;QACF;QAEA,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,aAAa;AACxC,QAAA,IAAI,CAAC,EAAE;YAAE;QAET,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ;AACjE,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC;AACnC,QAAA,IAAI,QAAQ,KAAK,cAAc,EAAE;AAC/B,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;AAC3B,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;QAC/B;aAAO;AACL,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;QAC9B;AACA,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;QAEvB,qBAAqB,CAAC,MAAK;AACzB,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,UAAU,EAAE;gBACxC;YACF;AAEA,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;AACvB,gBAAA,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE;AACpB,gBAAA,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE;YACrB;AAEA,YAAA,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW;AAC5B,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,cAAc,IAAI,IAAI,CAAC;YAC1D,MAAM,MAAM,GAAG,CAAA,EAAG,KAAK,IAAI,KAAK,GAAG,EAAE,CAAC,CAAA,EAAA,CAAI;AAE1C,YAAA,IAAI,QAAQ,KAAK,cAAc,EAAE;AAC/B,gBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;AAC3B,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;YAChC;iBAAO;AACL,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B,gBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;YAC/B;AACA,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;AACzB,QAAA,CAAC,CAAC;IACJ;AAEA;;;AAGG;IACH,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;AAC3B,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC;AACjC,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;IACzB;AAEA;;;AAGG;IACH,cAAc,GAAA;QACZ,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,aAAa;AACxC,QAAA,IAAI,CAAC,EAAE;YAAE;AAET,QAAA,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE;YAC/B,EAAE,CAAC,iBAAiB;iBACjB,IAAI,CAAC,MAAK;AACT,gBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;gBAC9B,IAAI,CAAC,YAAY,EAAE,EAAE,SAAS,GAAG,WAAW,CAAC;AAC7C,gBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;AACzB,YAAA,CAAC;AACA,iBAAA,KAAK,CAAC,MAAM,SAAS,CAAC;QAC3B;aAAO;YACL,QAAQ,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,MAAM,SAAS,CAAC;QAClD;IACF;AAEA;;;AAGG;IACH,aAAa,GAAA;QACX,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,QAAQ,CAAC,iBAAiB,EAAE;YACxD,QAAQ,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,MAAM,SAAS,CAAC;QAClD;IACF;AAEA;;AAEG;AACH,IAAA,gBAAgB,CAAC,MAAyB,EAAA;AACxC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa;QACvC,IAAI,YAAY,EAAE;AAChB,YAAA,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;AAC9C,gBAAA,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC;AACnC,YAAA,CAAC,CAAC;QACJ;IACF;AAEA;;AAEG;AACH,IAAA,QAAQ,CAAC,KAAa,EAAA;AACpB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AACrB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;IACzB;8GAvfW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,EAAA,cAAA,EAAA,kCAAA,EAAA,cAAA,EAAA,eAAA,EAAA,EAAA,SAAA,EAjBhB;AACT,YAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,gBAAgB,EAAE;AAC/D,YAAA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE;SACxD,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,SAAA,EA8BuC,qBAAqB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAVzB,gBAAgB,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAMtB,eAAe,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzF/C,qzIAqGA,EAAA,MAAA,EAAA,CAAA,u5VAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDpCI,2BAA2B,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC3B,iBAAiB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAEjB,gBAAgB,oJAEhB,oBAAoB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,4BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACpB,mBAAmB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,eAAe,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,wBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACrB,oBAAoB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,cAAA,EAAA,QAAA,EAAA,eAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,aAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAPpB,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAET,gBAAgB,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAQP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBA3B5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EAAA,aAAA,EAIL,iBAAiB,CAAC,IAAI,EAAA,IAAA,EAC/B;AACJ,wBAAA,KAAK,EAAE,eAAe;AACtB,wBAAA,KAAK,EAAE,kCAAkC;qBAC1C,EAAA,SAAA,EACU;AACT,wBAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,kBAAkB,EAAE;AAC/D,wBAAA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,kBAAkB,EAAE;qBACxD,EAAA,OAAA,EACQ;wBACP,2BAA2B;wBAC3B,iBAAiB;wBACjB,SAAS;wBACT,gBAAgB;wBAChB,gBAAgB;wBAChB,oBAAoB;wBACpB,mBAAmB;wBACnB,eAAe;wBACf,qBAAqB;wBACrB,oBAAoB;AACrB,qBAAA,EAAA,QAAA,EAAA,qzIAAA,EAAA,MAAA,EAAA,CAAA,u5VAAA,CAAA,EAAA;;sBAQA,SAAS;uBAAC,eAAe,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE;;sBAGnE,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,kBAAkB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;sBAG9C,SAAS;uBAAC,SAAS,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE;AAGR,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAAA,SAAS,iGACtB,qBAAqB,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA;sBA8Q5D,YAAY;uBAAC,gBAAgB;;;AEpVhC,MAAM,oBAAoB,GAAG,yBAAyB;AAEtD;;;;AAIG;MAIU,cAAc,CAAA;AAH3B,IAAA,WAAA,GAAA;AAIU,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,GAAG,EAAsB;AACzC,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACzC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC3B,IAAA,CAAA,UAAU,GAAG,MAAM,CAAyB,EAAE;uFAAC;QAC/C,IAAA,CAAA,eAAe,GAAG,MAAM,CAA2B,EAAE;4FAAC;AAmZ/D,IAAA;AAxYC;;AAEG;IACH,IAAI,CAAC,IAAwB,EAAE,IAA6B,EAAA;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAErC,MAAM,OAAO,GAAG,IAAI,wBAAwB,CAAC,CAAC,OAAO,KAAI;AACvD,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAI;gBACtC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;oBAC7B,IAAI,OAAO,EAAE;AACX,wBAAA,OAAO,CAAC;4BACN,MAAM,EAAE,GAAG,CAAC,iBAAiB;AAC7B,4BAAA,IAAI,EAAE,IAAI;AACX,yBAAA,CAAC;oBACJ;AACF,gBAAA,CAAC,CAAC;AACJ,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;AAEF,QAAA,OAAO,OAAO;IAChB;AAEA;;AAEG;AACH,IAAA,MAAM,OAAO,CAAgB,OAA2B,EAAE,MAAsB,EAAA;AAC9E,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7D;AAEA,IAAA,OAAO,CAAC,IAAY,EAAA;AAClB,QAAA,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAC3C;AAEA,IAAA,YAAY,CAAC,IAAY,EAAA;QACvB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,MAAM;AAClC,YAAA,GAAG,MAAM;AACT,YAAA,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAChC,SAAA,CAAC,CAAC;IACL;AAEA,IAAA,cAAc,CAAC,IAAY,EAAA;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,MAAM;AAClC,YAAA,GAAG,MAAM;YACT,CAAC,IAAI,GAAG,SAAS;AAClB,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,SAAS,GAAG,CAAC,EAAE;YACjB;QACF;QAEA,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE;QAC9C,KAAK,MAAM,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;AAC1C,YAAA,QAAQ,EAAE,cAAc,CAAC,KAAK,CAAC;AAC/B,YAAA,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,IAAI,CAAC;QAClC;QACA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,KAAI;AAClC,YAAA,IAAI,EAAE,IAAI,IAAI,GAAG,CAAC,EAAE;AAClB,gBAAA,OAAO,GAAG;YACZ;AACA,YAAA,MAAM,IAAI,GAAG,EAAE,GAAG,GAAG,EAAE;AACvB,YAAA,OAAO,IAAI,CAAC,IAAI,CAAC;AACjB,YAAA,OAAO,IAAI;AACb,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,eAAe,CAAC,IAAY,EAAA;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE;AAC9C,QAAA,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,KAA8B,CAAC,CAAC,IAAI,CAAC;IAC/F;AAEA,IAAA,gBAAgB,CAAC,IAAY,EAAE,SAAiB,EAAE,OAAe,EAAA;QAC/D,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,KAAI;AAClC,YAAA,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AACnC,YAAA,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC;YACzC,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,IAAI,EAAE;AACjC,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,WAAW,CAAC,IAA6B,EAAA;AAC/C,QAAA,MAAM,MAAM,GAAkB;AAC5B,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,oBAAoB,EAAE,KAAK;AAC3B,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,iBAAiB,EAAE,IAAI;AACvB,YAAA,OAAO,EAAE;AACP,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,QAAQ,EAAE;AACR,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,IAAI,EAAE,SAAS;AAChB,iBAAA;AACF,aAAA;SACF;AACD,QAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC5B,YAAA,MAAM,CAAC,KAAK,GAAG,IAAI;QACrB;aAAO,IAAI,IAAI,EAAE;YACf,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI;AACjC,YAAA,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;YAC3B,IAAI,OAAO,EAAE;gBACX,MAAM,CAAC,OAAO,GAAG;oBACf,GAAG,MAAM,CAAC,OAAO;AACjB,oBAAA,GAAG,OAAO;AACV,oBAAA,QAAQ,EAAE;AACR,wBAAA,MAAM,EAAE,KAAK;AACb,wBAAA,QAAQ,EAAE,cAAc;AACxB,wBAAA,IAAI,EAAE,SAAS;AACf,wBAAA,GAAG,MAAM,CAAC,OAAO,EAAE,QAAQ;wBAC3B,GAAG,OAAO,CAAC,QAAQ;AACpB,qBAAA;iBACF;YACH;QACF;AACA,QAAA,OAAO,MAAM;IACf;AAEA;;AAEG;AACK,IAAA,MAAM,YAAY,CACxB,OAA2B,EAC3B,MAAqB,EAAA;AAErB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC;AACzD,QAAA,MAAM,OAAO,GAAG,IAAI,OAAO,EAAW;AACtC,QAAA,MAAM,aAAa,GAAG,IAAI,OAAO,EAAsB;AACvD,QAAA,MAAM,KAAK,GAAG,MAAM,CAAqB,QAAQ;kFAAC;QAClD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;kFAAC;QACxC,MAAM,WAAW,GAAG,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,QAAQ,CAAC,MAAM,KAAK,EAAE,KAAK,WAAW,CAAC,CAAC;QACvG,MAAM,WAAW,GAAG,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,QAAQ,CAAC,MAAM,KAAK,EAAE,KAAK,WAAW,CAAC,CAAC;QACvG,MAAM,IAAI,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC,IAAI;AAE9C,QAAA,MAAM,SAAS,GAAwB;AACrC,YAAA,KAAK,EAAE,CAAC,IAAI,KAAI;AACd,gBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;YAC5B,CAAC;AACD,YAAA,SAAS,EAAE,CAAC,MAAyB,KAAI;AACvC,gBAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;YAClC,CAAC;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,KAAI;AAClB,gBAAA,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAChB,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;YAChC,CAAC;YACD,QAAQ,EAAE,MAAK;AACb,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACzB,CAAC;YACD,QAAQ,EAAE,MAAK;AACb,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACzB,CAAC;YACD,OAAO,EAAE,MAAK;AACZ,gBAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YACxB,CAAC;YACD,YAAY,EAAE,MAAK;AACjB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;YAC7B,CAAC;YACD,OAAO;YACP,aAAa;AACb,YAAA,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE;AACzB,YAAA,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE;YACzB,WAAW;YACX,WAAW;YACX,cAAc,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;AAClD,YAAA,SAAS,EAAE,CAAC,IAAI,KAAI;AAClB,gBAAA,IAAI,KAAK,EAAE,KAAK,IAAI,EAAE;oBACpB;gBACF;AACA,gBAAA,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AACf,gBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1B,CAAC;SACF;AAED,QAAA,IAAI,MAAM,CAAC,kBAAkB,EAAE;YAC7B,MAAM,CAAC,MAAM,GAAG;AACd,gBAAA,IAAK,MAAM,CAAC,MAAkC,IAAI,EAAE,CAAC;AACrD,gBAAA,GAAG,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC;aACxC;QACH;AAEA,QAAA,MAAM,YAAY,GAAG,CAAC,kBAAkB,CAAC;AACzC,QAAA,IAAI,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE;YAC7B,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC;QACzC;QAEA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,gBAAgB,EAAE;YAC7D,cAAc,EAAE,MAAM,CAAC,cAAc;AACrC,YAAA,kBAAkB,EAAE,OAAO;YAC3B,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;AAC3C,YAAA,QAAQ,EAAE;AACR,gBAAA,OAAO,EAAE,MAAM,CAAC,WAAW,IAAI,IAAI;AACnC,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,YAAY,EAAE,MAAM,CAAC,oBAAoB,IAAI,KAAK;gBAClD,aAAa,EAAE,MAAM,CAAC,aAAa;AACpC,aAAA;AACD,YAAA,UAAU,EAAE,YAAY;AACxB,YAAA,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI;AACnC,YAAA,MAAM,EAAE;AACN,gBAAA,WAAW,EAAE,OAAO;AACpB,gBAAA,UAAU,EAAE,MAAM;AAClB,gBAAA,YAAY,EAAE,SAAS;AACvB,gBAAA,MAAM,EAAE,QAAQ;AACjB,aAAA;YACD,SAAS,EAAE,MAAK;gBACd,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC1C,gBAAA,IAAI,CAAC,KAAK;oBAAE;AACZ,gBAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;AAC7B,gBAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAC/B,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAoB,CAAC;AAC9C,gBAAA,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE;AAC9B,gBAAA,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE;YACtC,CAAC;AACF,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE;AAC3B,YAAA,OAAO,EAAE,GAAG;AACZ,YAAA,KAAK,EAAE,SAAS;YAChB,IAAI;YACJ,IAAI,EAAE,MAAM,CAAC,IAAI;AAClB,SAAA,CAAC;AAEF,QAAA,OAAO,SAAS;IAClB;IAEA,KAAK,CAAgB,EAAU,EAAE,IAAc,EAAA;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;AAClC,QAAA,IAAI,CAAC,GAAG;YAAE;AACV,QAAA,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5B,QAAA,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE;AAC5B,QAAA,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE;AAClC,QAAA,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE;IACvB;IAEA,SAAS,CAAC,EAAU,EAAE,MAAyB,EAAA;AAC7C,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,QAAQ;AACpD,QAAA,IAAI,CAAC,GAAG;YAAE;AACV,QAAA,IAAI,GAAG,YAAY,YAAY,EAAE;AAC/B,YAAA,MAAM,iBAAiB,GAAG,GAAG,CAAC,QAA4B;AAC1D,YAAA,iBAAiB,CAAC,gBAAgB,CAAC,MAAM,CAAC;QAC5C;IACF;IAEA,QAAQ,CAAC,EAAU,EAAE,KAAa,EAAA;AAChC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,QAAQ;AACpD,QAAA,IAAI,CAAC,GAAG;YAAE;AACV,QAAA,IAAI,GAAG,YAAY,YAAY,EAAE;AAC/B,YAAA,MAAM,iBAAiB,GAAG,GAAG,CAAC,QAA4B;AAC1D,YAAA,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC;QACnC;IACF;AAEA,IAAA,QAAQ,CAAC,EAAU,EAAA;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;AAC1C,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,WAAW;YAAE;QAEhE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;AACvC,QAAA,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC;QAC/B,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC;QAEpC,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC;AAC9B,YAAA,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,KAAK,CAAC;QACnC;IACF;AAEA,IAAA,QAAQ,CAAC,EAAU,EAAA;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;AAC1C,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ;YAAE;QAEzB,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,WAAW,EAAE;AACvC,YAAA,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAClB;QAEA,QAAQ,CAAC,cAAc,EAAE;IAC3B;AAEA,IAAA,OAAO,CAAC,EAAU,EAAA;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;AAC1C,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ;YAAE;QAEzB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE;AACnC,QAAA,IAAI,OAAO,KAAK,QAAQ,EAAE;YACxB;QACF;AAEA,QAAA,IAAI,OAAO,KAAK,WAAW,EAAE;YAC3B,QAAQ,CAAC,aAAa,EAAE;YACxB;QACF;QAEA,QAAQ,CAAC,aAAa,EAAE;AACxB,QAAA,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,IAAI,CAAC;QAChC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;AACjC,QAAA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;IACvB;AAEA,IAAA,aAAa,CAAC,SAAiB,EAAA;QAC7B,IAAI,KAAK,GAAG,CAAC;QACb,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE;AACvC,YAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AACrB,gBAAA,OAAO,KAAK;YACd;AACA,YAAA,KAAK,EAAE;QACT;QACA,OAAO,CAAC,CAAC;IACX;AAEA,IAAA,YAAY,CAAC,EAAU,EAAA;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;AAClC,QAAA,IAAI,CAAC,GAAG;YAAE;AACV,QAAA,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE;IAC5B;IAEA,aAAa,CAAC,EAAU,EAAE,SAAkB,EAAA;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;AACpC,QAAA,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,WAAW,EAAE;YACjD;QACF;AACA,QAAA,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC7D;IAEQ,SAAS,CAAC,EAAU,EAAE,IAAY,EAAA;QACxC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,KAAI;YAClC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;AAC5B,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;AACrB,gBAAA,OAAO,GAAG;YACZ;AACA,YAAA,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;AAC1C,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,cAAc,CAAC,EAAU,EAAA;QAC/B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,KAAI;YAClC,IAAI,OAAO,GAAG,KAAK;YACnB,MAAM,IAAI,GAA6B,EAAE;AACzC,YAAA,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AAC7C,gBAAA,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;AAClD,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ;gBACrB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE;oBAClC,OAAO,GAAG,IAAI;gBAChB;YACF;YACA,OAAO,OAAO,GAAG,IAAI,GAAG,GAAG;AAC7B,QAAA,CAAC,CAAC;IACJ;IAEQ,iBAAiB,CAAC,EAAU,EAAE,OAAgB,EAAA;AACpD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO;AAC/C,QAAA,IAAI,CAAC,OAAO;YAAE;AAEd,QAAA,OAAO,CAAC,cAAc,EAAE,SAAS,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC,OAAO,CAAC;AACxE,QAAA,OAAO,CAAC,eAAe,EAAE,SAAS,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC,OAAO,CAAC;QACzE,OAAO,CAAC,cAAc,EAAE,eAAe,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC;QAChE,OAAO,CAAC,eAAe,EAAE,eAAe,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC;IACnE;AAEQ,IAAA,UAAU,CAAC,EAAU,EAAA;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,IAAI;QACb;QACA,OAAO;YACL,EAAE;AACF,YAAA,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK;YACxB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,GAAG,EAAE,KAAK,CAAC,KAAK;YAChB,OAAO,EAAE,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE;YACpC,QAAQ,EAAE,MAAM,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE;YACtC,KAAK,EAAE,MAAM,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE;SACjC;IACH;AAEQ,IAAA,gBAAgB,CAAC,EAAU,EAAA;AACjC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,QAAQ;AACpD,QAAA,IAAI,CAAC,GAAG;AAAE,YAAA,OAAO,IAAI;AACrB,QAAA,IAAI,GAAG,YAAY,YAAY,EAAE;YAC/B,OAAO,GAAG,CAAC,QAA4B;QACzC;AACA,QAAA,OAAO,IAAI;IACb;8GAvZW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA;;2FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;AC7BD;;;AAGG;MAKU,wBAAwB,CAAA;AASnC,IAAA,WAAA,GAAA;AARQ,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAA0B,UAAU,CAAC;AAClD,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,eAAe,CAAC;AAE7B,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;AAClC,YAAA,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;AACxB,YAAA,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AAC9D,SAAA,CAAC;QAGA,iBAAiB,CAAC,MAAK;AACrB,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAc,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;AAC1F,gBAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;AACnC,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;8GAfW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,iBAAiB;AAC5B,iBAAA;;;ACeD;;;;;;;;;;;;;AAaG;AAwBG,MAAO,oBAAqB,SAAQ,WAAW,CAAA;AAmBnD,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;AAnBD,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC;AAE7C;;;AAGG;QACH,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,SAAS;iFAAC;AAEvB;;;AAGG;QACH,IAAA,CAAA,WAAW,GAAG,KAAK,CAA4B,YAAY;wFAAC;QAElD,IAAA,CAAA,YAAY,GAAG,YAAY,CAAC,WAAW;yFAAC;AAExC,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAoB,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;kFAAC;AAIjG,QAAA,MAAM,CAAC,CAAC,SAAS,KAAI;AACnB,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACxB,YAAA,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC;AACpC,YAAA,SAAS,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AACzD,QAAA,CAAC,CAAC;IACJ;AAEU,IAAA,SAAS,CAAC,KAA6B,EAAA;QAC/C,IAAI,KAAK,CAAC,aAAa,GAAG,CAAC,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC,IAAI,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC,YAAY,EAAE;YACnG;QACF;AACA,QAAA,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC;IAC1F;8GAjCW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,2BAAA,EAAA,sBAAA,EAAA,8BAAA,EAAA,gCAAA,EAAA,gCAAA,EAAA,kCAAA,EAAA,EAAA,cAAA,EAAA,eAAA,EAAA,EAAA,SAAA,EAFpB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAiBlC,WAAW,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7EnD,6iDA0CA,EAAA,MAAA,EAAA,CAAA,ygHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDUI,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,eAAe,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,wBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACrB,mBAAmB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,oBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,wBAAwB,EAAA,QAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACxB,iBAAiB,mUACjB,2BAA2B,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAIlB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAvBhC,SAAS;+BACE,eAAe,EAAA,eAAA,EAGR,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,IAAA,EAC/B;AACJ,wBAAA,KAAK,EAAE,eAAe;AACtB,wBAAA,6BAA6B,EAAE,sBAAsB;AACrD,wBAAA,gCAAgC,EAAE,8BAA8B;AAChE,wBAAA,kCAAkC,EAAE,gCAAgC;qBACrE,EAAA,OAAA,EACQ;wBACP,gBAAgB;wBAChB,eAAe;wBACf,qBAAqB;wBACrB,mBAAmB;wBACnB,wBAAwB;wBACxB,iBAAiB;wBACjB,2BAA2B;qBAC5B,EAAA,SAAA,EACU,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAA,oBAAsB,EAAE,CAAC,EAAA,QAAA,EAAA,6iDAAA,EAAA,MAAA,EAAA,CAAA,ygHAAA,CAAA,EAAA;yTAiBlC,WAAW,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;MEnEtC,sBAAsB,CAAA;8GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,SAAA,EAFtB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC,0BCR5E,6HAGA,EAAA,MAAA,EAAA,CAAA,yNAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDOa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAAA,aAAA,EAGZ,iBAAiB,CAAC,IAAI,aAC1B,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAA,sBAAwB,EAAE,CAAC,EAAA,QAAA,EAAA,6HAAA,EAAA,MAAA,EAAA,CAAA,yNAAA,CAAA,EAAA;;;AEF5E;;;;;;;;;;AAUG;AAWG,MAAO,oBAAqB,SAAQ,WAAW,CAAA;AAVrD,IAAA,WAAA,GAAA;;AAWU,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC;QACnC,IAAA,CAAA,QAAQ,GAAG,SAAS,CAAC,WAAW;qFAAC;QACnC,IAAA,CAAA,GAAG,GAAG,MAAM,CAAoB,IAAI;gFAAC;AAwD9C,IAAA;AAtDC;;AAEG;IACH,MAAM,IAAI,CAAC,OAAuB,EAAA;AAChC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;QAChC,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC;QACzE;AACA,QAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC;AAC9D,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AACjB,QAAA,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,MAAK;AACzB,YAAA,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,GAAG,EAAE;AACtB,gBAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;YACpB;AACF,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,GAAG;IACZ;AAEA;;AAEG;IACH,MAAM,KAAK,CAAC,IAAc,EAAA;AACxB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE;AAC1B,QAAA,IAAI,CAAC,OAAO;YAAE;AACd,QAAA,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;IACrB;AAEA;;AAEG;IACH,MAAM,SAAS,CAAC,MAAyB,EAAA;QACvC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC;IAC/B;AAEA;;AAEG;AACH,IAAA,MAAM,QAAQ,GAAA;AACZ,QAAA,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE;IACxB;AAEA;;AAEG;AACH,IAAA,MAAM,QAAQ,GAAA;AACZ,QAAA,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE;IACxB;AAEA;;AAEG;AACH,IAAA,MAAM,OAAO,GAAA;AACX,QAAA,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE;IACvB;8GA1DW,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,SAAA,EAFpB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAIzC,WAAW,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAVhC;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAIU,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAVhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,QAAQ,EAAE;;;;AAIT,EAAA,CAAA;oBACD,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAA,oBAAsB,EAAE,CAAC;AACzE,iBAAA;0FAGgC,WAAW,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AChB5C,MAAM,SAAS,GAAG;IAChB,gBAAgB;IAChB,oBAAoB;IACpB,sBAAsB;IACtB,oBAAoB;IACpB,2BAA2B;CAC5B;AACD,MAAM,OAAO,GAAG,CAAC,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,mBAAmB,CAAC;MAOzF,aAAa,CAAA;8GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAb,aAAa,EAAA,OAAA,EAAA,CAPT,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,mBAAmB,EANnG,gBAAgB;YAChB,oBAAoB;YACpB,sBAAsB;YACtB,oBAAoB;AACpB,YAAA,2BAA2B,aAJ3B,gBAAgB;YAChB,oBAAoB;YACpB,sBAAsB;YACtB,oBAAoB;YACpB,2BAA2B,CAAA,EAAA,CAAA,CAAA;AAShB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,aAFb,CAAC,cAAc,CAAC,EAAA,OAAA,EAAA,CAFd,OAAO,EATpB,gBAAgB;YAGhB,oBAAoB,CAAA,EAAA,CAAA,CAAA;;2FAUT,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC;AACnC,oBAAA,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC;oBACvB,SAAS,EAAE,CAAC,cAAc,CAAC;AAC5B,iBAAA;;;AC1BD;;AAEG;;"}
|
|
1
|
+
{"version":3,"file":"acorex-components-popup.mjs","sources":["../../../../packages/components/popup/src/lib/popup-caption-icon.ts","../../../../packages/components/popup/src/lib/popup.interface.ts","../../../../packages/components/popup/src/lib/popup.component.ts","../../../../packages/components/popup/src/lib/popup.component.html","../../../../packages/components/popup/src/lib/popup.service.ts","../../../../packages/components/popup/src/lib/popup-dock/popup-dock-item.directive.ts","../../../../packages/components/popup/src/lib/popup-dock/popup-dock.component.ts","../../../../packages/components/popup/src/lib/popup-dock/popup-dock.component.html","../../../../packages/components/popup/src/lib/popup-footer/popup-footer.component.ts","../../../../packages/components/popup/src/lib/popup-footer/popup-footer.component.html","../../../../packages/components/popup/src/lib/popup-host/popup-host.component.ts","../../../../packages/components/popup/src/lib/popup.module.ts","../../../../packages/components/popup/src/acorex-components-popup.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nexport type AXPopupCaptionIconName = 'minimize' | 'maximize' | 'restore' | 'close';\n\n/**\n * Windows-style window caption glyphs: minimize, maximize, restore, close.\n */\n@Component({\n selector: 'ax-popup-caption-icon',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ax-popup-caption-icon',\n '[attr.data-name]': 'name()',\n 'aria-hidden': 'true',\n },\n styles: `\n :host {\n display: inline-flex;\n width: 12px;\n height: 12px;\n }\n\n svg {\n display: block;\n width: 100%;\n height: 100%;\n fill: none;\n stroke: currentColor;\n stroke-width: 1.15;\n stroke-linecap: square;\n stroke-linejoin: miter;\n }\n `,\n template: `\n <svg viewBox=\"0 0 10 10\" focusable=\"false\">\n @switch (name()) {\n @case ('minimize') {\n <path d=\"M1.6 5h6.8\" />\n }\n @case ('maximize') {\n <rect x=\"1.4\" y=\"1.4\" width=\"7.2\" height=\"7.2\" rx=\"1\" />\n }\n @case ('restore') {\n <path d=\"M3.15 2.85V1.4h5.45v5.45H7.15\" />\n <rect x=\"1.4\" y=\"3.15\" width=\"5.45\" height=\"5.45\" rx=\"0.7\" />\n }\n @case ('close') {\n <path d=\"M2.05 2.05l5.9 5.9M7.95 2.05l-5.9 5.9\" />\n }\n }\n </svg>\n `,\n})\nexport class AXPopupCaptionIconComponent {\n name = input.required<AXPopupCaptionIconName>();\n}\n","import type { AXResizeHandle } from '@acorex/cdk/resizable';\nimport type { AXOverlayAnimation } from '@acorex/cdk/overlay';\nimport { AXComponentInputs, AXComponentType } from '@acorex/core/components';\nimport { computed, Directive, ElementRef, input, Signal, StaticProvider, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport type AXPopupContentType = TemplateRef<unknown> | AXComponentType<unknown> | HTMLElement;\n\nexport type AXPopupSizeType = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full' | 'fit';\n\nexport type AXPopupMinimizePosition = 'bottom-right' | 'bottom-left';\n\nexport type AXPopupWindowState = 'normal' | 'minimized' | 'maximized';\n\nexport interface AXPopupButtonsConfig {\n minimize?: {\n enable: boolean;\n position: AXPopupMinimizePosition;\n /**\n * Name of an `<ax-popup-dock>` that should host this popup when minimized.\n * Falls back to the built-in bottom bar when no matching dock is registered.\n * @defaultValue 'default'\n */\n dock?: string;\n };\n maximize?: boolean;\n close?: boolean;\n}\n\nexport interface AXPopupResizableConfig {\n handles?: AXResizeHandle[];\n minWidth?: number;\n minHeight?: number;\n /** Defaults to the viewport width when unset. */\n maxWidth?: number;\n /** Defaults to the viewport height when unset. */\n maxHeight?: number;\n lockAspectRatio?: boolean;\n dblClickAction?: 'reset' | 'maximize' | 'fit';\n}\n\nexport const AX_POPUP_DEFAULT_RESIZE_HANDLES: AXResizeHandle[] = [\n 'top',\n 'bottom',\n 'start',\n 'end',\n 'top-start',\n 'top-end',\n 'bottom-start',\n 'bottom-end',\n];\n\nexport interface AXPopupResolvedResizableConfig {\n enable: boolean;\n handles: AXResizeHandle[];\n minWidth: number;\n minHeight: number;\n maxWidth: number | null;\n maxHeight: number | null;\n lockAspectRatio: boolean;\n dblClickAction: 'reset' | 'maximize' | 'fit';\n}\n\nexport interface AXPopupConfig {\n title?: string;\n /** Flat alias; overridden by `buttons.close` when set. */\n closeButton?: boolean;\n header?: boolean;\n footer?: boolean;\n /** Flat alias; overridden by `buttons.maximize` when set. */\n maximizable?: boolean;\n size?: AXPopupSizeType;\n /** @deprecated Use `inputs` instead to pass data to the popup component. */\n data?: unknown;\n inputs?: unknown;\n draggable?: boolean;\n /** Enable drag handles on the popup window. `true` uses defaults; pass an object to customize. */\n resizable?: boolean | AXPopupResizableConfig;\n hasBackdrop?: boolean;\n backdropClass?: string;\n closeOnBackdropClick?: boolean;\n closeOnNavigation?: boolean;\n /** When unset, Escape closes only if the close button is enabled (legacy behavior). */\n closeOnEscape?: boolean;\n viewContainerRef?: ViewContainerRef;\n providers?: StaticProvider[];\n panelClass?: string[];\n /**\n * Overlay enter/leave animation applied to the popup window, not the full-screen container.\n * - omitted / `true`: default fade in and fade out\n * - `false` or `[]`: no animation\n * - `string[]`: custom enter classes\n * - `{ enter, leave }`: custom enter and leave classes\n */\n animation?: AXOverlayAnimation;\n direction?: 'rtl' | 'ltr';\n /** Window chrome buttons. Individual fields override flat `closeButton` / `maximizable` when set. */\n buttons?: AXPopupButtonsConfig;\n /**\n * @internal\n * Called with the popup ref before content is created so callers can inject\n * extra content inputs that depend on the ref.\n */\n _bindContentInputs?: (ref: AXPopupRef) => Record<string, unknown>;\n /**\n * Element used to resolve inherited visual context for overlays rendered\n * outside the originating DOM subtree.\n *\n * This affects Appearance, Light/Dark theme, Contrast, Size, and supported\n * Density context. It does not affect overlay positioning.\n */\n contextElement?: HTMLElement | ElementRef<HTMLElement>;\n /** Delay in ms before the real content is created. While waiting, a skeleton placeholder is shown. */\n delay?: number;\n /** Skeleton template rendered during `delay`. Falls back to a built-in ax-skeleton placeholder. */\n skeletonTemplate?: TemplateRef<unknown>;\n /** Animates the built-in skeleton placeholder. Ignored when `skeletonTemplate` is provided. */\n skeletonAnimated?: boolean;\n}\n\nexport interface AXPopupData {\n title: string;\n closeButton: boolean;\n header: boolean;\n maximizable: boolean;\n size: AXPopupSizeType;\n data?: unknown;\n draggable: boolean;\n content: AXPopupContentType;\n}\n\nexport interface AXPopupDockItem {\n id: number;\n title: Signal<string>;\n data: unknown;\n ref: AXPopupRef;\n restore: () => void;\n maximize: () => void;\n close: () => void;\n}\n\nexport interface AXPopupRef<TResult = any> {\n close: (data?: TResult) => void;\n setInputs: (values: AXComponentInputs) => void;\n setTitle: (title: string) => void;\n minimize: () => void;\n maximize: () => void;\n restore: () => void;\n /** Brings this popup to the front of all other overlays */\n bringToFront: () => void;\n onClose: Subject<TResult>;\n onStateChange: Subject<AXPopupWindowState>;\n readonly state: Signal<AXPopupWindowState>;\n readonly title: Signal<string>;\n readonly isMinimized: Signal<boolean>;\n readonly isMaximized: Signal<boolean>;\n /** The component instance rendered inside the popup (available after content is rendered) */\n componentInstance?: unknown;\n /** @internal Stack index among open popups (minimized bar positioning). */\n _getStackIndex?: () => number;\n /** @internal */\n _setState?: (state: AXPopupWindowState) => void;\n}\n\n@Directive()\nexport abstract class AXPopupComponentBase {\n __popup__ = input<AXPopupRef>();\n\n readonly popupState = computed(() => this.__popup__()?.state() ?? 'normal');\n readonly isMinimized = computed(() => this.__popup__()?.isMinimized() ?? false);\n readonly isMaximized = computed(() => this.__popup__()?.isMaximized() ?? false);\n readonly popupTitle = computed(() => this.__popup__()?.title() ?? '');\n\n public close(data: any = null) {\n this.__popup__()?.close(data);\n }\n\n public setTitle(title: string) {\n this.__popup__()?.setTitle(title);\n }\n\n public minimize() {\n this.__popup__()?.minimize();\n }\n\n public maximize() {\n this.__popup__()?.maximize();\n }\n\n public restore() {\n this.__popup__()?.restore();\n }\n\n public bringToFront() {\n this.__popup__()?.bringToFront();\n }\n}\n\n/** Resolves whether the close header button is shown. `buttons.close` wins over `closeButton`. */\nexport function resolvePopupCloseButton(config?: AXPopupConfig | null): boolean {\n if (config?.buttons?.close !== undefined) {\n return config.buttons.close;\n }\n return config?.closeButton ?? true;\n}\n\n/** Resolves whether maximize is enabled. `buttons.maximize` wins over `maximizable`. Default: false. */\nexport function resolvePopupMaximizable(config?: AXPopupConfig | null): boolean {\n if (config?.buttons?.maximize !== undefined) {\n return config.buttons.maximize;\n }\n return config?.maximizable ?? false;\n}\n\n/** Resolves minimize button config. Default: disabled at bottom-right. */\nexport function resolvePopupMinimize(config?: AXPopupConfig | null): {\n enable: boolean;\n position: AXPopupMinimizePosition;\n dock: string;\n} {\n return {\n enable: config?.buttons?.minimize?.enable ?? false,\n position: config?.buttons?.minimize?.position ?? 'bottom-right',\n dock: config?.buttons?.minimize?.dock ?? 'default',\n };\n}\n\n/** Resolves resize config. Disabled for `size: 'full'` and when `resizable` is false/omitted. */\nexport function resolvePopupResizable(config?: AXPopupConfig | null): AXPopupResolvedResizableConfig {\n const defaults: AXPopupResolvedResizableConfig = {\n enable: false,\n handles: AX_POPUP_DEFAULT_RESIZE_HANDLES,\n minWidth: 240,\n minHeight: 160,\n maxWidth: null,\n maxHeight: null,\n lockAspectRatio: false,\n dblClickAction: 'reset',\n };\n\n if (!config || config.size === 'full') {\n return defaults;\n }\n\n const raw = config.resizable;\n if (!raw) {\n return defaults;\n }\n\n const options = raw === true ? {} : raw;\n\n return {\n enable: true,\n handles: options.handles ?? AX_POPUP_DEFAULT_RESIZE_HANDLES,\n minWidth: options.minWidth ?? defaults.minWidth,\n minHeight: options.minHeight ?? defaults.minHeight,\n maxWidth: options.maxWidth ?? null,\n maxHeight: options.maxHeight ?? null,\n lockAspectRatio: options.lockAspectRatio ?? false,\n dblClickAction: options.dblClickAction ?? 'reset',\n };\n}\n","import { AXPlatform } from '@acorex/core/platform';\nimport {\n afterNextRender,\n Component,\n ComponentRef,\n computed,\n effect,\n ElementRef,\n HostListener,\n inject,\n input,\n NgZone,\n OnDestroy,\n OnInit,\n signal,\n TemplateRef,\n Type,\n viewChild,\n ViewChild,\n viewChildren,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { AXClosableComponent, AXComponent, AXComponentClosing, MXBaseComponent } from '@acorex/cdk/common';\nimport { AXDragDirective, AXDragHandleDirective } from '@acorex/cdk/drag-drop';\nimport { AXResizableDirective } from '@acorex/cdk/resizable';\nimport { AXFocusTrapDirective } from '@acorex/cdk/focus-trap';\nimport { AXChromeButtonComponent, AXDecoratorCloseButtonComponent } from '@acorex/components/button';\nimport { AXPopupCaptionIconComponent } from './popup-caption-icon';\nimport { AXLoadingService } from '@acorex/components/loading';\nimport { AXSkeletonComponent } from '@acorex/components/skeleton';\nimport { AXComponentInputs } from '@acorex/core/components';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe, DOCUMENT, NgTemplateOutlet } from '@angular/common';\nimport {\n AXPopupConfig,\n AXPopupContentType,\n AXPopupRef,\n resolvePopupCloseButton,\n resolvePopupMaximizable,\n resolvePopupMinimize,\n resolvePopupResizable,\n} from './popup.interface';\n\n/**\n * The Popup is a component which displays content in a dialog overlay\n *\n * @category Components\n */\n@Component({\n selector: 'ax-popup',\n templateUrl: './popup.component.html',\n styleUrls: ['./popup.component.css'],\n\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'ax-popup-host',\n style: 'display: block; max-width: 100%;',\n },\n providers: [\n { provide: AXClosableComponent, useExisting: AXPopupComponent },\n { provide: AXComponent, useExisting: AXPopupComponent },\n ],\n imports: [\n AXPopupCaptionIconComponent,\n AXChromeButtonComponent,\n AsyncPipe,\n NgTemplateOutlet,\n AXTranslatorPipe,\n AXFocusTrapDirective,\n AXSkeletonComponent,\n AXDragDirective,\n AXDragHandleDirective,\n AXResizableDirective,\n AXDecoratorCloseButtonComponent\n ],\n})\nexport class AXPopupComponent extends MXBaseComponent implements OnInit, OnDestroy {\n private _zone = inject(NgZone);\n private loadingService = inject(AXLoadingService);\n private _platform = inject(AXPlatform);\n private document = inject(DOCUMENT);\n\n @ViewChild('contentOutlet', { read: ViewContainerRef, static: true })\n private contentContainerRef: ViewContainerRef;\n\n @ViewChild('contentContainer', { static: true })\n private contentContainerEl: { nativeElement: HTMLElement };\n\n @ViewChild('popupEl', { read: AXDragDirective, static: true })\n private dragDir: AXDragDirective;\n\n private popupEl = viewChild<ElementRef<HTMLElement>>('popupEl');\n private projectedHandles = viewChildren(AXDragHandleDirective);\n\n #syncDragHandles = effect(() => {\n const handles = this.projectedHandles();\n const drag = this.dragDir;\n if (!drag) {\n return;\n }\n for (const handle of handles) {\n drag.registerHandle(handle);\n }\n });\n\n // Inputs from overlay service\n readonly __content__ = input<AXPopupContentType>();\n readonly __config__ = input<AXPopupConfig>();\n readonly __popupRef__ = input<AXPopupRef>();\n readonly __id__ = input<number>();\n\n /**\n * Indicates whether the component is loading.\n * @defaultValue true\n */\n isLoading = true;\n\n /** @ignore */\n private _loadingId: number | undefined;\n\n /** @ignore */\n private _delayTimer: ReturnType<typeof setTimeout> | null = null;\n\n /** @ignore */\n private _componentRef: ComponentRef<unknown> | null = null;\n\n protected showSkeleton = signal(false);\n\n protected skeletonTemplate = () => this.__config__()?.skeletonTemplate ?? null;\n\n /** Current title */\n protected title = signal<string>('');\n\n /** Clamps dragging to the viewport (`document.documentElement`). */\n protected readonly dragBoundary = signal<HTMLElement | undefined>(undefined);\n\n protected readonly dragDisabled = computed(\n () => !this.__config__()?.draggable || this.popupSizeState() === 'minimize' || this.fullScreenState(),\n );\n\n protected readonly resizeConfig = computed(() => resolvePopupResizable(this.__config__()));\n\n protected readonly resizeActive = computed(() => this.resizeConfig().enable);\n\n protected readonly resizeEnabled = computed(\n () =>\n this.resizeConfig().enable && this.popupSizeState() !== 'minimize' && !this.fullScreenState(),\n );\n\n private readonly viewportSize = signal({ width: 0, height: 0 });\n\n protected readonly resizeMaxWidth = computed(() => {\n const max = this.resizeConfig().maxWidth;\n if (max != null) {\n return max;\n }\n const viewport = this.viewportSize().width;\n return viewport > 0 ? viewport : Infinity;\n });\n\n protected readonly resizeMaxHeight = computed(() => {\n const max = this.resizeConfig().maxHeight;\n if (max != null) {\n return max;\n }\n const viewport = this.viewportSize().height;\n return viewport > 0 ? viewport : Infinity;\n });\n\n private viewportResizeHandler = () => {\n const win = this.document.defaultView;\n if (!win) {\n return;\n }\n this.viewportSize.set({ width: win.innerWidth, height: win.innerHeight });\n };\n\n protected popupSizeState = signal<'minimize' | 'normal'>('normal');\n protected fullScreenState = signal(false);\n protected minimizeLeft = signal<string | null>(null);\n protected minimizeRight = signal<string | null>(null);\n protected readonly minimizeSide = computed(() => resolvePopupMinimize(this.__config__()).position);\n\n private fullscreenChangeHandler = () => {\n const isFullscreen = !!document.fullscreenElement;\n this.fullScreenState.set(isFullscreen);\n if (this.__popupRef__()?.state() !== 'minimized') {\n this.__popupRef__()?._setState?.(isFullscreen ? 'maximized' : 'normal');\n }\n this.cdr.markForCheck();\n };\n\n protected closeEnabled = () => resolvePopupCloseButton(this.__config__());\n protected maximizeEnabled = () => resolvePopupMaximizable(this.__config__());\n protected minimizeEnabled = () => resolvePopupMinimize(this.__config__()).enable;\n\n constructor() {\n super();\n afterNextRender(() => {\n this.dragBoundary.set(this.document.documentElement);\n this.viewportResizeHandler();\n const win = this.document.defaultView;\n win?.addEventListener('resize', this.viewportResizeHandler);\n this.bindContentDragHandles();\n });\n }\n\n /** @ignore */\n override ngOnInit() {\n super.ngOnInit();\n\n const config = this.__config__();\n if (this._platform.is('SM')) {\n if (config) {\n config.draggable = false;\n config.resizable = false;\n }\n }\n\n this.title.set(config?.title ?? '');\n\n document.addEventListener('fullscreenchange', this.fullscreenChangeHandler);\n\n const delay = config?.delay ?? 0;\n if (delay > 0) {\n this.showSkeleton.set(true);\n this.cdr.markForCheck();\n this._delayTimer = setTimeout(() => {\n this._zone.run(() => {\n this._delayTimer = null;\n this.showSkeleton.set(false);\n void this.renderContent();\n this.cdr.markForCheck();\n });\n }, delay);\n } else {\n this._loadingId = this.loadingService.show({\n location: this.getHostElement(),\n });\n this.renderContent();\n }\n }\n\n /** @ignore */\n private async renderContent() {\n const content = this.__content__();\n const config = this.__config__();\n\n if (!content) {\n if (this._loadingId !== undefined) {\n this.loadingService.hide(this._loadingId);\n }\n return;\n }\n\n if (content instanceof TemplateRef) {\n this.contentContainerRef.createEmbeddedView(content, {\n $implicit: config?.data,\n ref: this,\n ...(typeof config?.inputs === 'object' && config.inputs ? (config.inputs as object) : {}),\n });\n this.handleContentRendered();\n } else if (content instanceof HTMLElement) {\n this.contentContainerEl.nativeElement.appendChild(content.cloneNode(true));\n this.handleContentRendered();\n } else if (typeof content === 'function') {\n const componentRef = this.contentContainerRef.createComponent(content as Type<unknown>);\n this._componentRef = componentRef;\n\n const popupRef = this.__popupRef__();\n if (popupRef) {\n popupRef.componentInstance = componentRef.instance;\n }\n\n const inputDefs = (componentRef.componentType as unknown as { ɵcmp?: { inputs?: Record<string, unknown> } })?.ɵcmp\n ?.inputs;\n\n if (config?.data && typeof config.data === 'object') {\n Object.entries(config.data).forEach(([key, value]) => {\n (componentRef.instance as Record<string, unknown>)[key] = value;\n });\n }\n\n if (config?.inputs && typeof config.inputs === 'object') {\n Object.entries(config.inputs).forEach(([key, value]) => {\n if (inputDefs && key in inputDefs) {\n componentRef.setInput(key, value);\n }\n });\n }\n\n if (inputDefs && '__popup__' in inputDefs) {\n componentRef.setInput('__popup__', this.__popupRef__());\n }\n\n const instance = componentRef.instance as {\n onClosed?: { subscribe: (fn: (e: { data?: unknown }) => void) => void };\n };\n if (instance.onClosed) {\n instance.onClosed.subscribe((e) => {\n this.close(e.data);\n });\n }\n\n this.handleContentRendered();\n }\n }\n\n /** @ignore */\n private handleContentRendered() {\n this._zone.runOutsideAngular(() => {\n setTimeout(() => {\n const body = this.getHostElement().querySelector<HTMLDivElement>('.ax-popup-body-container');\n const content = body?.children[0];\n\n if (!content || !body) {\n this.focus();\n this.bindContentDragHandles();\n return;\n }\n\n const popHeader = this.getHostElement().querySelector<HTMLDivElement>('.ax-popup-header-container');\n const popFooter = this.getHostElement().querySelector<HTMLDivElement>('.ax-popup-footer-container');\n\n const footer =\n content.querySelector<HTMLElement>(':scope > ax-footer') ||\n content.querySelector<HTMLElement>(':scope > ax-popup-footer') ||\n this.getHostElement().querySelector<HTMLElement>('.ax-popup-body-container ax-popup-footer');\n const header = content.querySelector<HTMLDivElement>(':scope > ax-header');\n\n if (footer && popFooter) {\n popFooter.append(footer);\n }\n if (header && popHeader) {\n popHeader.innerHTML = '';\n popHeader.append(header);\n }\n this.focus();\n this.bindContentDragHandles();\n });\n });\n if (this._loadingId !== undefined) {\n this.loadingService.hide(this._loadingId);\n }\n this.cdr.markForCheck();\n }\n\n private bindContentDragHandles(): void {\n const drag = this.dragDir;\n const root = this.getHostElement();\n if (!drag || !root) {\n return;\n }\n\n this._zone.run(() => {\n root.querySelectorAll<HTMLElement>('[axDragHandle]').forEach((element) => {\n drag.registerHandle(element);\n });\n });\n }\n\n /** @ignore */\n @HostListener('keydown.escape')\n onKeydownHandler() {\n const config = this.__config__();\n const focusedOrHasFocused = this.getHostElement().matches(':focus-within');\n if (!focusedOrHasFocused) return;\n\n if (config?.closeOnEscape === false) return;\n\n if (config?.closeOnEscape === true || this.closeEnabled()) {\n this.close();\n }\n }\n\n /** @ignore */\n protected _handleCloseClick() {\n this.close();\n }\n\n /** @ignore */\n ngOnDestroy() {\n if (this._delayTimer !== null) {\n clearTimeout(this._delayTimer);\n this._delayTimer = null;\n }\n document.removeEventListener('fullscreenchange', this.fullscreenChangeHandler);\n this.document.defaultView?.removeEventListener('resize', this.viewportResizeHandler);\n if (this.fullScreenState() && document.fullscreenElement) {\n document.exitFullscreen().catch(() => undefined);\n }\n if (this._loadingId !== undefined) {\n this.loadingService.hide(this._loadingId);\n }\n if (this._componentRef) {\n this._componentRef.destroy();\n this._componentRef = null;\n }\n }\n\n /**\n * Sets focus on the `.ax-popup` element within the host element after a short delay.\n */\n focus() {\n setTimeout(() => this.getHostElement().querySelector<HTMLDivElement>('.ax-popup')?.focus());\n }\n\n /**\n * Closes the popup, emitting component reference, host element, and optional data.\n */\n close(data?: unknown) {\n const closeFn = () => {\n this.__popupRef__()?.close(data);\n };\n\n const componentInstance = this._componentRef?.instance as\n | { onClosing?: (e: AXComponentClosing) => void | Promise<void> }\n | undefined;\n\n if (typeof componentInstance?.onClosing === 'function') {\n const ee: AXComponentClosing = {\n cancel: false,\n data,\n };\n const closingResult = componentInstance.onClosing(ee);\n if (closingResult instanceof Promise) {\n closingResult.then(() => {\n if (!ee.cancel) {\n closeFn();\n }\n });\n } else {\n if (!ee.cancel) {\n closeFn();\n }\n }\n } else {\n closeFn();\n }\n }\n\n /**\n * Minimizes the popup. Routes through the popup ref so a registered dock can host the tab.\n */\n minimize() {\n this.__popupRef__()?.minimize();\n }\n\n /**\n * Maximizes the popup using the Fullscreen API.\n */\n maximize() {\n this.__popupRef__()?.maximize();\n }\n\n /**\n * Restores the popup from minimized or fullscreen state.\n */\n restore() {\n this.__popupRef__()?.restore();\n }\n\n /**\n * Applies the minimized visual. When `docked` is true the overlay is hidden by the service\n * and the window stays at normal size for the next restore.\n * @internal\n */\n enterMinimized(docked: boolean) {\n if (this.fullScreenState() && document.fullscreenElement) {\n document.exitFullscreen().catch(() => undefined);\n }\n\n if (docked) {\n this.minimizeLeft.set(null);\n this.minimizeRight.set(null);\n this.popupSizeState.set('normal');\n this.cdr.markForCheck();\n return;\n }\n\n const el = this.popupEl()?.nativeElement;\n if (!el) return;\n\n const position = resolvePopupMinimize(this.__config__()).position;\n this.popupSizeState.set('minimize');\n if (position === 'bottom-right') {\n this.minimizeLeft.set(null);\n this.minimizeRight.set('0px');\n } else {\n this.minimizeRight.set(null);\n this.minimizeLeft.set('0px');\n }\n this.cdr.markForCheck();\n\n requestAnimationFrame(() => {\n if (this.popupSizeState() !== 'minimize') {\n return;\n }\n\n if (this.resizeActive()) {\n el.style.height = '';\n el.style.width = '';\n }\n\n const width = el.offsetWidth;\n const index = this.__popupRef__()?._getStackIndex?.() ?? 0;\n const offset = `${index * (width + 10)}px`;\n\n if (position === 'bottom-right') {\n this.minimizeLeft.set(null);\n this.minimizeRight.set(offset);\n } else {\n this.minimizeRight.set(null);\n this.minimizeLeft.set(offset);\n }\n this.cdr.markForCheck();\n });\n }\n\n /**\n * Restores the window from the legacy bottom bar.\n * @internal\n */\n exitMinimized() {\n this.minimizeLeft.set(null);\n this.minimizeRight.set(null);\n this.popupSizeState.set('normal');\n this.cdr.markForCheck();\n }\n\n /**\n * Enters or toggles the Fullscreen API on the popup element.\n * @internal\n */\n enterMaximized() {\n const el = this.popupEl()?.nativeElement;\n if (!el) return;\n\n if (!document.fullscreenElement) {\n el.requestFullscreen()\n .then(() => {\n this.fullScreenState.set(true);\n this.__popupRef__()?._setState?.('maximized');\n this.cdr.markForCheck();\n })\n .catch(() => undefined);\n } else {\n document.exitFullscreen().catch(() => undefined);\n }\n }\n\n /**\n * Leaves fullscreen.\n * @internal\n */\n exitMaximized() {\n if (this.fullScreenState() && document.fullscreenElement) {\n document.exitFullscreen().catch(() => undefined);\n }\n }\n\n /**\n * Sets inputs on the content component.\n */\n setContentInputs(values: AXComponentInputs) {\n const componentRef = this._componentRef;\n if (componentRef) {\n Object.entries(values).forEach(([key, value]) => {\n componentRef.setInput(key, value);\n });\n }\n }\n\n /**\n * Sets the popup title.\n */\n setTitle(title: string) {\n this.title.set(title);\n this.cdr.markForCheck();\n }\n}\n","<div\n class=\"ax-popup-wrapper\"\n aria-modal=\"true\"\n axFocusTrap\n [class.ax-popup-minimized-host]=\"popupSizeState() === 'minimize'\"\n>\n <div\n #popupEl\n axDrag\n class=\"ax-popup ax-popup-{{ __config__()?.size || 'md' }}\"\n tabindex=\"0\"\n [dragDisabled]=\"dragDisabled()\"\n [dragBoundary]=\"dragBoundary()\"\n [dragResetOnDblClick]=\"false\"\n [axResizable]=\"resizeEnabled()\"\n [handles]=\"resizeConfig().handles\"\n [minWidth]=\"resizeConfig().minWidth\"\n [minHeight]=\"resizeConfig().minHeight\"\n [maxWidth]=\"resizeMaxWidth()\"\n [maxHeight]=\"resizeMaxHeight()\"\n [lockAspectRatio]=\"resizeConfig().lockAspectRatio\"\n [dblClickAction]=\"resizeConfig().dblClickAction\"\n [class.ax-popup-resizable]=\"resizeActive()\"\n [class.ax-popup-minimized]=\"popupSizeState() === 'minimize'\"\n [class.ax-popup-minimized-end]=\"popupSizeState() === 'minimize' && minimizeSide() === 'bottom-right'\"\n [class.ax-popup-minimized-start]=\"popupSizeState() === 'minimize' && minimizeSide() === 'bottom-left'\"\n [class.ax-popup-fullscreen]=\"fullScreenState()\"\n [style.left]=\"popupSizeState() === 'minimize' ? minimizeLeft() : null\"\n [style.right]=\"popupSizeState() === 'minimize' ? minimizeRight() : null\"\n >\n <div class=\"ax-popup-header-container\">\n @if (__config__()?.header) {\n <div class=\"ax-popup-header\" axDragHandle>\n <span class=\"ax-popup-title\">{{ title() | translate | async }}</span>\n\n <div class=\"ax-popup-header-actions\" (pointerdown)=\"$event.stopPropagation()\">\n @if (minimizeEnabled() && popupSizeState() !== 'minimize') {\n <ax-chrome-button class=\"ax-sm\" title=\"Minimize\" (click)=\"minimize()\">\n <ax-popup-caption-icon name=\"minimize\" />\n </ax-chrome-button>\n }\n\n @if (popupSizeState() === 'minimize' || fullScreenState()) {\n <ax-chrome-button class=\"ax-sm\" title=\"Restore\" (click)=\"restore()\">\n <ax-popup-caption-icon name=\"restore\" />\n </ax-chrome-button>\n } @else if (maximizeEnabled()) {\n <ax-chrome-button class=\"ax-sm\" title=\"Maximize\" (click)=\"maximize()\">\n <ax-popup-caption-icon name=\"maximize\" />\n </ax-chrome-button>\n }\n\n @if (closeEnabled()) {\n <ax-close-button class=\"ax-sm\" tabindex=\"1\" (click)=\"_handleCloseClick()\"></ax-close-button>\n\n }\n </div>\n </div>\n }\n </div>\n\n <div class=\"ax-popup-main-container ax-loading-container\">\n <div class=\"ax-popup-body-container\" #contentContainer>\n @if (showSkeleton()) {\n <div class=\"ax-popup-skeleton-container\" #skeletonEl>\n @if (skeletonTemplate()) {\n <ng-container [ngTemplateOutlet]=\"skeletonTemplate()\"></ng-container>\n } @else {\n <div class=\"ax-popup-skeleton-default\">\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-title\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-line\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-line ax-popup-skeleton-bar-line-short\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-line\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n </div>\n }\n </div>\n }\n\n <ng-container #contentOutlet />\n </div>\n\n <div class=\"ax-popup-footer-container\" [class.ax-popup-footer-visible]=\"__config__()?.footer\"></div>\n </div>\n </div>\n</div>\n","import { AXComponentClosedPromise } from '@acorex/cdk/common';\nimport { AXOverlayRef, AXOverlayService } from '@acorex/cdk/overlay';\nimport { moveItemInArray } from '@acorex/cdk/drag-drop';\nimport { AXComponentInputs } from '@acorex/core/components';\nimport { ComponentRef, computed, inject, Injectable, Injector, runInInjectionContext, signal } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXPopupComponent } from './popup.component';\nimport {\n AXPopupConfig,\n AXPopupContentType,\n AXPopupDockItem,\n AXPopupRef,\n AXPopupWindowState,\n resolvePopupMinimize,\n} from './popup.interface';\n\ntype PopupEntry = {\n overlay: AXOverlayRef<AXPopupComponent>;\n popup: AXPopupRef;\n dock: string;\n data: unknown;\n};\n\nconst OVERLAY_HIDDEN_CLASS = 'ax-popup-overlay-hidden';\n\n/**\n * This is a service which you can create popup with it\n *\n * @category Components\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPopupService {\n private popupList = new Map<number, PopupEntry>();\n private overlayService = inject(AXOverlayService);\n private injector = inject(Injector);\n private dockCounts = signal<Record<string, number>>({});\n private minimizedByDock = signal<Record<string, number[]>>({});\n\n /**\n * Open popup 1\n */\n open(content: AXPopupContentType, title: string): AXComponentClosedPromise;\n /**\n * Open popup 2\n */\n open(content: AXPopupContentType, config?: AXPopupConfig): AXComponentClosedPromise;\n\n /**\n * @ignore\n */\n open(arg1: AXPopupContentType, arg2?: string | AXPopupConfig): AXComponentClosedPromise {\n const config = this.mergeConfig(arg2);\n\n const promise = new AXComponentClosedPromise((resolve) => {\n this.openRef(arg1, config).then((ref) => {\n ref.onClose.subscribe((data) => {\n if (resolve) {\n resolve({\n sender: ref.componentInstance,\n data: data,\n });\n }\n });\n });\n });\n\n return promise;\n }\n\n /**\n * Opens a popup and returns a mutable reference (for host components and advanced control).\n */\n async openRef<TResult = any>(content: AXPopupContentType, config?: AXPopupConfig): Promise<AXPopupRef<TResult>> {\n return this.openInternal(content, this.mergeConfig(config));\n }\n\n hasDock(name: string): boolean {\n return (this.dockCounts()[name] ?? 0) > 0;\n }\n\n registerDock(name: string): void {\n this.dockCounts.update((counts) => ({\n ...counts,\n [name]: (counts[name] ?? 0) + 1,\n }));\n }\n\n unregisterDock(name: string): void {\n const remaining = Math.max(0, (this.dockCounts()[name] ?? 0) - 1);\n this.dockCounts.update((counts) => ({\n ...counts,\n [name]: remaining,\n }));\n\n if (remaining > 0) {\n return;\n }\n\n const ids = this.minimizedByDock()[name] ?? [];\n for (const id of [...ids]) {\n const instance = this.getPopupInstance(id);\n instance?.enterMinimized(false);\n this.setOverlayVisible(id, true);\n }\n this.minimizedByDock.update((map) => {\n if (!(name in map)) {\n return map;\n }\n const next = { ...map };\n delete next[name];\n return next;\n });\n }\n\n minimizedInDock(dock: string): AXPopupDockItem[] {\n const ids = this.minimizedByDock()[dock] ?? [];\n return ids.map((id) => this.toDockItem(id)).filter((item): item is AXPopupDockItem => !!item);\n }\n\n reorderMinimized(dock: string, fromIndex: number, toIndex: number): void {\n this.minimizedByDock.update((map) => {\n const list = [...(map[dock] ?? [])];\n moveItemInArray(list, fromIndex, toIndex);\n return { ...map, [dock]: list };\n });\n }\n\n private mergeConfig(arg2?: string | AXPopupConfig): AXPopupConfig {\n const config: AXPopupConfig = {\n closeButton: true,\n header: true,\n footer: false,\n size: 'md',\n maximizable: false,\n draggable: true,\n hasBackdrop: true,\n closeOnBackdropClick: false,\n data: {},\n closeOnNavigation: true,\n buttons: {\n close: true,\n maximize: false,\n minimize: {\n enable: false,\n position: 'bottom-right',\n dock: 'default',\n },\n },\n };\n if (typeof arg2 === 'string') {\n config.title = arg2;\n } else if (arg2) {\n const { buttons, ...rest } = arg2;\n Object.assign(config, rest);\n if (buttons) {\n config.buttons = {\n ...config.buttons,\n ...buttons,\n minimize: {\n enable: false,\n position: 'bottom-right',\n dock: 'default',\n ...config.buttons?.minimize,\n ...buttons.minimize,\n },\n };\n }\n }\n return config;\n }\n\n /**\n * Opens a popup with the specified content and configuration.\n */\n private async openInternal<TResult = any>(\n content: AXPopupContentType,\n config: AXPopupConfig,\n ): Promise<AXPopupRef<TResult>> {\n const randomId = Math.floor(Math.random() * 100000000000);\n const onClose = new Subject<TResult>();\n const onStateChange = new Subject<AXPopupWindowState>();\n const state = signal<AXPopupWindowState>('normal');\n const title = signal(config.title ?? '');\n const isMinimized = runInInjectionContext(this.injector, () => computed(() => state() === 'minimized'));\n const isMaximized = runInInjectionContext(this.injector, () => computed(() => state() === 'maximized'));\n const dock = resolvePopupMinimize(config).dock;\n\n const returnRef: AXPopupRef<TResult> = {\n close: (data) => {\n this.close(randomId, data);\n },\n setInputs: (values: AXComponentInputs) => {\n this.setInputs(randomId, values);\n },\n setTitle: (value) => {\n title.set(value);\n this.setTitle(randomId, value);\n },\n minimize: () => {\n this.minimize(randomId);\n },\n maximize: () => {\n this.maximize(randomId);\n },\n restore: () => {\n this.restore(randomId);\n },\n bringToFront: () => {\n this.bringToFront(randomId);\n },\n onClose,\n onStateChange,\n state: state.asReadonly(),\n title: title.asReadonly(),\n isMinimized,\n isMaximized,\n _getStackIndex: () => this.getMapIndexOf(randomId),\n _setState: (next) => {\n if (state() === next) {\n return;\n }\n state.set(next);\n onStateChange.next(next);\n },\n };\n\n if (config._bindContentInputs) {\n config.inputs = {\n ...((config.inputs as Record<string, unknown>) ?? {}),\n ...config._bindContentInputs(returnRef),\n };\n }\n\n const panelClasses = ['ax-popup-overlay'];\n if (config.panelClass?.length) {\n panelClasses.push(...config.panelClass);\n }\n\n const ref = await this.overlayService.create(AXPopupComponent, {\n contextElement: config.contextElement,\n visualContextScope: 'theme',\n closeOnNavigation: config.closeOnNavigation,\n backdrop: {\n enabled: config.hasBackdrop ?? true,\n background: true,\n closeOnClick: config.closeOnBackdropClick ?? false,\n backdropClass: config.backdropClass,\n },\n panelClass: panelClasses,\n animation: config.animation ?? true,\n inputs: {\n __content__: content,\n __config__: config,\n __popupRef__: returnRef,\n __id__: randomId,\n },\n onDispose: () => {\n const entry = this.popupList.get(randomId);\n if (!entry) return;\n this.removeFromDock(randomId);\n this.popupList.delete(randomId);\n entry.popup.onClose.next(undefined as TResult);\n entry.popup.onClose.complete();\n entry.popup.onStateChange.complete();\n },\n });\n\n this.popupList.set(randomId, {\n overlay: ref,\n popup: returnRef,\n dock,\n data: config.data,\n });\n\n return returnRef;\n }\n\n close<TResult = any>(id: number, data?: TResult): void {\n const ref = this.popupList.get(id);\n if (!ref) return;\n this.removeFromDock(id);\n this.popupList.delete(id);\n ref.popup.onClose.next(data);\n ref.popup.onClose.complete();\n ref.popup.onStateChange.complete();\n ref.overlay.dispose();\n }\n\n setInputs(id: number, values: AXComponentInputs): void {\n const ref = this.popupList.get(id)?.overlay.instance;\n if (!ref) return;\n if (ref instanceof ComponentRef) {\n const componentInstance = ref.instance as AXPopupComponent;\n componentInstance.setContentInputs(values);\n }\n }\n\n setTitle(id: number, title: string): void {\n const ref = this.popupList.get(id)?.overlay.instance;\n if (!ref) return;\n if (ref instanceof ComponentRef) {\n const componentInstance = ref.instance as AXPopupComponent;\n componentInstance.setTitle(title);\n }\n }\n\n minimize(id: number): void {\n const entry = this.popupList.get(id);\n const instance = this.getPopupInstance(id);\n if (!entry || !instance || entry.popup.state() === 'minimized') return;\n\n const docked = this.hasDock(entry.dock);\n instance.enterMinimized(docked);\n entry.popup._setState?.('minimized');\n\n if (docked) {\n this.addToDock(id, entry.dock);\n this.setOverlayVisible(id, false);\n }\n }\n\n maximize(id: number): void {\n const entry = this.popupList.get(id);\n const instance = this.getPopupInstance(id);\n if (!entry || !instance) return;\n\n if (entry.popup.state() === 'minimized') {\n this.restore(id);\n }\n\n instance.enterMaximized();\n }\n\n restore(id: number): void {\n const entry = this.popupList.get(id);\n const instance = this.getPopupInstance(id);\n if (!entry || !instance) return;\n\n const current = entry.popup.state();\n if (current === 'normal') {\n return;\n }\n\n if (current === 'maximized') {\n instance.exitMaximized();\n return;\n }\n\n instance.exitMinimized();\n this.removeFromDock(id);\n this.setOverlayVisible(id, true);\n entry.popup._setState?.('normal');\n this.bringToFront(id);\n }\n\n getMapIndexOf(targetKey: number): number {\n let index = 0;\n for (const key of this.popupList.keys()) {\n if (key === targetKey) {\n return index;\n }\n index++;\n }\n return -1;\n }\n\n bringToFront(id: number): void {\n const ref = this.popupList.get(id);\n if (!ref) return;\n ref.overlay.bringToFront();\n }\n\n markMaximized(id: number, maximized: boolean): void {\n const entry = this.popupList.get(id);\n if (!entry || entry.popup.state() === 'minimized') {\n return;\n }\n entry.popup._setState?.(maximized ? 'maximized' : 'normal');\n }\n\n private addToDock(id: number, dock: string): void {\n this.minimizedByDock.update((map) => {\n const list = map[dock] ?? [];\n if (list.includes(id)) {\n return map;\n }\n return { ...map, [dock]: [...list, id] };\n });\n }\n\n private removeFromDock(id: number): void {\n this.minimizedByDock.update((map) => {\n let changed = false;\n const next: Record<string, number[]> = {};\n for (const [dock, ids] of Object.entries(map)) {\n const filtered = ids.filter((item) => item !== id);\n next[dock] = filtered;\n if (filtered.length !== ids.length) {\n changed = true;\n }\n }\n return changed ? next : map;\n });\n }\n\n private setOverlayVisible(id: number, visible: boolean): void {\n const overlay = this.popupList.get(id)?.overlay;\n if (!overlay) return;\n\n overlay.overlayElement?.classList.toggle(OVERLAY_HIDDEN_CLASS, !visible);\n overlay.backdropElement?.classList.toggle(OVERLAY_HIDDEN_CLASS, !visible);\n overlay.overlayElement?.toggleAttribute('aria-hidden', !visible);\n overlay.backdropElement?.toggleAttribute('aria-hidden', !visible);\n }\n\n private toDockItem(id: number): AXPopupDockItem | null {\n const entry = this.popupList.get(id);\n if (!entry) {\n return null;\n }\n return {\n id,\n title: entry.popup.title,\n data: entry.data,\n ref: entry.popup,\n restore: () => entry.popup.restore(),\n maximize: () => entry.popup.maximize(),\n close: () => entry.popup.close(),\n };\n }\n\n private getPopupInstance(id: number): AXPopupComponent | null {\n const ref = this.popupList.get(id)?.overlay.instance;\n if (!ref) return null;\n if (ref instanceof ComponentRef) {\n return ref.instance as AXPopupComponent;\n }\n return null;\n }\n}\n","import { AX_DRAG_PARENT, AXDragDirective } from '@acorex/cdk/drag-drop';\nimport { afterRenderEffect, Directive, ElementRef, inject, Injector } from '@angular/core';\n\n/**\n * Binds `[axDragHandle]` nodes inside a dock tab (including projected templates)\n * to the parent `axDrag` wrapper.\n */\n@Directive({\n selector: '[axPopupDockItem]',\n exportAs: 'axPopupDockItem',\n})\nexport class AXPopupDockItemDirective {\n private host = inject<ElementRef<HTMLElement>>(ElementRef);\n private drag = inject(AXDragDirective);\n\n readonly injector = Injector.create({\n parent: inject(Injector),\n providers: [{ provide: AX_DRAG_PARENT, useValue: this.drag }],\n });\n\n constructor() {\n afterRenderEffect(() => {\n this.host.nativeElement.querySelectorAll<HTMLElement>('[axDragHandle]').forEach((element) => {\n this.drag.registerHandle(element);\n });\n });\n }\n}\n","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport {\n AXDragDirective,\n AXDragHandleDirective,\n AXDropListDirective,\n AXDropListDroppedEvent,\n} from '@acorex/cdk/drag-drop';\nimport { AXChromeButtonComponent } from '@acorex/components/button';\nimport { AXPopupCaptionIconComponent } from '../popup-caption-icon';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n effect,\n inject,\n input,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXPopupDockItem } from '../popup.interface';\nimport { AXPopupService } from '../popup.service';\nimport { AXPopupDockItemDirective } from './popup-dock-item.directive';\n\n/**\n * Page-hosted dock for minimized popups. Place it anywhere in the app; matching\n * `buttons.minimize.dock` names send hidden windows here as reorderable tabs.\n *\n * @example\n * ```html\n * <ax-popup-dock name=\"taskbar\">\n * <ng-template let-item>\n * <button axDragHandle (click)=\"item.restore()\">{{ item.title() }}</button>\n * <button (click)=\"item.close()\">Close</button>\n * </ng-template>\n * </ax-popup-dock>\n * ```\n */\n@Component({\n selector: 'ax-popup-dock',\n templateUrl: './popup-dock.component.html',\n styleUrls: ['./popup-dock.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'ax-popup-dock',\n '[class.ax-popup-dock-empty]': 'items().length === 0',\n '[class.ax-popup-dock-vertical]': 'orientation() === \"vertical\"',\n '[class.ax-popup-dock-horizontal]': 'orientation() === \"horizontal\"',\n },\n imports: [\n NgTemplateOutlet,\n AXDragDirective,\n AXDragHandleDirective,\n AXDropListDirective,\n AXPopupDockItemDirective,\n AXChromeButtonComponent,\n AXPopupCaptionIconComponent,\n ],\n providers: [{ provide: AXComponent, useExisting: AXPopupDockComponent }],\n})\nexport class AXPopupDockComponent extends NXComponent {\n private popupService = inject(AXPopupService);\n\n /**\n * Dock name matched against `buttons.minimize.dock`.\n * @defaultValue 'default'\n */\n name = input('default');\n\n /**\n * Layout of the tab strip.\n * @defaultValue 'horizontal'\n */\n orientation = input<'horizontal' | 'vertical'>('horizontal');\n\n protected itemTemplate = contentChild(TemplateRef);\n\n protected items = computed<AXPopupDockItem[]>(() => this.popupService.minimizedInDock(this.name()));\n\n constructor() {\n super();\n effect((onCleanup) => {\n const name = this.name();\n this.popupService.registerDock(name);\n onCleanup(() => this.popupService.unregisterDock(name));\n });\n }\n\n protected onDropped(event: AXDropListDroppedEvent): void {\n if (event.previousIndex < 0 || event.currentIndex < 0 || event.previousIndex === event.currentIndex) {\n return;\n }\n this.popupService.reorderMinimized(this.name(), event.previousIndex, event.currentIndex);\n }\n}\n","<div\n class=\"ax-popup-dock-list\"\n axDropList\n [dropListOrientation]=\"orientation()\"\n (dropListDropped)=\"onDropped($event)\"\n>\n @for (item of items(); track item.id) {\n <div\n axDrag\n axPopupDockItem\n #dockItem=\"axPopupDockItem\"\n class=\"ax-popup-dock-item\"\n [dragData]=\"item.id\"\n dragCursor=\"grab\"\n >\n @if (itemTemplate(); as tpl) {\n <ng-container\n [ngTemplateOutlet]=\"tpl\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n [ngTemplateOutletInjector]=\"dockItem.injector\"\n />\n } @else {\n <div class=\"ax-popup-dock-tab\">\n <span axDragHandle class=\"ax-popup-dock-tab-title\" (click)=\"item.restore()\">\n {{ item.title() }}\n </span>\n <div class=\"ax-popup-dock-tab-actions\" (pointerdown)=\"$event.stopPropagation()\">\n <ax-chrome-button class=\"ax-sm\" title=\"Restore\" (click)=\"item.restore()\">\n <ax-popup-caption-icon name=\"restore\" />\n </ax-chrome-button>\n <ax-chrome-button class=\"ax-sm\" title=\"Maximize\" (click)=\"item.maximize()\">\n <ax-popup-caption-icon name=\"maximize\" />\n </ax-chrome-button>\n <ax-chrome-button class=\"ax-sm\" title=\"Close\" (click)=\"item.close()\">\n <ax-popup-caption-icon name=\"close\" />\n </ax-chrome-button>\n </div>\n </div>\n }\n </div>\n }\n</div>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ax-popup-footer',\n templateUrl: './popup-footer.component.html',\n styleUrl: './popup-footer.component.css',\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXComponent, useExisting: AXPopupFooterComponent }],\n})\nexport class AXPopupFooterComponent {}\n","<ng-content select=\"ax-prefix\"></ng-content>\n<ng-content select=\"ax-suffix\"></ng-content>\n<ng-content></ng-content>\n","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { AXComponentInputs } from '@acorex/core/components';\nimport { Component, inject, signal, TemplateRef, viewChild, ViewEncapsulation } from '@angular/core';\nimport { AXPopupConfig, AXPopupRef } from '../popup.interface';\nimport { AXPopupService } from '../popup.service';\n\n/**\n * Declarative popup host. Project content and call `open()` / `close()` on the component instance.\n *\n * @example\n * ```html\n * <ax-popup-host #popup>\n * <p>Content</p>\n * </ax-popup-host>\n * <ax-button (onClick)=\"popup.open({ title: 'Hello', header: true })\"></ax-button>\n * ```\n */\n@Component({\n selector: 'ax-popup-host',\n template: `\n <ng-template #contentTemplate>\n <ng-content></ng-content>\n </ng-template>\n `,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXComponent, useExisting: AXPopupHostComponent }],\n})\nexport class AXPopupHostComponent extends NXComponent {\n private popupService = inject(AXPopupService);\n protected template = viewChild(TemplateRef);\n private ref = signal<AXPopupRef | null>(null);\n\n /**\n * Opens the projected content in a popup overlay.\n */\n async open(options?: AXPopupConfig): Promise<AXPopupRef> {\n const template = this.template();\n if (!template) {\n throw new Error('AXPopupHostComponent: content template is not ready.');\n }\n const ref = await this.popupService.openRef(template, options);\n this.ref.set(ref);\n ref.onClose.subscribe(() => {\n if (this.ref() === ref) {\n this.ref.set(null);\n }\n });\n return ref;\n }\n\n /**\n * Closes the currently open popup hosted by this component.\n */\n async close(data?: unknown): Promise<void> {\n const current = this.ref();\n if (!current) return;\n current.close(data);\n }\n\n /**\n * Sets input values for the popup content component.\n */\n async setInputs(values: AXComponentInputs): Promise<void> {\n this.ref()?.setInputs(values);\n }\n\n /**\n * Minimizes the hosted popup.\n */\n async minimize(): Promise<void> {\n this.ref()?.minimize();\n }\n\n /**\n * Maximizes the hosted popup.\n */\n async maximize(): Promise<void> {\n this.ref()?.maximize();\n }\n\n /**\n * Restores the hosted popup.\n */\n async restore(): Promise<void> {\n this.ref()?.restore();\n }\n}\n","import { AXCommonModule } from '@acorex/cdk/common';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXPopupCaptionIconComponent } from './popup-caption-icon';\nimport { AXPopupDockComponent } from './popup-dock/popup-dock.component';\nimport { AXPopupFooterComponent } from './popup-footer/popup-footer.component';\nimport { AXPopupHostComponent } from './popup-host/popup-host.component';\nimport { AXPopupComponent } from './popup.component';\nimport { AXPopupService } from './popup.service';\n\nconst COMPONENT = [\n AXPopupComponent,\n AXPopupHostComponent,\n AXPopupFooterComponent,\n AXPopupDockComponent,\n AXPopupCaptionIconComponent,\n];\nconst MODULES = [CommonModule, AXCommonModule, AXButtonModule, AXDecoratorModule, AXTranslationModule];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [AXPopupService],\n})\nexport class AXPopupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|