@acorex/components 22.1.0-next.0 → 22.1.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/combo-box/README.md +7 -2
  2. package/fesm2022/acorex-components-action-sheet.mjs +1 -0
  3. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  4. package/fesm2022/acorex-components-button.mjs +2 -2
  5. package/fesm2022/acorex-components-button.mjs.map +1 -1
  6. package/fesm2022/acorex-components-combo-box.mjs +240 -17
  7. package/fesm2022/acorex-components-combo-box.mjs.map +1 -1
  8. package/fesm2022/acorex-components-conversation.mjs +2 -2
  9. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  10. package/fesm2022/acorex-components-decorators.mjs +19 -3
  11. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  12. package/fesm2022/acorex-components-dialog.mjs +4 -2
  13. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  14. package/fesm2022/acorex-components-drawer.mjs +2 -2
  15. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  16. package/fesm2022/acorex-components-dropdown.mjs +4 -4
  17. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  18. package/fesm2022/acorex-components-fab.mjs +2 -2
  19. package/fesm2022/acorex-components-fab.mjs.map +1 -1
  20. package/fesm2022/acorex-components-list.mjs +2 -2
  21. package/fesm2022/acorex-components-list.mjs.map +1 -1
  22. package/fesm2022/acorex-components-lookup.mjs +722 -175
  23. package/fesm2022/acorex-components-lookup.mjs.map +1 -1
  24. package/fesm2022/acorex-components-map.mjs +2 -2
  25. package/fesm2022/acorex-components-map.mjs.map +1 -1
  26. package/fesm2022/acorex-components-menu.mjs +26 -6
  27. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  28. package/fesm2022/acorex-components-notification.mjs +9 -2
  29. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  30. package/fesm2022/acorex-components-password-box.mjs +1 -1
  31. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  32. package/fesm2022/acorex-components-popover.mjs +7 -6
  33. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  34. package/fesm2022/acorex-components-popup.mjs +4 -2
  35. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  36. package/fesm2022/acorex-components-scheduler.mjs +6 -6
  37. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  38. package/fesm2022/acorex-components-select-box.mjs +13 -2
  39. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  40. package/fesm2022/acorex-components-text-area.mjs +2 -2
  41. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  42. package/fesm2022/acorex-components-toast.mjs +9 -2
  43. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  44. package/fesm2022/acorex-components-tooltip.mjs +2 -2
  45. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  46. package/lookup/README.md +13 -8
  47. package/package.json +3 -3
  48. package/select-box/README.md +5 -0
  49. package/types/acorex-components-action-sheet.d.ts +9 -1
  50. package/types/acorex-components-combo-box.d.ts +101 -11
  51. package/types/acorex-components-decorators.d.ts +1 -0
  52. package/types/acorex-components-dialog.d.ts +9 -0
  53. package/types/acorex-components-lookup.d.ts +260 -90
  54. package/types/acorex-components-menu.d.ts +2 -0
  55. package/types/acorex-components-notification.d.ts +11 -1
  56. package/types/acorex-components-popover.d.ts +4 -1
  57. package/types/acorex-components-popup.d.ts +9 -1
  58. package/types/acorex-components-select-box.d.ts +8 -2
  59. package/types/acorex-components-toast.d.ts +10 -1
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-toast.mjs","sources":["../../../../packages/components/toast/src/lib/toast.config.ts","../../../../packages/components/toast/src/lib/toast.service.ts","../../../../packages/components/toast/src/lib/toast.component.ts","../../../../packages/components/toast/src/lib/toast.component.html","../../../../packages/components/toast/src/lib/toast.module.ts","../../../../packages/components/toast/src/acorex-components-toast.ts"],"sourcesContent":["import { AXLocation, AXStyleLookType } from '@acorex/cdk/common';\nimport { AX_GLOBAL_CONFIG } from '@acorex/core/config';\nimport { InjectionToken, inject } from '@angular/core';\nimport { set } from 'lodash-es';\n\nexport interface AXToastConfig {\n gap: number;\n timeOut: number;\n timeOutProgress: boolean;\n location: AXLocation;\n limit: number;\n pauseOnHover: boolean;\n look: AXStyleLookType;\n}\n\nexport const AX_TOAST_CONFIG = new InjectionToken<AXToastConfig>('AX_TOAST_CONFIG', {\n providedIn: 'root',\n factory: () => {\n const global = inject(AX_GLOBAL_CONFIG);\n set(global, 'layout.toast', AX_TOAST_CONFIG);\n return AXToastDefaultConfig;\n },\n});\n\nexport const AXToastDefaultConfig: AXToastConfig = {\n gap: 5,\n timeOut: 2500,\n timeOutProgress: true,\n location: 'bottom-center',\n limit: 3,\n pauseOnHover: true,\n look: 'solid',\n};\n\nexport type PartialToastConfig = Partial<AXToastConfig>;\n\nexport function toastConfig(config: PartialToastConfig = {}): AXToastConfig {\n const result = {\n ...AXToastDefaultConfig,\n ...config,\n };\n return result;\n}\n","import { AXLocation, AXStyleColorType, AXStyleLookType } from '@acorex/cdk/common';\nimport { AXOverlayService } from '@acorex/cdk/overlay';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { ComponentRef, Injectable, inject, signal } from '@angular/core';\nimport { AXToastData, AXToastDisplayConfig, AXToastInternalRef, AXToastRef } from './toast.class';\nimport { AXToastComponent } from './toast.component';\nimport { AXToastConfig, AX_TOAST_CONFIG } from './toast.config';\n\ntype AXReservedToasts = {\n config: AXToastDisplayConfig;\n reservedRef: {\n close: () => void;\n };\n};\ntype AXMoreToastsConfig = {\n timeOut?: number;\n timeOutProgress?: boolean;\n color: AXStyleColorType;\n look: AXStyleLookType;\n location: AXLocation;\n};\n\nlet toastIdCounter = 0;\n\n@Injectable({ providedIn: 'root' })\nexport class AXToastService {\n private overlayService = inject(AXOverlayService);\n private defaultConfig: AXToastConfig = inject(AX_TOAST_CONFIG);\n private translationService: AXTranslationService = inject(AXTranslationService);\n\n private reserveCounter = signal(0);\n private activeToasts = signal<AXToastInternalRef[]>([]);\n private reservedToasts = signal<AXReservedToasts[]>([]);\n private toastCounterRef = signal<AXToastInternalRef | null>(null);\n private moreToastsConfig = signal<AXMoreToastsConfig>({\n color: 'primary',\n look: 'solid',\n location: 'bottom-center',\n });\n\n /**\n * Shows a primary toast notification.\n *\n * @param content - The message content to display.\n */\n primary(content: string) {\n this.show({\n timeOut: this.defaultConfig.timeOut,\n color: 'primary',\n content: content,\n });\n }\n\n /**\n * Shows a secondary toast notification.\n *\n * @param content - The message content to display.\n */\n secondary(content: string) {\n this.show({\n timeOut: this.defaultConfig.timeOut,\n color: 'secondary',\n content: content,\n });\n }\n\n /**\n * Shows a success toast notification.\n *\n * @param content - The message content to display.\n */\n success(content: string) {\n this.show({\n timeOut: this.defaultConfig.timeOut,\n color: 'success',\n content: content,\n });\n }\n\n /**\n * Shows a warning toast notification.\n *\n * @param content - The message content to display.\n */\n warning(content: string) {\n this.show({\n timeOut: this.defaultConfig.timeOut,\n color: 'warning',\n content: content,\n });\n }\n\n /**\n * Shows a danger toast notification.\n *\n * @param content - The message content to display.\n */\n danger(content: string) {\n this.show({\n timeOut: this.defaultConfig.timeOut,\n color: 'danger',\n content: content,\n });\n }\n\n /**\n * Shows a default toast notification.\n *\n * @param content - The message content to display.\n */\n default(content: string) {\n this.show({\n timeOut: this.defaultConfig.timeOut,\n color: 'default',\n content: content,\n });\n }\n\n /**\n * Shows a toast notification with the specified configuration.\n *\n * @param config - The toast display configuration.\n * @returns AXToastRef - Reference to the created toast for programmatic control.\n */\n show(config: AXToastDisplayConfig): AXToastRef {\n config = { ...this.defaultConfig, ...config };\n\n this.moreToastsConfig.set({\n color: config.color,\n look: config.look ?? this.defaultConfig.look,\n location: config.location,\n timeOut: config.timeOut,\n timeOutProgress: config.timeOutProgress,\n });\n\n if (this.defaultConfig.limit > 0 && this.activeToasts().length >= this.defaultConfig.limit) {\n const reservedRef = {\n close: () => {\n console.warn('Reserved notification cannot be closed until it is displayed.');\n },\n };\n this.reservedToasts.update((prev) => [...prev, { config, reservedRef }]);\n this.handleReservedToastCounter();\n return reservedRef;\n }\n\n return this.displayToast(config);\n }\n\n private displayToast(config: AXToastDisplayConfig): AXToastRef {\n const gap = this.defaultConfig.gap;\n const toastData: AXToastData = {\n icon: config.icon,\n title: config.title,\n content: config.content,\n location: config.location,\n closeButton: config.closeButton ?? true,\n color: config.color,\n look: config.look ?? this.defaultConfig.look,\n timeOut: config.timeOut,\n timeOutProgress: config.timeOutProgress ?? true,\n pauseOnHover: config.pauseOnHover,\n };\n\n const toastId = `toast-${++toastIdCounter}`;\n let internalRef: AXToastInternalRef;\n\n const closeToast = () => {\n if (internalRef) {\n internalRef.overlayRef.dispose();\n this.activeToasts.set(this.activeToasts().filter((t) => t.id !== internalRef.id));\n this.handleShowReservedToast();\n this.handleReservedToastCounter();\n setTimeout(() => {\n this.reposition(config.location, gap);\n });\n }\n };\n\n this.overlayService\n .create<AXToastComponent>(AXToastComponent, {\n inputs: {\n config: toastData,\n onClose: closeToast,\n },\n centered: false,\n panelClass: ['animate-animated', 'animate-fadeIn', 'animate-faster'],\n onDispose: () => {\n // Clean up when disposed externally\n const currentToasts = this.activeToasts();\n if (internalRef && currentToasts.find((t) => t.id === internalRef.id)) {\n this.activeToasts.set(currentToasts.filter((t) => t.id !== internalRef.id));\n this.handleShowReservedToast();\n this.handleReservedToastCounter();\n }\n },\n })\n .then((overlayRef) => {\n internalRef = {\n id: toastId,\n overlayRef,\n config: toastData,\n close: closeToast,\n };\n\n // Position the toast BEFORE adding to activeToasts (so getPosition calculates correctly)\n this.positionToast(overlayRef.overlayElement, config.location, gap);\n\n this.activeToasts.update((prev) => [...prev, internalRef]);\n this.handleReservedToastCounter();\n });\n\n return {\n close: () => {\n closeToast();\n },\n };\n }\n\n /**\n * Hides all active toast notifications.\n */\n hideAll() {\n this.reserveCounter.set(0);\n this.reservedToasts.set([]);\n\n // Close all active toasts\n this.activeToasts().forEach((toast) => {\n toast.overlayRef.dispose();\n });\n this.activeToasts.set([]);\n\n // Close counter toast if exists\n const counterRef = this.toastCounterRef();\n if (counterRef) {\n counterRef.overlayRef.dispose();\n this.toastCounterRef.set(null);\n }\n\n this.handleReservedToastCounter();\n }\n\n private handleShowReservedToast() {\n if (this.activeToasts().length > this.defaultConfig.limit - 1) return;\n if (!this.reservedToasts().length) return;\n\n const reserved = this.reservedToasts()[0];\n this.reservedToasts.update((prev) => prev.slice(1));\n\n const displayedRef = this.displayToast(reserved.config);\n this.handleReservedToastCounter();\n reserved.reservedRef.close = displayedRef.close;\n }\n\n private handleReservedToastCounter() {\n const reservedCount = this.reservedToasts().length;\n\n if (reservedCount === this.reserveCounter()) return;\n\n this.reserveCounter.set(reservedCount);\n\n if (reservedCount === 0 && this.toastCounterRef() !== null) {\n this.toastCounterRef().close();\n this.toastCounterRef.set(null);\n return;\n }\n\n if (reservedCount > 0) {\n if (this.toastCounterRef() !== null) {\n this.toastCounterRef().close();\n this.toastCounterRef.set(null);\n }\n const firstToast = this.activeToasts()[0];\n if (firstToast) {\n const toastComponent = (firstToast.overlayRef.instance as ComponentRef<AXToastComponent>).instance;\n const remainingTime = toastComponent.createdDate();\n this.createReservedCounterToast(remainingTime);\n }\n }\n }\n\n private async createReservedCounterToast(remainingTime: number) {\n const gap = this.defaultConfig.gap;\n const timeOut = Math.min(\n this.moreToastsConfig().timeOut - (new Date().getTime() - remainingTime),\n this.moreToastsConfig().timeOut,\n );\n\n const opt: AXToastData = {\n closeButton: false,\n color: this.moreToastsConfig().color,\n look: this.moreToastsConfig().look,\n location: this.moreToastsConfig().location,\n title: await this.translationService.translateAsync('@acorex:common.notifications.more', {\n params: { number: this.reserveCounter() },\n }),\n timeOut,\n timeOutProgress: this.moreToastsConfig().timeOutProgress,\n closeAllButton: true,\n };\n\n const toastId = `toast-counter-${++toastIdCounter}`;\n let counterInternalRef: AXToastInternalRef;\n\n const closeCounter = () => {\n if (counterInternalRef) {\n counterInternalRef.overlayRef.dispose();\n if (this.toastCounterRef()?.id === counterInternalRef.id) {\n this.toastCounterRef.set(null);\n }\n }\n };\n\n const overlayRef = await this.overlayService.create<AXToastComponent>(AXToastComponent, {\n inputs: {\n config: opt,\n onClose: closeCounter,\n },\n centered: false,\n panelClass: ['animate-animated', 'animate-fadeIn', 'animate-faster'],\n });\n\n counterInternalRef = {\n id: toastId,\n overlayRef,\n config: opt,\n close: closeCounter,\n };\n\n this.toastCounterRef.set(counterInternalRef);\n\n // Position the counter toast\n this.positionToast(overlayRef.overlayElement, opt.location, gap);\n }\n\n private positionToast(element: HTMLElement, location: AXLocation, gap: number): void {\n if (!element) return;\n\n const pos = this.getPosition(location) + gap;\n\n // Override the centered overlay container styles for toast positioning\n element.style.width = 'max-content';\n element.style.height = 'auto';\n element.style.display = 'block';\n element.style.alignItems = '';\n element.style.justifyContent = '';\n\n // Reset all positioning styles\n element.style.top = '';\n element.style.bottom = '';\n element.style.left = '';\n element.style.right = '';\n element.style.transform = '';\n\n // Apply position based on location\n switch (location) {\n case 'bottom-center':\n element.style.bottom = pos + 'px';\n element.style.left = '50%';\n element.style.transform = 'translateX(-50%)';\n break;\n case 'bottom-end':\n element.style.bottom = pos + 'px';\n element.style.right = gap + 'px';\n break;\n case 'bottom-start':\n element.style.bottom = pos + 'px';\n element.style.left = gap + 'px';\n break;\n case 'top-center':\n element.style.top = pos + 'px';\n element.style.left = '50%';\n element.style.transform = 'translateX(-50%)';\n break;\n case 'top-end':\n element.style.top = pos + 'px';\n element.style.right = gap + 'px';\n break;\n case 'top-start':\n element.style.top = pos + 'px';\n element.style.left = gap + 'px';\n break;\n case 'center-start':\n element.style.top = '50%';\n element.style.left = gap + 'px';\n element.style.transform = 'translateY(-50%)';\n break;\n case 'center-end':\n element.style.top = '50%';\n element.style.right = gap + 'px';\n element.style.transform = 'translateY(-50%)';\n break;\n }\n }\n\n private reposition(toastLocation: AXLocation, gap: number): void {\n const list = this.activeToasts().filter((t) => t.config?.location === toastLocation);\n\n list.forEach((toast, index) => {\n const element = toast.overlayRef.overlayElement;\n if (!element) return;\n\n const pos = this.getRepositionPosition(index, gap, list, toastLocation);\n this.applyRepositionPosition(element, toastLocation, pos, gap);\n });\n }\n\n private getRepositionPosition(index: number, gap: number, list: AXToastInternalRef[], toastLocation: string): number {\n if (index === 0) return gap;\n const previousToast = list[index - 1];\n const previousElement = previousToast.overlayRef.overlayElement;\n if (!previousElement) return gap;\n\n if (toastLocation.split('-')[0] === 'bottom') {\n return window.innerHeight - previousElement.offsetTop + gap;\n }\n return previousElement.offsetTop + previousElement.offsetHeight + gap;\n }\n\n private applyRepositionPosition(element: HTMLElement, location: AXLocation, pos: number, gap: number): void {\n // Reset transform if needed, then apply position\n const isVerticalCenter = location === 'center-start' || location === 'center-end';\n const isHorizontalCenter = location === 'bottom-center' || location === 'top-center';\n\n if (location.startsWith('bottom')) {\n element.style.bottom = pos + 'px';\n element.style.top = '';\n if (isHorizontalCenter) {\n element.style.transform = 'translateX(-50%)';\n }\n } else if (location.startsWith('top')) {\n element.style.top = pos + 'px';\n element.style.bottom = '';\n if (isHorizontalCenter) {\n element.style.transform = 'translateX(-50%)';\n }\n } else if (isVerticalCenter) {\n element.style.top = pos + 'px';\n element.style.bottom = '';\n element.style.transform = '';\n }\n }\n\n private getPosition(location: string): number {\n const list = this.activeToasts().filter((t) => t.config?.location === location);\n if (list.length === 0) return 0;\n\n const lastToast = list[list.length - 1];\n const element = lastToast.overlayRef.overlayElement;\n if (!element) return 0;\n\n if (location.split('-')[0] === 'bottom') {\n return window.innerHeight - element.offsetTop;\n }\n return element.offsetTop + element.offsetHeight;\n }\n}\n","import { AXClosableComponent, AXComponent, MXBaseComponent } from '@acorex/cdk/common';\nimport { AXButtonItem } from '@acorex/components/button';\nimport { AXDecoratorCloseButtonComponent } from '@acorex/components/decorators';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { Component, computed, inject, input, OnInit, signal, ViewEncapsulation } from '@angular/core';\nimport { AXToastData } from './toast.class';\nimport { AXToastService } from './toast.service';\n\n/**\n * The Button is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n selector: 'ax-toast',\n templateUrl: './toast.component.html',\n styleUrls: ['./toast.component.css'],\n\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'hostClass()',\n },\n providers: [\n { provide: AXClosableComponent, useExisting: AXToastComponent },\n { provide: AXComponent, useExisting: AXToastComponent },\n ],\n imports: [AXDecoratorCloseButtonComponent, AsyncPipe, AXTranslatorPipe],\n})\nexport class AXToastComponent extends MXBaseComponent implements OnInit {\n /** Toast configuration data */\n config = input.required<AXToastData>();\n\n protected hostClass = computed(() => {\n const { color, look } = this.config();\n const lookClass = look === 'outline' || look === 'twotone' ? look : 'solid';\n return `ax-${lookClass} ax-${color}`;\n });\n\n /** @internal Callback function to close the toast */\n onClose = input<() => void>();\n\n toastService = inject(AXToastService);\n createdDate = signal(0);\n\n private intervalId: number;\n private isPaused = signal(false);\n protected remainingTime = signal(0);\n protected transitionDuration = signal(150);\n\n /** @ignore */\n protected _toastWidth = 100;\n\n /** @ignore */\n protected _icon: string;\n\n /** @ignore */\n override ngOnInit() {\n super.ngOnInit();\n this._initIcon();\n this.createdDate.set(new Date().getTime());\n this.remainingTime.set(this.config().timeOut);\n this._handleTimeOut();\n\n this.getHostElement().addEventListener('pointerenter', () => {\n if (!this.config().pauseOnHover) return;\n if (this.isPaused()) return;\n // Only pause if not already paused\n this.isPaused.set(true);\n this.pauseAnimation();\n });\n\n this.getHostElement().addEventListener('pointerleave', () => {\n if (!this.config().pauseOnHover) return;\n if (!this.isPaused()) return;\n // Only resume if paused\n this.isPaused.set(false);\n this._handleTimeOut();\n });\n }\n\n private pauseAnimation() {\n clearInterval(this.intervalId);\n }\n\n private _handleTimeOut() {\n if (this.config().timeOut) {\n this.intervalId = setInterval(() => {\n this.remainingTime.update((prev) => prev - this.transitionDuration());\n if (this.remainingTime() <= 0) {\n clearInterval(this.intervalId);\n this.close();\n }\n }, this.transitionDuration()) as unknown as number;\n }\n }\n\n private _initIcon() {\n if (!this.config().icon) {\n switch (this.config().color) {\n case 'success':\n this._icon = 'ax-icon ax-icon-check-circle';\n break;\n case 'warning':\n this._icon = 'ax-icon ax-icon-warning';\n break;\n case 'danger':\n this._icon = 'ax-icon ax-icon-error';\n break;\n default:\n this._icon = this.config().icon || 'ax-icon ax-icon-info';\n break;\n }\n } else {\n this._icon = this.config().icon;\n }\n }\n\n /** @ignore */\n _handleButtonClick(button: AXButtonItem) {\n if (button.onClick) {\n button.onClick({ source: button });\n }\n }\n\n /**\n * Closes the toast notification.\n */\n close() {\n const closeCallback = this.onClose();\n if (closeCallback) {\n closeCallback();\n }\n }\n\n /**\n * Closes all toast notifications.\n */\n closeAll() {\n this.toastService.hideAll();\n }\n}\n","<span class=\"ax-toast-icon ax-icon-solid {{ _icon }}\"></span>\n<div class=\"ax-toast-content\">\n <div class=\"ax-toast-title\" [class.ax-mb-2]=\"config().title && config().content\">\n {{ config().title | translate | async }}\n </div>\n <div class=\"ax-toast-body\" [innerHTML]=\"config().content | translate | async\"></div>\n</div>\n@if (config().closeButton) {\n <ax-close-button></ax-close-button>\n} @else if (config().closeAllButton) {\n <ax-close-button [closeAll]=\"true\"></ax-close-button>\n}\n@if (config().timeOutProgress && config().timeOut) {\n <div\n class=\"ax-toast-progress\"\n [style.transition-duration]=\"transitionDuration()\"\n [style.width]=\"(remainingTime() * 100) / config().timeOut + '%'\"\n ></div>\n}\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXToastComponent } from './toast.component';\nimport { AXToastService } from './toast.service';\n\nconst COMPONENT = [AXToastComponent];\nconst MODULES = [CommonModule, AXButtonModule, AXDecoratorModule, AXLoadingModule, AXTranslationModule];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [AXToastService],\n})\nexport class AXToastModule {}\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-toast.mjs","sources":["../../../../packages/components/toast/src/lib/toast.config.ts","../../../../packages/components/toast/src/lib/toast.service.ts","../../../../packages/components/toast/src/lib/toast.component.ts","../../../../packages/components/toast/src/lib/toast.component.html","../../../../packages/components/toast/src/lib/toast.module.ts","../../../../packages/components/toast/src/acorex-components-toast.ts"],"sourcesContent":["import { AXLocation, AXStyleLookType } from '@acorex/cdk/common';\nimport { AX_GLOBAL_CONFIG } from '@acorex/core/config';\nimport { InjectionToken, inject } from '@angular/core';\nimport { set } from 'lodash-es';\n\nexport interface AXToastConfig {\n gap: number;\n timeOut: number;\n timeOutProgress: boolean;\n location: AXLocation;\n limit: number;\n pauseOnHover: boolean;\n look: AXStyleLookType;\n}\n\nexport const AX_TOAST_CONFIG = new InjectionToken<AXToastConfig>('AX_TOAST_CONFIG', {\n providedIn: 'root',\n factory: () => {\n const global = inject(AX_GLOBAL_CONFIG);\n set(global, 'layout.toast', AX_TOAST_CONFIG);\n return AXToastDefaultConfig;\n },\n});\n\nexport const AXToastDefaultConfig: AXToastConfig = {\n gap: 5,\n timeOut: 2500,\n timeOutProgress: true,\n location: 'bottom-center',\n limit: 3,\n pauseOnHover: true,\n look: 'solid',\n};\n\nexport type PartialToastConfig = Partial<AXToastConfig>;\n\nexport function toastConfig(config: PartialToastConfig = {}): AXToastConfig {\n const result = {\n ...AXToastDefaultConfig,\n ...config,\n };\n return result;\n}\n","import { AXLocation, AXStyleColorType, AXStyleLookType } from '@acorex/cdk/common';\nimport { AXOverlayService } from '@acorex/cdk/overlay';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { ComponentRef, Injectable, inject, signal } from '@angular/core';\nimport { AXToastData, AXToastDisplayConfig, AXToastInternalRef, AXToastRef } from './toast.class';\nimport { AXToastComponent } from './toast.component';\nimport { AXToastConfig, AX_TOAST_CONFIG } from './toast.config';\n\ntype AXReservedToasts = {\n config: AXToastDisplayConfig;\n reservedRef: {\n close: () => void;\n };\n};\ntype AXMoreToastsConfig = {\n timeOut?: number;\n timeOutProgress?: boolean;\n color: AXStyleColorType;\n look: AXStyleLookType;\n location: AXLocation;\n contextElement?: AXToastDisplayConfig['contextElement'];\n};\n\nlet toastIdCounter = 0;\n\n@Injectable({ providedIn: 'root' })\nexport class AXToastService {\n private overlayService = inject(AXOverlayService);\n private defaultConfig: AXToastConfig = inject(AX_TOAST_CONFIG);\n private translationService: AXTranslationService = inject(AXTranslationService);\n\n private reserveCounter = signal(0);\n private activeToasts = signal<AXToastInternalRef[]>([]);\n private reservedToasts = signal<AXReservedToasts[]>([]);\n private toastCounterRef = signal<AXToastInternalRef | null>(null);\n private moreToastsConfig = signal<AXMoreToastsConfig>({\n color: 'primary',\n look: 'solid',\n location: 'bottom-center',\n });\n\n /**\n * Shows a primary toast notification.\n *\n * @param content - The message content to display.\n */\n primary(content: string) {\n this.show({\n timeOut: this.defaultConfig.timeOut,\n color: 'primary',\n content: content,\n });\n }\n\n /**\n * Shows a secondary toast notification.\n *\n * @param content - The message content to display.\n */\n secondary(content: string) {\n this.show({\n timeOut: this.defaultConfig.timeOut,\n color: 'secondary',\n content: content,\n });\n }\n\n /**\n * Shows a success toast notification.\n *\n * @param content - The message content to display.\n */\n success(content: string) {\n this.show({\n timeOut: this.defaultConfig.timeOut,\n color: 'success',\n content: content,\n });\n }\n\n /**\n * Shows a warning toast notification.\n *\n * @param content - The message content to display.\n */\n warning(content: string) {\n this.show({\n timeOut: this.defaultConfig.timeOut,\n color: 'warning',\n content: content,\n });\n }\n\n /**\n * Shows a danger toast notification.\n *\n * @param content - The message content to display.\n */\n danger(content: string) {\n this.show({\n timeOut: this.defaultConfig.timeOut,\n color: 'danger',\n content: content,\n });\n }\n\n /**\n * Shows a default toast notification.\n *\n * @param content - The message content to display.\n */\n default(content: string) {\n this.show({\n timeOut: this.defaultConfig.timeOut,\n color: 'default',\n content: content,\n });\n }\n\n /**\n * Shows a toast notification with the specified configuration.\n *\n * @param config - The toast display configuration.\n * @returns AXToastRef - Reference to the created toast for programmatic control.\n */\n show(config: AXToastDisplayConfig): AXToastRef {\n config = { ...this.defaultConfig, ...config };\n\n this.moreToastsConfig.set({\n color: config.color,\n look: config.look ?? this.defaultConfig.look,\n location: config.location,\n timeOut: config.timeOut,\n timeOutProgress: config.timeOutProgress,\n contextElement: config.contextElement,\n });\n\n if (this.defaultConfig.limit > 0 && this.activeToasts().length >= this.defaultConfig.limit) {\n const reservedRef = {\n close: () => {\n console.warn('Reserved notification cannot be closed until it is displayed.');\n },\n };\n this.reservedToasts.update((prev) => [...prev, { config, reservedRef }]);\n this.handleReservedToastCounter();\n return reservedRef;\n }\n\n return this.displayToast(config);\n }\n\n private displayToast(config: AXToastDisplayConfig): AXToastRef {\n const gap = this.defaultConfig.gap;\n const toastData: AXToastData = {\n icon: config.icon,\n title: config.title,\n content: config.content,\n location: config.location,\n closeButton: config.closeButton ?? true,\n color: config.color,\n look: config.look ?? this.defaultConfig.look,\n timeOut: config.timeOut,\n timeOutProgress: config.timeOutProgress ?? true,\n pauseOnHover: config.pauseOnHover,\n };\n\n const toastId = `toast-${++toastIdCounter}`;\n let internalRef: AXToastInternalRef;\n\n const closeToast = () => {\n if (internalRef) {\n internalRef.overlayRef.dispose();\n this.activeToasts.set(this.activeToasts().filter((t) => t.id !== internalRef.id));\n this.handleShowReservedToast();\n this.handleReservedToastCounter();\n setTimeout(() => {\n this.reposition(config.location, gap);\n });\n }\n };\n\n this.overlayService\n .create<AXToastComponent>(AXToastComponent, {\n inputs: {\n config: toastData,\n onClose: closeToast,\n },\n contextElement: config.contextElement,\n visualContextScope: 'theme',\n centered: false,\n panelClass: ['animate-animated', 'animate-fadeIn', 'animate-faster'],\n onDispose: () => {\n // Clean up when disposed externally\n const currentToasts = this.activeToasts();\n if (internalRef && currentToasts.find((t) => t.id === internalRef.id)) {\n this.activeToasts.set(currentToasts.filter((t) => t.id !== internalRef.id));\n this.handleShowReservedToast();\n this.handleReservedToastCounter();\n }\n },\n })\n .then((overlayRef) => {\n internalRef = {\n id: toastId,\n overlayRef,\n config: toastData,\n contextElement: config.contextElement,\n close: closeToast,\n };\n\n // Position the toast BEFORE adding to activeToasts (so getPosition calculates correctly)\n this.positionToast(overlayRef.overlayElement, config.location, gap);\n\n this.activeToasts.update((prev) => [...prev, internalRef]);\n this.handleReservedToastCounter();\n });\n\n return {\n close: () => {\n closeToast();\n },\n };\n }\n\n /**\n * Hides all active toast notifications.\n */\n hideAll() {\n this.reserveCounter.set(0);\n this.reservedToasts.set([]);\n\n // Close all active toasts\n this.activeToasts().forEach((toast) => {\n toast.overlayRef.dispose();\n });\n this.activeToasts.set([]);\n\n // Close counter toast if exists\n const counterRef = this.toastCounterRef();\n if (counterRef) {\n counterRef.overlayRef.dispose();\n this.toastCounterRef.set(null);\n }\n\n this.handleReservedToastCounter();\n }\n\n private handleShowReservedToast() {\n if (this.activeToasts().length > this.defaultConfig.limit - 1) return;\n if (!this.reservedToasts().length) return;\n\n const reserved = this.reservedToasts()[0];\n this.reservedToasts.update((prev) => prev.slice(1));\n\n const displayedRef = this.displayToast(reserved.config);\n this.handleReservedToastCounter();\n reserved.reservedRef.close = displayedRef.close;\n }\n\n private handleReservedToastCounter() {\n const reservedCount = this.reservedToasts().length;\n\n if (reservedCount === this.reserveCounter()) return;\n\n this.reserveCounter.set(reservedCount);\n\n if (reservedCount === 0 && this.toastCounterRef() !== null) {\n this.toastCounterRef().close();\n this.toastCounterRef.set(null);\n return;\n }\n\n if (reservedCount > 0) {\n if (this.toastCounterRef() !== null) {\n this.toastCounterRef().close();\n this.toastCounterRef.set(null);\n }\n const firstToast = this.activeToasts()[0];\n if (firstToast) {\n const toastComponent = (firstToast.overlayRef.instance as ComponentRef<AXToastComponent>).instance;\n const remainingTime = toastComponent.createdDate();\n this.createReservedCounterToast(remainingTime);\n }\n }\n }\n\n private async createReservedCounterToast(remainingTime: number) {\n const gap = this.defaultConfig.gap;\n const timeOut = Math.min(\n this.moreToastsConfig().timeOut - (new Date().getTime() - remainingTime),\n this.moreToastsConfig().timeOut,\n );\n\n const opt: AXToastData = {\n closeButton: false,\n color: this.moreToastsConfig().color,\n look: this.moreToastsConfig().look,\n location: this.moreToastsConfig().location,\n title: await this.translationService.translateAsync('@acorex:common.notifications.more', {\n params: { number: this.reserveCounter() },\n }),\n timeOut,\n timeOutProgress: this.moreToastsConfig().timeOutProgress,\n closeAllButton: true,\n };\n\n const toastId = `toast-counter-${++toastIdCounter}`;\n let counterInternalRef: AXToastInternalRef;\n\n const closeCounter = () => {\n if (counterInternalRef) {\n counterInternalRef.overlayRef.dispose();\n if (this.toastCounterRef()?.id === counterInternalRef.id) {\n this.toastCounterRef.set(null);\n }\n }\n };\n\n const counterContextElement =\n this.moreToastsConfig().contextElement ?? this.activeToasts()[0]?.contextElement;\n\n const overlayRef = await this.overlayService.create<AXToastComponent>(AXToastComponent, {\n inputs: {\n config: opt,\n onClose: closeCounter,\n },\n contextElement: counterContextElement,\n visualContextScope: 'theme',\n centered: false,\n panelClass: ['animate-animated', 'animate-fadeIn', 'animate-faster'],\n });\n\n counterInternalRef = {\n id: toastId,\n overlayRef,\n config: opt,\n close: closeCounter,\n };\n\n this.toastCounterRef.set(counterInternalRef);\n\n // Position the counter toast\n this.positionToast(overlayRef.overlayElement, opt.location, gap);\n }\n\n private positionToast(element: HTMLElement, location: AXLocation, gap: number): void {\n if (!element) return;\n\n const pos = this.getPosition(location) + gap;\n\n // Override the centered overlay container styles for toast positioning\n element.style.width = 'max-content';\n element.style.height = 'auto';\n element.style.display = 'block';\n element.style.alignItems = '';\n element.style.justifyContent = '';\n\n // Reset all positioning styles\n element.style.top = '';\n element.style.bottom = '';\n element.style.left = '';\n element.style.right = '';\n element.style.transform = '';\n\n // Apply position based on location\n switch (location) {\n case 'bottom-center':\n element.style.bottom = pos + 'px';\n element.style.left = '50%';\n element.style.transform = 'translateX(-50%)';\n break;\n case 'bottom-end':\n element.style.bottom = pos + 'px';\n element.style.right = gap + 'px';\n break;\n case 'bottom-start':\n element.style.bottom = pos + 'px';\n element.style.left = gap + 'px';\n break;\n case 'top-center':\n element.style.top = pos + 'px';\n element.style.left = '50%';\n element.style.transform = 'translateX(-50%)';\n break;\n case 'top-end':\n element.style.top = pos + 'px';\n element.style.right = gap + 'px';\n break;\n case 'top-start':\n element.style.top = pos + 'px';\n element.style.left = gap + 'px';\n break;\n case 'center-start':\n element.style.top = '50%';\n element.style.left = gap + 'px';\n element.style.transform = 'translateY(-50%)';\n break;\n case 'center-end':\n element.style.top = '50%';\n element.style.right = gap + 'px';\n element.style.transform = 'translateY(-50%)';\n break;\n }\n }\n\n private reposition(toastLocation: AXLocation, gap: number): void {\n const list = this.activeToasts().filter((t) => t.config?.location === toastLocation);\n\n list.forEach((toast, index) => {\n const element = toast.overlayRef.overlayElement;\n if (!element) return;\n\n const pos = this.getRepositionPosition(index, gap, list, toastLocation);\n this.applyRepositionPosition(element, toastLocation, pos, gap);\n });\n }\n\n private getRepositionPosition(index: number, gap: number, list: AXToastInternalRef[], toastLocation: string): number {\n if (index === 0) return gap;\n const previousToast = list[index - 1];\n const previousElement = previousToast.overlayRef.overlayElement;\n if (!previousElement) return gap;\n\n if (toastLocation.split('-')[0] === 'bottom') {\n return window.innerHeight - previousElement.offsetTop + gap;\n }\n return previousElement.offsetTop + previousElement.offsetHeight + gap;\n }\n\n private applyRepositionPosition(element: HTMLElement, location: AXLocation, pos: number, gap: number): void {\n // Reset transform if needed, then apply position\n const isVerticalCenter = location === 'center-start' || location === 'center-end';\n const isHorizontalCenter = location === 'bottom-center' || location === 'top-center';\n\n if (location.startsWith('bottom')) {\n element.style.bottom = pos + 'px';\n element.style.top = '';\n if (isHorizontalCenter) {\n element.style.transform = 'translateX(-50%)';\n }\n } else if (location.startsWith('top')) {\n element.style.top = pos + 'px';\n element.style.bottom = '';\n if (isHorizontalCenter) {\n element.style.transform = 'translateX(-50%)';\n }\n } else if (isVerticalCenter) {\n element.style.top = pos + 'px';\n element.style.bottom = '';\n element.style.transform = '';\n }\n }\n\n private getPosition(location: string): number {\n const list = this.activeToasts().filter((t) => t.config?.location === location);\n if (list.length === 0) return 0;\n\n const lastToast = list[list.length - 1];\n const element = lastToast.overlayRef.overlayElement;\n if (!element) return 0;\n\n if (location.split('-')[0] === 'bottom') {\n return window.innerHeight - element.offsetTop;\n }\n return element.offsetTop + element.offsetHeight;\n }\n}\n","import { AXClosableComponent, AXComponent, MXBaseComponent } from '@acorex/cdk/common';\nimport { AXButtonItem } from '@acorex/components/button';\nimport { AXDecoratorCloseButtonComponent } from '@acorex/components/decorators';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { Component, computed, inject, input, OnInit, signal, ViewEncapsulation } from '@angular/core';\nimport { AXToastData } from './toast.class';\nimport { AXToastService } from './toast.service';\n\n/**\n * The Button is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n selector: 'ax-toast',\n templateUrl: './toast.component.html',\n styleUrls: ['./toast.component.css'],\n\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'hostClass()',\n },\n providers: [\n { provide: AXClosableComponent, useExisting: AXToastComponent },\n { provide: AXComponent, useExisting: AXToastComponent },\n ],\n imports: [AXDecoratorCloseButtonComponent, AsyncPipe, AXTranslatorPipe],\n})\nexport class AXToastComponent extends MXBaseComponent implements OnInit {\n /** Toast configuration data */\n config = input.required<AXToastData>();\n\n protected hostClass = computed(() => {\n const { color, look } = this.config();\n const lookClass = look === 'outline' || look === 'twotone' ? look : 'solid';\n return `ax-${lookClass} ax-${color}`;\n });\n\n /** @internal Callback function to close the toast */\n onClose = input<() => void>();\n\n toastService = inject(AXToastService);\n createdDate = signal(0);\n\n private intervalId: number;\n private isPaused = signal(false);\n protected remainingTime = signal(0);\n protected transitionDuration = signal(150);\n\n /** @ignore */\n protected _toastWidth = 100;\n\n /** @ignore */\n protected _icon: string;\n\n /** @ignore */\n override ngOnInit() {\n super.ngOnInit();\n this._initIcon();\n this.createdDate.set(new Date().getTime());\n this.remainingTime.set(this.config().timeOut);\n this._handleTimeOut();\n\n this.getHostElement().addEventListener('pointerenter', () => {\n if (!this.config().pauseOnHover) return;\n if (this.isPaused()) return;\n // Only pause if not already paused\n this.isPaused.set(true);\n this.pauseAnimation();\n });\n\n this.getHostElement().addEventListener('pointerleave', () => {\n if (!this.config().pauseOnHover) return;\n if (!this.isPaused()) return;\n // Only resume if paused\n this.isPaused.set(false);\n this._handleTimeOut();\n });\n }\n\n private pauseAnimation() {\n clearInterval(this.intervalId);\n }\n\n private _handleTimeOut() {\n if (this.config().timeOut) {\n this.intervalId = setInterval(() => {\n this.remainingTime.update((prev) => prev - this.transitionDuration());\n if (this.remainingTime() <= 0) {\n clearInterval(this.intervalId);\n this.close();\n }\n }, this.transitionDuration()) as unknown as number;\n }\n }\n\n private _initIcon() {\n if (!this.config().icon) {\n switch (this.config().color) {\n case 'success':\n this._icon = 'ax-icon ax-icon-check-circle';\n break;\n case 'warning':\n this._icon = 'ax-icon ax-icon-warning';\n break;\n case 'danger':\n this._icon = 'ax-icon ax-icon-error';\n break;\n default:\n this._icon = this.config().icon || 'ax-icon ax-icon-info';\n break;\n }\n } else {\n this._icon = this.config().icon;\n }\n }\n\n /** @ignore */\n _handleButtonClick(button: AXButtonItem) {\n if (button.onClick) {\n button.onClick({ source: button });\n }\n }\n\n /**\n * Closes the toast notification.\n */\n close() {\n const closeCallback = this.onClose();\n if (closeCallback) {\n closeCallback();\n }\n }\n\n /**\n * Closes all toast notifications.\n */\n closeAll() {\n this.toastService.hideAll();\n }\n}\n","<span class=\"ax-toast-icon ax-icon-solid {{ _icon }}\"></span>\n<div class=\"ax-toast-content\">\n <div class=\"ax-toast-title\" [class.ax-mb-2]=\"config().title && config().content\">\n {{ config().title | translate | async }}\n </div>\n <div class=\"ax-toast-body\" [innerHTML]=\"config().content | translate | async\"></div>\n</div>\n@if (config().closeButton) {\n <ax-close-button></ax-close-button>\n} @else if (config().closeAllButton) {\n <ax-close-button [closeAll]=\"true\"></ax-close-button>\n}\n@if (config().timeOutProgress && config().timeOut) {\n <div\n class=\"ax-toast-progress\"\n [style.transition-duration]=\"transitionDuration()\"\n [style.width]=\"(remainingTime() * 100) / config().timeOut + '%'\"\n ></div>\n}\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXToastComponent } from './toast.component';\nimport { AXToastService } from './toast.service';\n\nconst COMPONENT = [AXToastComponent];\nconst MODULES = [CommonModule, AXButtonModule, AXDecoratorModule, AXLoadingModule, AXTranslationModule];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [AXToastService],\n})\nexport class AXToastModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -10,11 +10,11 @@ import { CommonModule } from '@angular/common';
10
10
  */
11
11
  class AXTooltipComponent extends MXBaseComponent {
12
12
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXTooltipComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
13
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: AXTooltipComponent, isStandalone: true, selector: "ax-tooltip", inputs: { text: "text", position: "position" }, providers: [{ provide: AXComponent, useExisting: AXTooltipComponent }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-tooltip-container\">\n <div class=\"ax-tooltip\">\n {{ text }}\n </div>\n <!-- <div class=\"ax-tooltip-tringle ax-tooltip-tringle-{{ position }}\"></div> -->\n</div>\n", styles: ["@layer properties;@layer components{ax-tooltip .ax-tooltip-container{position:relative}ax-tooltip .ax-tooltip-container .ax-tooltip{display:block;border-radius:var(--radius-sm, .25rem);background-color:var(--color-black, #000);padding-inline:calc(var(--spacing, .25rem) * 2);padding-block:calc(var(--spacing, .25rem) * 1);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight: var(--font-weight-normal, 400);font-weight:var(--font-weight-normal, 400);color:var(--color-white, #fff)}ax-tooltip .ax-tooltip-container .ax-tooltip:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:var(--color-white, #fff)}ax-tooltip .ax-tooltip-container .ax-tooltip:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){color:var(--color-black, #000)}}@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 }); }
13
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: AXTooltipComponent, isStandalone: true, selector: "ax-tooltip", inputs: { text: "text", position: "position" }, providers: [{ provide: AXComponent, useExisting: AXTooltipComponent }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-tooltip-container\">\n <div class=\"ax-tooltip\">\n {{ text }}\n </div>\n <!-- <div class=\"ax-tooltip-tringle ax-tooltip-tringle-{{ position }}\"></div> -->\n</div>\n", styles: ["@layer properties;@layer components{ax-tooltip{--ax-comp-tooltip-shadow-rest: var(--ax-sys-effect-floating);--ax-comp-tooltip-contrast-inner-border-rest: var(--ax-sys-contrast-inner-border-surface);--ax-comp-tooltip-contrast-surface-overlay-rest: var(--ax-sys-contrast-surface-overlay-surface);--ax-comp-tooltip-backdrop-filter-rest: var(--ax-sys-backdrop-filter-surface);--ax-comp-tooltip-surface-overlay-rest: var(--ax-sys-surface-overlay-floating)}ax-tooltip .ax-tooltip-container{position:relative}ax-tooltip .ax-tooltip-container .ax-tooltip{display:block;border-radius:var(--radius-sm, .25rem);background-color:var(--color-black, #000);padding-inline:calc(var(--spacing, .25rem) * 2);padding-block:calc(var(--spacing, .25rem) * 1);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight: var(--font-weight-normal, 400);font-weight:var(--font-weight-normal, 400);color:var(--color-white, #fff);box-shadow:var(--ax-comp-tooltip-contrast-inner-border-rest),var(--ax-comp-tooltip-shadow-rest);background-image:linear-gradient(var(--ax-comp-tooltip-contrast-surface-overlay-rest),var(--ax-comp-tooltip-contrast-surface-overlay-rest)),linear-gradient(var(--ax-comp-tooltip-surface-overlay-rest),var(--ax-comp-tooltip-surface-overlay-rest));backdrop-filter:var(--ax-comp-tooltip-backdrop-filter-rest);-webkit-backdrop-filter:var(--ax-comp-tooltip-backdrop-filter-rest)}ax-tooltip .ax-tooltip-container .ax-tooltip:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:var(--color-white, #fff)}ax-tooltip .ax-tooltip-container .ax-tooltip:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){color:var(--color-black, #000)}}@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 }); }
14
14
  }
15
15
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXTooltipComponent, decorators: [{
16
16
  type: Component,
17
- args: [{ selector: 'ax-tooltip', encapsulation: ViewEncapsulation.None, providers: [{ provide: AXComponent, useExisting: AXTooltipComponent }], template: "<div class=\"ax-tooltip-container\">\n <div class=\"ax-tooltip\">\n {{ text }}\n </div>\n <!-- <div class=\"ax-tooltip-tringle ax-tooltip-tringle-{{ position }}\"></div> -->\n</div>\n", styles: ["@layer properties;@layer components{ax-tooltip .ax-tooltip-container{position:relative}ax-tooltip .ax-tooltip-container .ax-tooltip{display:block;border-radius:var(--radius-sm, .25rem);background-color:var(--color-black, #000);padding-inline:calc(var(--spacing, .25rem) * 2);padding-block:calc(var(--spacing, .25rem) * 1);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight: var(--font-weight-normal, 400);font-weight:var(--font-weight-normal, 400);color:var(--color-white, #fff)}ax-tooltip .ax-tooltip-container .ax-tooltip:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:var(--color-white, #fff)}ax-tooltip .ax-tooltip-container .ax-tooltip:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){color:var(--color-black, #000)}}@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"] }]
17
+ args: [{ selector: 'ax-tooltip', encapsulation: ViewEncapsulation.None, providers: [{ provide: AXComponent, useExisting: AXTooltipComponent }], template: "<div class=\"ax-tooltip-container\">\n <div class=\"ax-tooltip\">\n {{ text }}\n </div>\n <!-- <div class=\"ax-tooltip-tringle ax-tooltip-tringle-{{ position }}\"></div> -->\n</div>\n", styles: ["@layer properties;@layer components{ax-tooltip{--ax-comp-tooltip-shadow-rest: var(--ax-sys-effect-floating);--ax-comp-tooltip-contrast-inner-border-rest: var(--ax-sys-contrast-inner-border-surface);--ax-comp-tooltip-contrast-surface-overlay-rest: var(--ax-sys-contrast-surface-overlay-surface);--ax-comp-tooltip-backdrop-filter-rest: var(--ax-sys-backdrop-filter-surface);--ax-comp-tooltip-surface-overlay-rest: var(--ax-sys-surface-overlay-floating)}ax-tooltip .ax-tooltip-container{position:relative}ax-tooltip .ax-tooltip-container .ax-tooltip{display:block;border-radius:var(--radius-sm, .25rem);background-color:var(--color-black, #000);padding-inline:calc(var(--spacing, .25rem) * 2);padding-block:calc(var(--spacing, .25rem) * 1);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight: var(--font-weight-normal, 400);font-weight:var(--font-weight-normal, 400);color:var(--color-white, #fff);box-shadow:var(--ax-comp-tooltip-contrast-inner-border-rest),var(--ax-comp-tooltip-shadow-rest);background-image:linear-gradient(var(--ax-comp-tooltip-contrast-surface-overlay-rest),var(--ax-comp-tooltip-contrast-surface-overlay-rest)),linear-gradient(var(--ax-comp-tooltip-surface-overlay-rest),var(--ax-comp-tooltip-surface-overlay-rest));backdrop-filter:var(--ax-comp-tooltip-backdrop-filter-rest);-webkit-backdrop-filter:var(--ax-comp-tooltip-backdrop-filter-rest)}ax-tooltip .ax-tooltip-container .ax-tooltip:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:var(--color-white, #fff)}ax-tooltip .ax-tooltip-container .ax-tooltip:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){color:var(--color-black, #000)}}@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"] }]
18
18
  }], propDecorators: { text: [{
19
19
  type: Input
20
20
  }], position: [{
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-tooltip.mjs","sources":["../../../../packages/components/tooltip/src/lib/tooltip.component.ts","../../../../packages/components/tooltip/src/lib/tooltip.component.html","../../../../packages/components/tooltip/src/lib/tooltip.directive.ts","../../../../packages/components/tooltip/src/lib/tooltip.module.ts","../../../../packages/components/tooltip/src/acorex-components-tooltip.ts"],"sourcesContent":["import { AXComponent, AXPlacement, MXBaseComponent } from '@acorex/cdk/common';\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\n\n/**\n * A component for displaying tooltips with additional information or context when hovering over elements.\n * @category Components\n */\n@Component({\n selector: 'ax-tooltip',\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.component.css'],\n encapsulation: ViewEncapsulation.None,\n\n providers: [{ provide: AXComponent, useExisting: AXTooltipComponent }],\n})\nexport class AXTooltipComponent extends MXBaseComponent {\n /**\n * The text content displayed in the tooltip.\n * @defaultValue 'string'\n */\n @Input()\n text: string;\n\n /**\n * Specifies the position of the tooltip relative to the target element.\n *\n * @type {AXPlacement}\n */\n @Input()\n position: AXPlacement;\n}\n","<div class=\"ax-tooltip-container\">\n <div class=\"ax-tooltip\">\n {{ text }}\n </div>\n <!-- <div class=\"ax-tooltip-tringle ax-tooltip-tringle-{{ position }}\"></div> -->\n</div>\n","import { AXPlacementType, convertToPlacement } from '@acorex/cdk/common';\nimport { AXPopoverComponent } from '@acorex/components/popover';\nimport { Directive, effect, ElementRef, inject, input, Input, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { AXTooltipComponent } from './tooltip.component';\n//prettier-ignore\n// import { AXDragDirective } from '@acorex/cdk/drag-drop';\n\n@Directive({ selector: '[axTooltip]' })\nexport class AXTooltipDirective {\n private vc = inject(ViewContainerRef);\n private elementRef = inject(ElementRef);\n // private dragRef = inject(AXDragDirective, { optional: true });\n\n axTooltipDisabled = input(false);\n content = input<string | TemplateRef<unknown>>('', { alias: 'axTooltip' });\n context = input<unknown>({}, { alias: 'axTooltipContext' });\n\n private _placement: AXPlacementType = convertToPlacement('top');\n @Input('axTooltipPlacement')\n public get placement(): AXPlacementType {\n return this._placement;\n }\n public set placement(v: AXPlacementType) {\n this._placement = v;\n if (this.popoverRef) {\n this.popoverRef.placement = v;\n }\n }\n\n private _offsetX = 0;\n @Input('axTooltipOffsetX')\n public get offsetX(): number {\n return this._offsetX;\n }\n public set offsetX(v: number) {\n this._offsetX = v;\n if (this.popoverRef) {\n this.popoverRef.offsetX = v;\n }\n }\n\n private _offsetY = 0;\n @Input('axTooltipOffsetY')\n public get offsetY(): number {\n return this._offsetY;\n }\n public set offsetY(v: number) {\n this._offsetY = v;\n if (this.popoverRef) {\n this.popoverRef.offsetY = v;\n }\n }\n\n private _openAfter = 100;\n @Input('axTooltipOpenAfter')\n public get openAfter(): number {\n return this._openAfter;\n }\n public set openAfter(v: number) {\n this._openAfter = v;\n if (this.popoverRef) {\n this.popoverRef.openAfter = v;\n }\n }\n\n private _closeAfter = 100;\n @Input('axTooltipCloseAfter')\n public get closeAfter(): number {\n return this._closeAfter;\n }\n public set closeAfter(v: number) {\n this._closeAfter = v;\n if (this.popoverRef) {\n this.popoverRef.closeAfter = v;\n }\n }\n\n private popoverRef: AXPopoverComponent;\n\n private ensurePopover(): void {\n if (this.popoverRef) return;\n this.popoverRef = this.vc.createComponent(AXPopoverComponent).instance;\n this.popoverRef.target = this.elementRef.nativeElement;\n this.popoverRef.openOn = 'hover';\n this.popoverRef.closeOn = 'leave';\n this.popoverRef.placement = this.placement;\n this.popoverRef.offsetX = this.offsetX;\n this.popoverRef.offsetY = this.offsetY;\n this.popoverRef.openAfter = this.openAfter;\n this.popoverRef.closeAfter = this.closeAfter;\n this.popoverRef.disabled = this.axTooltipDisabled();\n }\n\n #contentEff = effect(() => {\n const content = this.content();\n const disabled = this.axTooltipDisabled();\n\n if (!content || disabled) {\n if (this.popoverRef?.isOpen) {\n this.popoverRef.close();\n }\n if (this.popoverRef) {\n this.popoverRef.disabled = true;\n }\n return;\n }\n\n this.ensurePopover();\n this.popoverRef.disabled = false;\n\n if (typeof content === 'string') {\n this.popoverRef.content = AXTooltipComponent;\n this.popoverRef.context = { text: content };\n } else if (content instanceof TemplateRef) {\n this.popoverRef.content = content as TemplateRef<unknown>;\n this.popoverRef.context = this.context();\n } else {\n this.popoverRef.context = { text: '' };\n this.popoverRef.content = null;\n }\n });\n\n public close() {\n this.popoverRef?.close();\n }\n\n #dragWatchEff = effect(() => {\n // if (this.dragRef?.isMoving()) {\n // this.popoverRef.close();\n // }\n });\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXTooltipComponent } from './tooltip.component';\nimport { AXTooltipDirective } from './tooltip.directive';\n\nconst COMPONENT = [AXTooltipComponent, AXTooltipDirective];\nconst MODULES = [CommonModule];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n})\nexport class AXTooltipModule {}\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-tooltip.mjs","sources":["../../../../packages/components/tooltip/src/lib/tooltip.component.ts","../../../../packages/components/tooltip/src/lib/tooltip.component.html","../../../../packages/components/tooltip/src/lib/tooltip.directive.ts","../../../../packages/components/tooltip/src/lib/tooltip.module.ts","../../../../packages/components/tooltip/src/acorex-components-tooltip.ts"],"sourcesContent":["import { AXComponent, AXPlacement, MXBaseComponent } from '@acorex/cdk/common';\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\n\n/**\n * A component for displaying tooltips with additional information or context when hovering over elements.\n * @category Components\n */\n@Component({\n selector: 'ax-tooltip',\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.component.css'],\n encapsulation: ViewEncapsulation.None,\n\n providers: [{ provide: AXComponent, useExisting: AXTooltipComponent }],\n})\nexport class AXTooltipComponent extends MXBaseComponent {\n /**\n * The text content displayed in the tooltip.\n * @defaultValue 'string'\n */\n @Input()\n text: string;\n\n /**\n * Specifies the position of the tooltip relative to the target element.\n *\n * @type {AXPlacement}\n */\n @Input()\n position: AXPlacement;\n}\n","<div class=\"ax-tooltip-container\">\n <div class=\"ax-tooltip\">\n {{ text }}\n </div>\n <!-- <div class=\"ax-tooltip-tringle ax-tooltip-tringle-{{ position }}\"></div> -->\n</div>\n","import { AXPlacementType, convertToPlacement } from '@acorex/cdk/common';\nimport { AXPopoverComponent } from '@acorex/components/popover';\nimport { Directive, effect, ElementRef, inject, input, Input, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { AXTooltipComponent } from './tooltip.component';\n//prettier-ignore\n// import { AXDragDirective } from '@acorex/cdk/drag-drop';\n\n@Directive({ selector: '[axTooltip]' })\nexport class AXTooltipDirective {\n private vc = inject(ViewContainerRef);\n private elementRef = inject(ElementRef);\n // private dragRef = inject(AXDragDirective, { optional: true });\n\n axTooltipDisabled = input(false);\n content = input<string | TemplateRef<unknown>>('', { alias: 'axTooltip' });\n context = input<unknown>({}, { alias: 'axTooltipContext' });\n\n private _placement: AXPlacementType = convertToPlacement('top');\n @Input('axTooltipPlacement')\n public get placement(): AXPlacementType {\n return this._placement;\n }\n public set placement(v: AXPlacementType) {\n this._placement = v;\n if (this.popoverRef) {\n this.popoverRef.placement = v;\n }\n }\n\n private _offsetX = 0;\n @Input('axTooltipOffsetX')\n public get offsetX(): number {\n return this._offsetX;\n }\n public set offsetX(v: number) {\n this._offsetX = v;\n if (this.popoverRef) {\n this.popoverRef.offsetX = v;\n }\n }\n\n private _offsetY = 0;\n @Input('axTooltipOffsetY')\n public get offsetY(): number {\n return this._offsetY;\n }\n public set offsetY(v: number) {\n this._offsetY = v;\n if (this.popoverRef) {\n this.popoverRef.offsetY = v;\n }\n }\n\n private _openAfter = 100;\n @Input('axTooltipOpenAfter')\n public get openAfter(): number {\n return this._openAfter;\n }\n public set openAfter(v: number) {\n this._openAfter = v;\n if (this.popoverRef) {\n this.popoverRef.openAfter = v;\n }\n }\n\n private _closeAfter = 100;\n @Input('axTooltipCloseAfter')\n public get closeAfter(): number {\n return this._closeAfter;\n }\n public set closeAfter(v: number) {\n this._closeAfter = v;\n if (this.popoverRef) {\n this.popoverRef.closeAfter = v;\n }\n }\n\n private popoverRef: AXPopoverComponent;\n\n private ensurePopover(): void {\n if (this.popoverRef) return;\n this.popoverRef = this.vc.createComponent(AXPopoverComponent).instance;\n this.popoverRef.target = this.elementRef.nativeElement;\n this.popoverRef.openOn = 'hover';\n this.popoverRef.closeOn = 'leave';\n this.popoverRef.placement = this.placement;\n this.popoverRef.offsetX = this.offsetX;\n this.popoverRef.offsetY = this.offsetY;\n this.popoverRef.openAfter = this.openAfter;\n this.popoverRef.closeAfter = this.closeAfter;\n this.popoverRef.disabled = this.axTooltipDisabled();\n }\n\n #contentEff = effect(() => {\n const content = this.content();\n const disabled = this.axTooltipDisabled();\n\n if (!content || disabled) {\n if (this.popoverRef?.isOpen) {\n this.popoverRef.close();\n }\n if (this.popoverRef) {\n this.popoverRef.disabled = true;\n }\n return;\n }\n\n this.ensurePopover();\n this.popoverRef.disabled = false;\n\n if (typeof content === 'string') {\n this.popoverRef.content = AXTooltipComponent;\n this.popoverRef.context = { text: content };\n } else if (content instanceof TemplateRef) {\n this.popoverRef.content = content as TemplateRef<unknown>;\n this.popoverRef.context = this.context();\n } else {\n this.popoverRef.context = { text: '' };\n this.popoverRef.content = null;\n }\n });\n\n public close() {\n this.popoverRef?.close();\n }\n\n #dragWatchEff = effect(() => {\n // if (this.dragRef?.isMoving()) {\n // this.popoverRef.close();\n // }\n });\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXTooltipComponent } from './tooltip.component';\nimport { AXTooltipDirective } from './tooltip.directive';\n\nconst COMPONENT = [AXTooltipComponent, AXTooltipDirective];\nconst MODULES = [CommonModule];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n})\nexport class AXTooltipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/lookup/README.md CHANGED
@@ -10,7 +10,7 @@ An advanced drop-down (lookup) component with five modes, `AXDataSource` support
10
10
  | `multi-select` | A predefined list of options for multiple item selection. |
11
11
  | `drop-down-tree` | A tree-like structure for single item selection. |
12
12
  | `multi-select-tree` | A tree-like structure for multiple item selection. |
13
- | `multi-column` | A table-structured list for picking single values. |
13
+ | `multi-column` | An `ax-data-table` grid; further pages load on scroll. |
14
14
 
15
15
  ## Usage
16
16
 
@@ -21,26 +21,31 @@ import { AXDataSource } from '@acorex/cdk/common';
21
21
 
22
22
  ```html
23
23
  <!-- DropDownList -->
24
- <ax-lookup mode="drop-down-list" [dataSource]="items" [(value)]="selected" placeholder="Select..."></ax-lookup>
24
+ <ax-lookup mode="drop-down-list" [dataSource]="items" [(ngModel)]="selected" placeholder="Select..."></ax-lookup>
25
25
 
26
26
  <!-- MultiSelect -->
27
- <ax-lookup mode="multi-select" [dataSource]="items" [(value)]="selectedValues"></ax-lookup>
27
+ <ax-lookup mode="multi-select" [dataSource]="items" [(ngModel)]="selectedValues"></ax-lookup>
28
28
 
29
29
  <!-- DropDownTree / MultiSelectTree -->
30
- <ax-lookup mode="drop-down-tree" [treeDataSource]="nodes" textField="title" [(value)]="selectedNode"></ax-lookup>
31
- <ax-lookup mode="multi-select-tree" [treeDataSource]="nodes" textField="title" [(value)]="selectedNodes"></ax-lookup>
30
+ <ax-lookup mode="drop-down-tree" [treeDataSource]="nodes" textField="title" [(ngModel)]="selectedNode"></ax-lookup>
31
+ <ax-lookup mode="multi-select-tree" [treeDataSource]="nodes" textField="title" [(ngModel)]="selectedNodes"></ax-lookup>
32
32
 
33
33
  <!-- MultiColumnComboBox -->
34
- <ax-lookup mode="multi-column" [dataSource]="items" [columns]="columns" [(value)]="selected"></ax-lookup>
34
+ <ax-lookup mode="multi-column" [dataSource]="items" [columns]="columns" [(ngModel)]="selected"></ax-lookup>
35
35
  ```
36
36
 
37
+ Value binding uses the signal `value` model (`FormValueControl`) — prefer `[(ngModel)]` (or `[(value)]` / signal forms). No `ControlValueAccessor`.
38
+
37
39
  - `dataSource`: `AXDataSource` or a plain array (list and multi-column modes). Supports remote paging, `byKey` value resolution, and server-side filtering.
38
40
  - `treeDataSource`: node array or lazy children callback (tree modes).
39
41
  - `valueField` / `textField` / `disabledField`: field mappings. For tree modes these map to the tree `idField` / `titleField`.
40
- - `columns`: column definitions (`{ field, title, width? }`) for `multi-column` mode.
42
+ - `columns`: column definitions (`{ field, title, width? }`) for `multi-column` mode (mapped to `ax-text-column`).
41
43
  - `searchable`: when `true` (default), the trigger accepts typing and filters the list (`drop-down-list`, `multi-select`, `multi-column`). When `false`, the trigger is select-only. Tree modes have no search UI.
44
+ - `adaptivityEnabled`: when `true` (default), the list opens as a bottom actionsheet on small screens instead of a dropdown; set `false` to always use the anchored dropdown.
45
+ - `caption`: title shown in the actionsheet header (falls back to `placeholder`).
46
+ - `alternate`: when `true`, list rows use alternating background colors for easier scanning (`drop-down-list`, `multi-select`, `multi-column`).
42
47
  - `searchPlaceholder`: placeholder for the multi-select trigger search input when chips are already selected.
43
- - `itemHeight` / `maxVisibleItems`: virtual scroll sizing.
48
+ - `itemHeight` / `maxVisibleItems`: list virtual-scroll sizing, and multi-column table viewport height (multi-column loads more pages on scroll, not via a pager).
44
49
  - `look`: the same editor-container look schemes as other editors like `ax-text-box`.
45
50
  - `ax-prefix` / `ax-suffix`: project decorators into the editor container.
46
51
 
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@acorex/components",
3
- "version": "22.1.0-next.0",
3
+ "version": "22.1.0-next.1",
4
4
  "peerDependencies": {
5
- "@acorex/core": "22.1.0-next.0",
6
- "@acorex/cdk": "22.1.0-next.0",
5
+ "@acorex/core": "22.1.0-next.1",
6
+ "@acorex/cdk": "22.1.0-next.1",
7
7
  "polytype": ">=0.17.0",
8
8
  "angular-imask": ">=7.6.1",
9
9
  "imask": ">=7.6.1",
@@ -1,3 +1,8 @@
1
1
  # @acorex/components/select-box
2
2
 
3
+ > **Deprecated.** This component is no longer supported.
4
+ >
5
+ > - Use [`combo-box`](../combo-box) when your data is a simple array.
6
+ > - Use [`lookup`](../lookup) when you need advanced features and `AXDataSource` support.
7
+
3
8
  Secondary entry point of `@acorex/components`. It can be used by importing from `@acorex/components/select-box`.
@@ -1,5 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { TemplateRef, Type, OnInit, AfterViewInit, OnDestroy } from '@angular/core';
2
+ import { TemplateRef, Type, ElementRef, OnInit, AfterViewInit, OnDestroy } from '@angular/core';
3
3
  import { AXStyleColorType, AXComponentCloseEvent, MXBaseComponent } from '@acorex/cdk/common';
4
4
  import { AXOverlayRef } from '@acorex/cdk/overlay';
5
5
  import { AXComponentInputs, AXComponentType } from '@acorex/core/components';
@@ -37,6 +37,14 @@ interface AXActionSheetConfig {
37
37
  content?: AXActionSheetContentType;
38
38
  draggable?: boolean;
39
39
  dragUp?: boolean;
40
+ /**
41
+ * Element used to resolve inherited visual context for overlays rendered
42
+ * outside the originating DOM subtree.
43
+ *
44
+ * This affects Appearance, Light/Dark theme, Contrast, Size, and supported
45
+ * Density context. It does not affect overlay positioning.
46
+ */
47
+ contextElement?: HTMLElement | ElementRef<HTMLElement>;
40
48
  }
41
49
  /**
42
50
  * Reference to an open action sheet, providing methods to interact with it.
@@ -1,8 +1,10 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { NXComponent, AXStyleLookType, AXValueChangedEvent, AXEvent } from '@acorex/cdk/common';
2
+ import { TemplateRef } from '@angular/core';
3
+ import { NXComponent, AXStyleLookType, AXValueChangedEvent, AXFocusEvent, AXItemClickEvent, AXItemSelectedEvent, AXEvent } from '@acorex/cdk/common';
3
4
  import { AXPopoverComponent } from '@acorex/components/popover';
4
5
  import { Combobox } from '@angular/aria/combobox';
5
6
  import { Listbox } from '@angular/aria/listbox';
7
+ import { FormValueControl } from '@angular/forms/signals';
6
8
 
7
9
  /**
8
10
  * An item in the combo box list.
@@ -22,13 +24,19 @@ interface AXComboBoxItem {
22
24
  *
23
25
  * Built on top of the `@angular/aria/combobox` directives, it supports two behaviors:
24
26
  * - `searchable="true"` (default): an input with typeahead filtering (matches `id`).
25
- * - `searchable="false"`: a select-like trigger (same input, read-only).
27
+ * - `searchable="false"`: a select-like, non-editable trigger (same input; typing blocked without
28
+ * Combobox `readonly`, so Tab focus and keyboard open/select keep working).
29
+ *
30
+ * With `adaptivityEnabled` (default `true`), the list opens as a bottom actionsheet on small
31
+ * screens instead of an anchored dropdown — the same alternate presentation as `ax-select-box`.
26
32
  *
27
33
  * Items use `text` for display, `id` for search/identity, and `value` as the submitted model value.
34
+ * Implements {@link FormValueControl} so `[(ngModel)]` / signal forms work via the `value` model
35
+ * (no `ControlValueAccessor`).
28
36
  *
29
37
  * @category Components
30
38
  */
31
- declare class AXComboBoxComponent extends NXComponent {
39
+ declare class AXComboBoxComponent extends NXComponent implements FormValueControl<string | number | null> {
32
40
  #private;
33
41
  /**
34
42
  * The list of items the user can select from.
@@ -37,33 +45,80 @@ declare class AXComboBoxComponent extends NXComponent {
37
45
  items: _angular_core.InputSignal<AXComboBoxItem[]>;
38
46
  /**
39
47
  * Whether the combo box accepts typing and filters the list (`true`),
40
- * or is a select-like, read-only trigger (`false`).
48
+ * or is a select-like, non-editable trigger (`false`).
41
49
  */
42
50
  searchable: _angular_core.InputSignal<boolean>;
51
+ /**
52
+ * When `true` (default), the popup list uses the alternate actionsheet presentation on small
53
+ * screens (`SM`). When `false`, the list always opens as an anchored dropdown.
54
+ */
55
+ adaptivityEnabled: _angular_core.InputSignal<boolean>;
56
+ /**
57
+ * Title shown in the actionsheet header on small screens. Falls back to `placeholder`.
58
+ */
59
+ caption: _angular_core.InputSignal<string>;
60
+ /**
61
+ * When `true`, list rows use alternating background colors for easier scanning.
62
+ */
63
+ alternate: _angular_core.InputSignal<boolean>;
43
64
  /**
44
65
  * The placeholder text shown when no value is selected.
45
66
  */
46
67
  placeholder: _angular_core.InputSignal<string>;
68
+ /**
69
+ * Custom template rendered when the filtered list has no items.
70
+ * When omitted, a default "no result found" message is shown.
71
+ */
72
+ emptyTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
73
+ /**
74
+ * Custom template rendered for each item in the popup list.
75
+ * Context: `{ $implicit: AXComboBoxItem }`.
76
+ */
77
+ itemTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
78
+ /**
79
+ * Custom template rendered for the selected value in the trigger.
80
+ * Context: `{ $implicit: AXComboBoxItem }`.
81
+ * When `searchable` is true, the template is shown while the popup is closed and the input
82
+ * still reflects the selected text; typing/opening falls back to the plain input.
83
+ */
84
+ selectedTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
47
85
  /**
48
86
  * Whether the combo box is disabled.
49
87
  */
50
- disabled: _angular_core.ModelSignal<boolean>;
88
+ readonly disabled: _angular_core.InputSignal<boolean>;
51
89
  /**
52
90
  * Whether the combo box is readonly.
53
91
  */
54
- readonly: _angular_core.ModelSignal<boolean>;
92
+ readonly readonly: _angular_core.InputSignal<boolean>;
55
93
  /**
56
94
  * Predefined look scheme of the editor container. Same looks as other editor components like ax-text-box.
57
95
  */
58
96
  look: _angular_core.ModelSignal<AXStyleLookType>;
59
97
  /**
60
- * The selected item's `value`. Supports two-way binding.
98
+ * The selected item's `value`. Supports `[(value)]`, `[(ngModel)]`, and signal forms
99
+ * via {@link FormValueControl}.
61
100
  */
62
- value: _angular_core.ModelSignal<string | number>;
101
+ readonly value: _angular_core.ModelSignal<string | number>;
63
102
  /**
64
103
  * Emitted when the selected value changes.
65
104
  */
66
105
  onValueChanged: _angular_core.OutputEmitterRef<AXValueChangedEvent<string | number>>;
106
+ /**
107
+ * Emitted when the trigger receives focus.
108
+ */
109
+ onFocus: _angular_core.OutputEmitterRef<AXFocusEvent>;
110
+ /**
111
+ * Emitted when the trigger loses focus.
112
+ */
113
+ onBlur: _angular_core.OutputEmitterRef<AXFocusEvent>;
114
+ /**
115
+ * Emitted when a list item is clicked.
116
+ */
117
+ onItemClick: _angular_core.OutputEmitterRef<AXItemClickEvent<AXComboBoxItem>>;
118
+ /**
119
+ * Emitted when a list item is selected (click or keyboard).
120
+ */
121
+ onItemSelected: _angular_core.OutputEmitterRef<AXItemSelectedEvent<AXComboBoxItem>>;
67
122
  /**
68
123
  * Emitted when the popup list opens.
69
124
  */
@@ -74,12 +129,16 @@ declare class AXComboBoxComponent extends NXComponent {
74
129
  onClosed: _angular_core.OutputEmitterRef<AXEvent>;
75
130
  /** Whether the popup is expanded. */
76
131
  protected expanded: _angular_core.WritableSignal<boolean>;
132
+ /** Whether the list is currently shown as a bottom actionsheet (small screens + adaptivity). */
133
+ protected isActionsheetStyle: _angular_core.WritableSignal<boolean>;
77
134
  /** The item whose `value` matches the current model value. */
78
135
  protected selectedItem: _angular_core.Signal<AXComboBoxItem>;
79
136
  /** Display text shown in the trigger / used as the searchable input baseline. */
80
137
  protected displayText: _angular_core.Signal<string>;
81
138
  /** The text typed in the searchable input. Resets to the selected item's text. */
82
139
  protected searchText: _angular_core.WritableSignal<string>;
140
+ /** Whether the trigger should render `selectedTemplate` instead of the plain input text. */
141
+ protected showSelectedTemplate: _angular_core.Signal<boolean>;
83
142
  /** The listbox selection (item ids), kept in sync with the selected value. */
84
143
  protected selection: _angular_core.WritableSignal<string[]>;
85
144
  /** Items filtered by typed query against `id` when the combo box is searchable. */
@@ -88,20 +147,51 @@ declare class AXComboBoxComponent extends NXComponent {
88
147
  protected listboxRef: _angular_core.Signal<Listbox<any>>;
89
148
  protected popoverRef: _angular_core.Signal<AXPopoverComponent>;
90
149
  constructor();
150
+ /** Stable unique key for `@for` — avoids NG0955 when `id` is missing or duplicated. */
151
+ protected trackItemKey(index: number, item: AXComboBoxItem): string;
91
152
  /**
92
153
  * Opens (searchable) or toggles (non-searchable) the popup on trigger click.
93
154
  */
94
155
  protected onTriggerClick(): void;
156
+ /**
157
+ * Non-searchable keyboard: open with Enter/Space when collapsed; commit with Space when expanded.
158
+ * (Aria relays Enter for editable inputs, but not Space.)
159
+ */
160
+ protected onTriggerKeydown(event: KeyboardEvent): void;
161
+ /** Blocks typing in non-searchable mode without Combobox `readonly` (keeps Tab/keyboard working). */
162
+ protected onBeforeInput(event: Event): void;
95
163
  /**
96
164
  * Keeps the combobox expanded state in sync when the popover closes (e.g. click outside).
97
165
  */
98
166
  protected onPopoverClosed(): void;
99
167
  /**
100
- * Commits the current listbox selection as the component value and closes the popup.
168
+ * Clears the selected value (sets it to `null`) and closes the popup.
169
+ * Used by projected `ax-clear-button`.
170
+ *
171
+ * @param isUserInteraction - Whether the clear was triggered by the user.
172
+ */
173
+ reset(isUserInteraction?: boolean): void;
174
+ /**
175
+ * Closes the popup list.
176
+ */
177
+ close(): void;
178
+ /**
179
+ * Closes the popup list (alias for {@link close}, required by `AXClosableComponent`).
180
+ */
181
+ closeAll(): void;
182
+ /**
183
+ * Commits the highlighted (active) or clicked list item as the component value and closes the popup.
184
+ *
185
+ * With `selectionMode="explicit"`, arrow keys only move the active item; Enter/Space must resolve
186
+ * that option. Clicks resolve from the event target so we do not depend on listener order vs ngListbox.
101
187
  */
102
- protected commit(): void;
188
+ protected commit(event?: Event): void;
189
+ /** Forwards native focus from the trigger input. */
190
+ protected emitOnFocus(e: FocusEvent): void;
191
+ /** Forwards native blur from the trigger input. */
192
+ protected emitOnBlur(e: FocusEvent): void;
103
193
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXComboBoxComponent, never>;
104
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXComboBoxComponent, "ax-combo-box", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "look": { "alias": "look"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "disabled": "disabledChange"; "readonly": "readonlyChange"; "look": "lookChange"; "value": "valueChange"; "onValueChanged": "onValueChanged"; "onOpened": "onOpened"; "onClosed": "onClosed"; }, never, ["ax-prefix", "ax-suffix"], true, never>;
194
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXComboBoxComponent, "ax-combo-box", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "adaptivityEnabled": { "alias": "adaptivityEnabled"; "required": false; "isSignal": true; }; "caption": { "alias": "caption"; "required": false; "isSignal": true; }; "alternate": { "alias": "alternate"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "emptyTemplate": { "alias": "emptyTemplate"; "required": false; "isSignal": true; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; "isSignal": true; }; "selectedTemplate": { "alias": "selectedTemplate"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "look": { "alias": "look"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "look": "lookChange"; "value": "valueChange"; "onValueChanged": "onValueChanged"; "onFocus": "onFocus"; "onBlur": "onBlur"; "onItemClick": "onItemClick"; "onItemSelected": "onItemSelected"; "onOpened": "onOpened"; "onClosed": "onClosed"; }, never, ["ax-prefix", "ax-clear-button", "ax-suffix", "ax-header", "ax-footer"], true, never>;
105
195
  }
106
196
 
107
197
  declare class AXComboBoxModule {
@@ -8,6 +8,7 @@ import * as i1 from '@angular/common';
8
8
  * @category Components
9
9
  */
10
10
  declare class AXDecoratorClearButtonComponent extends MXBaseComponent {
11
+ #private;
11
12
  private _parent;
12
13
  /**
13
14
  * @ignore