@shival99/z-ui 2.5.7 → 2.5.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/fesm2022/shival99-z-ui-components-z-autocomplete.mjs +1 -1
  2. package/fesm2022/shival99-z-ui-components-z-autocomplete.mjs.map +1 -1
  3. package/fesm2022/shival99-z-ui-components-z-avatar.mjs +45 -10
  4. package/fesm2022/shival99-z-ui-components-z-avatar.mjs.map +1 -1
  5. package/fesm2022/shival99-z-ui-components-z-badge.mjs +94 -0
  6. package/fesm2022/shival99-z-ui-components-z-badge.mjs.map +1 -0
  7. package/fesm2022/shival99-z-ui-components-z-calendar.mjs +9 -4
  8. package/fesm2022/shival99-z-ui-components-z-calendar.mjs.map +1 -1
  9. package/fesm2022/shival99-z-ui-components-z-dropdown-menu.mjs +1 -1
  10. package/fesm2022/shival99-z-ui-components-z-dropdown-menu.mjs.map +1 -1
  11. package/fesm2022/shival99-z-ui-components-z-editor.mjs +2 -2
  12. package/fesm2022/shival99-z-ui-components-z-editor.mjs.map +1 -1
  13. package/fesm2022/shival99-z-ui-components-z-gallery.mjs +2 -2
  14. package/fesm2022/shival99-z-ui-components-z-gallery.mjs.map +1 -1
  15. package/fesm2022/shival99-z-ui-components-z-input.mjs +1 -1
  16. package/fesm2022/shival99-z-ui-components-z-input.mjs.map +1 -1
  17. package/fesm2022/shival99-z-ui-components-z-kanban.mjs +1 -1
  18. package/fesm2022/shival99-z-ui-components-z-kanban.mjs.map +1 -1
  19. package/fesm2022/shival99-z-ui-components-z-menu.mjs +2 -2
  20. package/fesm2022/shival99-z-ui-components-z-menu.mjs.map +1 -1
  21. package/fesm2022/shival99-z-ui-components-z-modal.mjs +1 -1
  22. package/fesm2022/shival99-z-ui-components-z-modal.mjs.map +1 -1
  23. package/fesm2022/shival99-z-ui-components-z-popover.mjs +49 -0
  24. package/fesm2022/shival99-z-ui-components-z-popover.mjs.map +1 -1
  25. package/fesm2022/shival99-z-ui-components-z-select.mjs +1 -1
  26. package/fesm2022/shival99-z-ui-components-z-select.mjs.map +1 -1
  27. package/fesm2022/shival99-z-ui-components-z-steps.mjs +1 -1
  28. package/fesm2022/shival99-z-ui-components-z-steps.mjs.map +1 -1
  29. package/fesm2022/shival99-z-ui-components-z-table.mjs +3 -3
  30. package/fesm2022/shival99-z-ui-components-z-table.mjs.map +1 -1
  31. package/fesm2022/shival99-z-ui-components-z-tabs.mjs +1 -1
  32. package/fesm2022/shival99-z-ui-components-z-tabs.mjs.map +1 -1
  33. package/fesm2022/shival99-z-ui-components-z-tags.mjs +1 -1
  34. package/fesm2022/shival99-z-ui-components-z-tags.mjs.map +1 -1
  35. package/fesm2022/shival99-z-ui-components-z-tooltip.mjs +10 -4
  36. package/fesm2022/shival99-z-ui-components-z-tooltip.mjs.map +1 -1
  37. package/fesm2022/shival99-z-ui-components-z-upload.mjs +1 -1
  38. package/fesm2022/shival99-z-ui-components-z-upload.mjs.map +1 -1
  39. package/package.json +5 -1
  40. package/types/shival99-z-ui-components-z-autocomplete.d.ts +1 -1
  41. package/types/shival99-z-ui-components-z-avatar.d.ts +10 -2
  42. package/types/shival99-z-ui-components-z-badge.d.ts +50 -0
  43. package/types/shival99-z-ui-components-z-calendar.d.ts +5 -5
  44. package/types/shival99-z-ui-components-z-editor.d.ts +1 -1
  45. package/types/shival99-z-ui-components-z-modal.d.ts +1 -1
  46. package/types/shival99-z-ui-components-z-popover.d.ts +2 -0
  47. package/types/shival99-z-ui-components-z-select.d.ts +2 -2
  48. package/types/shival99-z-ui-components-z-table.d.ts +1 -1
  49. package/types/shival99-z-ui-components-z-tooltip.d.ts +2 -1
  50. package/types/shival99-z-ui-components-z-upload.d.ts +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"shival99-z-ui-components-z-tags.mjs","sources":["../../../../libs/core-ui/components/z-tags/z-tags.variants.ts","../../../../libs/core-ui/components/z-tags/pipes/z-tag-classes.pipe.ts","../../../../libs/core-ui/components/z-tags/pipes/z-tag-closable.pipe.ts","../../../../libs/core-ui/components/z-tags/pipes/z-tag-style.pipe.ts","../../../../libs/core-ui/components/z-tags/z-tags.component.ts","../../../../libs/core-ui/components/z-tags/z-tags.component.html","../../../../libs/core-ui/components/z-tags/directives/z-tags.directive.ts","../../../../libs/core-ui/components/z-tags/shival99-z-ui-components-z-tags.ts"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const zTagsContainerVariants = cva(['flex flex-wrap items-center'], {\n variants: {\n zSize: {\n sm: 'gap-1',\n default: 'gap-1.5',\n lg: 'gap-2',\n },\n },\n defaultVariants: {\n zSize: 'default',\n },\n});\n\nexport const zTagVariants = cva(\n [\n 'inline-flex items-center justify-center',\n 'rounded-xs shadow-xs border font-medium',\n 'transition-colors duration-200',\n ],\n {\n variants: {\n zSize: {\n sm: 'px-1.5 py-0.5 text-xs gap-1',\n default: 'px-2 py-1 text-xs gap-1.5',\n lg: 'px-2.5 py-1.5 text-sm gap-2',\n },\n zColor: {\n default: 'bg-muted text-muted-foreground !border-muted-foreground hover:bg-muted/80 dark:!border-border',\n primary: 'bg-primary/10 text-primary !border-primary hover:bg-primary/20 dark:!border-border',\n success:\n 'bg-green-500/10 text-green-600 !border-green-600 hover:bg-green-500/20 dark:text-green-400 dark:!border-border',\n warning:\n 'bg-yellow-500/10 text-yellow-600 !border-yellow-600 hover:bg-yellow-500/20 dark:text-yellow-400 dark:!border-border',\n danger: 'bg-red-500/10 text-red-600 !border-red-600 hover:bg-red-500/20 dark:text-red-400 dark:!border-border',\n info: 'bg-blue-500/10 text-blue-600 !border-blue-600 hover:bg-blue-500/20 dark:text-blue-400 dark:!border-border',\n },\n zClosable: {\n true: '',\n false: '',\n },\n zDisabled: {\n true: 'opacity-50 cursor-not-allowed pointer-events-none',\n false: '',\n },\n },\n defaultVariants: {\n zSize: 'default',\n zColor: 'default',\n zClosable: false,\n zDisabled: false,\n },\n }\n);\n\nexport const zTagCloseButtonVariants = cva(\n [\n 'inline-flex items-center justify-center',\n 'rounded-full cursor-pointer',\n 'transition-colors duration-200',\n 'hover:bg-black/10 dark:hover:bg-white/10',\n 'outline-none focus:outline-none',\n ],\n {\n variants: {\n zSize: {\n sm: 'size-3',\n default: 'size-3.5',\n lg: 'size-4',\n },\n },\n defaultVariants: {\n zSize: 'default',\n },\n }\n);\n\nexport type ZTagsContainerVariants = VariantProps<typeof zTagsContainerVariants>;\nexport type ZTagVariants = VariantProps<typeof zTagVariants>;\nexport type ZTagCloseButtonVariants = VariantProps<typeof zTagCloseButtonVariants>;\n","import { Pipe, type PipeTransform } from '@angular/core';\nimport { zMergeClasses } from '@shival99/z-ui/utils';\nimport type { ZTagConfig, ZTagItem } from '../z-tags.types';\nimport { zTagVariants } from '../z-tags.variants';\n\n@Pipe({\n name: 'zTagClasses',\n standalone: true,\n pure: true,\n})\nexport class ZTagClassesPipe implements PipeTransform {\n public transform(tag: ZTagItem, config: ZTagConfig): string {\n const isClosable = this._isClosable(tag, config);\n const isDisabled = tag.disabled || config.disabled;\n\n if (config.randomColor && !tag.color) {\n const baseClasses = zTagVariants({\n zSize: config.size,\n zColor: 'default',\n zClosable: isClosable,\n zDisabled: isDisabled,\n });\n\n const randomClasses = baseClasses\n .replace('bg-muted', '')\n .replace('text-muted-foreground', '')\n .replace('!border-muted-foreground', '')\n .replace('hover:bg-muted/80', '');\n\n return zMergeClasses(\n randomClasses,\n '[background-color:var(--z-tag-bg)] [color:var(--z-tag-text)] [border-color:var(--z-tag-border)]',\n 'hover:[background-color:var(--z-tag-hover-bg)]',\n 'dark:[background-color:var(--z-tag-dark-bg)] dark:[color:var(--z-tag-dark-text)]',\n 'dark:hover:[background-color:var(--z-tag-dark-hover-bg)]',\n config.tagClass\n );\n }\n\n return zMergeClasses(\n zTagVariants({\n zSize: config.size,\n zColor: tag.color || config.color,\n zClosable: isClosable,\n zDisabled: isDisabled,\n }),\n config.tagClass\n );\n }\n\n private _isClosable(tag: ZTagItem, config: ZTagConfig): boolean {\n if (tag.disabled || config.disabled) {\n return false;\n }\n\n return tag.closable !== undefined ? tag.closable : config.closable;\n }\n}\n","import { Pipe, type PipeTransform } from '@angular/core';\nimport type { ZTagConfig, ZTagItem } from '../z-tags.types';\n\n@Pipe({\n name: 'zTagClosable',\n standalone: true,\n pure: true,\n})\nexport class ZTagClosablePipe implements PipeTransform {\n public transform(tag: ZTagItem, config: ZTagConfig): boolean {\n if (tag.disabled || config.disabled) {\n return false;\n }\n\n return tag.closable !== undefined ? tag.closable : config.closable;\n }\n}\n","import { Pipe, type PipeTransform } from '@angular/core';\nimport type { ZTagConfig, ZTagItem, ZTagRandomColorCache } from '../z-tags.types';\n\n@Pipe({\n name: 'zTagStyle',\n standalone: true,\n pure: true,\n})\nexport class ZTagStylePipe implements PipeTransform {\n public transform(tag: ZTagItem, config: ZTagConfig): Record<string, string> | null {\n if (!config.randomColor || tag.color) {\n return null;\n }\n\n const colors = this._getOrCreateRandomColor(tag.value, config.randomColorCache);\n return {\n '--z-tag-bg': colors.bg,\n '--z-tag-text': colors.text,\n '--z-tag-border': colors.border,\n '--z-tag-hover-bg': colors.hoverBg,\n '--z-tag-dark-bg': colors.darkBg ?? colors.bg,\n '--z-tag-dark-text': colors.darkText ?? colors.text,\n '--z-tag-dark-hover-bg': colors.darkHoverBg ?? colors.hoverBg,\n } as Record<string, string>;\n }\n\n private _getOrCreateRandomColor(\n value: string | number,\n cache: Map<string | number, ZTagRandomColorCache>\n ): ZTagRandomColorCache {\n const cached = cache.get(value);\n if (cached) {\n return cached;\n }\n\n const hue = Math.floor(Math.random() * 360);\n const saturation = 70 + Math.floor(Math.random() * 20);\n const lightness = 45 + Math.floor(Math.random() * 10);\n\n const colors: ZTagRandomColorCache = {\n bg: `hsl(${hue}, ${saturation}%, 95%)`,\n text: `hsl(${hue}, ${saturation}%, ${lightness}%)`,\n border: `hsl(${hue}, ${saturation}%, 85%)`,\n hoverBg: `hsl(${hue}, ${saturation}%, 90%)`,\n darkBg: `hsl(${hue}, ${saturation}%, 16%)`,\n darkText: `hsl(${hue}, ${saturation}%, 72%)`,\n darkHoverBg: `hsl(${hue}, ${saturation}%, 22%)`,\n };\n\n cache.set(value, colors);\n return colors;\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n output,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { ZIconComponent } from '@shival99/z-ui/components/z-icon';\nimport { ZTooltipDirective } from '@shival99/z-ui/components/z-tooltip';\nimport { ZTranslateService } from '@shival99/z-ui/services';\nimport { zMergeClasses, zTransform } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport { ZTagClassesPipe, ZTagClosablePipe, ZTagStylePipe } from './pipes';\nimport type { ZTagColor, ZTagConfig, ZTagItem, ZTagRandomColorCache, ZTagSize } from './z-tags.types';\nimport { zTagCloseButtonVariants, zTagsContainerVariants } from './z-tags.variants';\n\n@Component({\n selector: 'z-tags',\n imports: [ZIconComponent, ZTooltipDirective, ZTagClassesPipe, ZTagStylePipe, ZTagClosablePipe, TranslatePipe],\n standalone: true,\n templateUrl: './z-tags.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'hostClasses()',\n },\n})\nexport class ZTagsComponent implements AfterViewInit {\n private readonly _zTranslate = inject(ZTranslateService);\n\n private readonly _addInput = viewChild<ElementRef<HTMLInputElement>>('addInput');\n\n public readonly class = input<ClassValue>('');\n public readonly zTags = input<ZTagItem[]>([]);\n public readonly zSize = input<ZTagSize>('default');\n public readonly zColor = input<ZTagColor>('default');\n public readonly zClosable = input(false, { transform: zTransform });\n public readonly zDisabled = input(false, { transform: zTransform });\n public readonly zAddable = input(false, { transform: zTransform });\n public readonly zAddText = input<string>('');\n public readonly zAddPlaceholder = input<string>('');\n public readonly zRandomColor = input(false, { transform: zTransform });\n public readonly zTagClass = input<ClassValue>('');\n public readonly zLabelClass = input<ClassValue>('');\n public readonly zMaxWidth = input<string>('');\n\n protected readonly labelClasses = computed(() => {\n const maxWidth = this.zMaxWidth();\n return zMergeClasses(maxWidth ? 'truncate' : '', this.zLabelClass());\n });\n\n protected readonly labelStyle = computed(() => {\n const maxWidth = this.zMaxWidth();\n return maxWidth ? { 'max-width': maxWidth } : null;\n });\n\n public readonly zTagClose = output<ZTagItem>();\n public readonly zTagAdd = output<string>();\n\n protected readonly uiState = signal({\n isAdding: false,\n pendingFocus: false,\n });\n\n private readonly _randomColorCache = new Map<string | number, ZTagRandomColorCache>();\n\n protected readonly hostClasses = computed(() => zMergeClasses('inline-block', this.class()));\n protected readonly containerClasses = computed(() => zTagsContainerVariants({ zSize: this.zSize() }));\n protected readonly closeButtonClasses = computed(() => zTagCloseButtonVariants({ zSize: this.zSize() }));\n protected readonly closeIconSize = computed(() => {\n const sizeMap: Record<ZTagSize, '10' | '12' | '14'> = {\n sm: '10',\n default: '12',\n lg: '14',\n };\n return sizeMap[this.zSize()];\n });\n\n protected readonly tagConfig = computed<ZTagConfig>(() => ({\n size: this.zSize(),\n color: this.zColor(),\n closable: this.zClosable(),\n disabled: this.zDisabled(),\n randomColor: this.zRandomColor(),\n tagClass: this.zTagClass(),\n randomColorCache: this._randomColorCache,\n }));\n\n protected readonly effectiveAddText = computed(() => {\n this._zTranslate.currentLang();\n return this.zAddText() || this._zTranslate.instant('i18n_z_ui_tags_add');\n });\n\n protected readonly effectiveAddPlaceholder = computed(() => {\n this._zTranslate.currentLang();\n return this.zAddPlaceholder() || this._zTranslate.instant('i18n_z_ui_tags_placeholder');\n });\n\n protected readonly addInputClasses = computed(() => {\n const sizeClasses: Record<ZTagSize, string> = {\n sm: 'px-1.5 py-0.5 text-xs w-16',\n default: 'px-2 py-1 text-xs w-20',\n lg: 'px-2.5 py-1.5 text-sm w-24',\n };\n return zMergeClasses(\n 'rounded-sm border border-input bg-white shadow-xs',\n 'dark:bg-input/30 dark:border-input',\n 'outline-none transition-[border-color,box-shadow] duration-200',\n 'focus:border-ring focus:ring-ring/50 focus:ring-[3px]',\n 'text-foreground placeholder:text-muted-foreground',\n sizeClasses[this.zSize()]\n );\n });\n\n protected readonly addButtonClasses = computed(() => {\n const sizeClasses: Record<ZTagSize, string> = {\n sm: 'px-1.5 py-0.5 text-xs gap-1',\n default: 'px-2 py-1 text-xs gap-1.5',\n lg: 'px-2.5 py-1.5 text-sm gap-2',\n };\n return zMergeClasses(\n 'inline-flex items-center justify-center',\n 'rounded-sm border border-dashed border-border',\n 'text-muted-foreground cursor-pointer',\n 'transition-colors duration-200',\n 'hover:border-primary hover:text-primary hover:bg-primary/5',\n sizeClasses[this.zSize()]\n );\n });\n\n public ngAfterViewInit(): void {\n if (this.uiState().pendingFocus) {\n const inputEl = this._addInput();\n if (inputEl) {\n inputEl.nativeElement.focus();\n this.uiState.update(s => ({ ...s, pendingFocus: false }));\n }\n }\n }\n\n protected onRemoveTag(tag: ZTagItem, event: Event): void {\n event.stopPropagation();\n if (tag.disabled || this.zDisabled()) {\n return;\n }\n this._randomColorCache.delete(tag.value);\n this.zTagClose.emit(tag);\n }\n\n protected onAddClick(): void {\n this.uiState.update(s => ({ ...s, isAdding: true, pendingFocus: true }));\n setTimeout(() => {\n const inputEl = this._addInput();\n if (inputEl) {\n inputEl.nativeElement.focus();\n }\n });\n }\n\n protected onAddConfirm(event: Event): void {\n const input = event.target as HTMLInputElement;\n const value = input.value.trim();\n if (value) {\n this.zTagAdd.emit(value);\n input.value = '';\n }\n\n this.uiState.update(s => ({ ...s, isAdding: false }));\n }\n\n protected onAddCancel(): void {\n this.uiState.update(s => ({ ...s, isAdding: false }));\n }\n\n protected onAddBlur(): void {\n const inputEl = this._addInput();\n const input = inputEl?.nativeElement;\n if (input && input.value.trim()) {\n this.zTagAdd.emit(input.value.trim());\n }\n this.uiState.update(s => ({ ...s, isAdding: false }));\n }\n}\n","<div [class]=\"containerClasses()\">\n @for (tag of zTags(); track tag.value) {\n <span\n [class]=\"tag | zTagClasses: tagConfig()\"\n [style]=\"tag | zTagStyle: tagConfig()\"\n z-tooltip\n [zContent]=\"tag.label | translate\">\n <span [class]=\"labelClasses()\" [style]=\"labelStyle()\">{{ tag.label | translate }}</span>\n @if (tag | zTagClosable: tagConfig()) {\n <button\n type=\"button\"\n [class]=\"closeButtonClasses()\"\n [disabled]=\"tag.disabled || zDisabled()\"\n (click)=\"onRemoveTag(tag, $event)\"\n [attr.aria-label]=\"'Remove ' + (tag.label | translate)\">\n <z-icon zType=\"lucideX\" [zSize]=\"closeIconSize()\" class=\"text-current\" />\n </button>\n }\n </span>\n }\n\n @if (zAddable() && !zDisabled()) {\n @if (uiState().isAdding) {\n <input\n #addInput\n type=\"text\"\n [class]=\"addInputClasses()\"\n [placeholder]=\"effectiveAddPlaceholder()\"\n (keydown.enter)=\"onAddConfirm($event)\"\n (keydown.escape)=\"onAddCancel()\"\n (blur)=\"onAddBlur()\" />\n } @else {\n <button type=\"button\" [class]=\"addButtonClasses()\" (click)=\"onAddClick()\">\n <z-icon zType=\"lucidePlus\" [zSize]=\"closeIconSize()\" class=\"text-current\" />\n <span>{{ effectiveAddText() }}</span>\n </button>\n }\n }\n</div>\n","import { Directive, computed, input } from '@angular/core';\nimport { zMergeClasses, zTransform } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport type { ZTagColor, ZTagSize } from '../z-tags.types';\nimport { zTagVariants } from '../z-tags.variants';\n\n@Directive({\n selector: '[z-tags]',\n standalone: true,\n host: {\n '[class]': 'hostClasses()',\n '[attr.aria-disabled]': 'zDisabled() || null',\n },\n exportAs: 'zTags',\n})\nexport class ZTagsDirective {\n public readonly zSize = input<ZTagSize>('default');\n public readonly zColor = input<ZTagColor>('default');\n public readonly zDisabled = input(false, { transform: zTransform });\n public readonly zClass = input<ClassValue>('');\n\n protected readonly hostClasses = computed(() =>\n zMergeClasses(\n zTagVariants({\n zSize: this.zSize(),\n zColor: this.zColor(),\n zDisabled: this.zDisabled(),\n zClosable: false,\n }),\n this.zClass()\n )\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;MAEa,sBAAsB,GAAG,GAAG,CAAC,CAAC,6BAA6B,CAAC,EAAE;AACzE,IAAA,QAAQ,EAAE;AACR,QAAA,KAAK,EAAE;AACL,YAAA,EAAE,EAAE,OAAO;AACX,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,EAAE,EAAE,OAAO;AACZ,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,KAAK,EAAE,SAAS;AACjB,KAAA;AACF,CAAA;AAEM,MAAM,YAAY,GAAG,GAAG,CAC7B;IACE,yCAAyC;IACzC,yCAAyC;IACzC,gCAAgC;CACjC,EACD;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,KAAK,EAAE;AACL,YAAA,EAAE,EAAE,6BAA6B;AACjC,YAAA,OAAO,EAAE,2BAA2B;AACpC,YAAA,EAAE,EAAE,6BAA6B;AAClC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE,+FAA+F;AACxG,YAAA,OAAO,EAAE,oFAAoF;AAC7F,YAAA,OAAO,EACL,gHAAgH;AAClH,YAAA,OAAO,EACL,qHAAqH;AACvH,YAAA,MAAM,EAAE,sGAAsG;AAC9G,YAAA,IAAI,EAAE,2GAA2G;AAClH,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,KAAK,EAAE,EAAE;AACV,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,IAAI,EAAE,mDAAmD;AACzD,YAAA,KAAK,EAAE,EAAE;AACV,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,SAAS,EAAE,KAAK;AAChB,QAAA,SAAS,EAAE,KAAK;AACjB,KAAA;AACF,CAAA;AAGI,MAAM,uBAAuB,GAAG,GAAG,CACxC;IACE,yCAAyC;IACzC,6BAA6B;IAC7B,gCAAgC;IAChC,0CAA0C;IAC1C,iCAAiC;CAClC,EACD;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,KAAK,EAAE;AACL,YAAA,EAAE,EAAE,QAAQ;AACZ,YAAA,OAAO,EAAE,UAAU;AACnB,YAAA,EAAE,EAAE,QAAQ;AACb,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,KAAK,EAAE,SAAS;AACjB,KAAA;AACF,CAAA;;MCjEU,eAAe,CAAA;IACnB,SAAS,CAAC,GAAa,EAAE,MAAkB,EAAA;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC;QAChD,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ;QAElD,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;YACpC,MAAM,WAAW,GAAG,YAAY,CAAC;gBAC/B,KAAK,EAAE,MAAM,CAAC,IAAI;AAClB,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,SAAS,EAAE,UAAU;AACrB,gBAAA,SAAS,EAAE,UAAU;AACtB,aAAA,CAAC;YAEF,MAAM,aAAa,GAAG;AACnB,iBAAA,OAAO,CAAC,UAAU,EAAE,EAAE;AACtB,iBAAA,OAAO,CAAC,uBAAuB,EAAE,EAAE;AACnC,iBAAA,OAAO,CAAC,0BAA0B,EAAE,EAAE;AACtC,iBAAA,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;AAEnC,YAAA,OAAO,aAAa,CAClB,aAAa,EACb,iGAAiG,EACjG,gDAAgD,EAChD,kFAAkF,EAClF,0DAA0D,EAC1D,MAAM,CAAC,QAAQ,CAChB;QACH;QAEA,OAAO,aAAa,CAClB,YAAY,CAAC;YACX,KAAK,EAAE,MAAM,CAAC,IAAI;AAClB,YAAA,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK;AACjC,YAAA,SAAS,EAAE,UAAU;AACrB,YAAA,SAAS,EAAE,UAAU;AACtB,SAAA,CAAC,EACF,MAAM,CAAC,QAAQ,CAChB;IACH;IAEQ,WAAW,CAAC,GAAa,EAAE,MAAkB,EAAA;QACnD,IAAI,GAAG,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE;AACnC,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,OAAO,GAAG,CAAC,QAAQ,KAAK,SAAS,GAAG,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ;IACpE;uGA9CW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;qGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,aAAa;AACnB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,IAAI;AACX,iBAAA;;;MCDY,gBAAgB,CAAA;IACpB,SAAS,CAAC,GAAa,EAAE,MAAkB,EAAA;QAChD,IAAI,GAAG,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE;AACnC,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,OAAO,GAAG,CAAC,QAAQ,KAAK,SAAS,GAAG,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ;IACpE;uGAPW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;qGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,cAAc;AACpB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,IAAI;AACX,iBAAA;;;MCCY,aAAa,CAAA;IACjB,SAAS,CAAC,GAAa,EAAE,MAAkB,EAAA;QAChD,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,GAAG,CAAC,KAAK,EAAE;AACpC,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC;QAC/E,OAAO;YACL,YAAY,EAAE,MAAM,CAAC,EAAE;YACvB,cAAc,EAAE,MAAM,CAAC,IAAI;YAC3B,gBAAgB,EAAE,MAAM,CAAC,MAAM;YAC/B,kBAAkB,EAAE,MAAM,CAAC,OAAO;AAClC,YAAA,iBAAiB,EAAE,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE;AAC7C,YAAA,mBAAmB,EAAE,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI;AACnD,YAAA,uBAAuB,EAAE,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,OAAO;SACpC;IAC7B;IAEQ,uBAAuB,CAC7B,KAAsB,EACtB,KAAiD,EAAA;QAEjD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;QAC/B,IAAI,MAAM,EAAE;AACV,YAAA,OAAO,MAAM;QACf;AAEA,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC;AAC3C,QAAA,MAAM,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;AACtD,QAAA,MAAM,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;AAErD,QAAA,MAAM,MAAM,GAAyB;AACnC,YAAA,EAAE,EAAE,CAAA,IAAA,EAAO,GAAG,CAAA,EAAA,EAAK,UAAU,CAAA,OAAA,CAAS;AACtC,YAAA,IAAI,EAAE,CAAA,IAAA,EAAO,GAAG,KAAK,UAAU,CAAA,GAAA,EAAM,SAAS,CAAA,EAAA,CAAI;AAClD,YAAA,MAAM,EAAE,CAAA,IAAA,EAAO,GAAG,CAAA,EAAA,EAAK,UAAU,CAAA,OAAA,CAAS;AAC1C,YAAA,OAAO,EAAE,CAAA,IAAA,EAAO,GAAG,CAAA,EAAA,EAAK,UAAU,CAAA,OAAA,CAAS;AAC3C,YAAA,MAAM,EAAE,CAAA,IAAA,EAAO,GAAG,CAAA,EAAA,EAAK,UAAU,CAAA,OAAA,CAAS;AAC1C,YAAA,QAAQ,EAAE,CAAA,IAAA,EAAO,GAAG,CAAA,EAAA,EAAK,UAAU,CAAA,OAAA,CAAS;AAC5C,YAAA,WAAW,EAAE,CAAA,IAAA,EAAO,GAAG,CAAA,EAAA,EAAK,UAAU,CAAA,OAAA,CAAS;SAChD;AAED,QAAA,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC;AACxB,QAAA,OAAO,MAAM;IACf;uGA3CW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;qGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,IAAI;AACX,iBAAA;;;MC2BY,cAAc,CAAA;AACR,IAAA,WAAW,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAEvC,SAAS,GAAG,SAAS,CAA+B,UAAU;kFAAC;IAEhE,KAAK,GAAG,KAAK,CAAa,EAAE;8EAAC;IAC7B,KAAK,GAAG,KAAK,CAAa,EAAE;8EAAC;IAC7B,KAAK,GAAG,KAAK,CAAW,SAAS;8EAAC;IAClC,MAAM,GAAG,KAAK,CAAY,SAAS;+EAAC;IACpC,SAAS,GAAG,KAAK,CAAC,KAAK,iFAAI,SAAS,EAAE,UAAU,EAAA,CAAG;IACnD,SAAS,GAAG,KAAK,CAAC,KAAK,iFAAI,SAAS,EAAE,UAAU,EAAA,CAAG;IACnD,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,UAAU,EAAA,CAAG;IAClD,QAAQ,GAAG,KAAK,CAAS,EAAE;iFAAC;IAC5B,eAAe,GAAG,KAAK,CAAS,EAAE;wFAAC;IACnC,YAAY,GAAG,KAAK,CAAC,KAAK,oFAAI,SAAS,EAAE,UAAU,EAAA,CAAG;IACtD,SAAS,GAAG,KAAK,CAAa,EAAE;kFAAC;IACjC,WAAW,GAAG,KAAK,CAAa,EAAE;oFAAC;IACnC,SAAS,GAAG,KAAK,CAAS,EAAE;kFAAC;AAE1B,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AAC9C,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE;AACjC,QAAA,OAAO,aAAa,CAAC,QAAQ,GAAG,UAAU,GAAG,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;IACtE,CAAC;qFAAC;AAEiB,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAC5C,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE;AACjC,QAAA,OAAO,QAAQ,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,IAAI;IACpD,CAAC;mFAAC;IAEc,SAAS,GAAG,MAAM,EAAY;IAC9B,OAAO,GAAG,MAAM,EAAU;IAEvB,OAAO,GAAG,MAAM,CAAC;AAClC,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,YAAY,EAAE,KAAK;AACpB,KAAA;gFAAC;AAEe,IAAA,iBAAiB,GAAG,IAAI,GAAG,EAAyC;AAElE,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,aAAa,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;oFAAC;AACzE,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAM,sBAAsB,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;yFAAC;AAClF,IAAA,kBAAkB,GAAG,QAAQ,CAAC,MAAM,uBAAuB,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;2FAAC;AACrF,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAK;AAC/C,QAAA,MAAM,OAAO,GAAyC;AACpD,YAAA,EAAE,EAAE,IAAI;AACR,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,EAAE,EAAE,IAAI;SACT;AACD,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;sFAAC;AAEiB,IAAA,SAAS,GAAG,QAAQ,CAAa,OAAO;AACzD,QAAA,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE;AAClB,QAAA,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE;AACpB,QAAA,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE;AAC1B,QAAA,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE;AAC1B,QAAA,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE;AAChC,QAAA,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE;QAC1B,gBAAgB,EAAE,IAAI,CAAC,iBAAiB;KACzC,CAAC;kFAAC;AAEgB,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAK;AAClD,QAAA,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;AAC9B,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,oBAAoB,CAAC;IAC1E,CAAC;yFAAC;AAEiB,IAAA,uBAAuB,GAAG,QAAQ,CAAC,MAAK;AACzD,QAAA,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;AAC9B,QAAA,OAAO,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,4BAA4B,CAAC;IACzF,CAAC;gGAAC;AAEiB,IAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;AACjD,QAAA,MAAM,WAAW,GAA6B;AAC5C,YAAA,EAAE,EAAE,4BAA4B;AAChC,YAAA,OAAO,EAAE,wBAAwB;AACjC,YAAA,EAAE,EAAE,4BAA4B;SACjC;QACD,OAAO,aAAa,CAClB,mDAAmD,EACnD,oCAAoC,EACpC,gEAAgE,EAChE,uDAAuD,EACvD,mDAAmD,EACnD,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAC1B;IACH,CAAC;wFAAC;AAEiB,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAK;AAClD,QAAA,MAAM,WAAW,GAA6B;AAC5C,YAAA,EAAE,EAAE,6BAA6B;AACjC,YAAA,OAAO,EAAE,2BAA2B;AACpC,YAAA,EAAE,EAAE,6BAA6B;SAClC;QACD,OAAO,aAAa,CAClB,yCAAyC,EACzC,+CAA+C,EAC/C,sCAAsC,EACtC,gCAAgC,EAChC,4DAA4D,EAC5D,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAC1B;IACH,CAAC;yFAAC;IAEK,eAAe,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE;AAC/B,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE;YAChC,IAAI,OAAO,EAAE;AACX,gBAAA,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE;gBAC7B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3D;QACF;IACF;IAEU,WAAW,CAAC,GAAa,EAAE,KAAY,EAAA;QAC/C,KAAK,CAAC,eAAe,EAAE;QACvB,IAAI,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;YACpC;QACF;QACA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AACxC,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;IAC1B;IAEU,UAAU,GAAA;QAClB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,UAAU,CAAC,MAAK;AACd,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE;YAChC,IAAI,OAAO,EAAE;AACX,gBAAA,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE;YAC/B;AACF,QAAA,CAAC,CAAC;IACJ;AAEU,IAAA,YAAY,CAAC,KAAY,EAAA;AACjC,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B;QAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;QAChC,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AACxB,YAAA,KAAK,CAAC,KAAK,GAAG,EAAE;QAClB;QAEA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACvD;IAEU,WAAW,GAAA;QACnB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACvD;IAEU,SAAS,GAAA;AACjB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE;AAChC,QAAA,MAAM,KAAK,GAAG,OAAO,EAAE,aAAa;QACpC,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE;AAC/B,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACvC;QACA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACvD;uGA1JW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,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,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,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,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClC3B,m5CAuCA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDdY,cAAc,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,cAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,iBAAiB,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,QAAA,EAAA,eAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,eAAe,EAAA,IAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,gBAAgB,gDAAE,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FASjG,cAAc,EAAA,UAAA,EAAA,CAAA;kBAX1B,SAAS;+BACE,QAAQ,EAAA,OAAA,EACT,CAAC,cAAc,EAAE,iBAAiB,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,CAAC,EAAA,UAAA,EACjG,IAAI,EAAA,eAAA,EAEC,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,IAAA,EAC/B;AACJ,wBAAA,SAAS,EAAE,eAAe;AAC3B,qBAAA,EAAA,QAAA,EAAA,m5CAAA,EAAA;uEAKoE,UAAU,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;MEtBpE,cAAc,CAAA;IACT,KAAK,GAAG,KAAK,CAAW,SAAS;8EAAC;IAClC,MAAM,GAAG,KAAK,CAAY,SAAS;+EAAC;IACpC,SAAS,GAAG,KAAK,CAAC,KAAK,iFAAI,SAAS,EAAE,UAAU,EAAA,CAAG;IACnD,MAAM,GAAG,KAAK,CAAa,EAAE;+EAAC;IAE3B,WAAW,GAAG,QAAQ,CAAC,MACxC,aAAa,CACX,YAAY,CAAC;AACX,QAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,QAAA,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;AACrB,QAAA,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;AAC3B,QAAA,SAAS,EAAE,KAAK;AACjB,KAAA,CAAC,EACF,IAAI,CAAC,MAAM,EAAE,CACd;oFACF;uGAhBU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,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,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,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,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,OAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAT1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,eAAe;AAC1B,wBAAA,sBAAsB,EAAE,qBAAqB;AAC9C,qBAAA;AACD,oBAAA,QAAQ,EAAE,OAAO;AAClB,iBAAA;;;ACdD;;AAEG;;"}
1
+ {"version":3,"file":"shival99-z-ui-components-z-tags.mjs","sources":["../../../../libs/core-ui/components/z-tags/z-tags.variants.ts","../../../../libs/core-ui/components/z-tags/pipes/z-tag-classes.pipe.ts","../../../../libs/core-ui/components/z-tags/pipes/z-tag-closable.pipe.ts","../../../../libs/core-ui/components/z-tags/pipes/z-tag-style.pipe.ts","../../../../libs/core-ui/components/z-tags/z-tags.component.ts","../../../../libs/core-ui/components/z-tags/z-tags.component.html","../../../../libs/core-ui/components/z-tags/directives/z-tags.directive.ts","../../../../libs/core-ui/components/z-tags/shival99-z-ui-components-z-tags.ts"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const zTagsContainerVariants = cva(['flex flex-wrap items-center'], {\n variants: {\n zSize: {\n sm: 'gap-1',\n default: 'gap-1.5',\n lg: 'gap-2',\n },\n },\n defaultVariants: {\n zSize: 'default',\n },\n});\n\nexport const zTagVariants = cva(\n [\n 'inline-flex items-center justify-center',\n 'rounded-xs shadow-xs border font-medium',\n 'transition-colors duration-200',\n ],\n {\n variants: {\n zSize: {\n sm: 'px-1.5 py-0.5 text-xs gap-1',\n default: 'px-2 py-1 text-xs gap-1.5',\n lg: 'px-2.5 py-1.5 text-sm gap-2',\n },\n zColor: {\n default: 'bg-muted text-muted-foreground !border-muted-foreground hover:bg-muted/80 dark:!border-border',\n primary: 'bg-primary/10 text-primary !border-primary hover:bg-primary/20 dark:!border-border',\n success:\n 'bg-green-500/10 text-green-600 !border-green-600 hover:bg-green-500/20 dark:text-green-400 dark:!border-border',\n warning:\n 'bg-yellow-500/10 text-yellow-600 !border-yellow-600 hover:bg-yellow-500/20 dark:text-yellow-400 dark:!border-border',\n danger: 'bg-red-500/10 text-red-600 !border-red-600 hover:bg-red-500/20 dark:text-red-400 dark:!border-border',\n info: 'bg-blue-500/10 text-blue-600 !border-blue-600 hover:bg-blue-500/20 dark:text-blue-400 dark:!border-border',\n },\n zClosable: {\n true: '',\n false: '',\n },\n zDisabled: {\n true: 'opacity-50 cursor-not-allowed pointer-events-none',\n false: '',\n },\n },\n defaultVariants: {\n zSize: 'default',\n zColor: 'default',\n zClosable: false,\n zDisabled: false,\n },\n }\n);\n\nexport const zTagCloseButtonVariants = cva(\n [\n 'inline-flex items-center justify-center',\n 'rounded-full cursor-pointer',\n 'transition-colors duration-200',\n 'hover:bg-black/10 dark:hover:bg-white/10',\n 'outline-none focus:outline-none',\n ],\n {\n variants: {\n zSize: {\n sm: 'size-3',\n default: 'size-3.5',\n lg: 'size-4',\n },\n },\n defaultVariants: {\n zSize: 'default',\n },\n }\n);\n\nexport type ZTagsContainerVariants = VariantProps<typeof zTagsContainerVariants>;\nexport type ZTagVariants = VariantProps<typeof zTagVariants>;\nexport type ZTagCloseButtonVariants = VariantProps<typeof zTagCloseButtonVariants>;\n","import { Pipe, type PipeTransform } from '@angular/core';\nimport { zMergeClasses } from '@shival99/z-ui/utils';\nimport type { ZTagConfig, ZTagItem } from '../z-tags.types';\nimport { zTagVariants } from '../z-tags.variants';\n\n@Pipe({\n name: 'zTagClasses',\n standalone: true,\n pure: true,\n})\nexport class ZTagClassesPipe implements PipeTransform {\n public transform(tag: ZTagItem, config: ZTagConfig): string {\n const isClosable = this._isClosable(tag, config);\n const isDisabled = tag.disabled || config.disabled;\n\n if (config.randomColor && !tag.color) {\n const baseClasses = zTagVariants({\n zSize: config.size,\n zColor: 'default',\n zClosable: isClosable,\n zDisabled: isDisabled,\n });\n\n const randomClasses = baseClasses\n .replace('bg-muted', '')\n .replace('text-muted-foreground', '')\n .replace('!border-muted-foreground', '')\n .replace('hover:bg-muted/80', '');\n\n return zMergeClasses(\n randomClasses,\n '[background-color:var(--z-tag-bg)] [color:var(--z-tag-text)] [border-color:var(--z-tag-border)]',\n 'hover:[background-color:var(--z-tag-hover-bg)]',\n 'dark:[background-color:var(--z-tag-dark-bg)] dark:[color:var(--z-tag-dark-text)]',\n 'dark:hover:[background-color:var(--z-tag-dark-hover-bg)]',\n config.tagClass\n );\n }\n\n return zMergeClasses(\n zTagVariants({\n zSize: config.size,\n zColor: tag.color || config.color,\n zClosable: isClosable,\n zDisabled: isDisabled,\n }),\n config.tagClass\n );\n }\n\n private _isClosable(tag: ZTagItem, config: ZTagConfig): boolean {\n if (tag.disabled || config.disabled) {\n return false;\n }\n\n return tag.closable !== undefined ? tag.closable : config.closable;\n }\n}\n","import { Pipe, type PipeTransform } from '@angular/core';\nimport type { ZTagConfig, ZTagItem } from '../z-tags.types';\n\n@Pipe({\n name: 'zTagClosable',\n standalone: true,\n pure: true,\n})\nexport class ZTagClosablePipe implements PipeTransform {\n public transform(tag: ZTagItem, config: ZTagConfig): boolean {\n if (tag.disabled || config.disabled) {\n return false;\n }\n\n return tag.closable !== undefined ? tag.closable : config.closable;\n }\n}\n","import { Pipe, type PipeTransform } from '@angular/core';\nimport type { ZTagConfig, ZTagItem, ZTagRandomColorCache } from '../z-tags.types';\n\n@Pipe({\n name: 'zTagStyle',\n standalone: true,\n pure: true,\n})\nexport class ZTagStylePipe implements PipeTransform {\n public transform(tag: ZTagItem, config: ZTagConfig): Record<string, string> | null {\n if (!config.randomColor || tag.color) {\n return null;\n }\n\n const colors = this._getOrCreateRandomColor(tag.value, config.randomColorCache);\n return {\n '--z-tag-bg': colors.bg,\n '--z-tag-text': colors.text,\n '--z-tag-border': colors.border,\n '--z-tag-hover-bg': colors.hoverBg,\n '--z-tag-dark-bg': colors.darkBg ?? colors.bg,\n '--z-tag-dark-text': colors.darkText ?? colors.text,\n '--z-tag-dark-hover-bg': colors.darkHoverBg ?? colors.hoverBg,\n } as Record<string, string>;\n }\n\n private _getOrCreateRandomColor(\n value: string | number,\n cache: Map<string | number, ZTagRandomColorCache>\n ): ZTagRandomColorCache {\n const cached = cache.get(value);\n if (cached) {\n return cached;\n }\n\n const hue = Math.floor(Math.random() * 360);\n const saturation = 70 + Math.floor(Math.random() * 20);\n const lightness = 45 + Math.floor(Math.random() * 10);\n\n const colors: ZTagRandomColorCache = {\n bg: `hsl(${hue}, ${saturation}%, 95%)`,\n text: `hsl(${hue}, ${saturation}%, ${lightness}%)`,\n border: `hsl(${hue}, ${saturation}%, 85%)`,\n hoverBg: `hsl(${hue}, ${saturation}%, 90%)`,\n darkBg: `hsl(${hue}, ${saturation}%, 16%)`,\n darkText: `hsl(${hue}, ${saturation}%, 72%)`,\n darkHoverBg: `hsl(${hue}, ${saturation}%, 22%)`,\n };\n\n cache.set(value, colors);\n return colors;\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n output,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { ZIconComponent } from '@shival99/z-ui/components/z-icon';\nimport { ZTooltipDirective } from '@shival99/z-ui/components/z-tooltip';\nimport { ZTranslateService } from '@shival99/z-ui/services';\nimport { zMergeClasses, zTransform } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport { ZTagClassesPipe, ZTagClosablePipe, ZTagStylePipe } from './pipes';\nimport type { ZTagColor, ZTagConfig, ZTagItem, ZTagRandomColorCache, ZTagSize } from './z-tags.types';\nimport { zTagCloseButtonVariants, zTagsContainerVariants } from './z-tags.variants';\n\n@Component({\n selector: 'z-tags',\n imports: [ZIconComponent, ZTooltipDirective, ZTagClassesPipe, ZTagStylePipe, ZTagClosablePipe, TranslatePipe],\n standalone: true,\n templateUrl: './z-tags.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'hostClasses()',\n },\n})\nexport class ZTagsComponent implements AfterViewInit {\n private readonly _zTranslate = inject(ZTranslateService);\n\n private readonly _addInput = viewChild<ElementRef<HTMLInputElement>>('addInput');\n\n public readonly class = input<ClassValue>('');\n public readonly zTags = input<ZTagItem[]>([]);\n public readonly zSize = input<ZTagSize>('default');\n public readonly zColor = input<ZTagColor>('default');\n public readonly zClosable = input(false, { transform: zTransform });\n public readonly zDisabled = input(false, { transform: zTransform });\n public readonly zAddable = input(false, { transform: zTransform });\n public readonly zAddText = input<string>('');\n public readonly zAddPlaceholder = input<string>('');\n public readonly zRandomColor = input(false, { transform: zTransform });\n public readonly zTagClass = input<ClassValue>('');\n public readonly zLabelClass = input<ClassValue>('');\n public readonly zMaxWidth = input<string>('');\n\n protected readonly labelClasses = computed(() => {\n const maxWidth = this.zMaxWidth();\n return zMergeClasses(maxWidth ? 'truncate' : '', this.zLabelClass());\n });\n\n protected readonly labelStyle = computed(() => {\n const maxWidth = this.zMaxWidth();\n return maxWidth ? { 'max-width': maxWidth } : null;\n });\n\n public readonly zTagClose = output<ZTagItem>();\n public readonly zTagAdd = output<string>();\n\n protected readonly uiState = signal({\n isAdding: false,\n pendingFocus: false,\n });\n\n private readonly _randomColorCache = new Map<string | number, ZTagRandomColorCache>();\n\n protected readonly hostClasses = computed(() => zMergeClasses('inline-block', this.class()));\n protected readonly containerClasses = computed(() => zTagsContainerVariants({ zSize: this.zSize() }));\n protected readonly closeButtonClasses = computed(() => zTagCloseButtonVariants({ zSize: this.zSize() }));\n protected readonly closeIconSize = computed(() => {\n const sizeMap: Record<ZTagSize, '10' | '12' | '14'> = {\n sm: '10',\n default: '12',\n lg: '14',\n };\n return sizeMap[this.zSize()];\n });\n\n protected readonly tagConfig = computed<ZTagConfig>(() => ({\n size: this.zSize(),\n color: this.zColor(),\n closable: this.zClosable(),\n disabled: this.zDisabled(),\n randomColor: this.zRandomColor(),\n tagClass: this.zTagClass(),\n randomColorCache: this._randomColorCache,\n }));\n\n protected readonly effectiveAddText = computed(() => {\n this._zTranslate.currentLang();\n return this.zAddText() || this._zTranslate.instant('i18n_z_ui_tags_add');\n });\n\n protected readonly effectiveAddPlaceholder = computed(() => {\n this._zTranslate.currentLang();\n return this.zAddPlaceholder() || this._zTranslate.instant('i18n_z_ui_tags_placeholder');\n });\n\n protected readonly addInputClasses = computed(() => {\n const sizeClasses: Record<ZTagSize, string> = {\n sm: 'px-1.5 py-0.5 text-xs w-16',\n default: 'px-2 py-1 text-xs w-20',\n lg: 'px-2.5 py-1.5 text-sm w-24',\n };\n return zMergeClasses(\n 'rounded-sm border border-input bg-white shadow-xs',\n 'dark:bg-input/30 dark:border-input',\n 'outline-none transition-[border-color,box-shadow] duration-200',\n 'focus:border-ring focus:ring-ring/50 focus:ring-[3px]',\n 'text-foreground placeholder:text-muted-foreground',\n sizeClasses[this.zSize()]\n );\n });\n\n protected readonly addButtonClasses = computed(() => {\n const sizeClasses: Record<ZTagSize, string> = {\n sm: 'px-1.5 py-0.5 text-xs gap-1',\n default: 'px-2 py-1 text-xs gap-1.5',\n lg: 'px-2.5 py-1.5 text-sm gap-2',\n };\n return zMergeClasses(\n 'inline-flex items-center justify-center',\n 'rounded-sm border border-dashed border-border',\n 'text-muted-foreground cursor-pointer',\n 'transition-colors duration-200',\n 'hover:border-primary hover:text-primary hover:bg-primary/5',\n sizeClasses[this.zSize()]\n );\n });\n\n public ngAfterViewInit(): void {\n if (this.uiState().pendingFocus) {\n const inputEl = this._addInput();\n if (inputEl) {\n inputEl.nativeElement.focus();\n this.uiState.update(s => ({ ...s, pendingFocus: false }));\n }\n }\n }\n\n protected onRemoveTag(tag: ZTagItem, event: Event): void {\n event.stopPropagation();\n if (tag.disabled || this.zDisabled()) {\n return;\n }\n this._randomColorCache.delete(tag.value);\n this.zTagClose.emit(tag);\n }\n\n protected onAddClick(): void {\n this.uiState.update(s => ({ ...s, isAdding: true, pendingFocus: true }));\n setTimeout(() => {\n const inputEl = this._addInput();\n if (inputEl) {\n inputEl.nativeElement.focus();\n }\n });\n }\n\n protected onAddConfirm(event: Event): void {\n const input = event.target as HTMLInputElement;\n const value = input.value.trim();\n if (value) {\n this.zTagAdd.emit(value);\n input.value = '';\n }\n\n this.uiState.update(s => ({ ...s, isAdding: false }));\n }\n\n protected onAddCancel(): void {\n this.uiState.update(s => ({ ...s, isAdding: false }));\n }\n\n protected onAddBlur(): void {\n const inputEl = this._addInput();\n const input = inputEl?.nativeElement;\n if (input && input.value.trim()) {\n this.zTagAdd.emit(input.value.trim());\n }\n this.uiState.update(s => ({ ...s, isAdding: false }));\n }\n}\n","<div [class]=\"containerClasses()\">\n @for (tag of zTags(); track tag.value) {\n <span\n [class]=\"tag | zTagClasses: tagConfig()\"\n [style]=\"tag | zTagStyle: tagConfig()\"\n z-tooltip\n [zContent]=\"tag.label | translate\">\n <span [class]=\"labelClasses()\" [style]=\"labelStyle()\">{{ tag.label | translate }}</span>\n @if (tag | zTagClosable: tagConfig()) {\n <button\n type=\"button\"\n [class]=\"closeButtonClasses()\"\n [disabled]=\"tag.disabled || zDisabled()\"\n (click)=\"onRemoveTag(tag, $event)\"\n [attr.aria-label]=\"'Remove ' + (tag.label | translate)\">\n <z-icon zType=\"lucideX\" [zSize]=\"closeIconSize()\" class=\"text-current\" />\n </button>\n }\n </span>\n }\n\n @if (zAddable() && !zDisabled()) {\n @if (uiState().isAdding) {\n <input\n #addInput\n type=\"text\"\n [class]=\"addInputClasses()\"\n [placeholder]=\"effectiveAddPlaceholder()\"\n (keydown.enter)=\"onAddConfirm($event)\"\n (keydown.escape)=\"onAddCancel()\"\n (blur)=\"onAddBlur()\" />\n } @else {\n <button type=\"button\" [class]=\"addButtonClasses()\" (click)=\"onAddClick()\">\n <z-icon zType=\"lucidePlus\" [zSize]=\"closeIconSize()\" class=\"text-current\" />\n <span>{{ effectiveAddText() }}</span>\n </button>\n }\n }\n</div>\n","import { Directive, computed, input } from '@angular/core';\nimport { zMergeClasses, zTransform } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport type { ZTagColor, ZTagSize } from '../z-tags.types';\nimport { zTagVariants } from '../z-tags.variants';\n\n@Directive({\n selector: '[z-tags]',\n standalone: true,\n host: {\n '[class]': 'hostClasses()',\n '[attr.aria-disabled]': 'zDisabled() || null',\n },\n exportAs: 'zTags',\n})\nexport class ZTagsDirective {\n public readonly zSize = input<ZTagSize>('default');\n public readonly zColor = input<ZTagColor>('default');\n public readonly zDisabled = input(false, { transform: zTransform });\n public readonly zClass = input<ClassValue>('');\n\n protected readonly hostClasses = computed(() =>\n zMergeClasses(\n zTagVariants({\n zSize: this.zSize(),\n zColor: this.zColor(),\n zDisabled: this.zDisabled(),\n zClosable: false,\n }),\n this.zClass()\n )\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -120,6 +120,8 @@ const zTooltipExitVariants = cva('z-animate-out z-fade-out', {
120
120
  class ZTooltipContentComponent {
121
121
  content = signal('', /* @ts-ignore */
122
122
  ...(ngDevMode ? [{ debugName: "content" }] : /* istanbul ignore next */ []));
123
+ context = signal(undefined, /* @ts-ignore */
124
+ ...(ngDevMode ? [{ debugName: "context" }] : /* istanbul ignore next */ []));
123
125
  position = signal('top', /* @ts-ignore */
124
126
  ...(ngDevMode ? [{ debugName: "position" }] : /* istanbul ignore next */ []));
125
127
  tooltipType = signal('default', /* @ts-ignore */
@@ -204,6 +206,7 @@ class ZTooltipContentComponent {
204
206
  }
205
207
  setProps(config) {
206
208
  this.content.set(config.content);
209
+ this.context.set(config.context);
207
210
  this.position.set(config.position);
208
211
  if (config.type) {
209
212
  this.tooltipType.set(config.type);
@@ -231,7 +234,7 @@ class ZTooltipContentComponent {
231
234
  <!-- Content layer - covers arrow base -->
232
235
  <div [class]="contentClasses()">
233
236
  @if (isTemplateContent()) {
234
- <ng-container [ngTemplateOutlet]="$any(content())" />
237
+ <ng-container [ngTemplateOutlet]="$any(content())" [ngTemplateOutletContext]="{ $implicit: context() }" />
235
238
  } @else if (isHtmlContent()) {
236
239
  {{ $any(textOnlyContent()) | translate }}
237
240
  } @else {
@@ -255,7 +258,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
255
258
  <!-- Content layer - covers arrow base -->
256
259
  <div [class]="contentClasses()">
257
260
  @if (isTemplateContent()) {
258
- <ng-container [ngTemplateOutlet]="$any(content())" />
261
+ <ng-container [ngTemplateOutlet]="$any(content())" [ngTemplateOutletContext]="{ $implicit: context() }" />
259
262
  } @else if (isHtmlContent()) {
260
263
  {{ $any(textOnlyContent()) | translate }}
261
264
  } @else {
@@ -302,6 +305,8 @@ function getTooltipFallbackPlacements(origin, position, offset) {
302
305
  class ZTooltipDirective {
303
306
  zContent = input('', /* @ts-ignore */
304
307
  ...(ngDevMode ? [{ debugName: "zContent" }] : /* istanbul ignore next */ []));
308
+ zContext = input(/* @ts-ignore */
309
+ ...(ngDevMode ? [undefined, { debugName: "zContext" }] : /* istanbul ignore next */ []));
305
310
  zPosition = input('top', /* @ts-ignore */
306
311
  ...(ngDevMode ? [{ debugName: "zPosition" }] : /* istanbul ignore next */ []));
307
312
  zTooltipPosition = input(/* @ts-ignore */
@@ -579,6 +584,7 @@ class ZTooltipDirective {
579
584
  this._componentRef = this._overlayRef.attach(ZTooltipContentComponent);
580
585
  this._componentRef.instance.setProps({
581
586
  content,
587
+ context: this.zContext(),
582
588
  position: this._position(),
583
589
  type: this.zType(),
584
590
  size: this.zSize(),
@@ -684,7 +690,7 @@ class ZTooltipDirective {
684
690
  this._componentRef.instance.arrowOffset.set(offset);
685
691
  }
686
692
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ZTooltipDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
687
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.6", type: ZTooltipDirective, isStandalone: true, selector: "[z-tooltip], [zTooltip]", inputs: { zContent: { classPropertyName: "zContent", publicName: "zContent", isSignal: true, isRequired: false, transformFunction: null }, zPosition: { classPropertyName: "zPosition", publicName: "zPosition", isSignal: true, isRequired: false, transformFunction: null }, zTooltipPosition: { classPropertyName: "zTooltipPosition", publicName: "zTooltipPosition", isSignal: true, isRequired: false, transformFunction: null }, zTrigger: { classPropertyName: "zTrigger", publicName: "zTrigger", isSignal: true, isRequired: false, transformFunction: null }, zTooltipTrigger: { classPropertyName: "zTooltipTrigger", publicName: "zTooltipTrigger", isSignal: true, isRequired: false, transformFunction: null }, zType: { classPropertyName: "zType", publicName: "zTooltipType", isSignal: true, isRequired: false, transformFunction: null }, zSize: { classPropertyName: "zSize", publicName: "zTooltipSize", isSignal: true, isRequired: false, transformFunction: null }, zClass: { classPropertyName: "zClass", publicName: "zClass", isSignal: true, isRequired: false, transformFunction: null }, zTooltipClass: { classPropertyName: "zTooltipClass", publicName: "zTooltipClass", isSignal: true, isRequired: false, transformFunction: null }, zShowDelay: { classPropertyName: "zShowDelay", publicName: "zShowDelay", isSignal: true, isRequired: false, transformFunction: null }, zTooltipShowDelay: { classPropertyName: "zTooltipShowDelay", publicName: "zTooltipShowDelay", isSignal: true, isRequired: false, transformFunction: null }, zHideDelay: { classPropertyName: "zHideDelay", publicName: "zHideDelay", isSignal: true, isRequired: false, transformFunction: null }, zTooltipHideDelay: { classPropertyName: "zTooltipHideDelay", publicName: "zTooltipHideDelay", isSignal: true, isRequired: false, transformFunction: null }, zArrow: { classPropertyName: "zArrow", publicName: "zArrow", isSignal: true, isRequired: false, transformFunction: null }, zTooltipArrow: { classPropertyName: "zTooltipArrow", publicName: "zTooltipArrow", isSignal: true, isRequired: false, transformFunction: null }, zDisabled: { classPropertyName: "zDisabled", publicName: "zDisabled", isSignal: true, isRequired: false, transformFunction: null }, zTooltipDisabled: { classPropertyName: "zTooltipDisabled", publicName: "zTooltipDisabled", isSignal: true, isRequired: false, transformFunction: null }, zOffset: { classPropertyName: "zOffset", publicName: "zOffset", isSignal: true, isRequired: false, transformFunction: null }, zTooltipOffset: { classPropertyName: "zTooltipOffset", publicName: "zTooltipOffset", isSignal: true, isRequired: false, transformFunction: null }, zAutoDetect: { classPropertyName: "zAutoDetect", publicName: "zAutoDetect", isSignal: true, isRequired: false, transformFunction: null }, zTriggerElement: { classPropertyName: "zTriggerElement", publicName: "zTriggerElement", isSignal: true, isRequired: false, transformFunction: null }, zAlwaysShow: { classPropertyName: "zAlwaysShow", publicName: "zAlwaysShow", isSignal: true, isRequired: false, transformFunction: null }, zMaxWidth: { classPropertyName: "zMaxWidth", publicName: "zMaxWidth", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { zShow: "zShow", zHide: "zHide" }, exportAs: ["zTooltip"], ngImport: i0 });
693
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.6", type: ZTooltipDirective, isStandalone: true, selector: "[z-tooltip], [zTooltip]", inputs: { zContent: { classPropertyName: "zContent", publicName: "zContent", isSignal: true, isRequired: false, transformFunction: null }, zContext: { classPropertyName: "zContext", publicName: "zContext", isSignal: true, isRequired: false, transformFunction: null }, zPosition: { classPropertyName: "zPosition", publicName: "zPosition", isSignal: true, isRequired: false, transformFunction: null }, zTooltipPosition: { classPropertyName: "zTooltipPosition", publicName: "zTooltipPosition", isSignal: true, isRequired: false, transformFunction: null }, zTrigger: { classPropertyName: "zTrigger", publicName: "zTrigger", isSignal: true, isRequired: false, transformFunction: null }, zTooltipTrigger: { classPropertyName: "zTooltipTrigger", publicName: "zTooltipTrigger", isSignal: true, isRequired: false, transformFunction: null }, zType: { classPropertyName: "zType", publicName: "zTooltipType", isSignal: true, isRequired: false, transformFunction: null }, zSize: { classPropertyName: "zSize", publicName: "zTooltipSize", isSignal: true, isRequired: false, transformFunction: null }, zClass: { classPropertyName: "zClass", publicName: "zClass", isSignal: true, isRequired: false, transformFunction: null }, zTooltipClass: { classPropertyName: "zTooltipClass", publicName: "zTooltipClass", isSignal: true, isRequired: false, transformFunction: null }, zShowDelay: { classPropertyName: "zShowDelay", publicName: "zShowDelay", isSignal: true, isRequired: false, transformFunction: null }, zTooltipShowDelay: { classPropertyName: "zTooltipShowDelay", publicName: "zTooltipShowDelay", isSignal: true, isRequired: false, transformFunction: null }, zHideDelay: { classPropertyName: "zHideDelay", publicName: "zHideDelay", isSignal: true, isRequired: false, transformFunction: null }, zTooltipHideDelay: { classPropertyName: "zTooltipHideDelay", publicName: "zTooltipHideDelay", isSignal: true, isRequired: false, transformFunction: null }, zArrow: { classPropertyName: "zArrow", publicName: "zArrow", isSignal: true, isRequired: false, transformFunction: null }, zTooltipArrow: { classPropertyName: "zTooltipArrow", publicName: "zTooltipArrow", isSignal: true, isRequired: false, transformFunction: null }, zDisabled: { classPropertyName: "zDisabled", publicName: "zDisabled", isSignal: true, isRequired: false, transformFunction: null }, zTooltipDisabled: { classPropertyName: "zTooltipDisabled", publicName: "zTooltipDisabled", isSignal: true, isRequired: false, transformFunction: null }, zOffset: { classPropertyName: "zOffset", publicName: "zOffset", isSignal: true, isRequired: false, transformFunction: null }, zTooltipOffset: { classPropertyName: "zTooltipOffset", publicName: "zTooltipOffset", isSignal: true, isRequired: false, transformFunction: null }, zAutoDetect: { classPropertyName: "zAutoDetect", publicName: "zAutoDetect", isSignal: true, isRequired: false, transformFunction: null }, zTriggerElement: { classPropertyName: "zTriggerElement", publicName: "zTriggerElement", isSignal: true, isRequired: false, transformFunction: null }, zAlwaysShow: { classPropertyName: "zAlwaysShow", publicName: "zAlwaysShow", isSignal: true, isRequired: false, transformFunction: null }, zMaxWidth: { classPropertyName: "zMaxWidth", publicName: "zMaxWidth", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { zShow: "zShow", zHide: "zHide" }, exportAs: ["zTooltip"], ngImport: i0 });
688
694
  }
689
695
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ZTooltipDirective, decorators: [{
690
696
  type: Directive,
@@ -693,7 +699,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
693
699
  standalone: true,
694
700
  exportAs: 'zTooltip',
695
701
  }]
696
- }], ctorParameters: () => [], propDecorators: { zContent: [{ type: i0.Input, args: [{ isSignal: true, alias: "zContent", required: false }] }], zPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "zPosition", required: false }] }], zTooltipPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTooltipPosition", required: false }] }], zTrigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTrigger", required: false }] }], zTooltipTrigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTooltipTrigger", required: false }] }], zType: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTooltipType", required: false }] }], zSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTooltipSize", required: false }] }], zClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "zClass", required: false }] }], zTooltipClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTooltipClass", required: false }] }], zShowDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "zShowDelay", required: false }] }], zTooltipShowDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTooltipShowDelay", required: false }] }], zHideDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "zHideDelay", required: false }] }], zTooltipHideDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTooltipHideDelay", required: false }] }], zArrow: [{ type: i0.Input, args: [{ isSignal: true, alias: "zArrow", required: false }] }], zTooltipArrow: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTooltipArrow", required: false }] }], zDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "zDisabled", required: false }] }], zTooltipDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTooltipDisabled", required: false }] }], zOffset: [{ type: i0.Input, args: [{ isSignal: true, alias: "zOffset", required: false }] }], zTooltipOffset: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTooltipOffset", required: false }] }], zAutoDetect: [{ type: i0.Input, args: [{ isSignal: true, alias: "zAutoDetect", required: false }] }], zTriggerElement: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTriggerElement", required: false }] }], zAlwaysShow: [{ type: i0.Input, args: [{ isSignal: true, alias: "zAlwaysShow", required: false }] }], zMaxWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "zMaxWidth", required: false }] }], zShow: [{ type: i0.Output, args: ["zShow"] }], zHide: [{ type: i0.Output, args: ["zHide"] }] } });
702
+ }], ctorParameters: () => [], propDecorators: { zContent: [{ type: i0.Input, args: [{ isSignal: true, alias: "zContent", required: false }] }], zContext: [{ type: i0.Input, args: [{ isSignal: true, alias: "zContext", required: false }] }], zPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "zPosition", required: false }] }], zTooltipPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTooltipPosition", required: false }] }], zTrigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTrigger", required: false }] }], zTooltipTrigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTooltipTrigger", required: false }] }], zType: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTooltipType", required: false }] }], zSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTooltipSize", required: false }] }], zClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "zClass", required: false }] }], zTooltipClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTooltipClass", required: false }] }], zShowDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "zShowDelay", required: false }] }], zTooltipShowDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTooltipShowDelay", required: false }] }], zHideDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "zHideDelay", required: false }] }], zTooltipHideDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTooltipHideDelay", required: false }] }], zArrow: [{ type: i0.Input, args: [{ isSignal: true, alias: "zArrow", required: false }] }], zTooltipArrow: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTooltipArrow", required: false }] }], zDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "zDisabled", required: false }] }], zTooltipDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTooltipDisabled", required: false }] }], zOffset: [{ type: i0.Input, args: [{ isSignal: true, alias: "zOffset", required: false }] }], zTooltipOffset: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTooltipOffset", required: false }] }], zAutoDetect: [{ type: i0.Input, args: [{ isSignal: true, alias: "zAutoDetect", required: false }] }], zTriggerElement: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTriggerElement", required: false }] }], zAlwaysShow: [{ type: i0.Input, args: [{ isSignal: true, alias: "zAlwaysShow", required: false }] }], zMaxWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "zMaxWidth", required: false }] }], zShow: [{ type: i0.Output, args: ["zShow"] }], zHide: [{ type: i0.Output, args: ["zHide"] }] } });
697
703
 
698
704
  /**
699
705
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"shival99-z-ui-components-z-tooltip.mjs","sources":["../../../../libs/core-ui/components/z-tooltip/z-tooltip.variants.ts","../../../../libs/core-ui/components/z-tooltip/z-tooltip.component.ts","../../../../libs/core-ui/components/z-tooltip/z-tooltip.define.ts","../../../../libs/core-ui/components/z-tooltip/z-tooltip.positions.ts","../../../../libs/core-ui/components/z-tooltip/directives/z-tooltip.directive.ts","../../../../libs/core-ui/components/z-tooltip/shival99-z-ui-components-z-tooltip.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\n\nexport const zTooltipVariants = cva(\n ['z-tooltip relative rounded-sm shadow-md', 'z-animate-in z-fade-in z-duration-150'],\n {\n variants: {\n zType: {\n default: 'bg-foreground text-background border border-foreground',\n dark: 'bg-slate-900 text-white border border-slate-700',\n light: 'bg-white text-slate-900 border border-slate-200',\n primary: 'bg-primary text-primary-foreground border border-primary',\n success: 'bg-green-600 text-white border border-green-600',\n warning: 'bg-amber-500 text-white border border-amber-500',\n error: 'bg-red-600 text-white border border-red-600',\n info: 'bg-blue-600 text-white border border-blue-600',\n },\n zSize: {\n sm: 'text-[0.625rem]',\n default: 'text-xs',\n lg: 'text-sm',\n },\n zPosition: {\n top: 'z-slide-in-from-bottom-2',\n 'top-left': 'z-slide-in-from-bottom-2',\n 'top-right': 'z-slide-in-from-bottom-2',\n bottom: 'z-slide-in-from-top-2',\n 'bottom-left': 'z-slide-in-from-top-2',\n 'bottom-right': 'z-slide-in-from-top-2',\n left: 'z-slide-in-from-right-2',\n 'left-top': 'z-slide-in-from-right-2',\n 'left-bottom': 'z-slide-in-from-right-2',\n right: 'z-slide-in-from-left-2',\n 'right-top': 'z-slide-in-from-left-2',\n 'right-bottom': 'z-slide-in-from-left-2',\n },\n },\n defaultVariants: {\n zType: 'default',\n zSize: 'default',\n zPosition: 'top',\n },\n }\n);\n\nexport const zTooltipContentVariants = cva('relative z-10 rounded-xs font-medium p-1.5 break-words leading-[1.7]', {\n variants: {\n zType: {\n default: 'bg-foreground',\n dark: 'bg-slate-900',\n light: 'bg-white',\n primary: 'bg-primary',\n success: 'bg-green-600',\n warning: 'bg-amber-500',\n error: 'bg-red-600',\n info: 'bg-blue-600',\n },\n },\n defaultVariants: {\n zType: 'default',\n },\n});\n\nexport const zTooltipArrowVariants = cva('absolute z-0 size-2.5 rotate-45 rounded-xs', {\n variants: {\n position: {\n top: '-bottom-1 left-1/2 -translate-x-1/2 border-r border-b',\n 'top-left': '-bottom-1 left-3 border-r border-b',\n 'top-right': '-bottom-1 right-3 border-r border-b',\n bottom: '-top-1 left-1/2 -translate-x-1/2 border-l border-t',\n 'bottom-left': '-top-1 left-3 border-l border-t',\n 'bottom-right': '-top-1 right-3 border-l border-t',\n left: 'top-1/2 -translate-y-1/2 -right-1 border-t border-r',\n 'left-top': 'top-2 -right-1 border-t border-r',\n 'left-bottom': 'bottom-2 -right-1 border-t border-r',\n right: 'top-1/2 -translate-y-1/2 -left-1 border-b border-l',\n 'right-top': 'top-2 -left-1 border-b border-l',\n 'right-bottom': 'bottom-2 -left-1 border-b border-l',\n },\n zType: {\n default: 'bg-foreground border-foreground',\n dark: 'bg-slate-900 border-slate-700',\n light: 'bg-white border-slate-200',\n primary: 'bg-primary border-primary',\n success: 'bg-green-600 border-green-600',\n warning: 'bg-amber-500 border-amber-500',\n error: 'bg-red-600 border-red-600',\n info: 'bg-blue-600 border-blue-600',\n },\n },\n defaultVariants: {\n position: 'top',\n zType: 'default',\n },\n});\n\nexport const zTooltipExitVariants = cva('z-animate-out z-fade-out', {\n variants: {\n zPosition: {\n top: 'z-slide-out-to-bottom-2',\n 'top-left': 'z-slide-out-to-bottom-2',\n 'top-right': 'z-slide-out-to-bottom-2',\n bottom: 'z-slide-out-to-top-2',\n 'bottom-left': 'z-slide-out-to-top-2',\n 'bottom-right': 'z-slide-out-to-top-2',\n left: 'z-slide-out-to-right-2',\n 'left-top': 'z-slide-out-to-right-2',\n 'left-bottom': 'z-slide-out-to-right-2',\n right: 'z-slide-out-to-left-2',\n 'right-top': 'z-slide-out-to-left-2',\n 'right-bottom': 'z-slide-out-to-left-2',\n },\n },\n defaultVariants: {\n zPosition: 'top',\n },\n});\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, signal } from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { zMergeClasses } from '@shival99/z-ui/utils';\nimport { ZTooltipPosition } from './z-tooltip.positions';\nimport { type ZTooltipContent, type ZTooltipVariants } from './z-tooltip.types';\nimport {\n zTooltipArrowVariants,\n zTooltipContentVariants,\n zTooltipExitVariants,\n zTooltipVariants,\n} from './z-tooltip.variants';\n\n@Component({\n selector: 'z-tooltip-content',\n imports: [NgTemplateOutlet, TranslatePipe],\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 layer - covers arrow base -->\n <div [class]=\"contentClasses()\">\n @if (isTemplateContent()) {\n <ng-container [ngTemplateOutlet]=\"$any(content())\" />\n } @else if (isHtmlContent()) {\n {{ $any(textOnlyContent()) | translate }}\n } @else {\n {{ $any(content()) | translate }}\n }\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[style.maxWidth]': 'maxWidth()',\n '[attr.data-state]': 'state()',\n '[attr.data-position]': 'position()',\n role: 'tooltip',\n },\n})\nexport class ZTooltipContentComponent {\n public readonly content = signal<ZTooltipContent>('');\n public readonly position = signal<ZTooltipPosition>('top');\n public readonly tooltipType = signal<ZTooltipVariants['zType']>('default');\n public readonly tooltipSize = signal<ZTooltipVariants['zSize']>('default');\n public readonly tooltipClass = signal('');\n public readonly showArrow = signal(true);\n public readonly maxWidth = signal<string>('250px');\n public readonly state = signal<'open' | 'closed'>('open');\n public readonly arrowOffset = signal<number>(0);\n\n protected readonly classes = computed(() => {\n const baseClasses = zTooltipVariants({\n zType: this.tooltipType(),\n zSize: this.tooltipSize(),\n zPosition: this.position(),\n });\n\n const exitClasses = this.state() === 'closed' ? this._getExitAnimationClasses() : '';\n return zMergeClasses(baseClasses, exitClasses, this.tooltipClass());\n });\n\n private _getExitAnimationClasses(): string {\n return zTooltipExitVariants({ zPosition: this.position() });\n }\n\n protected readonly contentClasses = computed(() =>\n zMergeClasses(zTooltipContentVariants({ zType: this.tooltipType() }))\n );\n\n protected readonly arrowClasses = computed(() =>\n zMergeClasses(\n zTooltipArrowVariants({\n position: this.position(),\n zType: this.tooltipType(),\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 protected readonly isTemplateContent = computed(() => {\n const c = this.content();\n return c && typeof c !== 'string';\n });\n\n protected readonly isHtmlContent = computed(() => {\n const c = this.content();\n return typeof c === 'string' && c.includes('<');\n });\n\n protected readonly textOnlyContent = computed(() => {\n const c = this.content();\n if (typeof c === 'string' && c.includes('<')) {\n return this._stripHtmlTags(c);\n }\n return c;\n });\n\n private _stripHtmlTags(html: string): string {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = html;\n return tempDiv.textContent || tempDiv.innerText || '';\n }\n\n public setProps(config: {\n content: ZTooltipContent;\n position: ZTooltipPosition;\n type?: ZTooltipVariants['zType'];\n size?: ZTooltipVariants['zSize'];\n customClass?: string;\n arrow?: boolean;\n maxWidth?: string;\n }): void {\n this.content.set(config.content);\n this.position.set(config.position);\n if (config.type) {\n this.tooltipType.set(config.type);\n }\n if (config.size) {\n this.tooltipSize.set(config.size);\n }\n if (config.customClass) {\n this.tooltipClass.set(config.customClass);\n }\n if (config.arrow !== undefined) {\n this.showArrow.set(config.arrow);\n }\n if (config.maxWidth) {\n this.maxWidth.set(config.maxWidth);\n }\n }\n}\n","export const Z_TOOLTIP_ANIMATION_DURATION = 150;\n","import {\n Z_OVERLAY_FALLBACK_ORDER,\n Z_OVERLAY_PREFERRED_SIDE_ORDER,\n type ZOverlayPlacement,\n} from '@shival99/z-ui/components/z-overlay';\n\nexport type ZTooltipPosition = ZOverlayPlacement;\n\n/**\n * Chọn danh sách fallback (không gồm vị trí chính — Floating UI tự thử vị trí chính trước):\n * nếu cạnh đang hướng tới còn đủ chỗ, chỉ đổi qua các biến thể cùng cạnh (không bao giờ lật\n * sang cạnh đối diện); nếu không đủ, cho phép lật cạnh đối diện.\n */\nexport function getTooltipFallbackPlacements(\n origin: Element,\n position: ZTooltipPosition,\n offset: number\n): ZTooltipPosition[] {\n const rect = origin.getBoundingClientRect();\n const viewportWidth = globalThis.visualViewport?.width ?? globalThis.innerWidth;\n const viewportHeight = globalThis.visualViewport?.height ?? globalThis.innerHeight;\n const availableSpace = {\n top: rect.top,\n bottom: viewportHeight - rect.bottom,\n left: rect.left,\n right: viewportWidth - rect.right,\n };\n const side = position.split('-')[0] as 'top' | 'bottom' | 'left' | 'right';\n const minimumSideSpace = Math.max(40, offset + 32);\n\n if (availableSpace[side] >= minimumSideSpace) {\n return Z_OVERLAY_PREFERRED_SIDE_ORDER[position];\n }\n\n return Z_OVERLAY_FALLBACK_ORDER[position];\n}\n","import { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n type ComponentRef,\n computed,\n DestroyRef,\n Directive,\n ElementRef,\n effect,\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 computeZOverlayArrowOffset,\n computeZOverlayPlacement,\n startZOverlayAutoUpdate,\n ZOverlayService,\n type ZOverlayRef,\n} from '@shival99/z-ui/components/z-overlay';\nimport { zTransform } from '@shival99/z-ui/utils';\nimport { filter, map, of, Subject, switchMap, timer } from 'rxjs';\nimport { ZTooltipContentComponent } from '../z-tooltip.component';\nimport { Z_TOOLTIP_ANIMATION_DURATION } from '../z-tooltip.define';\nimport { getTooltipFallbackPlacements, type ZTooltipPosition } from '../z-tooltip.positions';\nimport { ZTooltipContent, ZTooltipDelayConfig, ZTooltipTrigger, type ZTooltipVariants } from '../z-tooltip.types';\n\n@Directive({\n selector: '[z-tooltip], [zTooltip]',\n standalone: true,\n exportAs: 'zTooltip',\n})\nexport class ZTooltipDirective implements OnInit, OnDestroy {\n public readonly zContent = input<ZTooltipContent>('');\n public readonly zPosition = input<ZTooltipPosition>('top');\n public readonly zTooltipPosition = input<ZTooltipPosition>();\n public readonly zTrigger = input<ZTooltipTrigger>('hover');\n public readonly zTooltipTrigger = input<ZTooltipTrigger>();\n public readonly zType = input<ZTooltipVariants['zType']>('default', {\n alias: 'zTooltipType',\n });\n\n public readonly zSize = input<ZTooltipVariants['zSize']>('default', {\n alias: 'zTooltipSize',\n });\n\n public readonly zClass = input('');\n public readonly zTooltipClass = input<string>();\n public readonly zShowDelay = input(150);\n public readonly zTooltipShowDelay = input<number>();\n public readonly zHideDelay = input(0);\n public readonly zTooltipHideDelay = input<number>();\n public readonly zArrow = input(true, { transform: zTransform });\n public readonly zTooltipArrow = input<boolean | undefined>(undefined);\n public readonly zDisabled = input(false, { transform: zTransform });\n public readonly zTooltipDisabled = input<boolean | undefined>(undefined);\n public readonly zOffset = input(8);\n public readonly zTooltipOffset = input<number>();\n public readonly zAutoDetect = input(true, { transform: zTransform });\n public readonly zTriggerElement = input<HTMLElement | null>(null);\n public readonly zAlwaysShow = input(false, { transform: zTransform });\n public readonly zMaxWidth = input<string>('250px');\n\n private readonly _position = computed(() => this.zTooltipPosition() ?? this.zPosition());\n private readonly _trigger = computed(() => this.zTooltipTrigger() ?? this.zTrigger());\n private readonly _class = computed(() => this.zTooltipClass() ?? this.zClass());\n private readonly _showDelay = computed(() => this.zTooltipShowDelay() ?? this.zShowDelay());\n private readonly _hideDelay = computed(() => this.zTooltipHideDelay() ?? this.zHideDelay());\n private readonly _arrow = computed(() => this.zTooltipArrow() ?? this.zArrow());\n private readonly _disabled = computed(() => this.zTooltipDisabled() ?? this.zDisabled());\n private readonly _offset = computed(() => this.zTooltipOffset() ?? this.zOffset());\n\n public readonly zShow = output<void>();\n public readonly zHide = output<void>();\n\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\n private _overlayRef: ZOverlayRef | null = null;\n private _componentRef: ComponentRef<ZTooltipContentComponent> | null = null;\n private _delaySubject = new Subject<ZTooltipDelayConfig>();\n private _listenerCleanups: (() => void)[] = [];\n private _autoUpdateCleanup: (() => void) | null = null;\n private _hideTimeout: ReturnType<typeof setTimeout> | null = null;\n private readonly _isVisible = signal(false);\n\n constructor() {\n effect(() => {\n if (!this._disabled() && this.zContent()) {\n return;\n }\n\n this._delay(false, 0);\n this._hideTooltipImmediate();\n });\n }\n\n ngOnInit(): void {\n if (!isPlatformBrowser(this._platformId)) {\n return;\n }\n\n this._setupDelayMechanism();\n this._setupTriggers();\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._disabled() || !this.zContent()) {\n return;\n }\n\n if (!this.zAlwaysShow() && this.zAutoDetect() && !this._isTextTruncated()) {\n return;\n }\n\n if (this._isVisible()) {\n this._delay(true, 0);\n return;\n }\n\n this._delay(true, this._showDelay());\n }\n\n private _isTextTruncated(): boolean {\n const hostEl = this._elementRef.nativeElement;\n const triggerEl = this.zTriggerElement();\n\n if (this._isElementTruncated(hostEl)) {\n return true;\n }\n\n const directChildren = hostEl.children;\n for (let i = 0; i < directChildren.length; i++) {\n const child = directChildren[i] as HTMLElement;\n if (this._isElementTruncated(child)) {\n return true;\n }\n\n const grandChildren = child.children;\n for (let j = 0; j < grandChildren.length; j++) {\n if (this._isElementTruncated(grandChildren[j] as HTMLElement)) {\n return true;\n }\n }\n }\n\n if (triggerEl && triggerEl !== hostEl) {\n if (this._isElementTruncated(triggerEl)) {\n return true;\n }\n\n const triggerDirectChildren = triggerEl.children;\n for (let i = 0; i < triggerDirectChildren.length; i++) {\n if (this._isElementTruncated(triggerDirectChildren[i] as HTMLElement)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n private _isElementTruncated(el: HTMLElement): boolean {\n if (el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement) {\n return this._isFormControlValueTruncated(el);\n }\n\n if (el.scrollWidth > el.clientWidth) {\n return true;\n }\n\n if (el.scrollHeight > el.clientHeight) {\n return true;\n }\n\n const styles = getComputedStyle(el);\n if (styles.whiteSpace === 'nowrap' || styles.textOverflow === 'ellipsis') {\n const range = this._document.createRange();\n range.selectNodeContents(el);\n const contentWidth = range.getBoundingClientRect().width;\n const elementWidth = el.getBoundingClientRect().width;\n const paddingLeft = parseFloat(styles.paddingLeft) || 0;\n const paddingRight = parseFloat(styles.paddingRight) || 0;\n const availableWidth = elementWidth - paddingLeft - paddingRight;\n\n if (contentWidth - availableWidth > 0.1) {\n return true;\n }\n }\n\n const lineClamp = styles.getPropertyValue('-webkit-line-clamp');\n if (lineClamp && lineClamp !== 'none') {\n const range = this._document.createRange();\n range.selectNodeContents(el);\n const rangeHeight = range.getBoundingClientRect().height;\n const elHeight = el.getBoundingClientRect().height;\n const paddingTop = parseFloat(styles.paddingTop) || 0;\n const paddingBottom = parseFloat(styles.paddingBottom) || 0;\n const contentHeight = elHeight - paddingTop - paddingBottom;\n if (rangeHeight > contentHeight + 1) {\n return true;\n }\n }\n\n return false;\n }\n\n private _isFormControlValueTruncated(el: HTMLInputElement | HTMLTextAreaElement): boolean {\n if (!el.value) {\n return false;\n }\n\n const styles = getComputedStyle(el);\n const availableWidth =\n el.clientWidth - (parseFloat(styles.paddingLeft) || 0) - (parseFloat(styles.paddingRight) || 0);\n const canvas = this._document.createElement('canvas');\n const context = canvas.getContext('2d');\n\n if (!context) {\n return el.scrollWidth > el.clientWidth;\n }\n\n context.font = styles.font;\n const valueWidth = context.measureText(el.value).width;\n const letterSpacing = parseFloat(styles.letterSpacing);\n const spacingWidth = Number.isNaN(letterSpacing) ? 0 : Math.max(0, el.value.length - 1) * letterSpacing;\n\n return valueWidth + spacingWidth > availableWidth;\n }\n\n public hide(): void {\n this._delay(false, this._hideDelay());\n }\n\n public toggle(): void {\n if (this._isVisible()) {\n this.hide();\n return;\n }\n\n this.show();\n }\n\n private _getAnchorElement(): HTMLElement {\n return this.zTriggerElement() ?? this._elementRef.nativeElement;\n }\n\n private _disposeOverlay(): void {\n this._autoUpdateCleanup?.();\n this._autoUpdateCleanup = null;\n this._overlayRef?.dispose();\n this._overlayRef = null;\n this._componentRef = null;\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._showTooltip();\n return;\n }\n\n this._hideTooltip();\n });\n }\n\n private _setupTriggers(): void {\n this._cleanupListeners();\n const trigger = this._trigger();\n const triggerEl = this.zTriggerElement() || this._elementRef.nativeElement;\n\n this._listenerCleanups.push(\n this._renderer.listen(this._document.defaultView, 'scroll', () => this._delay(false, 0), {\n passive: true,\n capture: true,\n }),\n this._renderer.listen(this._document.defaultView, 'resize', () => this._delay(false, 0), {\n passive: true,\n }),\n this._renderer.listen(this._document.defaultView, 'blur', () => this._delay(false, 0))\n );\n\n if (trigger === 'hover') {\n this._listenerCleanups.push(\n this._renderer.listen(triggerEl, 'mouseenter', () => this.show()),\n this._renderer.listen(triggerEl, 'mouseleave', () => this.hide()),\n this._renderer.listen(triggerEl, 'focus', () => this.show()),\n this._renderer.listen(triggerEl, 'blur', () => this.hide())\n );\n return;\n }\n\n if (trigger === 'click') {\n this._listenerCleanups.push(\n this._renderer.listen(triggerEl, 'click', () => {\n if (this._isVisible()) {\n this._delay(false, 0);\n return;\n }\n\n this._delay(true, this._showDelay());\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._trigger() === 'click'),\n filter(event => !this._elementRef.nativeElement.contains(event.target as Node)),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(() => this._delay(false, 0));\n }\n\n private _delay(show: boolean, delay: number): void {\n this._delaySubject.next({ show, delay });\n }\n\n private async _showTooltip(): Promise<void> {\n const content = this.zContent();\n if (!content || this._disabled()) {\n return;\n }\n\n if (this._componentRef) {\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._overlayService.createAnchored();\n this._setupOutsideClick();\n }\n\n this._componentRef = this._overlayRef.attach(ZTooltipContentComponent);\n\n this._componentRef.instance.setProps({\n content,\n position: this._position(),\n type: this.zType(),\n size: this.zSize(),\n customClass: this._class(),\n arrow: this._arrow(),\n maxWidth: this.zMaxWidth(),\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(this._getAnchorElement(), this._overlayRef.overlayElement, () => {\n void this._applyPosition();\n });\n\n if (this._trigger() === 'hover') {\n this._setupTooltipHover();\n }\n\n this._isVisible.set(true);\n this.zShow.emit();\n }\n\n private async _applyPosition(): Promise<void> {\n if (!this._overlayRef || !this._componentRef) {\n return;\n }\n\n const anchorElement = this._getAnchorElement();\n const floatingElement = this._overlayRef.overlayElement;\n const fallbackPlacements = getTooltipFallbackPlacements(anchorElement, this._position(), this._offset());\n\n const result = await computeZOverlayPlacement({\n reference: anchorElement,\n floating: floatingElement,\n placement: this._position(),\n fallbackPlacements,\n offset: this._offset(),\n flexibleDimensions: true,\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._calculateArrowOffset(result.placement);\n }\n\n private _setupTooltipHover(): 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 this._renderer.listen(overlayElement, 'mouseleave', () => {\n this._delay(false, this._hideDelay());\n })\n );\n }\n\n private _hideTooltip(): void {\n if (!this._componentRef) {\n return;\n }\n\n this._componentRef.instance.state.set('closed');\n this._clearHideTimeout();\n this._hideTimeout = setTimeout(() => {\n if (this._destroyRef.destroyed) {\n return;\n }\n\n this._disposeOverlay();\n this._isVisible.set(false);\n this.zHide.emit();\n }, Z_TOOLTIP_ANIMATION_DURATION);\n }\n\n private _hideTooltipImmediate(): void {\n const wasVisible = this._isVisible();\n this._clearHideTimeout();\n\n if (!this._componentRef && !this._overlayRef) {\n this._isVisible.set(false);\n return;\n }\n\n this._componentRef?.instance.state.set('closed');\n this._disposeOverlay();\n this._isVisible.set(false);\n\n if (wasVisible) {\n this.zHide.emit();\n }\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 private _calculateArrowOffset(position: ZTooltipPosition): void {\n if (!this._overlayRef || !this._componentRef) {\n return;\n }\n\n const triggerElement = this._getAnchorElement();\n const triggerRect = triggerElement.getBoundingClientRect();\n const tooltipRect = this._overlayRef.overlayElement.getBoundingClientRect();\n\n const offset = computeZOverlayArrowOffset({ triggerRect, overlayRect: tooltipRect, placement: position });\n this._componentRef.instance.arrowOffset.set(offset);\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-tooltip.mjs","sources":["../../../../libs/core-ui/components/z-tooltip/z-tooltip.variants.ts","../../../../libs/core-ui/components/z-tooltip/z-tooltip.component.ts","../../../../libs/core-ui/components/z-tooltip/z-tooltip.define.ts","../../../../libs/core-ui/components/z-tooltip/z-tooltip.positions.ts","../../../../libs/core-ui/components/z-tooltip/directives/z-tooltip.directive.ts","../../../../libs/core-ui/components/z-tooltip/shival99-z-ui-components-z-tooltip.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\n\nexport const zTooltipVariants = cva(\n ['z-tooltip relative rounded-sm shadow-md', 'z-animate-in z-fade-in z-duration-150'],\n {\n variants: {\n zType: {\n default: 'bg-foreground text-background border border-foreground',\n dark: 'bg-slate-900 text-white border border-slate-700',\n light: 'bg-white text-slate-900 border border-slate-200',\n primary: 'bg-primary text-primary-foreground border border-primary',\n success: 'bg-green-600 text-white border border-green-600',\n warning: 'bg-amber-500 text-white border border-amber-500',\n error: 'bg-red-600 text-white border border-red-600',\n info: 'bg-blue-600 text-white border border-blue-600',\n },\n zSize: {\n sm: 'text-[0.625rem]',\n default: 'text-xs',\n lg: 'text-sm',\n },\n zPosition: {\n top: 'z-slide-in-from-bottom-2',\n 'top-left': 'z-slide-in-from-bottom-2',\n 'top-right': 'z-slide-in-from-bottom-2',\n bottom: 'z-slide-in-from-top-2',\n 'bottom-left': 'z-slide-in-from-top-2',\n 'bottom-right': 'z-slide-in-from-top-2',\n left: 'z-slide-in-from-right-2',\n 'left-top': 'z-slide-in-from-right-2',\n 'left-bottom': 'z-slide-in-from-right-2',\n right: 'z-slide-in-from-left-2',\n 'right-top': 'z-slide-in-from-left-2',\n 'right-bottom': 'z-slide-in-from-left-2',\n },\n },\n defaultVariants: {\n zType: 'default',\n zSize: 'default',\n zPosition: 'top',\n },\n }\n);\n\nexport const zTooltipContentVariants = cva('relative z-10 rounded-xs font-medium p-1.5 break-words leading-[1.7]', {\n variants: {\n zType: {\n default: 'bg-foreground',\n dark: 'bg-slate-900',\n light: 'bg-white',\n primary: 'bg-primary',\n success: 'bg-green-600',\n warning: 'bg-amber-500',\n error: 'bg-red-600',\n info: 'bg-blue-600',\n },\n },\n defaultVariants: {\n zType: 'default',\n },\n});\n\nexport const zTooltipArrowVariants = cva('absolute z-0 size-2.5 rotate-45 rounded-xs', {\n variants: {\n position: {\n top: '-bottom-1 left-1/2 -translate-x-1/2 border-r border-b',\n 'top-left': '-bottom-1 left-3 border-r border-b',\n 'top-right': '-bottom-1 right-3 border-r border-b',\n bottom: '-top-1 left-1/2 -translate-x-1/2 border-l border-t',\n 'bottom-left': '-top-1 left-3 border-l border-t',\n 'bottom-right': '-top-1 right-3 border-l border-t',\n left: 'top-1/2 -translate-y-1/2 -right-1 border-t border-r',\n 'left-top': 'top-2 -right-1 border-t border-r',\n 'left-bottom': 'bottom-2 -right-1 border-t border-r',\n right: 'top-1/2 -translate-y-1/2 -left-1 border-b border-l',\n 'right-top': 'top-2 -left-1 border-b border-l',\n 'right-bottom': 'bottom-2 -left-1 border-b border-l',\n },\n zType: {\n default: 'bg-foreground border-foreground',\n dark: 'bg-slate-900 border-slate-700',\n light: 'bg-white border-slate-200',\n primary: 'bg-primary border-primary',\n success: 'bg-green-600 border-green-600',\n warning: 'bg-amber-500 border-amber-500',\n error: 'bg-red-600 border-red-600',\n info: 'bg-blue-600 border-blue-600',\n },\n },\n defaultVariants: {\n position: 'top',\n zType: 'default',\n },\n});\n\nexport const zTooltipExitVariants = cva('z-animate-out z-fade-out', {\n variants: {\n zPosition: {\n top: 'z-slide-out-to-bottom-2',\n 'top-left': 'z-slide-out-to-bottom-2',\n 'top-right': 'z-slide-out-to-bottom-2',\n bottom: 'z-slide-out-to-top-2',\n 'bottom-left': 'z-slide-out-to-top-2',\n 'bottom-right': 'z-slide-out-to-top-2',\n left: 'z-slide-out-to-right-2',\n 'left-top': 'z-slide-out-to-right-2',\n 'left-bottom': 'z-slide-out-to-right-2',\n right: 'z-slide-out-to-left-2',\n 'right-top': 'z-slide-out-to-left-2',\n 'right-bottom': 'z-slide-out-to-left-2',\n },\n },\n defaultVariants: {\n zPosition: 'top',\n },\n});\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, signal } from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { zMergeClasses } from '@shival99/z-ui/utils';\nimport { ZTooltipPosition } from './z-tooltip.positions';\nimport { type ZTooltipContent, type ZTooltipVariants } from './z-tooltip.types';\nimport {\n zTooltipArrowVariants,\n zTooltipContentVariants,\n zTooltipExitVariants,\n zTooltipVariants,\n} from './z-tooltip.variants';\n\n@Component({\n selector: 'z-tooltip-content',\n imports: [NgTemplateOutlet, TranslatePipe],\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 layer - covers arrow base -->\n <div [class]=\"contentClasses()\">\n @if (isTemplateContent()) {\n <ng-container [ngTemplateOutlet]=\"$any(content())\" [ngTemplateOutletContext]=\"{ $implicit: context() }\" />\n } @else if (isHtmlContent()) {\n {{ $any(textOnlyContent()) | translate }}\n } @else {\n {{ $any(content()) | translate }}\n }\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[style.maxWidth]': 'maxWidth()',\n '[attr.data-state]': 'state()',\n '[attr.data-position]': 'position()',\n role: 'tooltip',\n },\n})\nexport class ZTooltipContentComponent {\n public readonly content = signal<ZTooltipContent>('');\n public readonly context = signal<unknown>(undefined);\n public readonly position = signal<ZTooltipPosition>('top');\n public readonly tooltipType = signal<ZTooltipVariants['zType']>('default');\n public readonly tooltipSize = signal<ZTooltipVariants['zSize']>('default');\n public readonly tooltipClass = signal('');\n public readonly showArrow = signal(true);\n public readonly maxWidth = signal<string>('250px');\n public readonly state = signal<'open' | 'closed'>('open');\n public readonly arrowOffset = signal<number>(0);\n\n protected readonly classes = computed(() => {\n const baseClasses = zTooltipVariants({\n zType: this.tooltipType(),\n zSize: this.tooltipSize(),\n zPosition: this.position(),\n });\n\n const exitClasses = this.state() === 'closed' ? this._getExitAnimationClasses() : '';\n return zMergeClasses(baseClasses, exitClasses, this.tooltipClass());\n });\n\n private _getExitAnimationClasses(): string {\n return zTooltipExitVariants({ zPosition: this.position() });\n }\n\n protected readonly contentClasses = computed(() =>\n zMergeClasses(zTooltipContentVariants({ zType: this.tooltipType() }))\n );\n\n protected readonly arrowClasses = computed(() =>\n zMergeClasses(\n zTooltipArrowVariants({\n position: this.position(),\n zType: this.tooltipType(),\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 protected readonly isTemplateContent = computed(() => {\n const c = this.content();\n return c && typeof c !== 'string';\n });\n\n protected readonly isHtmlContent = computed(() => {\n const c = this.content();\n return typeof c === 'string' && c.includes('<');\n });\n\n protected readonly textOnlyContent = computed(() => {\n const c = this.content();\n if (typeof c === 'string' && c.includes('<')) {\n return this._stripHtmlTags(c);\n }\n return c;\n });\n\n private _stripHtmlTags(html: string): string {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = html;\n return tempDiv.textContent || tempDiv.innerText || '';\n }\n\n public setProps(config: {\n content: ZTooltipContent;\n context?: unknown;\n position: ZTooltipPosition;\n type?: ZTooltipVariants['zType'];\n size?: ZTooltipVariants['zSize'];\n customClass?: string;\n arrow?: boolean;\n maxWidth?: string;\n }): void {\n this.content.set(config.content);\n this.context.set(config.context);\n this.position.set(config.position);\n if (config.type) {\n this.tooltipType.set(config.type);\n }\n if (config.size) {\n this.tooltipSize.set(config.size);\n }\n if (config.customClass) {\n this.tooltipClass.set(config.customClass);\n }\n if (config.arrow !== undefined) {\n this.showArrow.set(config.arrow);\n }\n if (config.maxWidth) {\n this.maxWidth.set(config.maxWidth);\n }\n }\n}\n","export const Z_TOOLTIP_ANIMATION_DURATION = 150;\n","import {\n Z_OVERLAY_FALLBACK_ORDER,\n Z_OVERLAY_PREFERRED_SIDE_ORDER,\n type ZOverlayPlacement,\n} from '@shival99/z-ui/components/z-overlay';\n\nexport type ZTooltipPosition = ZOverlayPlacement;\n\n/**\n * Chọn danh sách fallback (không gồm vị trí chính — Floating UI tự thử vị trí chính trước):\n * nếu cạnh đang hướng tới còn đủ chỗ, chỉ đổi qua các biến thể cùng cạnh (không bao giờ lật\n * sang cạnh đối diện); nếu không đủ, cho phép lật cạnh đối diện.\n */\nexport function getTooltipFallbackPlacements(\n origin: Element,\n position: ZTooltipPosition,\n offset: number\n): ZTooltipPosition[] {\n const rect = origin.getBoundingClientRect();\n const viewportWidth = globalThis.visualViewport?.width ?? globalThis.innerWidth;\n const viewportHeight = globalThis.visualViewport?.height ?? globalThis.innerHeight;\n const availableSpace = {\n top: rect.top,\n bottom: viewportHeight - rect.bottom,\n left: rect.left,\n right: viewportWidth - rect.right,\n };\n const side = position.split('-')[0] as 'top' | 'bottom' | 'left' | 'right';\n const minimumSideSpace = Math.max(40, offset + 32);\n\n if (availableSpace[side] >= minimumSideSpace) {\n return Z_OVERLAY_PREFERRED_SIDE_ORDER[position];\n }\n\n return Z_OVERLAY_FALLBACK_ORDER[position];\n}\n","import { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n type ComponentRef,\n computed,\n DestroyRef,\n Directive,\n ElementRef,\n effect,\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 computeZOverlayArrowOffset,\n computeZOverlayPlacement,\n startZOverlayAutoUpdate,\n ZOverlayService,\n type ZOverlayRef,\n} from '@shival99/z-ui/components/z-overlay';\nimport { zTransform } from '@shival99/z-ui/utils';\nimport { filter, map, of, Subject, switchMap, timer } from 'rxjs';\nimport { ZTooltipContentComponent } from '../z-tooltip.component';\nimport { Z_TOOLTIP_ANIMATION_DURATION } from '../z-tooltip.define';\nimport { getTooltipFallbackPlacements, type ZTooltipPosition } from '../z-tooltip.positions';\nimport { ZTooltipContent, ZTooltipDelayConfig, ZTooltipTrigger, type ZTooltipVariants } from '../z-tooltip.types';\n\n@Directive({\n selector: '[z-tooltip], [zTooltip]',\n standalone: true,\n exportAs: 'zTooltip',\n})\nexport class ZTooltipDirective implements OnInit, OnDestroy {\n public readonly zContent = input<ZTooltipContent>('');\n public readonly zContext = input<unknown>();\n public readonly zPosition = input<ZTooltipPosition>('top');\n public readonly zTooltipPosition = input<ZTooltipPosition>();\n public readonly zTrigger = input<ZTooltipTrigger>('hover');\n public readonly zTooltipTrigger = input<ZTooltipTrigger>();\n public readonly zType = input<ZTooltipVariants['zType']>('default', {\n alias: 'zTooltipType',\n });\n\n public readonly zSize = input<ZTooltipVariants['zSize']>('default', {\n alias: 'zTooltipSize',\n });\n\n public readonly zClass = input('');\n public readonly zTooltipClass = input<string>();\n public readonly zShowDelay = input(150);\n public readonly zTooltipShowDelay = input<number>();\n public readonly zHideDelay = input(0);\n public readonly zTooltipHideDelay = input<number>();\n public readonly zArrow = input(true, { transform: zTransform });\n public readonly zTooltipArrow = input<boolean | undefined>(undefined);\n public readonly zDisabled = input(false, { transform: zTransform });\n public readonly zTooltipDisabled = input<boolean | undefined>(undefined);\n public readonly zOffset = input(8);\n public readonly zTooltipOffset = input<number>();\n public readonly zAutoDetect = input(true, { transform: zTransform });\n public readonly zTriggerElement = input<HTMLElement | null>(null);\n public readonly zAlwaysShow = input(false, { transform: zTransform });\n public readonly zMaxWidth = input<string>('250px');\n\n private readonly _position = computed(() => this.zTooltipPosition() ?? this.zPosition());\n private readonly _trigger = computed(() => this.zTooltipTrigger() ?? this.zTrigger());\n private readonly _class = computed(() => this.zTooltipClass() ?? this.zClass());\n private readonly _showDelay = computed(() => this.zTooltipShowDelay() ?? this.zShowDelay());\n private readonly _hideDelay = computed(() => this.zTooltipHideDelay() ?? this.zHideDelay());\n private readonly _arrow = computed(() => this.zTooltipArrow() ?? this.zArrow());\n private readonly _disabled = computed(() => this.zTooltipDisabled() ?? this.zDisabled());\n private readonly _offset = computed(() => this.zTooltipOffset() ?? this.zOffset());\n\n public readonly zShow = output<void>();\n public readonly zHide = output<void>();\n\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\n private _overlayRef: ZOverlayRef | null = null;\n private _componentRef: ComponentRef<ZTooltipContentComponent> | null = null;\n private _delaySubject = new Subject<ZTooltipDelayConfig>();\n private _listenerCleanups: (() => void)[] = [];\n private _autoUpdateCleanup: (() => void) | null = null;\n private _hideTimeout: ReturnType<typeof setTimeout> | null = null;\n private readonly _isVisible = signal(false);\n\n constructor() {\n effect(() => {\n if (!this._disabled() && this.zContent()) {\n return;\n }\n\n this._delay(false, 0);\n this._hideTooltipImmediate();\n });\n }\n\n ngOnInit(): void {\n if (!isPlatformBrowser(this._platformId)) {\n return;\n }\n\n this._setupDelayMechanism();\n this._setupTriggers();\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._disabled() || !this.zContent()) {\n return;\n }\n\n if (!this.zAlwaysShow() && this.zAutoDetect() && !this._isTextTruncated()) {\n return;\n }\n\n if (this._isVisible()) {\n this._delay(true, 0);\n return;\n }\n\n this._delay(true, this._showDelay());\n }\n\n private _isTextTruncated(): boolean {\n const hostEl = this._elementRef.nativeElement;\n const triggerEl = this.zTriggerElement();\n\n if (this._isElementTruncated(hostEl)) {\n return true;\n }\n\n const directChildren = hostEl.children;\n for (let i = 0; i < directChildren.length; i++) {\n const child = directChildren[i] as HTMLElement;\n if (this._isElementTruncated(child)) {\n return true;\n }\n\n const grandChildren = child.children;\n for (let j = 0; j < grandChildren.length; j++) {\n if (this._isElementTruncated(grandChildren[j] as HTMLElement)) {\n return true;\n }\n }\n }\n\n if (triggerEl && triggerEl !== hostEl) {\n if (this._isElementTruncated(triggerEl)) {\n return true;\n }\n\n const triggerDirectChildren = triggerEl.children;\n for (let i = 0; i < triggerDirectChildren.length; i++) {\n if (this._isElementTruncated(triggerDirectChildren[i] as HTMLElement)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n private _isElementTruncated(el: HTMLElement): boolean {\n if (el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement) {\n return this._isFormControlValueTruncated(el);\n }\n\n if (el.scrollWidth > el.clientWidth) {\n return true;\n }\n\n if (el.scrollHeight > el.clientHeight) {\n return true;\n }\n\n const styles = getComputedStyle(el);\n if (styles.whiteSpace === 'nowrap' || styles.textOverflow === 'ellipsis') {\n const range = this._document.createRange();\n range.selectNodeContents(el);\n const contentWidth = range.getBoundingClientRect().width;\n const elementWidth = el.getBoundingClientRect().width;\n const paddingLeft = parseFloat(styles.paddingLeft) || 0;\n const paddingRight = parseFloat(styles.paddingRight) || 0;\n const availableWidth = elementWidth - paddingLeft - paddingRight;\n\n if (contentWidth - availableWidth > 0.1) {\n return true;\n }\n }\n\n const lineClamp = styles.getPropertyValue('-webkit-line-clamp');\n if (lineClamp && lineClamp !== 'none') {\n const range = this._document.createRange();\n range.selectNodeContents(el);\n const rangeHeight = range.getBoundingClientRect().height;\n const elHeight = el.getBoundingClientRect().height;\n const paddingTop = parseFloat(styles.paddingTop) || 0;\n const paddingBottom = parseFloat(styles.paddingBottom) || 0;\n const contentHeight = elHeight - paddingTop - paddingBottom;\n if (rangeHeight > contentHeight + 1) {\n return true;\n }\n }\n\n return false;\n }\n\n private _isFormControlValueTruncated(el: HTMLInputElement | HTMLTextAreaElement): boolean {\n if (!el.value) {\n return false;\n }\n\n const styles = getComputedStyle(el);\n const availableWidth =\n el.clientWidth - (parseFloat(styles.paddingLeft) || 0) - (parseFloat(styles.paddingRight) || 0);\n const canvas = this._document.createElement('canvas');\n const context = canvas.getContext('2d');\n\n if (!context) {\n return el.scrollWidth > el.clientWidth;\n }\n\n context.font = styles.font;\n const valueWidth = context.measureText(el.value).width;\n const letterSpacing = parseFloat(styles.letterSpacing);\n const spacingWidth = Number.isNaN(letterSpacing) ? 0 : Math.max(0, el.value.length - 1) * letterSpacing;\n\n return valueWidth + spacingWidth > availableWidth;\n }\n\n public hide(): void {\n this._delay(false, this._hideDelay());\n }\n\n public toggle(): void {\n if (this._isVisible()) {\n this.hide();\n return;\n }\n\n this.show();\n }\n\n private _getAnchorElement(): HTMLElement {\n return this.zTriggerElement() ?? this._elementRef.nativeElement;\n }\n\n private _disposeOverlay(): void {\n this._autoUpdateCleanup?.();\n this._autoUpdateCleanup = null;\n this._overlayRef?.dispose();\n this._overlayRef = null;\n this._componentRef = null;\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._showTooltip();\n return;\n }\n\n this._hideTooltip();\n });\n }\n\n private _setupTriggers(): void {\n this._cleanupListeners();\n const trigger = this._trigger();\n const triggerEl = this.zTriggerElement() || this._elementRef.nativeElement;\n\n this._listenerCleanups.push(\n this._renderer.listen(this._document.defaultView, 'scroll', () => this._delay(false, 0), {\n passive: true,\n capture: true,\n }),\n this._renderer.listen(this._document.defaultView, 'resize', () => this._delay(false, 0), {\n passive: true,\n }),\n this._renderer.listen(this._document.defaultView, 'blur', () => this._delay(false, 0))\n );\n\n if (trigger === 'hover') {\n this._listenerCleanups.push(\n this._renderer.listen(triggerEl, 'mouseenter', () => this.show()),\n this._renderer.listen(triggerEl, 'mouseleave', () => this.hide()),\n this._renderer.listen(triggerEl, 'focus', () => this.show()),\n this._renderer.listen(triggerEl, 'blur', () => this.hide())\n );\n return;\n }\n\n if (trigger === 'click') {\n this._listenerCleanups.push(\n this._renderer.listen(triggerEl, 'click', () => {\n if (this._isVisible()) {\n this._delay(false, 0);\n return;\n }\n\n this._delay(true, this._showDelay());\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._trigger() === 'click'),\n filter(event => !this._elementRef.nativeElement.contains(event.target as Node)),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(() => this._delay(false, 0));\n }\n\n private _delay(show: boolean, delay: number): void {\n this._delaySubject.next({ show, delay });\n }\n\n private async _showTooltip(): Promise<void> {\n const content = this.zContent();\n if (!content || this._disabled()) {\n return;\n }\n\n if (this._componentRef) {\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._overlayService.createAnchored();\n this._setupOutsideClick();\n }\n\n this._componentRef = this._overlayRef.attach(ZTooltipContentComponent);\n\n this._componentRef.instance.setProps({\n content,\n context: this.zContext(),\n position: this._position(),\n type: this.zType(),\n size: this.zSize(),\n customClass: this._class(),\n arrow: this._arrow(),\n maxWidth: this.zMaxWidth(),\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(this._getAnchorElement(), this._overlayRef.overlayElement, () => {\n void this._applyPosition();\n });\n\n if (this._trigger() === 'hover') {\n this._setupTooltipHover();\n }\n\n this._isVisible.set(true);\n this.zShow.emit();\n }\n\n private async _applyPosition(): Promise<void> {\n if (!this._overlayRef || !this._componentRef) {\n return;\n }\n\n const anchorElement = this._getAnchorElement();\n const floatingElement = this._overlayRef.overlayElement;\n const fallbackPlacements = getTooltipFallbackPlacements(anchorElement, this._position(), this._offset());\n\n const result = await computeZOverlayPlacement({\n reference: anchorElement,\n floating: floatingElement,\n placement: this._position(),\n fallbackPlacements,\n offset: this._offset(),\n flexibleDimensions: true,\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._calculateArrowOffset(result.placement);\n }\n\n private _setupTooltipHover(): 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 this._renderer.listen(overlayElement, 'mouseleave', () => {\n this._delay(false, this._hideDelay());\n })\n );\n }\n\n private _hideTooltip(): void {\n if (!this._componentRef) {\n return;\n }\n\n this._componentRef.instance.state.set('closed');\n this._clearHideTimeout();\n this._hideTimeout = setTimeout(() => {\n if (this._destroyRef.destroyed) {\n return;\n }\n\n this._disposeOverlay();\n this._isVisible.set(false);\n this.zHide.emit();\n }, Z_TOOLTIP_ANIMATION_DURATION);\n }\n\n private _hideTooltipImmediate(): void {\n const wasVisible = this._isVisible();\n this._clearHideTimeout();\n\n if (!this._componentRef && !this._overlayRef) {\n this._isVisible.set(false);\n return;\n }\n\n this._componentRef?.instance.state.set('closed');\n this._disposeOverlay();\n this._isVisible.set(false);\n\n if (wasVisible) {\n this.zHide.emit();\n }\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 private _calculateArrowOffset(position: ZTooltipPosition): void {\n if (!this._overlayRef || !this._componentRef) {\n return;\n }\n\n const triggerElement = this._getAnchorElement();\n const triggerRect = triggerElement.getBoundingClientRect();\n const tooltipRect = this._overlayRef.overlayElement.getBoundingClientRect();\n\n const offset = computeZOverlayArrowOffset({ triggerRect, overlayRect: tooltipRect, placement: position });\n this._componentRef.instance.arrowOffset.set(offset);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -528,7 +528,7 @@ class ZUploadComponent {
528
528
  multi: true,
529
529
  },
530
530
  TranslatePipe,
531
- ], viewQueries: [{ propertyName: "fileInputRef", first: true, predicate: ["fileInput"], descendants: true, isSignal: true }], exportAs: ["zUpload"], ngImport: i0, template: "<div class=\"z-upload-wrapper flex w-full flex-col gap-2\">\n @if (zLabel()) {\n <label [id]=\"labelId\" class=\"text-xs leading-none font-medium\" [class]=\"zLabelClass()\">\n {{ zLabel() }}\n @if (zRequired()) {\n <span class=\"text-destructive! ml-0.5\">*</span>\n }\n </label>\n }\n\n <div\n class=\"z-upload-dropzone\"\n [class]=\"dropzoneClasses()\"\n (click)=\"openFileDialog()\"\n (dragover)=\"onDragOver($event)\"\n (dragleave)=\"onDragLeave($event)\"\n (drop)=\"onDrop($event)\">\n @if (zLoading()) {\n <div class=\"bg-background/80 absolute inset-0 z-10 flex items-center justify-center rounded-sm\">\n <svg\n class=\"text-primary size-6 animate-spin\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\">\n <path d=\"M21 12a9 9 0 1 1-6.219-8.56\" />\n </svg>\n </div>\n }\n\n <svg\n class=\"text-muted-foreground\"\n [class.size-5]=\"zSize() === 'sm'\"\n [class.size-6]=\"zSize() === 'default'\"\n [class.size-8]=\"zSize() === 'lg'\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n @if (isDragOver()) {\n <path d=\"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242\" />\n <path d=\"M12 12v9\" />\n <path d=\"m16 16-4-4-4 4\" />\n } @else {\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\" />\n <polyline points=\"17 8 12 3 7 8\" />\n <line x1=\"12\" x2=\"12\" y1=\"3\" y2=\"15\" />\n }\n </svg>\n\n <div class=\"text-center\">\n <p class=\"text-muted-foreground m-0 text-sm\">\n @if (isDragOver()) {\n {{ 'i18n_z_ui_upload_drop_here' | translate }}\n } @else {\n {{ 'i18n_z_ui_upload_drag_drop' | translate }}\n {{ 'i18n_z_ui_upload_or' | translate }}\n <span class=\"text-primary cursor-pointer font-medium\">{{ 'i18n_z_ui_upload_browse' | translate }}</span>\n }\n </p>\n\n @if (zNote() || zAcceptFile() !== '*') {\n <div class=\"text-muted-foreground/70 mt-2 flex flex-col gap-0.5 text-xs\">\n @if (zNote()) {\n <span>{{ zNote() }}</span>\n }\n @if (zAcceptFile() !== '*') {\n <span>{{ 'i18n_z_ui_upload_accepted' | translate }}: {{ zAcceptFile() }}</span>\n }\n </div>\n }\n </div>\n\n <input\n #fileInput\n type=\"file\"\n class=\"hidden\"\n [id]=\"inputId\"\n [accept]=\"acceptTypes()\"\n [multiple]=\"zMultipleFile()\"\n [disabled]=\"isBlocked()\"\n [attr.aria-labelledby]=\"zLabel() ? labelId : null\"\n (change)=\"onFileSelected($event)\" />\n </div>\n\n @if (showError()) {\n <p class=\"text-destructive animate-in fade-in slide-in-from-top-1 m-0 text-xs duration-200\">\n {{ errorMessage() }}\n </p>\n }\n\n @if (files().length > 0) {\n <div class=\"z-upload-file-list flex flex-col gap-1.5\">\n @for (file of files(); track file.id) {\n <div [class]=\"getFileItemClasses(file)\" class=\"relative overflow-hidden p-2!\">\n <!-- Progress border at bottom -->\n @if (zShowProgress() && file.status === 'uploading') {\n <div\n class=\"bg-primary absolute bottom-0 left-0 h-0.5 transition-all duration-300\"\n [style.width.%]=\"file.progress\"></div>\n }\n\n <div class=\"bg-muted relative flex size-8 shrink-0 items-center justify-center self-start rounded-sm\">\n <z-icon zType=\"lucideFile\" zSize=\"16\" class=\"text-muted-foreground\" />\n </div>\n\n <div class=\"flex min-w-0 flex-1 flex-col\">\n <div class=\"flex items-center gap-1.5\">\n <span class=\"line-clamp-2 text-xs font-medium\" z-tooltip [zContent]=\"file.name\" [zAlwaysShow]=\"false\">\n {{ file.name }}\n </span>\n\n @if (file.status === 'uploading') {\n <z-loading zSize=\"2xs\" class=\"shrink-0\" [zLoading]=\"true\" />\n @if (zShowProgress() && file.progress > 0) {\n <span class=\"text-primary shrink-0 text-[0.625rem] font-medium\">{{ file.progress }}%</span>\n }\n }\n @if (file.status === 'success') {\n <z-icon zType=\"lucideCheckCircle\" zSize=\"14\" class=\"shrink-0 text-green-500\" />\n }\n @if (file.status === 'error') {\n <z-icon zType=\"lucideXCircle\" zSize=\"14\" class=\"text-destructive shrink-0\" />\n }\n </div>\n\n <span class=\"text-muted-foreground mt-0.5 text-[0.625rem]\">\n {{ formatFileSize(file.size) }}\n </span>\n </div>\n\n <div class=\"flex shrink-0 items-center gap-0.5\">\n @if (file.url || file.file) {\n <button\n type=\"button\"\n class=\"group hover:bg-accent flex size-6 cursor-pointer items-center justify-center rounded-sm transition-colors\"\n [class.pointer-events-none]=\"zLoading()\"\n [class.opacity-50]=\"zLoading()\"\n (click)=\"downloadFile(file); $event.stopPropagation()\">\n <z-icon zType=\"lucideDownload\" zSize=\"14\" class=\"text-muted-foreground\" />\n </button>\n }\n\n @if (!zReadonly()) {\n <button\n type=\"button\"\n class=\"hover:bg-destructive/10 flex size-6 cursor-pointer items-center justify-center rounded-sm transition-colors\"\n [class.pointer-events-none]=\"zLoading()\"\n [class.opacity-50]=\"zLoading()\"\n (click)=\"removeFile(file); $event.stopPropagation()\">\n <z-icon zType=\"lucideX\" zSize=\"14\" class=\"text-destructive\" />\n </button>\n }\n </div>\n </div>\n }\n </div>\n }\n</div>\n", styles: [".z-upload-wrapper .z-upload-dropzone:focus-visible{outline:2px solid var(--color-ring);outline-offset:2px}.z-upload-wrapper .z-upload-progress-bar .z-upload-progress-fill{transition:width .3s ease-out}.z-upload-wrapper .z-upload-file-list{animation:z-upload-slide-in .2s ease-out}@keyframes z-upload-slide-in{0%{opacity:0;transform:translateY(-.25rem)}to{opacity:1;transform:translateY(0)}}\n"], dependencies: [{ kind: "component", type: ZIconComponent, selector: "z-icon, [z-icon]", inputs: ["class", "zType", "zAnimatedType", "zAnimate", "zAnimationTrigger", "zSize", "zStrokeWidth", "zSvg"] }, { kind: "component", type: ZLoadingComponent, selector: "z-loading", inputs: ["class", "zSpinner", "zSize", "zColor", "zText", "zOverlay", "zOverlayType", "zFullscreen", "zLoading"] }, { kind: "directive", type: ZTooltipDirective, selector: "[z-tooltip], [zTooltip]", inputs: ["zContent", "zPosition", "zTooltipPosition", "zTrigger", "zTooltipTrigger", "zTooltipType", "zTooltipSize", "zClass", "zTooltipClass", "zShowDelay", "zTooltipShowDelay", "zHideDelay", "zTooltipHideDelay", "zArrow", "zTooltipArrow", "zDisabled", "zTooltipDisabled", "zOffset", "zTooltipOffset", "zAutoDetect", "zTriggerElement", "zAlwaysShow", "zMaxWidth"], outputs: ["zShow", "zHide"], exportAs: ["zTooltip"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
531
+ ], viewQueries: [{ propertyName: "fileInputRef", first: true, predicate: ["fileInput"], descendants: true, isSignal: true }], exportAs: ["zUpload"], ngImport: i0, template: "<div class=\"z-upload-wrapper flex w-full flex-col gap-2\">\n @if (zLabel()) {\n <label [id]=\"labelId\" class=\"text-xs leading-none font-medium\" [class]=\"zLabelClass()\">\n {{ zLabel() }}\n @if (zRequired()) {\n <span class=\"text-destructive! ml-0.5\">*</span>\n }\n </label>\n }\n\n <div\n class=\"z-upload-dropzone\"\n [class]=\"dropzoneClasses()\"\n (click)=\"openFileDialog()\"\n (dragover)=\"onDragOver($event)\"\n (dragleave)=\"onDragLeave($event)\"\n (drop)=\"onDrop($event)\">\n @if (zLoading()) {\n <div class=\"bg-background/80 absolute inset-0 z-10 flex items-center justify-center rounded-sm\">\n <svg\n class=\"text-primary size-6 animate-spin\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\">\n <path d=\"M21 12a9 9 0 1 1-6.219-8.56\" />\n </svg>\n </div>\n }\n\n <svg\n class=\"text-muted-foreground\"\n [class.size-5]=\"zSize() === 'sm'\"\n [class.size-6]=\"zSize() === 'default'\"\n [class.size-8]=\"zSize() === 'lg'\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n @if (isDragOver()) {\n <path d=\"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242\" />\n <path d=\"M12 12v9\" />\n <path d=\"m16 16-4-4-4 4\" />\n } @else {\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\" />\n <polyline points=\"17 8 12 3 7 8\" />\n <line x1=\"12\" x2=\"12\" y1=\"3\" y2=\"15\" />\n }\n </svg>\n\n <div class=\"text-center\">\n <p class=\"text-muted-foreground m-0 text-sm\">\n @if (isDragOver()) {\n {{ 'i18n_z_ui_upload_drop_here' | translate }}\n } @else {\n {{ 'i18n_z_ui_upload_drag_drop' | translate }}\n {{ 'i18n_z_ui_upload_or' | translate }}\n <span class=\"text-primary cursor-pointer font-medium\">{{ 'i18n_z_ui_upload_browse' | translate }}</span>\n }\n </p>\n\n @if (zNote() || zAcceptFile() !== '*') {\n <div class=\"text-muted-foreground/70 mt-2 flex flex-col gap-0.5 text-xs\">\n @if (zNote()) {\n <span>{{ zNote() }}</span>\n }\n @if (zAcceptFile() !== '*') {\n <span>{{ 'i18n_z_ui_upload_accepted' | translate }}: {{ zAcceptFile() }}</span>\n }\n </div>\n }\n </div>\n\n <input\n #fileInput\n type=\"file\"\n class=\"hidden\"\n [id]=\"inputId\"\n [accept]=\"acceptTypes()\"\n [multiple]=\"zMultipleFile()\"\n [disabled]=\"isBlocked()\"\n [attr.aria-labelledby]=\"zLabel() ? labelId : null\"\n (change)=\"onFileSelected($event)\" />\n </div>\n\n @if (showError()) {\n <p class=\"text-destructive animate-in fade-in slide-in-from-top-1 m-0 text-xs duration-200\">\n {{ errorMessage() }}\n </p>\n }\n\n @if (files().length > 0) {\n <div class=\"z-upload-file-list flex flex-col gap-1.5\">\n @for (file of files(); track file.id) {\n <div [class]=\"getFileItemClasses(file)\" class=\"relative overflow-hidden p-2!\">\n <!-- Progress border at bottom -->\n @if (zShowProgress() && file.status === 'uploading') {\n <div\n class=\"bg-primary absolute bottom-0 left-0 h-0.5 transition-all duration-300\"\n [style.width.%]=\"file.progress\"></div>\n }\n\n <div class=\"bg-muted relative flex size-8 shrink-0 items-center justify-center self-start rounded-sm\">\n <z-icon zType=\"lucideFile\" zSize=\"16\" class=\"text-muted-foreground\" />\n </div>\n\n <div class=\"flex min-w-0 flex-1 flex-col\">\n <div class=\"flex items-center gap-1.5\">\n <span class=\"line-clamp-2 text-xs font-medium\" z-tooltip [zContent]=\"file.name\" [zAlwaysShow]=\"false\">\n {{ file.name }}\n </span>\n\n @if (file.status === 'uploading') {\n <z-loading zSize=\"2xs\" class=\"shrink-0\" [zLoading]=\"true\" />\n @if (zShowProgress() && file.progress > 0) {\n <span class=\"text-primary shrink-0 text-[0.625rem] font-medium\">{{ file.progress }}%</span>\n }\n }\n @if (file.status === 'success') {\n <z-icon zType=\"lucideCheckCircle\" zSize=\"14\" class=\"shrink-0 text-green-500\" />\n }\n @if (file.status === 'error') {\n <z-icon zType=\"lucideXCircle\" zSize=\"14\" class=\"text-destructive shrink-0\" />\n }\n </div>\n\n <span class=\"text-muted-foreground mt-0.5 text-[0.625rem]\">\n {{ formatFileSize(file.size) }}\n </span>\n </div>\n\n <div class=\"flex shrink-0 items-center gap-0.5\">\n @if (file.url || file.file) {\n <button\n type=\"button\"\n class=\"group hover:bg-accent flex size-6 cursor-pointer items-center justify-center rounded-sm transition-colors\"\n [class.pointer-events-none]=\"zLoading()\"\n [class.opacity-50]=\"zLoading()\"\n (click)=\"downloadFile(file); $event.stopPropagation()\">\n <z-icon zType=\"lucideDownload\" zSize=\"14\" class=\"text-muted-foreground\" />\n </button>\n }\n\n @if (!zReadonly()) {\n <button\n type=\"button\"\n class=\"hover:bg-destructive/10 flex size-6 cursor-pointer items-center justify-center rounded-sm transition-colors\"\n [class.pointer-events-none]=\"zLoading()\"\n [class.opacity-50]=\"zLoading()\"\n (click)=\"removeFile(file); $event.stopPropagation()\">\n <z-icon zType=\"lucideX\" zSize=\"14\" class=\"text-destructive\" />\n </button>\n }\n </div>\n </div>\n }\n </div>\n }\n</div>\n", styles: [".z-upload-wrapper .z-upload-dropzone:focus-visible{outline:2px solid var(--color-ring);outline-offset:2px}.z-upload-wrapper .z-upload-progress-bar .z-upload-progress-fill{transition:width .3s ease-out}.z-upload-wrapper .z-upload-file-list{animation:z-upload-slide-in .2s ease-out}@keyframes z-upload-slide-in{0%{opacity:0;transform:translateY(-.25rem)}to{opacity:1;transform:translateY(0)}}\n"], dependencies: [{ kind: "component", type: ZIconComponent, selector: "z-icon, [z-icon]", inputs: ["class", "zType", "zAnimatedType", "zAnimate", "zAnimationTrigger", "zSize", "zStrokeWidth", "zSvg"] }, { kind: "component", type: ZLoadingComponent, selector: "z-loading", inputs: ["class", "zSpinner", "zSize", "zColor", "zText", "zOverlay", "zOverlayType", "zFullscreen", "zLoading"] }, { kind: "directive", type: ZTooltipDirective, selector: "[z-tooltip], [zTooltip]", inputs: ["zContent", "zContext", "zPosition", "zTooltipPosition", "zTrigger", "zTooltipTrigger", "zTooltipType", "zTooltipSize", "zClass", "zTooltipClass", "zShowDelay", "zTooltipShowDelay", "zHideDelay", "zTooltipHideDelay", "zArrow", "zTooltipArrow", "zDisabled", "zTooltipDisabled", "zOffset", "zTooltipOffset", "zAutoDetect", "zTriggerElement", "zAlwaysShow", "zMaxWidth"], outputs: ["zShow", "zHide"], exportAs: ["zTooltip"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
532
532
  }
533
533
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ZUploadComponent, decorators: [{
534
534
  type: Component,