@acorex/components 22.0.0 → 22.0.1-next.0

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.
Files changed (149) hide show
  1. package/emoji/README.md +3 -0
  2. package/emojipicker/README.md +3 -0
  3. package/fesm2022/acorex-components-accordion.mjs +4 -4
  4. package/fesm2022/acorex-components-accordion.mjs.map +1 -1
  5. package/fesm2022/acorex-components-audio-wave.mjs +291 -267
  6. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  7. package/fesm2022/acorex-components-bubble.mjs +71 -0
  8. package/fesm2022/acorex-components-bubble.mjs.map +1 -0
  9. package/fesm2022/acorex-components-button-group.mjs +12 -5
  10. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  11. package/fesm2022/acorex-components-button.mjs +2 -2
  12. package/fesm2022/acorex-components-button.mjs.map +1 -1
  13. package/fesm2022/acorex-components-calendar.mjs +321 -118
  14. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  15. package/fesm2022/acorex-components-combo-box.mjs +238 -48
  16. package/fesm2022/acorex-components-combo-box.mjs.map +1 -1
  17. package/fesm2022/acorex-components-conversation-acorex-components-conversation-DDkiZfPb.mjs +19058 -0
  18. package/fesm2022/acorex-components-conversation-acorex-components-conversation-DDkiZfPb.mjs.map +1 -0
  19. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-COUB9zrM.mjs +50 -0
  20. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-COUB9zrM.mjs.map +1 -0
  21. package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-COT96F_v.mjs +87 -0
  22. package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-COT96F_v.mjs.map +1 -0
  23. package/fesm2022/acorex-components-conversation-picker-rename-file-dialog.component-CH3Q6Hry.mjs +65 -0
  24. package/fesm2022/acorex-components-conversation-picker-rename-file-dialog.component-CH3Q6Hry.mjs.map +1 -0
  25. package/fesm2022/acorex-components-conversation.mjs +1 -15470
  26. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  27. package/fesm2022/acorex-components-cron-job.mjs +1 -1
  28. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  29. package/fesm2022/acorex-components-data-pager.mjs +4 -4
  30. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  31. package/fesm2022/acorex-components-data-table.mjs +126 -30
  32. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  33. package/fesm2022/acorex-components-datetime-picker.mjs +1 -1
  34. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  35. package/fesm2022/acorex-components-decorators.mjs +36 -6
  36. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  37. package/fesm2022/acorex-components-dialog.mjs +1 -1
  38. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  39. package/fesm2022/acorex-components-dropdown-button.mjs +1 -1
  40. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  41. package/fesm2022/acorex-components-emoji.mjs +74 -0
  42. package/fesm2022/acorex-components-emoji.mjs.map +1 -0
  43. package/fesm2022/acorex-components-emojipicker.mjs +425 -0
  44. package/fesm2022/acorex-components-emojipicker.mjs.map +1 -0
  45. package/fesm2022/acorex-components-fab.mjs +2 -2
  46. package/fesm2022/acorex-components-fab.mjs.map +1 -1
  47. package/fesm2022/acorex-components-file-viewer.mjs +339 -89
  48. package/fesm2022/acorex-components-file-viewer.mjs.map +1 -1
  49. package/fesm2022/acorex-components-form.mjs +1 -1
  50. package/fesm2022/acorex-components-form.mjs.map +1 -1
  51. package/fesm2022/acorex-components-highlight.mjs +80 -0
  52. package/fesm2022/acorex-components-highlight.mjs.map +1 -0
  53. package/fesm2022/acorex-components-image-editor.mjs +686 -416
  54. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  55. package/fesm2022/acorex-components-inline-reaction.mjs +111 -0
  56. package/fesm2022/acorex-components-inline-reaction.mjs.map +1 -0
  57. package/fesm2022/acorex-components-kanban.mjs +1 -1
  58. package/fesm2022/acorex-components-kanban.mjs.map +1 -1
  59. package/fesm2022/acorex-components-loading-dialog.mjs +1 -1
  60. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  61. package/fesm2022/acorex-components-lookup.mjs +742 -134
  62. package/fesm2022/acorex-components-lookup.mjs.map +1 -1
  63. package/fesm2022/acorex-components-map.mjs +7 -0
  64. package/fesm2022/acorex-components-map.mjs.map +1 -1
  65. package/fesm2022/acorex-components-menu.mjs +96 -16
  66. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  67. package/fesm2022/acorex-components-message-status.mjs +71 -0
  68. package/fesm2022/acorex-components-message-status.mjs.map +1 -0
  69. package/fesm2022/acorex-components-message-time.mjs +36 -0
  70. package/fesm2022/acorex-components-message-time.mjs.map +1 -0
  71. package/fesm2022/acorex-components-message.mjs +120 -0
  72. package/fesm2022/acorex-components-message.mjs.map +1 -0
  73. package/fesm2022/acorex-components-notification.mjs +1 -1
  74. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  75. package/fesm2022/acorex-components-paint.mjs +1 -1
  76. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  77. package/fesm2022/acorex-components-popover.mjs +19 -8
  78. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  79. package/fesm2022/acorex-components-popup.mjs +1 -1
  80. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  81. package/fesm2022/acorex-components-rail-navigation.mjs +2 -2
  82. package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
  83. package/fesm2022/acorex-components-range-slider.mjs +2 -2
  84. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  85. package/fesm2022/acorex-components-reaction.mjs +144 -0
  86. package/fesm2022/acorex-components-reaction.mjs.map +1 -0
  87. package/fesm2022/acorex-components-rest-api-generator.mjs +5 -5
  88. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  89. package/fesm2022/acorex-components-rrule.mjs +1 -1
  90. package/fesm2022/acorex-components-rrule.mjs.map +1 -1
  91. package/fesm2022/acorex-components-scheduler-picker.mjs +5 -5
  92. package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -1
  93. package/fesm2022/acorex-components-scheduler.mjs +1 -1
  94. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  95. package/fesm2022/acorex-components-selection-list.mjs +1 -2
  96. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  97. package/fesm2022/acorex-components-tabs.mjs +510 -74
  98. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  99. package/fesm2022/acorex-components-tree-view.mjs +49 -6
  100. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  101. package/fesm2022/acorex-components-wysiwyg.mjs +76 -6
  102. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  103. package/highlight/README.md +13 -0
  104. package/inline-reaction/README.md +3 -0
  105. package/lookup/README.md +1 -1
  106. package/message/README.md +3 -0
  107. package/message-status/README.md +3 -0
  108. package/message-time/README.md +3 -0
  109. package/package.json +42 -12
  110. package/reaction/README.md +3 -0
  111. package/types/acorex-components-audio-wave.d.ts +132 -73
  112. package/types/acorex-components-bubble.d.ts +31 -0
  113. package/types/acorex-components-button-group.d.ts +4 -0
  114. package/types/acorex-components-button.d.ts +1 -1
  115. package/types/acorex-components-calendar.d.ts +41 -9
  116. package/types/acorex-components-combo-box.d.ts +34 -4
  117. package/types/acorex-components-conversation.d.ts +1745 -1322
  118. package/types/acorex-components-data-table.d.ts +27 -7
  119. package/types/acorex-components-decorators.d.ts +13 -1
  120. package/types/acorex-components-emoji.d.ts +42 -0
  121. package/types/acorex-components-emojipicker.d.ts +146 -0
  122. package/types/acorex-components-file-viewer.d.ts +48 -4
  123. package/types/acorex-components-highlight.d.ts +31 -0
  124. package/types/acorex-components-image-editor.d.ts +68 -48
  125. package/types/acorex-components-inline-reaction.d.ts +52 -0
  126. package/types/acorex-components-lookup.d.ts +213 -82
  127. package/types/acorex-components-map.d.ts +5 -0
  128. package/types/acorex-components-menu.d.ts +15 -3
  129. package/types/acorex-components-message-status.d.ts +23 -0
  130. package/types/acorex-components-message-time.d.ts +19 -0
  131. package/types/acorex-components-message.d.ts +59 -0
  132. package/types/acorex-components-popover.d.ts +5 -3
  133. package/types/acorex-components-reaction.d.ts +85 -0
  134. package/types/acorex-components-selection-list.d.ts +1 -1
  135. package/types/acorex-components-tabs.d.ts +148 -19
  136. package/types/acorex-components-tree-view.d.ts +31 -2
  137. package/types/acorex-components-wysiwyg.d.ts +13 -0
  138. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-DCcRJYfF.mjs +0 -50
  139. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-DCcRJYfF.mjs.map +0 -1
  140. package/fesm2022/acorex-components-conversation-open-composer-picker-for-files-DnSW908R.mjs +0 -210
  141. package/fesm2022/acorex-components-conversation-open-composer-picker-for-files-DnSW908R.mjs.map +0 -1
  142. package/fesm2022/acorex-components-flow-chart.mjs +0 -735
  143. package/fesm2022/acorex-components-flow-chart.mjs.map +0 -1
  144. package/fesm2022/acorex-components-query-builder.mjs +0 -267
  145. package/fesm2022/acorex-components-query-builder.mjs.map +0 -1
  146. package/flow-chart/README.md +0 -3
  147. package/query-builder/README.md +0 -3
  148. package/types/acorex-components-flow-chart.d.ts +0 -187
  149. package/types/acorex-components-query-builder.d.ts +0 -52
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-popup.mjs","sources":["../../../../packages/components/popup/src/lib/popup-footer/popup-footer.component.ts","../../../../packages/components/popup/src/lib/popup-footer/popup-footer.component.html","../../../../packages/components/popup/src/lib/popup.interface.ts","../../../../packages/components/popup/src/lib/popup.component.ts","../../../../packages/components/popup/src/lib/popup.component.html","../../../../packages/components/popup/src/lib/popup.service.ts","../../../../packages/components/popup/src/lib/popup-host/popup-host.component.ts","../../../../packages/components/popup/src/lib/popup.module.ts","../../../../packages/components/popup/src/acorex-components-popup.ts"],"sourcesContent":["import { AXComponent } from '@acorex/cdk/common';\nimport { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ax-popup-footer',\n templateUrl: './popup-footer.component.html',\n styleUrl: './popup-footer.component.css',\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXComponent, useExisting: AXPopupFooterComponent }],\n})\nexport class AXPopupFooterComponent {}\n","<ng-content select=\"ax-prefix\"></ng-content>\n<ng-content select=\"ax-suffix\"></ng-content>\n<ng-content></ng-content>\n","import { AXComponentInputs, AXComponentType } from '@acorex/core/components';\nimport { Directive, ElementRef, input, StaticProvider, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport type AXPopupContentType = TemplateRef<unknown> | AXComponentType<unknown> | HTMLElement;\n\nexport type AXPopupSizeType = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full' | 'fit';\n\nexport type AXPopupMinimizePosition = 'bottom-right' | 'bottom-left';\n\nexport interface AXPopupButtonsConfig {\n minimize?: {\n enable: boolean;\n position: AXPopupMinimizePosition;\n };\n maximize?: boolean;\n close?: boolean;\n}\n\nexport interface AXPopupConfig {\n title?: string;\n /** Flat alias; overridden by `buttons.close` when set. */\n closeButton?: boolean;\n header?: boolean;\n footer?: boolean;\n /** Flat alias; overridden by `buttons.maximize` when set. */\n maximizable?: boolean;\n size?: AXPopupSizeType;\n /** @deprecated Use `inputs` instead to pass data to the popup component. */\n data?: unknown;\n inputs?: unknown;\n draggable?: boolean;\n hasBackdrop?: boolean;\n backdropClass?: string;\n closeOnBackdropClick?: boolean;\n closeOnNavigation?: boolean;\n /** When unset, Escape closes only if the close button is enabled (legacy behavior). */\n closeOnEscape?: boolean;\n viewContainerRef?: ViewContainerRef;\n providers?: StaticProvider[];\n panelClass?: string[];\n direction?: 'rtl' | 'ltr';\n /** Window chrome buttons. Individual fields override flat `closeButton` / `maximizable` when set. */\n buttons?: AXPopupButtonsConfig;\n /**\n * @internal\n * Called with the popup ref before content is created so callers can inject\n * extra content inputs that depend on the ref.\n */\n _bindContentInputs?: (ref: AXPopupRef) => Record<string, unknown>;\n /**\n * Element used to resolve inherited visual context for overlays rendered\n * outside the originating DOM subtree.\n *\n * This affects Appearance, Light/Dark theme, Contrast, Size, and supported\n * Density context. It does not affect overlay positioning.\n */\n contextElement?: HTMLElement | ElementRef<HTMLElement>;\n}\n\nexport interface AXPopupData {\n title: string;\n closeButton: boolean;\n header: boolean;\n maximizable: boolean;\n size: AXPopupSizeType;\n data?: unknown;\n draggable: boolean;\n content: AXPopupContentType;\n}\n\nexport interface AXPopupRef<TResult = any> {\n close: (data?: TResult) => void;\n setInputs: (values: AXComponentInputs) => void;\n setTitle: (title: string) => void;\n minimize: () => void;\n maximize: () => void;\n restore: () => void;\n /** Brings this popup to the front of all other overlays */\n bringToFront: () => void;\n onClose: Subject<TResult>;\n /** The component instance rendered inside the popup (available after content is rendered) */\n componentInstance?: unknown;\n /** @internal Stack index among open popups (minimized bar positioning). */\n _getStackIndex?: () => number;\n}\n\n@Directive()\nexport abstract class AXPopupComponentBase {\n __popup__ = input<AXPopupRef>();\n\n public close(data: any = null) {\n this.__popup__()?.close(data);\n }\n\n public setTitle(title: string) {\n this.__popup__()?.setTitle(title);\n }\n\n public minimize() {\n this.__popup__()?.minimize();\n }\n\n public maximize() {\n this.__popup__()?.maximize();\n }\n\n public restore() {\n this.__popup__()?.restore();\n }\n\n public bringToFront() {\n this.__popup__()?.bringToFront();\n }\n}\n\n/** Resolves whether the close header button is shown. `buttons.close` wins over `closeButton`. */\nexport function resolvePopupCloseButton(config?: AXPopupConfig | null): boolean {\n if (config?.buttons?.close !== undefined) {\n return config.buttons.close;\n }\n return config?.closeButton ?? true;\n}\n\n/** Resolves whether maximize is enabled. `buttons.maximize` wins over `maximizable`. Default: false. */\nexport function resolvePopupMaximizable(config?: AXPopupConfig | null): boolean {\n if (config?.buttons?.maximize !== undefined) {\n return config.buttons.maximize;\n }\n return config?.maximizable ?? false;\n}\n\n/** Resolves minimize button config. Default: disabled at bottom-right. */\nexport function resolvePopupMinimize(config?: AXPopupConfig | null): {\n enable: boolean;\n position: AXPopupMinimizePosition;\n} {\n return {\n enable: config?.buttons?.minimize?.enable ?? false,\n position: config?.buttons?.minimize?.position ?? 'bottom-right',\n };\n}\n","import { AXPlatform } from '@acorex/core/platform';\nimport {\n Component,\n ComponentRef,\n DestroyRef,\n ElementRef,\n HostListener,\n inject,\n input,\n NgZone,\n OnDestroy,\n OnInit,\n signal,\n TemplateRef,\n viewChild,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\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 { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorCloseButtonComponent, AXDecoratorIconComponent } 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 {\n AXPopupConfig,\n AXPopupContentType,\n AXPopupRef,\n resolvePopupCloseButton,\n resolvePopupMaximizable,\n resolvePopupMinimize,\n} from './popup.interface';\n\n/**\n * The Popup is a component which displays content in a dialog overlay\n *\n * @category Components\n */\n@Component({\n selector: 'ax-popup',\n templateUrl: './popup.component.html',\n styleUrls: ['./popup.component.css'],\n\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'ax-popup-host',\n style: 'display: block; max-width: 100%;',\n },\n providers: [\n { provide: AXClosableComponent, useExisting: AXPopupComponent },\n { provide: AXComponent, useExisting: AXPopupComponent },\n ],\n imports: [\n AXDecoratorCloseButtonComponent,\n AXDecoratorIconComponent,\n AXButtonComponent,\n AsyncPipe,\n AXTranslatorPipe,\n AXFocusTrapDirective,\n ],\n})\nexport class AXPopupComponent extends MXBaseComponent implements OnInit, OnDestroy {\n private _zone = inject(NgZone);\n private loadingService = inject(AXLoadingService);\n private _platform = inject(AXPlatform);\n private componentService = inject(AXComponentService);\n private _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 private popupEl = viewChild<ElementRef<HTMLElement>>('popupEl');\n\n // Inputs from overlay service\n readonly __content__ = input<AXPopupContentType>();\n readonly __config__ = input<AXPopupConfig>();\n readonly __popupRef__ = input<AXPopupRef>();\n readonly __id__ = input<number>();\n\n /**\n * Indicates whether the component is loading.\n * @defaultValue true\n */\n isLoading = true;\n\n /** @ignore */\n private _loadingId: number;\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 protected popupSizeState = signal<'minimize' | 'normal'>('normal');\n protected fullScreenState = signal(false);\n protected minimizeLeft = signal<string | null>(null);\n protected minimizeRight = signal<string | null>(null);\n\n private fullscreenChangeHandler = () => {\n if (!document.fullscreenElement) {\n this.fullScreenState.set(false);\n this.cdr.markForCheck();\n }\n };\n\n protected closeEnabled = () => resolvePopupCloseButton(this.__config__());\n protected maximizeEnabled = () => resolvePopupMaximizable(this.__config__());\n protected minimizeEnabled = () => resolvePopupMinimize(this.__config__()).enable;\n\n /** @ignore */\n override ngOnInit() {\n super.ngOnInit();\n\n const config = this.__config__();\n if (this._platform.is('SM')) {\n if (config) {\n config.draggable = false;\n }\n }\n\n this.title.set(config?.title ?? '');\n\n this._loadingId = this.loadingService.show({\n location: this.getHostElement(),\n });\n\n this._setupCloseOnNavigation();\n document.addEventListener('fullscreenchange', this.fullscreenChangeHandler);\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 this.contentContainerRef.createEmbeddedView(content, {\n $implicit: config?.data,\n ref: this,\n ...(typeof config?.inputs === 'object' && config.inputs ? (config.inputs as object) : {}),\n });\n this.handleContentRendered();\n } else if (content instanceof HTMLElement) {\n this.contentContainerEl.nativeElement.appendChild(content.cloneNode(true));\n this.handleContentRendered();\n } else if (typeof content === 'function') {\n const componentRef = this.componentService.createFromComponent(content as AXComponentType<unknown>);\n this._componentRef = componentRef;\n\n const popupRef = this.__popupRef__();\n if (popupRef) {\n popupRef.componentInstance = componentRef.instance;\n }\n\n const inputDefs = (componentRef.componentType as unknown as { ɵcmp?: { inputs?: Record<string, unknown> } })?.ɵcmp\n ?.inputs;\n\n if (config?.data && typeof config.data === 'object') {\n Object.entries(config.data).forEach(([key, value]) => {\n (componentRef.instance as Record<string, unknown>)[key] = value;\n });\n }\n\n if (config?.inputs && typeof config.inputs === 'object') {\n Object.entries(config.inputs).forEach(([key, value]) => {\n if (inputDefs && key in inputDefs) {\n componentRef.setInput(key, value);\n }\n });\n }\n\n if (inputDefs && '__popup__' in inputDefs) {\n componentRef.setInput('__popup__', this.__popupRef__());\n }\n\n const hostElement = componentRef.location.nativeElement;\n this.contentContainerEl.nativeElement.appendChild(hostElement);\n\n const instance = componentRef.instance as {\n onClosed?: { subscribe: (fn: (e: { data?: unknown }) => void) => void };\n };\n if (instance.onClosed) {\n instance.onClosed.subscribe((e) => {\n this.close(e.data);\n });\n }\n\n this.handleContentRendered();\n }\n }\n\n /** @ignore */\n private handleContentRendered() {\n this._zone.runOutsideAngular(() => {\n setTimeout(() => {\n const body = this.getHostElement().querySelector<HTMLDivElement>('.ax-popup-body-container');\n const content = body?.children[0];\n\n if (!content || !body) {\n this.focus();\n return;\n }\n\n const popHeader = this.getHostElement().querySelector<HTMLDivElement>('.ax-popup-header-container');\n const popFooter = this.getHostElement().querySelector<HTMLDivElement>('.ax-popup-footer-container');\n\n const footer =\n content.querySelector<HTMLElement>(':scope > ax-footer') ||\n content.querySelector<HTMLElement>(':scope > ax-popup-footer') ||\n this.getHostElement().querySelector<HTMLElement>('.ax-popup-body-container ax-popup-footer');\n const header = content.querySelector<HTMLDivElement>(':scope > ax-header');\n\n if (footer && popFooter) {\n popFooter.append(footer);\n }\n if (header && popHeader) {\n popHeader.innerHTML = '';\n popHeader.append(header);\n }\n this.focus();\n });\n });\n this.loadingService.hide(this._loadingId);\n this.cdr.markForCheck();\n }\n\n /** @ignore */\n @HostListener('keydown.escape')\n onKeydownHandler() {\n const config = this.__config__();\n const focusedOrHasFocused = this.getHostElement().matches(':focus-within');\n if (!focusedOrHasFocused) return;\n\n if (config?.closeOnEscape === false) return;\n\n if (config?.closeOnEscape === true || this.closeEnabled()) {\n this.close();\n }\n }\n\n /** @ignore */\n protected _handleCloseClick() {\n this.close();\n }\n\n /** @ignore */\n ngOnDestroy() {\n document.removeEventListener('fullscreenchange', this.fullscreenChangeHandler);\n if (this.fullScreenState() && document.fullscreenElement) {\n document.exitFullscreen().catch(() => undefined);\n }\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 */\n close(data?: unknown) {\n const closeFn = () => {\n this.__popupRef__()?.close(data);\n };\n\n const componentInstance = this._componentRef?.instance as\n | { onClosing?: (e: AXComponentClosing) => void | Promise<void> }\n | undefined;\n\n if (typeof componentInstance?.onClosing === 'function') {\n const ee: AXComponentClosing = {\n cancel: false,\n data,\n };\n const closingResult = componentInstance.onClosing(ee);\n if (closingResult instanceof Promise) {\n closingResult.then(() => {\n if (!ee.cancel) {\n closeFn();\n }\n });\n } else {\n if (!ee.cancel) {\n closeFn();\n }\n }\n } else {\n closeFn();\n }\n }\n\n /**\n * Minimizes the popup to the bottom bar.\n */\n minimize() {\n if (this.fullScreenState() && document.fullscreenElement) {\n document.exitFullscreen().catch(() => undefined);\n }\n\n const el = this.popupEl()?.nativeElement;\n if (!el) return;\n\n this.minimizeLeft.set(null);\n this.minimizeRight.set(null);\n this.popupSizeState.set('minimize');\n this.cdr.markForCheck();\n\n requestAnimationFrame(() => {\n const width = el.offsetWidth;\n const index = this.__popupRef__()?._getStackIndex?.() ?? 0;\n const position = resolvePopupMinimize(this.__config__()).position;\n\n if (position === 'bottom-right') {\n this.minimizeLeft.set(null);\n this.minimizeRight.set(`${index * (width + 10)}px`);\n } else {\n this.minimizeRight.set(null);\n this.minimizeLeft.set(`${index * (width + 10)}px`);\n }\n this.cdr.markForCheck();\n });\n }\n\n /**\n * Maximizes the popup using the Fullscreen API.\n */\n maximize() {\n const el = this.popupEl()?.nativeElement;\n if (!el) return;\n\n if (this.popupSizeState() === 'minimize') {\n this.restore();\n }\n\n if (!document.fullscreenElement) {\n el.requestFullscreen().then(() => {\n this.fullScreenState.set(true);\n this.cdr.markForCheck();\n });\n } else {\n document.exitFullscreen().catch(() => undefined);\n }\n }\n\n /**\n * Restores the popup from minimized or fullscreen state.\n */\n restore() {\n if (this.fullScreenState() && document.fullscreenElement) {\n document.exitFullscreen().catch(() => undefined);\n return;\n }\n\n this.minimizeLeft.set(null);\n this.minimizeRight.set(null);\n this.popupSizeState.set('normal');\n this.cdr.markForCheck();\n }\n\n /**\n * Sets inputs on the content component.\n */\n setContentInputs(values: AXComponentInputs) {\n const componentRef = this._componentRef;\n if (componentRef) {\n Object.entries(values).forEach(([key, value]) => {\n componentRef.setInput(key, value);\n });\n }\n }\n\n /**\n * Sets the popup title.\n */\n setTitle(title: string) {\n this.title.set(title);\n this.cdr.markForCheck();\n }\n\n // Drag functionality\n protected onDragStart(event: MouseEvent) {\n const config = this.__config__();\n if (!config?.draggable) return;\n if (this.popupSizeState() === 'minimize' || this.fullScreenState()) return;\n\n this.isDragging.set(true);\n this.dragStartPos = { x: event.clientX, y: event.clientY };\n\n const popup = this.getHostElement().querySelector<HTMLDivElement>('.ax-popup');\n if (popup) {\n const rect = popup.getBoundingClientRect();\n this.elementStartPos = { x: rect.left, y: rect.top };\n }\n\n event.preventDefault();\n }\n\n @HostListener('document:mousemove', ['$event'])\n onDragMove(event: MouseEvent) {\n if (!this.isDragging()) return;\n\n const deltaX = event.clientX - this.dragStartPos.x;\n const deltaY = event.clientY - this.dragStartPos.y;\n\n this.dragOffset.set({\n x: this.elementStartPos.x + deltaX,\n y: this.elementStartPos.y + deltaY,\n });\n }\n\n @HostListener('document:mouseup')\n onDragEnd() {\n this.isDragging.set(false);\n }\n}\n","<div\n class=\"ax-popup-wrapper\"\n aria-modal=\"true\"\n axFocusTrap\n [class.ax-popup-minimized-host]=\"popupSizeState() === 'minimize'\"\n>\n <div\n #popupEl\n class=\"ax-popup ax-popup-{{ __config__()?.size || 'md' }}\"\n tabindex=\"0\"\n [class.ax-popup-dragging]=\"isDragging()\"\n [class.ax-popup-minimized]=\"popupSizeState() === 'minimize'\"\n [class.ax-popup-fullscreen]=\"fullScreenState()\"\n [style.position]=\"dragOffset().x || dragOffset().y || popupSizeState() === 'minimize' ? 'fixed' : null\"\n [style.left]=\"popupSizeState() === 'minimize' ? minimizeLeft() : dragOffset().x ? dragOffset().x + 'px' : null\"\n [style.right]=\"popupSizeState() === 'minimize' ? minimizeRight() : null\"\n [style.top]=\"popupSizeState() === 'minimize' ? 'auto' : dragOffset().y ? dragOffset().y + 'px' : null\"\n [style.bottom]=\"popupSizeState() === 'minimize' ? '0' : null\"\n [style.transform]=\"dragOffset().x || dragOffset().y || popupSizeState() === 'minimize' ? 'none' : null\"\n >\n <div\n class=\"ax-popup-header-container\"\n [class.ax-popup-draggable]=\"__config__()?.draggable && popupSizeState() !== 'minimize' && !fullScreenState()\"\n (mousedown)=\"onDragStart($event)\"\n >\n @if (__config__()?.header) {\n <div class=\"ax-popup-header\">\n <span class=\"ax-popup-title\">{{ title() | translate | async }}</span>\n <div class=\"ax-popup-header-actions\">\n @if (minimizeEnabled()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" (onClick)=\"minimize()\">\n <ax-icon class=\"ax-icon ax-icon-minimize\"></ax-icon>\n </ax-button>\n }\n\n @if (popupSizeState() !== 'normal' || fullScreenState()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" (onClick)=\"restore()\">\n <ax-icon class=\"ax-icon ax-icon-maximize\"></ax-icon>\n </ax-button>\n }\n\n @if (maximizeEnabled()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" (onClick)=\"maximize()\">\n <ax-icon class=\"ax-icon ax-icon-full-screen\"></ax-icon>\n </ax-button>\n }\n\n @if (closeEnabled()) {\n <ax-close-button tabindex=\"1\" (click)=\"_handleCloseClick()\"></ax-close-button>\n }\n </div>\n </div>\n }\n </div>\n <div class=\"ax-popup-main-container ax-loading-container\">\n <div class=\"ax-popup-body-container\" #contentContainer></div>\n <div class=\"ax-popup-footer-container\" [class.ax-popup-footer-visible]=\"__config__()?.footer\"></div>\n </div>\n </div>\n</div>\n","import { AXComponentClosedPromise } from '@acorex/cdk/common';\nimport { AXOverlayRef, AXOverlayService } from '@acorex/cdk/overlay';\nimport { AXComponentInputs } from '@acorex/core/components';\nimport { ComponentRef, inject, Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXPopupComponent } from './popup.component';\nimport { AXPopupConfig, AXPopupContentType, AXPopupRef } from './popup.interface';\n\n/**\n * This is a service which you can create popup with it\n *\n * @category Components\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPopupService {\n private popupList = new Map<number, { overlay: AXOverlayRef<AXPopupComponent>; popup: AXPopupRef }>();\n private overlayService = inject(AXOverlayService);\n\n /**\n * Open popup 1\n */\n open(content: AXPopupContentType, title: string): AXComponentClosedPromise;\n /**\n * Open popup 2\n */\n open(content: AXPopupContentType, config?: AXPopupConfig): AXComponentClosedPromise;\n\n /**\n * @ignore\n */\n open(arg1: AXPopupContentType, arg2?: string | AXPopupConfig): AXComponentClosedPromise {\n const config = this.mergeConfig(arg2);\n\n const promise = new AXComponentClosedPromise((resolve) => {\n this.openRef(arg1, config).then((ref) => {\n ref.onClose.subscribe((data) => {\n if (resolve) {\n resolve({\n sender: ref.componentInstance,\n data: data,\n });\n }\n });\n });\n });\n\n return promise;\n }\n\n /**\n * Opens a popup and returns a mutable reference (for host components and advanced control).\n */\n async openRef<TResult = any>(content: AXPopupContentType, config?: AXPopupConfig): Promise<AXPopupRef<TResult>> {\n return this.openInternal(content, this.mergeConfig(config));\n }\n\n private mergeConfig(arg2?: string | AXPopupConfig): AXPopupConfig {\n const config: AXPopupConfig = {\n closeButton: true,\n header: true,\n footer: false,\n size: 'md',\n maximizable: false,\n draggable: true,\n hasBackdrop: true,\n closeOnBackdropClick: false,\n data: {},\n closeOnNavigation: true,\n panelClass: ['animate-fadeIn', 'animate-fast'],\n buttons: {\n close: true,\n maximize: false,\n minimize: {\n enable: false,\n position: 'bottom-right',\n },\n },\n };\n if (typeof arg2 === 'string') {\n config.title = arg2;\n } else if (arg2) {\n const { buttons, ...rest } = arg2;\n Object.assign(config, rest);\n if (buttons) {\n config.buttons = {\n ...config.buttons,\n ...buttons,\n minimize: {\n enable: false,\n position: 'bottom-right',\n ...config.buttons?.minimize,\n ...buttons.minimize,\n },\n };\n }\n }\n return config;\n }\n\n /**\n * Opens a popup with the specified content and configuration.\n */\n private async openInternal<TResult = any>(\n content: AXPopupContentType,\n config: AXPopupConfig,\n ): Promise<AXPopupRef<TResult>> {\n const randomId = Math.floor(Math.random() * 100000000000);\n const onClose = new Subject<TResult>();\n\n const returnRef: AXPopupRef<TResult> = {\n close: (data) => {\n this.close(randomId, data);\n },\n setInputs: (values: AXComponentInputs) => {\n this.setInputs(randomId, values);\n },\n setTitle: (title: string) => {\n this.setTitle(randomId, title);\n },\n minimize: () => {\n this.minimize(randomId);\n },\n maximize: () => {\n this.maximize(randomId);\n },\n restore: () => {\n this.restore(randomId);\n },\n bringToFront: () => {\n this.bringToFront(randomId);\n },\n onClose,\n _getStackIndex: () => this.getMapIndexOf(randomId),\n };\n\n if (config._bindContentInputs) {\n config.inputs = {\n ...((config.inputs as Record<string, unknown>) ?? {}),\n ...config._bindContentInputs(returnRef),\n };\n }\n\n const panelClasses = ['ax-popup-overlay'];\n if (config.panelClass) {\n panelClasses.push(...config.panelClass);\n }\n\n const ref = await this.overlayService.create(AXPopupComponent, {\n contextElement: config.contextElement,\n visualContextScope: 'theme',\n backdrop: {\n enabled: config.hasBackdrop ?? true,\n background: true,\n // Dispose is handled via onDispose so close goes through onClose.\n closeOnClick: config.closeOnBackdropClick ?? false,\n backdropClass: config.backdropClass,\n },\n panelClass: panelClasses,\n inputs: {\n __content__: content,\n __config__: config,\n __popupRef__: returnRef,\n __id__: randomId,\n },\n onDispose: () => {\n // Backdrop click (or external dispose) — complete close pipeline if still open.\n const entry = this.popupList.get(randomId);\n if (!entry) return;\n this.popupList.delete(randomId);\n entry.popup.onClose.next(undefined as TResult);\n entry.popup.onClose.complete();\n },\n });\n\n this.popupList.set(randomId, { overlay: ref, popup: returnRef });\n\n return returnRef;\n }\n\n /**\n * Closes a popup by its ID.\n */\n close<TResult = any>(id: number, data?: TResult): void {\n const ref = this.popupList.get(id);\n if (!ref) return;\n this.popupList.delete(id);\n ref.popup.onClose.next(data);\n ref.popup.onClose.complete();\n ref.overlay.dispose();\n }\n\n /**\n * Sets input values for a popup by its ID.\n */\n setInputs(id: number, values: AXComponentInputs): void {\n const ref = this.popupList.get(id)?.overlay.instance;\n if (!ref) return;\n if (ref instanceof ComponentRef) {\n const componentInstance = ref.instance as AXPopupComponent;\n componentInstance.setContentInputs(values);\n }\n }\n\n /**\n * Sets the title for a popup by its ID.\n */\n setTitle(id: number, title: string): void {\n const ref = this.popupList.get(id)?.overlay.instance;\n if (!ref) return;\n if (ref instanceof ComponentRef) {\n const componentInstance = ref.instance as AXPopupComponent;\n componentInstance.setTitle(title);\n }\n }\n\n minimize(id: number): void {\n const instance = this.getPopupInstance(id);\n instance?.minimize();\n }\n\n maximize(id: number): void {\n const instance = this.getPopupInstance(id);\n instance?.maximize();\n }\n\n restore(id: number): void {\n const instance = this.getPopupInstance(id);\n instance?.restore();\n }\n\n /**\n * Gets the index of a popup in the open stack (used for minimized bar positioning).\n */\n getMapIndexOf(targetKey: number): number {\n let index = 0;\n for (const key of this.popupList.keys()) {\n if (key === targetKey) {\n return index;\n }\n index++;\n }\n return -1;\n }\n\n /**\n * Brings a popup to the front of all other overlays.\n */\n bringToFront(id: number): void {\n const ref = this.popupList.get(id);\n if (!ref) return;\n ref.overlay.bringToFront();\n }\n\n private getPopupInstance(id: number): AXPopupComponent | null {\n const ref = this.popupList.get(id)?.overlay.instance;\n if (!ref) return null;\n if (ref instanceof ComponentRef) {\n return ref.instance as AXPopupComponent;\n }\n return null;\n }\n}\n","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { AXComponentInputs } from '@acorex/core/components';\nimport { Component, inject, signal, TemplateRef, viewChild, ViewEncapsulation } from '@angular/core';\nimport { AXPopupConfig, AXPopupRef } from '../popup.interface';\nimport { AXPopupService } from '../popup.service';\n\n/**\n * Declarative popup host. Project content and call `open()` / `close()` on the component instance.\n *\n * @example\n * ```html\n * <ax-popup-host #popup>\n * <p>Content</p>\n * </ax-popup-host>\n * <ax-button (onClick)=\"popup.open({ title: 'Hello', header: true })\"></ax-button>\n * ```\n */\n@Component({\n selector: 'ax-popup-host',\n template: `\n <ng-template #contentTemplate>\n <ng-content></ng-content>\n </ng-template>\n `,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXComponent, useExisting: AXPopupHostComponent }],\n})\nexport class AXPopupHostComponent extends NXComponent {\n private popupService = inject(AXPopupService);\n protected template = viewChild(TemplateRef);\n private ref = signal<AXPopupRef | null>(null);\n\n /**\n * Opens the projected content in a popup overlay.\n */\n async open(options?: AXPopupConfig): Promise<AXPopupRef> {\n const template = this.template();\n if (!template) {\n throw new Error('AXPopupHostComponent: content template is not ready.');\n }\n const ref = await this.popupService.openRef(template, options);\n this.ref.set(ref);\n ref.onClose.subscribe(() => {\n if (this.ref() === ref) {\n this.ref.set(null);\n }\n });\n return ref;\n }\n\n /**\n * Closes the currently open popup hosted by this component.\n */\n async close(data?: unknown): Promise<void> {\n const current = this.ref();\n if (!current) return;\n current.close(data);\n }\n\n /**\n * Sets input values for the popup content component.\n */\n async setInputs(values: AXComponentInputs): Promise<void> {\n this.ref()?.setInputs(values);\n }\n\n /**\n * Minimizes the hosted popup.\n */\n async minimize(): Promise<void> {\n this.ref()?.minimize();\n }\n\n /**\n * Maximizes the hosted popup.\n */\n async maximize(): Promise<void> {\n this.ref()?.maximize();\n }\n\n /**\n * Restores the hosted popup.\n */\n async restore(): Promise<void> {\n this.ref()?.restore();\n }\n}\n","import { AXCommonModule } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXPopupFooterComponent } from './popup-footer/popup-footer.component';\nimport { AXPopupHostComponent } from './popup-host/popup-host.component';\nimport { AXPopupComponent } from './popup.component';\nimport { AXPopupService } from './popup.service';\n\nconst COMPONENT = [AXPopupComponent, AXPopupHostComponent, AXPopupFooterComponent];\nconst MODULES = [CommonModule, AXCommonModule, AXDecoratorModule, AXTranslationModule];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [AXPopupService],\n})\nexport class AXPopupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-popup.mjs","sources":["../../../../packages/components/popup/src/lib/popup-footer/popup-footer.component.ts","../../../../packages/components/popup/src/lib/popup-footer/popup-footer.component.html","../../../../packages/components/popup/src/lib/popup.interface.ts","../../../../packages/components/popup/src/lib/popup.component.ts","../../../../packages/components/popup/src/lib/popup.component.html","../../../../packages/components/popup/src/lib/popup.service.ts","../../../../packages/components/popup/src/lib/popup-host/popup-host.component.ts","../../../../packages/components/popup/src/lib/popup.module.ts","../../../../packages/components/popup/src/acorex-components-popup.ts"],"sourcesContent":["import { AXComponent } from '@acorex/cdk/common';\nimport { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ax-popup-footer',\n templateUrl: './popup-footer.component.html',\n styleUrl: './popup-footer.component.css',\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXComponent, useExisting: AXPopupFooterComponent }],\n})\nexport class AXPopupFooterComponent {}\n","<ng-content select=\"ax-prefix\"></ng-content>\n<ng-content select=\"ax-suffix\"></ng-content>\n<ng-content></ng-content>\n","import { AXComponentInputs, AXComponentType } from '@acorex/core/components';\nimport { Directive, ElementRef, input, StaticProvider, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport type AXPopupContentType = TemplateRef<unknown> | AXComponentType<unknown> | HTMLElement;\n\nexport type AXPopupSizeType = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full' | 'fit';\n\nexport type AXPopupMinimizePosition = 'bottom-right' | 'bottom-left';\n\nexport interface AXPopupButtonsConfig {\n minimize?: {\n enable: boolean;\n position: AXPopupMinimizePosition;\n };\n maximize?: boolean;\n close?: boolean;\n}\n\nexport interface AXPopupConfig {\n title?: string;\n /** Flat alias; overridden by `buttons.close` when set. */\n closeButton?: boolean;\n header?: boolean;\n footer?: boolean;\n /** Flat alias; overridden by `buttons.maximize` when set. */\n maximizable?: boolean;\n size?: AXPopupSizeType;\n /** @deprecated Use `inputs` instead to pass data to the popup component. */\n data?: unknown;\n inputs?: unknown;\n draggable?: boolean;\n hasBackdrop?: boolean;\n backdropClass?: string;\n closeOnBackdropClick?: boolean;\n closeOnNavigation?: boolean;\n /** When unset, Escape closes only if the close button is enabled (legacy behavior). */\n closeOnEscape?: boolean;\n viewContainerRef?: ViewContainerRef;\n providers?: StaticProvider[];\n panelClass?: string[];\n direction?: 'rtl' | 'ltr';\n /** Window chrome buttons. Individual fields override flat `closeButton` / `maximizable` when set. */\n buttons?: AXPopupButtonsConfig;\n /**\n * @internal\n * Called with the popup ref before content is created so callers can inject\n * extra content inputs that depend on the ref.\n */\n _bindContentInputs?: (ref: AXPopupRef) => Record<string, unknown>;\n /**\n * Element used to resolve inherited visual context for overlays rendered\n * outside the originating DOM subtree.\n *\n * This affects Appearance, Light/Dark theme, Contrast, Size, and supported\n * Density context. It does not affect overlay positioning.\n */\n contextElement?: HTMLElement | ElementRef<HTMLElement>;\n}\n\nexport interface AXPopupData {\n title: string;\n closeButton: boolean;\n header: boolean;\n maximizable: boolean;\n size: AXPopupSizeType;\n data?: unknown;\n draggable: boolean;\n content: AXPopupContentType;\n}\n\nexport interface AXPopupRef<TResult = any> {\n close: (data?: TResult) => void;\n setInputs: (values: AXComponentInputs) => void;\n setTitle: (title: string) => void;\n minimize: () => void;\n maximize: () => void;\n restore: () => void;\n /** Brings this popup to the front of all other overlays */\n bringToFront: () => void;\n onClose: Subject<TResult>;\n /** The component instance rendered inside the popup (available after content is rendered) */\n componentInstance?: unknown;\n /** @internal Stack index among open popups (minimized bar positioning). */\n _getStackIndex?: () => number;\n}\n\n@Directive()\nexport abstract class AXPopupComponentBase {\n __popup__ = input<AXPopupRef>();\n\n public close(data: any = null) {\n this.__popup__()?.close(data);\n }\n\n public setTitle(title: string) {\n this.__popup__()?.setTitle(title);\n }\n\n public minimize() {\n this.__popup__()?.minimize();\n }\n\n public maximize() {\n this.__popup__()?.maximize();\n }\n\n public restore() {\n this.__popup__()?.restore();\n }\n\n public bringToFront() {\n this.__popup__()?.bringToFront();\n }\n}\n\n/** Resolves whether the close header button is shown. `buttons.close` wins over `closeButton`. */\nexport function resolvePopupCloseButton(config?: AXPopupConfig | null): boolean {\n if (config?.buttons?.close !== undefined) {\n return config.buttons.close;\n }\n return config?.closeButton ?? true;\n}\n\n/** Resolves whether maximize is enabled. `buttons.maximize` wins over `maximizable`. Default: false. */\nexport function resolvePopupMaximizable(config?: AXPopupConfig | null): boolean {\n if (config?.buttons?.maximize !== undefined) {\n return config.buttons.maximize;\n }\n return config?.maximizable ?? false;\n}\n\n/** Resolves minimize button config. Default: disabled at bottom-right. */\nexport function resolvePopupMinimize(config?: AXPopupConfig | null): {\n enable: boolean;\n position: AXPopupMinimizePosition;\n} {\n return {\n enable: config?.buttons?.minimize?.enable ?? false,\n position: config?.buttons?.minimize?.position ?? 'bottom-right',\n };\n}\n","import { AXPlatform } from '@acorex/core/platform';\nimport {\n Component,\n ComponentRef,\n DestroyRef,\n ElementRef,\n HostListener,\n inject,\n input,\n NgZone,\n OnDestroy,\n OnInit,\n signal,\n TemplateRef,\n viewChild,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\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 { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorCloseButtonComponent, AXDecoratorIconComponent } 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 {\n AXPopupConfig,\n AXPopupContentType,\n AXPopupRef,\n resolvePopupCloseButton,\n resolvePopupMaximizable,\n resolvePopupMinimize,\n} from './popup.interface';\n\n/**\n * The Popup is a component which displays content in a dialog overlay\n *\n * @category Components\n */\n@Component({\n selector: 'ax-popup',\n templateUrl: './popup.component.html',\n styleUrls: ['./popup.component.css'],\n\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'ax-popup-host',\n style: 'display: block; max-width: 100%;',\n },\n providers: [\n { provide: AXClosableComponent, useExisting: AXPopupComponent },\n { provide: AXComponent, useExisting: AXPopupComponent },\n ],\n imports: [\n AXDecoratorCloseButtonComponent,\n AXDecoratorIconComponent,\n AXButtonComponent,\n AsyncPipe,\n AXTranslatorPipe,\n AXFocusTrapDirective,\n ],\n})\nexport class AXPopupComponent extends MXBaseComponent implements OnInit, OnDestroy {\n private _zone = inject(NgZone);\n private loadingService = inject(AXLoadingService);\n private _platform = inject(AXPlatform);\n private componentService = inject(AXComponentService);\n private _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 private popupEl = viewChild<ElementRef<HTMLElement>>('popupEl');\n\n // Inputs from overlay service\n readonly __content__ = input<AXPopupContentType>();\n readonly __config__ = input<AXPopupConfig>();\n readonly __popupRef__ = input<AXPopupRef>();\n readonly __id__ = input<number>();\n\n /**\n * Indicates whether the component is loading.\n * @defaultValue true\n */\n isLoading = true;\n\n /** @ignore */\n private _loadingId: number;\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 protected popupSizeState = signal<'minimize' | 'normal'>('normal');\n protected fullScreenState = signal(false);\n protected minimizeLeft = signal<string | null>(null);\n protected minimizeRight = signal<string | null>(null);\n\n private fullscreenChangeHandler = () => {\n if (!document.fullscreenElement) {\n this.fullScreenState.set(false);\n this.cdr.markForCheck();\n }\n };\n\n protected closeEnabled = () => resolvePopupCloseButton(this.__config__());\n protected maximizeEnabled = () => resolvePopupMaximizable(this.__config__());\n protected minimizeEnabled = () => resolvePopupMinimize(this.__config__()).enable;\n\n /** @ignore */\n override ngOnInit() {\n super.ngOnInit();\n\n const config = this.__config__();\n if (this._platform.is('SM')) {\n if (config) {\n config.draggable = false;\n }\n }\n\n this.title.set(config?.title ?? '');\n\n this._loadingId = this.loadingService.show({\n location: this.getHostElement(),\n });\n\n this._setupCloseOnNavigation();\n document.addEventListener('fullscreenchange', this.fullscreenChangeHandler);\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 this.contentContainerRef.createEmbeddedView(content, {\n $implicit: config?.data,\n ref: this,\n ...(typeof config?.inputs === 'object' && config.inputs ? (config.inputs as object) : {}),\n });\n this.handleContentRendered();\n } else if (content instanceof HTMLElement) {\n this.contentContainerEl.nativeElement.appendChild(content.cloneNode(true));\n this.handleContentRendered();\n } else if (typeof content === 'function') {\n const componentRef = this.componentService.createFromComponent(content as AXComponentType<unknown>);\n this._componentRef = componentRef;\n\n const popupRef = this.__popupRef__();\n if (popupRef) {\n popupRef.componentInstance = componentRef.instance;\n }\n\n const inputDefs = (componentRef.componentType as unknown as { ɵcmp?: { inputs?: Record<string, unknown> } })?.ɵcmp\n ?.inputs;\n\n if (config?.data && typeof config.data === 'object') {\n Object.entries(config.data).forEach(([key, value]) => {\n (componentRef.instance as Record<string, unknown>)[key] = value;\n });\n }\n\n if (config?.inputs && typeof config.inputs === 'object') {\n Object.entries(config.inputs).forEach(([key, value]) => {\n if (inputDefs && key in inputDefs) {\n componentRef.setInput(key, value);\n }\n });\n }\n\n if (inputDefs && '__popup__' in inputDefs) {\n componentRef.setInput('__popup__', this.__popupRef__());\n }\n\n const hostElement = componentRef.location.nativeElement;\n this.contentContainerEl.nativeElement.appendChild(hostElement);\n\n const instance = componentRef.instance as {\n onClosed?: { subscribe: (fn: (e: { data?: unknown }) => void) => void };\n };\n if (instance.onClosed) {\n instance.onClosed.subscribe((e) => {\n this.close(e.data);\n });\n }\n\n this.handleContentRendered();\n }\n }\n\n /** @ignore */\n private handleContentRendered() {\n this._zone.runOutsideAngular(() => {\n setTimeout(() => {\n const body = this.getHostElement().querySelector<HTMLDivElement>('.ax-popup-body-container');\n const content = body?.children[0];\n\n if (!content || !body) {\n this.focus();\n return;\n }\n\n const popHeader = this.getHostElement().querySelector<HTMLDivElement>('.ax-popup-header-container');\n const popFooter = this.getHostElement().querySelector<HTMLDivElement>('.ax-popup-footer-container');\n\n const footer =\n content.querySelector<HTMLElement>(':scope > ax-footer') ||\n content.querySelector<HTMLElement>(':scope > ax-popup-footer') ||\n this.getHostElement().querySelector<HTMLElement>('.ax-popup-body-container ax-popup-footer');\n const header = content.querySelector<HTMLDivElement>(':scope > ax-header');\n\n if (footer && popFooter) {\n popFooter.append(footer);\n }\n if (header && popHeader) {\n popHeader.innerHTML = '';\n popHeader.append(header);\n }\n this.focus();\n });\n });\n this.loadingService.hide(this._loadingId);\n this.cdr.markForCheck();\n }\n\n /** @ignore */\n @HostListener('keydown.escape')\n onKeydownHandler() {\n const config = this.__config__();\n const focusedOrHasFocused = this.getHostElement().matches(':focus-within');\n if (!focusedOrHasFocused) return;\n\n if (config?.closeOnEscape === false) return;\n\n if (config?.closeOnEscape === true || this.closeEnabled()) {\n this.close();\n }\n }\n\n /** @ignore */\n protected _handleCloseClick() {\n this.close();\n }\n\n /** @ignore */\n ngOnDestroy() {\n document.removeEventListener('fullscreenchange', this.fullscreenChangeHandler);\n if (this.fullScreenState() && document.fullscreenElement) {\n document.exitFullscreen().catch(() => undefined);\n }\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 */\n close(data?: unknown) {\n const closeFn = () => {\n this.__popupRef__()?.close(data);\n };\n\n const componentInstance = this._componentRef?.instance as\n | { onClosing?: (e: AXComponentClosing) => void | Promise<void> }\n | undefined;\n\n if (typeof componentInstance?.onClosing === 'function') {\n const ee: AXComponentClosing = {\n cancel: false,\n data,\n };\n const closingResult = componentInstance.onClosing(ee);\n if (closingResult instanceof Promise) {\n closingResult.then(() => {\n if (!ee.cancel) {\n closeFn();\n }\n });\n } else {\n if (!ee.cancel) {\n closeFn();\n }\n }\n } else {\n closeFn();\n }\n }\n\n /**\n * Minimizes the popup to the bottom bar.\n */\n minimize() {\n if (this.fullScreenState() && document.fullscreenElement) {\n document.exitFullscreen().catch(() => undefined);\n }\n\n const el = this.popupEl()?.nativeElement;\n if (!el) return;\n\n this.minimizeLeft.set(null);\n this.minimizeRight.set(null);\n this.popupSizeState.set('minimize');\n this.cdr.markForCheck();\n\n requestAnimationFrame(() => {\n const width = el.offsetWidth;\n const index = this.__popupRef__()?._getStackIndex?.() ?? 0;\n const position = resolvePopupMinimize(this.__config__()).position;\n\n if (position === 'bottom-right') {\n this.minimizeLeft.set(null);\n this.minimizeRight.set(`${index * (width + 10)}px`);\n } else {\n this.minimizeRight.set(null);\n this.minimizeLeft.set(`${index * (width + 10)}px`);\n }\n this.cdr.markForCheck();\n });\n }\n\n /**\n * Maximizes the popup using the Fullscreen API.\n */\n maximize() {\n const el = this.popupEl()?.nativeElement;\n if (!el) return;\n\n if (this.popupSizeState() === 'minimize') {\n this.restore();\n }\n\n if (!document.fullscreenElement) {\n el.requestFullscreen().then(() => {\n this.fullScreenState.set(true);\n this.cdr.markForCheck();\n });\n } else {\n document.exitFullscreen().catch(() => undefined);\n }\n }\n\n /**\n * Restores the popup from minimized or fullscreen state.\n */\n restore() {\n if (this.fullScreenState() && document.fullscreenElement) {\n document.exitFullscreen().catch(() => undefined);\n return;\n }\n\n this.minimizeLeft.set(null);\n this.minimizeRight.set(null);\n this.popupSizeState.set('normal');\n this.cdr.markForCheck();\n }\n\n /**\n * Sets inputs on the content component.\n */\n setContentInputs(values: AXComponentInputs) {\n const componentRef = this._componentRef;\n if (componentRef) {\n Object.entries(values).forEach(([key, value]) => {\n componentRef.setInput(key, value);\n });\n }\n }\n\n /**\n * Sets the popup title.\n */\n setTitle(title: string) {\n this.title.set(title);\n this.cdr.markForCheck();\n }\n\n // Drag functionality\n protected onDragStart(event: MouseEvent) {\n const config = this.__config__();\n if (!config?.draggable) return;\n if (this.popupSizeState() === 'minimize' || this.fullScreenState()) return;\n\n this.isDragging.set(true);\n this.dragStartPos = { x: event.clientX, y: event.clientY };\n\n const popup = this.getHostElement().querySelector<HTMLDivElement>('.ax-popup');\n if (popup) {\n const rect = popup.getBoundingClientRect();\n this.elementStartPos = { x: rect.left, y: rect.top };\n }\n\n event.preventDefault();\n }\n\n @HostListener('document:mousemove', ['$event'])\n onDragMove(event: MouseEvent) {\n if (!this.isDragging()) return;\n\n const deltaX = event.clientX - this.dragStartPos.x;\n const deltaY = event.clientY - this.dragStartPos.y;\n\n this.dragOffset.set({\n x: this.elementStartPos.x + deltaX,\n y: this.elementStartPos.y + deltaY,\n });\n }\n\n @HostListener('document:mouseup')\n onDragEnd() {\n this.isDragging.set(false);\n }\n}\n","<div\n class=\"ax-popup-wrapper\"\n aria-modal=\"true\"\n axFocusTrap\n [class.ax-popup-minimized-host]=\"popupSizeState() === 'minimize'\"\n>\n <div\n #popupEl\n class=\"ax-popup ax-popup-{{ __config__()?.size || 'md' }}\"\n tabindex=\"0\"\n [class.ax-popup-dragging]=\"isDragging()\"\n [class.ax-popup-minimized]=\"popupSizeState() === 'minimize'\"\n [class.ax-popup-fullscreen]=\"fullScreenState()\"\n [style.position]=\"dragOffset().x || dragOffset().y || popupSizeState() === 'minimize' ? 'fixed' : null\"\n [style.left]=\"popupSizeState() === 'minimize' ? minimizeLeft() : dragOffset().x ? dragOffset().x + 'px' : null\"\n [style.right]=\"popupSizeState() === 'minimize' ? minimizeRight() : null\"\n [style.top]=\"popupSizeState() === 'minimize' ? 'auto' : dragOffset().y ? dragOffset().y + 'px' : null\"\n [style.bottom]=\"popupSizeState() === 'minimize' ? '0' : null\"\n [style.transform]=\"dragOffset().x || dragOffset().y || popupSizeState() === 'minimize' ? 'none' : null\"\n >\n <div\n class=\"ax-popup-header-container\"\n [class.ax-popup-draggable]=\"__config__()?.draggable && popupSizeState() !== 'minimize' && !fullScreenState()\"\n (mousedown)=\"onDragStart($event)\"\n >\n @if (__config__()?.header) {\n <div class=\"ax-popup-header\">\n <span class=\"ax-popup-title\">{{ title() | translate | async }}</span>\n <div class=\"ax-popup-header-actions\">\n @if (minimizeEnabled()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" (onClick)=\"minimize()\">\n <ax-icon class=\"ax-icon ax-icon-minimize\"></ax-icon>\n </ax-button>\n }\n\n @if (popupSizeState() !== 'normal' || fullScreenState()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" (onClick)=\"restore()\">\n <ax-icon class=\"ax-icon ax-icon-maximize\"></ax-icon>\n </ax-button>\n }\n\n @if (maximizeEnabled()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" (onClick)=\"maximize()\">\n <ax-icon class=\"ax-icon ax-icon-full-screen\"></ax-icon>\n </ax-button>\n }\n\n @if (closeEnabled()) {\n <ax-close-button tabindex=\"1\" (click)=\"_handleCloseClick()\"></ax-close-button>\n }\n </div>\n </div>\n }\n </div>\n <div class=\"ax-popup-main-container ax-loading-container\">\n <div class=\"ax-popup-body-container\" #contentContainer></div>\n <div class=\"ax-popup-footer-container\" [class.ax-popup-footer-visible]=\"__config__()?.footer\"></div>\n </div>\n </div>\n</div>\n","import { AXComponentClosedPromise } from '@acorex/cdk/common';\nimport { AXOverlayRef, AXOverlayService } from '@acorex/cdk/overlay';\nimport { AXComponentInputs } from '@acorex/core/components';\nimport { ComponentRef, inject, Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXPopupComponent } from './popup.component';\nimport { AXPopupConfig, AXPopupContentType, AXPopupRef } from './popup.interface';\n\n/**\n * This is a service which you can create popup with it\n *\n * @category Components\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPopupService {\n private popupList = new Map<number, { overlay: AXOverlayRef<AXPopupComponent>; popup: AXPopupRef }>();\n private overlayService = inject(AXOverlayService);\n\n /**\n * Open popup 1\n */\n open(content: AXPopupContentType, title: string): AXComponentClosedPromise;\n /**\n * Open popup 2\n */\n open(content: AXPopupContentType, config?: AXPopupConfig): AXComponentClosedPromise;\n\n /**\n * @ignore\n */\n open(arg1: AXPopupContentType, arg2?: string | AXPopupConfig): AXComponentClosedPromise {\n const config = this.mergeConfig(arg2);\n\n const promise = new AXComponentClosedPromise((resolve) => {\n this.openRef(arg1, config).then((ref) => {\n ref.onClose.subscribe((data) => {\n if (resolve) {\n resolve({\n sender: ref.componentInstance,\n data: data,\n });\n }\n });\n });\n });\n\n return promise;\n }\n\n /**\n * Opens a popup and returns a mutable reference (for host components and advanced control).\n */\n async openRef<TResult = any>(content: AXPopupContentType, config?: AXPopupConfig): Promise<AXPopupRef<TResult>> {\n return this.openInternal(content, this.mergeConfig(config));\n }\n\n private mergeConfig(arg2?: string | AXPopupConfig): AXPopupConfig {\n const config: AXPopupConfig = {\n closeButton: true,\n header: true,\n footer: false,\n size: 'md',\n maximizable: false,\n draggable: true,\n hasBackdrop: true,\n closeOnBackdropClick: false,\n data: {},\n closeOnNavigation: true,\n panelClass: ['animate-fadeIn', 'animate-fast'],\n buttons: {\n close: true,\n maximize: false,\n minimize: {\n enable: false,\n position: 'bottom-right',\n },\n },\n };\n if (typeof arg2 === 'string') {\n config.title = arg2;\n } else if (arg2) {\n const { buttons, ...rest } = arg2;\n Object.assign(config, rest);\n if (buttons) {\n config.buttons = {\n ...config.buttons,\n ...buttons,\n minimize: {\n enable: false,\n position: 'bottom-right',\n ...config.buttons?.minimize,\n ...buttons.minimize,\n },\n };\n }\n }\n return config;\n }\n\n /**\n * Opens a popup with the specified content and configuration.\n */\n private async openInternal<TResult = any>(\n content: AXPopupContentType,\n config: AXPopupConfig,\n ): Promise<AXPopupRef<TResult>> {\n const randomId = Math.floor(Math.random() * 100000000000);\n const onClose = new Subject<TResult>();\n\n const returnRef: AXPopupRef<TResult> = {\n close: (data) => {\n this.close(randomId, data);\n },\n setInputs: (values: AXComponentInputs) => {\n this.setInputs(randomId, values);\n },\n setTitle: (title: string) => {\n this.setTitle(randomId, title);\n },\n minimize: () => {\n this.minimize(randomId);\n },\n maximize: () => {\n this.maximize(randomId);\n },\n restore: () => {\n this.restore(randomId);\n },\n bringToFront: () => {\n this.bringToFront(randomId);\n },\n onClose,\n _getStackIndex: () => this.getMapIndexOf(randomId),\n };\n\n if (config._bindContentInputs) {\n config.inputs = {\n ...((config.inputs as Record<string, unknown>) ?? {}),\n ...config._bindContentInputs(returnRef),\n };\n }\n\n const panelClasses = ['ax-popup-overlay'];\n if (config.panelClass) {\n panelClasses.push(...config.panelClass);\n }\n\n const ref = await this.overlayService.create(AXPopupComponent, {\n contextElement: config.contextElement,\n visualContextScope: 'theme',\n backdrop: {\n enabled: config.hasBackdrop ?? true,\n background: true,\n // Dispose is handled via onDispose so close goes through onClose.\n closeOnClick: config.closeOnBackdropClick ?? false,\n backdropClass: config.backdropClass,\n },\n panelClass: panelClasses,\n inputs: {\n __content__: content,\n __config__: config,\n __popupRef__: returnRef,\n __id__: randomId,\n },\n onDispose: () => {\n // Backdrop click (or external dispose) — complete close pipeline if still open.\n const entry = this.popupList.get(randomId);\n if (!entry) return;\n this.popupList.delete(randomId);\n entry.popup.onClose.next(undefined as TResult);\n entry.popup.onClose.complete();\n },\n });\n\n this.popupList.set(randomId, { overlay: ref, popup: returnRef });\n\n return returnRef;\n }\n\n /**\n * Closes a popup by its ID.\n */\n close<TResult = any>(id: number, data?: TResult): void {\n const ref = this.popupList.get(id);\n if (!ref) return;\n this.popupList.delete(id);\n ref.popup.onClose.next(data);\n ref.popup.onClose.complete();\n ref.overlay.dispose();\n }\n\n /**\n * Sets input values for a popup by its ID.\n */\n setInputs(id: number, values: AXComponentInputs): void {\n const ref = this.popupList.get(id)?.overlay.instance;\n if (!ref) return;\n if (ref instanceof ComponentRef) {\n const componentInstance = ref.instance as AXPopupComponent;\n componentInstance.setContentInputs(values);\n }\n }\n\n /**\n * Sets the title for a popup by its ID.\n */\n setTitle(id: number, title: string): void {\n const ref = this.popupList.get(id)?.overlay.instance;\n if (!ref) return;\n if (ref instanceof ComponentRef) {\n const componentInstance = ref.instance as AXPopupComponent;\n componentInstance.setTitle(title);\n }\n }\n\n minimize(id: number): void {\n const instance = this.getPopupInstance(id);\n instance?.minimize();\n }\n\n maximize(id: number): void {\n const instance = this.getPopupInstance(id);\n instance?.maximize();\n }\n\n restore(id: number): void {\n const instance = this.getPopupInstance(id);\n instance?.restore();\n }\n\n /**\n * Gets the index of a popup in the open stack (used for minimized bar positioning).\n */\n getMapIndexOf(targetKey: number): number {\n let index = 0;\n for (const key of this.popupList.keys()) {\n if (key === targetKey) {\n return index;\n }\n index++;\n }\n return -1;\n }\n\n /**\n * Brings a popup to the front of all other overlays.\n */\n bringToFront(id: number): void {\n const ref = this.popupList.get(id);\n if (!ref) return;\n ref.overlay.bringToFront();\n }\n\n private getPopupInstance(id: number): AXPopupComponent | null {\n const ref = this.popupList.get(id)?.overlay.instance;\n if (!ref) return null;\n if (ref instanceof ComponentRef) {\n return ref.instance as AXPopupComponent;\n }\n return null;\n }\n}\n","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { AXComponentInputs } from '@acorex/core/components';\nimport { Component, inject, signal, TemplateRef, viewChild, ViewEncapsulation } from '@angular/core';\nimport { AXPopupConfig, AXPopupRef } from '../popup.interface';\nimport { AXPopupService } from '../popup.service';\n\n/**\n * Declarative popup host. Project content and call `open()` / `close()` on the component instance.\n *\n * @example\n * ```html\n * <ax-popup-host #popup>\n * <p>Content</p>\n * </ax-popup-host>\n * <ax-button (onClick)=\"popup.open({ title: 'Hello', header: true })\"></ax-button>\n * ```\n */\n@Component({\n selector: 'ax-popup-host',\n template: `\n <ng-template #contentTemplate>\n <ng-content></ng-content>\n </ng-template>\n `,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXComponent, useExisting: AXPopupHostComponent }],\n})\nexport class AXPopupHostComponent extends NXComponent {\n private popupService = inject(AXPopupService);\n protected template = viewChild(TemplateRef);\n private ref = signal<AXPopupRef | null>(null);\n\n /**\n * Opens the projected content in a popup overlay.\n */\n async open(options?: AXPopupConfig): Promise<AXPopupRef> {\n const template = this.template();\n if (!template) {\n throw new Error('AXPopupHostComponent: content template is not ready.');\n }\n const ref = await this.popupService.openRef(template, options);\n this.ref.set(ref);\n ref.onClose.subscribe(() => {\n if (this.ref() === ref) {\n this.ref.set(null);\n }\n });\n return ref;\n }\n\n /**\n * Closes the currently open popup hosted by this component.\n */\n async close(data?: unknown): Promise<void> {\n const current = this.ref();\n if (!current) return;\n current.close(data);\n }\n\n /**\n * Sets input values for the popup content component.\n */\n async setInputs(values: AXComponentInputs): Promise<void> {\n this.ref()?.setInputs(values);\n }\n\n /**\n * Minimizes the hosted popup.\n */\n async minimize(): Promise<void> {\n this.ref()?.minimize();\n }\n\n /**\n * Maximizes the hosted popup.\n */\n async maximize(): Promise<void> {\n this.ref()?.maximize();\n }\n\n /**\n * Restores the hosted popup.\n */\n async restore(): Promise<void> {\n this.ref()?.restore();\n }\n}\n","import { AXCommonModule } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXPopupFooterComponent } from './popup-footer/popup-footer.component';\nimport { AXPopupHostComponent } from './popup-host/popup-host.component';\nimport { AXPopupComponent } from './popup.component';\nimport { AXPopupService } from './popup.service';\n\nconst COMPONENT = [AXPopupComponent, AXPopupHostComponent, AXPopupFooterComponent];\nconst MODULES = [CommonModule, AXCommonModule, AXDecoratorModule, AXTranslationModule];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [AXPopupService],\n})\nexport class AXPopupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -164,11 +164,11 @@ class AXRailNavigationComponent extends MXBaseComponent {
164
164
  return cssClasses;
165
165
  }
166
166
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXRailNavigationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
167
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.8", type: AXRailNavigationComponent, isStandalone: true, selector: "ax-rail-navigation", inputs: { location: { classPropertyName: "location", publicName: "location", isSignal: true, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.__hostClass" } }, providers: [{ provide: AXComponent, useExisting: AXRailNavigationComponent }], queries: [{ propertyName: "railNavItems", predicate: AXRailNavigationItemComponent, isSignal: true }], viewQueries: [{ propertyName: "indicator", first: true, predicate: ["indicator"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix, ax-header\"></ng-content>\n<ng-content select=\"ax-rail-navigation-item, ng-container, ng-content\"></ng-content>\n<div class=\"ax-suffix-container\">\n <ng-content select=\"ax-suffix, ax-footer\"></ng-content>\n</div>\n<span class=\"ax-rail-indicator\" #indicator></span>\n", styles: ["@layer properties;@layer base{:root{--ax-comp-rail-navigation-indicator-size: 2px}}@layer components{ax-rail-navigation{position:relative;display:flex;height:100%;width:calc(var(--spacing, .25rem) * 28);flex-direction:column;align-items:center;overflow-y:auto;padding-block:calc(var(--spacing, .25rem) * 4);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)))}ax-rail-navigation .ax-suffix-container{display:flex;height:100%;align-items:flex-end}ax-rail-navigation ax-rail-navigation-item{width:100%;-webkit-user-select:none;user-select:none}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item{display:flex;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--spacing, .25rem) * 1);padding-block:calc(var(--spacing, .25rem) * 5);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);color:rgba(var(--ax-sys-color-on-lightest-surface));opacity:60%;transition-property:opacity,background-color;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s))}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item ax-icon{display:flex;justify-content:center;border-radius:var(--radius-2xl, 1rem);padding-inline:calc(var(--spacing, .25rem) * 5);padding-block:calc(var(--spacing, .25rem) * 1);font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));transition-property:background-color,font-weight;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s))}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item ax-text{--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item:hover{opacity:75%}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item.ax-state-disabled{cursor:not-allowed;opacity:30%}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item.ax-state-disabled:hover{opacity:30%}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item.ax-state-active{opacity:100%}ax-rail-navigation .ax-rail-indicator{display:none}:is(ax-rail-navigation.ax-look-with-line,ax-rail-navigation.ax-look-with-line-color) .ax-rail-indicator{position:absolute;display:block;width:var(--ax-comp-rail-navigation-indicator-size);background-color:rgba(var(--ax-sys-color-on-lightest-surface));transition-property:height,top;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s))}ax-rail-navigation.ax-look-with-line-color .ax-state-active{background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color: color-mix(in lab,red,red)){ax-rail-navigation.ax-look-with-line-color .ax-state-active{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 10%,transparent)}}:is(ax-rail-navigation.ax-look-pills,ax-rail-navigation.ax-look-pills-color) .ax-rail-navigation-item{opacity:70%}:is(ax-rail-navigation.ax-look-pills,ax-rail-navigation.ax-look-pills-color) .ax-rail-navigation-item:hover{--tw-font-weight: var(--font-weight-bold, 700);font-weight:var(--font-weight-bold, 700)}:is(ax-rail-navigation.ax-look-pills,ax-rail-navigation.ax-look-pills-color) .ax-rail-navigation-item:hover{opacity:85%}:is(ax-rail-navigation.ax-look-pills,ax-rail-navigation.ax-look-pills-color) .ax-rail-navigation-item:hover ax-icon{background-color:rgba(var(--ax-sys-color-surface))}:is(ax-rail-navigation.ax-look-pills,ax-rail-navigation.ax-look-pills-color) .ax-rail-navigation-item.ax-state-active{--tw-font-weight: var(--font-weight-extrabold, 800);font-weight:var(--font-weight-extrabold, 800);opacity:100%}:is(ax-rail-navigation.ax-look-pills,ax-rail-navigation.ax-look-pills-color) .ax-rail-navigation-item.ax-state-active ax-icon{background-color:rgba(var(--ax-sys-color-darker-surface))}:is(ax-rail-navigation.ax-look-pills,ax-rail-navigation.ax-look-pills-color) .ax-rail-navigation-item.ax-state-active ax-icon:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:rgba(var(--ax-sys-color-lighter-surface))}ax-rail-navigation.ax-look-pills-color .ax-state-active ax-icon{background-color:rgba(var(--ax-sys-color-primary-surface))!important}@supports (color: color-mix(in lab,red,red)){ax-rail-navigation.ax-look-pills-color .ax-state-active ax-icon{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 20%,transparent)!important}}}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@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-font-weight: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], encapsulation: i0.ViewEncapsulation.None }); }
167
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.8", type: AXRailNavigationComponent, isStandalone: true, selector: "ax-rail-navigation", inputs: { location: { classPropertyName: "location", publicName: "location", isSignal: true, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.__hostClass" } }, providers: [{ provide: AXComponent, useExisting: AXRailNavigationComponent }], queries: [{ propertyName: "railNavItems", predicate: AXRailNavigationItemComponent, isSignal: true }], viewQueries: [{ propertyName: "indicator", first: true, predicate: ["indicator"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix, ax-header\"></ng-content>\n<ng-content select=\"ax-rail-navigation-item, ng-container, ng-content\"></ng-content>\n<div class=\"ax-suffix-container w-full flex justify-center\">\n <ng-content select=\"ax-suffix, ax-footer\"></ng-content>\n</div>\n<span class=\"ax-rail-indicator\" #indicator></span>\n", styles: ["@layer properties;@layer base{:root{--ax-comp-rail-navigation-indicator-size: 2px}}@layer components{ax-rail-navigation{position:relative;display:flex;height:100%;width:calc(var(--spacing, .25rem) * 28);flex-direction:column;align-items:center;overflow-y:auto;padding-block:calc(var(--spacing, .25rem) * 4);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)))}ax-rail-navigation .ax-suffix-container{display:flex;height:100%;align-items:flex-end}ax-rail-navigation ax-rail-navigation-item{width:100%;-webkit-user-select:none;user-select:none}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item{display:flex;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--spacing, .25rem) * 1);padding-block:calc(var(--spacing, .25rem) * 5);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);color:rgba(var(--ax-sys-color-on-lightest-surface));opacity:60%;transition-property:opacity,background-color;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s))}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item ax-icon{display:flex;justify-content:center;border-radius:var(--radius-2xl, 1rem);padding-inline:calc(var(--spacing, .25rem) * 5);padding-block:calc(var(--spacing, .25rem) * 1);font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));transition-property:background-color,font-weight;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s))}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item ax-text{--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item:hover{opacity:75%}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item.ax-state-disabled{cursor:not-allowed;opacity:30%}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item.ax-state-disabled:hover{opacity:30%}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item.ax-state-active{opacity:100%}ax-rail-navigation .ax-rail-indicator{display:none}:is(ax-rail-navigation.ax-look-with-line,ax-rail-navigation.ax-look-with-line-color) .ax-rail-indicator{position:absolute;display:block;width:var(--ax-comp-rail-navigation-indicator-size);background-color:rgba(var(--ax-sys-color-on-lightest-surface));transition-property:height,top;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s))}ax-rail-navigation.ax-look-with-line-color .ax-state-active{background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color: color-mix(in lab,red,red)){ax-rail-navigation.ax-look-with-line-color .ax-state-active{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 10%,transparent)}}:is(ax-rail-navigation.ax-look-pills,ax-rail-navigation.ax-look-pills-color) .ax-rail-navigation-item{opacity:70%}:is(ax-rail-navigation.ax-look-pills,ax-rail-navigation.ax-look-pills-color) .ax-rail-navigation-item:hover{--tw-font-weight: var(--font-weight-bold, 700);font-weight:var(--font-weight-bold, 700)}:is(ax-rail-navigation.ax-look-pills,ax-rail-navigation.ax-look-pills-color) .ax-rail-navigation-item:hover{opacity:85%}:is(ax-rail-navigation.ax-look-pills,ax-rail-navigation.ax-look-pills-color) .ax-rail-navigation-item:hover ax-icon{background-color:rgba(var(--ax-sys-color-surface))}:is(ax-rail-navigation.ax-look-pills,ax-rail-navigation.ax-look-pills-color) .ax-rail-navigation-item.ax-state-active{--tw-font-weight: var(--font-weight-extrabold, 800);font-weight:var(--font-weight-extrabold, 800);opacity:100%}:is(ax-rail-navigation.ax-look-pills,ax-rail-navigation.ax-look-pills-color) .ax-rail-navigation-item.ax-state-active ax-icon{background-color:rgba(var(--ax-sys-color-darker-surface))}:is(ax-rail-navigation.ax-look-pills,ax-rail-navigation.ax-look-pills-color) .ax-rail-navigation-item.ax-state-active ax-icon:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:rgba(var(--ax-sys-color-lighter-surface))}ax-rail-navigation.ax-look-pills-color .ax-state-active ax-icon{background-color:rgba(var(--ax-sys-color-primary-surface))!important}@supports (color: color-mix(in lab,red,red)){ax-rail-navigation.ax-look-pills-color .ax-state-active ax-icon{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 20%,transparent)!important}}}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@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-font-weight: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], encapsulation: i0.ViewEncapsulation.None }); }
168
168
  }
169
169
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXRailNavigationComponent, decorators: [{
170
170
  type: Component,
171
- args: [{ selector: 'ax-rail-navigation', encapsulation: ViewEncapsulation.None, providers: [{ provide: AXComponent, useExisting: AXRailNavigationComponent }], template: "<ng-content select=\"ax-prefix, ax-header\"></ng-content>\n<ng-content select=\"ax-rail-navigation-item, ng-container, ng-content\"></ng-content>\n<div class=\"ax-suffix-container\">\n <ng-content select=\"ax-suffix, ax-footer\"></ng-content>\n</div>\n<span class=\"ax-rail-indicator\" #indicator></span>\n", styles: ["@layer properties;@layer base{:root{--ax-comp-rail-navigation-indicator-size: 2px}}@layer components{ax-rail-navigation{position:relative;display:flex;height:100%;width:calc(var(--spacing, .25rem) * 28);flex-direction:column;align-items:center;overflow-y:auto;padding-block:calc(var(--spacing, .25rem) * 4);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)))}ax-rail-navigation .ax-suffix-container{display:flex;height:100%;align-items:flex-end}ax-rail-navigation ax-rail-navigation-item{width:100%;-webkit-user-select:none;user-select:none}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item{display:flex;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--spacing, .25rem) * 1);padding-block:calc(var(--spacing, .25rem) * 5);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);color:rgba(var(--ax-sys-color-on-lightest-surface));opacity:60%;transition-property:opacity,background-color;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s))}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item ax-icon{display:flex;justify-content:center;border-radius:var(--radius-2xl, 1rem);padding-inline:calc(var(--spacing, .25rem) * 5);padding-block:calc(var(--spacing, .25rem) * 1);font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));transition-property:background-color,font-weight;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s))}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item ax-text{--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item:hover{opacity:75%}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item.ax-state-disabled{cursor:not-allowed;opacity:30%}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item.ax-state-disabled:hover{opacity:30%}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item.ax-state-active{opacity:100%}ax-rail-navigation .ax-rail-indicator{display:none}:is(ax-rail-navigation.ax-look-with-line,ax-rail-navigation.ax-look-with-line-color) .ax-rail-indicator{position:absolute;display:block;width:var(--ax-comp-rail-navigation-indicator-size);background-color:rgba(var(--ax-sys-color-on-lightest-surface));transition-property:height,top;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s))}ax-rail-navigation.ax-look-with-line-color .ax-state-active{background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color: color-mix(in lab,red,red)){ax-rail-navigation.ax-look-with-line-color .ax-state-active{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 10%,transparent)}}:is(ax-rail-navigation.ax-look-pills,ax-rail-navigation.ax-look-pills-color) .ax-rail-navigation-item{opacity:70%}:is(ax-rail-navigation.ax-look-pills,ax-rail-navigation.ax-look-pills-color) .ax-rail-navigation-item:hover{--tw-font-weight: var(--font-weight-bold, 700);font-weight:var(--font-weight-bold, 700)}:is(ax-rail-navigation.ax-look-pills,ax-rail-navigation.ax-look-pills-color) .ax-rail-navigation-item:hover{opacity:85%}:is(ax-rail-navigation.ax-look-pills,ax-rail-navigation.ax-look-pills-color) .ax-rail-navigation-item:hover ax-icon{background-color:rgba(var(--ax-sys-color-surface))}:is(ax-rail-navigation.ax-look-pills,ax-rail-navigation.ax-look-pills-color) .ax-rail-navigation-item.ax-state-active{--tw-font-weight: var(--font-weight-extrabold, 800);font-weight:var(--font-weight-extrabold, 800);opacity:100%}:is(ax-rail-navigation.ax-look-pills,ax-rail-navigation.ax-look-pills-color) .ax-rail-navigation-item.ax-state-active ax-icon{background-color:rgba(var(--ax-sys-color-darker-surface))}:is(ax-rail-navigation.ax-look-pills,ax-rail-navigation.ax-look-pills-color) .ax-rail-navigation-item.ax-state-active ax-icon:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:rgba(var(--ax-sys-color-lighter-surface))}ax-rail-navigation.ax-look-pills-color .ax-state-active ax-icon{background-color:rgba(var(--ax-sys-color-primary-surface))!important}@supports (color: color-mix(in lab,red,red)){ax-rail-navigation.ax-look-pills-color .ax-state-active ax-icon{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 20%,transparent)!important}}}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@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-font-weight: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
171
+ args: [{ selector: 'ax-rail-navigation', encapsulation: ViewEncapsulation.None, providers: [{ provide: AXComponent, useExisting: AXRailNavigationComponent }], template: "<ng-content select=\"ax-prefix, ax-header\"></ng-content>\n<ng-content select=\"ax-rail-navigation-item, ng-container, ng-content\"></ng-content>\n<div class=\"ax-suffix-container w-full flex justify-center\">\n <ng-content select=\"ax-suffix, ax-footer\"></ng-content>\n</div>\n<span class=\"ax-rail-indicator\" #indicator></span>\n", styles: ["@layer properties;@layer base{:root{--ax-comp-rail-navigation-indicator-size: 2px}}@layer components{ax-rail-navigation{position:relative;display:flex;height:100%;width:calc(var(--spacing, .25rem) * 28);flex-direction:column;align-items:center;overflow-y:auto;padding-block:calc(var(--spacing, .25rem) * 4);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)))}ax-rail-navigation .ax-suffix-container{display:flex;height:100%;align-items:flex-end}ax-rail-navigation ax-rail-navigation-item{width:100%;-webkit-user-select:none;user-select:none}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item{display:flex;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--spacing, .25rem) * 1);padding-block:calc(var(--spacing, .25rem) * 5);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);color:rgba(var(--ax-sys-color-on-lightest-surface));opacity:60%;transition-property:opacity,background-color;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s))}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item ax-icon{display:flex;justify-content:center;border-radius:var(--radius-2xl, 1rem);padding-inline:calc(var(--spacing, .25rem) * 5);padding-block:calc(var(--spacing, .25rem) * 1);font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));transition-property:background-color,font-weight;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s))}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item ax-text{--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item:hover{opacity:75%}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item.ax-state-disabled{cursor:not-allowed;opacity:30%}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item.ax-state-disabled:hover{opacity:30%}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item.ax-state-active{opacity:100%}ax-rail-navigation .ax-rail-indicator{display:none}:is(ax-rail-navigation.ax-look-with-line,ax-rail-navigation.ax-look-with-line-color) .ax-rail-indicator{position:absolute;display:block;width:var(--ax-comp-rail-navigation-indicator-size);background-color:rgba(var(--ax-sys-color-on-lightest-surface));transition-property:height,top;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s))}ax-rail-navigation.ax-look-with-line-color .ax-state-active{background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color: color-mix(in lab,red,red)){ax-rail-navigation.ax-look-with-line-color .ax-state-active{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 10%,transparent)}}:is(ax-rail-navigation.ax-look-pills,ax-rail-navigation.ax-look-pills-color) .ax-rail-navigation-item{opacity:70%}:is(ax-rail-navigation.ax-look-pills,ax-rail-navigation.ax-look-pills-color) .ax-rail-navigation-item:hover{--tw-font-weight: var(--font-weight-bold, 700);font-weight:var(--font-weight-bold, 700)}:is(ax-rail-navigation.ax-look-pills,ax-rail-navigation.ax-look-pills-color) .ax-rail-navigation-item:hover{opacity:85%}:is(ax-rail-navigation.ax-look-pills,ax-rail-navigation.ax-look-pills-color) .ax-rail-navigation-item:hover ax-icon{background-color:rgba(var(--ax-sys-color-surface))}:is(ax-rail-navigation.ax-look-pills,ax-rail-navigation.ax-look-pills-color) .ax-rail-navigation-item.ax-state-active{--tw-font-weight: var(--font-weight-extrabold, 800);font-weight:var(--font-weight-extrabold, 800);opacity:100%}:is(ax-rail-navigation.ax-look-pills,ax-rail-navigation.ax-look-pills-color) .ax-rail-navigation-item.ax-state-active ax-icon{background-color:rgba(var(--ax-sys-color-darker-surface))}:is(ax-rail-navigation.ax-look-pills,ax-rail-navigation.ax-look-pills-color) .ax-rail-navigation-item.ax-state-active ax-icon:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:rgba(var(--ax-sys-color-lighter-surface))}ax-rail-navigation.ax-look-pills-color .ax-state-active ax-icon{background-color:rgba(var(--ax-sys-color-primary-surface))!important}@supports (color: color-mix(in lab,red,red)){ax-rail-navigation.ax-look-pills-color .ax-state-active ax-icon{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 20%,transparent)!important}}}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@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-font-weight: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
172
172
  }], ctorParameters: () => [], propDecorators: { indicator: [{ type: i0.ViewChild, args: ['indicator', { isSignal: true }] }], railNavItems: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => AXRailNavigationItemComponent), { isSignal: true }] }], location: [{ type: i0.Input, args: [{ isSignal: true, alias: "location", required: false }] }], look: [{ type: i0.Input, args: [{ isSignal: true, alias: "look", required: false }] }], __hostClass: [{
173
173
  type: HostBinding,
174
174
  args: ['class']
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-rail-navigation.mjs","sources":["../../../../packages/components/rail-navigation/src/lib/rail-navigation.service.ts","../../../../packages/components/rail-navigation/src/lib/rail-navigation-item/rail-navigation-item.component.ts","../../../../packages/components/rail-navigation/src/lib/rail-navigation-item/rail-navigation-item.component.html","../../../../packages/components/rail-navigation/src/lib/rail-navigation.component.ts","../../../../packages/components/rail-navigation/src/lib/rail-navigation.component.html","../../../../packages/components/rail-navigation/src/lib/rail-navigation.module.ts","../../../../packages/components/rail-navigation/src/acorex-components-rail-navigation.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXRailNavigationItemComponent } from './rail-navigation-item/rail-navigation-item.component';\n\n@Injectable()\nexport class AXRailNavigationService {\n private activeItem = new Subject<AXRailNavigationItemComponent>();\n\n /**\n * Observable that emits the currently active rail navigation item.\n */\n activeItem$ = this.activeItem.asObservable();\n\n /**\n * Sets the specified item as the active rail navigation item.\n * @param item - The rail navigation item to set as active\n */\n setActive(item: AXRailNavigationItemComponent): void {\n this.activeItem.next(item);\n }\n}\n","import { AXComponent, MXBaseComponent } from '@acorex/cdk/common';\nimport { isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n inject,\n input,\n model,\n OnDestroy,\n output,\n PLATFORM_ID,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { IsActiveMatchOptions, RouterLink, RouterLinkActive, UrlTree } from '@angular/router';\nimport { AXRailClickEvent } from '../rail-navigation.class';\nimport { AXRailNavigationService } from '../rail-navigation.service';\n\n@Component({\n selector: 'ax-rail-navigation-item',\n templateUrl: './rail-navigation-item.component.html',\n\n encapsulation: ViewEncapsulation.None,\n imports: [RouterLink, RouterLinkActive, NgTemplateOutlet],\n providers: [{ provide: AXComponent, useExisting: AXRailNavigationItemComponent }],\n})\nexport class AXRailNavigationItemComponent extends MXBaseComponent implements AfterViewInit, OnDestroy {\n private railNavigationService = inject(AXRailNavigationService);\n private platformId = inject(PLATFORM_ID);\n\n onClick = output<AXRailClickEvent>();\n\n active = model(false);\n disabled = model(false);\n\n href = input<string | null>();\n routerLink = input<string | any[] | UrlTree | null>();\n routerLinkActive = input<string | string[]>('ax-state-active');\n target = input<'_blank' | '_self' | '_parent' | '_top'>('_self');\n routerLinkActiveOptions = input<{ exact: boolean } | IsActiveMatchOptions>({ exact: false });\n\n itemContainer = viewChild<ElementRef<HTMLElement>>('itemContainer');\n\n private observer: MutationObserver | null = null;\n\n ngAfterViewInit(): void {\n this.checkActive(this.itemContainer().nativeElement);\n if (isPlatformBrowser(this.platformId)) {\n this.observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (mutation.attributeName === 'class') {\n this.checkActive(mutation.target as HTMLElement);\n }\n });\n });\n this.observer.observe(this.itemContainer().nativeElement, {\n attributes: true,\n childList: false,\n characterData: false,\n });\n }\n }\n\n ngOnDestroy(): void {\n if (isPlatformBrowser(this.platformId)) {\n this.observer.disconnect();\n this.observer = null;\n }\n }\n\n handleClickEvent(e: MouseEvent) {\n if (this.disabled()) return;\n this.onClick.emit({\n component: this,\n htmlElement: this.getHostElement(),\n nativeEvent: e,\n });\n }\n\n /**\n * Gets the height and top position of the item.\n * @returns Object containing height and top position\n */\n getStats() {\n return {\n height: this.getHostElement().clientHeight,\n top: this.getHostElement().offsetTop,\n };\n }\n\n private checkActive(item: HTMLElement) {\n if (item.classList.contains('ax-state-active') && !this.disabled()) {\n this.railNavigationService.setActive(this);\n }\n }\n}\n","@if (routerLink()) {\n <a\n #itemContainer\n [target]=\"target()\"\n [routerLink]=\"routerLink()\"\n class=\"ax-rail-navigation-item\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled()\"\n [routerLinkActive]=\"routerLinkActive()\"\n [routerLinkActiveOptions]=\"routerLinkActiveOptions()\"\n >\n <ng-container [ngTemplateOutlet]=\"railNavigationItemContent\"></ng-container>\n </a>\n} @else if (href()) {\n <a\n #itemContainer\n [href]=\"href()\"\n [target]=\"target()\"\n class=\"ax-rail-navigation-item\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-active]=\"active() && !disabled()\"\n [class.ax-state-disabled]=\"disabled()\"\n >\n <ng-container [ngTemplateOutlet]=\"railNavigationItemContent\"></ng-container>\n </a>\n} @else {\n <div\n #itemContainer\n class=\"ax-rail-navigation-item\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-active]=\"active() && !disabled()\"\n [class.ax-state-disabled]=\"disabled()\"\n >\n <ng-container [ngTemplateOutlet]=\"railNavigationItemContent\"></ng-container>\n </div>\n}\n\n<ng-template #railNavigationItemContent>\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content select=\"ax-icon\"></ng-content>\n <ng-content select=\"ax-text\"></ng-content>\n <ng-content select=\"ng-container,ng-content\"></ng-content>\n <ng-content select=\"ax-suffix\"></ng-content>\n</ng-template>\n","import { AXComponent, MXBaseComponent } from '@acorex/cdk/common';\nimport {\n Component,\n contentChildren,\n effect,\n ElementRef,\n HostBinding,\n inject,\n input,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXRailNavigationItemComponent } from './rail-navigation-item/rail-navigation-item.component';\nimport { AXRailLocation, AXRailLook } from './rail-navigation.class';\nimport { AXRailNavigationService } from './rail-navigation.service';\n\n@Component({\n selector: 'ax-rail-navigation',\n templateUrl: './rail-navigation.component.html',\n styleUrls: ['./rail-navigation.component.css'],\n\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXComponent, useExisting: AXRailNavigationComponent }],\n})\nexport class AXRailNavigationComponent extends MXBaseComponent {\n private railNavigationService = inject(AXRailNavigationService);\n\n private indicator = viewChild<ElementRef<HTMLSpanElement>>('indicator');\n railNavItems = contentChildren(AXRailNavigationItemComponent);\n\n location = input<AXRailLocation>('start');\n look = input<AXRailLook>('with-line-color');\n\n private activeTab = signal<AXRailNavigationItemComponent | null>(null);\n\n #positionIndicatorEffect = effect(() => {\n const look = this.look();\n const location = this.location();\n const activeTab = this.activeTab();\n if (location && activeTab && (look === 'with-line-color' || look === 'with-line')) {\n setTimeout(() => {\n this.setIndicatorPosition(activeTab);\n });\n }\n });\n\n constructor() {\n super();\n this.railNavigationService.activeItem$.subscribe((item) => {\n this.activeTab.set(item);\n });\n }\n\n private setIndicatorPosition(tabItem: AXRailNavigationItemComponent) {\n const indicatorEl = this.indicator()?.nativeElement;\n if (!indicatorEl) return;\n const indicatorStyle = indicatorEl.style;\n const itemStats = tabItem.getStats();\n if (itemStats.height === 0 && itemStats.top === 0) return;\n\n indicatorStyle.width = 'var(--ax-comp-rail-navigation-indicator-size)';\n indicatorStyle.height = `${itemStats.height}px`;\n indicatorStyle.top = `${itemStats.top}px`;\n indicatorStyle.bottom = 'unset';\n if (this.location() === 'start') {\n indicatorStyle.insetInlineStart = '0px';\n indicatorStyle.insetInlineEnd = 'unset';\n } else if (this.location() === 'end') {\n indicatorStyle.insetInlineStart = 'unset';\n indicatorStyle.insetInlineEnd = '0px';\n }\n }\n\n @HostBinding('class')\n private get __hostClass(): string[] {\n const cssClasses: string[] = [];\n cssClasses.push(`ax-${this.location()}`);\n cssClasses.push(`ax-look-${this.look()}`);\n return cssClasses;\n }\n}\n","<ng-content select=\"ax-prefix, ax-header\"></ng-content>\n<ng-content select=\"ax-rail-navigation-item, ng-container, ng-content\"></ng-content>\n<div class=\"ax-suffix-container\">\n <ng-content select=\"ax-suffix, ax-footer\"></ng-content>\n</div>\n<span class=\"ax-rail-indicator\" #indicator></span>\n","import { NgModule } from '@angular/core';\nimport { AXRailNavigationItemComponent } from './rail-navigation-item/rail-navigation-item.component';\nimport { AXRailNavigationComponent } from './rail-navigation.component';\n\n@NgModule({\n imports: [AXRailNavigationComponent, AXRailNavigationItemComponent],\n exports: [AXRailNavigationComponent, AXRailNavigationItemComponent],\n})\nexport class AXRailNavigationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MAKa,uBAAuB,CAAA;AADpC,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAiC;AAEjE;;AAEG;AACH,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE;AAS7C,IAAA;AAPC;;;AAGG;AACH,IAAA,SAAS,CAAC,IAAmC,EAAA;AAC3C,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B;8GAdW,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAvB,uBAAuB,EAAA,CAAA,CAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC;;;ACuBK,MAAO,6BAA8B,SAAQ,eAAe,CAAA;AARlE,IAAA,WAAA,GAAA;;AASU,QAAA,IAAA,CAAA,qBAAqB,GAAG,MAAM,CAAC,uBAAuB,CAAC;AACvD,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;QAExC,IAAA,CAAA,OAAO,GAAG,MAAM,EAAoB;QAEpC,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,KAAK;mFAAC;QACrB,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK;qFAAC;AAEvB,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK;4FAAiB;AAC7B,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK;kGAAmC;QACrD,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAAoB,iBAAiB;6FAAC;QAC9D,IAAA,CAAA,MAAM,GAAG,KAAK,CAA0C,OAAO;mFAAC;AAChE,QAAA,IAAA,CAAA,uBAAuB,GAAG,KAAK,CAA4C,EAAE,KAAK,EAAE,KAAK,EAAE;oGAAC;QAE5F,IAAA,CAAA,aAAa,GAAG,SAAS,CAA0B,eAAe;0FAAC;QAE3D,IAAA,CAAA,QAAQ,GAA4B,IAAI;AAoDjD,IAAA;IAlDC,eAAe,GAAA;QACb,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,aAAa,CAAC;AACpD,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,CAAC,SAAS,KAAI;AACjD,gBAAA,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;AAC7B,oBAAA,IAAI,QAAQ,CAAC,aAAa,KAAK,OAAO,EAAE;AACtC,wBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAqB,CAAC;oBAClD;AACF,gBAAA,CAAC,CAAC;AACJ,YAAA,CAAC,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,aAAa,EAAE;AACxD,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,SAAS,EAAE,KAAK;AAChB,gBAAA,aAAa,EAAE,KAAK;AACrB,aAAA,CAAC;QACJ;IACF;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACtC,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;AAC1B,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;QACtB;IACF;AAEA,IAAA,gBAAgB,CAAC,CAAa,EAAA;QAC5B,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;AACrB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAChB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE;AAClC,YAAA,WAAW,EAAE,CAAC;AACf,SAAA,CAAC;IACJ;AAEA;;;AAGG;IACH,QAAQ,GAAA;QACN,OAAO;AACL,YAAA,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,YAAY;AAC1C,YAAA,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,SAAS;SACrC;IACH;AAEQ,IAAA,WAAW,CAAC,IAAiB,EAAA;AACnC,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AAClE,YAAA,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,IAAI,CAAC;QAC5C;IACF;8GApEW,6BAA6B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,imCAF7B,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,6BAA6B,EAAE,CAAC,iLCzBnF,67CA4CA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDpBY,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,8MAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAG7C,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBARzC,SAAS;+BACE,yBAAyB,EAAA,aAAA,EAGpB,iBAAiB,CAAC,IAAI,WAC5B,CAAC,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,EAAA,SAAA,EAC9C,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAA,6BAA+B,EAAE,CAAC,EAAA,QAAA,EAAA,67CAAA,EAAA;45BAiB9B,eAAe,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AEjB9D,MAAO,yBAA0B,SAAQ,eAAe,CAAA;AAW5D,IAAA,wBAAwB;AAWxB,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;AAtBD,QAAA,IAAA,CAAA,qBAAqB,GAAG,MAAM,CAAC,uBAAuB,CAAC;QAEvD,IAAA,CAAA,SAAS,GAAG,SAAS,CAA8B,WAAW;sFAAC;QACvE,IAAA,CAAA,YAAY,GAAG,eAAe,CAAC,6BAA6B;yFAAC;QAE7D,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAiB,OAAO;qFAAC;QACzC,IAAA,CAAA,IAAI,GAAG,KAAK,CAAa,iBAAiB;iFAAC;QAEnC,IAAA,CAAA,SAAS,GAAG,MAAM,CAAuC,IAAI;sFAAC;AAEtE,QAAA,IAAA,CAAA,wBAAwB,GAAG,MAAM,CAAC,MAAK;AACrC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACxB,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AAChC,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE;AAClC,YAAA,IAAI,QAAQ,IAAI,SAAS,KAAK,IAAI,KAAK,iBAAiB,IAAI,IAAI,KAAK,WAAW,CAAC,EAAE;gBACjF,UAAU,CAAC,MAAK;AACd,oBAAA,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC;AACtC,gBAAA,CAAC,CAAC;YACJ;QACF,CAAC;qGAAC;QAIA,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;AACxD,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AAC1B,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,oBAAoB,CAAC,OAAsC,EAAA;QACjE,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa;AACnD,QAAA,IAAI,CAAC,WAAW;YAAE;AAClB,QAAA,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK;AACxC,QAAA,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,EAAE;QACpC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,GAAG,KAAK,CAAC;YAAE;AAEnD,QAAA,cAAc,CAAC,KAAK,GAAG,+CAA+C;QACtE,cAAc,CAAC,MAAM,GAAG,CAAA,EAAG,SAAS,CAAC,MAAM,IAAI;QAC/C,cAAc,CAAC,GAAG,GAAG,CAAA,EAAG,SAAS,CAAC,GAAG,IAAI;AACzC,QAAA,cAAc,CAAC,MAAM,GAAG,OAAO;AAC/B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,OAAO,EAAE;AAC/B,YAAA,cAAc,CAAC,gBAAgB,GAAG,KAAK;AACvC,YAAA,cAAc,CAAC,cAAc,GAAG,OAAO;QACzC;AAAO,aAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK,EAAE;AACpC,YAAA,cAAc,CAAC,gBAAgB,GAAG,OAAO;AACzC,YAAA,cAAc,CAAC,cAAc,GAAG,KAAK;QACvC;IACF;AAEA,IAAA,IACY,WAAW,GAAA;QACrB,MAAM,UAAU,GAAa,EAAE;QAC/B,UAAU,CAAC,IAAI,CAAC,CAAA,GAAA,EAAM,IAAI,CAAC,QAAQ,EAAE,CAAA,CAAE,CAAC;QACxC,UAAU,CAAC,IAAI,CAAC,CAAA,QAAA,EAAW,IAAI,CAAC,IAAI,EAAE,CAAA,CAAE,CAAC;AACzC,QAAA,OAAO,UAAU;IACnB;8GAvDW,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,SAAA,EAFzB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAM9C,6BAA6B,4LC7B9D,qTAMA,EAAA,MAAA,EAAA,CAAA,qlKAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDmBa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBARrC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAAA,aAAA,EAIf,iBAAiB,CAAC,IAAI,aAC1B,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAA,yBAA2B,EAAE,CAAC,EAAA,QAAA,EAAA,qTAAA,EAAA,MAAA,EAAA,CAAA,qlKAAA,CAAA,EAAA;AAKlB,SAAA,CAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAAA,WAAW,gGACvC,6BAA6B,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA;sBA6C3D,WAAW;uBAAC,OAAO;;;MElET,sBAAsB,CAAA;8GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAtB,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,sBAAsB,YAHvB,yBAAyB,EAAE,6BAA6B,CAAA,EAAA,OAAA,EAAA,CACxD,yBAAyB,EAAE,6BAA6B,CAAA,EAAA,CAAA,CAAA;+GAEvD,sBAAsB,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,yBAAyB,EAAE,6BAA6B,CAAC;AACnE,oBAAA,OAAO,EAAE,CAAC,yBAAyB,EAAE,6BAA6B,CAAC;AACpE,iBAAA;;;ACPD;;AAEG;;;;"}
1
+ {"version":3,"file":"acorex-components-rail-navigation.mjs","sources":["../../../../packages/components/rail-navigation/src/lib/rail-navigation.service.ts","../../../../packages/components/rail-navigation/src/lib/rail-navigation-item/rail-navigation-item.component.ts","../../../../packages/components/rail-navigation/src/lib/rail-navigation-item/rail-navigation-item.component.html","../../../../packages/components/rail-navigation/src/lib/rail-navigation.component.ts","../../../../packages/components/rail-navigation/src/lib/rail-navigation.component.html","../../../../packages/components/rail-navigation/src/lib/rail-navigation.module.ts","../../../../packages/components/rail-navigation/src/acorex-components-rail-navigation.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXRailNavigationItemComponent } from './rail-navigation-item/rail-navigation-item.component';\n\n@Injectable()\nexport class AXRailNavigationService {\n private activeItem = new Subject<AXRailNavigationItemComponent>();\n\n /**\n * Observable that emits the currently active rail navigation item.\n */\n activeItem$ = this.activeItem.asObservable();\n\n /**\n * Sets the specified item as the active rail navigation item.\n * @param item - The rail navigation item to set as active\n */\n setActive(item: AXRailNavigationItemComponent): void {\n this.activeItem.next(item);\n }\n}\n","import { AXComponent, MXBaseComponent } from '@acorex/cdk/common';\nimport { isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n inject,\n input,\n model,\n OnDestroy,\n output,\n PLATFORM_ID,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { IsActiveMatchOptions, RouterLink, RouterLinkActive, UrlTree } from '@angular/router';\nimport { AXRailClickEvent } from '../rail-navigation.class';\nimport { AXRailNavigationService } from '../rail-navigation.service';\n\n@Component({\n selector: 'ax-rail-navigation-item',\n templateUrl: './rail-navigation-item.component.html',\n\n encapsulation: ViewEncapsulation.None,\n imports: [RouterLink, RouterLinkActive, NgTemplateOutlet],\n providers: [{ provide: AXComponent, useExisting: AXRailNavigationItemComponent }],\n})\nexport class AXRailNavigationItemComponent extends MXBaseComponent implements AfterViewInit, OnDestroy {\n private railNavigationService = inject(AXRailNavigationService);\n private platformId = inject(PLATFORM_ID);\n\n onClick = output<AXRailClickEvent>();\n\n active = model(false);\n disabled = model(false);\n\n href = input<string | null>();\n routerLink = input<string | any[] | UrlTree | null>();\n routerLinkActive = input<string | string[]>('ax-state-active');\n target = input<'_blank' | '_self' | '_parent' | '_top'>('_self');\n routerLinkActiveOptions = input<{ exact: boolean } | IsActiveMatchOptions>({ exact: false });\n\n itemContainer = viewChild<ElementRef<HTMLElement>>('itemContainer');\n\n private observer: MutationObserver | null = null;\n\n ngAfterViewInit(): void {\n this.checkActive(this.itemContainer().nativeElement);\n if (isPlatformBrowser(this.platformId)) {\n this.observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (mutation.attributeName === 'class') {\n this.checkActive(mutation.target as HTMLElement);\n }\n });\n });\n this.observer.observe(this.itemContainer().nativeElement, {\n attributes: true,\n childList: false,\n characterData: false,\n });\n }\n }\n\n ngOnDestroy(): void {\n if (isPlatformBrowser(this.platformId)) {\n this.observer.disconnect();\n this.observer = null;\n }\n }\n\n handleClickEvent(e: MouseEvent) {\n if (this.disabled()) return;\n this.onClick.emit({\n component: this,\n htmlElement: this.getHostElement(),\n nativeEvent: e,\n });\n }\n\n /**\n * Gets the height and top position of the item.\n * @returns Object containing height and top position\n */\n getStats() {\n return {\n height: this.getHostElement().clientHeight,\n top: this.getHostElement().offsetTop,\n };\n }\n\n private checkActive(item: HTMLElement) {\n if (item.classList.contains('ax-state-active') && !this.disabled()) {\n this.railNavigationService.setActive(this);\n }\n }\n}\n","@if (routerLink()) {\n <a\n #itemContainer\n [target]=\"target()\"\n [routerLink]=\"routerLink()\"\n class=\"ax-rail-navigation-item\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled()\"\n [routerLinkActive]=\"routerLinkActive()\"\n [routerLinkActiveOptions]=\"routerLinkActiveOptions()\"\n >\n <ng-container [ngTemplateOutlet]=\"railNavigationItemContent\"></ng-container>\n </a>\n} @else if (href()) {\n <a\n #itemContainer\n [href]=\"href()\"\n [target]=\"target()\"\n class=\"ax-rail-navigation-item\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-active]=\"active() && !disabled()\"\n [class.ax-state-disabled]=\"disabled()\"\n >\n <ng-container [ngTemplateOutlet]=\"railNavigationItemContent\"></ng-container>\n </a>\n} @else {\n <div\n #itemContainer\n class=\"ax-rail-navigation-item\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-active]=\"active() && !disabled()\"\n [class.ax-state-disabled]=\"disabled()\"\n >\n <ng-container [ngTemplateOutlet]=\"railNavigationItemContent\"></ng-container>\n </div>\n}\n\n<ng-template #railNavigationItemContent>\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content select=\"ax-icon\"></ng-content>\n <ng-content select=\"ax-text\"></ng-content>\n <ng-content select=\"ng-container,ng-content\"></ng-content>\n <ng-content select=\"ax-suffix\"></ng-content>\n</ng-template>\n","import { AXComponent, MXBaseComponent } from '@acorex/cdk/common';\nimport {\n Component,\n contentChildren,\n effect,\n ElementRef,\n HostBinding,\n inject,\n input,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXRailNavigationItemComponent } from './rail-navigation-item/rail-navigation-item.component';\nimport { AXRailLocation, AXRailLook } from './rail-navigation.class';\nimport { AXRailNavigationService } from './rail-navigation.service';\n\n@Component({\n selector: 'ax-rail-navigation',\n templateUrl: './rail-navigation.component.html',\n styleUrls: ['./rail-navigation.component.css'],\n\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXComponent, useExisting: AXRailNavigationComponent }],\n})\nexport class AXRailNavigationComponent extends MXBaseComponent {\n private railNavigationService = inject(AXRailNavigationService);\n\n private indicator = viewChild<ElementRef<HTMLSpanElement>>('indicator');\n railNavItems = contentChildren(AXRailNavigationItemComponent);\n\n location = input<AXRailLocation>('start');\n look = input<AXRailLook>('with-line-color');\n\n private activeTab = signal<AXRailNavigationItemComponent | null>(null);\n\n #positionIndicatorEffect = effect(() => {\n const look = this.look();\n const location = this.location();\n const activeTab = this.activeTab();\n if (location && activeTab && (look === 'with-line-color' || look === 'with-line')) {\n setTimeout(() => {\n this.setIndicatorPosition(activeTab);\n });\n }\n });\n\n constructor() {\n super();\n this.railNavigationService.activeItem$.subscribe((item) => {\n this.activeTab.set(item);\n });\n }\n\n private setIndicatorPosition(tabItem: AXRailNavigationItemComponent) {\n const indicatorEl = this.indicator()?.nativeElement;\n if (!indicatorEl) return;\n const indicatorStyle = indicatorEl.style;\n const itemStats = tabItem.getStats();\n if (itemStats.height === 0 && itemStats.top === 0) return;\n\n indicatorStyle.width = 'var(--ax-comp-rail-navigation-indicator-size)';\n indicatorStyle.height = `${itemStats.height}px`;\n indicatorStyle.top = `${itemStats.top}px`;\n indicatorStyle.bottom = 'unset';\n if (this.location() === 'start') {\n indicatorStyle.insetInlineStart = '0px';\n indicatorStyle.insetInlineEnd = 'unset';\n } else if (this.location() === 'end') {\n indicatorStyle.insetInlineStart = 'unset';\n indicatorStyle.insetInlineEnd = '0px';\n }\n }\n\n @HostBinding('class')\n private get __hostClass(): string[] {\n const cssClasses: string[] = [];\n cssClasses.push(`ax-${this.location()}`);\n cssClasses.push(`ax-look-${this.look()}`);\n return cssClasses;\n }\n}\n","<ng-content select=\"ax-prefix, ax-header\"></ng-content>\n<ng-content select=\"ax-rail-navigation-item, ng-container, ng-content\"></ng-content>\n<div class=\"ax-suffix-container w-full flex justify-center\">\n <ng-content select=\"ax-suffix, ax-footer\"></ng-content>\n</div>\n<span class=\"ax-rail-indicator\" #indicator></span>\n","import { NgModule } from '@angular/core';\nimport { AXRailNavigationItemComponent } from './rail-navigation-item/rail-navigation-item.component';\nimport { AXRailNavigationComponent } from './rail-navigation.component';\n\n@NgModule({\n imports: [AXRailNavigationComponent, AXRailNavigationItemComponent],\n exports: [AXRailNavigationComponent, AXRailNavigationItemComponent],\n})\nexport class AXRailNavigationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}