@shival99/z-ui 2.5.7 → 2.5.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/shival99-z-ui-components-z-autocomplete.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-autocomplete.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-avatar.mjs +45 -10
- package/fesm2022/shival99-z-ui-components-z-avatar.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-badge.mjs +94 -0
- package/fesm2022/shival99-z-ui-components-z-badge.mjs.map +1 -0
- package/fesm2022/shival99-z-ui-components-z-calendar.mjs +9 -4
- package/fesm2022/shival99-z-ui-components-z-calendar.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-dropdown-menu.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-dropdown-menu.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-editor.mjs +2 -2
- package/fesm2022/shival99-z-ui-components-z-editor.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-gallery.mjs +2 -2
- package/fesm2022/shival99-z-ui-components-z-gallery.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-input.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-input.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-kanban.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-kanban.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-menu.mjs +2 -2
- package/fesm2022/shival99-z-ui-components-z-menu.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-modal.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-modal.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-popover.mjs +49 -0
- package/fesm2022/shival99-z-ui-components-z-popover.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-select.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-select.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-steps.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-steps.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-table.mjs +3 -3
- package/fesm2022/shival99-z-ui-components-z-table.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-tabs.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-tabs.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-tags.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-tags.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-tooltip.mjs +10 -4
- package/fesm2022/shival99-z-ui-components-z-tooltip.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-upload.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-upload.mjs.map +1 -1
- package/package.json +5 -1
- package/types/shival99-z-ui-components-z-autocomplete.d.ts +1 -1
- package/types/shival99-z-ui-components-z-avatar.d.ts +10 -2
- package/types/shival99-z-ui-components-z-badge.d.ts +50 -0
- package/types/shival99-z-ui-components-z-calendar.d.ts +5 -5
- package/types/shival99-z-ui-components-z-editor.d.ts +1 -1
- package/types/shival99-z-ui-components-z-modal.d.ts +1 -1
- package/types/shival99-z-ui-components-z-popover.d.ts +2 -0
- package/types/shival99-z-ui-components-z-select.d.ts +2 -2
- package/types/shival99-z-ui-components-z-table.d.ts +1 -1
- package/types/shival99-z-ui-components-z-tooltip.d.ts +2 -1
- package/types/shival99-z-ui-components-z-upload.d.ts +3 -3
|
@@ -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":"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"}
|
|
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,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;;"}
|
|
@@ -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,
|