@shival99/z-ui 2.6.7 → 2.6.8

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 (69) hide show
  1. package/fesm2022/shival99-z-ui-components-z-button-group.mjs +1 -1
  2. package/fesm2022/shival99-z-ui-components-z-button-group.mjs.map +1 -1
  3. package/fesm2022/shival99-z-ui-components-z-calendar.mjs +13 -13
  4. package/fesm2022/shival99-z-ui-components-z-calendar.mjs.map +1 -1
  5. package/fesm2022/shival99-z-ui-components-z-editor.mjs +1 -1
  6. package/fesm2022/shival99-z-ui-components-z-editor.mjs.map +1 -1
  7. package/fesm2022/shival99-z-ui-components-z-modal.mjs +6 -7
  8. package/fesm2022/shival99-z-ui-components-z-modal.mjs.map +1 -1
  9. package/fesm2022/shival99-z-ui-components-z-popover.mjs +2 -2
  10. package/fesm2022/shival99-z-ui-components-z-popover.mjs.map +1 -1
  11. package/fesm2022/shival99-z-ui-components-z-toast.mjs +4 -4
  12. package/fesm2022/shival99-z-ui-components-z-toast.mjs.map +1 -1
  13. package/fesm2022/shival99-z-ui-components-z-tooltip.mjs +1 -1
  14. package/fesm2022/shival99-z-ui-components-z-tooltip.mjs.map +1 -1
  15. package/package.json +1 -1
  16. package/types/shival99-z-ui-components-z-button-group.d.ts +1 -1
  17. package/types/shival99-z-ui-components-z-modal.d.ts +1 -1
  18. package/.npmignore +0 -58
  19. package/fesm2022/shival99-z-ui-components-z-autocomplete.mjs +0 -1212
  20. package/fesm2022/shival99-z-ui-components-z-autocomplete.mjs.map +0 -1
  21. package/fesm2022/shival99-z-ui-components-z-drawer.mjs +0 -994
  22. package/fesm2022/shival99-z-ui-components-z-drawer.mjs.map +0 -1
  23. package/fesm2022/shival99-z-ui-components-z-dropdown-menu.mjs +0 -99
  24. package/fesm2022/shival99-z-ui-components-z-dropdown-menu.mjs.map +0 -1
  25. package/fesm2022/shival99-z-ui-components-z-filter.mjs +0 -962
  26. package/fesm2022/shival99-z-ui-components-z-filter.mjs.map +0 -1
  27. package/fesm2022/shival99-z-ui-components-z-number-ticker.mjs +0 -352
  28. package/fesm2022/shival99-z-ui-components-z-number-ticker.mjs.map +0 -1
  29. package/fesm2022/shival99-z-ui-components-z-pagination.mjs +0 -179
  30. package/fesm2022/shival99-z-ui-components-z-pagination.mjs.map +0 -1
  31. package/fesm2022/shival99-z-ui-components-z-qrcode.mjs +0 -429
  32. package/fesm2022/shival99-z-ui-components-z-qrcode.mjs.map +0 -1
  33. package/fesm2022/shival99-z-ui-components-z-radio.mjs +0 -183
  34. package/fesm2022/shival99-z-ui-components-z-radio.mjs.map +0 -1
  35. package/fesm2022/shival99-z-ui-components-z-scrollarea.mjs +0 -143
  36. package/fesm2022/shival99-z-ui-components-z-scrollarea.mjs.map +0 -1
  37. package/fesm2022/shival99-z-ui-components-z-show-more.mjs +0 -138
  38. package/fesm2022/shival99-z-ui-components-z-show-more.mjs.map +0 -1
  39. package/fesm2022/shival99-z-ui-components-z-skeleton-auto.mjs +0 -80
  40. package/fesm2022/shival99-z-ui-components-z-skeleton-auto.mjs.map +0 -1
  41. package/fesm2022/shival99-z-ui-components-z-steps.mjs +0 -420
  42. package/fesm2022/shival99-z-ui-components-z-steps.mjs.map +0 -1
  43. package/fesm2022/shival99-z-ui-components-z-table.mjs +0 -11490
  44. package/fesm2022/shival99-z-ui-components-z-table.mjs.map +0 -1
  45. package/fesm2022/shival99-z-ui-components-z-tabs.mjs +0 -1102
  46. package/fesm2022/shival99-z-ui-components-z-tabs.mjs.map +0 -1
  47. package/fesm2022/shival99-z-ui-components-z-tags.mjs +0 -364
  48. package/fesm2022/shival99-z-ui-components-z-tags.mjs.map +0 -1
  49. package/fesm2022/shival99-z-ui-components-z-timeline.mjs +0 -254
  50. package/fesm2022/shival99-z-ui-components-z-timeline.mjs.map +0 -1
  51. package/fesm2022/shival99-z-ui-services-excel.mjs +0 -672
  52. package/fesm2022/shival99-z-ui-services-excel.mjs.map +0 -1
  53. package/types/shival99-z-ui-components-z-autocomplete.d.ts +0 -301
  54. package/types/shival99-z-ui-components-z-drawer.d.ts +0 -301
  55. package/types/shival99-z-ui-components-z-dropdown-menu.d.ts +0 -52
  56. package/types/shival99-z-ui-components-z-filter.d.ts +0 -285
  57. package/types/shival99-z-ui-components-z-number-ticker.d.ts +0 -110
  58. package/types/shival99-z-ui-components-z-pagination.d.ts +0 -55
  59. package/types/shival99-z-ui-components-z-qrcode.d.ts +0 -79
  60. package/types/shival99-z-ui-components-z-radio.d.ts +0 -69
  61. package/types/shival99-z-ui-components-z-scrollarea.d.ts +0 -46
  62. package/types/shival99-z-ui-components-z-show-more.d.ts +0 -36
  63. package/types/shival99-z-ui-components-z-skeleton-auto.d.ts +0 -35
  64. package/types/shival99-z-ui-components-z-steps.d.ts +0 -106
  65. package/types/shival99-z-ui-components-z-table.d.ts +0 -2414
  66. package/types/shival99-z-ui-components-z-tabs.d.ts +0 -196
  67. package/types/shival99-z-ui-components-z-tags.d.ts +0 -127
  68. package/types/shival99-z-ui-components-z-timeline.d.ts +0 -71
  69. package/types/shival99-z-ui-services-excel.d.ts +0 -36
@@ -1 +1 @@
1
- {"version":3,"file":"shival99-z-ui-components-z-popover.mjs","sources":["../../../../libs/core-ui/components/z-popover/z-popover.variants.ts","../../../../libs/core-ui/components/z-popover/z-popover.content.component.ts","../../../../libs/core-ui/components/z-popover/z-popover.define.ts","../../../../libs/core-ui/components/z-popover/z-popover.positions.ts","../../../../libs/core-ui/components/z-popover/z-popover.component.ts","../../../../libs/core-ui/components/z-popover/directives/z-popover.directive.ts","../../../../libs/core-ui/components/z-popover/shival99-z-ui-components-z-popover.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\n\nexport const zPopoverVariants = cva(\n [\n 'z-popover relative block w-full rounded-sm',\n 'bg-popover text-popover-foreground border border-border',\n 'z-animate-in z-fade-in z-duration-200',\n 'will-change-[transform,opacity]',\n ],\n {\n variants: {\n zPosition: {\n top: 'z-slide-in-from-top-4 [--z-popover-shadow:0_-8px_16px_-6px_rgb(0_0_0_/_24%)] shadow-[var(--z-popover-shadow)]',\n 'top-left':\n 'z-slide-in-from-top-4 [--z-popover-shadow:0_-8px_16px_-6px_rgb(0_0_0_/_24%)] shadow-[var(--z-popover-shadow)]',\n 'top-right':\n 'z-slide-in-from-top-4 [--z-popover-shadow:0_-8px_16px_-6px_rgb(0_0_0_/_24%)] shadow-[var(--z-popover-shadow)]',\n bottom:\n 'z-slide-in-from-bottom-4 [--z-popover-shadow:0_8px_16px_-6px_rgb(0_0_0_/_24%)] shadow-[var(--z-popover-shadow)]',\n 'bottom-left':\n 'z-slide-in-from-bottom-4 [--z-popover-shadow:0_8px_16px_-6px_rgb(0_0_0_/_24%)] shadow-[var(--z-popover-shadow)]',\n 'bottom-right':\n 'z-slide-in-from-bottom-4 [--z-popover-shadow:0_8px_16px_-6px_rgb(0_0_0_/_24%)] shadow-[var(--z-popover-shadow)]',\n left: 'z-slide-in-from-left-4 shadow-md',\n 'left-top': 'z-slide-in-from-left-4 shadow-md',\n 'left-bottom': 'z-slide-in-from-left-4 shadow-md',\n right: 'z-slide-in-from-right-4 shadow-md',\n 'right-top': 'z-slide-in-from-right-4 shadow-md',\n 'right-bottom': 'z-slide-in-from-right-4 shadow-md',\n },\n },\n defaultVariants: {\n zPosition: 'bottom',\n },\n }\n);\n\nexport const zPopoverExitVariants = cva('z-animate-out z-fade-out z-duration-200', {\n variants: {\n zPosition: {\n top: 'z-slide-out-to-bottom-4',\n 'top-left': 'z-slide-out-to-bottom-4',\n 'top-right': 'z-slide-out-to-bottom-4',\n bottom: 'z-slide-out-to-top-4',\n 'bottom-left': 'z-slide-out-to-top-4',\n 'bottom-right': 'z-slide-out-to-top-4',\n left: 'z-slide-out-to-right-4',\n 'left-top': 'z-slide-out-to-right-4',\n 'left-bottom': 'z-slide-out-to-right-4',\n right: 'z-slide-out-to-left-4',\n 'right-top': 'z-slide-out-to-left-4',\n 'right-bottom': 'z-slide-out-to-left-4',\n },\n },\n defaultVariants: {\n zPosition: 'bottom',\n },\n});\n\nexport const zPopoverContentVariants = cva('relative z-10 [border-radius:inherit] bg-popover', {\n variants: {},\n defaultVariants: {},\n});\n\nexport const zPopoverArrowVariants = cva('absolute z-0 size-5 rotate-45 rounded-xs bg-popover', {\n variants: {\n position: {\n top: '-bottom-1 left-1/2 -translate-x-1/2 border-r border-b border-border',\n 'top-left': '-bottom-1 left-3 border-r border-b border-border',\n 'top-right': '-bottom-1 right-3 border-r border-b border-border',\n bottom: '-top-1 left-1/2 -translate-x-1/2 border-l border-t border-border',\n 'bottom-left': '-top-1 left-3 border-l border-t border-border',\n 'bottom-right': '-top-1 right-3 border-l border-t border-border',\n left: 'top-1/2 -translate-y-1/2 -right-1 border-t border-r border-border',\n 'left-top': 'top-2 -right-1 border-t border-r border-border',\n 'left-bottom': 'bottom-2 -right-1 border-t border-r border-border',\n right: 'top-1/2 -translate-y-1/2 -left-1 border-b border-l border-border',\n 'right-top': 'top-2 -left-1 border-b border-l border-border',\n 'right-bottom': 'bottom-2 -left-1 border-b border-l border-border',\n },\n },\n defaultVariants: {\n position: 'bottom',\n },\n});\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, signal } from '@angular/core';\nimport { zMergeClasses } from '@shival99/z-ui/utils';\nimport type { ZPopoverContent, ZPopoverContext, ZPopoverPosition } from './z-popover.types';\nimport {\n zPopoverArrowVariants,\n zPopoverContentVariants,\n zPopoverExitVariants,\n zPopoverVariants,\n} from './z-popover.variants';\n\n@Component({\n selector: 'z-popover-content',\n imports: [NgTemplateOutlet],\n standalone: true,\n template: `\n <!-- Arrow layer - rotated square, partial border -->\n @if (showArrow()) {\n <div [class]=\"arrowClasses()\" [style]=\"arrowStyle()\"></div>\n }\n\n <!-- Content -->\n <div [class]=\"contentClasses()\">\n <ng-container [ngTemplateOutlet]=\"content()\" [ngTemplateOutletContext]=\"templateContext()\" />\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-state]': 'state()',\n '[attr.data-position]': 'position()',\n },\n})\nexport class ZPopoverContentComponent {\n public readonly content = signal<ZPopoverContent | null>(null);\n public readonly position = signal<ZPopoverPosition>('bottom');\n public readonly popoverClass = signal('');\n public readonly state = signal<'open' | 'closed'>('open');\n public readonly closeHandler = signal<() => void>(() => {});\n public readonly showArrow = signal(false);\n public readonly arrowOffset = signal<number>(0);\n\n public readonly context = computed<ZPopoverContext>(() => ({\n close: this.closeHandler(),\n }));\n\n protected readonly templateContext = computed(() => {\n const context = this.context();\n return { $implicit: context, close: context.close };\n });\n\n protected readonly classes = computed(() => {\n const baseClasses = zPopoverVariants({\n zPosition: this.position(),\n });\n\n const exitClasses = this.state() === 'closed' ? zPopoverExitVariants({ zPosition: this.position() }) : '';\n\n return zMergeClasses(baseClasses, exitClasses, this.popoverClass());\n });\n\n protected readonly contentClasses = computed(() => zMergeClasses(zPopoverContentVariants({})));\n\n protected readonly arrowClasses = computed(() =>\n zMergeClasses(\n zPopoverArrowVariants({\n position: this.position(),\n })\n )\n );\n\n protected readonly arrowStyle = computed(() => {\n const pos = this.position();\n const offset = this.arrowOffset();\n\n const isCornerPosition = pos.includes('-');\n if (isCornerPosition) {\n return {};\n }\n\n if (offset === 0) {\n return {};\n }\n\n if (pos === 'top' || pos === 'bottom') {\n return {\n left: `calc(50% + ${offset}px)`,\n };\n }\n\n if (pos === 'left' || pos === 'right') {\n return {\n top: `calc(50% + ${offset}px)`,\n };\n }\n\n return {};\n });\n\n public setProps(config: {\n content: ZPopoverContent;\n position: ZPopoverPosition;\n customClass?: string;\n onClose?: () => void;\n showArrow?: boolean;\n }): void {\n this.content.set(config.content);\n this.position.set(config.position);\n if (config.customClass) {\n this.popoverClass.set(config.customClass);\n }\n if (config.onClose) {\n this.closeHandler.set(config.onClose);\n }\n if (config.showArrow !== undefined) {\n this.showArrow.set(config.showArrow);\n }\n }\n}\n","export const Z_POPOVER_ANIMATION_DURATION = 200;\n","import { Z_OVERLAY_FALLBACK_ORDER } from '@shival99/z-ui/components/z-overlay';\nimport { zIsMobileViewport } from '@shival99/z-ui/utils';\nimport type { ZPopoverPosition } from './z-popover.types';\n\nexport function isMobilePopoverViewport(): boolean {\n return zIsMobileViewport();\n}\n\n/** Danh sách fallback (không gồm vị trí chính — Floating UI tự thử vị trí chính trước). */\nexport function getPopoverFallbackPlacements(position: ZPopoverPosition): ZPopoverPosition[] {\n return Z_OVERLAY_FALLBACK_ORDER[position];\n}\n\nexport function isPopoverTriggerVisibleInViewport(config: {\n triggerRect: DOMRectReadOnly;\n viewportWidth: number;\n viewportHeight: number;\n}): boolean {\n const { triggerRect, viewportWidth, viewportHeight } = config;\n\n if (triggerRect.width <= 0 || triggerRect.height <= 0) {\n return false;\n }\n\n return (\n triggerRect.bottom > 0 &&\n triggerRect.top < viewportHeight &&\n triggerRect.right > 0 &&\n triggerRect.left < viewportWidth\n );\n}\n","import { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n type ComponentRef,\n DestroyRef,\n ElementRef,\n inject,\n input,\n NgZone,\n type OnDestroy,\n type OnInit,\n output,\n PLATFORM_ID,\n Renderer2,\n signal,\n viewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n computeZOverlayPlacement,\n startZOverlayAutoUpdate,\n ZOverlayService,\n type ZOverlayRef,\n} from '@shival99/z-ui/components/z-overlay';\nimport { ZOverlayContainerService, ZOverlayZIndexService } from '@shival99/z-ui/services';\nimport { zTransform } from '@shival99/z-ui/utils';\nimport { filter, map, of, Subject, Subscription, switchMap, timer } from 'rxjs';\nimport { ZPopoverContentComponent } from './z-popover.content.component';\nimport { Z_POPOVER_ANIMATION_DURATION } from './z-popover.define';\nimport {\n getPopoverFallbackPlacements,\n isPopoverTriggerVisibleInViewport,\n isMobilePopoverViewport,\n} from './z-popover.positions';\nimport {\n type ZPopoverContent,\n type ZPopoverControl,\n type ZPopoverDelayConfig,\n type ZPopoverPosition,\n type ZPopoverTrigger,\n} from './z-popover.types';\n\n@Component({\n selector: 'z-popover',\n standalone: true,\n template: `\n <span #trigger class=\"z-popover-trigger inline-block\">\n <ng-content />\n </span>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'inline-block',\n },\n})\nexport class ZPopoverComponent implements OnInit, OnDestroy {\n private static readonly _openPopovers = new Set<ZPopoverComponent>();\n\n private readonly _overlayService = inject(ZOverlayService);\n private readonly _renderer = inject(Renderer2);\n private readonly _destroyRef = inject(DestroyRef);\n private readonly _platformId = inject(PLATFORM_ID);\n private readonly _document = inject(DOCUMENT);\n private readonly _overlayContainerService = inject(ZOverlayContainerService);\n private readonly _zIndexService = inject(ZOverlayZIndexService);\n private readonly _zone = inject(NgZone);\n\n private readonly _trigger = viewChild.required<ElementRef<HTMLElement>>('trigger');\n\n public readonly zShow = output<void>();\n public readonly zHide = output<void>();\n public readonly zControl = output<ZPopoverControl>();\n public readonly zOutsideClick = output<MouseEvent>();\n\n public readonly zContent = input<ZPopoverContent | null>(null);\n public readonly zPosition = input<ZPopoverPosition>('bottom');\n public readonly zTrigger = input<ZPopoverTrigger>('click');\n public readonly zClass = input('');\n public readonly zShowDelay = input(0);\n public readonly zHideDelay = input(0);\n public readonly zDisabled = input(false, { transform: zTransform });\n public readonly zOffset = input(8);\n public readonly zManualClose = input(false, { transform: zTransform });\n public readonly zOutsideClickClose = input(false, { transform: zTransform });\n public readonly zScrollClose = input(false, { transform: zTransform });\n public readonly zSticky = input(false, { transform: zTransform });\n public readonly zShowArrow = input(false, { transform: zTransform });\n public readonly zKeyboardSafe = input(false, { transform: zTransform });\n\n private _overlayRef: ZOverlayRef | null = null;\n private _componentRef: ComponentRef<ZPopoverContentComponent> | null = null;\n private _delaySubject = new Subject<ZPopoverDelayConfig>();\n private _listenerCleanups: (() => void)[] = [];\n private _autoUpdateCleanup: (() => void) | null = null;\n private _outsideClickSubscription: Subscription | null = null;\n private _scrollSubscription: Subscription | null = null;\n private _viewportResizeSubscription: Subscription | null = null;\n private _resizeObserver: ResizeObserver | null = null;\n private _hideTimeout: ReturnType<typeof setTimeout> | null = null;\n private _viewportResizeTimeouts: ReturnType<typeof setTimeout>[] = [];\n private _positionFrame: number | null = null;\n private _viewportSettlingUntil = 0;\n private readonly _isVisible = signal(false);\n\n ngOnInit(): void {\n if (!isPlatformBrowser(this._platformId)) {\n return;\n }\n\n this._setupDelayMechanism();\n this._setupTriggers();\n this._setupOverlayContainerListener();\n this._emitControl();\n }\n\n private _setupOverlayContainerListener(): void {\n this._overlayContainerService.closeAll$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n if (this._isVisible()) {\n this.hideImmediate();\n }\n });\n }\n\n private _emitControl(): void {\n this.zControl.emit({\n close: () => this.hide(),\n closeImmediate: () => this.hideImmediate(),\n show: () => this.show(),\n toggle: () => this.toggle(),\n isVisible: () => this._isVisible(),\n updatePosition: () => this.updatePosition(),\n });\n }\n\n ngOnDestroy(): void {\n this._clearHideTimeout();\n this._delaySubject.complete();\n this._cleanupListeners();\n this._disposeOverlay();\n }\n\n public show(): void {\n if (this.zDisabled() || !this.zContent()) {\n return;\n }\n\n if (this._isVisible()) {\n this._delay(true, 0);\n return;\n }\n\n this._delay(true, this.zShowDelay());\n }\n\n public hide(): void {\n this._delay(false, this.zHideDelay());\n }\n\n public hideImmediate(): void {\n if (this._destroyRef.destroyed) {\n return;\n }\n\n this._clearHideTimeout();\n this._disposeOverlay();\n this._isVisible.set(false);\n this.zHide.emit();\n }\n\n public toggle(): void {\n if (this._isVisible()) {\n this.hide();\n return;\n }\n\n this.show();\n }\n\n public isOpen(): boolean {\n return this._isVisible();\n }\n\n public updatePosition(): void {\n if (!this._isVisible()) {\n return;\n }\n\n this._schedulePositionUpdate();\n }\n\n private _createOverlay(): ZOverlayRef {\n const overlayRef = this._overlayService.createAnchored();\n this._zIndexService.applyToOverlay(overlayRef);\n\n return overlayRef;\n }\n\n private _disposeOverlay(): void {\n this._outsideClickSubscription?.unsubscribe();\n this._outsideClickSubscription = null;\n this._autoUpdateCleanup?.();\n this._autoUpdateCleanup = null;\n this._scrollSubscription?.unsubscribe();\n this._scrollSubscription = null;\n this._viewportResizeSubscription?.unsubscribe();\n this._viewportResizeSubscription = null;\n this._clearViewportResizeTimeout();\n this._viewportSettlingUntil = 0;\n this._resizeObserver?.disconnect();\n this._resizeObserver = null;\n this._cancelScheduledPositionUpdate();\n this._overlayRef?.dispose();\n this._overlayRef = null;\n this._componentRef = null;\n ZPopoverComponent._openPopovers.delete(this);\n }\n\n private _setupDelayMechanism(): void {\n this._delaySubject\n .pipe(\n switchMap(config => (config.delay <= 0 ? of(config) : timer(config.delay).pipe(map(() => config)))),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(config => {\n if (config.show) {\n void this._showPopover();\n return;\n }\n\n this._hidePopover();\n });\n }\n\n private _setupTriggers(): void {\n this._cleanupListeners();\n const trigger = this.zTrigger();\n const triggerEl = this._trigger().nativeElement;\n\n if (trigger === 'hover') {\n this._listenerCleanups.push(\n this._renderer.listen(triggerEl, 'mouseenter', () => this.show()),\n this._renderer.listen(triggerEl, 'focus', () => this.show())\n );\n\n if (!this.zManualClose()) {\n this._listenerCleanups.push(\n this._renderer.listen(triggerEl, 'mouseleave', () => this.hide()),\n this._renderer.listen(triggerEl, 'blur', () => this.hide())\n );\n }\n return;\n }\n\n if (trigger === 'click') {\n this._listenerCleanups.push(\n this._renderer.listen(triggerEl, 'click', (event: Event) => {\n event.stopPropagation();\n this.toggle();\n })\n );\n }\n }\n\n private _setupOutsideClick(): void {\n const overlayRef = this._overlayRef;\n if (!overlayRef) {\n return;\n }\n\n this._outsideClickSubscription?.unsubscribe();\n this._outsideClickSubscription = overlayRef\n .outsidePointerEvents()\n .pipe(\n filter(() => !this.zManualClose() || this.zOutsideClickClose()),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(event => {\n const triggerEl = this._trigger().nativeElement;\n const target = event.target as Node;\n if (\n !triggerEl.contains(target) &&\n !overlayRef.overlayElement.contains(target) &&\n !this._isNestedPopoverTarget(target, overlayRef)\n ) {\n this.zOutsideClick.emit(event);\n this.hide();\n }\n });\n }\n\n private _delay(show: boolean, delay: number): void {\n this._delaySubject.next({ show, delay });\n }\n\n private _setupScrollClose(): void {\n if (this.zManualClose()) {\n return;\n }\n\n this._scrollSubscription?.unsubscribe();\n\n let ticking = false;\n const onScroll = (event: Event) => {\n if (!this._isVisible() || !this._overlayRef) {\n return;\n }\n\n const { target } = event;\n const { overlayElement } = this._overlayRef;\n if (overlayElement && overlayElement.contains(target as Node)) {\n return;\n }\n\n if (this.zScrollClose()) {\n this._zone.run(() => this.hideImmediate());\n return;\n }\n\n if (ticking) {\n return;\n }\n\n if (this._shouldDeferForMobileKeyboard()) {\n this._markViewportSettling();\n this._scheduleSettledPositionUpdate();\n return;\n }\n\n ticking = true;\n this._zone.runOutsideAngular(() => {\n requestAnimationFrame(() => {\n if (this.zSticky() && !this._isTriggerVisibleInViewport()) {\n ticking = false;\n return;\n }\n\n void this._updatePositionNow();\n ticking = false;\n });\n });\n };\n\n this._zone.runOutsideAngular(() => this._document.addEventListener('scroll', onScroll, true));\n\n this._scrollSubscription = {\n unsubscribe: () => {\n this._document.removeEventListener('scroll', onScroll, true);\n },\n } as Subscription;\n }\n\n private _setupViewportResizeReposition(): void {\n this._viewportResizeSubscription?.unsubscribe();\n this._clearViewportResizeTimeout();\n\n const onResize = () => {\n if (!this._overlayRef?.hasAttached()) {\n return;\n }\n\n if (this._shouldDeferForMobileKeyboard()) {\n this._markViewportSettling();\n this._scheduleSettledPositionUpdate();\n return;\n }\n\n this._schedulePositionUpdate();\n };\n\n this._zone.runOutsideAngular(() => {\n window.addEventListener('resize', onResize);\n window.visualViewport?.addEventListener('resize', onResize);\n });\n this._viewportResizeSubscription = {\n unsubscribe: () => {\n window.removeEventListener('resize', onResize);\n window.visualViewport?.removeEventListener('resize', onResize);\n this._clearViewportResizeTimeout();\n },\n } as Subscription;\n }\n\n private async _showPopover(): Promise<void> {\n const content = this.zContent();\n if (!content) {\n return;\n }\n\n if (this._componentRef) {\n if (!this._hideTimeout) {\n return;\n }\n\n this._clearHideTimeout();\n this._componentRef.instance.state.set('open');\n this._isVisible.set(true);\n return;\n }\n\n if (!this._overlayRef) {\n this._overlayRef = this._createOverlay();\n this._setupOutsideClick();\n }\n\n this._setupScrollClose();\n\n const overlayRef = this._overlayRef;\n if (!overlayRef) {\n return;\n }\n\n const componentRef = (this._componentRef = overlayRef.attach(ZPopoverContentComponent));\n\n componentRef.instance.setProps({\n content,\n position: this.zPosition(),\n customClass: this.zClass(),\n onClose: () => this.hide(),\n showArrow: this.zShowArrow(),\n });\n\n await this._zone.runOutsideAngular(() => this._applyPosition(overlayRef, componentRef));\n\n if (\n this._overlayRef !== overlayRef ||\n this._componentRef !== componentRef ||\n this._hideTimeout ||\n this._destroyRef.destroyed\n ) {\n return; // đã bị dispose (hide/destroy) trong lúc chờ computePosition\n }\n\n this._autoUpdateCleanup = this._zone.runOutsideAngular(() =>\n startZOverlayAutoUpdate(\n this._trigger().nativeElement,\n overlayRef.overlayElement,\n () => void this._applyPosition(overlayRef, componentRef),\n { ancestorScroll: false }\n )\n );\n\n if (this.zTrigger() === 'hover') {\n this._setupPopoverHover();\n }\n\n this._setupResizeObserver();\n this._setupViewportResizeReposition();\n\n this._isVisible.set(true);\n ZPopoverComponent._openPopovers.add(this);\n this.zShow.emit();\n }\n\n private _isNestedPopoverTarget(target: Node, overlayRef: ZOverlayRef): boolean {\n for (const popover of ZPopoverComponent._openPopovers) {\n if (popover === this) {\n continue;\n }\n\n const nestedOverlayElement = popover._overlayRef?.overlayElement;\n if (!nestedOverlayElement?.contains(target)) {\n continue;\n }\n\n if (overlayRef.overlayElement.contains(popover._trigger().nativeElement)) {\n return true;\n }\n }\n\n return false;\n }\n\n private _setupResizeObserver(): void {\n this._resizeObserver?.disconnect();\n\n this._zone.runOutsideAngular(() => {\n this._resizeObserver = new ResizeObserver(() => {\n if (this._overlayRef && this._isVisible()) {\n this._schedulePositionUpdate();\n }\n });\n\n this._resizeObserver.observe(this._trigger().nativeElement);\n\n const wrapper = this._trigger().nativeElement.parentElement?.parentElement;\n if (wrapper && wrapper !== document.body) {\n this._resizeObserver.observe(wrapper);\n }\n });\n }\n\n private _schedulePositionUpdate(force = false): void {\n if (this._positionFrame !== null) {\n return;\n }\n\n this._positionFrame = this._zone.runOutsideAngular(() =>\n requestAnimationFrame(() => {\n this._positionFrame = null;\n void this._updatePositionNow(force);\n })\n );\n }\n\n private _scheduleSettledPositionUpdate(): void {\n this._clearViewportResizeTimeout();\n for (const delay of [80, 180, 320]) {\n const timeout = setTimeout(() => {\n this._viewportResizeTimeouts = this._viewportResizeTimeouts.filter(item => item !== timeout);\n this._schedulePositionUpdate(true);\n }, delay);\n this._viewportResizeTimeouts.push(timeout);\n }\n }\n\n private _cancelScheduledPositionUpdate(): void {\n if (this._positionFrame === null) {\n return;\n }\n\n cancelAnimationFrame(this._positionFrame);\n this._positionFrame = null;\n }\n\n private async _updatePositionNow(force = false): Promise<void> {\n if (!this._overlayRef?.hasAttached()) {\n return;\n }\n\n if (isMobilePopoverViewport() && this.zSticky() && !this._isTriggerVisibleInViewport()) {\n return;\n }\n\n if (!force && this._shouldSkipMobileKeyboardUpdate()) {\n return;\n }\n\n await this._applyPosition();\n }\n\n private async _applyPosition(\n expectedOverlayRef: ZOverlayRef | null = this._overlayRef,\n expectedComponentRef: ComponentRef<ZPopoverContentComponent> | null = this._componentRef\n ): Promise<void> {\n if (\n !expectedOverlayRef ||\n !expectedComponentRef ||\n this._overlayRef !== expectedOverlayRef ||\n this._componentRef !== expectedComponentRef\n ) {\n return;\n }\n\n const anchorElement = this._trigger().nativeElement;\n const floatingElement = expectedOverlayRef.overlayElement;\n const position = this.zPosition();\n\n const result = await computeZOverlayPlacement({\n reference: anchorElement,\n floating: floatingElement,\n placement: position,\n fallbackPlacements: getPopoverFallbackPlacements(position),\n offset: this.zOffset(),\n push: true,\n viewportPadding: 10,\n });\n\n if (this._overlayRef !== expectedOverlayRef || this._componentRef !== expectedComponentRef) {\n return;\n }\n\n floatingElement.style.left = `${result.x}px`;\n floatingElement.style.top = `${result.y}px`;\n if (expectedComponentRef.instance.position() !== result.placement) {\n this._zone.run(() => {\n if (this._overlayRef === expectedOverlayRef && this._componentRef === expectedComponentRef) {\n expectedComponentRef.instance.position.set(result.placement);\n }\n });\n }\n }\n\n private _markViewportSettling(): void {\n this._viewportSettlingUntil = Date.now() + 260;\n }\n\n private _shouldDeferForMobileKeyboard(): boolean {\n return this._isMobileOverlayTextInputFocused();\n }\n\n private _shouldSkipMobileKeyboardUpdate(): boolean {\n if (!this._isMobileOverlayTextInputFocused()) {\n return false;\n }\n\n return Date.now() < this._viewportSettlingUntil;\n }\n\n private _isMobileOverlayTextInputFocused(): boolean {\n if (!this.zKeyboardSafe() || !isMobilePopoverViewport()) {\n return false;\n }\n\n const { activeElement } = this._document;\n if (!(activeElement instanceof HTMLElement)) {\n return false;\n }\n\n const overlayElement = this._overlayRef?.overlayElement;\n if (!overlayElement?.contains(activeElement)) {\n return false;\n }\n\n if (activeElement.isContentEditable) {\n return true;\n }\n\n return activeElement.matches('input, textarea, select');\n }\n\n private _clearViewportResizeTimeout(): void {\n for (const timeout of this._viewportResizeTimeouts) {\n clearTimeout(timeout);\n }\n this._viewportResizeTimeouts = [];\n }\n\n private _isTriggerVisibleInViewport(): boolean {\n const { visualViewport } = window;\n\n return isPopoverTriggerVisibleInViewport({\n triggerRect: this._trigger().nativeElement.getBoundingClientRect(),\n viewportWidth: visualViewport?.width ?? window.innerWidth,\n viewportHeight: visualViewport?.height ?? window.innerHeight,\n });\n }\n\n private _setupPopoverHover(): void {\n const overlayElement = this._overlayRef?.overlayElement;\n if (!overlayElement) {\n return;\n }\n\n this._listenerCleanups.push(\n this._renderer.listen(overlayElement, 'mouseenter', () => {\n this._delay(true, 0);\n })\n );\n\n if (!this.zManualClose()) {\n this._listenerCleanups.push(\n this._renderer.listen(overlayElement, 'mouseleave', () => {\n this._delay(false, this.zHideDelay());\n })\n );\n }\n }\n\n private _hidePopover(): void {\n const componentRef = this._componentRef;\n if (!componentRef || this._hideTimeout) {\n return;\n }\n\n this._isVisible.set(false);\n componentRef.instance.state.set('closed');\n this._hideTimeout = setTimeout(() => {\n this._hideTimeout = null;\n\n if (this._destroyRef.destroyed) {\n return;\n }\n\n if (this._componentRef !== componentRef) {\n return;\n }\n\n this._disposeOverlay();\n this.zHide.emit();\n }, Z_POPOVER_ANIMATION_DURATION);\n }\n\n private _clearHideTimeout(): void {\n if (!this._hideTimeout) {\n return;\n }\n\n clearTimeout(this._hideTimeout);\n this._hideTimeout = null;\n }\n\n private _cleanupListeners(): void {\n this._listenerCleanups.forEach(cleanup => cleanup());\n this._listenerCleanups = [];\n }\n}\n","import { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n type ComponentRef,\n computed,\n DestroyRef,\n Directive,\n ElementRef,\n inject,\n input,\n type OnDestroy,\n type OnInit,\n output,\n PLATFORM_ID,\n Renderer2,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n computeZOverlayPlacement,\n startZOverlayAutoUpdate,\n ZOverlayService,\n type ZOverlayRef,\n} from '@shival99/z-ui/components/z-overlay';\nimport { ZOverlayContainerService, ZOverlayZIndexService } from '@shival99/z-ui/services';\nimport { zTransform } from '@shival99/z-ui/utils';\nimport { filter, map, of, Subject, Subscription, switchMap, timer } from 'rxjs';\nimport { ZPopoverContentComponent } from '../z-popover.content.component';\nimport { Z_POPOVER_ANIMATION_DURATION } from '../z-popover.define';\nimport {\n getPopoverFallbackPlacements,\n isPopoverTriggerVisibleInViewport,\n isMobilePopoverViewport,\n} from '../z-popover.positions';\nimport {\n type ZPopoverContent,\n type ZPopoverControl,\n type ZPopoverDelayConfig,\n type ZPopoverOverlaySize,\n type ZPopoverPosition,\n type ZPopoverTrigger,\n type ZPopoverWidth,\n} from '../z-popover.types';\n\n@Directive({\n selector: '[z-popover]',\n standalone: true,\n exportAs: 'zPopover',\n})\nexport class ZPopoverDirective implements OnInit, OnDestroy {\n private static readonly _openPopovers = new Set<ZPopoverDirective>();\n\n public readonly zContent = input<ZPopoverContent | null>(null, {\n alias: 'zPopoverContent',\n });\n\n public readonly zPosition = input<ZPopoverPosition>('bottom');\n public readonly zTrigger = input<ZPopoverTrigger>('click');\n public readonly zPopoverTrigger = input<ZPopoverTrigger>();\n public readonly zClass = input('');\n public readonly zShowDelay = input(0);\n public readonly zHideDelay = input(0);\n public readonly zDisabled = input(false, { transform: zTransform });\n public readonly zOffset = input(8);\n public readonly zPopoverWidth = input<ZPopoverWidth>('auto');\n public readonly zTriggerRef = input<HTMLElement | ElementRef<HTMLElement> | null>(null);\n public readonly zManualClose = input(false, { transform: zTransform });\n public readonly zOutsideClickClose = input(false, { transform: zTransform });\n public readonly zScrollClose = input(false, { transform: zTransform });\n public readonly zSticky = input(false, { transform: zTransform });\n public readonly zShowArrow = input(false, { transform: zTransform });\n public readonly zKeyboardSafe = input(false, { transform: zTransform });\n\n public readonly zShow = output<void>();\n public readonly zHide = output<void>();\n public readonly zHideStart = output<void>();\n public readonly zControl = output<ZPopoverControl>();\n public readonly zPositionChange = output<ZPopoverPosition>();\n public readonly zOutsideClick = output<MouseEvent>();\n\n private readonly _trigger = computed(() => this.zPopoverTrigger() ?? this.zTrigger());\n private readonly _overlayService = inject(ZOverlayService);\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\n private readonly _renderer = inject(Renderer2);\n private readonly _destroyRef = inject(DestroyRef);\n private readonly _platformId = inject(PLATFORM_ID);\n private readonly _document = inject(DOCUMENT);\n private readonly _overlayContainerService = inject(ZOverlayContainerService);\n private readonly _zIndexService = inject(ZOverlayZIndexService);\n\n private _overlayRef: ZOverlayRef | null = null;\n private _componentRef: ComponentRef<ZPopoverContentComponent> | null = null;\n private _delaySubject = new Subject<ZPopoverDelayConfig>();\n private _listenerCleanups: (() => void)[] = [];\n private _autoUpdateCleanup: (() => void) | null = null;\n private _outsideClickSubscription: Subscription | null = null;\n private _scrollSubscription: Subscription | null = null;\n private _viewportResizeSubscription: Subscription | null = null;\n private _resizeObserver: ResizeObserver | null = null;\n private _mutationObserver: MutationObserver | null = null;\n private _hideTimeout: ReturnType<typeof setTimeout> | null = null;\n private _viewportResizeTimeouts: ReturnType<typeof setTimeout>[] = [];\n private _positionFrame: number | null = null;\n private _viewportSettlingUntil = 0;\n private readonly _isDestroyed = signal(false);\n private readonly _isVisible = signal(false);\n\n ngOnInit(): void {\n if (!isPlatformBrowser(this._platformId)) {\n return;\n }\n\n this._setupDelayMechanism();\n this._setupTriggers();\n this._setupOverlayContainerListener();\n this._emitControl();\n }\n\n private _setupOverlayContainerListener(): void {\n this._overlayContainerService.closeAll$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n if (this._isVisible()) {\n this.hideImmediate();\n }\n });\n }\n\n private _emitControl(): void {\n this.zControl.emit({\n close: () => this.hide(),\n closeImmediate: () => this.hideImmediate(),\n show: () => this.show(),\n toggle: () => this.toggle(),\n isVisible: () => this._isVisible(),\n updatePosition: () => this.updatePosition(),\n });\n }\n\n ngOnDestroy(): void {\n this._isDestroyed.set(true);\n this._clearHideTimeout();\n this._renderer.removeClass(this._elementRef.nativeElement, 'z-popover-open');\n this._renderer.removeAttribute(this._elementRef.nativeElement, 'aria-expanded');\n this._delaySubject.complete();\n this._cleanupListeners();\n this._disposeOverlay();\n }\n\n public show(): void {\n if (this.zDisabled() || !this.zContent()) {\n return;\n }\n\n if (this._isVisible()) {\n this._delay(true, 0);\n return;\n }\n\n this._delay(true, this.zShowDelay());\n }\n\n public hide(): void {\n this._delay(false, this.zHideDelay());\n }\n\n public hideImmediate(): void {\n if (this._destroyRef.destroyed) {\n return;\n }\n\n this._clearHideTimeout();\n if (this._isVisible()) {\n this._isVisible.set(false);\n this._renderer.removeClass(this._elementRef.nativeElement, 'z-popover-open');\n this._renderer.removeAttribute(this._elementRef.nativeElement, 'aria-expanded');\n this.zHideStart.emit();\n }\n this._disposeOverlay();\n this.zHide.emit();\n }\n\n public toggle(): void {\n if (this._isVisible()) {\n this.hide();\n return;\n }\n\n this.show();\n }\n\n public isOpen(): boolean {\n return this._isVisible();\n }\n\n public updatePosition(): void {\n if (!this._isVisible()) {\n return;\n }\n\n this._schedulePositionUpdate();\n }\n\n private _createOverlay(): ZOverlayRef {\n const overlayRef = this._overlayService.createAnchored();\n this._zIndexService.applyToOverlay(overlayRef);\n\n const widthConfig = this._getWidthConfig();\n if (widthConfig.width) {\n overlayRef.updateSize(widthConfig);\n }\n\n return overlayRef;\n }\n\n private _getWidthConfig(): ZPopoverOverlaySize {\n const width = this.zPopoverWidth();\n\n if (width === 'auto') {\n return {};\n }\n\n if (width === 'trigger') {\n const triggerWidth = this._getTriggerElement().getBoundingClientRect().width;\n return { width: `${triggerWidth}px`, minWidth: `${triggerWidth}px` };\n }\n\n return { width, minWidth: width };\n }\n\n private _getTriggerElement(): HTMLElement {\n const triggerRef = this.zTriggerRef();\n\n if (triggerRef instanceof ElementRef) {\n return triggerRef.nativeElement;\n }\n\n return triggerRef ?? this._elementRef.nativeElement;\n }\n\n private _disposeOverlay(): void {\n this._outsideClickSubscription?.unsubscribe();\n this._outsideClickSubscription = null;\n this._autoUpdateCleanup?.();\n this._autoUpdateCleanup = null;\n this._scrollSubscription?.unsubscribe();\n this._scrollSubscription = null;\n this._viewportResizeSubscription?.unsubscribe();\n this._viewportResizeSubscription = null;\n this._clearViewportResizeTimeout();\n this._viewportSettlingUntil = 0;\n this._resizeObserver?.disconnect();\n this._resizeObserver = null;\n this._mutationObserver?.disconnect();\n this._mutationObserver = null;\n this._cancelScheduledPositionUpdate();\n this._overlayRef?.dispose();\n this._overlayRef = null;\n this._componentRef = null;\n ZPopoverDirective._openPopovers.delete(this);\n }\n\n private _setupDelayMechanism(): void {\n this._delaySubject\n .pipe(\n switchMap(config => (config.delay <= 0 ? of(config) : timer(config.delay).pipe(map(() => config)))),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(config => {\n if (config.show) {\n void this._showPopover();\n return;\n }\n\n this._hidePopover();\n });\n }\n\n private _setupTriggers(): void {\n this._cleanupListeners();\n const trigger = this._trigger();\n const triggerElement = this._getTriggerElement();\n\n // Manual trigger: no automatic listeners, control via zControl only\n if (trigger === 'manual') {\n return;\n }\n\n if (trigger === 'hover') {\n this._listenerCleanups.push(\n this._renderer.listen(triggerElement, 'mouseenter', () => this.show()),\n this._renderer.listen(triggerElement, 'focus', () => this.show())\n );\n\n if (!this.zManualClose()) {\n this._listenerCleanups.push(\n this._renderer.listen(triggerElement, 'mouseleave', () => this.hide()),\n this._renderer.listen(triggerElement, 'blur', () => this.hide())\n );\n }\n return;\n }\n\n if (trigger === 'click') {\n this._listenerCleanups.push(\n this._renderer.listen(triggerElement, 'click', (event: Event) => {\n event.stopPropagation();\n this.toggle();\n }),\n this._renderer.listen(triggerElement, 'touchend', (event: TouchEvent) => {\n if (event.cancelable) {\n event.preventDefault();\n }\n\n event.stopPropagation();\n this.toggle();\n })\n );\n }\n }\n\n private _setupOutsideClick(): void {\n const overlayRef = this._overlayRef;\n if (!overlayRef) {\n return;\n }\n\n this._outsideClickSubscription?.unsubscribe();\n this._outsideClickSubscription = overlayRef\n .outsidePointerEvents()\n .pipe(\n filter(() => !this.zManualClose() || this.zOutsideClickClose()),\n filter(() => this._trigger() === 'click' || this._trigger() === 'manual'),\n filter(event => {\n const target = event.target as Node;\n // Check if click is inside trigger element\n if (this._getTriggerElement().contains(target)) {\n return false;\n }\n // Check if click is inside overlay element (dropdown content)\n if (overlayRef.overlayElement.contains(target)) {\n return false;\n }\n if (this._isNestedPopoverTarget(target, overlayRef)) {\n return false;\n }\n return true;\n }),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(event => {\n this.zOutsideClick.emit(event);\n this.hide();\n });\n }\n\n private _setupScrollClose(): void {\n this._scrollSubscription?.unsubscribe();\n\n let ticking = false;\n const onScroll = (event: Event) => {\n if (!this._isVisible() || !this._overlayRef) {\n return;\n }\n\n const { target } = event;\n const { overlayElement } = this._overlayRef;\n if (overlayElement && overlayElement.contains(target as Node)) {\n return;\n }\n\n if (this.zScrollClose() && !this.zManualClose()) {\n this.hideImmediate();\n return;\n }\n\n if (ticking) {\n return;\n }\n\n if (this._shouldDeferForMobileKeyboard()) {\n this._markViewportSettling();\n this._scheduleSettledPositionUpdate();\n return;\n }\n\n ticking = true;\n requestAnimationFrame(() => {\n if (this.zSticky() && !this._isTriggerVisibleInViewport()) {\n ticking = false;\n return;\n }\n\n void this._updatePositionNow();\n ticking = false;\n });\n };\n\n this._document.addEventListener('scroll', onScroll, true);\n this._scrollSubscription = {\n unsubscribe: () => {\n this._document.removeEventListener('scroll', onScroll, true);\n },\n } as Subscription;\n }\n\n private _setupViewportResizeReposition(): void {\n this._viewportResizeSubscription?.unsubscribe();\n this._clearViewportResizeTimeout();\n\n const onResize = () => {\n if (!this._overlayRef?.hasAttached()) {\n return;\n }\n\n if (!this._isTriggerAvailable()) {\n this.hideImmediate();\n return;\n }\n\n if (this._shouldDeferForMobileKeyboard()) {\n this._markViewportSettling();\n this._scheduleSettledPositionUpdate();\n return;\n }\n\n this._schedulePositionUpdate();\n };\n\n window.addEventListener('resize', onResize);\n window.visualViewport?.addEventListener('resize', onResize);\n this._viewportResizeSubscription = {\n unsubscribe: () => {\n window.removeEventListener('resize', onResize);\n window.visualViewport?.removeEventListener('resize', onResize);\n this._clearViewportResizeTimeout();\n },\n } as Subscription;\n }\n\n private _delay(show: boolean, delay: number): void {\n this._delaySubject.next({ show, delay });\n }\n\n private async _showPopover(): Promise<void> {\n const content = this.zContent();\n if (!content) {\n return;\n }\n\n if (this._componentRef) {\n const wasVisible = this._isVisible();\n this._clearHideTimeout();\n this._componentRef.instance.state.set('open');\n\n if (!wasVisible) {\n this._isVisible.set(true);\n this._renderer.addClass(this._elementRef.nativeElement, 'z-popover-open');\n this._renderer.setAttribute(this._elementRef.nativeElement, 'aria-expanded', 'true');\n this.zShow.emit();\n }\n\n return;\n }\n\n let overlayRef = this._overlayRef;\n if (!overlayRef) {\n overlayRef = this._createOverlay();\n this._overlayRef = overlayRef;\n this._setupOutsideClick();\n }\n\n this._setupScrollClose();\n\n const componentRef = (this._componentRef = overlayRef.attach(ZPopoverContentComponent));\n\n componentRef.instance.setProps({\n content,\n position: this.zPosition(),\n customClass: this.zClass(),\n onClose: () => this.hide(),\n showArrow: this.zShowArrow(),\n });\n\n await this._applyPosition();\n\n if (\n this._overlayRef !== overlayRef ||\n this._componentRef !== componentRef ||\n this._hideTimeout ||\n this._isDestroyed()\n ) {\n return; // đã bị dispose (hide/destroy) trong lúc chờ computePosition\n }\n\n this._autoUpdateCleanup = startZOverlayAutoUpdate(\n this._getTriggerElement(),\n this._overlayRef.overlayElement,\n () => void this._applyPosition(),\n { ancestorScroll: false }\n );\n\n if (this._trigger() === 'hover') {\n this._setupPopoverHover();\n }\n\n this._setupResizeObserver();\n this._setupViewportResizeReposition();\n this._isVisible.set(true);\n ZPopoverDirective._openPopovers.add(this);\n this._renderer.addClass(this._elementRef.nativeElement, 'z-popover-open');\n this._renderer.setAttribute(this._elementRef.nativeElement, 'aria-expanded', 'true');\n this.zShow.emit();\n }\n\n private _isNestedPopoverTarget(target: Node, overlayRef: ZOverlayRef): boolean {\n for (const popover of ZPopoverDirective._openPopovers) {\n if (popover === this) {\n continue;\n }\n\n const nestedOverlayElement = popover._overlayRef?.overlayElement;\n if (!nestedOverlayElement?.contains(target)) {\n continue;\n }\n\n if (overlayRef.overlayElement.contains(popover._getTriggerElement())) {\n return true;\n }\n }\n\n return false;\n }\n\n private _setupResizeObserver(): void {\n this._resizeObserver?.disconnect();\n this._mutationObserver?.disconnect();\n\n this._resizeObserver = new ResizeObserver(() => {\n if (this._overlayRef && this._isVisible()) {\n if (!this._isTriggerAvailable()) {\n this.hideImmediate();\n return;\n }\n\n const widthConfig = this._getWidthConfig();\n if (widthConfig.width) {\n this._overlayRef.updateSize(widthConfig);\n }\n\n this._schedulePositionUpdate();\n }\n });\n\n const originElement = this._getTriggerElement();\n this._resizeObserver.observe(originElement);\n\n if (originElement !== this._elementRef.nativeElement) {\n this._resizeObserver.observe(this._elementRef.nativeElement);\n }\n\n const wrapper = this._elementRef.nativeElement.parentElement?.parentElement;\n if (wrapper && wrapper !== document.body) {\n this._resizeObserver.observe(wrapper);\n }\n\n this._mutationObserver = new MutationObserver(() => {\n if (!this._isVisible()) {\n return;\n }\n\n if (!this._isTriggerAvailable()) {\n this.hideImmediate();\n return;\n }\n\n this._schedulePositionUpdate(true);\n });\n\n let observedElement: HTMLElement | null = originElement;\n while (observedElement) {\n this._mutationObserver.observe(observedElement, {\n attributes: true,\n attributeFilter: ['aria-hidden', 'class', 'hidden', 'style'],\n childList: true,\n });\n observedElement = observedElement.parentElement;\n }\n }\n\n private _schedulePositionUpdate(force = false): void {\n if (this._positionFrame !== null) {\n return;\n }\n\n this._positionFrame = requestAnimationFrame(() => {\n this._positionFrame = null;\n void this._updatePositionNow(force);\n });\n }\n\n private _scheduleSettledPositionUpdate(): void {\n this._clearViewportResizeTimeout();\n for (const delay of [80, 180, 320]) {\n const timeout = setTimeout(() => {\n this._viewportResizeTimeouts = this._viewportResizeTimeouts.filter(item => item !== timeout);\n this._schedulePositionUpdate(true);\n }, delay);\n this._viewportResizeTimeouts.push(timeout);\n }\n }\n\n private _cancelScheduledPositionUpdate(): void {\n if (this._positionFrame === null) {\n return;\n }\n\n cancelAnimationFrame(this._positionFrame);\n this._positionFrame = null;\n }\n\n private async _updatePositionNow(force = false): Promise<void> {\n if (!this._overlayRef?.hasAttached()) {\n return;\n }\n\n if (!this._isTriggerAvailable()) {\n this.hideImmediate();\n return;\n }\n\n if (isMobilePopoverViewport() && this.zSticky() && !this._isTriggerVisibleInViewport()) {\n return;\n }\n\n if (!force && this._shouldSkipMobileKeyboardUpdate()) {\n return;\n }\n\n const widthConfig = this._getWidthConfig();\n if (widthConfig.width) {\n this._overlayRef.updateSize(widthConfig);\n }\n\n await this._applyPosition();\n }\n\n private async _applyPosition(): Promise<void> {\n if (!this._overlayRef || !this._componentRef) {\n return;\n }\n\n const anchorElement = this._getTriggerElement();\n const floatingElement = this._overlayRef.overlayElement;\n const position = this.zPosition();\n\n const result = await computeZOverlayPlacement({\n reference: anchorElement,\n floating: floatingElement,\n placement: position,\n fallbackPlacements: getPopoverFallbackPlacements(position),\n offset: this.zOffset(),\n push: true,\n viewportPadding: 10,\n });\n\n if (!this._componentRef) {\n return;\n }\n\n floatingElement.style.left = `${result.x}px`;\n floatingElement.style.top = `${result.y}px`;\n this._componentRef.instance.position.set(result.placement);\n this.zPositionChange.emit(result.placement);\n }\n\n private _markViewportSettling(): void {\n this._viewportSettlingUntil = Date.now() + 260;\n }\n\n private _shouldDeferForMobileKeyboard(): boolean {\n return this._isMobileOverlayTextInputFocused();\n }\n\n private _shouldSkipMobileKeyboardUpdate(): boolean {\n if (!this._isMobileOverlayTextInputFocused()) {\n return false;\n }\n\n return Date.now() < this._viewportSettlingUntil;\n }\n\n private _isMobileOverlayTextInputFocused(): boolean {\n if (!this.zKeyboardSafe() || !isMobilePopoverViewport()) {\n return false;\n }\n\n const { activeElement } = this._document;\n if (!(activeElement instanceof HTMLElement)) {\n return false;\n }\n\n const overlayElement = this._overlayRef?.overlayElement;\n if (!overlayElement?.contains(activeElement)) {\n return false;\n }\n\n if (activeElement.isContentEditable) {\n return true;\n }\n\n return activeElement.matches('input, textarea, select');\n }\n\n private _clearViewportResizeTimeout(): void {\n for (const timeout of this._viewportResizeTimeouts) {\n clearTimeout(timeout);\n }\n this._viewportResizeTimeouts = [];\n }\n\n private _isTriggerVisibleInViewport(): boolean {\n const { visualViewport } = window;\n\n return isPopoverTriggerVisibleInViewport({\n triggerRect: this._getTriggerElement().getBoundingClientRect(),\n viewportWidth: visualViewport?.width ?? window.innerWidth,\n viewportHeight: visualViewport?.height ?? window.innerHeight,\n });\n }\n\n private _isTriggerAvailable(): boolean {\n let element: HTMLElement | null = this._getTriggerElement();\n if (!element.isConnected) {\n return false;\n }\n\n while (element) {\n const style = window.getComputedStyle(element);\n if (style.display === 'none' || style.visibility === 'hidden') {\n return false;\n }\n element = element.parentElement;\n }\n\n return true;\n }\n\n private _setupPopoverHover(): void {\n const overlayElement = this._overlayRef?.overlayElement;\n if (!overlayElement) {\n return;\n }\n\n this._listenerCleanups.push(\n this._renderer.listen(overlayElement, 'mouseenter', () => {\n this._delay(true, 0);\n })\n );\n\n if (!this.zManualClose()) {\n this._listenerCleanups.push(\n this._renderer.listen(overlayElement, 'mouseleave', () => {\n this._delay(false, this.zHideDelay());\n })\n );\n }\n }\n\n private _hidePopover(): void {\n if (!this._componentRef) {\n return;\n }\n\n if (this._hideTimeout) {\n return;\n }\n\n this._isVisible.set(false);\n this._renderer.removeClass(this._elementRef.nativeElement, 'z-popover-open');\n this._renderer.removeAttribute(this._elementRef.nativeElement, 'aria-expanded');\n this.zHideStart.emit();\n this._componentRef.instance.state.set('closed');\n this._hideTimeout = setTimeout(() => {\n this._hideTimeout = null;\n\n if (this._isDestroyed()) {\n return;\n }\n this._disposeOverlay();\n this.zHide.emit();\n }, Z_POPOVER_ANIMATION_DURATION);\n }\n\n private _clearHideTimeout(): void {\n if (this._hideTimeout) {\n clearTimeout(this._hideTimeout);\n this._hideTimeout = null;\n }\n }\n\n private _cleanupListeners(): void {\n this._listenerCleanups.forEach(cleanup => cleanup());\n this._listenerCleanups = [];\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shival99-z-ui-components-z-popover.mjs","sources":["../../../../libs/core-ui/components/z-popover/z-popover.variants.ts","../../../../libs/core-ui/components/z-popover/z-popover.content.component.ts","../../../../libs/core-ui/components/z-popover/z-popover.define.ts","../../../../libs/core-ui/components/z-popover/z-popover.positions.ts","../../../../libs/core-ui/components/z-popover/z-popover.component.ts","../../../../libs/core-ui/components/z-popover/directives/z-popover.directive.ts","../../../../libs/core-ui/components/z-popover/shival99-z-ui-components-z-popover.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\n\nexport const zPopoverVariants = cva(\n [\n 'z-popover relative block w-full rounded-sm',\n 'bg-popover text-popover-foreground border border-border',\n 'z-animate-in z-fade-in z-duration-200',\n 'will-change-[transform,opacity]',\n ],\n {\n variants: {\n zPosition: {\n top: 'z-slide-in-from-top-4 [--z-popover-shadow:0_-8px_16px_-6px_rgb(0_0_0_/_24%)] shadow-[var(--z-popover-shadow)]',\n 'top-left':\n 'z-slide-in-from-top-4 [--z-popover-shadow:0_-8px_16px_-6px_rgb(0_0_0_/_24%)] shadow-[var(--z-popover-shadow)]',\n 'top-right':\n 'z-slide-in-from-top-4 [--z-popover-shadow:0_-8px_16px_-6px_rgb(0_0_0_/_24%)] shadow-[var(--z-popover-shadow)]',\n bottom:\n 'z-slide-in-from-bottom-4 [--z-popover-shadow:0_8px_16px_-6px_rgb(0_0_0_/_24%)] shadow-[var(--z-popover-shadow)]',\n 'bottom-left':\n 'z-slide-in-from-bottom-4 [--z-popover-shadow:0_8px_16px_-6px_rgb(0_0_0_/_24%)] shadow-[var(--z-popover-shadow)]',\n 'bottom-right':\n 'z-slide-in-from-bottom-4 [--z-popover-shadow:0_8px_16px_-6px_rgb(0_0_0_/_24%)] shadow-[var(--z-popover-shadow)]',\n left: 'z-slide-in-from-left-4 shadow-md',\n 'left-top': 'z-slide-in-from-left-4 shadow-md',\n 'left-bottom': 'z-slide-in-from-left-4 shadow-md',\n right: 'z-slide-in-from-right-4 shadow-md',\n 'right-top': 'z-slide-in-from-right-4 shadow-md',\n 'right-bottom': 'z-slide-in-from-right-4 shadow-md',\n },\n },\n defaultVariants: {\n zPosition: 'bottom',\n },\n }\n);\n\nexport const zPopoverExitVariants = cva('z-animate-out z-fade-out z-duration-200', {\n variants: {\n zPosition: {\n top: 'z-slide-out-to-bottom-4',\n 'top-left': 'z-slide-out-to-bottom-4',\n 'top-right': 'z-slide-out-to-bottom-4',\n bottom: 'z-slide-out-to-top-4',\n 'bottom-left': 'z-slide-out-to-top-4',\n 'bottom-right': 'z-slide-out-to-top-4',\n left: 'z-slide-out-to-right-4',\n 'left-top': 'z-slide-out-to-right-4',\n 'left-bottom': 'z-slide-out-to-right-4',\n right: 'z-slide-out-to-left-4',\n 'right-top': 'z-slide-out-to-left-4',\n 'right-bottom': 'z-slide-out-to-left-4',\n },\n },\n defaultVariants: {\n zPosition: 'bottom',\n },\n});\n\nexport const zPopoverContentVariants = cva('relative z-10 [border-radius:inherit] bg-popover', {\n variants: {},\n defaultVariants: {},\n});\n\nexport const zPopoverArrowVariants = cva('absolute z-0 size-5 rotate-45 rounded-xs bg-popover', {\n variants: {\n position: {\n top: '-bottom-1 left-1/2 -translate-x-1/2 border-r border-b border-border',\n 'top-left': '-bottom-1 left-3 border-r border-b border-border',\n 'top-right': '-bottom-1 right-3 border-r border-b border-border',\n bottom: '-top-1 left-1/2 -translate-x-1/2 border-l border-t border-border',\n 'bottom-left': '-top-1 left-3 border-l border-t border-border',\n 'bottom-right': '-top-1 right-3 border-l border-t border-border',\n left: 'top-1/2 -translate-y-1/2 -right-1 border-t border-r border-border',\n 'left-top': 'top-2 -right-1 border-t border-r border-border',\n 'left-bottom': 'bottom-2 -right-1 border-t border-r border-border',\n right: 'top-1/2 -translate-y-1/2 -left-1 border-b border-l border-border',\n 'right-top': 'top-2 -left-1 border-b border-l border-border',\n 'right-bottom': 'bottom-2 -left-1 border-b border-l border-border',\n },\n },\n defaultVariants: {\n position: 'bottom',\n },\n});\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, signal } from '@angular/core';\nimport { zMergeClasses } from '@shival99/z-ui/utils';\nimport type { ZPopoverContent, ZPopoverContext, ZPopoverPosition } from './z-popover.types';\nimport {\n zPopoverArrowVariants,\n zPopoverContentVariants,\n zPopoverExitVariants,\n zPopoverVariants,\n} from './z-popover.variants';\n\n@Component({\n selector: 'z-popover-content',\n imports: [NgTemplateOutlet],\n standalone: true,\n template: `\n <!-- Arrow layer - rotated square, partial border -->\n @if (showArrow()) {\n <div [class]=\"arrowClasses()\" [style]=\"arrowStyle()\"></div>\n }\n\n <!-- Content -->\n <div [class]=\"contentClasses()\">\n <ng-container [ngTemplateOutlet]=\"content()\" [ngTemplateOutletContext]=\"templateContext()\" />\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-state]': 'state()',\n '[attr.data-position]': 'position()',\n },\n})\nexport class ZPopoverContentComponent {\n public readonly content = signal<ZPopoverContent | null>(null);\n public readonly position = signal<ZPopoverPosition>('bottom');\n public readonly popoverClass = signal('');\n public readonly state = signal<'open' | 'closed'>('open');\n public readonly closeHandler = signal<() => void>(() => {});\n public readonly showArrow = signal(false);\n public readonly arrowOffset = signal<number>(0);\n\n public readonly context = computed<ZPopoverContext>(() => ({\n close: this.closeHandler(),\n }));\n\n protected readonly templateContext = computed(() => {\n const context = this.context();\n return { $implicit: context, close: context.close };\n });\n\n protected readonly classes = computed(() => {\n const baseClasses = zPopoverVariants({\n zPosition: this.position(),\n });\n\n const exitClasses = this.state() === 'closed' ? zPopoverExitVariants({ zPosition: this.position() }) : '';\n\n return zMergeClasses(baseClasses, exitClasses, this.popoverClass());\n });\n\n protected readonly contentClasses = computed(() => zMergeClasses(zPopoverContentVariants({})));\n\n protected readonly arrowClasses = computed(() =>\n zMergeClasses(\n zPopoverArrowVariants({\n position: this.position(),\n })\n )\n );\n\n protected readonly arrowStyle = computed(() => {\n const pos = this.position();\n const offset = this.arrowOffset();\n\n const isCornerPosition = pos.includes('-');\n if (isCornerPosition) {\n return {};\n }\n\n if (offset === 0) {\n return {};\n }\n\n if (pos === 'top' || pos === 'bottom') {\n return {\n left: `calc(50% + ${offset}px)`,\n };\n }\n\n if (pos === 'left' || pos === 'right') {\n return {\n top: `calc(50% + ${offset}px)`,\n };\n }\n\n return {};\n });\n\n public setProps(config: {\n content: ZPopoverContent;\n position: ZPopoverPosition;\n customClass?: string;\n onClose?: () => void;\n showArrow?: boolean;\n }): void {\n this.content.set(config.content);\n this.position.set(config.position);\n if (config.customClass) {\n this.popoverClass.set(config.customClass);\n }\n if (config.onClose) {\n this.closeHandler.set(config.onClose);\n }\n if (config.showArrow !== undefined) {\n this.showArrow.set(config.showArrow);\n }\n }\n}\n","export const Z_POPOVER_ANIMATION_DURATION = 200;\n","import { Z_OVERLAY_FALLBACK_ORDER } from '@shival99/z-ui/components/z-overlay';\nimport { zIsMobileViewport } from '@shival99/z-ui/utils';\nimport type { ZPopoverPosition } from './z-popover.types';\n\nexport function isMobilePopoverViewport(): boolean {\n return zIsMobileViewport();\n}\n\n/** Danh sách fallback (không gồm vị trí chính — Floating UI tự thử vị trí chính trước). */\nexport function getPopoverFallbackPlacements(position: ZPopoverPosition): ZPopoverPosition[] {\n return Z_OVERLAY_FALLBACK_ORDER[position];\n}\n\nexport function isPopoverTriggerVisibleInViewport(config: {\n triggerRect: DOMRectReadOnly;\n viewportWidth: number;\n viewportHeight: number;\n}): boolean {\n const { triggerRect, viewportWidth, viewportHeight } = config;\n\n if (triggerRect.width <= 0 || triggerRect.height <= 0) {\n return false;\n }\n\n return (\n triggerRect.bottom > 0 &&\n triggerRect.top < viewportHeight &&\n triggerRect.right > 0 &&\n triggerRect.left < viewportWidth\n );\n}\n","import { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n type ComponentRef,\n DestroyRef,\n ElementRef,\n inject,\n input,\n NgZone,\n type OnDestroy,\n type OnInit,\n output,\n PLATFORM_ID,\n Renderer2,\n signal,\n viewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n computeZOverlayPlacement,\n startZOverlayAutoUpdate,\n ZOverlayService,\n type ZOverlayRef,\n} from '@shival99/z-ui/components/z-overlay';\nimport { ZOverlayContainerService, ZOverlayZIndexService } from '@shival99/z-ui/services';\nimport { zTransform } from '@shival99/z-ui/utils';\nimport { filter, map, of, Subject, Subscription, switchMap, timer } from 'rxjs';\nimport { ZPopoverContentComponent } from './z-popover.content.component';\nimport { Z_POPOVER_ANIMATION_DURATION } from './z-popover.define';\nimport {\n getPopoverFallbackPlacements,\n isPopoverTriggerVisibleInViewport,\n isMobilePopoverViewport,\n} from './z-popover.positions';\nimport {\n type ZPopoverContent,\n type ZPopoverControl,\n type ZPopoverDelayConfig,\n type ZPopoverPosition,\n type ZPopoverTrigger,\n} from './z-popover.types';\n\n@Component({\n selector: 'z-popover',\n standalone: true,\n template: `\n <span #trigger class=\"z-popover-trigger inline-block\">\n <ng-content />\n </span>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'inline-block',\n },\n})\nexport class ZPopoverComponent implements OnInit, OnDestroy {\n private static readonly _openPopovers = new Set<ZPopoverComponent>();\n\n private readonly _overlayService = inject(ZOverlayService);\n private readonly _renderer = inject(Renderer2);\n private readonly _destroyRef = inject(DestroyRef);\n private readonly _platformId = inject(PLATFORM_ID);\n private readonly _document = inject(DOCUMENT);\n private readonly _overlayContainerService = inject(ZOverlayContainerService);\n private readonly _zIndexService = inject(ZOverlayZIndexService);\n private readonly _zone = inject(NgZone);\n\n private readonly _trigger = viewChild.required<ElementRef<HTMLElement>>('trigger');\n\n public readonly zShow = output<void>();\n public readonly zHide = output<void>();\n public readonly zControl = output<ZPopoverControl>();\n public readonly zOutsideClick = output<MouseEvent>();\n\n public readonly zContent = input<ZPopoverContent | null>(null);\n public readonly zPosition = input<ZPopoverPosition>('bottom');\n public readonly zTrigger = input<ZPopoverTrigger>('click');\n public readonly zClass = input('');\n public readonly zShowDelay = input(0);\n public readonly zHideDelay = input(0);\n public readonly zDisabled = input(false, { transform: zTransform });\n public readonly zOffset = input(8);\n public readonly zManualClose = input(false, { transform: zTransform });\n public readonly zOutsideClickClose = input(false, { transform: zTransform });\n public readonly zScrollClose = input(false, { transform: zTransform });\n public readonly zSticky = input(false, { transform: zTransform });\n public readonly zShowArrow = input(false, { transform: zTransform });\n public readonly zKeyboardSafe = input(false, { transform: zTransform });\n\n private _overlayRef: ZOverlayRef | null = null;\n private _componentRef: ComponentRef<ZPopoverContentComponent> | null = null;\n private _delaySubject = new Subject<ZPopoverDelayConfig>();\n private _listenerCleanups: (() => void)[] = [];\n private _autoUpdateCleanup: (() => void) | null = null;\n private _outsideClickSubscription: Subscription | null = null;\n private _scrollSubscription: Subscription | null = null;\n private _viewportResizeSubscription: Subscription | null = null;\n private _resizeObserver: ResizeObserver | null = null;\n private _hideTimeout: ReturnType<typeof setTimeout> | null = null;\n private _viewportResizeTimeouts: ReturnType<typeof setTimeout>[] = [];\n private _positionFrame: number | null = null;\n private _viewportSettlingUntil = 0;\n private readonly _isVisible = signal(false);\n\n ngOnInit(): void {\n if (!isPlatformBrowser(this._platformId)) {\n return;\n }\n\n this._setupDelayMechanism();\n this._setupTriggers();\n this._setupOverlayContainerListener();\n this._emitControl();\n }\n\n private _setupOverlayContainerListener(): void {\n this._overlayContainerService.closeAll$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n if (this._isVisible()) {\n this.hideImmediate();\n }\n });\n }\n\n private _emitControl(): void {\n this.zControl.emit({\n close: () => this.hide(),\n closeImmediate: () => this.hideImmediate(),\n show: () => this.show(),\n toggle: () => this.toggle(),\n isVisible: () => this._isVisible(),\n updatePosition: () => this.updatePosition(),\n });\n }\n\n ngOnDestroy(): void {\n this._clearHideTimeout();\n this._delaySubject.complete();\n this._cleanupListeners();\n this._disposeOverlay();\n }\n\n public show(): void {\n if (this.zDisabled() || !this.zContent()) {\n return;\n }\n\n if (this._isVisible()) {\n this._delay(true, 0);\n return;\n }\n\n this._delay(true, this.zShowDelay());\n }\n\n public hide(): void {\n this._delay(false, this.zHideDelay());\n }\n\n public hideImmediate(): void {\n if (this._destroyRef.destroyed) {\n return;\n }\n\n this._clearHideTimeout();\n this._disposeOverlay();\n this._isVisible.set(false);\n this.zHide.emit();\n }\n\n public toggle(): void {\n if (this._isVisible()) {\n this.hide();\n return;\n }\n\n this.show();\n }\n\n public isOpen(): boolean {\n return this._isVisible();\n }\n\n public updatePosition(): void {\n if (!this._isVisible()) {\n return;\n }\n\n this._schedulePositionUpdate();\n }\n\n private _createOverlay(): ZOverlayRef {\n const overlayRef = this._overlayService.createAnchored();\n this._zIndexService.applyToOverlay(overlayRef);\n\n return overlayRef;\n }\n\n private _disposeOverlay(): void {\n this._outsideClickSubscription?.unsubscribe();\n this._outsideClickSubscription = null;\n this._autoUpdateCleanup?.();\n this._autoUpdateCleanup = null;\n this._scrollSubscription?.unsubscribe();\n this._scrollSubscription = null;\n this._viewportResizeSubscription?.unsubscribe();\n this._viewportResizeSubscription = null;\n this._clearViewportResizeTimeout();\n this._viewportSettlingUntil = 0;\n this._resizeObserver?.disconnect();\n this._resizeObserver = null;\n this._cancelScheduledPositionUpdate();\n this._overlayRef?.dispose();\n this._overlayRef = null;\n this._componentRef = null;\n ZPopoverComponent._openPopovers.delete(this);\n }\n\n private _setupDelayMechanism(): void {\n this._delaySubject\n .pipe(\n switchMap(config => (config.delay <= 0 ? of(config) : timer(config.delay).pipe(map(() => config)))),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(config => {\n if (config.show) {\n void this._showPopover();\n return;\n }\n\n this._hidePopover();\n });\n }\n\n private _setupTriggers(): void {\n this._cleanupListeners();\n const trigger = this.zTrigger();\n const triggerEl = this._trigger().nativeElement;\n\n if (trigger === 'hover') {\n this._listenerCleanups.push(\n this._renderer.listen(triggerEl, 'mouseenter', () => this.show()),\n this._renderer.listen(triggerEl, 'focus', () => this.show())\n );\n\n if (!this.zManualClose()) {\n this._listenerCleanups.push(\n this._renderer.listen(triggerEl, 'mouseleave', () => this.hide()),\n this._renderer.listen(triggerEl, 'blur', () => this.hide())\n );\n }\n return;\n }\n\n if (trigger === 'click') {\n this._listenerCleanups.push(\n this._renderer.listen(triggerEl, 'click', (event: Event) => {\n event.stopPropagation();\n this.toggle();\n })\n );\n }\n }\n\n private _setupOutsideClick(): void {\n const overlayRef = this._overlayRef;\n if (!overlayRef) {\n return;\n }\n\n this._outsideClickSubscription?.unsubscribe();\n this._outsideClickSubscription = overlayRef\n .outsidePointerEvents()\n .pipe(\n filter(() => !this.zManualClose() || this.zOutsideClickClose()),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(event => {\n const triggerEl = this._trigger().nativeElement;\n const target = event.target as Node;\n if (\n !triggerEl.contains(target) &&\n !overlayRef.overlayElement.contains(target) &&\n !this._isNestedPopoverTarget(target, overlayRef)\n ) {\n this.zOutsideClick.emit(event);\n this.hide();\n }\n });\n }\n\n private _delay(show: boolean, delay: number): void {\n this._delaySubject.next({ show, delay });\n }\n\n private _setupScrollClose(): void {\n if (this.zManualClose()) {\n return;\n }\n\n this._scrollSubscription?.unsubscribe();\n\n let ticking = false;\n const onScroll = (event: Event) => {\n if (!this._isVisible() || !this._overlayRef) {\n return;\n }\n\n const { target } = event;\n const { overlayElement } = this._overlayRef;\n if (overlayElement && overlayElement.contains(target as Node)) {\n return;\n }\n\n if (this.zScrollClose()) {\n this._zone.run(() => this.hideImmediate());\n return;\n }\n\n if (ticking) {\n return;\n }\n\n if (this._shouldDeferForMobileKeyboard()) {\n this._markViewportSettling();\n this._scheduleSettledPositionUpdate();\n return;\n }\n\n ticking = true;\n this._zone.runOutsideAngular(() => {\n requestAnimationFrame(() => {\n if (this.zSticky() && !this._isTriggerVisibleInViewport()) {\n ticking = false;\n return;\n }\n\n void this._updatePositionNow();\n ticking = false;\n });\n });\n };\n\n this._zone.runOutsideAngular(() => this._document.addEventListener('scroll', onScroll, true));\n\n this._scrollSubscription = {\n unsubscribe: () => {\n this._document.removeEventListener('scroll', onScroll, true);\n },\n } as Subscription;\n }\n\n private _setupViewportResizeReposition(): void {\n this._viewportResizeSubscription?.unsubscribe();\n this._clearViewportResizeTimeout();\n\n const onResize = () => {\n if (!this._overlayRef?.hasAttached()) {\n return;\n }\n\n if (this._shouldDeferForMobileKeyboard()) {\n this._markViewportSettling();\n this._scheduleSettledPositionUpdate();\n return;\n }\n\n this._schedulePositionUpdate();\n };\n\n this._zone.runOutsideAngular(() => {\n window.addEventListener('resize', onResize);\n window.visualViewport?.addEventListener('resize', onResize);\n });\n this._viewportResizeSubscription = {\n unsubscribe: () => {\n window.removeEventListener('resize', onResize);\n window.visualViewport?.removeEventListener('resize', onResize);\n this._clearViewportResizeTimeout();\n },\n } as Subscription;\n }\n\n private async _showPopover(): Promise<void> {\n const content = this.zContent();\n if (!content) {\n return;\n }\n\n if (this._componentRef) {\n if (!this._hideTimeout) {\n return;\n }\n\n this._clearHideTimeout();\n this._componentRef.instance.state.set('open');\n this._isVisible.set(true);\n return;\n }\n\n if (!this._overlayRef) {\n this._overlayRef = this._createOverlay();\n this._setupOutsideClick();\n }\n\n this._setupScrollClose();\n\n const overlayRef = this._overlayRef;\n if (!overlayRef) {\n return;\n }\n\n const componentRef = (this._componentRef = overlayRef.attach(ZPopoverContentComponent));\n\n componentRef.instance.setProps({\n content,\n position: this.zPosition(),\n customClass: this.zClass(),\n onClose: () => this.hide(),\n showArrow: this.zShowArrow(),\n });\n\n await this._zone.runOutsideAngular(() => this._applyPosition(overlayRef, componentRef));\n\n if (\n this._overlayRef !== overlayRef ||\n this._componentRef !== componentRef ||\n this._hideTimeout ||\n this._destroyRef.destroyed\n ) {\n return; // Disposed while waiting for computePosition.\n }\n\n this._autoUpdateCleanup = this._zone.runOutsideAngular(() =>\n startZOverlayAutoUpdate(\n this._trigger().nativeElement,\n overlayRef.overlayElement,\n () => void this._applyPosition(overlayRef, componentRef),\n { ancestorScroll: false }\n )\n );\n\n if (this.zTrigger() === 'hover') {\n this._setupPopoverHover();\n }\n\n this._setupResizeObserver();\n this._setupViewportResizeReposition();\n\n this._isVisible.set(true);\n ZPopoverComponent._openPopovers.add(this);\n this.zShow.emit();\n }\n\n private _isNestedPopoverTarget(target: Node, overlayRef: ZOverlayRef): boolean {\n for (const popover of ZPopoverComponent._openPopovers) {\n if (popover === this) {\n continue;\n }\n\n const nestedOverlayElement = popover._overlayRef?.overlayElement;\n if (!nestedOverlayElement?.contains(target)) {\n continue;\n }\n\n if (overlayRef.overlayElement.contains(popover._trigger().nativeElement)) {\n return true;\n }\n }\n\n return false;\n }\n\n private _setupResizeObserver(): void {\n this._resizeObserver?.disconnect();\n\n this._zone.runOutsideAngular(() => {\n this._resizeObserver = new ResizeObserver(() => {\n if (this._overlayRef && this._isVisible()) {\n this._schedulePositionUpdate();\n }\n });\n\n this._resizeObserver.observe(this._trigger().nativeElement);\n\n const wrapper = this._trigger().nativeElement.parentElement?.parentElement;\n if (wrapper && wrapper !== document.body) {\n this._resizeObserver.observe(wrapper);\n }\n });\n }\n\n private _schedulePositionUpdate(force = false): void {\n if (this._positionFrame !== null) {\n return;\n }\n\n this._positionFrame = this._zone.runOutsideAngular(() =>\n requestAnimationFrame(() => {\n this._positionFrame = null;\n void this._updatePositionNow(force);\n })\n );\n }\n\n private _scheduleSettledPositionUpdate(): void {\n this._clearViewportResizeTimeout();\n for (const delay of [80, 180, 320]) {\n const timeout = setTimeout(() => {\n this._viewportResizeTimeouts = this._viewportResizeTimeouts.filter(item => item !== timeout);\n this._schedulePositionUpdate(true);\n }, delay);\n this._viewportResizeTimeouts.push(timeout);\n }\n }\n\n private _cancelScheduledPositionUpdate(): void {\n if (this._positionFrame === null) {\n return;\n }\n\n cancelAnimationFrame(this._positionFrame);\n this._positionFrame = null;\n }\n\n private async _updatePositionNow(force = false): Promise<void> {\n if (!this._overlayRef?.hasAttached()) {\n return;\n }\n\n if (isMobilePopoverViewport() && this.zSticky() && !this._isTriggerVisibleInViewport()) {\n return;\n }\n\n if (!force && this._shouldSkipMobileKeyboardUpdate()) {\n return;\n }\n\n await this._applyPosition();\n }\n\n private async _applyPosition(\n expectedOverlayRef: ZOverlayRef | null = this._overlayRef,\n expectedComponentRef: ComponentRef<ZPopoverContentComponent> | null = this._componentRef\n ): Promise<void> {\n if (\n !expectedOverlayRef ||\n !expectedComponentRef ||\n this._overlayRef !== expectedOverlayRef ||\n this._componentRef !== expectedComponentRef\n ) {\n return;\n }\n\n const anchorElement = this._trigger().nativeElement;\n const floatingElement = expectedOverlayRef.overlayElement;\n const position = this.zPosition();\n\n const result = await computeZOverlayPlacement({\n reference: anchorElement,\n floating: floatingElement,\n placement: position,\n fallbackPlacements: getPopoverFallbackPlacements(position),\n offset: this.zOffset(),\n push: true,\n viewportPadding: 10,\n });\n\n if (this._overlayRef !== expectedOverlayRef || this._componentRef !== expectedComponentRef) {\n return;\n }\n\n floatingElement.style.left = `${result.x}px`;\n floatingElement.style.top = `${result.y}px`;\n if (expectedComponentRef.instance.position() !== result.placement) {\n this._zone.run(() => {\n if (this._overlayRef === expectedOverlayRef && this._componentRef === expectedComponentRef) {\n expectedComponentRef.instance.position.set(result.placement);\n }\n });\n }\n }\n\n private _markViewportSettling(): void {\n this._viewportSettlingUntil = Date.now() + 260;\n }\n\n private _shouldDeferForMobileKeyboard(): boolean {\n return this._isMobileOverlayTextInputFocused();\n }\n\n private _shouldSkipMobileKeyboardUpdate(): boolean {\n if (!this._isMobileOverlayTextInputFocused()) {\n return false;\n }\n\n return Date.now() < this._viewportSettlingUntil;\n }\n\n private _isMobileOverlayTextInputFocused(): boolean {\n if (!this.zKeyboardSafe() || !isMobilePopoverViewport()) {\n return false;\n }\n\n const { activeElement } = this._document;\n if (!(activeElement instanceof HTMLElement)) {\n return false;\n }\n\n const overlayElement = this._overlayRef?.overlayElement;\n if (!overlayElement?.contains(activeElement)) {\n return false;\n }\n\n if (activeElement.isContentEditable) {\n return true;\n }\n\n return activeElement.matches('input, textarea, select');\n }\n\n private _clearViewportResizeTimeout(): void {\n for (const timeout of this._viewportResizeTimeouts) {\n clearTimeout(timeout);\n }\n this._viewportResizeTimeouts = [];\n }\n\n private _isTriggerVisibleInViewport(): boolean {\n const { visualViewport } = window;\n\n return isPopoverTriggerVisibleInViewport({\n triggerRect: this._trigger().nativeElement.getBoundingClientRect(),\n viewportWidth: visualViewport?.width ?? window.innerWidth,\n viewportHeight: visualViewport?.height ?? window.innerHeight,\n });\n }\n\n private _setupPopoverHover(): void {\n const overlayElement = this._overlayRef?.overlayElement;\n if (!overlayElement) {\n return;\n }\n\n this._listenerCleanups.push(\n this._renderer.listen(overlayElement, 'mouseenter', () => {\n this._delay(true, 0);\n })\n );\n\n if (!this.zManualClose()) {\n this._listenerCleanups.push(\n this._renderer.listen(overlayElement, 'mouseleave', () => {\n this._delay(false, this.zHideDelay());\n })\n );\n }\n }\n\n private _hidePopover(): void {\n const componentRef = this._componentRef;\n if (!componentRef || this._hideTimeout) {\n return;\n }\n\n this._isVisible.set(false);\n componentRef.instance.state.set('closed');\n this._hideTimeout = setTimeout(() => {\n this._hideTimeout = null;\n\n if (this._destroyRef.destroyed) {\n return;\n }\n\n if (this._componentRef !== componentRef) {\n return;\n }\n\n this._disposeOverlay();\n this.zHide.emit();\n }, Z_POPOVER_ANIMATION_DURATION);\n }\n\n private _clearHideTimeout(): void {\n if (!this._hideTimeout) {\n return;\n }\n\n clearTimeout(this._hideTimeout);\n this._hideTimeout = null;\n }\n\n private _cleanupListeners(): void {\n this._listenerCleanups.forEach(cleanup => cleanup());\n this._listenerCleanups = [];\n }\n}\n","import { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n type ComponentRef,\n computed,\n DestroyRef,\n Directive,\n ElementRef,\n inject,\n input,\n type OnDestroy,\n type OnInit,\n output,\n PLATFORM_ID,\n Renderer2,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n computeZOverlayPlacement,\n startZOverlayAutoUpdate,\n ZOverlayService,\n type ZOverlayRef,\n} from '@shival99/z-ui/components/z-overlay';\nimport { ZOverlayContainerService, ZOverlayZIndexService } from '@shival99/z-ui/services';\nimport { zTransform } from '@shival99/z-ui/utils';\nimport { filter, map, of, Subject, Subscription, switchMap, timer } from 'rxjs';\nimport { ZPopoverContentComponent } from '../z-popover.content.component';\nimport { Z_POPOVER_ANIMATION_DURATION } from '../z-popover.define';\nimport {\n getPopoverFallbackPlacements,\n isPopoverTriggerVisibleInViewport,\n isMobilePopoverViewport,\n} from '../z-popover.positions';\nimport {\n type ZPopoverContent,\n type ZPopoverControl,\n type ZPopoverDelayConfig,\n type ZPopoverOverlaySize,\n type ZPopoverPosition,\n type ZPopoverTrigger,\n type ZPopoverWidth,\n} from '../z-popover.types';\n\n@Directive({\n selector: '[z-popover]',\n standalone: true,\n exportAs: 'zPopover',\n})\nexport class ZPopoverDirective implements OnInit, OnDestroy {\n private static readonly _openPopovers = new Set<ZPopoverDirective>();\n\n public readonly zContent = input<ZPopoverContent | null>(null, {\n alias: 'zPopoverContent',\n });\n\n public readonly zPosition = input<ZPopoverPosition>('bottom');\n public readonly zTrigger = input<ZPopoverTrigger>('click');\n public readonly zPopoverTrigger = input<ZPopoverTrigger>();\n public readonly zClass = input('');\n public readonly zShowDelay = input(0);\n public readonly zHideDelay = input(0);\n public readonly zDisabled = input(false, { transform: zTransform });\n public readonly zOffset = input(8);\n public readonly zPopoverWidth = input<ZPopoverWidth>('auto');\n public readonly zTriggerRef = input<HTMLElement | ElementRef<HTMLElement> | null>(null);\n public readonly zManualClose = input(false, { transform: zTransform });\n public readonly zOutsideClickClose = input(false, { transform: zTransform });\n public readonly zScrollClose = input(false, { transform: zTransform });\n public readonly zSticky = input(false, { transform: zTransform });\n public readonly zShowArrow = input(false, { transform: zTransform });\n public readonly zKeyboardSafe = input(false, { transform: zTransform });\n\n public readonly zShow = output<void>();\n public readonly zHide = output<void>();\n public readonly zHideStart = output<void>();\n public readonly zControl = output<ZPopoverControl>();\n public readonly zPositionChange = output<ZPopoverPosition>();\n public readonly zOutsideClick = output<MouseEvent>();\n\n private readonly _trigger = computed(() => this.zPopoverTrigger() ?? this.zTrigger());\n private readonly _overlayService = inject(ZOverlayService);\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\n private readonly _renderer = inject(Renderer2);\n private readonly _destroyRef = inject(DestroyRef);\n private readonly _platformId = inject(PLATFORM_ID);\n private readonly _document = inject(DOCUMENT);\n private readonly _overlayContainerService = inject(ZOverlayContainerService);\n private readonly _zIndexService = inject(ZOverlayZIndexService);\n\n private _overlayRef: ZOverlayRef | null = null;\n private _componentRef: ComponentRef<ZPopoverContentComponent> | null = null;\n private _delaySubject = new Subject<ZPopoverDelayConfig>();\n private _listenerCleanups: (() => void)[] = [];\n private _autoUpdateCleanup: (() => void) | null = null;\n private _outsideClickSubscription: Subscription | null = null;\n private _scrollSubscription: Subscription | null = null;\n private _viewportResizeSubscription: Subscription | null = null;\n private _resizeObserver: ResizeObserver | null = null;\n private _mutationObserver: MutationObserver | null = null;\n private _hideTimeout: ReturnType<typeof setTimeout> | null = null;\n private _viewportResizeTimeouts: ReturnType<typeof setTimeout>[] = [];\n private _positionFrame: number | null = null;\n private _viewportSettlingUntil = 0;\n private readonly _isDestroyed = signal(false);\n private readonly _isVisible = signal(false);\n\n ngOnInit(): void {\n if (!isPlatformBrowser(this._platformId)) {\n return;\n }\n\n this._setupDelayMechanism();\n this._setupTriggers();\n this._setupOverlayContainerListener();\n this._emitControl();\n }\n\n private _setupOverlayContainerListener(): void {\n this._overlayContainerService.closeAll$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n if (this._isVisible()) {\n this.hideImmediate();\n }\n });\n }\n\n private _emitControl(): void {\n this.zControl.emit({\n close: () => this.hide(),\n closeImmediate: () => this.hideImmediate(),\n show: () => this.show(),\n toggle: () => this.toggle(),\n isVisible: () => this._isVisible(),\n updatePosition: () => this.updatePosition(),\n });\n }\n\n ngOnDestroy(): void {\n this._isDestroyed.set(true);\n this._clearHideTimeout();\n this._renderer.removeClass(this._elementRef.nativeElement, 'z-popover-open');\n this._renderer.removeAttribute(this._elementRef.nativeElement, 'aria-expanded');\n this._delaySubject.complete();\n this._cleanupListeners();\n this._disposeOverlay();\n }\n\n public show(): void {\n if (this.zDisabled() || !this.zContent()) {\n return;\n }\n\n if (this._isVisible()) {\n this._delay(true, 0);\n return;\n }\n\n this._delay(true, this.zShowDelay());\n }\n\n public hide(): void {\n this._delay(false, this.zHideDelay());\n }\n\n public hideImmediate(): void {\n if (this._destroyRef.destroyed) {\n return;\n }\n\n this._clearHideTimeout();\n if (this._isVisible()) {\n this._isVisible.set(false);\n this._renderer.removeClass(this._elementRef.nativeElement, 'z-popover-open');\n this._renderer.removeAttribute(this._elementRef.nativeElement, 'aria-expanded');\n this.zHideStart.emit();\n }\n this._disposeOverlay();\n this.zHide.emit();\n }\n\n public toggle(): void {\n if (this._isVisible()) {\n this.hide();\n return;\n }\n\n this.show();\n }\n\n public isOpen(): boolean {\n return this._isVisible();\n }\n\n public updatePosition(): void {\n if (!this._isVisible()) {\n return;\n }\n\n this._schedulePositionUpdate();\n }\n\n private _createOverlay(): ZOverlayRef {\n const overlayRef = this._overlayService.createAnchored();\n this._zIndexService.applyToOverlay(overlayRef);\n\n const widthConfig = this._getWidthConfig();\n if (widthConfig.width) {\n overlayRef.updateSize(widthConfig);\n }\n\n return overlayRef;\n }\n\n private _getWidthConfig(): ZPopoverOverlaySize {\n const width = this.zPopoverWidth();\n\n if (width === 'auto') {\n return {};\n }\n\n if (width === 'trigger') {\n const triggerWidth = this._getTriggerElement().getBoundingClientRect().width;\n return { width: `${triggerWidth}px`, minWidth: `${triggerWidth}px` };\n }\n\n return { width, minWidth: width };\n }\n\n private _getTriggerElement(): HTMLElement {\n const triggerRef = this.zTriggerRef();\n\n if (triggerRef instanceof ElementRef) {\n return triggerRef.nativeElement;\n }\n\n return triggerRef ?? this._elementRef.nativeElement;\n }\n\n private _disposeOverlay(): void {\n this._outsideClickSubscription?.unsubscribe();\n this._outsideClickSubscription = null;\n this._autoUpdateCleanup?.();\n this._autoUpdateCleanup = null;\n this._scrollSubscription?.unsubscribe();\n this._scrollSubscription = null;\n this._viewportResizeSubscription?.unsubscribe();\n this._viewportResizeSubscription = null;\n this._clearViewportResizeTimeout();\n this._viewportSettlingUntil = 0;\n this._resizeObserver?.disconnect();\n this._resizeObserver = null;\n this._mutationObserver?.disconnect();\n this._mutationObserver = null;\n this._cancelScheduledPositionUpdate();\n this._overlayRef?.dispose();\n this._overlayRef = null;\n this._componentRef = null;\n ZPopoverDirective._openPopovers.delete(this);\n }\n\n private _setupDelayMechanism(): void {\n this._delaySubject\n .pipe(\n switchMap(config => (config.delay <= 0 ? of(config) : timer(config.delay).pipe(map(() => config)))),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(config => {\n if (config.show) {\n void this._showPopover();\n return;\n }\n\n this._hidePopover();\n });\n }\n\n private _setupTriggers(): void {\n this._cleanupListeners();\n const trigger = this._trigger();\n const triggerElement = this._getTriggerElement();\n\n // Manual trigger: no automatic listeners, control via zControl only\n if (trigger === 'manual') {\n return;\n }\n\n if (trigger === 'hover') {\n this._listenerCleanups.push(\n this._renderer.listen(triggerElement, 'mouseenter', () => this.show()),\n this._renderer.listen(triggerElement, 'focus', () => this.show())\n );\n\n if (!this.zManualClose()) {\n this._listenerCleanups.push(\n this._renderer.listen(triggerElement, 'mouseleave', () => this.hide()),\n this._renderer.listen(triggerElement, 'blur', () => this.hide())\n );\n }\n return;\n }\n\n if (trigger === 'click') {\n this._listenerCleanups.push(\n this._renderer.listen(triggerElement, 'click', (event: Event) => {\n event.stopPropagation();\n this.toggle();\n }),\n this._renderer.listen(triggerElement, 'touchend', (event: TouchEvent) => {\n if (event.cancelable) {\n event.preventDefault();\n }\n\n event.stopPropagation();\n this.toggle();\n })\n );\n }\n }\n\n private _setupOutsideClick(): void {\n const overlayRef = this._overlayRef;\n if (!overlayRef) {\n return;\n }\n\n this._outsideClickSubscription?.unsubscribe();\n this._outsideClickSubscription = overlayRef\n .outsidePointerEvents()\n .pipe(\n filter(() => !this.zManualClose() || this.zOutsideClickClose()),\n filter(() => this._trigger() === 'click' || this._trigger() === 'manual'),\n filter(event => {\n const target = event.target as Node;\n // Check if click is inside trigger element\n if (this._getTriggerElement().contains(target)) {\n return false;\n }\n // Check if click is inside overlay element (dropdown content)\n if (overlayRef.overlayElement.contains(target)) {\n return false;\n }\n if (this._isNestedPopoverTarget(target, overlayRef)) {\n return false;\n }\n return true;\n }),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(event => {\n this.zOutsideClick.emit(event);\n this.hide();\n });\n }\n\n private _setupScrollClose(): void {\n this._scrollSubscription?.unsubscribe();\n\n let ticking = false;\n const onScroll = (event: Event) => {\n if (!this._isVisible() || !this._overlayRef) {\n return;\n }\n\n const { target } = event;\n const { overlayElement } = this._overlayRef;\n if (overlayElement && overlayElement.contains(target as Node)) {\n return;\n }\n\n if (this.zScrollClose() && !this.zManualClose()) {\n this.hideImmediate();\n return;\n }\n\n if (ticking) {\n return;\n }\n\n if (this._shouldDeferForMobileKeyboard()) {\n this._markViewportSettling();\n this._scheduleSettledPositionUpdate();\n return;\n }\n\n ticking = true;\n requestAnimationFrame(() => {\n if (this.zSticky() && !this._isTriggerVisibleInViewport()) {\n ticking = false;\n return;\n }\n\n void this._updatePositionNow();\n ticking = false;\n });\n };\n\n this._document.addEventListener('scroll', onScroll, true);\n this._scrollSubscription = {\n unsubscribe: () => {\n this._document.removeEventListener('scroll', onScroll, true);\n },\n } as Subscription;\n }\n\n private _setupViewportResizeReposition(): void {\n this._viewportResizeSubscription?.unsubscribe();\n this._clearViewportResizeTimeout();\n\n const onResize = () => {\n if (!this._overlayRef?.hasAttached()) {\n return;\n }\n\n if (!this._isTriggerAvailable()) {\n this.hideImmediate();\n return;\n }\n\n if (this._shouldDeferForMobileKeyboard()) {\n this._markViewportSettling();\n this._scheduleSettledPositionUpdate();\n return;\n }\n\n this._schedulePositionUpdate();\n };\n\n window.addEventListener('resize', onResize);\n window.visualViewport?.addEventListener('resize', onResize);\n this._viewportResizeSubscription = {\n unsubscribe: () => {\n window.removeEventListener('resize', onResize);\n window.visualViewport?.removeEventListener('resize', onResize);\n this._clearViewportResizeTimeout();\n },\n } as Subscription;\n }\n\n private _delay(show: boolean, delay: number): void {\n this._delaySubject.next({ show, delay });\n }\n\n private async _showPopover(): Promise<void> {\n const content = this.zContent();\n if (!content) {\n return;\n }\n\n if (this._componentRef) {\n const wasVisible = this._isVisible();\n this._clearHideTimeout();\n this._componentRef.instance.state.set('open');\n\n if (!wasVisible) {\n this._isVisible.set(true);\n this._renderer.addClass(this._elementRef.nativeElement, 'z-popover-open');\n this._renderer.setAttribute(this._elementRef.nativeElement, 'aria-expanded', 'true');\n this.zShow.emit();\n }\n\n return;\n }\n\n let overlayRef = this._overlayRef;\n if (!overlayRef) {\n overlayRef = this._createOverlay();\n this._overlayRef = overlayRef;\n this._setupOutsideClick();\n }\n\n this._setupScrollClose();\n\n const componentRef = (this._componentRef = overlayRef.attach(ZPopoverContentComponent));\n\n componentRef.instance.setProps({\n content,\n position: this.zPosition(),\n customClass: this.zClass(),\n onClose: () => this.hide(),\n showArrow: this.zShowArrow(),\n });\n\n await this._applyPosition();\n\n if (\n this._overlayRef !== overlayRef ||\n this._componentRef !== componentRef ||\n this._hideTimeout ||\n this._isDestroyed()\n ) {\n return; // Disposed while waiting for computePosition.\n }\n\n this._autoUpdateCleanup = startZOverlayAutoUpdate(\n this._getTriggerElement(),\n this._overlayRef.overlayElement,\n () => void this._applyPosition(),\n { ancestorScroll: false }\n );\n\n if (this._trigger() === 'hover') {\n this._setupPopoverHover();\n }\n\n this._setupResizeObserver();\n this._setupViewportResizeReposition();\n this._isVisible.set(true);\n ZPopoverDirective._openPopovers.add(this);\n this._renderer.addClass(this._elementRef.nativeElement, 'z-popover-open');\n this._renderer.setAttribute(this._elementRef.nativeElement, 'aria-expanded', 'true');\n this.zShow.emit();\n }\n\n private _isNestedPopoverTarget(target: Node, overlayRef: ZOverlayRef): boolean {\n for (const popover of ZPopoverDirective._openPopovers) {\n if (popover === this) {\n continue;\n }\n\n const nestedOverlayElement = popover._overlayRef?.overlayElement;\n if (!nestedOverlayElement?.contains(target)) {\n continue;\n }\n\n if (overlayRef.overlayElement.contains(popover._getTriggerElement())) {\n return true;\n }\n }\n\n return false;\n }\n\n private _setupResizeObserver(): void {\n this._resizeObserver?.disconnect();\n this._mutationObserver?.disconnect();\n\n this._resizeObserver = new ResizeObserver(() => {\n if (this._overlayRef && this._isVisible()) {\n if (!this._isTriggerAvailable()) {\n this.hideImmediate();\n return;\n }\n\n const widthConfig = this._getWidthConfig();\n if (widthConfig.width) {\n this._overlayRef.updateSize(widthConfig);\n }\n\n this._schedulePositionUpdate();\n }\n });\n\n const originElement = this._getTriggerElement();\n this._resizeObserver.observe(originElement);\n\n if (originElement !== this._elementRef.nativeElement) {\n this._resizeObserver.observe(this._elementRef.nativeElement);\n }\n\n const wrapper = this._elementRef.nativeElement.parentElement?.parentElement;\n if (wrapper && wrapper !== document.body) {\n this._resizeObserver.observe(wrapper);\n }\n\n this._mutationObserver = new MutationObserver(() => {\n if (!this._isVisible()) {\n return;\n }\n\n if (!this._isTriggerAvailable()) {\n this.hideImmediate();\n return;\n }\n\n this._schedulePositionUpdate(true);\n });\n\n let observedElement: HTMLElement | null = originElement;\n while (observedElement) {\n this._mutationObserver.observe(observedElement, {\n attributes: true,\n attributeFilter: ['aria-hidden', 'class', 'hidden', 'style'],\n childList: true,\n });\n observedElement = observedElement.parentElement;\n }\n }\n\n private _schedulePositionUpdate(force = false): void {\n if (this._positionFrame !== null) {\n return;\n }\n\n this._positionFrame = requestAnimationFrame(() => {\n this._positionFrame = null;\n void this._updatePositionNow(force);\n });\n }\n\n private _scheduleSettledPositionUpdate(): void {\n this._clearViewportResizeTimeout();\n for (const delay of [80, 180, 320]) {\n const timeout = setTimeout(() => {\n this._viewportResizeTimeouts = this._viewportResizeTimeouts.filter(item => item !== timeout);\n this._schedulePositionUpdate(true);\n }, delay);\n this._viewportResizeTimeouts.push(timeout);\n }\n }\n\n private _cancelScheduledPositionUpdate(): void {\n if (this._positionFrame === null) {\n return;\n }\n\n cancelAnimationFrame(this._positionFrame);\n this._positionFrame = null;\n }\n\n private async _updatePositionNow(force = false): Promise<void> {\n if (!this._overlayRef?.hasAttached()) {\n return;\n }\n\n if (!this._isTriggerAvailable()) {\n this.hideImmediate();\n return;\n }\n\n if (isMobilePopoverViewport() && this.zSticky() && !this._isTriggerVisibleInViewport()) {\n return;\n }\n\n if (!force && this._shouldSkipMobileKeyboardUpdate()) {\n return;\n }\n\n const widthConfig = this._getWidthConfig();\n if (widthConfig.width) {\n this._overlayRef.updateSize(widthConfig);\n }\n\n await this._applyPosition();\n }\n\n private async _applyPosition(): Promise<void> {\n if (!this._overlayRef || !this._componentRef) {\n return;\n }\n\n const anchorElement = this._getTriggerElement();\n const floatingElement = this._overlayRef.overlayElement;\n const position = this.zPosition();\n\n const result = await computeZOverlayPlacement({\n reference: anchorElement,\n floating: floatingElement,\n placement: position,\n fallbackPlacements: getPopoverFallbackPlacements(position),\n offset: this.zOffset(),\n push: true,\n viewportPadding: 10,\n });\n\n if (!this._componentRef) {\n return;\n }\n\n floatingElement.style.left = `${result.x}px`;\n floatingElement.style.top = `${result.y}px`;\n this._componentRef.instance.position.set(result.placement);\n this.zPositionChange.emit(result.placement);\n }\n\n private _markViewportSettling(): void {\n this._viewportSettlingUntil = Date.now() + 260;\n }\n\n private _shouldDeferForMobileKeyboard(): boolean {\n return this._isMobileOverlayTextInputFocused();\n }\n\n private _shouldSkipMobileKeyboardUpdate(): boolean {\n if (!this._isMobileOverlayTextInputFocused()) {\n return false;\n }\n\n return Date.now() < this._viewportSettlingUntil;\n }\n\n private _isMobileOverlayTextInputFocused(): boolean {\n if (!this.zKeyboardSafe() || !isMobilePopoverViewport()) {\n return false;\n }\n\n const { activeElement } = this._document;\n if (!(activeElement instanceof HTMLElement)) {\n return false;\n }\n\n const overlayElement = this._overlayRef?.overlayElement;\n if (!overlayElement?.contains(activeElement)) {\n return false;\n }\n\n if (activeElement.isContentEditable) {\n return true;\n }\n\n return activeElement.matches('input, textarea, select');\n }\n\n private _clearViewportResizeTimeout(): void {\n for (const timeout of this._viewportResizeTimeouts) {\n clearTimeout(timeout);\n }\n this._viewportResizeTimeouts = [];\n }\n\n private _isTriggerVisibleInViewport(): boolean {\n const { visualViewport } = window;\n\n return isPopoverTriggerVisibleInViewport({\n triggerRect: this._getTriggerElement().getBoundingClientRect(),\n viewportWidth: visualViewport?.width ?? window.innerWidth,\n viewportHeight: visualViewport?.height ?? window.innerHeight,\n });\n }\n\n private _isTriggerAvailable(): boolean {\n let element: HTMLElement | null = this._getTriggerElement();\n if (!element.isConnected) {\n return false;\n }\n\n while (element) {\n const style = window.getComputedStyle(element);\n if (style.display === 'none' || style.visibility === 'hidden') {\n return false;\n }\n element = element.parentElement;\n }\n\n return true;\n }\n\n private _setupPopoverHover(): void {\n const overlayElement = this._overlayRef?.overlayElement;\n if (!overlayElement) {\n return;\n }\n\n this._listenerCleanups.push(\n this._renderer.listen(overlayElement, 'mouseenter', () => {\n this._delay(true, 0);\n })\n );\n\n if (!this.zManualClose()) {\n this._listenerCleanups.push(\n this._renderer.listen(overlayElement, 'mouseleave', () => {\n this._delay(false, this.zHideDelay());\n })\n );\n }\n }\n\n private _hidePopover(): void {\n if (!this._componentRef) {\n return;\n }\n\n if (this._hideTimeout) {\n return;\n }\n\n this._isVisible.set(false);\n this._renderer.removeClass(this._elementRef.nativeElement, 'z-popover-open');\n this._renderer.removeAttribute(this._elementRef.nativeElement, 'aria-expanded');\n this.zHideStart.emit();\n this._componentRef.instance.state.set('closed');\n this._hideTimeout = setTimeout(() => {\n this._hideTimeout = null;\n\n if (this._isDestroyed()) {\n return;\n }\n this._disposeOverlay();\n this.zHide.emit();\n }, Z_POPOVER_ANIMATION_DURATION);\n }\n\n private _clearHideTimeout(): void {\n if (this._hideTimeout) {\n clearTimeout(this._hideTimeout);\n this._hideTimeout = null;\n }\n }\n\n private _cleanupListeners(): void {\n this._listenerCleanups.forEach(cleanup => cleanup());\n this._listenerCleanups = [];\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -336,7 +336,7 @@ class ZToastCustomComponent {
336
336
  handleAction(action) {
337
337
  const id = this.config().toastId;
338
338
  if (id !== undefined) {
339
- // Thực thi callback của nút hành động và tự động đóng toast tương ứng
339
+ // Run the action and dismiss the matching toast.
340
340
  action.onClick(id);
341
341
  this._toastService.dismiss(id);
342
342
  }
@@ -362,7 +362,7 @@ class ZToastCustomComponent {
362
362
  }
363
363
  getFeaturedIconContainerClasses() {
364
364
  const { type } = this.config();
365
- // Trả về class styling cho vòng tròn đồng tâm bao quanh icon (Featured Icon)
365
+ // Return the concentric ring classes around the featured icon.
366
366
  switch (type) {
367
367
  case 'success':
368
368
  return 'bg-emerald-50 text-emerald-600 dark:bg-emerald-950/30 dark:text-emerald-400 border border-emerald-100 dark:border-emerald-900/50 ring-4 ring-emerald-500/5';
@@ -390,11 +390,11 @@ class ZToastCustomComponent {
390
390
  }
391
391
  }
392
392
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ZToastCustomComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
393
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: ZToastCustomComponent, isStandalone: true, selector: "z-toast-custom", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"border-border bg-card relative flex w-full max-w-[480px] flex-col gap-4 rounded-xl border p-4 font-sans shadow-lg md:flex-row md:items-start\"\n [class.min-w-[340px]]=\"config().type !== 'image'\"\n [class.md:p-0]=\"config().type === 'image'\"\n [class.overflow-hidden]=\"config().type === 'image'\">\n <!-- Content for layout types -->\n @if (config().type === 'image') {\n <!-- Style 1: D\u1EA1ng th\u00F4ng b\u00E1o ch\u1EE9a \u1EA3nh phong c\u1EA3nh n\u1EB1m b\u00EAn tr\u00E1i (desktop) ho\u1EB7c b\u00EAn tr\u00EAn (mobile) -->\n <div class=\"flex w-full flex-col md:flex-row\">\n <!-- \u1EA2nh tr\u00EAn Desktop -->\n @if (config().imageUrl) {\n <div class=\"border-border hidden w-32 shrink-0 overflow-hidden rounded-l-xl border-r md:block\">\n <img [src]=\"config().imageUrl\" alt=\"Notification image\" class=\"h-full w-full object-cover\" />\n </div>\n <!-- \u1EA2nh tr\u00EAn Mobile -->\n <div class=\"block h-32 w-full overflow-hidden rounded-t-xl md:hidden\">\n <img [src]=\"config().imageUrl\" alt=\"Notification image\" class=\"h-full w-full object-cover\" />\n </div>\n }\n\n <!-- N\u1ED9i dung ch\u1EEF v\u00E0 c\u00E1c n\u00FAt h\u00E0nh \u0111\u1ED9ng -->\n <div class=\"flex flex-1 flex-col gap-3 p-4\">\n <div class=\"flex flex-col gap-1 pr-6\">\n <p class=\"text-foreground text-sm font-semibold\">{{ config().title }}</p>\n @if (config().description) {\n <p class=\"text-muted-foreground text-sm\">{{ config().description }}</p>\n }\n </div>\n\n <!-- N\u00FAt h\u00E0nh \u0111\u1ED9ng -->\n @if (config().actions && config().actions!.length > 0) {\n <div class=\"flex gap-3\">\n @for (action of config().actions; track $index) {\n <button\n (click)=\"handleAction(action)\"\n class=\"cursor-pointer text-sm font-semibold hover:underline\"\n [class]=\"getActionClasses(action)\">\n {{ action.label }}\n </button>\n }\n </div>\n }\n </div>\n </div>\n } @else {\n <!-- Style 2: C\u00E1c d\u1EA1ng th\u00F4ng b\u00E1o ti\u00EAu chu\u1EA9n (Alert, Avatar, Progress, Default) -->\n\n <!-- Icon ho\u1EB7c Avatar \u1EDF g\u00F3c tr\u00E1i -->\n @if (config().type === 'avatar' && config().avatarUrl) {\n <div class=\"relative flex size-10 shrink-0 rounded-full\">\n <img\n [src]=\"config().avatarUrl\"\n [alt]=\"config().title\"\n class=\"border-border size-full rounded-full border object-cover\" />\n @if (config().avatarOnline) {\n <span\n class=\"ring-card absolute right-0 bottom-0 flex size-2.5 justify-center rounded-full bg-emerald-500 ring-[1.5px]\"></span>\n }\n </div>\n } @else if (config().type && config().type !== 'default') {\n <!-- Featured Icon wrapper v\u1EDBi hi\u1EC7u \u1EE9ng vi\u1EC1n \u0111\u1ED3ng t\u00E2m -->\n <div\n class=\"relative flex size-10 shrink-0 items-center justify-center rounded-full\"\n [class]=\"getFeaturedIconContainerClasses()\">\n <i z-icon [zType]=\"getFeaturedIconName()\" zSize=\"20\" class=\"z-10\"></i>\n </div>\n }\n\n <!-- Ti\u00EAu \u0111\u1EC1, m\u00F4 t\u1EA3 v\u00E0 thanh ti\u1EBFn tr\u00ECnh -->\n <div class=\"flex flex-1 flex-col gap-3\">\n <div class=\"flex flex-col gap-1 pr-6\">\n <p class=\"text-foreground text-sm font-semibold\">{{ config().title }}</p>\n @if (config().description) {\n <p class=\"text-muted-foreground text-sm\">{{ config().description }}</p>\n }\n </div>\n\n <!-- D\u1EA1ng Progress bar d\u00E0nh cho ti\u1EBFn tr\u00ECnh upload/t\u1EA3i xu\u1ED1ng -->\n @if (config().type === 'progress' && config().progress !== undefined) {\n <div class=\"flex w-full flex-col gap-1.5\">\n <div class=\"h-2 w-full overflow-hidden rounded-md bg-zinc-100 dark:bg-zinc-800\">\n <div\n class=\"bg-primary h-full rounded-md transition-all duration-300\"\n [style.width.%]=\"config().progress\"></div>\n </div>\n <span class=\"text-muted-foreground text-xs font-medium tabular-nums\">\n {{ config().progress }}% uploaded...\n </span>\n </div>\n }\n\n <!-- C\u00E1c n\u00FAt h\u00E0nh \u0111\u1ED9ng b\u00EAn d\u01B0\u1EDBi th\u00F4ng b\u00E1o -->\n @if (config().actions && config().actions!.length > 0) {\n <div class=\"flex gap-3\">\n @for (action of config().actions; track $index) {\n <button\n (click)=\"handleAction(action)\"\n class=\"cursor-pointer text-sm font-semibold hover:underline\"\n [class]=\"getActionClasses(action)\">\n {{ action.label }}\n </button>\n }\n </div>\n }\n </div>\n }\n\n <!-- N\u00FAt \u0111\u00F3ng/t\u1EAFt th\u00F4ng b\u00E1o g\u00F3c tr\u00EAn b\u00EAn ph\u1EA3i -->\n @if (config().closeable !== false) {\n <button\n (click)=\"dismiss()\"\n aria-label=\"Close\"\n class=\"text-muted-foreground hover:text-foreground absolute top-3 right-3 flex cursor-pointer items-center justify-center rounded-lg p-1.5 transition duration-150 hover:bg-zinc-100 dark:hover:bg-zinc-800\">\n <i z-icon zType=\"lucideX\" zSize=\"16\"></i>\n </button>\n }\n</div>\n", dependencies: [{ kind: "component", type: ZIconComponent, selector: "z-icon, [z-icon]", inputs: ["class", "zType", "zAnimatedType", "zAnimate", "zAnimationTrigger", "zSize", "zStrokeWidth", "zSvg"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
393
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: ZToastCustomComponent, isStandalone: true, selector: "z-toast-custom", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"border-border bg-card relative flex w-full max-w-[480px] flex-col gap-4 rounded-xl border p-4 font-sans shadow-lg md:flex-row md:items-start\"\n [class.min-w-[340px]]=\"config().type !== 'image'\"\n [class.md:p-0]=\"config().type === 'image'\"\n [class.overflow-hidden]=\"config().type === 'image'\">\n <!-- Content for layout types -->\n @if (config().type === 'image') {\n <!-- Image layout: side-by-side on desktop, stacked on mobile. -->\n <div class=\"flex w-full flex-col md:flex-row\">\n @if (config().imageUrl) {\n <div class=\"border-border hidden w-32 shrink-0 overflow-hidden rounded-l-xl border-r md:block\">\n <img [src]=\"config().imageUrl\" alt=\"Notification image\" class=\"h-full w-full object-cover\" />\n </div>\n <div class=\"block h-32 w-full overflow-hidden rounded-t-xl md:hidden\">\n <img [src]=\"config().imageUrl\" alt=\"Notification image\" class=\"h-full w-full object-cover\" />\n </div>\n }\n\n <div class=\"flex flex-1 flex-col gap-3 p-4\">\n <div class=\"flex flex-col gap-1 pr-6\">\n <p class=\"text-foreground text-sm font-semibold\">{{ config().title }}</p>\n @if (config().description) {\n <p class=\"text-muted-foreground text-sm\">{{ config().description }}</p>\n }\n </div>\n\n @if (config().actions && config().actions!.length > 0) {\n <div class=\"flex gap-3\">\n @for (action of config().actions; track $index) {\n <button\n (click)=\"handleAction(action)\"\n class=\"cursor-pointer text-sm font-semibold hover:underline\"\n [class]=\"getActionClasses(action)\">\n {{ action.label }}\n </button>\n }\n </div>\n }\n </div>\n </div>\n } @else {\n <!-- Standard layouts: alert, avatar, progress, and default. -->\n\n @if (config().type === 'avatar' && config().avatarUrl) {\n <div class=\"relative flex size-10 shrink-0 rounded-full\">\n <img\n [src]=\"config().avatarUrl\"\n [alt]=\"config().title\"\n class=\"border-border size-full rounded-full border object-cover\" />\n @if (config().avatarOnline) {\n <span\n class=\"ring-card absolute right-0 bottom-0 flex size-2.5 justify-center rounded-full bg-emerald-500 ring-[1.5px]\"></span>\n }\n </div>\n } @else if (config().type && config().type !== 'default') {\n <!-- Featured icon ring. -->\n <div\n class=\"relative flex size-10 shrink-0 items-center justify-center rounded-full\"\n [class]=\"getFeaturedIconContainerClasses()\">\n <i z-icon [zType]=\"getFeaturedIconName()\" zSize=\"20\" class=\"z-10\"></i>\n </div>\n }\n\n <div class=\"flex flex-1 flex-col gap-3\">\n <div class=\"flex flex-col gap-1 pr-6\">\n <p class=\"text-foreground text-sm font-semibold\">{{ config().title }}</p>\n @if (config().description) {\n <p class=\"text-muted-foreground text-sm\">{{ config().description }}</p>\n }\n </div>\n\n <!-- Upload or download progress. -->\n @if (config().type === 'progress' && config().progress !== undefined) {\n <div class=\"flex w-full flex-col gap-1.5\">\n <div class=\"h-2 w-full overflow-hidden rounded-md bg-zinc-100 dark:bg-zinc-800\">\n <div\n class=\"bg-primary h-full rounded-md transition-all duration-300\"\n [style.width.%]=\"config().progress\"></div>\n </div>\n <span class=\"text-muted-foreground text-xs font-medium tabular-nums\">\n {{ config().progress }}% uploaded...\n </span>\n </div>\n }\n\n @if (config().actions && config().actions!.length > 0) {\n <div class=\"flex gap-3\">\n @for (action of config().actions; track $index) {\n <button\n (click)=\"handleAction(action)\"\n class=\"cursor-pointer text-sm font-semibold hover:underline\"\n [class]=\"getActionClasses(action)\">\n {{ action.label }}\n </button>\n }\n </div>\n }\n </div>\n }\n\n <!-- Close button. -->\n @if (config().closeable !== false) {\n <button\n (click)=\"dismiss()\"\n aria-label=\"Close\"\n class=\"text-muted-foreground hover:text-foreground absolute top-3 right-3 flex cursor-pointer items-center justify-center rounded-lg p-1.5 transition duration-150 hover:bg-zinc-100 dark:hover:bg-zinc-800\">\n <i z-icon zType=\"lucideX\" zSize=\"16\"></i>\n </button>\n }\n</div>\n", dependencies: [{ kind: "component", type: ZIconComponent, selector: "z-icon, [z-icon]", inputs: ["class", "zType", "zAnimatedType", "zAnimate", "zAnimationTrigger", "zSize", "zStrokeWidth", "zSvg"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
394
394
  }
395
395
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ZToastCustomComponent, decorators: [{
396
396
  type: Component,
397
- args: [{ selector: 'z-toast-custom', imports: [ZIconComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"border-border bg-card relative flex w-full max-w-[480px] flex-col gap-4 rounded-xl border p-4 font-sans shadow-lg md:flex-row md:items-start\"\n [class.min-w-[340px]]=\"config().type !== 'image'\"\n [class.md:p-0]=\"config().type === 'image'\"\n [class.overflow-hidden]=\"config().type === 'image'\">\n <!-- Content for layout types -->\n @if (config().type === 'image') {\n <!-- Style 1: D\u1EA1ng th\u00F4ng b\u00E1o ch\u1EE9a \u1EA3nh phong c\u1EA3nh n\u1EB1m b\u00EAn tr\u00E1i (desktop) ho\u1EB7c b\u00EAn tr\u00EAn (mobile) -->\n <div class=\"flex w-full flex-col md:flex-row\">\n <!-- \u1EA2nh tr\u00EAn Desktop -->\n @if (config().imageUrl) {\n <div class=\"border-border hidden w-32 shrink-0 overflow-hidden rounded-l-xl border-r md:block\">\n <img [src]=\"config().imageUrl\" alt=\"Notification image\" class=\"h-full w-full object-cover\" />\n </div>\n <!-- \u1EA2nh tr\u00EAn Mobile -->\n <div class=\"block h-32 w-full overflow-hidden rounded-t-xl md:hidden\">\n <img [src]=\"config().imageUrl\" alt=\"Notification image\" class=\"h-full w-full object-cover\" />\n </div>\n }\n\n <!-- N\u1ED9i dung ch\u1EEF v\u00E0 c\u00E1c n\u00FAt h\u00E0nh \u0111\u1ED9ng -->\n <div class=\"flex flex-1 flex-col gap-3 p-4\">\n <div class=\"flex flex-col gap-1 pr-6\">\n <p class=\"text-foreground text-sm font-semibold\">{{ config().title }}</p>\n @if (config().description) {\n <p class=\"text-muted-foreground text-sm\">{{ config().description }}</p>\n }\n </div>\n\n <!-- N\u00FAt h\u00E0nh \u0111\u1ED9ng -->\n @if (config().actions && config().actions!.length > 0) {\n <div class=\"flex gap-3\">\n @for (action of config().actions; track $index) {\n <button\n (click)=\"handleAction(action)\"\n class=\"cursor-pointer text-sm font-semibold hover:underline\"\n [class]=\"getActionClasses(action)\">\n {{ action.label }}\n </button>\n }\n </div>\n }\n </div>\n </div>\n } @else {\n <!-- Style 2: C\u00E1c d\u1EA1ng th\u00F4ng b\u00E1o ti\u00EAu chu\u1EA9n (Alert, Avatar, Progress, Default) -->\n\n <!-- Icon ho\u1EB7c Avatar \u1EDF g\u00F3c tr\u00E1i -->\n @if (config().type === 'avatar' && config().avatarUrl) {\n <div class=\"relative flex size-10 shrink-0 rounded-full\">\n <img\n [src]=\"config().avatarUrl\"\n [alt]=\"config().title\"\n class=\"border-border size-full rounded-full border object-cover\" />\n @if (config().avatarOnline) {\n <span\n class=\"ring-card absolute right-0 bottom-0 flex size-2.5 justify-center rounded-full bg-emerald-500 ring-[1.5px]\"></span>\n }\n </div>\n } @else if (config().type && config().type !== 'default') {\n <!-- Featured Icon wrapper v\u1EDBi hi\u1EC7u \u1EE9ng vi\u1EC1n \u0111\u1ED3ng t\u00E2m -->\n <div\n class=\"relative flex size-10 shrink-0 items-center justify-center rounded-full\"\n [class]=\"getFeaturedIconContainerClasses()\">\n <i z-icon [zType]=\"getFeaturedIconName()\" zSize=\"20\" class=\"z-10\"></i>\n </div>\n }\n\n <!-- Ti\u00EAu \u0111\u1EC1, m\u00F4 t\u1EA3 v\u00E0 thanh ti\u1EBFn tr\u00ECnh -->\n <div class=\"flex flex-1 flex-col gap-3\">\n <div class=\"flex flex-col gap-1 pr-6\">\n <p class=\"text-foreground text-sm font-semibold\">{{ config().title }}</p>\n @if (config().description) {\n <p class=\"text-muted-foreground text-sm\">{{ config().description }}</p>\n }\n </div>\n\n <!-- D\u1EA1ng Progress bar d\u00E0nh cho ti\u1EBFn tr\u00ECnh upload/t\u1EA3i xu\u1ED1ng -->\n @if (config().type === 'progress' && config().progress !== undefined) {\n <div class=\"flex w-full flex-col gap-1.5\">\n <div class=\"h-2 w-full overflow-hidden rounded-md bg-zinc-100 dark:bg-zinc-800\">\n <div\n class=\"bg-primary h-full rounded-md transition-all duration-300\"\n [style.width.%]=\"config().progress\"></div>\n </div>\n <span class=\"text-muted-foreground text-xs font-medium tabular-nums\">\n {{ config().progress }}% uploaded...\n </span>\n </div>\n }\n\n <!-- C\u00E1c n\u00FAt h\u00E0nh \u0111\u1ED9ng b\u00EAn d\u01B0\u1EDBi th\u00F4ng b\u00E1o -->\n @if (config().actions && config().actions!.length > 0) {\n <div class=\"flex gap-3\">\n @for (action of config().actions; track $index) {\n <button\n (click)=\"handleAction(action)\"\n class=\"cursor-pointer text-sm font-semibold hover:underline\"\n [class]=\"getActionClasses(action)\">\n {{ action.label }}\n </button>\n }\n </div>\n }\n </div>\n }\n\n <!-- N\u00FAt \u0111\u00F3ng/t\u1EAFt th\u00F4ng b\u00E1o g\u00F3c tr\u00EAn b\u00EAn ph\u1EA3i -->\n @if (config().closeable !== false) {\n <button\n (click)=\"dismiss()\"\n aria-label=\"Close\"\n class=\"text-muted-foreground hover:text-foreground absolute top-3 right-3 flex cursor-pointer items-center justify-center rounded-lg p-1.5 transition duration-150 hover:bg-zinc-100 dark:hover:bg-zinc-800\">\n <i z-icon zType=\"lucideX\" zSize=\"16\"></i>\n </button>\n }\n</div>\n" }]
397
+ args: [{ selector: 'z-toast-custom', imports: [ZIconComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"border-border bg-card relative flex w-full max-w-[480px] flex-col gap-4 rounded-xl border p-4 font-sans shadow-lg md:flex-row md:items-start\"\n [class.min-w-[340px]]=\"config().type !== 'image'\"\n [class.md:p-0]=\"config().type === 'image'\"\n [class.overflow-hidden]=\"config().type === 'image'\">\n <!-- Content for layout types -->\n @if (config().type === 'image') {\n <!-- Image layout: side-by-side on desktop, stacked on mobile. -->\n <div class=\"flex w-full flex-col md:flex-row\">\n @if (config().imageUrl) {\n <div class=\"border-border hidden w-32 shrink-0 overflow-hidden rounded-l-xl border-r md:block\">\n <img [src]=\"config().imageUrl\" alt=\"Notification image\" class=\"h-full w-full object-cover\" />\n </div>\n <div class=\"block h-32 w-full overflow-hidden rounded-t-xl md:hidden\">\n <img [src]=\"config().imageUrl\" alt=\"Notification image\" class=\"h-full w-full object-cover\" />\n </div>\n }\n\n <div class=\"flex flex-1 flex-col gap-3 p-4\">\n <div class=\"flex flex-col gap-1 pr-6\">\n <p class=\"text-foreground text-sm font-semibold\">{{ config().title }}</p>\n @if (config().description) {\n <p class=\"text-muted-foreground text-sm\">{{ config().description }}</p>\n }\n </div>\n\n @if (config().actions && config().actions!.length > 0) {\n <div class=\"flex gap-3\">\n @for (action of config().actions; track $index) {\n <button\n (click)=\"handleAction(action)\"\n class=\"cursor-pointer text-sm font-semibold hover:underline\"\n [class]=\"getActionClasses(action)\">\n {{ action.label }}\n </button>\n }\n </div>\n }\n </div>\n </div>\n } @else {\n <!-- Standard layouts: alert, avatar, progress, and default. -->\n\n @if (config().type === 'avatar' && config().avatarUrl) {\n <div class=\"relative flex size-10 shrink-0 rounded-full\">\n <img\n [src]=\"config().avatarUrl\"\n [alt]=\"config().title\"\n class=\"border-border size-full rounded-full border object-cover\" />\n @if (config().avatarOnline) {\n <span\n class=\"ring-card absolute right-0 bottom-0 flex size-2.5 justify-center rounded-full bg-emerald-500 ring-[1.5px]\"></span>\n }\n </div>\n } @else if (config().type && config().type !== 'default') {\n <!-- Featured icon ring. -->\n <div\n class=\"relative flex size-10 shrink-0 items-center justify-center rounded-full\"\n [class]=\"getFeaturedIconContainerClasses()\">\n <i z-icon [zType]=\"getFeaturedIconName()\" zSize=\"20\" class=\"z-10\"></i>\n </div>\n }\n\n <div class=\"flex flex-1 flex-col gap-3\">\n <div class=\"flex flex-col gap-1 pr-6\">\n <p class=\"text-foreground text-sm font-semibold\">{{ config().title }}</p>\n @if (config().description) {\n <p class=\"text-muted-foreground text-sm\">{{ config().description }}</p>\n }\n </div>\n\n <!-- Upload or download progress. -->\n @if (config().type === 'progress' && config().progress !== undefined) {\n <div class=\"flex w-full flex-col gap-1.5\">\n <div class=\"h-2 w-full overflow-hidden rounded-md bg-zinc-100 dark:bg-zinc-800\">\n <div\n class=\"bg-primary h-full rounded-md transition-all duration-300\"\n [style.width.%]=\"config().progress\"></div>\n </div>\n <span class=\"text-muted-foreground text-xs font-medium tabular-nums\">\n {{ config().progress }}% uploaded...\n </span>\n </div>\n }\n\n @if (config().actions && config().actions!.length > 0) {\n <div class=\"flex gap-3\">\n @for (action of config().actions; track $index) {\n <button\n (click)=\"handleAction(action)\"\n class=\"cursor-pointer text-sm font-semibold hover:underline\"\n [class]=\"getActionClasses(action)\">\n {{ action.label }}\n </button>\n }\n </div>\n }\n </div>\n }\n\n <!-- Close button. -->\n @if (config().closeable !== false) {\n <button\n (click)=\"dismiss()\"\n aria-label=\"Close\"\n class=\"text-muted-foreground hover:text-foreground absolute top-3 right-3 flex cursor-pointer items-center justify-center rounded-lg p-1.5 transition duration-150 hover:bg-zinc-100 dark:hover:bg-zinc-800\">\n <i z-icon zType=\"lucideX\" zSize=\"16\"></i>\n </button>\n }\n</div>\n" }]
398
398
  }], propDecorators: { config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: true }] }] } });
399
399
 
400
400
  /**