@shival99/z-ui 2.4.4 → 2.4.5

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/README.md CHANGED
@@ -160,7 +160,7 @@ Example - Using Inter font:
160
160
 
161
161
  ```css
162
162
  :root {
163
- --radius: 0.625rem;
163
+ --radius: 0.375rem;
164
164
  --background: oklch(1 0 0);
165
165
  --foreground: oklch(0.145 0.031 264.539);
166
166
  --card: oklch(1 0 0);
@@ -1,7 +1,7 @@
1
1
  @import './global.css';
2
2
 
3
3
  :root {
4
- --radius: 0.625rem;
4
+ --radius: 0.375rem;
5
5
  --font-sans: 'Outfit', system-ui, -apple-system, sans-serif;
6
6
  --shadow-0: 0px 4px 8px 0px #02020312;
7
7
  --shadow-1: 0px 4px 8px 0px #02020329;
@@ -1,7 +1,7 @@
1
1
  /* GRAY THEME */
2
2
  @layer z-theme {
3
3
  :root[z-theme='gray'] {
4
- --radius: 0.625rem;
4
+ --radius: 0.375rem;
5
5
  --background: oklch(1 0 0);
6
6
  --foreground: oklch(0.13 0.028 261.692);
7
7
  --card: oklch(1 0 0);
@@ -2,7 +2,7 @@
2
2
  @layer z-theme {
3
3
  :root,
4
4
  :root[z-theme='green'] {
5
- --radius: 0.65rem;
5
+ --radius: 0.375rem;
6
6
  --background: oklch(1 0 0);
7
7
  --foreground: oklch(0.141 0.005 285.823);
8
8
  --card: oklch(1 0 0);
@@ -1,7 +1,7 @@
1
1
  /* HOSPITAL THEME - Main color: #2e37a4 */
2
2
  @layer z-theme {
3
3
  :root[z-theme='hospital'] {
4
- --radius: 0.65rem;
4
+ --radius: 0.375rem;
5
5
  --background: oklch(1 0 0);
6
6
  --foreground: oklch(0.2 0.05 264);
7
7
  --card: oklch(1 0 0);
@@ -1,7 +1,7 @@
1
1
  /* NEUTRAL THEME */
2
2
  @layer z-theme {
3
3
  :root[z-theme='neutral'] {
4
- --radius: 0.625rem;
4
+ --radius: 0.375rem;
5
5
  --background: oklch(1 0 0);
6
6
  --foreground: oklch(0.145 0 0);
7
7
  --card: oklch(1 0 0);
@@ -1,7 +1,7 @@
1
1
  /* ORANGE THEME */
2
2
  @layer z-theme {
3
3
  :root[z-theme='orange'] {
4
- --radius: 0.65rem;
4
+ --radius: 0.375rem;
5
5
  --background: oklch(1 0 0);
6
6
  --foreground: oklch(0.141 0.005 285.823);
7
7
  --card: oklch(1 0 0);
@@ -1,7 +1,7 @@
1
1
  /* SLATE THEME */
2
2
  @layer z-theme {
3
3
  :root[z-theme='slate'] {
4
- --radius: 0.625rem;
4
+ --radius: 0.375rem;
5
5
  --background: oklch(1 0 0);
6
6
  --foreground: oklch(0.129 0.042 264.695);
7
7
  --card: oklch(1 0 0);
@@ -1,7 +1,7 @@
1
1
  /* STONE THEME */
2
2
  @layer z-theme {
3
3
  :root[z-theme='stone'] {
4
- --radius: 0.625rem;
4
+ --radius: 0.375rem;
5
5
  --background: oklch(1 0 0);
6
6
  --foreground: oklch(0.147 0.004 49.25);
7
7
  --card: oklch(1 0 0);
@@ -1,7 +1,7 @@
1
1
  /* VIOLET THEME */
2
2
  @layer z-theme {
3
3
  :root[z-theme='violet'] {
4
- --radius: 0.65rem;
4
+ --radius: 0.375rem;
5
5
  --background: oklch(1 0 0);
6
6
  --foreground: oklch(0.141 0.005 285.823);
7
7
  --card: oklch(1 0 0);
@@ -1,7 +1,7 @@
1
1
  /* ZINC THEME */
2
2
  @layer z-theme {
3
3
  :root[z-theme='zinc'] {
4
- --radius: 0.625rem;
4
+ --radius: 0.375rem;
5
5
  --background: oklch(1 0 0);
6
6
  --foreground: oklch(0.141 0.005 285.823);
7
7
  --card: oklch(1 0 0);
@@ -47,7 +47,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
47
47
  }]
48
48
  }], propDecorators: { zValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "zValue", required: false }] }] } });
49
49
 
50
- const zButtonGroupVariants = cva('inline-flex [--radius:var(--radius)]', {
50
+ const zButtonGroupVariants = cva('inline-flex', {
51
51
  variants: {
52
52
  zOrientation: {
53
53
  horizontal: [
@@ -1 +1 @@
1
- {"version":3,"file":"shival99-z-ui-components-z-button-group.mjs","sources":["../../../../libs/core-ui/components/z-button-group/z-button-group.define.ts","../../../../libs/core-ui/components/z-button-group/z-button-group-item.directive.ts","../../../../libs/core-ui/components/z-button-group/z-button-group.variants.ts","../../../../libs/core-ui/components/z-button-group/z-button-group-separator.component.ts","../../../../libs/core-ui/components/z-button-group/z-button-group.component.ts","../../../../libs/core-ui/components/z-button-group/shival99-z-ui-components-z-button-group.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport type { ZButtonGroupHost } from './z-button-group.types';\n\nexport const Z_BUTTON_GROUP = new InjectionToken<ZButtonGroupHost>('Z_BUTTON_GROUP');\n","import { computed, Directive, inject, input, signal } from '@angular/core';\nimport { Z_BUTTON_GROUP } from './z-button-group.define';\nimport type { ZButtonGroupValue } from './z-button-group.types';\n\n@Directive({\n selector: '[z-button-group-item]',\n standalone: true,\n host: {\n '[class.z-button-group-item-active]': 'isActive()',\n '(click)': 'onClick()',\n },\n exportAs: 'zButtonGroupItem',\n})\nexport class ZButtonGroupItemDirective {\n private readonly _group = inject(Z_BUTTON_GROUP, { optional: true });\n private readonly _index = signal<number>(-1);\n\n /** Khóa ổn định tùy chọn, ưu tiên hơn index khi xác định active. */\n public readonly zValue = input<ZButtonGroupValue>();\n\n private readonly _value = computed<ZButtonGroupValue>(() => this.zValue() ?? this._index());\n\n public readonly isActive = computed(() => {\n if (!this._group) {\n return false;\n }\n return this._group._isItemActive(this._value());\n });\n\n public readonly index = this._index.asReadonly();\n public _setIndex(index: number): void {\n this._index.set(index);\n }\n\n protected onClick(): void {\n if (!this._group) {\n return;\n }\n this._group._selectItem(this._value(), this._index());\n }\n}\n","import { cva } from 'class-variance-authority';\n\nexport const zButtonGroupVariants = cva('inline-flex [--radius:var(--radius)]', {\n variants: {\n zOrientation: {\n horizontal: [\n 'flex-row',\n 'items-center',\n // First child - only left border radius\n '[&>*:first-child]:rounded-r-none!',\n // Last child - only right border radius\n '[&>*:last-child]:rounded-l-none!',\n // Middle children - no border radius\n '[&>*:not(:first-child):not(:last-child)]:rounded-none!',\n // Remove double borders between buttons\n '[&>*:not(:first-child)]:border-l-0!',\n // Handle single child\n '[&>*:only-child]:rounded-lg!',\n '[&>*:only-child]:border-l!',\n // Active item styling - use primary color from theme\n '[&>*.z-button-group-item-active]:bg-primary',\n '[&>*.z-button-group-item-active]:text-primary-foreground',\n '[&>*.z-button-group-item-active]:border-primary',\n '[&>*.z-button-group-item-active]:z-[1]',\n ],\n vertical: [\n 'flex-col',\n 'items-stretch',\n // First child - only top border radius\n '[&>*:first-child]:rounded-b-none!',\n // Last child - only bottom border radius\n '[&>*:last-child]:rounded-t-none!',\n // Middle children - no border radius\n '[&>*:not(:first-child):not(:last-child)]:rounded-none!',\n // Remove double borders between buttons\n '[&>*:not(:first-child)]:border-t-0!',\n // Handle single child\n '[&>*:only-child]:rounded-lg!',\n '[&>*:only-child]:border-t!',\n // Active item styling - use primary color from theme\n '[&>*.z-button-group-item-active]:bg-primary',\n '[&>*.z-button-group-item-active]:text-primary-foreground',\n '[&>*.z-button-group-item-active]:border-primary',\n '[&>*.z-button-group-item-active]:z-[1]',\n ],\n },\n },\n defaultVariants: {\n zOrientation: 'horizontal',\n },\n});\n\nexport const zButtonGroupSeparatorVariants = cva('shrink-0 bg-border', {\n variants: {\n zOrientation: {\n horizontal: 'h-full w-px',\n vertical: 'w-full h-px',\n },\n },\n defaultVariants: {\n zOrientation: 'horizontal',\n },\n});\n","import { ChangeDetectionStrategy, Component, computed, input, ViewEncapsulation } from '@angular/core';\nimport { zMergeClasses } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport type { ZButtonGroupSeparatorVariants } from './z-button-group.types';\nimport { zButtonGroupSeparatorVariants } from './z-button-group.variants';\n\n@Component({\n selector: 'z-button-group-separator',\n standalone: true,\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n role: 'separator',\n '[class]': 'zClasses()',\n },\n exportAs: 'zButtonGroupSeparator',\n})\nexport class ZButtonGroupSeparatorComponent {\n public readonly zClass = input<ClassValue>('');\n public readonly zOrientation = input<ZButtonGroupSeparatorVariants['zOrientation']>('horizontal');\n\n protected readonly zClasses = computed(() =>\n zMergeClasses(\n zButtonGroupSeparatorVariants({\n zOrientation: this.zOrientation(),\n }),\n this.zClass()\n )\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n effect,\n input,\n model,\n output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { zMergeClasses } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport { ZButtonGroupItemDirective } from './z-button-group-item.directive';\nimport { Z_BUTTON_GROUP } from './z-button-group.define';\nimport { type ZButtonGroupHost, type ZButtonGroupValue, type ZButtonGroupVariants } from './z-button-group.types';\nimport { zButtonGroupVariants } from './z-button-group.variants';\n\n@Component({\n selector: 'z-button-group',\n standalone: true,\n template: `\n <ng-content />\n `,\n providers: [\n {\n provide: Z_BUTTON_GROUP,\n useExisting: ZButtonGroupComponent,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n role: 'group',\n '[class]': 'zClasses()',\n },\n exportAs: 'zButtonGroup',\n})\nexport class ZButtonGroupComponent implements ZButtonGroupHost {\n public readonly zClass = input<ClassValue>('');\n public readonly zOrientation = input<ZButtonGroupVariants['zOrientation']>('horizontal');\n\n public readonly zActive = model<ZButtonGroupValue | null>(null);\n public readonly zActiveIndexChange = output<number | null>();\n public readonly zActiveValueChange = output<ZButtonGroupValue | null>();\n private readonly _items = contentChildren(ZButtonGroupItemDirective);\n\n protected readonly zClasses = computed(() =>\n zMergeClasses(\n zButtonGroupVariants({\n zOrientation: this.zOrientation(),\n }),\n this.zClass()\n )\n );\n\n constructor() {\n effect(() => {\n const items = this._items();\n items.forEach((item, index) => {\n item._setIndex(index);\n });\n });\n }\n\n public _selectItem(value: ZButtonGroupValue, index: number): void {\n const newValue = this.zActive() === value ? null : value;\n this.zActive.set(newValue);\n this.zActiveIndexChange.emit(newValue === null ? null : index);\n this.zActiveValueChange.emit(newValue);\n }\n\n public _isItemActive(value: ZButtonGroupValue): boolean {\n return this.zActive() === value;\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-button-group.mjs","sources":["../../../../libs/core-ui/components/z-button-group/z-button-group.define.ts","../../../../libs/core-ui/components/z-button-group/z-button-group-item.directive.ts","../../../../libs/core-ui/components/z-button-group/z-button-group.variants.ts","../../../../libs/core-ui/components/z-button-group/z-button-group-separator.component.ts","../../../../libs/core-ui/components/z-button-group/z-button-group.component.ts","../../../../libs/core-ui/components/z-button-group/shival99-z-ui-components-z-button-group.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport type { ZButtonGroupHost } from './z-button-group.types';\n\nexport const Z_BUTTON_GROUP = new InjectionToken<ZButtonGroupHost>('Z_BUTTON_GROUP');\n","import { computed, Directive, inject, input, signal } from '@angular/core';\nimport { Z_BUTTON_GROUP } from './z-button-group.define';\nimport type { ZButtonGroupValue } from './z-button-group.types';\n\n@Directive({\n selector: '[z-button-group-item]',\n standalone: true,\n host: {\n '[class.z-button-group-item-active]': 'isActive()',\n '(click)': 'onClick()',\n },\n exportAs: 'zButtonGroupItem',\n})\nexport class ZButtonGroupItemDirective {\n private readonly _group = inject(Z_BUTTON_GROUP, { optional: true });\n private readonly _index = signal<number>(-1);\n\n /** Khóa ổn định tùy chọn, ưu tiên hơn index khi xác định active. */\n public readonly zValue = input<ZButtonGroupValue>();\n\n private readonly _value = computed<ZButtonGroupValue>(() => this.zValue() ?? this._index());\n\n public readonly isActive = computed(() => {\n if (!this._group) {\n return false;\n }\n return this._group._isItemActive(this._value());\n });\n\n public readonly index = this._index.asReadonly();\n public _setIndex(index: number): void {\n this._index.set(index);\n }\n\n protected onClick(): void {\n if (!this._group) {\n return;\n }\n this._group._selectItem(this._value(), this._index());\n }\n}\n","import { cva } from 'class-variance-authority';\n\nexport const zButtonGroupVariants = cva('inline-flex', {\n variants: {\n zOrientation: {\n horizontal: [\n 'flex-row',\n 'items-center',\n // First child - only left border radius\n '[&>*:first-child]:rounded-r-none!',\n // Last child - only right border radius\n '[&>*:last-child]:rounded-l-none!',\n // Middle children - no border radius\n '[&>*:not(:first-child):not(:last-child)]:rounded-none!',\n // Remove double borders between buttons\n '[&>*:not(:first-child)]:border-l-0!',\n // Handle single child\n '[&>*:only-child]:rounded-lg!',\n '[&>*:only-child]:border-l!',\n // Active item styling - use primary color from theme\n '[&>*.z-button-group-item-active]:bg-primary',\n '[&>*.z-button-group-item-active]:text-primary-foreground',\n '[&>*.z-button-group-item-active]:border-primary',\n '[&>*.z-button-group-item-active]:z-[1]',\n ],\n vertical: [\n 'flex-col',\n 'items-stretch',\n // First child - only top border radius\n '[&>*:first-child]:rounded-b-none!',\n // Last child - only bottom border radius\n '[&>*:last-child]:rounded-t-none!',\n // Middle children - no border radius\n '[&>*:not(:first-child):not(:last-child)]:rounded-none!',\n // Remove double borders between buttons\n '[&>*:not(:first-child)]:border-t-0!',\n // Handle single child\n '[&>*:only-child]:rounded-lg!',\n '[&>*:only-child]:border-t!',\n // Active item styling - use primary color from theme\n '[&>*.z-button-group-item-active]:bg-primary',\n '[&>*.z-button-group-item-active]:text-primary-foreground',\n '[&>*.z-button-group-item-active]:border-primary',\n '[&>*.z-button-group-item-active]:z-[1]',\n ],\n },\n },\n defaultVariants: {\n zOrientation: 'horizontal',\n },\n});\n\nexport const zButtonGroupSeparatorVariants = cva('shrink-0 bg-border', {\n variants: {\n zOrientation: {\n horizontal: 'h-full w-px',\n vertical: 'w-full h-px',\n },\n },\n defaultVariants: {\n zOrientation: 'horizontal',\n },\n});\n","import { ChangeDetectionStrategy, Component, computed, input, ViewEncapsulation } from '@angular/core';\nimport { zMergeClasses } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport type { ZButtonGroupSeparatorVariants } from './z-button-group.types';\nimport { zButtonGroupSeparatorVariants } from './z-button-group.variants';\n\n@Component({\n selector: 'z-button-group-separator',\n standalone: true,\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n role: 'separator',\n '[class]': 'zClasses()',\n },\n exportAs: 'zButtonGroupSeparator',\n})\nexport class ZButtonGroupSeparatorComponent {\n public readonly zClass = input<ClassValue>('');\n public readonly zOrientation = input<ZButtonGroupSeparatorVariants['zOrientation']>('horizontal');\n\n protected readonly zClasses = computed(() =>\n zMergeClasses(\n zButtonGroupSeparatorVariants({\n zOrientation: this.zOrientation(),\n }),\n this.zClass()\n )\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n effect,\n input,\n model,\n output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { zMergeClasses } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport { ZButtonGroupItemDirective } from './z-button-group-item.directive';\nimport { Z_BUTTON_GROUP } from './z-button-group.define';\nimport { type ZButtonGroupHost, type ZButtonGroupValue, type ZButtonGroupVariants } from './z-button-group.types';\nimport { zButtonGroupVariants } from './z-button-group.variants';\n\n@Component({\n selector: 'z-button-group',\n standalone: true,\n template: `\n <ng-content />\n `,\n providers: [\n {\n provide: Z_BUTTON_GROUP,\n useExisting: ZButtonGroupComponent,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n role: 'group',\n '[class]': 'zClasses()',\n },\n exportAs: 'zButtonGroup',\n})\nexport class ZButtonGroupComponent implements ZButtonGroupHost {\n public readonly zClass = input<ClassValue>('');\n public readonly zOrientation = input<ZButtonGroupVariants['zOrientation']>('horizontal');\n\n public readonly zActive = model<ZButtonGroupValue | null>(null);\n public readonly zActiveIndexChange = output<number | null>();\n public readonly zActiveValueChange = output<ZButtonGroupValue | null>();\n private readonly _items = contentChildren(ZButtonGroupItemDirective);\n\n protected readonly zClasses = computed(() =>\n zMergeClasses(\n zButtonGroupVariants({\n zOrientation: this.zOrientation(),\n }),\n this.zClass()\n )\n );\n\n constructor() {\n effect(() => {\n const items = this._items();\n items.forEach((item, index) => {\n item._setIndex(index);\n });\n });\n }\n\n public _selectItem(value: ZButtonGroupValue, index: number): void {\n const newValue = this.zActive() === value ? null : value;\n this.zActive.set(newValue);\n this.zActiveIndexChange.emit(newValue === null ? null : index);\n this.zActiveValueChange.emit(newValue);\n }\n\n public _isItemActive(value: ZButtonGroupValue): boolean {\n return this.zActive() === value;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAGa,cAAc,GAAG,IAAI,cAAc,CAAmB,gBAAgB;;MCUtE,yBAAyB,CAAA;IACnB,MAAM,GAAG,MAAM,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACnD,IAAA,MAAM,GAAG,MAAM,CAAS,CAAC,CAAC;+EAAC;;AAG5B,IAAA,MAAM,GAAG,KAAK;0FAAqB;AAElC,IAAA,MAAM,GAAG,QAAQ,CAAoB,MAAM,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE;+EAAC;AAE3E,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AACvC,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAChB,YAAA,OAAO,KAAK;QACd;QACA,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IACjD,CAAC;iFAAC;AAEc,IAAA,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;AACzC,IAAA,SAAS,CAAC,KAAa,EAAA;AAC5B,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;IACxB;IAEU,OAAO,GAAA;AACf,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB;QACF;AACA,QAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACvD;uGA1BW,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kCAAA,EAAA,YAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBATrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACJ,wBAAA,oCAAoC,EAAE,YAAY;AAClD,wBAAA,SAAS,EAAE,WAAW;AACvB,qBAAA;AACD,oBAAA,QAAQ,EAAE,kBAAkB;AAC7B,iBAAA;;;ACVM,MAAM,oBAAoB,GAAG,GAAG,CAAC,aAAa,EAAE;AACrD,IAAA,QAAQ,EAAE;AACR,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE;gBACV,UAAU;gBACV,cAAc;;gBAEd,mCAAmC;;gBAEnC,kCAAkC;;gBAElC,wDAAwD;;gBAExD,qCAAqC;;gBAErC,8BAA8B;gBAC9B,4BAA4B;;gBAE5B,6CAA6C;gBAC7C,0DAA0D;gBAC1D,iDAAiD;gBACjD,wCAAwC;AACzC,aAAA;AACD,YAAA,QAAQ,EAAE;gBACR,UAAU;gBACV,eAAe;;gBAEf,mCAAmC;;gBAEnC,kCAAkC;;gBAElC,wDAAwD;;gBAExD,qCAAqC;;gBAErC,8BAA8B;gBAC9B,4BAA4B;;gBAE5B,6CAA6C;gBAC7C,0DAA0D;gBAC1D,iDAAiD;gBACjD,wCAAwC;AACzC,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,YAAY,EAAE,YAAY;AAC3B,KAAA;AACF,CAAA;AAEM,MAAM,6BAA6B,GAAG,GAAG,CAAC,oBAAoB,EAAE;AACrE,IAAA,QAAQ,EAAE;AACR,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,aAAa;AACzB,YAAA,QAAQ,EAAE,aAAa;AACxB,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,YAAY,EAAE,YAAY;AAC3B,KAAA;AACF,CAAA;;MC5CY,8BAA8B,CAAA;IACzB,MAAM,GAAG,KAAK,CAAa,EAAE;+EAAC;IAC9B,YAAY,GAAG,KAAK,CAAgD,YAAY;qFAAC;IAE9E,QAAQ,GAAG,QAAQ,CAAC,MACrC,aAAa,CACX,6BAA6B,CAAC;AAC5B,QAAA,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE;AAClC,KAAA,CAAC,EACF,IAAI,CAAC,MAAM,EAAE,CACd;iFACF;uGAXU,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA9B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,8BAA8B,meAT/B,CAAA,CAAE,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FASD,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAZ1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA,CAAE;oBACZ,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,oBAAA,IAAI,EAAE;AACJ,wBAAA,IAAI,EAAE,WAAW;AACjB,wBAAA,SAAS,EAAE,YAAY;AACxB,qBAAA;AACD,oBAAA,QAAQ,EAAE,uBAAuB;AAClC,iBAAA;;;MCqBY,qBAAqB,CAAA;IAChB,MAAM,GAAG,KAAK,CAAa,EAAE;+EAAC;IAC9B,YAAY,GAAG,KAAK,CAAuC,YAAY;qFAAC;IAExE,OAAO,GAAG,KAAK,CAA2B,IAAI;gFAAC;IAC/C,kBAAkB,GAAG,MAAM,EAAiB;IAC5C,kBAAkB,GAAG,MAAM,EAA4B;IACtD,MAAM,GAAG,eAAe,CAAC,yBAAyB;+EAAC;IAEjD,QAAQ,GAAG,QAAQ,CAAC,MACrC,aAAa,CACX,oBAAoB,CAAC;AACnB,QAAA,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE;AAClC,KAAA,CAAC,EACF,IAAI,CAAC,MAAM,EAAE,CACd;iFACF;AAED,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE;YAC3B,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;AAC5B,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AACvB,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;IAEO,WAAW,CAAC,KAAwB,EAAE,KAAa,EAAA;AACxD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,KAAK;AACxD,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC1B,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;AAC9D,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;IACxC;AAEO,IAAA,aAAa,CAAC,KAAwB,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,KAAK;IACjC;uGApCW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,YAAA,EAAA,EAAA,EAAA,SAAA,EAdrB;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,WAAW,EAAE,qBAAqB;AACnC,aAAA;AACF,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,SAAA,EAgByC,yBAAyB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAxBzD;;AAET,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAeU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBApBjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE;;AAET,EAAA,CAAA;AACD,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,cAAc;AACvB,4BAAA,WAAW,EAAA,qBAAuB;AACnC,yBAAA;AACF,qBAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,oBAAA,IAAI,EAAE;AACJ,wBAAA,IAAI,EAAE,OAAO;AACb,wBAAA,SAAS,EAAE,YAAY;AACxB,qBAAA;AACD,oBAAA,QAAQ,EAAE,cAAc;AACzB,iBAAA;0lBAQ2C,yBAAyB,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AC7CrE;;AAEG;;"}
@@ -55,7 +55,7 @@ const zPopoverExitVariants = cva('z-animate-out z-fade-out z-duration-200', {
55
55
  zPosition: 'bottom',
56
56
  },
57
57
  });
58
- const zPopoverContentVariants = cva('relative z-10 overflow-hidden [border-radius:inherit] bg-popover', {
58
+ const zPopoverContentVariants = cva('relative z-10 [border-radius:inherit] bg-popover', {
59
59
  variants: {},
60
60
  defaultVariants: {},
61
61
  });
@@ -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 overflow-hidden [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 _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._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 if (!this._overlayRef) {\n return;\n }\n\n this._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 (!triggerEl.contains(target) && !this._isNestedPopoverTarget(target)) {\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 (this._overlayRef !== overlayRef || this._componentRef !== componentRef || this._destroyRef.destroyed) {\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): boolean {\n const overlayElement = this._overlayRef?.overlayElement;\n if (!overlayElement) {\n return false;\n }\n\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 (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 _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._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 if (!this._overlayRef) {\n return;\n }\n\n this._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 const overlayElement = this._overlayRef?.overlayElement;\n if (overlayElement?.contains(target)) {\n return false;\n }\n if (this._isNestedPopoverTarget(target)) {\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 if (!this._overlayRef) {\n this._overlayRef = this._createOverlay();\n this._setupOutsideClick();\n }\n\n this._setupScrollClose();\n\n this._componentRef = this._overlayRef.attach(ZPopoverContentComponent);\n\n this._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 (!this._overlayRef || !this._componentRef) {\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): boolean {\n const overlayElement = this._overlayRef?.overlayElement;\n if (!overlayElement) {\n return false;\n }\n\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 (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 _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._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 if (!this._overlayRef) {\n return;\n }\n\n this._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 (!triggerEl.contains(target) && !this._isNestedPopoverTarget(target)) {\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 (this._overlayRef !== overlayRef || this._componentRef !== componentRef || this._destroyRef.destroyed) {\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): boolean {\n const overlayElement = this._overlayRef?.overlayElement;\n if (!overlayElement) {\n return false;\n }\n\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 (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 _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._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 if (!this._overlayRef) {\n return;\n }\n\n this._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 const overlayElement = this._overlayRef?.overlayElement;\n if (overlayElement?.contains(target)) {\n return false;\n }\n if (this._isNestedPopoverTarget(target)) {\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 if (!this._overlayRef) {\n this._overlayRef = this._createOverlay();\n this._setupOutsideClick();\n }\n\n this._setupScrollClose();\n\n this._componentRef = this._overlayRef.attach(ZPopoverContentComponent);\n\n this._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 (!this._overlayRef || !this._componentRef) {\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): boolean {\n const overlayElement = this._overlayRef?.overlayElement;\n if (!overlayElement) {\n return false;\n }\n\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 (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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shival99/z-ui",
3
- "version": "2.4.4",
3
+ "version": "2.4.5",
4
4
  "description": "Z-UI: Modern Angular UI Component Library - A comprehensive, high-performance design system built with Angular 22, featuring 40+ customizable components with dark mode, accessibility, and enterprise-ready features.",
5
5
  "keywords": [
6
6
  "angular",
@@ -252,7 +252,7 @@ declare class ZModalComponent<T, U> implements OnDestroy, AfterViewChecked {
252
252
  protected readonly effectiveOkText: _angular_core.Signal<string | null | undefined>;
253
253
  protected readonly effectiveCancelText: _angular_core.Signal<string | null | undefined>;
254
254
  protected readonly effectiveOkDestructive: _angular_core.Signal<boolean | undefined>;
255
- protected readonly effectiveTypeOk: _angular_core.Signal<"info" | "warning" | "error" | "default" | "primary" | "secondary" | "destructive" | "destructive-heartbeat" | "success" | "outline" | "outline-primary" | "outline-secondary" | "outline-success" | "outline-info" | "outline-warning" | "outline-error" | "outline-destructive" | "outline-shimmer" | "outline-success-secondary" | "outline-info-secondary" | "outline-warning-secondary" | "outline-error-secondary" | "outline-destructive-secondary" | "outline-primary-secondary" | "outline-primary-soft" | "outline-success-soft" | "outline-info-soft" | "outline-warning-soft" | "outline-error-soft" | "outline-destructive-soft" | "outline-primary-soft-border" | "outline-success-soft-border" | "outline-info-soft-border" | "outline-warning-soft-border" | "outline-error-soft-border" | "outline-destructive-soft-border" | "ghost" | "ghost-primary" | "ghost-success" | "ghost-info" | "ghost-warning" | "ghost-error" | "ghost-destructive" | "subtle" | "subtle-primary" | "subtle-success" | "subtle-info" | "subtle-warning" | "subtle-destructive" | "subtle-outline" | "subtle-primary-outline" | "subtle-success-outline" | "subtle-info-outline" | "subtle-warning-outline" | "subtle-destructive-outline" | "link" | null | undefined>;
255
+ protected readonly effectiveTypeOk: _angular_core.Signal<"info" | "warning" | "error" | "link" | "default" | "primary" | "secondary" | "destructive" | "destructive-heartbeat" | "success" | "outline" | "outline-primary" | "outline-secondary" | "outline-success" | "outline-info" | "outline-warning" | "outline-error" | "outline-destructive" | "outline-shimmer" | "outline-success-secondary" | "outline-info-secondary" | "outline-warning-secondary" | "outline-error-secondary" | "outline-destructive-secondary" | "outline-primary-secondary" | "outline-primary-soft" | "outline-success-soft" | "outline-info-soft" | "outline-warning-soft" | "outline-error-soft" | "outline-destructive-soft" | "outline-primary-soft-border" | "outline-success-soft-border" | "outline-info-soft-border" | "outline-warning-soft-border" | "outline-error-soft-border" | "outline-destructive-soft-border" | "ghost" | "ghost-primary" | "ghost-success" | "ghost-info" | "ghost-warning" | "ghost-error" | "ghost-destructive" | "subtle" | "subtle-primary" | "subtle-success" | "subtle-info" | "subtle-warning" | "subtle-destructive" | "subtle-outline" | "subtle-primary-outline" | "subtle-success-outline" | "subtle-info-outline" | "subtle-warning-outline" | "subtle-destructive-outline" | null | undefined>;
256
256
  protected readonly effectiveOkDisabled: _angular_core.Signal<boolean | undefined>;
257
257
  protected readonly effectiveLoading: _angular_core.Signal<boolean>;
258
258
  protected readonly effectiveContentLoading: _angular_core.Signal<boolean>;