@acorex/components 21.0.2-next.33 → 21.0.2-next.34

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-dialog.mjs","sources":["../../../../packages/components/dialog/src/lib/dialog.component.ts","../../../../packages/components/dialog/src/lib/dialog.component.html","../../../../packages/components/dialog/src/lib/dialog.config.ts","../../../../packages/components/dialog/src/lib/dialog.service.ts","../../../../packages/components/dialog/src/lib/dialog.module.ts","../../../../packages/components/dialog/src/acorex-components-dialog.ts"],"sourcesContent":["import {\n AXAutoFocusDirective,\n AXClosableComponent,\n AXComponent,\n AXHotkeyDirective,\n MXBaseComponent,\n} from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorGenericComponent } from '@acorex/components/decorators';\nimport { AXLoadingComponent } from '@acorex/components/loading';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { CdkDrag, CdkDragHandle } from '@angular/cdk/drag-drop';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, input } from '@angular/core';\nimport { AXDialogButtonItem, AXDialogData } from './dialog.class';\n\n/**\n * A dialog component that provides a modal interface for user interactions.\n * @category Components\n */\n@Component({\n selector: 'ax-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.compiled.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[attr.tabIndex]': '\"-1\"',\n '[class]': '\"ax-\" + data().type',\n },\n providers: [\n {\n provide: AXClosableComponent,\n useExisting: AXDialogComponent,\n },\n {\n provide: AXComponent,\n useExisting: AXDialogComponent,\n },\n ],\n imports: [\n CdkDrag,\n CdkDragHandle,\n AXDecoratorGenericComponent,\n AXButtonComponent,\n AXHotkeyDirective,\n AXAutoFocusDirective,\n AXLoadingComponent,\n AsyncPipe,\n AXTranslatorPipe,\n ],\n})\nexport class AXDialogComponent extends MXBaseComponent {\n /** Dialog configuration data */\n data = input.required<AXDialogData>();\n\n /** @internal Callback function to close the dialog */\n onClose = input<() => void>();\n\n /**\n * @ignore\n */\n protected _icon: string;\n\n /**\n * @ignore\n */\n protected _handleButtonClick(button: AXDialogButtonItem) {\n if (button.onClick) {\n button.onClick({ source: button });\n }\n }\n\n /**\n * @ignore\n */\n protected _hasAutoFocus(button: AXDialogButtonItem): boolean {\n const buttons = this.data().buttons;\n const autoFocusItem = buttons.find((item) => item.autofocus === true);\n if (autoFocusItem && autoFocusItem.text === button.text) {\n return true;\n }\n if (!autoFocusItem) {\n if (buttons.length > 0) {\n buttons[0].autofocus = true;\n return buttons[0].text === button.text;\n }\n }\n return false;\n }\n\n /**\n * Closes the dialog.\n *\n * @returns void - No return value. The dialog is closed and removed from the DOM.\n */\n close() {\n const closeCallback = this.onClose();\n if (closeCallback) {\n closeCallback();\n }\n }\n}\n","<div\n class=\"ax-dialog ax-orientation-{{ data().orientation }}\"\n tabindex=\"-1\"\n cdkDrag\n cdkDragHandle\n [cdkDragDisabled]=\"!data().draggable\"\n>\n <div class=\"ax-dialog-content-wrapper\">\n @if (data().icon !== 'none') {\n <div class=\"ax-dialog-icon-side\">\n <i class=\"ax-dialog-icon {{ data().icon }}\"></i>\n </div>\n }\n <div class=\"ax-dialog-content-side\">\n <div class=\"ax-dialog-title\">{{ data().title | translate | async }}</div>\n <div class=\"ax-dialog-content\">{{ data().content | translate | async }}</div>\n </div>\n <div class=\"ax-dialog-dismiss-icon\">\n @if (data().closeButton) {\n <i class=\"ax-icon ax-icon-close\"></i>\n }\n </div>\n </div>\n\n <ax-footer>\n <ax-suffix>\n @for (button of data().buttons; let i = $index; track i) {\n <ax-button\n [text]=\"button.text | translate | async\"\n [tabindex]=\"i\"\n [axHotkey]=\"button.hotkey\"\n [axAutoFocus]=\"_hasAutoFocus(button)\"\n (onClick)=\"_handleButtonClick(button)\"\n [look]=\"button.look || 'solid'\"\n [disabled]=\"button.disabled\"\n [color]=\"button.color || 'default'\"\n >\n @if (button.loading) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n </ax-suffix>\n </ax-footer>\n</div>\n","import { AX_GLOBAL_CONFIG } from '@acorex/core/config';\nimport { InjectionToken, inject } from '@angular/core';\nimport { set } from 'lodash-es';\n\nexport interface AXDialogConfigToken {\n confirm: { defaultAction: 'confirm' | 'cancel' };\n}\n\nexport const AX_DIALOG_CONFIG = new InjectionToken<AXDialogConfigToken>('AX_DIALOG_CONFIG', {\n providedIn: 'root',\n factory: () => {\n const global = inject(AX_GLOBAL_CONFIG);\n set(global, 'layout.dialog', AX_DIALOG_CONFIG);\n return AXDialogDefaultConfig;\n },\n});\n\nexport const AXDialogDefaultConfig: AXDialogConfigToken = {\n confirm: { defaultAction: 'cancel' },\n};\n\nexport type PartialDialogConfig = Partial<AXDialogConfigToken>;\n\nexport function dialogConfig(config: PartialDialogConfig = {}): AXDialogConfigToken {\n const result = {\n ...AXDialogDefaultConfig,\n ...config,\n };\n return result;\n}\n","import { AXStyleColorType } from '@acorex/cdk/common';\nimport { AXOverlayService } from '@acorex/cdk/overlay';\nimport { AXHtmlUtil } from '@acorex/core/utils';\nimport { Injectable, inject } from '@angular/core';\nimport { AXDialogConfig, AXDialogData, AXDialogInternalRef, AXDialogRef } from './dialog.class';\nimport { AXDialogComponent } from './dialog.component';\nimport { AXDialogConfigToken, AX_DIALOG_CONFIG } from './dialog.config';\n\n/**\n * The Button is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Injectable()\nexport class AXDialogService {\n private overlayService = inject(AXOverlayService);\n private defaultConfig: AXDialogConfigToken = inject(AX_DIALOG_CONFIG);\n\n private detectIcon(type: AXStyleColorType): string {\n let icon: string;\n switch (type) {\n case 'success':\n icon = 'ax-icon ax-icon-check';\n break;\n case 'danger':\n icon = 'ax-icon ax-icon-error';\n break;\n case 'warning':\n icon = 'ax-icon ax-icon-warning';\n break;\n default:\n icon = 'ax-icon ax-icon-info';\n break;\n }\n return icon;\n }\n\n /**\n * Show an alert box with 'Okay' button.\n *\n * @param title - The title of the alert dialog.\n * @param content - The content message of the alert dialog.\n * @param type - The type/color of the alert (primary, success, warning, danger).\n * @param orientation - The orientation of the dialog (horizontal or vertical).\n * @param draggable - Whether the dialog can be dragged.\n * @returns Promise<void> - Promise that resolves when the dialog is closed.\n */\n alert(\n title: string,\n content: string,\n type: AXStyleColorType = 'primary',\n orientation: 'horizontal' | 'vertical' = 'horizontal',\n draggable?: boolean,\n ): Promise<void> {\n return new Promise((resolve) => {\n const popup = this.open({\n title,\n type: type,\n content,\n icon: this.detectIcon(type),\n orientation,\n draggable,\n buttons: [\n {\n name: 'confirm',\n text: AXHtmlUtil.isRtl() ? 'باشه' : 'Okay',\n color: type,\n autofocus: true,\n onClick: () => {\n popup.close();\n if (resolve) {\n resolve();\n }\n },\n },\n ],\n });\n });\n }\n\n /**\n * Show a confirm box with 'Okay' & 'Cancel' buttons.\n *\n * @param title - The title of the confirm dialog.\n * @param content - The content message of the confirm dialog.\n * @param type - The type/color of the confirm dialog (primary, success, warning, danger).\n * @param orientation - The orientation of the dialog (horizontal or vertical).\n * @param draggable - Whether the dialog can be dragged.\n * @param defaultAction - The default action to focus (confirm or cancel).\n * @returns Promise<{ result: boolean }> - Promise that resolves with the user's choice.\n */\n confirm(\n title: string,\n content: string,\n type: AXStyleColorType = 'primary',\n orientation: 'horizontal' | 'vertical' = 'horizontal',\n draggable?: boolean,\n defaultAction?: 'confirm' | 'cancel',\n ): Promise<{ result: boolean }> {\n return new Promise<{ result: boolean }>((resolve) => {\n const tokenConfig = this.defaultConfig.confirm.defaultAction;\n\n const action = defaultAction || (type === 'danger' ? 'cancel' : tokenConfig);\n\n const popup = this.open({\n title,\n content,\n type,\n icon: this.detectIcon(type),\n orientation,\n draggable,\n buttons: [\n {\n name: 'confirm',\n text: AXHtmlUtil.isRtl() ? 'باشه' : 'Okay',\n color: type,\n autofocus: action === 'confirm',\n onClick: () => {\n popup.close();\n if (resolve) {\n resolve({ result: true });\n }\n },\n },\n {\n name: 'cancel',\n text: AXHtmlUtil.isRtl() ? 'انصراف' : 'Cancel',\n color: 'default',\n autofocus: action === 'cancel',\n onClick: () => {\n popup.close();\n if (resolve) {\n resolve({ result: false });\n }\n },\n hotkey: {\n Escape: () => {\n popup.close();\n if (resolve) {\n resolve({ result: false });\n }\n },\n },\n },\n ],\n });\n });\n }\n\n /**\n * Show a custom dialog box.\n *\n * @param options - Configuration options for the custom dialog.\n * @returns Promise<{ name: string }> - Promise that resolves with the button name that was clicked.\n */\n show(options: AXDialogConfig): Promise<{ name: string }> {\n return new Promise((resolve) => {\n options.orientation = options.orientation || 'horizontal';\n options.icon = options.icon ?? this.detectIcon(options.type);\n\n const popup = this.open(options);\n\n options.buttons?.forEach((b) => {\n const orginalClick = b.onClick;\n b.onClick = () => {\n const e = { source: b, handled: false };\n if (orginalClick) {\n orginalClick(e);\n if (e.handled) {\n resolve({ name: b.name ?? b.text });\n } else {\n popup.close();\n resolve({ name: b.name ?? b.text });\n }\n } else if (resolve) {\n popup.close();\n resolve({ name: b.name ?? b.text });\n } else {\n popup.close();\n }\n };\n });\n });\n }\n\n /**\n * Show a custom dialog box.\n *\n * @param options - Configuration options for the custom dialog.\n * @returns Promise<{ name: string }> - Promise that resolves with the button name that was clicked.\n */\n open(config: AXDialogConfig): AXDialogRef {\n config.orientation = config.orientation || 'horizontal';\n config.icon = config.icon ?? this.detectIcon(config.type);\n\n const dialogData: AXDialogData = {\n title: config.title,\n content: config.content,\n type: config.type,\n buttons: config.buttons,\n closeButton: config.closeButton ?? false,\n orientation: config.orientation,\n icon: config.icon,\n draggable: config.draggable,\n };\n\n let internalRef: AXDialogInternalRef;\n\n const closeDialog = () => {\n if (internalRef) {\n internalRef.overlayRef.dispose();\n }\n };\n\n this.overlayService\n .create<AXDialogComponent>(AXDialogComponent, {\n inputs: {\n data: dialogData,\n onClose: closeDialog,\n },\n backdrop: {\n enabled: true,\n background: true,\n closeOnClick: false, // disableClose: true equivalent\n },\n panelClass: ['ax-dialog-panel', 'animate-bounceIn', 'animate-faster'],\n })\n .then((overlayRef) => {\n internalRef = {\n overlayRef,\n close: closeDialog,\n };\n\n // Apply direction if specified\n if (config.direction || AXHtmlUtil.isRtl()) {\n const dir = config.direction ? config.direction : AXHtmlUtil.isRtl() ? 'rtl' : 'ltr';\n if (overlayRef.overlayElement) {\n overlayRef.overlayElement.setAttribute('dir', dir);\n }\n }\n });\n\n return {\n close: () => {\n closeDialog();\n },\n };\n }\n}\n","import { AXCommonModule, AXHotkeysService } from '@acorex/cdk/common';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXDialogComponent } from './dialog.component';\nimport { AXDialogService } from './dialog.service';\n\nconst COMPONENT = [AXDialogComponent];\nconst MODULES = [\n CommonModule,\n AXCommonModule,\n DragDropModule,\n A11yModule,\n AXButtonModule,\n AXDecoratorModule,\n AXLoadingModule,\n AXTranslationModule,\n];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [AXDialogService, AXHotkeysService],\n})\nexport class AXDialogModule {}\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-dialog.mjs","sources":["../../../../packages/components/dialog/src/lib/dialog.component.ts","../../../../packages/components/dialog/src/lib/dialog.component.html","../../../../packages/components/dialog/src/lib/dialog.config.ts","../../../../packages/components/dialog/src/lib/dialog.service.ts","../../../../packages/components/dialog/src/lib/dialog.module.ts","../../../../packages/components/dialog/src/acorex-components-dialog.ts"],"sourcesContent":["import {\n AXAutoFocusDirective,\n AXClosableComponent,\n AXComponent,\n AXHotkeyDirective,\n MXBaseComponent,\n} from '@acorex/cdk/common';\nimport { AXFocusTrapDirective } from '@acorex/cdk/focus-trap';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorGenericComponent } from '@acorex/components/decorators';\nimport { AXLoadingComponent } from '@acorex/components/loading';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { CdkDrag, CdkDragHandle } from '@angular/cdk/drag-drop';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, input } from '@angular/core';\nimport { AXDialogButtonItem, AXDialogData } from './dialog.class';\n\n/**\n * A dialog component that provides a modal interface for user interactions.\n * @category Components\n */\n@Component({\n selector: 'ax-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.compiled.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[attr.tabIndex]': '\"-1\"',\n '[class]': '\"ax-\" + data().type',\n },\n providers: [\n {\n provide: AXClosableComponent,\n useExisting: AXDialogComponent,\n },\n {\n provide: AXComponent,\n useExisting: AXDialogComponent,\n },\n ],\n imports: [\n CdkDrag,\n CdkDragHandle,\n AXDecoratorGenericComponent,\n AXButtonComponent,\n AXHotkeyDirective,\n AXAutoFocusDirective,\n AXFocusTrapDirective,\n AXLoadingComponent,\n AsyncPipe,\n AXTranslatorPipe,\n ],\n})\nexport class AXDialogComponent extends MXBaseComponent {\n /** Dialog configuration data */\n data = input.required<AXDialogData>();\n\n /** @internal Callback function to close the dialog */\n onClose = input<() => void>();\n\n /**\n * @ignore\n */\n protected _icon: string;\n\n /**\n * @ignore\n */\n protected _handleButtonClick(button: AXDialogButtonItem) {\n if (button.onClick) {\n button.onClick({ source: button });\n }\n }\n\n /**\n * @ignore\n */\n protected _hasAutoFocus(button: AXDialogButtonItem): boolean {\n const buttons = this.data().buttons;\n const target = buttons.find((item) => item.autofocus) ?? buttons[0];\n return target?.text === button.text;\n }\n\n /**\n * Closes the dialog.\n *\n * @returns void - No return value. The dialog is closed and removed from the DOM.\n */\n close() {\n const closeCallback = this.onClose();\n if (closeCallback) {\n closeCallback();\n }\n }\n}\n","<div\n class=\"ax-dialog ax-orientation-{{ data().orientation }}\"\n tabindex=\"-1\"\n axFocusTrap\n [axFocusTrapArrowNavigation]=\"true\"\n cdkDrag\n cdkDragHandle\n [cdkDragDisabled]=\"!data().draggable\"\n>\n <div class=\"ax-dialog-content-wrapper\">\n @if (data().icon !== 'none') {\n <div class=\"ax-dialog-icon-side\">\n <i class=\"ax-dialog-icon {{ data().icon }}\"></i>\n </div>\n }\n <div class=\"ax-dialog-content-side\">\n <div class=\"ax-dialog-title\">{{ data().title | translate | async }}</div>\n <div class=\"ax-dialog-content\">{{ data().content | translate | async }}</div>\n </div>\n <div class=\"ax-dialog-dismiss-icon\">\n @if (data().closeButton) {\n <i class=\"ax-icon ax-icon-close\"></i>\n }\n </div>\n </div>\n\n <ax-footer>\n <ax-suffix>\n @for (button of data().buttons; let i = $index; track i) {\n <ax-button\n [text]=\"button.text | translate | async\"\n [tabindex]=\"i\"\n [axHotkey]=\"button.hotkey\"\n [axAutoFocus]=\"_hasAutoFocus(button)\"\n (onClick)=\"_handleButtonClick(button)\"\n [look]=\"button.look || 'solid'\"\n [disabled]=\"button.disabled\"\n [color]=\"button.color || 'default'\"\n >\n @if (button.loading) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n </ax-suffix>\n </ax-footer>\n</div>\n","import { AX_GLOBAL_CONFIG } from '@acorex/core/config';\nimport { InjectionToken, inject } from '@angular/core';\nimport { set } from 'lodash-es';\n\nexport interface AXDialogConfigToken {\n confirm: { defaultAction: 'confirm' | 'cancel' };\n}\n\nexport const AX_DIALOG_CONFIG = new InjectionToken<AXDialogConfigToken>('AX_DIALOG_CONFIG', {\n providedIn: 'root',\n factory: () => {\n const global = inject(AX_GLOBAL_CONFIG);\n set(global, 'layout.dialog', AX_DIALOG_CONFIG);\n return AXDialogDefaultConfig;\n },\n});\n\nexport const AXDialogDefaultConfig: AXDialogConfigToken = {\n confirm: { defaultAction: 'cancel' },\n};\n\nexport type PartialDialogConfig = Partial<AXDialogConfigToken>;\n\nexport function dialogConfig(config: PartialDialogConfig = {}): AXDialogConfigToken {\n const result = {\n ...AXDialogDefaultConfig,\n ...config,\n };\n return result;\n}\n","import { AXStyleColorType } from '@acorex/cdk/common';\nimport { AXOverlayService } from '@acorex/cdk/overlay';\nimport { AXHtmlUtil } from '@acorex/core/utils';\nimport { Injectable, inject } from '@angular/core';\nimport { AXDialogConfig, AXDialogData, AXDialogInternalRef, AXDialogRef } from './dialog.class';\nimport { AXDialogComponent } from './dialog.component';\nimport { AXDialogConfigToken, AX_DIALOG_CONFIG } from './dialog.config';\n\n/**\n * The Button is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Injectable()\nexport class AXDialogService {\n private overlayService = inject(AXOverlayService);\n private defaultConfig: AXDialogConfigToken = inject(AX_DIALOG_CONFIG);\n\n private detectIcon(type: AXStyleColorType): string {\n let icon: string;\n switch (type) {\n case 'success':\n icon = 'ax-icon ax-icon-check';\n break;\n case 'danger':\n icon = 'ax-icon ax-icon-error';\n break;\n case 'warning':\n icon = 'ax-icon ax-icon-warning';\n break;\n default:\n icon = 'ax-icon ax-icon-info';\n break;\n }\n return icon;\n }\n\n /**\n * Show an alert box with 'Okay' button.\n *\n * @param title - The title of the alert dialog.\n * @param content - The content message of the alert dialog.\n * @param type - The type/color of the alert (primary, success, warning, danger).\n * @param orientation - The orientation of the dialog (horizontal or vertical).\n * @param draggable - Whether the dialog can be dragged.\n * @returns Promise<void> - Promise that resolves when the dialog is closed.\n */\n alert(\n title: string,\n content: string,\n type: AXStyleColorType = 'primary',\n orientation: 'horizontal' | 'vertical' = 'horizontal',\n draggable?: boolean,\n ): Promise<void> {\n return new Promise((resolve) => {\n const popup = this.open({\n title,\n type: type,\n content,\n icon: this.detectIcon(type),\n orientation,\n draggable,\n buttons: [\n {\n name: 'confirm',\n text: AXHtmlUtil.isRtl() ? 'باشه' : 'Okay',\n color: type,\n autofocus: true,\n onClick: () => {\n popup.close();\n if (resolve) {\n resolve();\n }\n },\n },\n ],\n });\n });\n }\n\n /**\n * Show a confirm box with 'Okay' & 'Cancel' buttons.\n *\n * @param title - The title of the confirm dialog.\n * @param content - The content message of the confirm dialog.\n * @param type - The type/color of the confirm dialog (primary, success, warning, danger).\n * @param orientation - The orientation of the dialog (horizontal or vertical).\n * @param draggable - Whether the dialog can be dragged.\n * @param defaultAction - The default action to focus (confirm or cancel).\n * @returns Promise<{ result: boolean }> - Promise that resolves with the user's choice.\n */\n confirm(\n title: string,\n content: string,\n type: AXStyleColorType = 'primary',\n orientation: 'horizontal' | 'vertical' = 'horizontal',\n draggable?: boolean,\n defaultAction?: 'confirm' | 'cancel',\n ): Promise<{ result: boolean }> {\n return new Promise<{ result: boolean }>((resolve) => {\n const tokenConfig = this.defaultConfig.confirm.defaultAction;\n\n const action = defaultAction || (type === 'danger' ? 'cancel' : tokenConfig);\n\n const popup = this.open({\n title,\n content,\n type,\n icon: this.detectIcon(type),\n orientation,\n draggable,\n buttons: [\n {\n name: 'confirm',\n text: AXHtmlUtil.isRtl() ? 'باشه' : 'Okay',\n color: type,\n autofocus: action === 'confirm',\n onClick: () => {\n popup.close();\n if (resolve) {\n resolve({ result: true });\n }\n },\n },\n {\n name: 'cancel',\n text: AXHtmlUtil.isRtl() ? 'انصراف' : 'Cancel',\n color: 'default',\n autofocus: action === 'cancel',\n onClick: () => {\n popup.close();\n if (resolve) {\n resolve({ result: false });\n }\n },\n hotkey: {\n Escape: () => {\n popup.close();\n if (resolve) {\n resolve({ result: false });\n }\n },\n },\n },\n ],\n });\n });\n }\n\n /**\n * Show a custom dialog box.\n *\n * @param options - Configuration options for the custom dialog.\n * @returns Promise<{ name: string }> - Promise that resolves with the button name that was clicked.\n */\n show(options: AXDialogConfig): Promise<{ name: string }> {\n return new Promise((resolve) => {\n options.orientation = options.orientation || 'horizontal';\n options.icon = options.icon ?? this.detectIcon(options.type);\n\n const popup = this.open(options);\n\n options.buttons?.forEach((b) => {\n const orginalClick = b.onClick;\n b.onClick = () => {\n const e = { source: b, handled: false };\n if (orginalClick) {\n orginalClick(e);\n if (e.handled) {\n resolve({ name: b.name ?? b.text });\n } else {\n popup.close();\n resolve({ name: b.name ?? b.text });\n }\n } else if (resolve) {\n popup.close();\n resolve({ name: b.name ?? b.text });\n } else {\n popup.close();\n }\n };\n });\n });\n }\n\n /**\n * Show a custom dialog box.\n *\n * @param options - Configuration options for the custom dialog.\n * @returns Promise<{ name: string }> - Promise that resolves with the button name that was clicked.\n */\n open(config: AXDialogConfig): AXDialogRef {\n config.orientation = config.orientation || 'horizontal';\n config.icon = config.icon ?? this.detectIcon(config.type);\n\n const dialogData: AXDialogData = {\n title: config.title,\n content: config.content,\n type: config.type,\n buttons: config.buttons,\n closeButton: config.closeButton ?? false,\n orientation: config.orientation,\n icon: config.icon,\n draggable: config.draggable,\n };\n\n let internalRef: AXDialogInternalRef;\n\n const closeDialog = () => {\n if (internalRef) {\n internalRef.overlayRef.dispose();\n }\n };\n\n this.overlayService\n .create<AXDialogComponent>(AXDialogComponent, {\n inputs: {\n data: dialogData,\n onClose: closeDialog,\n },\n backdrop: {\n enabled: true,\n background: true,\n closeOnClick: false, // disableClose: true equivalent\n },\n panelClass: ['ax-dialog-panel', 'animate-bounceIn', 'animate-faster'],\n })\n .then((overlayRef) => {\n internalRef = {\n overlayRef,\n close: closeDialog,\n };\n\n // Apply direction if specified\n if (config.direction || AXHtmlUtil.isRtl()) {\n const dir = config.direction ? config.direction : AXHtmlUtil.isRtl() ? 'rtl' : 'ltr';\n if (overlayRef.overlayElement) {\n overlayRef.overlayElement.setAttribute('dir', dir);\n }\n }\n });\n\n return {\n close: () => {\n closeDialog();\n },\n };\n }\n}\n","import { AXCommonModule, AXHotkeysService } from '@acorex/cdk/common';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXDialogComponent } from './dialog.component';\nimport { AXDialogService } from './dialog.service';\n\nconst COMPONENT = [AXDialogComponent];\nconst MODULES = [\n CommonModule,\n AXCommonModule,\n DragDropModule,\n A11yModule,\n AXButtonModule,\n AXDecoratorModule,\n AXLoadingModule,\n AXTranslationModule,\n];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [AXDialogService, AXHotkeysService],\n})\nexport class AXDialogModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAiBA;;;AAGG;AAkCG,MAAO,iBAAkB,SAAQ,eAAe,CAAA;AAjCtD,IAAA,WAAA,GAAA;;;AAmCE,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,0EAAgB;;QAGrC,IAAA,CAAA,OAAO,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAc;AAoC9B,IAAA;AA7BC;;AAEG;AACO,IAAA,kBAAkB,CAAC,MAA0B,EAAA;AACrD,QAAA,IAAI,MAAM,CAAC,OAAO,EAAE;YAClB,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QACpC;IACF;AAEA;;AAEG;AACO,IAAA,aAAa,CAAC,MAA0B,EAAA;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO;QACnC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC;AACnE,QAAA,OAAO,MAAM,EAAE,IAAI,KAAK,MAAM,CAAC,IAAI;IACrC;AAEA;;;;AAIG;IACH,KAAK,GAAA;AACH,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE;QACpC,IAAI,aAAa,EAAE;AACjB,YAAA,aAAa,EAAE;QACjB;IACF;8GAxCW,iBAAiB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,QAAA,EAAA,OAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,SAAA,EAvBjB;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,mBAAmB;AAC5B,gBAAA,WAAW,EAAE,iBAAiB;AAC/B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,WAAW;AACpB,gBAAA,WAAW,EAAE,iBAAiB;AAC/B,aAAA;SACF,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxCH,o5CA+CA,ikGDLI,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACP,aAAa,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACb,2BAA2B,yLAC3B,iBAAiB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACjB,iBAAiB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACjB,oBAAoB,sGACpB,oBAAoB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,4BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACpB,kBAAkB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAClB,SAAS,yCACT,gBAAgB,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAGP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAjC7B,SAAS;+BACE,WAAW,EAAA,eAAA,EAGJ,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,IAAA,EAC/B;AACJ,wBAAA,iBAAiB,EAAE,MAAM;AACzB,wBAAA,SAAS,EAAE,qBAAqB;qBACjC,EAAA,SAAA,EACU;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,mBAAmB;AAC5B,4BAAA,WAAW,EAAA,iBAAmB;AAC/B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,WAAW;AACpB,4BAAA,WAAW,EAAA,iBAAmB;AAC/B,yBAAA;qBACF,EAAA,OAAA,EACQ;wBACP,OAAO;wBACP,aAAa;wBACb,2BAA2B;wBAC3B,iBAAiB;wBACjB,iBAAiB;wBACjB,oBAAoB;wBACpB,oBAAoB;wBACpB,kBAAkB;wBAClB,SAAS;wBACT,gBAAgB;AACjB,qBAAA,EAAA,QAAA,EAAA,o5CAAA,EAAA,MAAA,EAAA,CAAA,ygGAAA,CAAA,EAAA;;;AE5CI,MAAM,gBAAgB,GAAG,IAAI,cAAc,CAAsB,kBAAkB,EAAE;AAC1F,IAAA,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,MAAK;AACZ,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACvC,QAAA,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,gBAAgB,CAAC;AAC9C,QAAA,OAAO,qBAAqB;IAC9B,CAAC;AACF,CAAA,CAAC;AAEK,MAAM,qBAAqB,GAAwB;AACxD,IAAA,OAAO,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE;CACrC;AAIK,SAAU,YAAY,CAAC,MAAA,GAA8B,EAAE,EAAA;AAC3D,IAAA,MAAM,MAAM,GAAG;AACb,QAAA,GAAG,qBAAqB;AACxB,QAAA,GAAG,MAAM;KACV;AACD,IAAA,OAAO,MAAM;AACf;;ACrBA;;;;AAIG;MAEU,eAAe,CAAA;AAD5B,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACzC,QAAA,IAAA,CAAA,aAAa,GAAwB,MAAM,CAAC,gBAAgB,CAAC;AAwOtE,IAAA;AAtOS,IAAA,UAAU,CAAC,IAAsB,EAAA;AACvC,QAAA,IAAI,IAAY;QAChB,QAAQ,IAAI;AACV,YAAA,KAAK,SAAS;gBACZ,IAAI,GAAG,uBAAuB;gBAC9B;AACF,YAAA,KAAK,QAAQ;gBACX,IAAI,GAAG,uBAAuB;gBAC9B;AACF,YAAA,KAAK,SAAS;gBACZ,IAAI,GAAG,yBAAyB;gBAChC;AACF,YAAA;gBACE,IAAI,GAAG,sBAAsB;gBAC7B;;AAEJ,QAAA,OAAO,IAAI;IACb;AAEA;;;;;;;;;AASG;IACH,KAAK,CACH,KAAa,EACb,OAAe,EACf,IAAA,GAAyB,SAAS,EAClC,WAAA,GAAyC,YAAY,EACrD,SAAmB,EAAA;AAEnB,QAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;AAC7B,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;gBACtB,KAAK;AACL,gBAAA,IAAI,EAAE,IAAI;gBACV,OAAO;AACP,gBAAA,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAC3B,WAAW;gBACX,SAAS;AACT,gBAAA,OAAO,EAAE;AACP,oBAAA;AACE,wBAAA,IAAI,EAAE,SAAS;AACf,wBAAA,IAAI,EAAE,UAAU,CAAC,KAAK,EAAE,GAAG,MAAM,GAAG,MAAM;AAC1C,wBAAA,KAAK,EAAE,IAAI;AACX,wBAAA,SAAS,EAAE,IAAI;wBACf,OAAO,EAAE,MAAK;4BACZ,KAAK,CAAC,KAAK,EAAE;4BACb,IAAI,OAAO,EAAE;AACX,gCAAA,OAAO,EAAE;4BACX;wBACF,CAAC;AACF,qBAAA;AACF,iBAAA;AACF,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;AAEA;;;;;;;;;;AAUG;AACH,IAAA,OAAO,CACL,KAAa,EACb,OAAe,EACf,IAAA,GAAyB,SAAS,EAClC,WAAA,GAAyC,YAAY,EACrD,SAAmB,EACnB,aAAoC,EAAA;AAEpC,QAAA,OAAO,IAAI,OAAO,CAAsB,CAAC,OAAO,KAAI;YAClD,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa;AAE5D,YAAA,MAAM,MAAM,GAAG,aAAa,KAAK,IAAI,KAAK,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE5E,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;gBACtB,KAAK;gBACL,OAAO;gBACP,IAAI;AACJ,gBAAA,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAC3B,WAAW;gBACX,SAAS;AACT,gBAAA,OAAO,EAAE;AACP,oBAAA;AACE,wBAAA,IAAI,EAAE,SAAS;AACf,wBAAA,IAAI,EAAE,UAAU,CAAC,KAAK,EAAE,GAAG,MAAM,GAAG,MAAM;AAC1C,wBAAA,KAAK,EAAE,IAAI;wBACX,SAAS,EAAE,MAAM,KAAK,SAAS;wBAC/B,OAAO,EAAE,MAAK;4BACZ,KAAK,CAAC,KAAK,EAAE;4BACb,IAAI,OAAO,EAAE;AACX,gCAAA,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;4BAC3B;wBACF,CAAC;AACF,qBAAA;AACD,oBAAA;AACE,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,IAAI,EAAE,UAAU,CAAC,KAAK,EAAE,GAAG,QAAQ,GAAG,QAAQ;AAC9C,wBAAA,KAAK,EAAE,SAAS;wBAChB,SAAS,EAAE,MAAM,KAAK,QAAQ;wBAC9B,OAAO,EAAE,MAAK;4BACZ,KAAK,CAAC,KAAK,EAAE;4BACb,IAAI,OAAO,EAAE;AACX,gCAAA,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;4BAC5B;wBACF,CAAC;AACD,wBAAA,MAAM,EAAE;4BACN,MAAM,EAAE,MAAK;gCACX,KAAK,CAAC,KAAK,EAAE;gCACb,IAAI,OAAO,EAAE;AACX,oCAAA,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;gCAC5B;4BACF,CAAC;AACF,yBAAA;AACF,qBAAA;AACF,iBAAA;AACF,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;AAEA;;;;;AAKG;AACH,IAAA,IAAI,CAAC,OAAuB,EAAA;AAC1B,QAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;YAC7B,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,YAAY;AACzD,YAAA,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;YAE5D,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YAEhC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,KAAI;AAC7B,gBAAA,MAAM,YAAY,GAAG,CAAC,CAAC,OAAO;AAC9B,gBAAA,CAAC,CAAC,OAAO,GAAG,MAAK;oBACf,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE;oBACvC,IAAI,YAAY,EAAE;wBAChB,YAAY,CAAC,CAAC,CAAC;AACf,wBAAA,IAAI,CAAC,CAAC,OAAO,EAAE;AACb,4BAAA,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;wBACrC;6BAAO;4BACL,KAAK,CAAC,KAAK,EAAE;AACb,4BAAA,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;wBACrC;oBACF;yBAAO,IAAI,OAAO,EAAE;wBAClB,KAAK,CAAC,KAAK,EAAE;AACb,wBAAA,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;oBACrC;yBAAO;wBACL,KAAK,CAAC,KAAK,EAAE;oBACf;AACF,gBAAA,CAAC;AACH,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;AAEA;;;;;AAKG;AACH,IAAA,IAAI,CAAC,MAAsB,EAAA;QACzB,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,YAAY;AACvD,QAAA,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;AAEzD,QAAA,MAAM,UAAU,GAAiB;YAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;AACvB,YAAA,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,KAAK;YACxC,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B;AAED,QAAA,IAAI,WAAgC;QAEpC,MAAM,WAAW,GAAG,MAAK;YACvB,IAAI,WAAW,EAAE;AACf,gBAAA,WAAW,CAAC,UAAU,CAAC,OAAO,EAAE;YAClC;AACF,QAAA,CAAC;AAED,QAAA,IAAI,CAAC;aACF,MAAM,CAAoB,iBAAiB,EAAE;AAC5C,YAAA,MAAM,EAAE;AACN,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,OAAO,EAAE,WAAW;AACrB,aAAA;AACD,YAAA,QAAQ,EAAE;AACR,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,UAAU,EAAE,IAAI;gBAChB,YAAY,EAAE,KAAK;AACpB,aAAA;AACD,YAAA,UAAU,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,CAAC;SACtE;AACA,aAAA,IAAI,CAAC,CAAC,UAAU,KAAI;AACnB,YAAA,WAAW,GAAG;gBACZ,UAAU;AACV,gBAAA,KAAK,EAAE,WAAW;aACnB;;YAGD,IAAI,MAAM,CAAC,SAAS,IAAI,UAAU,CAAC,KAAK,EAAE,EAAE;gBAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,GAAG,UAAU,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,KAAK;AACpF,gBAAA,IAAI,UAAU,CAAC,cAAc,EAAE;oBAC7B,UAAU,CAAC,cAAc,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC;gBACpD;YACF;AACF,QAAA,CAAC,CAAC;QAEJ,OAAO;YACL,KAAK,EAAE,MAAK;AACV,gBAAA,WAAW,EAAE;YACf,CAAC;SACF;IACH;8GAzOW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAf,eAAe,EAAA,CAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B;;;ACDD,MAAM,SAAS,GAAG,CAAC,iBAAiB,CAAC;AACrC,MAAM,OAAO,GAAG;IACd,YAAY;IACZ,cAAc;IACd,cAAc;IACd,UAAU;IACV,cAAc;IACd,iBAAiB;IACjB,eAAe;IACf,mBAAmB;CACpB;MAOY,cAAc,CAAA;8GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAfzB,YAAY;YACZ,cAAc;YACd,cAAc;YACd,UAAU;YACV,cAAc;YACd,iBAAiB;YACjB,eAAe;YACf,mBAAmB,EATF,iBAAiB,CAAA,EAAA,OAAA,EAAA,CAAjB,iBAAiB,CAAA,EAAA,CAAA,CAAA;+GAiBvB,cAAc,EAAA,SAAA,EAFd,CAAC,eAAe,EAAE,gBAAgB,CAAC,EAAA,OAAA,EAAA,CAFjC,OAAO,EAAK,SAAS,CAAA,EAAA,CAAA,CAAA;;2FAIvB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC;AACnC,oBAAA,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC;AACvB,oBAAA,SAAS,EAAE,CAAC,eAAe,EAAE,gBAAgB,CAAC;AAC/C,iBAAA;;;AC5BD;;AAEG;;;;"}
@@ -276,14 +276,14 @@ class AXPopupComponent extends MXBaseComponent {
276
276
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPopupComponent, isStandalone: true, selector: "ax-popup", inputs: { __content__: { classPropertyName: "__content__", publicName: "__content__", isSignal: true, isRequired: false, transformFunction: null }, __config__: { classPropertyName: "__config__", publicName: "__config__", isSignal: true, isRequired: false, transformFunction: null }, __popupRef__: { classPropertyName: "__popupRef__", publicName: "__popupRef__", isSignal: true, isRequired: false, transformFunction: null }, __id__: { classPropertyName: "__id__", publicName: "__id__", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "keydown.escape": "onKeydownHandler()", "document:mousemove": "onDragMove($event)", "document:mouseup": "onDragEnd()" } }, providers: [
277
277
  { provide: AXClosableComponent, useExisting: AXPopupComponent },
278
278
  { provide: AXComponent, useExisting: AXPopupComponent },
279
- ], viewQueries: [{ propertyName: "contentContainerRef", first: true, predicate: ["contentContainer"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "contentContainerEl", first: true, predicate: ["contentContainer"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-popup-wrapper\" aria-modal=\"true\" axFocusTrap>\n <div\n class=\"ax-popup ax-popup-{{ __config__()?.size || 'md' }}\"\n tabindex=\"0\"\n [class.ax-popup-dragging]=\"isDragging()\"\n [style.position]=\"dragOffset().x || dragOffset().y ? 'fixed' : null\"\n [style.left.px]=\"dragOffset().x || null\"\n [style.top.px]=\"dragOffset().y || null\"\n [style.transform]=\"dragOffset().x || dragOffset().y ? 'none' : null\"\n >\n <div\n class=\"ax-popup-header-container\"\n [class.ax-popup-draggable]=\"__config__()?.draggable\"\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 @if (__config__()?.closeButton) {\n <ax-close-button tabindex=\"1\" (click)=\"_handleCloseClick()\"></ax-close-button>\n }\n </div>\n }\n </div>\n <div class=\"ax-popup-main-container ax-loading-container\">\n <div class=\"ax-popup-body-container\" #contentContainer></div>\n <div class=\"ax-popup-footer-container\"></div>\n </div>\n </div>\n</div>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-outline-style:solid;--tw-font-weight:initial;--tw-leading:initial}}}:root{--ax-comp-popup-border-radius:var(--ax-sys-border-radius);--ax-comp-popup-border-color:var(--ax-sys-color-border-lightest-surface);--ax-comp-popup-body-bg-color:var(--ax-sys-color-lightest-surface);--ax-comp-popup-body-text-color:var(--ax-sys-color-on-lightest-surface);--ax-comp-popup-header-bg-color:var(--ax-sys-color-lighter-surface);--ax-comp-popup-header-border-color:var(--ax-sys-color-border-lighter-surface);--ax-comp-popup-footer-bg-color:var(--ax-sys-color-lighter-surface);--ax-comp-popup-footer-border-color:var(--ax-sys-color-border-lighter-surface)}@layer components{.ax-popup-wrapper{display:contents}.ax-popup-header-container.ax-popup-draggable{cursor:move}.ax-popup.ax-popup-dragging{-webkit-user-select:none;user-select:none}.ax-popup{border-style:var(--tw-border-style);width:auto;padding:calc(var(--spacing,.25rem) * 0);outline-style:var(--tw-outline-style);outline-offset:2px;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));border-radius:var(--ax-comp-popup-border-radius);border-width:1px;border-color:rgba(var(--ax-comp-popup-border-color));background-color:rgba(var(--ax-comp-popup-body-bg-color));color:rgba(var(--ax-comp-popup-body-text-color));--ax-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--ax-shadow-colored:0 10px 15px -3px var(--ax-shadow-color), 0 4px 6px -4px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow,0 0 #0000),var(--ax-ring-shadow,0 0 #0000),var(--ax-shadow);--ax-comp-popup-fluid-factor:clamp(0, (100vw - 40rem) / 56rem, 1);outline-width:2px;outline-color:#0000;flex-direction:column;margin-inline:auto;display:flex;overflow:hidden}.ax-popup .ax-popup-header-container{background-color:rgba(var(--ax-comp-popup-header-bg-color))}.ax-popup .ax-popup-header-container .ax-popup-header{border-bottom-style:var(--tw-border-style);padding:calc(var(--spacing,.25rem) * 3);border-bottom-width:1px;border-color:rgba(var(--ax-comp-popup-header-border-color));justify-content:space-between;align-items:center;display:flex}.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-base,1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5 ));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}@media(min-width:48rem){.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-lg,1.125rem);line-height:var(--tw-leading,var(--text-lg--line-height,calc(1.75 / 1.125)));--tw-leading:calc(var(--spacing,.25rem) * 7);line-height:calc(var(--spacing,.25rem) * 7)}}.ax-popup ax-footer{border-top-style:var(--tw-border-style);padding:calc(var(--spacing,.25rem) * 3);border-top-width:1px;border-color:rgba(var(--ax-comp-popup-footer-border-color));background-color:rgba(var(--ax-comp-popup-footer-bg-color));justify-content:space-between;align-items:center;display:flex;box-shadow:0 2px 10px #0000004d}.ax-popup:focus{outline-style:var(--tw-outline-style);outline-offset:2px;outline-width:2px;outline-color:#0000}.ax-popup:focus-visible{border-color:rgba(var(--ax-sys-color-primary-surface))}.ax-popup .ax-popup-main-container{flex-direction:column;flex:1;display:flex}.ax-popup .ax-popup-main-container .ax-popup-body-container{background-color:rgba(var(--ax-comp-popup-body-bg-color))}.ax-popup .ax-popup-main-container .ax-popup-footer-container{background-color:rgba(var(--ax-comp-popup-footer-bg-color))}.ax-popup.ax-popup-full{width:100vw;max-height:calc(100 * var(--ax-vh));height:calc(100 * var(--ax-vh));border-radius:0!important}.ax-popup.ax-popup-fit{width:fit-content!important}.ax-popup.ax-popup-fit .ax-popup-body-container{max-height:100vh}.ax-popup.ax-popup-fit .ax-popup-body-container>ng-component>div{width:fit-content!important}.ax-popup.ax-popup-xs{width:calc(100vw - var(--ax-comp-popup-fluid-factor) * (100vw - 18vw))!important}.ax-popup.ax-popup-sm{width:calc(100vw - var(--ax-comp-popup-fluid-factor) * (100vw - 25vw))!important}.ax-popup.ax-popup-md{width:calc(100vw - var(--ax-comp-popup-fluid-factor) * (100vw - 40vw))!important}.ax-popup.ax-popup-lg{width:calc(100vw - var(--ax-comp-popup-fluid-factor) * (100vw - 65vw))!important}.ax-popup.ax-popup-xl{width:calc(100vw - var(--ax-comp-popup-fluid-factor) * (100vw - 75vw))!important}.ax-popup.ax-popup-2xl{width:calc(100vw - var(--ax-comp-popup-fluid-factor) * (100vw - 85vw))!important}@media not all and (min-width:48rem){.ax-popup:not(.ax-popup-full):not(.ax-popup-fit){border-radius:0;height:fit-content;max-height:calc(100 * var(--ax-vh))!important}.ax-popup:not(.ax-popup-full):not(.ax-popup-fit) .ax-popup-body-container>ng-component>div{width:100%}}}:where(.ax-dark,.ax-dark *) .ax-popup{--ax-comp-popup-border-color:var(--ax-sys-color-border-darkest-surface);--ax-comp-popup-body-bg-color:var(--ax-sys-color-darker-surface);--ax-comp-popup-body-text-color:var(--ax-sys-color-on-darker-surface);--ax-comp-popup-header-bg-color:var(--ax-sys-color-dark-surface);--ax-comp-popup-header-border-color:var(--ax-sys-color-border-dark-surface);--ax-comp-popup-footer-bg-color:var(--ax-sys-color-dark-surface);--ax-comp-popup-footer-border-color:var(--ax-sys-color-border-dark-surface)}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-leading{syntax:\"*\";inherits:false}\n/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["closeAll", "icon"] }, { kind: "directive", type: AXFocusTrapDirective, selector: "[axFocusTrap]" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
279
+ ], viewQueries: [{ propertyName: "contentContainerRef", first: true, predicate: ["contentContainer"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "contentContainerEl", first: true, predicate: ["contentContainer"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-popup-wrapper\" aria-modal=\"true\" axFocusTrap>\n <div\n class=\"ax-popup ax-popup-{{ __config__()?.size || 'md' }}\"\n tabindex=\"0\"\n [class.ax-popup-dragging]=\"isDragging()\"\n [style.position]=\"dragOffset().x || dragOffset().y ? 'fixed' : null\"\n [style.left.px]=\"dragOffset().x || null\"\n [style.top.px]=\"dragOffset().y || null\"\n [style.transform]=\"dragOffset().x || dragOffset().y ? 'none' : null\"\n >\n <div\n class=\"ax-popup-header-container\"\n [class.ax-popup-draggable]=\"__config__()?.draggable\"\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 @if (__config__()?.closeButton) {\n <ax-close-button tabindex=\"1\" (click)=\"_handleCloseClick()\"></ax-close-button>\n }\n </div>\n }\n </div>\n <div class=\"ax-popup-main-container ax-loading-container\">\n <div class=\"ax-popup-body-container\" #contentContainer></div>\n <div class=\"ax-popup-footer-container\"></div>\n </div>\n </div>\n</div>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-outline-style:solid;--tw-font-weight:initial;--tw-leading:initial}}}:root{--ax-comp-popup-border-radius:var(--ax-sys-border-radius);--ax-comp-popup-border-color:var(--ax-sys-color-border-lightest-surface);--ax-comp-popup-body-bg-color:var(--ax-sys-color-lightest-surface);--ax-comp-popup-body-text-color:var(--ax-sys-color-on-lightest-surface);--ax-comp-popup-header-bg-color:var(--ax-sys-color-lighter-surface);--ax-comp-popup-header-border-color:var(--ax-sys-color-border-lighter-surface);--ax-comp-popup-footer-bg-color:var(--ax-sys-color-lighter-surface);--ax-comp-popup-footer-border-color:var(--ax-sys-color-border-lighter-surface)}@layer components{.ax-popup-overlay.ax-overlay-centered .ax-overlay-content{flex-direction:column;width:100%;max-width:100%;min-height:0;max-height:100%;display:flex;overflow:hidden}.ax-popup-wrapper{display:contents}.ax-popup-header-container.ax-popup-draggable{cursor:move}.ax-popup.ax-popup-dragging{-webkit-user-select:none;user-select:none}.ax-popup{min-height:calc(var(--spacing,.25rem) * 0);border-style:var(--tw-border-style);width:auto;padding:calc(var(--spacing,.25rem) * 0);outline-style:var(--tw-outline-style);outline-offset:2px;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));border-radius:var(--ax-comp-popup-border-radius);border-width:1px;border-color:rgba(var(--ax-comp-popup-border-color));background-color:rgba(var(--ax-comp-popup-body-bg-color));color:rgba(var(--ax-comp-popup-body-text-color));--ax-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--ax-shadow-colored:0 10px 15px -3px var(--ax-shadow-color), 0 4px 6px -4px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow,0 0 #0000),var(--ax-ring-shadow,0 0 #0000),var(--ax-shadow);--ax-comp-popup-fluid-factor:clamp(0, (100vw - 40rem) / 56rem, 1);outline-width:2px;outline-color:#0000;flex-direction:column;margin-inline:auto;display:flex;overflow:hidden}.ax-popup .ax-popup-header-container{background-color:rgba(var(--ax-comp-popup-header-bg-color));flex-shrink:0}.ax-popup .ax-popup-header-container .ax-popup-header{border-bottom-style:var(--tw-border-style);padding:calc(var(--spacing,.25rem) * 3);border-bottom-width:1px;border-color:rgba(var(--ax-comp-popup-header-border-color));justify-content:space-between;align-items:center;display:flex}.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-base,1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5 ));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}@media(min-width:48rem){.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-lg,1.125rem);line-height:var(--tw-leading,var(--text-lg--line-height,calc(1.75 / 1.125)));--tw-leading:calc(var(--spacing,.25rem) * 7);line-height:calc(var(--spacing,.25rem) * 7)}}.ax-popup ax-footer{border-top-style:var(--tw-border-style);padding:calc(var(--spacing,.25rem) * 3);border-top-width:1px;border-color:rgba(var(--ax-comp-popup-footer-border-color));background-color:rgba(var(--ax-comp-popup-footer-bg-color));justify-content:space-between;align-items:center;display:flex;box-shadow:0 2px 10px #0000004d}.ax-popup:focus{outline-style:var(--tw-outline-style);outline-offset:2px;outline-width:2px;outline-color:#0000}.ax-popup:focus-visible{border-color:rgba(var(--ax-sys-color-primary-surface))}.ax-popup .ax-popup-main-container{min-height:calc(var(--spacing,.25rem) * 0);flex-direction:column;flex:1;display:flex;overflow:hidden}.ax-popup .ax-popup-main-container .ax-popup-body-container{min-height:calc(var(--spacing,.25rem) * 0);background-color:rgba(var(--ax-comp-popup-body-bg-color));flex:1;overflow:auto}.ax-popup .ax-popup-main-container .ax-popup-footer-container{background-color:rgba(var(--ax-comp-popup-footer-bg-color));flex-shrink:0}.ax-popup.ax-popup-full{width:100vw;max-height:calc(100 * var(--ax-vh));height:calc(100 * var(--ax-vh));border-radius:0!important}.ax-popup.ax-popup-fit{width:fit-content!important}.ax-popup.ax-popup-fit .ax-popup-body-container{max-height:calc(100 * var(--ax-vh))}.ax-popup.ax-popup-fit .ax-popup-body-container>ng-component>div{width:fit-content!important}.ax-popup.ax-popup-xs{width:calc(100vw - var(--ax-comp-popup-fluid-factor) * (100vw - 18vw))!important}.ax-popup.ax-popup-sm{width:calc(100vw - var(--ax-comp-popup-fluid-factor) * (100vw - 25vw))!important}.ax-popup.ax-popup-md{width:calc(100vw - var(--ax-comp-popup-fluid-factor) * (100vw - 40vw))!important}.ax-popup.ax-popup-lg{width:calc(100vw - var(--ax-comp-popup-fluid-factor) * (100vw - 65vw))!important}.ax-popup.ax-popup-xl{width:calc(100vw - var(--ax-comp-popup-fluid-factor) * (100vw - 75vw))!important}.ax-popup.ax-popup-2xl{width:calc(100vw - var(--ax-comp-popup-fluid-factor) * (100vw - 85vw))!important}@media not all and (min-width:48rem){.ax-popup:not(.ax-popup-fit){border-radius:var(--ax-comp-popup-border-radius);width:calc(var(--ax-overlay-full-width) * 1vw)!important;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh))!important}.ax-popup:not(.ax-popup-fit):not(.ax-popup-full) .ax-popup-body-container>ng-component>div{width:100%}.ax-popup:not(.ax-popup-fit).ax-popup-full{height:calc(var(--ax-overlay-full-width) * var(--ax-vh));border-radius:var(--ax-comp-popup-border-radius)!important}}}:where(.ax-dark,.ax-dark *) .ax-popup{--ax-comp-popup-border-color:var(--ax-sys-color-border-darkest-surface);--ax-comp-popup-body-bg-color:var(--ax-sys-color-darker-surface);--ax-comp-popup-body-text-color:var(--ax-sys-color-on-darker-surface);--ax-comp-popup-header-bg-color:var(--ax-sys-color-dark-surface);--ax-comp-popup-header-border-color:var(--ax-sys-color-border-dark-surface);--ax-comp-popup-footer-bg-color:var(--ax-sys-color-dark-surface);--ax-comp-popup-footer-border-color:var(--ax-sys-color-border-dark-surface)}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-leading{syntax:\"*\";inherits:false}\n/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["closeAll", "icon"] }, { kind: "directive", type: AXFocusTrapDirective, selector: "[axFocusTrap]", inputs: ["axFocusTrapArrowNavigation"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
280
280
  }
281
281
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPopupComponent, decorators: [{
282
282
  type: Component,
283
283
  args: [{ selector: 'ax-popup', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
284
284
  { provide: AXClosableComponent, useExisting: AXPopupComponent },
285
285
  { provide: AXComponent, useExisting: AXPopupComponent },
286
- ], imports: [AXDecoratorCloseButtonComponent, AsyncPipe, AXTranslatorPipe, AXFocusTrapDirective], template: "<div class=\"ax-popup-wrapper\" aria-modal=\"true\" axFocusTrap>\n <div\n class=\"ax-popup ax-popup-{{ __config__()?.size || 'md' }}\"\n tabindex=\"0\"\n [class.ax-popup-dragging]=\"isDragging()\"\n [style.position]=\"dragOffset().x || dragOffset().y ? 'fixed' : null\"\n [style.left.px]=\"dragOffset().x || null\"\n [style.top.px]=\"dragOffset().y || null\"\n [style.transform]=\"dragOffset().x || dragOffset().y ? 'none' : null\"\n >\n <div\n class=\"ax-popup-header-container\"\n [class.ax-popup-draggable]=\"__config__()?.draggable\"\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 @if (__config__()?.closeButton) {\n <ax-close-button tabindex=\"1\" (click)=\"_handleCloseClick()\"></ax-close-button>\n }\n </div>\n }\n </div>\n <div class=\"ax-popup-main-container ax-loading-container\">\n <div class=\"ax-popup-body-container\" #contentContainer></div>\n <div class=\"ax-popup-footer-container\"></div>\n </div>\n </div>\n</div>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-outline-style:solid;--tw-font-weight:initial;--tw-leading:initial}}}:root{--ax-comp-popup-border-radius:var(--ax-sys-border-radius);--ax-comp-popup-border-color:var(--ax-sys-color-border-lightest-surface);--ax-comp-popup-body-bg-color:var(--ax-sys-color-lightest-surface);--ax-comp-popup-body-text-color:var(--ax-sys-color-on-lightest-surface);--ax-comp-popup-header-bg-color:var(--ax-sys-color-lighter-surface);--ax-comp-popup-header-border-color:var(--ax-sys-color-border-lighter-surface);--ax-comp-popup-footer-bg-color:var(--ax-sys-color-lighter-surface);--ax-comp-popup-footer-border-color:var(--ax-sys-color-border-lighter-surface)}@layer components{.ax-popup-wrapper{display:contents}.ax-popup-header-container.ax-popup-draggable{cursor:move}.ax-popup.ax-popup-dragging{-webkit-user-select:none;user-select:none}.ax-popup{border-style:var(--tw-border-style);width:auto;padding:calc(var(--spacing,.25rem) * 0);outline-style:var(--tw-outline-style);outline-offset:2px;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));border-radius:var(--ax-comp-popup-border-radius);border-width:1px;border-color:rgba(var(--ax-comp-popup-border-color));background-color:rgba(var(--ax-comp-popup-body-bg-color));color:rgba(var(--ax-comp-popup-body-text-color));--ax-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--ax-shadow-colored:0 10px 15px -3px var(--ax-shadow-color), 0 4px 6px -4px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow,0 0 #0000),var(--ax-ring-shadow,0 0 #0000),var(--ax-shadow);--ax-comp-popup-fluid-factor:clamp(0, (100vw - 40rem) / 56rem, 1);outline-width:2px;outline-color:#0000;flex-direction:column;margin-inline:auto;display:flex;overflow:hidden}.ax-popup .ax-popup-header-container{background-color:rgba(var(--ax-comp-popup-header-bg-color))}.ax-popup .ax-popup-header-container .ax-popup-header{border-bottom-style:var(--tw-border-style);padding:calc(var(--spacing,.25rem) * 3);border-bottom-width:1px;border-color:rgba(var(--ax-comp-popup-header-border-color));justify-content:space-between;align-items:center;display:flex}.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-base,1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5 ));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}@media(min-width:48rem){.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-lg,1.125rem);line-height:var(--tw-leading,var(--text-lg--line-height,calc(1.75 / 1.125)));--tw-leading:calc(var(--spacing,.25rem) * 7);line-height:calc(var(--spacing,.25rem) * 7)}}.ax-popup ax-footer{border-top-style:var(--tw-border-style);padding:calc(var(--spacing,.25rem) * 3);border-top-width:1px;border-color:rgba(var(--ax-comp-popup-footer-border-color));background-color:rgba(var(--ax-comp-popup-footer-bg-color));justify-content:space-between;align-items:center;display:flex;box-shadow:0 2px 10px #0000004d}.ax-popup:focus{outline-style:var(--tw-outline-style);outline-offset:2px;outline-width:2px;outline-color:#0000}.ax-popup:focus-visible{border-color:rgba(var(--ax-sys-color-primary-surface))}.ax-popup .ax-popup-main-container{flex-direction:column;flex:1;display:flex}.ax-popup .ax-popup-main-container .ax-popup-body-container{background-color:rgba(var(--ax-comp-popup-body-bg-color))}.ax-popup .ax-popup-main-container .ax-popup-footer-container{background-color:rgba(var(--ax-comp-popup-footer-bg-color))}.ax-popup.ax-popup-full{width:100vw;max-height:calc(100 * var(--ax-vh));height:calc(100 * var(--ax-vh));border-radius:0!important}.ax-popup.ax-popup-fit{width:fit-content!important}.ax-popup.ax-popup-fit .ax-popup-body-container{max-height:100vh}.ax-popup.ax-popup-fit .ax-popup-body-container>ng-component>div{width:fit-content!important}.ax-popup.ax-popup-xs{width:calc(100vw - var(--ax-comp-popup-fluid-factor) * (100vw - 18vw))!important}.ax-popup.ax-popup-sm{width:calc(100vw - var(--ax-comp-popup-fluid-factor) * (100vw - 25vw))!important}.ax-popup.ax-popup-md{width:calc(100vw - var(--ax-comp-popup-fluid-factor) * (100vw - 40vw))!important}.ax-popup.ax-popup-lg{width:calc(100vw - var(--ax-comp-popup-fluid-factor) * (100vw - 65vw))!important}.ax-popup.ax-popup-xl{width:calc(100vw - var(--ax-comp-popup-fluid-factor) * (100vw - 75vw))!important}.ax-popup.ax-popup-2xl{width:calc(100vw - var(--ax-comp-popup-fluid-factor) * (100vw - 85vw))!important}@media not all and (min-width:48rem){.ax-popup:not(.ax-popup-full):not(.ax-popup-fit){border-radius:0;height:fit-content;max-height:calc(100 * var(--ax-vh))!important}.ax-popup:not(.ax-popup-full):not(.ax-popup-fit) .ax-popup-body-container>ng-component>div{width:100%}}}:where(.ax-dark,.ax-dark *) .ax-popup{--ax-comp-popup-border-color:var(--ax-sys-color-border-darkest-surface);--ax-comp-popup-body-bg-color:var(--ax-sys-color-darker-surface);--ax-comp-popup-body-text-color:var(--ax-sys-color-on-darker-surface);--ax-comp-popup-header-bg-color:var(--ax-sys-color-dark-surface);--ax-comp-popup-header-border-color:var(--ax-sys-color-border-dark-surface);--ax-comp-popup-footer-bg-color:var(--ax-sys-color-dark-surface);--ax-comp-popup-footer-border-color:var(--ax-sys-color-border-dark-surface)}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-leading{syntax:\"*\";inherits:false}\n/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */\n"] }]
286
+ ], imports: [AXDecoratorCloseButtonComponent, AsyncPipe, AXTranslatorPipe, AXFocusTrapDirective], template: "<div class=\"ax-popup-wrapper\" aria-modal=\"true\" axFocusTrap>\n <div\n class=\"ax-popup ax-popup-{{ __config__()?.size || 'md' }}\"\n tabindex=\"0\"\n [class.ax-popup-dragging]=\"isDragging()\"\n [style.position]=\"dragOffset().x || dragOffset().y ? 'fixed' : null\"\n [style.left.px]=\"dragOffset().x || null\"\n [style.top.px]=\"dragOffset().y || null\"\n [style.transform]=\"dragOffset().x || dragOffset().y ? 'none' : null\"\n >\n <div\n class=\"ax-popup-header-container\"\n [class.ax-popup-draggable]=\"__config__()?.draggable\"\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 @if (__config__()?.closeButton) {\n <ax-close-button tabindex=\"1\" (click)=\"_handleCloseClick()\"></ax-close-button>\n }\n </div>\n }\n </div>\n <div class=\"ax-popup-main-container ax-loading-container\">\n <div class=\"ax-popup-body-container\" #contentContainer></div>\n <div class=\"ax-popup-footer-container\"></div>\n </div>\n </div>\n</div>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-outline-style:solid;--tw-font-weight:initial;--tw-leading:initial}}}:root{--ax-comp-popup-border-radius:var(--ax-sys-border-radius);--ax-comp-popup-border-color:var(--ax-sys-color-border-lightest-surface);--ax-comp-popup-body-bg-color:var(--ax-sys-color-lightest-surface);--ax-comp-popup-body-text-color:var(--ax-sys-color-on-lightest-surface);--ax-comp-popup-header-bg-color:var(--ax-sys-color-lighter-surface);--ax-comp-popup-header-border-color:var(--ax-sys-color-border-lighter-surface);--ax-comp-popup-footer-bg-color:var(--ax-sys-color-lighter-surface);--ax-comp-popup-footer-border-color:var(--ax-sys-color-border-lighter-surface)}@layer components{.ax-popup-overlay.ax-overlay-centered .ax-overlay-content{flex-direction:column;width:100%;max-width:100%;min-height:0;max-height:100%;display:flex;overflow:hidden}.ax-popup-wrapper{display:contents}.ax-popup-header-container.ax-popup-draggable{cursor:move}.ax-popup.ax-popup-dragging{-webkit-user-select:none;user-select:none}.ax-popup{min-height:calc(var(--spacing,.25rem) * 0);border-style:var(--tw-border-style);width:auto;padding:calc(var(--spacing,.25rem) * 0);outline-style:var(--tw-outline-style);outline-offset:2px;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));border-radius:var(--ax-comp-popup-border-radius);border-width:1px;border-color:rgba(var(--ax-comp-popup-border-color));background-color:rgba(var(--ax-comp-popup-body-bg-color));color:rgba(var(--ax-comp-popup-body-text-color));--ax-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--ax-shadow-colored:0 10px 15px -3px var(--ax-shadow-color), 0 4px 6px -4px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow,0 0 #0000),var(--ax-ring-shadow,0 0 #0000),var(--ax-shadow);--ax-comp-popup-fluid-factor:clamp(0, (100vw - 40rem) / 56rem, 1);outline-width:2px;outline-color:#0000;flex-direction:column;margin-inline:auto;display:flex;overflow:hidden}.ax-popup .ax-popup-header-container{background-color:rgba(var(--ax-comp-popup-header-bg-color));flex-shrink:0}.ax-popup .ax-popup-header-container .ax-popup-header{border-bottom-style:var(--tw-border-style);padding:calc(var(--spacing,.25rem) * 3);border-bottom-width:1px;border-color:rgba(var(--ax-comp-popup-header-border-color));justify-content:space-between;align-items:center;display:flex}.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-base,1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5 ));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}@media(min-width:48rem){.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-lg,1.125rem);line-height:var(--tw-leading,var(--text-lg--line-height,calc(1.75 / 1.125)));--tw-leading:calc(var(--spacing,.25rem) * 7);line-height:calc(var(--spacing,.25rem) * 7)}}.ax-popup ax-footer{border-top-style:var(--tw-border-style);padding:calc(var(--spacing,.25rem) * 3);border-top-width:1px;border-color:rgba(var(--ax-comp-popup-footer-border-color));background-color:rgba(var(--ax-comp-popup-footer-bg-color));justify-content:space-between;align-items:center;display:flex;box-shadow:0 2px 10px #0000004d}.ax-popup:focus{outline-style:var(--tw-outline-style);outline-offset:2px;outline-width:2px;outline-color:#0000}.ax-popup:focus-visible{border-color:rgba(var(--ax-sys-color-primary-surface))}.ax-popup .ax-popup-main-container{min-height:calc(var(--spacing,.25rem) * 0);flex-direction:column;flex:1;display:flex;overflow:hidden}.ax-popup .ax-popup-main-container .ax-popup-body-container{min-height:calc(var(--spacing,.25rem) * 0);background-color:rgba(var(--ax-comp-popup-body-bg-color));flex:1;overflow:auto}.ax-popup .ax-popup-main-container .ax-popup-footer-container{background-color:rgba(var(--ax-comp-popup-footer-bg-color));flex-shrink:0}.ax-popup.ax-popup-full{width:100vw;max-height:calc(100 * var(--ax-vh));height:calc(100 * var(--ax-vh));border-radius:0!important}.ax-popup.ax-popup-fit{width:fit-content!important}.ax-popup.ax-popup-fit .ax-popup-body-container{max-height:calc(100 * var(--ax-vh))}.ax-popup.ax-popup-fit .ax-popup-body-container>ng-component>div{width:fit-content!important}.ax-popup.ax-popup-xs{width:calc(100vw - var(--ax-comp-popup-fluid-factor) * (100vw - 18vw))!important}.ax-popup.ax-popup-sm{width:calc(100vw - var(--ax-comp-popup-fluid-factor) * (100vw - 25vw))!important}.ax-popup.ax-popup-md{width:calc(100vw - var(--ax-comp-popup-fluid-factor) * (100vw - 40vw))!important}.ax-popup.ax-popup-lg{width:calc(100vw - var(--ax-comp-popup-fluid-factor) * (100vw - 65vw))!important}.ax-popup.ax-popup-xl{width:calc(100vw - var(--ax-comp-popup-fluid-factor) * (100vw - 75vw))!important}.ax-popup.ax-popup-2xl{width:calc(100vw - var(--ax-comp-popup-fluid-factor) * (100vw - 85vw))!important}@media not all and (min-width:48rem){.ax-popup:not(.ax-popup-fit){border-radius:var(--ax-comp-popup-border-radius);width:calc(var(--ax-overlay-full-width) * 1vw)!important;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh))!important}.ax-popup:not(.ax-popup-fit):not(.ax-popup-full) .ax-popup-body-container>ng-component>div{width:100%}.ax-popup:not(.ax-popup-fit).ax-popup-full{height:calc(var(--ax-overlay-full-width) * var(--ax-vh));border-radius:var(--ax-comp-popup-border-radius)!important}}}:where(.ax-dark,.ax-dark *) .ax-popup{--ax-comp-popup-border-color:var(--ax-sys-color-border-darkest-surface);--ax-comp-popup-body-bg-color:var(--ax-sys-color-darker-surface);--ax-comp-popup-body-text-color:var(--ax-sys-color-on-darker-surface);--ax-comp-popup-header-bg-color:var(--ax-sys-color-dark-surface);--ax-comp-popup-header-border-color:var(--ax-sys-color-border-dark-surface);--ax-comp-popup-footer-bg-color:var(--ax-sys-color-dark-surface);--ax-comp-popup-footer-border-color:var(--ax-sys-color-border-dark-surface)}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-leading{syntax:\"*\";inherits:false}\n/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */\n"] }]
287
287
  }], propDecorators: { contentContainerRef: [{
288
288
  type: ViewChild,
289
289
  args: ['contentContainer', { read: ViewContainerRef, static: true }]
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-popup.mjs","sources":["../../../../packages/components/popup/src/lib/popup.component.ts","../../../../packages/components/popup/src/lib/popup.component.html","../../../../packages/components/popup/src/lib/popup.interface.ts","../../../../packages/components/popup/src/lib/popup.service.ts","../../../../packages/components/popup/src/lib/popup.module.ts","../../../../packages/components/popup/src/acorex-components-popup.ts"],"sourcesContent":["import { AXPlatform } from '@acorex/core/platform';\nimport {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n DestroyRef,\n HostListener,\n inject,\n input,\n NgZone,\n OnDestroy,\n OnInit,\n signal,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationStart, Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\n\nimport { AXClosableComponent, AXComponent, AXComponentClosing, MXBaseComponent } from '@acorex/cdk/common';\nimport { AXFocusTrapDirective } from '@acorex/cdk/focus-trap';\nimport { AXDecoratorCloseButtonComponent } from '@acorex/components/decorators';\nimport { AXLoadingService } from '@acorex/components/loading';\nimport { AXComponentInputs, AXComponentService, AXComponentType } from '@acorex/core/components';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { AXPopupConfig, AXPopupContentType, AXPopupRef } 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.compiled.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: AXClosableComponent, useExisting: AXPopupComponent },\n { provide: AXComponent, useExisting: AXPopupComponent },\n ],\n imports: [AXDecoratorCloseButtonComponent, AsyncPipe, AXTranslatorPipe, AXFocusTrapDirective],\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 _router = inject(Router, { optional: true });\n private _destroyRef = inject(DestroyRef);\n\n @ViewChild('contentContainer', { read: ViewContainerRef, static: true })\n private contentContainerRef: ViewContainerRef;\n\n @ViewChild('contentContainer', { static: true })\n private contentContainerEl: { nativeElement: HTMLElement };\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;\n\n /** @ignore */\n private _componentRef: ComponentRef<unknown> | null = 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 /** @ignore */\n override ngOnInit() {\n super.ngOnInit();\n\n const config = this.__config__();\n if (this._platform.is('SM')) {\n // Disable dragging on small screens\n if (config) {\n config.draggable = false;\n }\n }\n\n this.title.set(config?.title ?? '');\n\n this._loadingId = this.loadingService.show({\n location: this.getHostElement(),\n });\n\n this._setupCloseOnNavigation();\n\n this.renderContent();\n }\n\n /**\n * Subscribes to router navigation events so the popup is closed automatically\n * when the user navigates to another route. Enabled by default; disable via\n * `closeOnNavigation: false` in the popup config.\n * @ignore\n */\n private _setupCloseOnNavigation() {\n if (!this._router) return;\n if (this.__config__()?.closeOnNavigation === false) return;\n\n this._router.events\n .pipe(\n filter((event): event is NavigationStart => event instanceof NavigationStart),\n takeUntilDestroyed(this._destroyRef),\n )\n .subscribe(() => {\n this.close();\n });\n }\n\n /** @ignore */\n private async renderContent() {\n const content = this.__content__();\n const config = this.__config__();\n\n if (!content) {\n this.loadingService.hide(this._loadingId);\n return;\n }\n\n if (content instanceof TemplateRef) {\n // Render template using ViewContainerRef (supports context)\n this.contentContainerRef.createEmbeddedView(content, {\n $implicit: config?.data,\n ref: this,\n });\n this.handleContentRendered();\n } else if (typeof content === 'function') {\n // Render component\n const componentRef = this.componentService.createFromComponent(content as AXComponentType<unknown>);\n this._componentRef = componentRef;\n\n // Expose component instance to the popup ref\n const popupRef = this.__popupRef__();\n if (popupRef) {\n popupRef.componentInstance = componentRef.instance;\n }\n\n // Get component input definitions to check before setting inputs\n const inputDefs = (componentRef.componentType as unknown as { ɵcmp?: { inputs?: Record<string, unknown> } })?.ɵcmp\n ?.inputs;\n\n // Set data inputs (only if the component has the input defined)\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 // Set popup reference (only if the component has this input)\n if (inputDefs && '__popup__' in inputDefs) {\n componentRef.setInput('__popup__', this.__popupRef__());\n }\n\n // Move component to container\n const hostElement = componentRef.location.nativeElement;\n this.contentContainerEl.nativeElement.appendChild(hostElement);\n\n // Subscribe to close event if available\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) return;\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 = content.querySelector<HTMLDivElement>(':scope > ax-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 this.loadingService.hide(this._loadingId);\n this.cdr.markForCheck();\n }\n\n /** @ignore */\n @HostListener('keydown.escape')\n onKeydownHandler() {\n const focusedOrHasFocused = this.getHostElement().matches(':focus-within');\n if (this.__config__()?.closeButton && focusedOrHasFocused) {\n this.close();\n }\n }\n\n /** @ignore */\n protected _handleCloseClick() {\n this.close();\n }\n\n /** @ignore */\n ngOnDestroy() {\n this.loadingService.hide(this._loadingId);\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 * @param {unknown} [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 * Sets inputs on the content component.\n * @param values - Object containing input values to set\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 * @param title - The new 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\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 class=\"ax-popup-wrapper\" aria-modal=\"true\" axFocusTrap>\n <div\n class=\"ax-popup ax-popup-{{ __config__()?.size || 'md' }}\"\n tabindex=\"0\"\n [class.ax-popup-dragging]=\"isDragging()\"\n [style.position]=\"dragOffset().x || dragOffset().y ? 'fixed' : null\"\n [style.left.px]=\"dragOffset().x || null\"\n [style.top.px]=\"dragOffset().y || null\"\n [style.transform]=\"dragOffset().x || dragOffset().y ? 'none' : null\"\n >\n <div\n class=\"ax-popup-header-container\"\n [class.ax-popup-draggable]=\"__config__()?.draggable\"\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 @if (__config__()?.closeButton) {\n <ax-close-button tabindex=\"1\" (click)=\"_handleCloseClick()\"></ax-close-button>\n }\n </div>\n }\n </div>\n <div class=\"ax-popup-main-container ax-loading-container\">\n <div class=\"ax-popup-body-container\" #contentContainer></div>\n <div class=\"ax-popup-footer-container\"></div>\n </div>\n </div>\n</div>\n","import { AXComponentInputs, AXComponentType } from '@acorex/core/components';\nimport { Directive, input, StaticProvider, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport type AXPopupContentType = TemplateRef<unknown> | AXComponentType<unknown>;\n\nexport type AXPopupSizeType = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full' | 'fit';\n\nexport interface AXPopupConfig {\n title?: string;\n closeButton?: boolean;\n header?: boolean;\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 viewContainerRef?: ViewContainerRef;\n providers?: StaticProvider[];\n panelClass?: string[];\n direction?: 'rtl' | 'ltr';\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 /** 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}\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 bringToFront() {\n this.__popup__().bringToFront();\n }\n}\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 let config: AXPopupConfig = {\n closeButton: true,\n header: true,\n size: 'md',\n maximizable: false,\n draggable: true,\n hasBackdrop: true,\n closeOnBackdropClick: false,\n data: {},\n closeOnNavigation: true,\n };\n if (typeof arg2 === 'string') {\n config.title = arg2;\n } else {\n config = Object.assign(config, arg2);\n }\n\n const promise = new AXComponentClosedPromise((resolve) => {\n this.openInternal(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 with the specified content and configuration.\n * @param content - Component or template to display\n * @param config - Configuration options for the popup\n * @returns Promise<AXPopupRef> - Reference to the opened popup\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 bringToFront: () => {\n this.bringToFront(randomId);\n },\n onClose,\n };\n\n // Build panel classes\n const panelClasses = ['ax-popup-overlay'];\n if (config.panelClass) {\n panelClasses.push(...config.panelClass);\n }\n\n const ref = await this.overlayService.create(AXPopupComponent, {\n backdrop: {\n enabled: config.hasBackdrop ?? true,\n background: true,\n closeOnClick: config.closeOnBackdropClick ?? false,\n },\n panelClass: panelClasses,\n inputs: {\n __content__: content,\n __config__: config,\n __popupRef__: returnRef,\n __id__: randomId,\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 * @param id - The popup ID to close\n * @param data - Optional data to pass to the close event\n */\n close<TResult = any>(id: number, data?: TResult): void {\n const ref = this.popupList.get(id);\n if (!ref) return;\n ref.popup.onClose.next(data);\n ref.popup.onClose.complete();\n ref.overlay.dispose();\n this.popupList.delete(id);\n }\n\n /**\n * Sets input values for a popup by its ID.\n * @param id - The popup ID\n * @param values - Object containing input values to set\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 * @param id - The popup ID\n * @param title - The new title\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 /**\n * Brings a popup to the front of all other overlays.\n * @param id - The popup ID to bring to front\n */\n bringToFront(id: number): void {\n const ref = this.popupList.get(id);\n if (!ref) return;\n ref.overlay.bringToFront();\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 { AXPopupComponent } from './popup.component';\nimport { AXPopupService } from './popup.service';\n\nconst COMPONENT = [AXPopupComponent];\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.component.ts","../../../../packages/components/popup/src/lib/popup.component.html","../../../../packages/components/popup/src/lib/popup.interface.ts","../../../../packages/components/popup/src/lib/popup.service.ts","../../../../packages/components/popup/src/lib/popup.module.ts","../../../../packages/components/popup/src/acorex-components-popup.ts"],"sourcesContent":["import { AXPlatform } from '@acorex/core/platform';\nimport {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n DestroyRef,\n HostListener,\n inject,\n input,\n NgZone,\n OnDestroy,\n OnInit,\n signal,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationStart, Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\n\nimport { AXClosableComponent, AXComponent, AXComponentClosing, MXBaseComponent } from '@acorex/cdk/common';\nimport { AXFocusTrapDirective } from '@acorex/cdk/focus-trap';\nimport { AXDecoratorCloseButtonComponent } from '@acorex/components/decorators';\nimport { AXLoadingService } from '@acorex/components/loading';\nimport { AXComponentInputs, AXComponentService, AXComponentType } from '@acorex/core/components';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { AXPopupConfig, AXPopupContentType, AXPopupRef } 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.compiled.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: AXClosableComponent, useExisting: AXPopupComponent },\n { provide: AXComponent, useExisting: AXPopupComponent },\n ],\n imports: [AXDecoratorCloseButtonComponent, AsyncPipe, AXTranslatorPipe, AXFocusTrapDirective],\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 _router = inject(Router, { optional: true });\n private _destroyRef = inject(DestroyRef);\n\n @ViewChild('contentContainer', { read: ViewContainerRef, static: true })\n private contentContainerRef: ViewContainerRef;\n\n @ViewChild('contentContainer', { static: true })\n private contentContainerEl: { nativeElement: HTMLElement };\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;\n\n /** @ignore */\n private _componentRef: ComponentRef<unknown> | null = 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 /** @ignore */\n override ngOnInit() {\n super.ngOnInit();\n\n const config = this.__config__();\n if (this._platform.is('SM')) {\n // Disable dragging on small screens\n if (config) {\n config.draggable = false;\n }\n }\n\n this.title.set(config?.title ?? '');\n\n this._loadingId = this.loadingService.show({\n location: this.getHostElement(),\n });\n\n this._setupCloseOnNavigation();\n\n this.renderContent();\n }\n\n /**\n * Subscribes to router navigation events so the popup is closed automatically\n * when the user navigates to another route. Enabled by default; disable via\n * `closeOnNavigation: false` in the popup config.\n * @ignore\n */\n private _setupCloseOnNavigation() {\n if (!this._router) return;\n if (this.__config__()?.closeOnNavigation === false) return;\n\n this._router.events\n .pipe(\n filter((event): event is NavigationStart => event instanceof NavigationStart),\n takeUntilDestroyed(this._destroyRef),\n )\n .subscribe(() => {\n this.close();\n });\n }\n\n /** @ignore */\n private async renderContent() {\n const content = this.__content__();\n const config = this.__config__();\n\n if (!content) {\n this.loadingService.hide(this._loadingId);\n return;\n }\n\n if (content instanceof TemplateRef) {\n // Render template using ViewContainerRef (supports context)\n this.contentContainerRef.createEmbeddedView(content, {\n $implicit: config?.data,\n ref: this,\n });\n this.handleContentRendered();\n } else if (typeof content === 'function') {\n // Render component\n const componentRef = this.componentService.createFromComponent(content as AXComponentType<unknown>);\n this._componentRef = componentRef;\n\n // Expose component instance to the popup ref\n const popupRef = this.__popupRef__();\n if (popupRef) {\n popupRef.componentInstance = componentRef.instance;\n }\n\n // Get component input definitions to check before setting inputs\n const inputDefs = (componentRef.componentType as unknown as { ɵcmp?: { inputs?: Record<string, unknown> } })?.ɵcmp\n ?.inputs;\n\n // Set data inputs (only if the component has the input defined)\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 // Set popup reference (only if the component has this input)\n if (inputDefs && '__popup__' in inputDefs) {\n componentRef.setInput('__popup__', this.__popupRef__());\n }\n\n // Move component to container\n const hostElement = componentRef.location.nativeElement;\n this.contentContainerEl.nativeElement.appendChild(hostElement);\n\n // Subscribe to close event if available\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) return;\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 = content.querySelector<HTMLDivElement>(':scope > ax-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 this.loadingService.hide(this._loadingId);\n this.cdr.markForCheck();\n }\n\n /** @ignore */\n @HostListener('keydown.escape')\n onKeydownHandler() {\n const focusedOrHasFocused = this.getHostElement().matches(':focus-within');\n if (this.__config__()?.closeButton && focusedOrHasFocused) {\n this.close();\n }\n }\n\n /** @ignore */\n protected _handleCloseClick() {\n this.close();\n }\n\n /** @ignore */\n ngOnDestroy() {\n this.loadingService.hide(this._loadingId);\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 * @param {unknown} [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 * Sets inputs on the content component.\n * @param values - Object containing input values to set\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 * @param title - The new 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\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 class=\"ax-popup-wrapper\" aria-modal=\"true\" axFocusTrap>\n <div\n class=\"ax-popup ax-popup-{{ __config__()?.size || 'md' }}\"\n tabindex=\"0\"\n [class.ax-popup-dragging]=\"isDragging()\"\n [style.position]=\"dragOffset().x || dragOffset().y ? 'fixed' : null\"\n [style.left.px]=\"dragOffset().x || null\"\n [style.top.px]=\"dragOffset().y || null\"\n [style.transform]=\"dragOffset().x || dragOffset().y ? 'none' : null\"\n >\n <div\n class=\"ax-popup-header-container\"\n [class.ax-popup-draggable]=\"__config__()?.draggable\"\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 @if (__config__()?.closeButton) {\n <ax-close-button tabindex=\"1\" (click)=\"_handleCloseClick()\"></ax-close-button>\n }\n </div>\n }\n </div>\n <div class=\"ax-popup-main-container ax-loading-container\">\n <div class=\"ax-popup-body-container\" #contentContainer></div>\n <div class=\"ax-popup-footer-container\"></div>\n </div>\n </div>\n</div>\n","import { AXComponentInputs, AXComponentType } from '@acorex/core/components';\nimport { Directive, input, StaticProvider, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport type AXPopupContentType = TemplateRef<unknown> | AXComponentType<unknown>;\n\nexport type AXPopupSizeType = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full' | 'fit';\n\nexport interface AXPopupConfig {\n title?: string;\n closeButton?: boolean;\n header?: boolean;\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 viewContainerRef?: ViewContainerRef;\n providers?: StaticProvider[];\n panelClass?: string[];\n direction?: 'rtl' | 'ltr';\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 /** 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}\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 bringToFront() {\n this.__popup__().bringToFront();\n }\n}\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 let config: AXPopupConfig = {\n closeButton: true,\n header: true,\n size: 'md',\n maximizable: false,\n draggable: true,\n hasBackdrop: true,\n closeOnBackdropClick: false,\n data: {},\n closeOnNavigation: true,\n };\n if (typeof arg2 === 'string') {\n config.title = arg2;\n } else {\n config = Object.assign(config, arg2);\n }\n\n const promise = new AXComponentClosedPromise((resolve) => {\n this.openInternal(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 with the specified content and configuration.\n * @param content - Component or template to display\n * @param config - Configuration options for the popup\n * @returns Promise<AXPopupRef> - Reference to the opened popup\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 bringToFront: () => {\n this.bringToFront(randomId);\n },\n onClose,\n };\n\n // Build panel classes\n const panelClasses = ['ax-popup-overlay'];\n if (config.panelClass) {\n panelClasses.push(...config.panelClass);\n }\n\n const ref = await this.overlayService.create(AXPopupComponent, {\n backdrop: {\n enabled: config.hasBackdrop ?? true,\n background: true,\n closeOnClick: config.closeOnBackdropClick ?? false,\n },\n panelClass: panelClasses,\n inputs: {\n __content__: content,\n __config__: config,\n __popupRef__: returnRef,\n __id__: randomId,\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 * @param id - The popup ID to close\n * @param data - Optional data to pass to the close event\n */\n close<TResult = any>(id: number, data?: TResult): void {\n const ref = this.popupList.get(id);\n if (!ref) return;\n ref.popup.onClose.next(data);\n ref.popup.onClose.complete();\n ref.overlay.dispose();\n this.popupList.delete(id);\n }\n\n /**\n * Sets input values for a popup by its ID.\n * @param id - The popup ID\n * @param values - Object containing input values to set\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 * @param id - The popup ID\n * @param title - The new title\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 /**\n * Brings a popup to the front of all other overlays.\n * @param id - The popup ID to bring to front\n */\n bringToFront(id: number): void {\n const ref = this.popupList.get(id);\n if (!ref) return;\n ref.overlay.bringToFront();\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 { AXPopupComponent } from './popup.component';\nimport { AXPopupService } from './popup.service';\n\nconst COMPONENT = [AXPopupComponent];\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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"}
@@ -204,7 +204,7 @@ class AXQueryBuilderComponent {
204
204
  return item.id;
205
205
  }
206
206
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXQueryBuilderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
207
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXQueryBuilderComponent, isStandalone: true, selector: "ax-query-builder", inputs: { columnData: { classPropertyName: "columnData", publicName: "columnData", isSignal: true, isRequired: true, transformFunction: null }, queryData: { classPropertyName: "queryData", publicName: "queryData", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { queryData: "queryDataChange", onValueChanged: "onValueChanged" }, providers: [{ provide: AXComponent, useExisting: AXQueryBuilderComponent }], viewQueries: [{ propertyName: "selectBoxRef", first: true, predicate: ["reRender"], descendants: true, isSignal: true }], ngImport: i0, template: "@for (item of queryData(); track trackById(i, item); let i = $index) {\n <ng-container [ngTemplateOutletContext]=\"{ $implicit: item, index: i }\" [ngTemplateOutlet]=\"query\"> </ng-container>\n}\n\n<ng-template #query let-item let-index=\"index\">\n @if (item.condition) {\n <div class=\"ax-recursive-container\">\n <div class=\"ax-add-condition-container\">\n <ax-button-group\n selection=\"single\"\n (selectedButtonChange)=\"conditionHandler($event, item)\"\n color=\"primary\"\n class=\"ax-sm\"\n >\n <ax-button-group-item data=\"and\" [selected]=\"item.condition === 'and'\" text=\"And\"> </ax-button-group-item>\n <ax-button-group-item data=\"or\" [selected]=\"item.condition === 'or'\" text=\"Or\"> </ax-button-group-item>\n </ax-button-group>\n <ax-button\n (onClick)=\"addRulesHandler(item)\"\n class=\"ax-sm\"\n color=\"primary\"\n look=\"blank\"\n text=\"Add Rules\"\n ></ax-button>\n <ax-button\n (onClick)=\"addGroupHandler(item)\"\n class=\"ax-sm\"\n color=\"primary\"\n look=\"blank\"\n text=\"Add Group\"\n ></ax-button>\n @if (index !== 0) {\n <ax-button look=\"blank\" (onClick)=\"removeGroupHandler(item)\" class=\"ax-sm\" color=\"danger\">\n <ax-icon icon=\"ax-icon ax-icon-trash\"></ax-icon>\n </ax-button>\n }\n </div>\n\n @for (child of item.rules; track trackById($index, child)) {\n <ng-container [ngTemplateOutletContext]=\"{ $implicit: child }\" [ngTemplateOutlet]=\"query\"> </ng-container>\n }\n </div>\n } @else {\n <div class=\"ax-rules-container\">\n <div class=\"ax-input-rules-container\">\n <ax-select-box\n (onValueChanged)=\"columnDataHandler($event, item)\"\n valueField=\"field\"\n textField=\"label\"\n [dataSource]=\"columnData()\"\n placeholder=\"Select Field\"\n >\n </ax-select-box>\n\n <ax-select-box\n #reRender\n [disabled]=\"!item.field\"\n name=\"selectBoxOperator\"\n (onValueChanged)=\"operatorDataHandler($event, item)\"\n [dataSource]=\"ds\"\n placeholder=\"Select Operator\"\n >\n </ax-select-box>\n\n @switch (item.type) {\n @case ('boolean') {\n <div class=\"ax-boolean-value-input-container\">\n @for (boolean of item.inputValues; track $index) {\n <label>{{ boolean }}</label>\n <input name=\"same\" [value]=\"boolean\" (input)=\"booleanValueHandler($event, item)\" type=\"radio\" />\n }\n </div>\n }\n @case ('string') {\n <ax-text-box (onValueChanged)=\"stringValueHandler($event, item)\">\n <ax-clear-button></ax-clear-button>\n </ax-text-box>\n }\n @case ('number') {\n <ax-number-box (onValueChanged)=\"numberValueHandler($event, item)\"></ax-number-box>\n }\n @case ('date') {\n <ax-datetime-box format=\"yyyy/MM/dd\" (onValueChanged)=\"dateValueHandler($event, item)\">\n <ax-clear-button></ax-clear-button>\n </ax-datetime-box>\n }\n }\n </div>\n <ax-button (onClick)=\"removeRulesHandler(item)\" look=\"blank\" class=\"ax-md\" color=\"danger\">\n <ax-icon icon=\"ax-icon ax-icon-trash\"></ax-icon>\n </ax-button>\n </div>\n }\n</ng-template>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid}}}@layer components{ax-query-builder{border-radius:var(--radius-lg,.5rem);border-style:var(--tw-border-style);--tw-border-style:solid;border-style:solid;border-width:1px;border-color:var(--color-border-default);width:100%;padding:calc(var(--spacing,.25rem) * 4);display:block}ax-query-builder .ax-add-condition-container{margin-block:calc(var(--spacing,.25rem) * 2);gap:calc(var(--spacing,.25rem) * 2);display:flex}ax-query-builder .ax-recursive-container{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding-inline-start:calc(var(--spacing,.25rem) * 4)}ax-query-builder .ax-rules-container{margin-block:calc(var(--spacing,.25rem) * 2);align-items:center;display:flex}ax-query-builder .ax-rules-container .ax-input-rules-container{align-items:center;gap:calc(var(--spacing,.25rem) * 2);width:100%;display:flex}ax-query-builder .ax-rules-container:not(:last-child){margin-bottom:calc(var(--spacing,.25rem) * 2)}ax-query-builder .ax-boolean-value-input-container{align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}\n/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AXButtonGroupComponent, selector: "ax-button-group", inputs: ["disabled", "fitParent", "color", "look", "class", "selection"], outputs: ["onBlur", "onFocus", "disabledChange", "colorChange", "lookChange", "onClick", "selectionChange", "selectedButtonChange"] }, { kind: "component", type: AXButtonGroupItemComponent, selector: "ax-button-group-item", inputs: ["disabled", "color", "text", "class", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange", "classChange"] }, { kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "disabledField", "textTemplate", "selectedItems", "isItemTruncated", "showItemTooltip", "itemHeight", "maxVisibleItems", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed", "onItemSelected", "onItemClick"] }, { kind: "component", type: AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "maskPattern", "customTokens", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "onMaskChanged"] }, { kind: "component", type: AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: AXNumberBoxComponent, selector: "ax-number-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "minValue", "maxValue", "showSpinButtons", "thousandsSeparator", "decimals", "changeOnScroll", "step"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "thousandsSeparatorChange"] }, { kind: "component", type: AXDateTimeBoxComponent, selector: "ax-datetime-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "depth", "id", "type", "look", "holidayDates", "allowTyping", "picker", "calendar", "weekend", "weekdays", "calendarLook", "format"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "onOpened", "onClosed", "readonlyChange", "disabledChange", "formatChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
207
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXQueryBuilderComponent, isStandalone: true, selector: "ax-query-builder", inputs: { columnData: { classPropertyName: "columnData", publicName: "columnData", isSignal: true, isRequired: true, transformFunction: null }, queryData: { classPropertyName: "queryData", publicName: "queryData", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { queryData: "queryDataChange", onValueChanged: "onValueChanged" }, providers: [{ provide: AXComponent, useExisting: AXQueryBuilderComponent }], viewQueries: [{ propertyName: "selectBoxRef", first: true, predicate: ["reRender"], descendants: true, isSignal: true }], ngImport: i0, template: "@for (item of queryData(); track trackById(i, item); let i = $index) {\n <ng-container [ngTemplateOutletContext]=\"{ $implicit: item, index: i }\" [ngTemplateOutlet]=\"query\"> </ng-container>\n}\n\n<ng-template #query let-item let-index=\"index\">\n @if (item.condition) {\n <div class=\"ax-recursive-container\">\n <div class=\"ax-add-condition-container\">\n <ax-button-group\n selection=\"single\"\n (selectedButtonChange)=\"conditionHandler($event, item)\"\n color=\"primary\"\n class=\"ax-sm\"\n >\n <ax-button-group-item data=\"and\" [selected]=\"item.condition === 'and'\" text=\"And\"> </ax-button-group-item>\n <ax-button-group-item data=\"or\" [selected]=\"item.condition === 'or'\" text=\"Or\"> </ax-button-group-item>\n </ax-button-group>\n <ax-button\n (onClick)=\"addRulesHandler(item)\"\n class=\"ax-sm\"\n color=\"primary\"\n look=\"blank\"\n text=\"Add Rules\"\n ></ax-button>\n <ax-button\n (onClick)=\"addGroupHandler(item)\"\n class=\"ax-sm\"\n color=\"primary\"\n look=\"blank\"\n text=\"Add Group\"\n ></ax-button>\n @if (index !== 0) {\n <ax-button look=\"blank\" (onClick)=\"removeGroupHandler(item)\" class=\"ax-sm\" color=\"danger\">\n <ax-icon icon=\"ax-icon ax-icon-trash\"></ax-icon>\n </ax-button>\n }\n </div>\n\n @for (child of item.rules; track trackById($index, child)) {\n <ng-container [ngTemplateOutletContext]=\"{ $implicit: child }\" [ngTemplateOutlet]=\"query\"> </ng-container>\n }\n </div>\n } @else {\n <div class=\"ax-rules-container\">\n <div class=\"ax-input-rules-container\">\n <ax-select-box\n (onValueChanged)=\"columnDataHandler($event, item)\"\n valueField=\"field\"\n textField=\"label\"\n [dataSource]=\"columnData()\"\n placeholder=\"Select Field\"\n >\n </ax-select-box>\n\n <ax-select-box\n #reRender\n [disabled]=\"!item.field\"\n name=\"selectBoxOperator\"\n (onValueChanged)=\"operatorDataHandler($event, item)\"\n [dataSource]=\"ds\"\n placeholder=\"Select Operator\"\n >\n </ax-select-box>\n\n @switch (item.type) {\n @case ('boolean') {\n <div class=\"ax-boolean-value-input-container\">\n @for (boolean of item.inputValues; track $index) {\n <label>{{ boolean }}</label>\n <input name=\"same\" [value]=\"boolean\" (input)=\"booleanValueHandler($event, item)\" type=\"radio\" />\n }\n </div>\n }\n @case ('string') {\n <ax-text-box (onValueChanged)=\"stringValueHandler($event, item)\">\n <ax-clear-button></ax-clear-button>\n </ax-text-box>\n }\n @case ('number') {\n <ax-number-box (onValueChanged)=\"numberValueHandler($event, item)\"></ax-number-box>\n }\n @case ('date') {\n <ax-datetime-box format=\"yyyy/MM/dd\" (onValueChanged)=\"dateValueHandler($event, item)\">\n <ax-clear-button></ax-clear-button>\n </ax-datetime-box>\n }\n }\n </div>\n <ax-button (onClick)=\"removeRulesHandler(item)\" look=\"blank\" class=\"ax-md\" color=\"danger\">\n <ax-icon icon=\"ax-icon ax-icon-trash\"></ax-icon>\n </ax-button>\n </div>\n }\n</ng-template>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid}}}@layer components{ax-query-builder{border-radius:var(--radius-lg,.5rem);border-style:var(--tw-border-style);--tw-border-style:solid;border-style:solid;border-width:1px;border-color:var(--color-border-default);width:100%;padding:calc(var(--spacing,.25rem) * 4);display:block}ax-query-builder .ax-add-condition-container{margin-block:calc(var(--spacing,.25rem) * 2);gap:calc(var(--spacing,.25rem) * 2);display:flex}ax-query-builder .ax-recursive-container{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding-inline-start:calc(var(--spacing,.25rem) * 4)}ax-query-builder .ax-rules-container{margin-block:calc(var(--spacing,.25rem) * 2);align-items:center;display:flex}ax-query-builder .ax-rules-container .ax-input-rules-container{align-items:center;gap:calc(var(--spacing,.25rem) * 2);width:100%;display:flex}ax-query-builder .ax-rules-container:not(:last-child){margin-bottom:calc(var(--spacing,.25rem) * 2)}ax-query-builder .ax-boolean-value-input-container{align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}\n/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AXButtonGroupComponent, selector: "ax-button-group", inputs: ["disabled", "fitParent", "color", "look", "class", "selection"], outputs: ["onBlur", "onFocus", "disabledChange", "colorChange", "lookChange", "onClick", "selectionChange", "selectedButtonChange"] }, { kind: "component", type: AXButtonGroupItemComponent, selector: "ax-button-group-item", inputs: ["disabled", "color", "text", "class", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange", "classChange"] }, { kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "disabledField", "textTemplate", "selectedItems", "isItemTruncated", "showItemTooltip", "itemHeight", "maxVisibleItems", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed", "onItemSelected", "onItemClick"] }, { kind: "component", type: AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "maskPattern", "customTokens", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "onMaskChanged"] }, { kind: "component", type: AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: AXNumberBoxComponent, selector: "ax-number-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "minValue", "maxValue", "showSpinButtons", "thousandsSeparator", "decimals", "changeOnScroll", "step"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "thousandsSeparatorChange"] }, { kind: "component", type: AXDateTimeBoxComponent, selector: "ax-datetime-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "depth", "id", "type", "look", "holidayDates", "allowTyping", "picker", "calendar", "weekend", "weekdays", "calendarLook", "boxLook", "format"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "onOpened", "onClosed", "readonlyChange", "disabledChange", "formatChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
208
208
  }
209
209
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXQueryBuilderComponent, decorators: [{
210
210
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-query-builder.mjs","sources":["../../../../packages/components/query-builder/src/lib/query-builder.component.ts","../../../../packages/components/query-builder/src/lib/query-builder.component.html","../../../../packages/components/query-builder/src/lib/query-builder.module.ts","../../../../packages/components/query-builder/src/acorex-components-query-builder.ts"],"sourcesContent":["// prettier-ignore\nimport { AXButtonGroupComponent,AXButtonGroupItemComponent } from '@acorex/components/button-group';\n// prettier-ignore\nimport { AXComponent,AXDataSource,AXValueChangedEvent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDateTimeBoxComponent } from '@acorex/components/datetime-box';\nimport { AXDecoratorClearButtonComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXNumberBoxComponent } from '@acorex/components/number-box';\nimport { AXSelectBoxComponent } from '@acorex/components/select-box';\nimport { AXTextBoxComponent } from '@acorex/components/text-box';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n effect,\n input,\n model,\n output,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'ax-query-builder',\n templateUrl: './query-builder.component.html',\n styleUrls: ['./query-builder.component.compiled.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgTemplateOutlet,\n AXButtonGroupComponent,\n AXButtonGroupItemComponent,\n AXButtonComponent,\n AXDecoratorIconComponent,\n AXSelectBoxComponent,\n AXTextBoxComponent,\n AXDecoratorClearButtonComponent,\n AXNumberBoxComponent,\n AXDateTimeBoxComponent,\n ],\n providers: [{ provide: AXComponent, useExisting: AXQueryBuilderComponent }],\n})\nexport class AXQueryBuilderComponent {\n readonly columnData = input.required<any[]>();\n queryData = model.required<any[]>();\n onValueChanged = output<any[]>();\n protected selectBoxRef = viewChild<AXSelectBoxComponent>('reRender');\n protected selectedItem = signal<any>(null);\n\n ds = new AXDataSource({\n load: async (e) => {\n return {\n items: this.operators[this.selectedItem().type].slice(e.skip, (e.skip ?? 0) + (e.take ?? 0)),\n total: this.operators[this.selectedItem().type].length,\n };\n },\n key: 'id',\n pageSize: 20,\n });\n\n protected operators = {\n string: [\n 'Starts With',\n 'Does Not Start With',\n 'Ends With',\n 'Does Not End With',\n 'Contains',\n 'Does Not Contain',\n 'Equal',\n 'Not Equal',\n 'In',\n 'Not In',\n 'Is Empty',\n 'Is Not Empty',\n 'Is Null',\n 'Is Not Null',\n ],\n boolean: ['Equal', 'Not Equal'],\n number: [\n 'Equal',\n 'Greater Than Or Equal',\n 'Greater Than',\n 'Between',\n 'Less Than',\n 'Not Between',\n 'Less Than Or Equal',\n 'Not Equal',\n 'In',\n 'Not In',\n 'Is Null',\n 'Is Not Null',\n ],\n date: [\n 'Equal',\n 'Greater Than',\n 'Greater Than Or Equal',\n 'Less Than',\n 'Less Than Or Equal',\n 'Not Equal',\n 'Between',\n 'Not Between',\n ],\n };\n\n #eff = effect(() => {\n this.onValueChanged.emit(this.queryData());\n });\n\n protected conditionHandler(e: AXButtonGroupItemComponent, i) {\n this.queryData.update((prev) => {\n const copy = [...prev];\n const find = this.recursiveFind(copy, (item) => item.id === i.id, 'rules');\n find.condition = e.data;\n return copy;\n });\n }\n\n protected columnDataHandler(e: AXValueChangedEvent<any>, i) {\n this.selectedItem.set(i);\n const selectedItem = e.component.selectedItems[0];\n\n this.queryData.update((prev) => {\n const copy = [...prev];\n const find = this.recursiveFind(copy, (item) => item.id === i.id, 'rules');\n find.label = selectedItem.label;\n find.field = selectedItem.field;\n find.type = selectedItem.type;\n if (selectedItem.values) find.inputValues = selectedItem.values;\n return copy;\n });\n\n this.selectBoxRef().refresh();\n this.selectBoxRef().reset();\n }\n\n protected operatorDataHandler(e, i) {\n this.queryData.update((prev) => {\n const copy = [...prev];\n const find = this.recursiveFind(copy, (item) => item.id === i.id, 'rules');\n find.operator = e.value;\n return copy;\n });\n }\n\n private recursiveFind(array, predicate, nestedKey) {\n for (const item of array) {\n if (predicate(item)) {\n return item;\n }\n if (Array.isArray(item[nestedKey])) {\n const found = this.recursiveFind(item[nestedKey], predicate, nestedKey);\n if (found) {\n return found;\n }\n }\n }\n return null;\n }\n\n private recursiveRemove(array: any[], predicate: (item: any) => boolean, nestedKey: string): any[] {\n return array\n .filter((item) => !predicate(item))\n .map((item) => ({\n ...item,\n [nestedKey]: Array.isArray(item[nestedKey])\n ? this.recursiveRemove(item[nestedKey], predicate, nestedKey)\n : item[nestedKey],\n }));\n }\n\n protected addRulesHandler(i) {\n this.queryData.update((prev) => {\n const copy = [...prev];\n const find = this.recursiveFind(copy, (item) => item.id === i.id, 'rules');\n find.rules.push({\n id: Math.random(),\n });\n return copy;\n });\n }\n\n protected addGroupHandler(i) {\n this.queryData.update((prev) => {\n const copy = [...prev];\n const find = this.recursiveFind(copy, (item) => item.id === i.id, 'rules');\n find.rules.push({\n id: Math.random(),\n condition: 'and',\n rules: [{ id: Math.random() }],\n });\n return copy;\n });\n }\n\n protected booleanValueHandler(e, i) {\n this.queryData.update((prev) => {\n const copy = [...prev];\n const find = this.recursiveFind(copy, (item) => item.id === i.id, 'rules');\n find.value = e.target.value;\n return copy;\n });\n }\n\n protected stringValueHandler(e, i) {\n this.queryData.update((prev) => {\n const copy = [...prev];\n const find = this.recursiveFind(copy, (item) => item.id === i.id, 'rules');\n find.value = e.value;\n return copy;\n });\n }\n\n protected numberValueHandler(e, i) {\n this.queryData.update((prev) => {\n const copy = [...prev];\n const find = this.recursiveFind(copy, (item) => item.id === i.id, 'rules');\n find.value = e.value;\n return copy;\n });\n }\n\n protected dateValueHandler(e, i) {\n this.queryData.update((prev) => {\n const copy = [...prev];\n const find = this.recursiveFind(copy, (item) => item.id === i.id, 'rules');\n find.value = e.value;\n return copy;\n });\n }\n\n protected removeGroupHandler(i) {\n this.queryData.update((prev) => {\n const copy = [...prev];\n const filter = this.recursiveRemove(copy, (item) => item.id === i.id, 'rules');\n return filter;\n });\n }\n\n protected removeRulesHandler(i) {\n this.queryData.update((prev) => {\n const copy = [...prev];\n const filter = this.recursiveRemove(copy, (item) => item.id === i.id, 'rules');\n return filter;\n });\n }\n\n protected trackById(_: number, item: any): number {\n return item.id;\n }\n}\n","@for (item of queryData(); track trackById(i, item); let i = $index) {\n <ng-container [ngTemplateOutletContext]=\"{ $implicit: item, index: i }\" [ngTemplateOutlet]=\"query\"> </ng-container>\n}\n\n<ng-template #query let-item let-index=\"index\">\n @if (item.condition) {\n <div class=\"ax-recursive-container\">\n <div class=\"ax-add-condition-container\">\n <ax-button-group\n selection=\"single\"\n (selectedButtonChange)=\"conditionHandler($event, item)\"\n color=\"primary\"\n class=\"ax-sm\"\n >\n <ax-button-group-item data=\"and\" [selected]=\"item.condition === 'and'\" text=\"And\"> </ax-button-group-item>\n <ax-button-group-item data=\"or\" [selected]=\"item.condition === 'or'\" text=\"Or\"> </ax-button-group-item>\n </ax-button-group>\n <ax-button\n (onClick)=\"addRulesHandler(item)\"\n class=\"ax-sm\"\n color=\"primary\"\n look=\"blank\"\n text=\"Add Rules\"\n ></ax-button>\n <ax-button\n (onClick)=\"addGroupHandler(item)\"\n class=\"ax-sm\"\n color=\"primary\"\n look=\"blank\"\n text=\"Add Group\"\n ></ax-button>\n @if (index !== 0) {\n <ax-button look=\"blank\" (onClick)=\"removeGroupHandler(item)\" class=\"ax-sm\" color=\"danger\">\n <ax-icon icon=\"ax-icon ax-icon-trash\"></ax-icon>\n </ax-button>\n }\n </div>\n\n @for (child of item.rules; track trackById($index, child)) {\n <ng-container [ngTemplateOutletContext]=\"{ $implicit: child }\" [ngTemplateOutlet]=\"query\"> </ng-container>\n }\n </div>\n } @else {\n <div class=\"ax-rules-container\">\n <div class=\"ax-input-rules-container\">\n <ax-select-box\n (onValueChanged)=\"columnDataHandler($event, item)\"\n valueField=\"field\"\n textField=\"label\"\n [dataSource]=\"columnData()\"\n placeholder=\"Select Field\"\n >\n </ax-select-box>\n\n <ax-select-box\n #reRender\n [disabled]=\"!item.field\"\n name=\"selectBoxOperator\"\n (onValueChanged)=\"operatorDataHandler($event, item)\"\n [dataSource]=\"ds\"\n placeholder=\"Select Operator\"\n >\n </ax-select-box>\n\n @switch (item.type) {\n @case ('boolean') {\n <div class=\"ax-boolean-value-input-container\">\n @for (boolean of item.inputValues; track $index) {\n <label>{{ boolean }}</label>\n <input name=\"same\" [value]=\"boolean\" (input)=\"booleanValueHandler($event, item)\" type=\"radio\" />\n }\n </div>\n }\n @case ('string') {\n <ax-text-box (onValueChanged)=\"stringValueHandler($event, item)\">\n <ax-clear-button></ax-clear-button>\n </ax-text-box>\n }\n @case ('number') {\n <ax-number-box (onValueChanged)=\"numberValueHandler($event, item)\"></ax-number-box>\n }\n @case ('date') {\n <ax-datetime-box format=\"yyyy/MM/dd\" (onValueChanged)=\"dateValueHandler($event, item)\">\n <ax-clear-button></ax-clear-button>\n </ax-datetime-box>\n }\n }\n </div>\n <ax-button (onClick)=\"removeRulesHandler(item)\" look=\"blank\" class=\"ax-md\" color=\"danger\">\n <ax-icon icon=\"ax-icon ax-icon-trash\"></ax-icon>\n </ax-button>\n </div>\n }\n</ng-template>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXButtonGroupModule } from '@acorex/components/button-group';\nimport { AXDateTimeBoxModule } from '@acorex/components/datetime-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXNumberBoxModule } from '@acorex/components/number-box';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXQueryBuilderComponent } from './query-builder.component';\n\nconst COMPONENT = [AXQueryBuilderComponent];\n\nconst MODULES = [\n AXButtonGroupModule,\n AXDecoratorModule,\n AXSelectBoxModule,\n AXButtonModule,\n AXTextBoxModule,\n AXNumberBoxModule,\n AXDateTimeBoxModule,\n CommonModule,\n];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXQueryBuilderModule {}\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-query-builder.mjs","sources":["../../../../packages/components/query-builder/src/lib/query-builder.component.ts","../../../../packages/components/query-builder/src/lib/query-builder.component.html","../../../../packages/components/query-builder/src/lib/query-builder.module.ts","../../../../packages/components/query-builder/src/acorex-components-query-builder.ts"],"sourcesContent":["// prettier-ignore\nimport { AXButtonGroupComponent,AXButtonGroupItemComponent } from '@acorex/components/button-group';\n// prettier-ignore\nimport { AXComponent,AXDataSource,AXValueChangedEvent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDateTimeBoxComponent } from '@acorex/components/datetime-box';\nimport { AXDecoratorClearButtonComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXNumberBoxComponent } from '@acorex/components/number-box';\nimport { AXSelectBoxComponent } from '@acorex/components/select-box';\nimport { AXTextBoxComponent } from '@acorex/components/text-box';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n effect,\n input,\n model,\n output,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'ax-query-builder',\n templateUrl: './query-builder.component.html',\n styleUrls: ['./query-builder.component.compiled.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgTemplateOutlet,\n AXButtonGroupComponent,\n AXButtonGroupItemComponent,\n AXButtonComponent,\n AXDecoratorIconComponent,\n AXSelectBoxComponent,\n AXTextBoxComponent,\n AXDecoratorClearButtonComponent,\n AXNumberBoxComponent,\n AXDateTimeBoxComponent,\n ],\n providers: [{ provide: AXComponent, useExisting: AXQueryBuilderComponent }],\n})\nexport class AXQueryBuilderComponent {\n readonly columnData = input.required<any[]>();\n queryData = model.required<any[]>();\n onValueChanged = output<any[]>();\n protected selectBoxRef = viewChild<AXSelectBoxComponent>('reRender');\n protected selectedItem = signal<any>(null);\n\n ds = new AXDataSource({\n load: async (e) => {\n return {\n items: this.operators[this.selectedItem().type].slice(e.skip, (e.skip ?? 0) + (e.take ?? 0)),\n total: this.operators[this.selectedItem().type].length,\n };\n },\n key: 'id',\n pageSize: 20,\n });\n\n protected operators = {\n string: [\n 'Starts With',\n 'Does Not Start With',\n 'Ends With',\n 'Does Not End With',\n 'Contains',\n 'Does Not Contain',\n 'Equal',\n 'Not Equal',\n 'In',\n 'Not In',\n 'Is Empty',\n 'Is Not Empty',\n 'Is Null',\n 'Is Not Null',\n ],\n boolean: ['Equal', 'Not Equal'],\n number: [\n 'Equal',\n 'Greater Than Or Equal',\n 'Greater Than',\n 'Between',\n 'Less Than',\n 'Not Between',\n 'Less Than Or Equal',\n 'Not Equal',\n 'In',\n 'Not In',\n 'Is Null',\n 'Is Not Null',\n ],\n date: [\n 'Equal',\n 'Greater Than',\n 'Greater Than Or Equal',\n 'Less Than',\n 'Less Than Or Equal',\n 'Not Equal',\n 'Between',\n 'Not Between',\n ],\n };\n\n #eff = effect(() => {\n this.onValueChanged.emit(this.queryData());\n });\n\n protected conditionHandler(e: AXButtonGroupItemComponent, i) {\n this.queryData.update((prev) => {\n const copy = [...prev];\n const find = this.recursiveFind(copy, (item) => item.id === i.id, 'rules');\n find.condition = e.data;\n return copy;\n });\n }\n\n protected columnDataHandler(e: AXValueChangedEvent<any>, i) {\n this.selectedItem.set(i);\n const selectedItem = e.component.selectedItems[0];\n\n this.queryData.update((prev) => {\n const copy = [...prev];\n const find = this.recursiveFind(copy, (item) => item.id === i.id, 'rules');\n find.label = selectedItem.label;\n find.field = selectedItem.field;\n find.type = selectedItem.type;\n if (selectedItem.values) find.inputValues = selectedItem.values;\n return copy;\n });\n\n this.selectBoxRef().refresh();\n this.selectBoxRef().reset();\n }\n\n protected operatorDataHandler(e, i) {\n this.queryData.update((prev) => {\n const copy = [...prev];\n const find = this.recursiveFind(copy, (item) => item.id === i.id, 'rules');\n find.operator = e.value;\n return copy;\n });\n }\n\n private recursiveFind(array, predicate, nestedKey) {\n for (const item of array) {\n if (predicate(item)) {\n return item;\n }\n if (Array.isArray(item[nestedKey])) {\n const found = this.recursiveFind(item[nestedKey], predicate, nestedKey);\n if (found) {\n return found;\n }\n }\n }\n return null;\n }\n\n private recursiveRemove(array: any[], predicate: (item: any) => boolean, nestedKey: string): any[] {\n return array\n .filter((item) => !predicate(item))\n .map((item) => ({\n ...item,\n [nestedKey]: Array.isArray(item[nestedKey])\n ? this.recursiveRemove(item[nestedKey], predicate, nestedKey)\n : item[nestedKey],\n }));\n }\n\n protected addRulesHandler(i) {\n this.queryData.update((prev) => {\n const copy = [...prev];\n const find = this.recursiveFind(copy, (item) => item.id === i.id, 'rules');\n find.rules.push({\n id: Math.random(),\n });\n return copy;\n });\n }\n\n protected addGroupHandler(i) {\n this.queryData.update((prev) => {\n const copy = [...prev];\n const find = this.recursiveFind(copy, (item) => item.id === i.id, 'rules');\n find.rules.push({\n id: Math.random(),\n condition: 'and',\n rules: [{ id: Math.random() }],\n });\n return copy;\n });\n }\n\n protected booleanValueHandler(e, i) {\n this.queryData.update((prev) => {\n const copy = [...prev];\n const find = this.recursiveFind(copy, (item) => item.id === i.id, 'rules');\n find.value = e.target.value;\n return copy;\n });\n }\n\n protected stringValueHandler(e, i) {\n this.queryData.update((prev) => {\n const copy = [...prev];\n const find = this.recursiveFind(copy, (item) => item.id === i.id, 'rules');\n find.value = e.value;\n return copy;\n });\n }\n\n protected numberValueHandler(e, i) {\n this.queryData.update((prev) => {\n const copy = [...prev];\n const find = this.recursiveFind(copy, (item) => item.id === i.id, 'rules');\n find.value = e.value;\n return copy;\n });\n }\n\n protected dateValueHandler(e, i) {\n this.queryData.update((prev) => {\n const copy = [...prev];\n const find = this.recursiveFind(copy, (item) => item.id === i.id, 'rules');\n find.value = e.value;\n return copy;\n });\n }\n\n protected removeGroupHandler(i) {\n this.queryData.update((prev) => {\n const copy = [...prev];\n const filter = this.recursiveRemove(copy, (item) => item.id === i.id, 'rules');\n return filter;\n });\n }\n\n protected removeRulesHandler(i) {\n this.queryData.update((prev) => {\n const copy = [...prev];\n const filter = this.recursiveRemove(copy, (item) => item.id === i.id, 'rules');\n return filter;\n });\n }\n\n protected trackById(_: number, item: any): number {\n return item.id;\n }\n}\n","@for (item of queryData(); track trackById(i, item); let i = $index) {\n <ng-container [ngTemplateOutletContext]=\"{ $implicit: item, index: i }\" [ngTemplateOutlet]=\"query\"> </ng-container>\n}\n\n<ng-template #query let-item let-index=\"index\">\n @if (item.condition) {\n <div class=\"ax-recursive-container\">\n <div class=\"ax-add-condition-container\">\n <ax-button-group\n selection=\"single\"\n (selectedButtonChange)=\"conditionHandler($event, item)\"\n color=\"primary\"\n class=\"ax-sm\"\n >\n <ax-button-group-item data=\"and\" [selected]=\"item.condition === 'and'\" text=\"And\"> </ax-button-group-item>\n <ax-button-group-item data=\"or\" [selected]=\"item.condition === 'or'\" text=\"Or\"> </ax-button-group-item>\n </ax-button-group>\n <ax-button\n (onClick)=\"addRulesHandler(item)\"\n class=\"ax-sm\"\n color=\"primary\"\n look=\"blank\"\n text=\"Add Rules\"\n ></ax-button>\n <ax-button\n (onClick)=\"addGroupHandler(item)\"\n class=\"ax-sm\"\n color=\"primary\"\n look=\"blank\"\n text=\"Add Group\"\n ></ax-button>\n @if (index !== 0) {\n <ax-button look=\"blank\" (onClick)=\"removeGroupHandler(item)\" class=\"ax-sm\" color=\"danger\">\n <ax-icon icon=\"ax-icon ax-icon-trash\"></ax-icon>\n </ax-button>\n }\n </div>\n\n @for (child of item.rules; track trackById($index, child)) {\n <ng-container [ngTemplateOutletContext]=\"{ $implicit: child }\" [ngTemplateOutlet]=\"query\"> </ng-container>\n }\n </div>\n } @else {\n <div class=\"ax-rules-container\">\n <div class=\"ax-input-rules-container\">\n <ax-select-box\n (onValueChanged)=\"columnDataHandler($event, item)\"\n valueField=\"field\"\n textField=\"label\"\n [dataSource]=\"columnData()\"\n placeholder=\"Select Field\"\n >\n </ax-select-box>\n\n <ax-select-box\n #reRender\n [disabled]=\"!item.field\"\n name=\"selectBoxOperator\"\n (onValueChanged)=\"operatorDataHandler($event, item)\"\n [dataSource]=\"ds\"\n placeholder=\"Select Operator\"\n >\n </ax-select-box>\n\n @switch (item.type) {\n @case ('boolean') {\n <div class=\"ax-boolean-value-input-container\">\n @for (boolean of item.inputValues; track $index) {\n <label>{{ boolean }}</label>\n <input name=\"same\" [value]=\"boolean\" (input)=\"booleanValueHandler($event, item)\" type=\"radio\" />\n }\n </div>\n }\n @case ('string') {\n <ax-text-box (onValueChanged)=\"stringValueHandler($event, item)\">\n <ax-clear-button></ax-clear-button>\n </ax-text-box>\n }\n @case ('number') {\n <ax-number-box (onValueChanged)=\"numberValueHandler($event, item)\"></ax-number-box>\n }\n @case ('date') {\n <ax-datetime-box format=\"yyyy/MM/dd\" (onValueChanged)=\"dateValueHandler($event, item)\">\n <ax-clear-button></ax-clear-button>\n </ax-datetime-box>\n }\n }\n </div>\n <ax-button (onClick)=\"removeRulesHandler(item)\" look=\"blank\" class=\"ax-md\" color=\"danger\">\n <ax-icon icon=\"ax-icon ax-icon-trash\"></ax-icon>\n </ax-button>\n </div>\n }\n</ng-template>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXButtonGroupModule } from '@acorex/components/button-group';\nimport { AXDateTimeBoxModule } from '@acorex/components/datetime-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXNumberBoxModule } from '@acorex/components/number-box';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXQueryBuilderComponent } from './query-builder.component';\n\nconst COMPONENT = [AXQueryBuilderComponent];\n\nconst MODULES = [\n AXButtonGroupModule,\n AXDecoratorModule,\n AXSelectBoxModule,\n AXButtonModule,\n AXTextBoxModule,\n AXNumberBoxModule,\n AXDateTimeBoxModule,\n CommonModule,\n];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXQueryBuilderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}