@acorex/components 22.3.0 → 22.3.1

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 { 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 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 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","import { AXPlatform } from '@acorex/core/platform';\nimport {\n Component,\n ComponentRef,\n ElementRef,\n HostListener,\n inject,\n input,\n NgZone,\n OnDestroy,\n OnInit,\n signal,\n TemplateRef,\n viewChild,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { AXClosableComponent, AXComponent, AXComponentClosing, MXBaseComponent } from '@acorex/cdk/common';\nimport { AXFocusTrapDirective } from '@acorex/cdk/focus-trap';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorCloseButtonComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXLoadingService } from '@acorex/components/loading';\nimport { AXSkeletonComponent } from '@acorex/components/skeleton';\nimport { AXComponentInputs, AXComponentService, AXComponentType } from '@acorex/core/components';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport {\n AXPopupConfig,\n AXPopupContentType,\n AXPopupRef,\n resolvePopupCloseButton,\n resolvePopupMaximizable,\n resolvePopupMinimize,\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 ],\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 componentService = inject(AXComponentService);\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 private popupEl = viewChild<ElementRef<HTMLElement>>('popupEl');\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 /** @ignore */\n protected isDragging = signal(false);\n\n /** @ignore */\n protected dragOffset = signal({ x: 0, y: 0 });\n\n /** @ignore */\n private dragStartPos = { x: 0, y: 0 };\n\n /** @ignore */\n private elementStartPos = { x: 0, y: 0 };\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 /** @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 }\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.componentService.createFromComponent(content as AXComponentType<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 hostElement = componentRef.location.nativeElement;\n this.contentContainerEl.nativeElement.appendChild(hostElement);\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 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 });\n });\n if (this._loadingId !== undefined) {\n this.loadingService.hide(this._loadingId);\n }\n this.cdr.markForCheck();\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 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 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 // Drag functionality\n protected onDragStart(event: MouseEvent) {\n const config = this.__config__();\n if (!config?.draggable) return;\n if (this.popupSizeState() === 'minimize' || this.fullScreenState()) return;\n\n this.isDragging.set(true);\n this.dragStartPos = { x: event.clientX, y: event.clientY };\n\n const popup = this.getHostElement().querySelector<HTMLDivElement>('.ax-popup');\n if (popup) {\n const rect = popup.getBoundingClientRect();\n this.elementStartPos = { x: rect.left, y: rect.top };\n }\n\n event.preventDefault();\n }\n\n @HostListener('document:mousemove', ['$event'])\n onDragMove(event: MouseEvent) {\n if (!this.isDragging()) return;\n\n const deltaX = event.clientX - this.dragStartPos.x;\n const deltaY = event.clientY - this.dragStartPos.y;\n\n this.dragOffset.set({\n x: this.elementStartPos.x + deltaX,\n y: this.elementStartPos.y + deltaY,\n });\n }\n\n @HostListener('document:mouseup')\n onDragEnd() {\n this.isDragging.set(false);\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 class=\"ax-popup ax-popup-{{ __config__()?.size || 'md' }}\"\n tabindex=\"0\"\n [class.ax-popup-dragging]=\"isDragging()\"\n [class.ax-popup-minimized]=\"popupSizeState() === 'minimize'\"\n [class.ax-popup-fullscreen]=\"fullScreenState()\"\n [style.position]=\"dragOffset().x || dragOffset().y || popupSizeState() === 'minimize' ? 'fixed' : null\"\n [style.left]=\"popupSizeState() === 'minimize' ? minimizeLeft() : dragOffset().x ? dragOffset().x + 'px' : null\"\n [style.right]=\"popupSizeState() === 'minimize' ? minimizeRight() : null\"\n [style.top]=\"popupSizeState() === 'minimize' ? 'auto' : dragOffset().y ? dragOffset().y + 'px' : null\"\n [style.bottom]=\"popupSizeState() === 'minimize' ? '0' : null\"\n [style.transform]=\"dragOffset().x || dragOffset().y || popupSizeState() === 'minimize' ? 'none' : null\"\n >\n <div\n class=\"ax-popup-header-container\"\n [class.ax-popup-draggable]=\"__config__()?.draggable && popupSizeState() !== 'minimize' && !fullScreenState()\"\n (mousedown)=\"onDragStart($event)\"\n >\n @if (__config__()?.header) {\n <div class=\"ax-popup-header\">\n <span class=\"ax-popup-title\">{{ title() | translate | async }}</span>\n <div class=\"ax-popup-header-actions\">\n @if (minimizeEnabled()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" (onClick)=\"minimize()\">\n <ax-icon class=\"ax-icon ax-icon-minimize\"></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\"></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\"></ax-icon>\n </ax-button>\n }\n\n @if (closeEnabled()) {\n <ax-close-button tabindex=\"1\" (click)=\"_handleCloseClick()\"></ax-close-button>\n }\n </div>\n </div>\n }\n </div>\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 class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-title\" [animated]=\"__config__()?.skeletonAnimated ?? true\"></ax-skeleton>\n <ax-skeleton class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-line\" [animated]=\"__config__()?.skeletonAnimated ?? true\"></ax-skeleton>\n <ax-skeleton class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-line ax-popup-skeleton-bar-line-short\" [animated]=\"__config__()?.skeletonAnimated ?? true\"></ax-skeleton>\n <ax-skeleton class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-line\" [animated]=\"__config__()?.skeletonAnimated ?? true\"></ax-skeleton>\n </div>\n }\n </div>\n }\n <ng-container #contentOutlet />\n </div>\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 { 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, 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-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 { 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 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 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","import { AXPlatform } from '@acorex/core/platform';\nimport {\n afterNextRender,\n Component,\n ComponentRef,\n computed,\n ElementRef,\n HostListener,\n inject,\n input,\n NgZone,\n OnDestroy,\n OnInit,\n signal,\n TemplateRef,\n viewChild,\n ViewChild,\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 { AXFocusTrapDirective } from '@acorex/cdk/focus-trap';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorCloseButtonComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXLoadingService } from '@acorex/components/loading';\nimport { AXSkeletonComponent } from '@acorex/components/skeleton';\nimport { AXComponentInputs, AXComponentService, AXComponentType } 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} 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 ],\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 componentService = inject(AXComponentService);\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 private popupEl = viewChild<ElementRef<HTMLElement>>('popupEl');\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 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 });\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 }\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.componentService.createFromComponent(content as AXComponentType<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 hostElement = componentRef.location.nativeElement;\n this.contentContainerEl.nativeElement.appendChild(hostElement);\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 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 });\n });\n if (this._loadingId !== undefined) {\n this.loadingService.hide(this._loadingId);\n }\n this.cdr.markForCheck();\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 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 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 [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-xs\" look=\"blank\" color=\"default\" (onClick)=\"minimize()\">\n <ax-icon class=\"ax-icon ax-icon-minimize\"></ax-icon>\n </ax-button>\n }\n\n @if (popupSizeState() !== 'normal' || fullScreenState()) {\n <ax-button class=\"ax-xs\" look=\"blank\" color=\"default\" (onClick)=\"restore()\">\n <ax-icon class=\"ax-icon ax-icon-maximize\"></ax-icon>\n </ax-button>\n }\n\n @if (maximizeEnabled()) {\n <ax-button class=\"ax-xs\" look=\"blank\" color=\"default\" (onClick)=\"maximize()\">\n <ax-icon class=\"ax-icon ax-icon-full-screen\"></ax-icon>\n </ax-button>\n }\n\n @if (closeEnabled()) {\n <ax-close-button class=\"ax-xs\" 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 { 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, 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.0",
3
+ "version": "22.3.1",
4
4
  "peerDependencies": {
5
- "@acorex/core": "22.3.0",
6
- "@acorex/cdk": "22.3.0",
5
+ "@acorex/core": "22.3.1",
6
+ "@acorex/cdk": "22.3.1",
7
7
  "@angular/aria": ">=22.1.0",
8
8
  "polytype": ">=0.17.0",
9
9
  "hammerjs": ">=2.0.8",
@@ -482,8 +482,8 @@ interface AXConversationMetadata extends Record<string, unknown> {
482
482
  /** Optional custom empty-state component for the message list. */
483
483
  messageListEmptyComponent?: Type<AXConversationMessageListEmptyComponent>;
484
484
  /**
485
- * When `false`, hides reaction UI (add button, bubbles, picker) for this conversation.
486
- * Defaults to `true` when omitted.
485
+ * Explicit reaction UI override for this conversation.
486
+ * When omitted, reactions are enabled for `private` / `group` / `channel` and disabled for `bot`.
487
487
  */
488
488
  reactionsEnabled?: boolean;
489
489
  }
@@ -3111,7 +3111,10 @@ interface AXConversationLoadMessagesResult {
3111
3111
  * - Automatic rollback on failures
3112
3112
  */
3113
3113
  declare class AXConversationService {
3114
+ private static readonly createDisplayMetadataKeys;
3114
3115
  private static normalizeOptionalString;
3116
+ /** Keep flags like `reactionsEnabled`; drop display fields already mapped onto the conversation. */
3117
+ private static toPersistedConversationMetadata;
3115
3118
  private readonly config;
3116
3119
  private readonly state;
3117
3120
  readonly userApi: AXConversationUserApi;
@@ -3865,7 +3868,10 @@ declare function resolveConversationTitleForViewer(conversation: AXConversation,
3865
3868
  * Does not mutate the source object.
3866
3869
  */
3867
3870
  declare function resolveConversationForViewer(conversation: AXConversation, currentUserId?: string): AXConversation;
3868
- /** Whether message reactions are enabled for a conversation. Defaults to `true` when omitted. */
3871
+ /**
3872
+ * Whether message reactions are enabled for a conversation.
3873
+ * `metadata.reactionsEnabled` wins when set; otherwise `bot` chats default to off.
3874
+ */
3869
3875
  declare function isConversationReactionsEnabled(conversation?: AXConversation | null): boolean;
3870
3876
 
3871
3877
  /** Group and channel rooms share join/leave and creator-destroy rules. */
@@ -178,6 +178,7 @@ declare class AXPopupComponent extends MXBaseComponent implements OnInit, OnDest
178
178
  private loadingService;
179
179
  private _platform;
180
180
  private componentService;
181
+ private document;
181
182
  private contentContainerRef;
182
183
  private contentContainerEl;
183
184
  private popupEl;
@@ -200,17 +201,9 @@ declare class AXPopupComponent extends MXBaseComponent implements OnInit, OnDest
200
201
  protected skeletonTemplate: () => TemplateRef<unknown>;
201
202
  /** Current title */
202
203
  protected title: _angular_core.WritableSignal<string>;
203
- /** @ignore */
204
- protected isDragging: _angular_core.WritableSignal<boolean>;
205
- /** @ignore */
206
- protected dragOffset: _angular_core.WritableSignal<{
207
- x: number;
208
- y: number;
209
- }>;
210
- /** @ignore */
211
- private dragStartPos;
212
- /** @ignore */
213
- private elementStartPos;
204
+ /** Clamps dragging to the viewport (`document.documentElement`). */
205
+ protected readonly dragBoundary: _angular_core.WritableSignal<HTMLElement>;
206
+ protected readonly dragDisabled: _angular_core.Signal<boolean>;
214
207
  protected popupSizeState: _angular_core.WritableSignal<"minimize" | "normal">;
215
208
  protected fullScreenState: _angular_core.WritableSignal<boolean>;
216
209
  protected minimizeLeft: _angular_core.WritableSignal<string>;
@@ -219,6 +212,7 @@ declare class AXPopupComponent extends MXBaseComponent implements OnInit, OnDest
219
212
  protected closeEnabled: () => boolean;
220
213
  protected maximizeEnabled: () => boolean;
221
214
  protected minimizeEnabled: () => boolean;
215
+ constructor();
222
216
  /** @ignore */
223
217
  ngOnInit(): void;
224
218
  /** @ignore */
@@ -259,9 +253,6 @@ declare class AXPopupComponent extends MXBaseComponent implements OnInit, OnDest
259
253
  * Sets the popup title.
260
254
  */
261
255
  setTitle(title: string): void;
262
- protected onDragStart(event: MouseEvent): void;
263
- onDragMove(event: MouseEvent): void;
264
- onDragEnd(): void;
265
256
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPopupComponent, never>;
266
257
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPopupComponent, "ax-popup", never, { "__content__": { "alias": "__content__"; "required": false; "isSignal": true; }; "__config__": { "alias": "__config__"; "required": false; "isSignal": true; }; "__popupRef__": { "alias": "__popupRef__"; "required": false; "isSignal": true; }; "__id__": { "alias": "__id__"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
267
258
  }