@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.
- package/combo-box/README.md +7 -2
- package/fesm2022/acorex-components-action-sheet.mjs +1 -0
- package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
- package/fesm2022/acorex-components-button.mjs +2 -2
- package/fesm2022/acorex-components-button.mjs.map +1 -1
- package/fesm2022/acorex-components-combo-box.mjs +240 -17
- package/fesm2022/acorex-components-combo-box.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation.mjs +2 -2
- package/fesm2022/acorex-components-conversation.mjs.map +1 -1
- package/fesm2022/acorex-components-decorators.mjs +19 -3
- package/fesm2022/acorex-components-decorators.mjs.map +1 -1
- package/fesm2022/acorex-components-dialog.mjs +4 -2
- package/fesm2022/acorex-components-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-drawer.mjs +2 -2
- package/fesm2022/acorex-components-drawer.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown.mjs +4 -4
- package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
- package/fesm2022/acorex-components-fab.mjs +2 -2
- package/fesm2022/acorex-components-fab.mjs.map +1 -1
- package/fesm2022/acorex-components-list.mjs +2 -2
- package/fesm2022/acorex-components-list.mjs.map +1 -1
- package/fesm2022/acorex-components-lookup.mjs +722 -175
- package/fesm2022/acorex-components-lookup.mjs.map +1 -1
- package/fesm2022/acorex-components-map.mjs +2 -2
- package/fesm2022/acorex-components-map.mjs.map +1 -1
- package/fesm2022/acorex-components-menu.mjs +26 -6
- package/fesm2022/acorex-components-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-notification.mjs +9 -2
- package/fesm2022/acorex-components-notification.mjs.map +1 -1
- package/fesm2022/acorex-components-password-box.mjs +1 -1
- package/fesm2022/acorex-components-password-box.mjs.map +1 -1
- package/fesm2022/acorex-components-popover.mjs +7 -6
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +4 -2
- package/fesm2022/acorex-components-popup.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler.mjs +6 -6
- package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
- package/fesm2022/acorex-components-select-box.mjs +13 -2
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/fesm2022/acorex-components-text-area.mjs +2 -2
- package/fesm2022/acorex-components-text-area.mjs.map +1 -1
- package/fesm2022/acorex-components-toast.mjs +9 -2
- package/fesm2022/acorex-components-toast.mjs.map +1 -1
- package/fesm2022/acorex-components-tooltip.mjs +2 -2
- package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
- package/lookup/README.md +13 -8
- package/package.json +3 -3
- package/select-box/README.md +5 -0
- package/types/acorex-components-action-sheet.d.ts +9 -1
- package/types/acorex-components-combo-box.d.ts +101 -11
- package/types/acorex-components-decorators.d.ts +1 -0
- package/types/acorex-components-dialog.d.ts +9 -0
- package/types/acorex-components-lookup.d.ts +260 -90
- package/types/acorex-components-menu.d.ts +2 -0
- package/types/acorex-components-notification.d.ts +11 -1
- package/types/acorex-components-popover.d.ts +4 -1
- package/types/acorex-components-popup.d.ts +9 -1
- package/types/acorex-components-select-box.d.ts +8 -2
- 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":";;;;;;AAGA;;;AAGG;AASG,MAAO,kBAAmB,SAAQ,eAAe,CAAA;8GAA1C,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAFlB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC,iDCbxE,+LAMA,EAAA,MAAA,EAAA,CAAA,0pCAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDSa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAR9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAAA,aAAA,EAGP,iBAAiB,CAAC,IAAI,aAE1B,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAA,kBAAoB,EAAE,CAAC,EAAA,QAAA,EAAA,+LAAA,EAAA,MAAA,EAAA,CAAA,0pCAAA,CAAA,EAAA;;sBAOrE;;sBAQA;;;AExBH;AACA;MAGa,kBAAkB,CAAA;AAD/B,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC7B,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;;QAGvC,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAAC,KAAK;8FAAC;QAChC,IAAA,CAAA,OAAO,GAAG,KAAK,CAAgC,EAAE,+EAAI,KAAK,EAAE,WAAW,EAAA,CAAG;QAC1E,IAAA,CAAA,OAAO,GAAG,KAAK,CAAU,EAAE,+EAAI,KAAK,EAAE,kBAAkB,EAAA,CAAG;AAEnD,QAAA,IAAA,CAAA,UAAU,GAAoB,kBAAkB,CAAC,KAAK,CAAC;QAYvD,IAAA,CAAA,QAAQ,GAAG,CAAC;QAYZ,IAAA,CAAA,QAAQ,GAAG,CAAC;QAYZ,IAAA,CAAA,UAAU,GAAG,GAAG;QAYhB,IAAA,CAAA,WAAW,GAAG,GAAG;AA4BzB,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,MAAK;AACxB,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAC9B,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE;AAEzC,YAAA,IAAI,CAAC,OAAO,IAAI,QAAQ,EAAE;AACxB,gBAAA,IAAI,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE;AAC3B,oBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;gBACzB;AACA,gBAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,oBAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI;gBACjC;gBACA;YACF;YAEA,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,KAAK;AAEhC,YAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAC/B,gBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,kBAAkB;gBAC5C,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE;YAC7C;AAAO,iBAAA,IAAI,OAAO,YAAY,WAAW,EAAE;AACzC,gBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,OAA+B;gBACzD,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;YAC1C;iBAAO;gBACL,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;AACtC,gBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI;YAChC;QACF,CAAC;wFAAC;AAMF,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,MAAK;;;;QAI5B,CAAC;0FAAC;AACH,IAAA;AAjHC,IAAA,IACW,SAAS,GAAA;QAClB,OAAO,IAAI,CAAC,UAAU;IACxB;IACA,IAAW,SAAS,CAAC,CAAkB,EAAA;AACrC,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC;AACnB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,CAAC;QAC/B;IACF;AAGA,IAAA,IACW,OAAO,GAAA;QAChB,OAAO,IAAI,CAAC,QAAQ;IACtB;IACA,IAAW,OAAO,CAAC,CAAS,EAAA;AAC1B,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC;AACjB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC;QAC7B;IACF;AAGA,IAAA,IACW,OAAO,GAAA;QAChB,OAAO,IAAI,CAAC,QAAQ;IACtB;IACA,IAAW,OAAO,CAAC,CAAS,EAAA;AAC1B,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC;AACjB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC;QAC7B;IACF;AAGA,IAAA,IACW,SAAS,GAAA;QAClB,OAAO,IAAI,CAAC,UAAU;IACxB;IACA,IAAW,SAAS,CAAC,CAAS,EAAA;AAC5B,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC;AACnB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,CAAC;QAC/B;IACF;AAGA,IAAA,IACW,UAAU,GAAA;QACnB,OAAO,IAAI,CAAC,WAAW;IACzB;IACA,IAAW,UAAU,CAAC,CAAS,EAAA;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;AACpB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,CAAC;QAChC;IACF;IAIQ,aAAa,GAAA;QACnB,IAAI,IAAI,CAAC,UAAU;YAAE;AACrB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,QAAQ;QACtE,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;AACtD,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,OAAO;AAChC,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,OAAO;QACjC,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;QAC1C,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;QACtC,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;QACtC,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;QAC1C,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU;QAC5C,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE;IACrD;AAEA,IAAA,WAAW;IA6BJ,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE;IAC1B;AAEA,IAAA,aAAa;8GAtHF,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,SAAS;mBAAC,EAAE,QAAQ,EAAE,aAAa,EAAE;;sBAWnC,KAAK;uBAAC,oBAAoB;;sBAY1B,KAAK;uBAAC,kBAAkB;;sBAYxB,KAAK;uBAAC,kBAAkB;;sBAYxB,KAAK;uBAAC,oBAAoB;;sBAY1B,KAAK;uBAAC,qBAAqB;;;AC7D9B,MAAM,SAAS,GAAG,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;AAC1D,MAAM,OAAO,GAAG,CAAC,YAAY,CAAC;MAMjB,eAAe,CAAA;8GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAf,eAAe,EAAA,OAAA,EAAA,CANX,YAAY,EADV,kBAAkB,EAAE,kBAAkB,CAAA,EAAA,OAAA,EAAA,CAAtC,kBAAkB,EAAE,kBAAkB,CAAA,EAAA,CAAA,CAAA;AAO5C,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,eAAe,YAHb,OAAO,CAAA,EAAA,CAAA,CAAA;;2FAGT,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC;AACnC,oBAAA,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC;AACxB,iBAAA;;;ACXD;;AAEG;;;;"}
|
|
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` |
|
|
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" [(
|
|
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" [(
|
|
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" [(
|
|
31
|
-
<ax-lookup mode="multi-select-tree" [treeDataSource]="nodes" textField="title" [(
|
|
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" [(
|
|
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
|
|
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.
|
|
3
|
+
"version": "22.1.0-next.1",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@acorex/core": "22.1.0-next.
|
|
6
|
-
"@acorex/cdk": "22.1.0-next.
|
|
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",
|
package/select-box/README.md
CHANGED
|
@@ -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 {
|
|
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
|
|
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,
|
|
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.
|
|
88
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
51
89
|
/**
|
|
52
90
|
* Whether the combo box is readonly.
|
|
53
91
|
*/
|
|
54
|
-
readonly: _angular_core.
|
|
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
|
|
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
|
-
*
|
|
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; }; }, { "
|
|
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 {
|