@shival99/z-ui 2.5.7 → 2.5.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/shival99-z-ui-components-z-autocomplete.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-autocomplete.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-avatar.mjs +45 -10
- package/fesm2022/shival99-z-ui-components-z-avatar.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-badge.mjs +94 -0
- package/fesm2022/shival99-z-ui-components-z-badge.mjs.map +1 -0
- package/fesm2022/shival99-z-ui-components-z-calendar.mjs +9 -4
- package/fesm2022/shival99-z-ui-components-z-calendar.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-dropdown-menu.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-dropdown-menu.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-editor.mjs +2 -2
- package/fesm2022/shival99-z-ui-components-z-editor.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-gallery.mjs +2 -2
- package/fesm2022/shival99-z-ui-components-z-gallery.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-input.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-input.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-kanban.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-kanban.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-menu.mjs +2 -2
- package/fesm2022/shival99-z-ui-components-z-menu.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-modal.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-modal.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-popover.mjs +49 -0
- package/fesm2022/shival99-z-ui-components-z-popover.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-select.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-select.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-steps.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-steps.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-table.mjs +3 -3
- package/fesm2022/shival99-z-ui-components-z-table.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-tabs.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-tabs.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-tags.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-tags.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-tooltip.mjs +10 -4
- package/fesm2022/shival99-z-ui-components-z-tooltip.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-upload.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-upload.mjs.map +1 -1
- package/package.json +5 -1
- package/types/shival99-z-ui-components-z-autocomplete.d.ts +1 -1
- package/types/shival99-z-ui-components-z-avatar.d.ts +10 -2
- package/types/shival99-z-ui-components-z-badge.d.ts +50 -0
- package/types/shival99-z-ui-components-z-calendar.d.ts +5 -5
- package/types/shival99-z-ui-components-z-editor.d.ts +1 -1
- package/types/shival99-z-ui-components-z-modal.d.ts +1 -1
- package/types/shival99-z-ui-components-z-popover.d.ts +2 -0
- package/types/shival99-z-ui-components-z-select.d.ts +2 -2
- package/types/shival99-z-ui-components-z-table.d.ts +1 -1
- package/types/shival99-z-ui-components-z-tooltip.d.ts +2 -1
- package/types/shival99-z-ui-components-z-upload.d.ts +3 -3
|
@@ -796,6 +796,7 @@ class ZPopoverDirective {
|
|
|
796
796
|
_scrollSubscription = null;
|
|
797
797
|
_viewportResizeSubscription = null;
|
|
798
798
|
_resizeObserver = null;
|
|
799
|
+
_mutationObserver = null;
|
|
799
800
|
_hideTimeout = null;
|
|
800
801
|
_viewportResizeTimeouts = [];
|
|
801
802
|
_positionFrame = null;
|
|
@@ -922,6 +923,8 @@ class ZPopoverDirective {
|
|
|
922
923
|
this._viewportSettlingUntil = 0;
|
|
923
924
|
this._resizeObserver?.disconnect();
|
|
924
925
|
this._resizeObserver = null;
|
|
926
|
+
this._mutationObserver?.disconnect();
|
|
927
|
+
this._mutationObserver = null;
|
|
925
928
|
this._cancelScheduledPositionUpdate();
|
|
926
929
|
this._overlayRef?.dispose();
|
|
927
930
|
this._overlayRef = null;
|
|
@@ -1043,6 +1046,10 @@ class ZPopoverDirective {
|
|
|
1043
1046
|
if (!this._overlayRef?.hasAttached()) {
|
|
1044
1047
|
return;
|
|
1045
1048
|
}
|
|
1049
|
+
if (!this._isTriggerAvailable()) {
|
|
1050
|
+
this.hideImmediate();
|
|
1051
|
+
return;
|
|
1052
|
+
}
|
|
1046
1053
|
if (this._shouldDeferForMobileKeyboard()) {
|
|
1047
1054
|
this._markViewportSettling();
|
|
1048
1055
|
this._scheduleSettledPositionUpdate();
|
|
@@ -1131,8 +1138,13 @@ class ZPopoverDirective {
|
|
|
1131
1138
|
}
|
|
1132
1139
|
_setupResizeObserver() {
|
|
1133
1140
|
this._resizeObserver?.disconnect();
|
|
1141
|
+
this._mutationObserver?.disconnect();
|
|
1134
1142
|
this._resizeObserver = new ResizeObserver(() => {
|
|
1135
1143
|
if (this._overlayRef && this._isVisible()) {
|
|
1144
|
+
if (!this._isTriggerAvailable()) {
|
|
1145
|
+
this.hideImmediate();
|
|
1146
|
+
return;
|
|
1147
|
+
}
|
|
1136
1148
|
const widthConfig = this._getWidthConfig();
|
|
1137
1149
|
if (widthConfig.width) {
|
|
1138
1150
|
this._overlayRef.updateSize(widthConfig);
|
|
@@ -1149,6 +1161,25 @@ class ZPopoverDirective {
|
|
|
1149
1161
|
if (wrapper && wrapper !== document.body) {
|
|
1150
1162
|
this._resizeObserver.observe(wrapper);
|
|
1151
1163
|
}
|
|
1164
|
+
this._mutationObserver = new MutationObserver(() => {
|
|
1165
|
+
if (!this._isVisible()) {
|
|
1166
|
+
return;
|
|
1167
|
+
}
|
|
1168
|
+
if (!this._isTriggerAvailable()) {
|
|
1169
|
+
this.hideImmediate();
|
|
1170
|
+
return;
|
|
1171
|
+
}
|
|
1172
|
+
this._schedulePositionUpdate(true);
|
|
1173
|
+
});
|
|
1174
|
+
let observedElement = originElement;
|
|
1175
|
+
while (observedElement) {
|
|
1176
|
+
this._mutationObserver.observe(observedElement, {
|
|
1177
|
+
attributes: true,
|
|
1178
|
+
attributeFilter: ['aria-hidden', 'class', 'hidden', 'style'],
|
|
1179
|
+
childList: true,
|
|
1180
|
+
});
|
|
1181
|
+
observedElement = observedElement.parentElement;
|
|
1182
|
+
}
|
|
1152
1183
|
}
|
|
1153
1184
|
_schedulePositionUpdate(force = false) {
|
|
1154
1185
|
if (this._positionFrame !== null) {
|
|
@@ -1180,6 +1211,10 @@ class ZPopoverDirective {
|
|
|
1180
1211
|
if (!this._overlayRef?.hasAttached()) {
|
|
1181
1212
|
return;
|
|
1182
1213
|
}
|
|
1214
|
+
if (!this._isTriggerAvailable()) {
|
|
1215
|
+
this.hideImmediate();
|
|
1216
|
+
return;
|
|
1217
|
+
}
|
|
1183
1218
|
if (isMobilePopoverViewport() && this.zSticky() && !this._isTriggerVisibleInViewport()) {
|
|
1184
1219
|
return;
|
|
1185
1220
|
}
|
|
@@ -1259,6 +1294,20 @@ class ZPopoverDirective {
|
|
|
1259
1294
|
viewportHeight: visualViewport?.height ?? window.innerHeight,
|
|
1260
1295
|
});
|
|
1261
1296
|
}
|
|
1297
|
+
_isTriggerAvailable() {
|
|
1298
|
+
let element = this._getTriggerElement();
|
|
1299
|
+
if (!element.isConnected) {
|
|
1300
|
+
return false;
|
|
1301
|
+
}
|
|
1302
|
+
while (element) {
|
|
1303
|
+
const style = window.getComputedStyle(element);
|
|
1304
|
+
if (style.display === 'none' || style.visibility === 'hidden') {
|
|
1305
|
+
return false;
|
|
1306
|
+
}
|
|
1307
|
+
element = element.parentElement;
|
|
1308
|
+
}
|
|
1309
|
+
return true;
|
|
1310
|
+
}
|
|
1262
1311
|
_setupPopoverHover() {
|
|
1263
1312
|
const overlayElement = this._overlayRef?.overlayElement;
|
|
1264
1313
|
if (!overlayElement) {
|
|
@@ -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 _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._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._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\n this._resizeObserver = new ResizeObserver(() => {\n if (this._overlayRef && this._isVisible()) {\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\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 (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 _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; // đã 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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"}
|