@acorex/components 22.3.7 → 22.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-components-popup.mjs","sources":["../../../../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.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-host/popup-host.component.ts","../../../../packages/components/popup/src/lib/popup.module.ts","../../../../packages/components/popup/src/acorex-components-popup.ts"],"sourcesContent":["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 type { AXResizeHandle } from '@acorex/cdk/resizable';\nimport type { AXOverlayAnimation } from '@acorex/cdk/overlay';\nimport { AXComponentInputs, AXComponentType } from '@acorex/core/components';\nimport { Directive, ElementRef, input, 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 interface AXPopupButtonsConfig {\n minimize?: {\n enable: boolean;\n position: AXPopupMinimizePosition;\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 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 /** 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}\n\n@Directive()\nexport abstract class AXPopupComponentBase {\n __popup__ = input<AXPopupRef>();\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} {\n return {\n enable: config?.buttons?.minimize?.enable ?? false,\n position: config?.buttons?.minimize?.position ?? 'bottom-right',\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, AXDecoratorCloseButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorIconComponent } from '@acorex/components/decorators';\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 AXDecoratorCloseButtonComponent,\n AXDecoratorIconComponent,\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\n private fullscreenChangeHandler = () => {\n if (!document.fullscreenElement) {\n this.fullScreenState.set(false);\n this.cdr.markForCheck();\n }\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 to the bottom bar.\n */\n minimize() {\n if (this.fullScreenState() && document.fullscreenElement) {\n document.exitFullscreen().catch(() => undefined);\n }\n\n const el = this.popupEl()?.nativeElement;\n if (!el) return;\n\n this.minimizeLeft.set(null);\n this.minimizeRight.set(null);\n this.popupSizeState.set('minimize');\n this.cdr.markForCheck();\n\n requestAnimationFrame(() => {\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 position = resolvePopupMinimize(this.__config__()).position;\n\n if (position === 'bottom-right') {\n this.minimizeLeft.set(null);\n this.minimizeRight.set(`${index * (width + 10)}px`);\n } else {\n this.minimizeRight.set(null);\n this.minimizeLeft.set(`${index * (width + 10)}px`);\n }\n this.cdr.markForCheck();\n });\n }\n\n /**\n * Maximizes the popup using the Fullscreen API.\n */\n maximize() {\n const el = this.popupEl()?.nativeElement;\n if (!el) return;\n\n if (this.popupSizeState() === 'minimize') {\n this.restore();\n }\n\n if (!document.fullscreenElement) {\n el.requestFullscreen().then(() => {\n this.fullScreenState.set(true);\n this.cdr.markForCheck();\n });\n } else {\n document.exitFullscreen().catch(() => undefined);\n }\n }\n\n /**\n * Restores the popup from minimized or fullscreen state.\n */\n restore() {\n if (this.fullScreenState() && document.fullscreenElement) {\n document.exitFullscreen().catch(() => undefined);\n return;\n }\n\n this.minimizeLeft.set(null);\n this.minimizeRight.set(null);\n this.popupSizeState.set('normal');\n this.cdr.markForCheck();\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-fullscreen]=\"fullScreenState()\"\n [style.position]=\"popupSizeState() === 'minimize' ? 'fixed' : null\"\n [style.left]=\"popupSizeState() === 'minimize' ? minimizeLeft() : null\"\n [style.right]=\"popupSizeState() === 'minimize' ? minimizeRight() : null\"\n [style.bottom]=\"popupSizeState() === 'minimize' ? '0' : 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\" (onClick)=\"minimize()\">\n <ax-icon class=\"ax-icon ax-icon-minimize text-xl\"></ax-icon>\n </ax-button>\n }\n\n @if (popupSizeState() !== 'normal' || fullScreenState()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" (onClick)=\"restore()\">\n <ax-icon class=\"ax-icon ax-icon-maximize text-lg\"></ax-icon>\n </ax-button>\n }\n\n @if (maximizeEnabled()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" (onClick)=\"maximize()\">\n <ax-icon class=\"ax-icon ax-icon-full-screen text-xl\"></ax-icon>\n </ax-button>\n }\n\n @if (closeEnabled()) {\n <ax-close-button class=\"ax-sm text-xl\" tabindex=\"1\" (click)=\"_handleCloseClick()\"></ax-close-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 { AXComponentInputs } from '@acorex/core/components';\nimport { ComponentRef, inject, Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXPopupComponent } from './popup.component';\nimport { AXPopupConfig, AXPopupContentType, AXPopupRef } from './popup.interface';\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, { overlay: AXOverlayRef<AXPopupComponent>; popup: AXPopupRef }>();\n private overlayService = inject(AXOverlayService);\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 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 },\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 ...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\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: (title: string) => {\n this.setTitle(randomId, title);\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 _getStackIndex: () => this.getMapIndexOf(randomId),\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 // Dispose is handled via onDispose so close goes through onClose.\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 // Backdrop click (or external dispose) — complete close pipeline if still open.\n const entry = this.popupList.get(randomId);\n if (!entry) return;\n this.popupList.delete(randomId);\n entry.popup.onClose.next(undefined as TResult);\n entry.popup.onClose.complete();\n },\n });\n\n this.popupList.set(randomId, { overlay: ref, popup: returnRef });\n\n return returnRef;\n }\n\n /**\n * Closes a popup by its ID.\n */\n close<TResult = any>(id: number, data?: TResult): void {\n const ref = this.popupList.get(id);\n if (!ref) return;\n this.popupList.delete(id);\n ref.popup.onClose.next(data);\n ref.popup.onClose.complete();\n ref.overlay.dispose();\n }\n\n /**\n * Sets input values for a popup by its ID.\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 /**\n * Sets the title for a popup by its ID.\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 instance = this.getPopupInstance(id);\n instance?.minimize();\n }\n\n maximize(id: number): void {\n const instance = this.getPopupInstance(id);\n instance?.maximize();\n }\n\n restore(id: number): void {\n const instance = this.getPopupInstance(id);\n instance?.restore();\n }\n\n /**\n * Gets the index of a popup in the open stack (used for minimized bar positioning).\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 /**\n * Brings a popup to the front of all other overlays.\n */\n bringToFront(id: number): void {\n const ref = this.popupList.get(id);\n if (!ref) return;\n ref.overlay.bringToFront();\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 { 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 { 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 = [AXPopupComponent, AXPopupHostComponent, AXPopupFooterComponent];\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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"}
|
|
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":"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"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@acorex/components",
|
|
3
|
-
"version": "22.3.
|
|
3
|
+
"version": "22.3.8",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@acorex/core": "22.3.
|
|
6
|
-
"@acorex/cdk": "22.3.
|
|
5
|
+
"@acorex/core": "22.3.8",
|
|
6
|
+
"@acorex/cdk": "22.3.8",
|
|
7
7
|
"@angular/aria": ">=22.1.0",
|
|
8
8
|
"polytype": ">=0.17.0",
|
|
9
9
|
"hammerjs": ">=2.0.8",
|