@shival99/z-ui 2.1.5 → 2.1.6
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-popover.mjs +6 -5
- package/fesm2022/shival99-z-ui-components-z-popover.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-table.mjs +164 -2
- package/fesm2022/shival99-z-ui-components-z-table.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-tooltip.mjs +2 -1
- package/fesm2022/shival99-z-ui-components-z-tooltip.mjs.map +1 -1
- package/package.json +1 -1
- package/types/shival99-z-ui-components-z-autocomplete.d.ts +1 -1
- package/types/shival99-z-ui-components-z-editor.d.ts +1 -1
- package/types/shival99-z-ui-components-z-gallery.d.ts +4 -4
- package/types/shival99-z-ui-components-z-modal.d.ts +1 -1
- package/types/shival99-z-ui-components-z-popover.d.ts +1 -1
- package/types/shival99-z-ui-components-z-select.d.ts +1 -1
- package/types/shival99-z-ui-components-z-table.d.ts +58 -9
- package/types/shival99-z-ui-components-z-tooltip.d.ts +1 -0
- package/types/shival99-z-ui-components-z-upload.d.ts +3 -3
|
@@ -738,7 +738,8 @@ class ZTooltipDirective {
|
|
|
738
738
|
if (!this._overlayRef || !this._componentRef) {
|
|
739
739
|
return;
|
|
740
740
|
}
|
|
741
|
-
const
|
|
741
|
+
const triggerElement = this.zTriggerElement() ?? this._elementRef.nativeElement;
|
|
742
|
+
const triggerRect = triggerElement.getBoundingClientRect();
|
|
742
743
|
const tooltipRect = this._overlayRef.overlayElement.getBoundingClientRect();
|
|
743
744
|
let offset = 0;
|
|
744
745
|
if (position === 'top' || position === 'bottom') {
|
|
@@ -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.positions.ts","../../../../libs/core-ui/components/z-tooltip/z-tooltip.types.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, type VariantProps } from 'class-variance-authority';\n\nexport const zTooltipVariants = cva(\n ['z-tooltip relative rounded-[0.3125rem] 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(\n 'relative z-10 rounded-[0.25rem] font-medium p-1.5 break-words leading-[1.7]',\n {\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);\n\nexport const zTooltipArrowVariants = cva('absolute z-0 size-2.5 rotate-45 rounded-[0.1875rem]', {\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\nexport type ZTooltipVariants = VariantProps<typeof zTooltipVariants>;\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 } from './z-tooltip.types';\nimport {\n zTooltipArrowVariants,\n zTooltipContentVariants,\n zTooltipExitVariants,\n zTooltipVariants,\n type 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","import type {\n ConnectedOverlayPositionChange,\n ConnectedPosition,\n FlexibleConnectedPositionStrategy,\n FlexibleConnectedPositionStrategyOrigin,\n OverlayPositionBuilder,\n} from '@angular/cdk/overlay';\n\nexport type ZTooltipPosition =\n | 'top'\n | 'top-left'\n | 'top-right'\n | 'bottom'\n | 'bottom-left'\n | 'bottom-right'\n | 'left'\n | 'left-top'\n | 'left-bottom'\n | 'right'\n | 'right-top'\n | 'right-bottom';\n\nexport function createTooltipPosition(position: ZTooltipPosition, offset: number): ConnectedPosition {\n const positions: Record<ZTooltipPosition, ConnectedPosition> = {\n top: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetY: -offset,\n },\n 'top-left': {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -offset,\n },\n 'top-right': {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetY: -offset,\n },\n bottom: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: offset,\n },\n 'bottom-left': {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: offset,\n },\n 'bottom-right': {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: offset,\n },\n left: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n offsetX: -offset,\n },\n 'left-top': {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: -offset,\n },\n 'left-bottom': {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetX: -offset,\n },\n right: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n offsetX: offset,\n },\n 'right-top': {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: offset,\n },\n 'right-bottom': {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetX: offset,\n },\n };\n\n return positions[position];\n}\n\nexport function getTooltipFallbackPositions(position: ZTooltipPosition, offset: number): ConnectedPosition[] {\n const fallbackOrder: Record<ZTooltipPosition, ZTooltipPosition[]> = {\n top: ['top', 'bottom', 'top-left', 'top-right', 'bottom-left', 'bottom-right'],\n 'top-left': ['top-left', 'bottom-left', 'top', 'bottom', 'top-right', 'bottom-right'],\n 'top-right': ['top-right', 'bottom-right', 'top', 'bottom', 'top-left', 'bottom-left'],\n bottom: ['bottom', 'top', 'bottom-left', 'bottom-right', 'top-left', 'top-right'],\n 'bottom-left': ['bottom-left', 'top-left', 'bottom', 'top', 'bottom-right', 'top-right'],\n 'bottom-right': ['bottom-right', 'top-right', 'bottom', 'top', 'bottom-left', 'top-left'],\n left: ['left', 'right', 'left-top', 'left-bottom', 'right-top', 'right-bottom'],\n 'left-top': ['left-top', 'right-top', 'left', 'right', 'left-bottom', 'right-bottom'],\n 'left-bottom': ['left-bottom', 'right-bottom', 'left', 'right', 'left-top', 'right-top'],\n right: ['right', 'left', 'right-top', 'right-bottom', 'left-top', 'left-bottom'],\n 'right-top': ['right-top', 'left-top', 'right', 'left', 'right-bottom', 'left-bottom'],\n 'right-bottom': ['right-bottom', 'left-bottom', 'right', 'left', 'right-top', 'left-top'],\n };\n\n const orderedPositions = fallbackOrder[position] ?? [position];\n\n return orderedPositions.map(pos => createTooltipPosition(pos, offset));\n}\n\nexport function createTooltipPositionStrategy(\n overlayPositionBuilder: OverlayPositionBuilder,\n origin: FlexibleConnectedPositionStrategyOrigin,\n position: ZTooltipPosition,\n offset: number\n): FlexibleConnectedPositionStrategy {\n return overlayPositionBuilder\n .flexibleConnectedTo(origin)\n .withPositions(getTooltipFallbackPositions(position, offset))\n .withFlexibleDimensions(false)\n .withPush(true)\n .withViewportMargin(8);\n}\n\nexport function getActualPosition(change: ConnectedOverlayPositionChange): ZTooltipPosition {\n const { originX, originY, overlayX, overlayY } = change.connectionPair;\n\n if (overlayY === 'bottom' && originY === 'top') {\n if (originX === 'start' && overlayX === 'start') {\n return 'top-left';\n }\n if (originX === 'end' && overlayX === 'end') {\n return 'top-right';\n }\n return 'top';\n }\n\n if (overlayY === 'top' && originY === 'bottom') {\n if (originX === 'start' && overlayX === 'start') {\n return 'bottom-left';\n }\n if (originX === 'end' && overlayX === 'end') {\n return 'bottom-right';\n }\n return 'bottom';\n }\n\n if (overlayX === 'end' && originX === 'start') {\n if (originY === 'top' && overlayY === 'top') {\n return 'left-top';\n }\n if (originY === 'bottom' && overlayY === 'bottom') {\n return 'left-bottom';\n }\n return 'left';\n }\n\n if (overlayX === 'start' && originX === 'end') {\n if (originY === 'top' && overlayY === 'top') {\n return 'right-top';\n }\n if (originY === 'bottom' && overlayY === 'bottom') {\n return 'right-bottom';\n }\n return 'right';\n }\n\n return 'top';\n}\n","import type { TemplateRef } from '@angular/core';\nimport type { ZTooltipPosition } from './z-tooltip.positions';\nimport type { ZTooltipVariants } from './z-tooltip.variants';\n\nexport const Z_TOOLTIP_ANIMATION_DURATION = 150;\nexport type ZTooltipTrigger = 'hover' | 'click';\nexport type ZTooltipContent = string | TemplateRef<unknown>;\nexport interface ZTooltipDelayConfig {\n show: boolean;\n delay: number;\n}\n\nexport interface ZTooltipConfig {\n content?: ZTooltipContent;\n position?: ZTooltipPosition;\n type?: ZTooltipVariants['zType'];\n size?: ZTooltipVariants['zSize'];\n class?: string;\n showDelay?: number;\n hideDelay?: number;\n arrow?: boolean;\n offset?: number;\n autoDetect?: boolean;\n alwaysShow?: boolean;\n maxWidth?: string;\n}\n","import { FlexibleConnectedPositionStrategy, Overlay, OverlayPositionBuilder, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { 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 { zTransform } from '@shival99/z-ui/utils';\nimport { filter, map, of, Subject, Subscription, switchMap, timer } from 'rxjs';\nimport { ZTooltipContentComponent } from '../z-tooltip.component';\nimport { createTooltipPositionStrategy, getActualPosition, type ZTooltipPosition } from '../z-tooltip.positions';\nimport {\n Z_TOOLTIP_ANIMATION_DURATION,\n ZTooltipContent,\n ZTooltipDelayConfig,\n ZTooltipTrigger,\n} from '../z-tooltip.types';\nimport { type ZTooltipVariants } from '../z-tooltip.variants';\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(100);\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 _overlay = inject(Overlay);\n private readonly _overlayPositionBuilder = inject(OverlayPositionBuilder);\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: OverlayRef | null = null;\n private _componentRef: ComponentRef<ZTooltipContentComponent> | null = null;\n private _delaySubject = new Subject<ZTooltipDelayConfig>();\n private _listenerCleanups: (() => void)[] = [];\n private _positionSubscription: Subscription | 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 this._delay(false, 0);\n }\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 _createOverlay(): OverlayRef {\n const anchorElement = this.zTriggerElement() || this._elementRef;\n const positionStrategy = createTooltipPositionStrategy(\n this._overlayPositionBuilder,\n anchorElement,\n this._position(),\n this._offset()\n );\n\n return this._overlay.create({\n positionStrategy,\n scrollStrategy: this._overlay.scrollStrategies.reposition(),\n });\n }\n\n private _disposeOverlay(): void {\n this._positionSubscription?.unsubscribe();\n this._positionSubscription = 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 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 _showTooltip(): 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._createOverlay();\n this._setupOutsideClick();\n }\n\n const anchorElement = this.zTriggerElement() || this._elementRef;\n const positionStrategy = createTooltipPositionStrategy(\n this._overlayPositionBuilder,\n anchorElement,\n this._position(),\n this._offset()\n );\n\n this._overlayRef.updatePositionStrategy(positionStrategy);\n\n const portal = new ComponentPortal(ZTooltipContentComponent);\n this._componentRef = this._overlayRef.attach(portal);\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 this._positionSubscription = (positionStrategy as FlexibleConnectedPositionStrategy).positionChanges.subscribe(\n change => {\n const actualPosition = getActualPosition(change);\n this._componentRef?.instance.position.set(actualPosition);\n\n this._calculateArrowOffset(actualPosition);\n }\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 _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 _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 triggerRect = this._elementRef.nativeElement.getBoundingClientRect();\n const tooltipRect = this._overlayRef.overlayElement.getBoundingClientRect();\n\n let offset = 0;\n\n if (position === 'top' || position === 'bottom') {\n const triggerCenterX = triggerRect.left + triggerRect.width / 2;\n const tooltipCenterX = tooltipRect.left + tooltipRect.width / 2;\n offset = triggerCenterX - tooltipCenterX;\n }\n\n if (position === 'left' || position === 'right') {\n const triggerCenterY = triggerRect.top + triggerRect.height / 2;\n const tooltipCenterY = tooltipRect.top + tooltipRect.height / 2;\n offset = triggerCenterY - tooltipCenterY;\n }\n\n const maxOffset =\n position === 'top' || position === 'bottom' ? tooltipRect.width / 2 - 12 : tooltipRect.height / 2 - 12;\n offset = Math.max(-maxOffset, Math.min(maxOffset, offset));\n\n if (Math.abs(offset) > 1) {\n this._componentRef.instance.arrowOffset.set(offset);\n return;\n }\n\n this._componentRef.instance.arrowOffset.set(0);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;AAEO,MAAM,gBAAgB,GAAG,GAAG,CACjC,CAAC,kDAAkD,EAAE,uCAAuC,CAAC,EAC7F;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EAAE,wDAAwD;AACjE,YAAA,IAAI,EAAE,iDAAiD;AACvD,YAAA,KAAK,EAAE,iDAAiD;AACxD,YAAA,OAAO,EAAE,0DAA0D;AACnE,YAAA,OAAO,EAAE,iDAAiD;AAC1D,YAAA,OAAO,EAAE,iDAAiD;AAC1D,YAAA,KAAK,EAAE,6CAA6C;AACpD,YAAA,IAAI,EAAE,+CAA+C;AACtD,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,EAAE,EAAE,iBAAiB;AACrB,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,EAAE,EAAE,SAAS;AACd,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,GAAG,EAAE,0BAA0B;AAC/B,YAAA,UAAU,EAAE,0BAA0B;AACtC,YAAA,WAAW,EAAE,0BAA0B;AACvC,YAAA,MAAM,EAAE,uBAAuB;AAC/B,YAAA,aAAa,EAAE,uBAAuB;AACtC,YAAA,cAAc,EAAE,uBAAuB;AACvC,YAAA,IAAI,EAAE,yBAAyB;AAC/B,YAAA,UAAU,EAAE,yBAAyB;AACrC,YAAA,aAAa,EAAE,yBAAyB;AACxC,YAAA,KAAK,EAAE,wBAAwB;AAC/B,YAAA,WAAW,EAAE,wBAAwB;AACrC,YAAA,cAAc,EAAE,wBAAwB;AACzC,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,SAAS,EAAE,KAAK;AACjB,KAAA;AACF,CAAA;AAGI,MAAM,uBAAuB,GAAG,GAAG,CACxC,6EAA6E,EAC7E;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EAAE,eAAe;AACxB,YAAA,IAAI,EAAE,cAAc;AACpB,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,OAAO,EAAE,YAAY;AACrB,YAAA,OAAO,EAAE,cAAc;AACvB,YAAA,OAAO,EAAE,cAAc;AACvB,YAAA,KAAK,EAAE,YAAY;AACnB,YAAA,IAAI,EAAE,aAAa;AACpB,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,KAAK,EAAE,SAAS;AACjB,KAAA;AACF,CAAA,CACF;AAEM,MAAM,qBAAqB,GAAG,GAAG,CAAC,qDAAqD,EAAE;AAC9F,IAAA,QAAQ,EAAE;AACR,QAAA,QAAQ,EAAE;AACR,YAAA,GAAG,EAAE,uDAAuD;AAC5D,YAAA,UAAU,EAAE,oCAAoC;AAChD,YAAA,WAAW,EAAE,qCAAqC;AAClD,YAAA,MAAM,EAAE,oDAAoD;AAC5D,YAAA,aAAa,EAAE,iCAAiC;AAChD,YAAA,cAAc,EAAE,kCAAkC;AAClD,YAAA,IAAI,EAAE,qDAAqD;AAC3D,YAAA,UAAU,EAAE,kCAAkC;AAC9C,YAAA,aAAa,EAAE,qCAAqC;AACpD,YAAA,KAAK,EAAE,oDAAoD;AAC3D,YAAA,WAAW,EAAE,iCAAiC;AAC9C,YAAA,cAAc,EAAE,oCAAoC;AACrD,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EAAE,iCAAiC;AAC1C,YAAA,IAAI,EAAE,+BAA+B;AACrC,YAAA,KAAK,EAAE,2BAA2B;AAClC,YAAA,OAAO,EAAE,2BAA2B;AACpC,YAAA,OAAO,EAAE,+BAA+B;AACxC,YAAA,OAAO,EAAE,+BAA+B;AACxC,YAAA,KAAK,EAAE,2BAA2B;AAClC,YAAA,IAAI,EAAE,6BAA6B;AACpC,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,KAAK,EAAE,SAAS;AACjB,KAAA;AACF,CAAA,CAAC;AAEK,MAAM,oBAAoB,GAAG,GAAG,CAAC,0BAA0B,EAAE;AAClE,IAAA,QAAQ,EAAE;AACR,QAAA,SAAS,EAAE;AACT,YAAA,GAAG,EAAE,yBAAyB;AAC9B,YAAA,UAAU,EAAE,yBAAyB;AACrC,YAAA,WAAW,EAAE,yBAAyB;AACtC,YAAA,MAAM,EAAE,sBAAsB;AAC9B,YAAA,aAAa,EAAE,sBAAsB;AACrC,YAAA,cAAc,EAAE,sBAAsB;AACtC,YAAA,IAAI,EAAE,wBAAwB;AAC9B,YAAA,UAAU,EAAE,wBAAwB;AACpC,YAAA,aAAa,EAAE,wBAAwB;AACvC,YAAA,KAAK,EAAE,uBAAuB;AAC9B,YAAA,WAAW,EAAE,uBAAuB;AACpC,YAAA,cAAc,EAAE,uBAAuB;AACxC,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,SAAS,EAAE,KAAK;AACjB,KAAA;AACF,CAAA,CAAC;;MC1EW,wBAAwB,CAAA;AACnB,IAAA,OAAO,GAAG,MAAM,CAAkB,EAAE,mDAAC;AACrC,IAAA,QAAQ,GAAG,MAAM,CAAmB,KAAK,oDAAC;AAC1C,IAAA,WAAW,GAAG,MAAM,CAA4B,SAAS,uDAAC;AAC1D,IAAA,WAAW,GAAG,MAAM,CAA4B,SAAS,uDAAC;AAC1D,IAAA,YAAY,GAAG,MAAM,CAAC,EAAE,wDAAC;AACzB,IAAA,SAAS,GAAG,MAAM,CAAC,IAAI,qDAAC;AACxB,IAAA,QAAQ,GAAG,MAAM,CAAS,OAAO,oDAAC;AAClC,IAAA,KAAK,GAAG,MAAM,CAAoB,MAAM,iDAAC;AACzC,IAAA,WAAW,GAAG,MAAM,CAAS,CAAC,uDAAC;AAE5B,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;QACzC,MAAM,WAAW,GAAG,gBAAgB,CAAC;AACnC,YAAA,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE;AACzB,YAAA,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE;AACzB,YAAA,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE;AAC3B,SAAA,CAAC;AAEF,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,QAAQ,GAAG,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACpF,OAAO,aAAa,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;AACrE,IAAA,CAAC,mDAAC;IAEM,wBAAwB,GAAA;QAC9B,OAAO,oBAAoB,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;IAC7D;IAEmB,cAAc,GAAG,QAAQ,CAAC,MAC3C,aAAa,CAAC,uBAAuB,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CACtE;IAEkB,YAAY,GAAG,QAAQ,CAAC,MACzC,aAAa,CACX,qBAAqB,CAAC;AACpB,QAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;AACzB,QAAA,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE;KAC1B,CAAC,CACH,wDACF;AAEkB,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAC5C,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC3B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE;QAEjC,MAAM,gBAAgB,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC1C,IAAI,gBAAgB,EAAE;AACpB,YAAA,OAAO,EAAE;QACX;AAEA,QAAA,IAAI,MAAM,KAAK,CAAC,EAAE;AAChB,YAAA,OAAO,EAAE;QACX;QAEA,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,QAAQ,EAAE;YACrC,OAAO;gBACL,IAAI,EAAE,CAAA,WAAA,EAAc,MAAM,CAAA,GAAA,CAAK;aAChC;QACH;QAEA,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO,EAAE;YACrC,OAAO;gBACL,GAAG,EAAE,CAAA,WAAA,EAAc,MAAM,CAAA,GAAA,CAAK;aAC/B;QACH;AAEA,QAAA,OAAO,EAAE;AACX,IAAA,CAAC,sDAAC;AAEiB,IAAA,iBAAiB,GAAG,QAAQ,CAAC,MAAK;AACnD,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE;AACxB,QAAA,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;AACnC,IAAA,CAAC,6DAAC;AAEiB,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAK;AAC/C,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE;QACxB,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AACjD,IAAA,CAAC,yDAAC;AAEiB,IAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;AACjD,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE;AACxB,QAAA,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC5C,YAAA,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QAC/B;AACA,QAAA,OAAO,CAAC;AACV,IAAA,CAAC,2DAAC;AAEM,IAAA,cAAc,CAAC,IAAY,EAAA;QACjC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC7C,QAAA,OAAO,CAAC,SAAS,GAAG,IAAI;QACxB,OAAO,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,SAAS,IAAI,EAAE;IACvD;AAEO,IAAA,QAAQ,CAAC,MAQf,EAAA;QACC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,MAAM,CAAC,IAAI,EAAE;YACf,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QACnC;AACA,QAAA,IAAI,MAAM,CAAC,IAAI,EAAE;YACf,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QACnC;AACA,QAAA,IAAI,MAAM,CAAC,WAAW,EAAE;YACtB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC;QAC3C;AACA,QAAA,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE;YAC9B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;QAClC;AACA,QAAA,IAAI,MAAM,CAAC,QAAQ,EAAE;YACnB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;QACpC;IACF;uGArHW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAxB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA1BzB;;;;;;;;;;;;;;;;GAgBT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAlBS,gBAAgB,+IAAE,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FA4B9B,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBA9BpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,OAAO,EAAE,CAAC,gBAAgB,EAAE,aAAa,CAAC;AAC1C,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;AAgBT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,kBAAkB,EAAE,YAAY;AAChC,wBAAA,mBAAmB,EAAE,SAAS;AAC9B,wBAAA,sBAAsB,EAAE,YAAY;AACpC,wBAAA,IAAI,EAAE,SAAS;AAChB,qBAAA;AACF,iBAAA;;;ACrBK,SAAU,qBAAqB,CAAC,QAA0B,EAAE,MAAc,EAAA;AAC9E,IAAA,MAAM,SAAS,GAAgD;AAC7D,QAAA,GAAG,EAAE;AACH,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,CAAC,MAAM;AACjB,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,CAAC,MAAM;AACjB,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,CAAC,MAAM;AACjB,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,OAAO,EAAE,MAAM;AAChB,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,OAAO,EAAE,MAAM;AAChB,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,OAAO,EAAE,MAAM;AAChB,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,CAAC,MAAM;AACjB,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,CAAC,MAAM;AACjB,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,CAAC,MAAM;AACjB,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,OAAO,EAAE,MAAM;AAChB,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,OAAO,EAAE,MAAM;AAChB,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,OAAO,EAAE,MAAM;AAChB,SAAA;KACF;AAED,IAAA,OAAO,SAAS,CAAC,QAAQ,CAAC;AAC5B;AAEM,SAAU,2BAA2B,CAAC,QAA0B,EAAE,MAAc,EAAA;AACpF,IAAA,MAAM,aAAa,GAAiD;AAClE,QAAA,GAAG,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,CAAC;AAC9E,QAAA,UAAU,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,CAAC;AACrF,QAAA,WAAW,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC;AACtF,QAAA,MAAM,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,CAAC;AACjF,QAAA,aAAa,EAAE,CAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,CAAC;AACxF,QAAA,cAAc,EAAE,CAAC,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,CAAC;AACzF,QAAA,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,CAAC;AAC/E,QAAA,UAAU,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,CAAC;AACrF,QAAA,aAAa,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC;AACxF,QAAA,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,CAAC;AAChF,QAAA,WAAW,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,aAAa,CAAC;AACtF,QAAA,cAAc,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC;KAC1F;IAED,MAAM,gBAAgB,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;AAE9D,IAAA,OAAO,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACxE;AAEM,SAAU,6BAA6B,CAC3C,sBAA8C,EAC9C,MAA+C,EAC/C,QAA0B,EAC1B,MAAc,EAAA;AAEd,IAAA,OAAO;SACJ,mBAAmB,CAAC,MAAM;AAC1B,SAAA,aAAa,CAAC,2BAA2B,CAAC,QAAQ,EAAE,MAAM,CAAC;SAC3D,sBAAsB,CAAC,KAAK;SAC5B,QAAQ,CAAC,IAAI;SACb,kBAAkB,CAAC,CAAC,CAAC;AAC1B;AAEM,SAAU,iBAAiB,CAAC,MAAsC,EAAA;AACtE,IAAA,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,cAAc;IAEtE,IAAI,QAAQ,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,EAAE;QAC9C,IAAI,OAAO,KAAK,OAAO,IAAI,QAAQ,KAAK,OAAO,EAAE;AAC/C,YAAA,OAAO,UAAU;QACnB;QACA,IAAI,OAAO,KAAK,KAAK,IAAI,QAAQ,KAAK,KAAK,EAAE;AAC3C,YAAA,OAAO,WAAW;QACpB;AACA,QAAA,OAAO,KAAK;IACd;IAEA,IAAI,QAAQ,KAAK,KAAK,IAAI,OAAO,KAAK,QAAQ,EAAE;QAC9C,IAAI,OAAO,KAAK,OAAO,IAAI,QAAQ,KAAK,OAAO,EAAE;AAC/C,YAAA,OAAO,aAAa;QACtB;QACA,IAAI,OAAO,KAAK,KAAK,IAAI,QAAQ,KAAK,KAAK,EAAE;AAC3C,YAAA,OAAO,cAAc;QACvB;AACA,QAAA,OAAO,QAAQ;IACjB;IAEA,IAAI,QAAQ,KAAK,KAAK,IAAI,OAAO,KAAK,OAAO,EAAE;QAC7C,IAAI,OAAO,KAAK,KAAK,IAAI,QAAQ,KAAK,KAAK,EAAE;AAC3C,YAAA,OAAO,UAAU;QACnB;QACA,IAAI,OAAO,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,EAAE;AACjD,YAAA,OAAO,aAAa;QACtB;AACA,QAAA,OAAO,MAAM;IACf;IAEA,IAAI,QAAQ,KAAK,OAAO,IAAI,OAAO,KAAK,KAAK,EAAE;QAC7C,IAAI,OAAO,KAAK,KAAK,IAAI,QAAQ,KAAK,KAAK,EAAE;AAC3C,YAAA,OAAO,WAAW;QACpB;QACA,IAAI,OAAO,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,EAAE;AACjD,YAAA,OAAO,cAAc;QACvB;AACA,QAAA,OAAO,OAAO;IAChB;AAEA,IAAA,OAAO,KAAK;AACd;;AC5LO,MAAM,4BAA4B,GAAG,GAAG;;MCiClC,iBAAiB,CAAA;AACZ,IAAA,QAAQ,GAAG,KAAK,CAAkB,EAAE,oDAAC;AACrC,IAAA,SAAS,GAAG,KAAK,CAAmB,KAAK,qDAAC;IAC1C,gBAAgB,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAoB;AAC5C,IAAA,QAAQ,GAAG,KAAK,CAAkB,OAAO,oDAAC;IAC1C,eAAe,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAmB;IAC1C,KAAK,GAAG,KAAK,CAA4B,SAAS,kDAChE,KAAK,EAAE,cAAc,EAAA,CACrB;IAEc,KAAK,GAAG,KAAK,CAA4B,SAAS,kDAChE,KAAK,EAAE,cAAc,EAAA,CACrB;AAEc,IAAA,MAAM,GAAG,KAAK,CAAC,EAAE,kDAAC;IAClB,aAAa,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,eAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AAC/B,IAAA,UAAU,GAAG,KAAK,CAAC,GAAG,sDAAC;IACvB,iBAAiB,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AACnC,IAAA,UAAU,GAAG,KAAK,CAAC,CAAC,sDAAC;IACrB,iBAAiB,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;IACnC,MAAM,GAAG,KAAK,CAAC,IAAI,mDAAI,SAAS,EAAE,UAAU,EAAA,CAAG;AAC/C,IAAA,aAAa,GAAG,KAAK,CAAsB,SAAS,yDAAC;IACrD,SAAS,GAAG,KAAK,CAAC,KAAK,sDAAI,SAAS,EAAE,UAAU,EAAA,CAAG;AACnD,IAAA,gBAAgB,GAAG,KAAK,CAAsB,SAAS,4DAAC;AACxD,IAAA,OAAO,GAAG,KAAK,CAAC,CAAC,mDAAC;IAClB,cAAc,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;IAChC,WAAW,GAAG,KAAK,CAAC,IAAI,wDAAI,SAAS,EAAE,UAAU,EAAA,CAAG;AACpD,IAAA,eAAe,GAAG,KAAK,CAAqB,IAAI,2DAAC;IACjD,WAAW,GAAG,KAAK,CAAC,KAAK,wDAAI,SAAS,EAAE,UAAU,EAAA,CAAG;AACrD,IAAA,SAAS,GAAG,KAAK,CAAS,OAAO,qDAAC;AAEjC,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,qDAAC;AACvE,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,oDAAC;AACpE,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,kDAAC;AAC9D,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,sDAAC;AAC1E,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,sDAAC;AAC1E,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,kDAAC;AAC9D,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,qDAAC;AACvE,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,mDAAC;IAElE,KAAK,GAAG,MAAM,EAAQ;IACtB,KAAK,GAAG,MAAM,EAAQ;AAErB,IAAA,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;AAC1B,IAAA,uBAAuB,GAAG,MAAM,CAAC,sBAAsB,CAAC;AACxD,IAAA,WAAW,GAAG,MAAM,EAAC,UAAuB,EAAC;AAC7C,IAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAC7B,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAChC,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACjC,IAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;IAErC,WAAW,GAAsB,IAAI;IACrC,aAAa,GAAkD,IAAI;AACnE,IAAA,aAAa,GAAG,IAAI,OAAO,EAAuB;IAClD,iBAAiB,GAAmB,EAAE;IACtC,qBAAqB,GAAwB,IAAI;IACjD,YAAY,GAAyC,IAAI;AAChD,IAAA,UAAU,GAAG,MAAM,CAAC,KAAK,sDAAC;AAE3C,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;YACV,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AACxC,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACvB;AACF,QAAA,CAAC,CAAC;IACJ;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YACxC;QACF;QAEA,IAAI,CAAC,oBAAoB,EAAE;QAC3B,IAAI,CAAC,cAAc,EAAE;IACvB;IAEA,WAAW,GAAA;QACT,IAAI,CAAC,iBAAiB,EAAE;AACxB,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;QAC7B,IAAI,CAAC,iBAAiB,EAAE;QACxB,IAAI,CAAC,eAAe,EAAE;IACxB;IAEO,IAAI,GAAA;QACT,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YACxC;QACF;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE;YACzE;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;AACrB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACpB;QACF;QAEA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;IACtC;IAEQ,gBAAgB,GAAA;AACtB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa;AAC7C,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE;AAExC,QAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE;AACpC,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ;AACtC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC9C,YAAA,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAgB;AAC9C,YAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE;AACnC,gBAAA,OAAO,IAAI;YACb;AAEA,YAAA,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ;AACpC,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC7C,IAAI,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAgB,CAAC,EAAE;AAC7D,oBAAA,OAAO,IAAI;gBACb;YACF;QACF;AAEA,QAAA,IAAI,SAAS,IAAI,SAAS,KAAK,MAAM,EAAE;AACrC,YAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE;AACvC,gBAAA,OAAO,IAAI;YACb;AAEA,YAAA,MAAM,qBAAqB,GAAG,SAAS,CAAC,QAAQ;AAChD,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,qBAAqB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACrD,IAAI,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,CAAC,CAAgB,CAAC,EAAE;AACrE,oBAAA,OAAO,IAAI;gBACb;YACF;QACF;AAEA,QAAA,OAAO,KAAK;IACd;AAEQ,IAAA,mBAAmB,CAAC,EAAe,EAAA;QACzC,IAAI,EAAE,YAAY,gBAAgB,IAAI,EAAE,YAAY,mBAAmB,EAAE;AACvE,YAAA,OAAO,IAAI,CAAC,4BAA4B,CAAC,EAAE,CAAC;QAC9C;QAEA,IAAI,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW,EAAE;AACnC,YAAA,OAAO,IAAI;QACb;QAEA,IAAI,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,YAAY,EAAE;AACrC,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,CAAC;AACnC,QAAA,IAAI,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,YAAY,KAAK,UAAU,EAAE;YACxE,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;AAC1C,YAAA,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC5B,MAAM,YAAY,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC,KAAK;YACxD,MAAM,YAAY,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC,KAAK;YACrD,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;YACvD,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;AACzD,YAAA,MAAM,cAAc,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY;AAEhE,YAAA,IAAI,YAAY,GAAG,cAAc,GAAG,GAAG,EAAE;AACvC,gBAAA,OAAO,IAAI;YACb;QACF;QAEA,MAAM,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,CAAC;AAC/D,QAAA,IAAI,SAAS,IAAI,SAAS,KAAK,MAAM,EAAE;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;AAC1C,YAAA,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC5B,MAAM,WAAW,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC,MAAM;YACxD,MAAM,QAAQ,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC,MAAM;YAClD,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;YACrD,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;AAC3D,YAAA,MAAM,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,aAAa;AAC3D,YAAA,IAAI,WAAW,GAAG,aAAa,GAAG,CAAC,EAAE;AACnC,gBAAA,OAAO,IAAI;YACb;QACF;AAEA,QAAA,OAAO,KAAK;IACd;AAEQ,IAAA,4BAA4B,CAAC,EAA0C,EAAA;AAC7E,QAAA,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;AACb,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,CAAC;QACnC,MAAM,cAAc,GAClB,EAAE,CAAC,WAAW,IAAI,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACjG,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC;QACrD,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;QAEvC,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,OAAO,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW;QACxC;AAEA,QAAA,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI;AAC1B,QAAA,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK;QACtD,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC;AACtD,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,aAAa;AAEvG,QAAA,OAAO,UAAU,GAAG,YAAY,GAAG,cAAc;IACnD;IAEO,IAAI,GAAA;QACT,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;IACvC;IAEO,MAAM,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACrB,IAAI,CAAC,IAAI,EAAE;YACX;QACF;QAEA,IAAI,CAAC,IAAI,EAAE;IACb;IAEQ,cAAc,GAAA;QACpB,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,WAAW;QAChE,MAAM,gBAAgB,GAAG,6BAA6B,CACpD,IAAI,CAAC,uBAAuB,EAC5B,aAAa,EACb,IAAI,CAAC,SAAS,EAAE,EAChB,IAAI,CAAC,OAAO,EAAE,CACf;AAED,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC1B,gBAAgB;YAChB,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE;AAC5D,SAAA,CAAC;IACJ;IAEQ,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,qBAAqB,EAAE,WAAW,EAAE;AACzC,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI;AACjC,QAAA,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE;AAC3B,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;IAC3B;IAEQ,oBAAoB,GAAA;AAC1B,QAAA,IAAI,CAAC;aACF,IAAI,CACH,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,EACnG,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;aAErC,SAAS,CAAC,MAAM,IAAG;AAClB,YAAA,IAAI,MAAM,CAAC,IAAI,EAAE;gBACf,IAAI,CAAC,YAAY,EAAE;gBACnB;YACF;YAEA,IAAI,CAAC,YAAY,EAAE;AACrB,QAAA,CAAC,CAAC;IACN;IAEQ,cAAc,GAAA;QACpB,IAAI,CAAC,iBAAiB,EAAE;AACxB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC/B,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa;AAE1E,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CACzB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;AACvF,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,OAAO,EAAE,IAAI;SACd,CAAC,EACF,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;AACvF,YAAA,OAAO,EAAE,IAAI;AACd,SAAA,CAAC,EACF,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CACvF;AAED,QAAA,IAAI,OAAO,KAAK,OAAO,EAAE;AACvB,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CACzB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,EACjE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,EACjE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,EAC5D,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAC5D;YACD;QACF;AAEA,QAAA,IAAI,OAAO,KAAK,OAAO,EAAE;AACvB,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CACzB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,MAAK;AAC7C,gBAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;AACrB,oBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;oBACrB;gBACF;gBAEA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;YACtC,CAAC,CAAC,CACH;QACH;IACF;IAEQ,kBAAkB,GAAA;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB;QACF;AAEA,QAAA,IAAI,CAAC;AACF,aAAA,oBAAoB;AACpB,aAAA,IAAI,CACH,MAAM,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,EACzC,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,CAAC,EAC/E,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;AAErC,aAAA,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC3C;IAEQ,MAAM,CAAC,IAAa,EAAE,KAAa,EAAA;QACzC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC1C;IAEQ,YAAY,GAAA;AAClB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE;QAC/B,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;YAChC;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;AAC7C,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;YACzB;QACF;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACrB,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE;YACxC,IAAI,CAAC,kBAAkB,EAAE;QAC3B;QAEA,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,WAAW;QAChE,MAAM,gBAAgB,GAAG,6BAA6B,CACpD,IAAI,CAAC,uBAAuB,EAC5B,aAAa,EACb,IAAI,CAAC,SAAS,EAAE,EAChB,IAAI,CAAC,OAAO,EAAE,CACf;AAED,QAAA,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,gBAAgB,CAAC;AAEzD,QAAA,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,wBAAwB,CAAC;QAC5D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;AAEpD,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACnC,OAAO;AACP,YAAA,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE;AAC1B,YAAA,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE;AAClB,YAAA,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE;AAClB,YAAA,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE;AAC1B,YAAA,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE;AACpB,YAAA,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE;AAC3B,SAAA,CAAC;QAEF,IAAI,CAAC,qBAAqB,GAAI,gBAAsD,CAAC,eAAe,CAAC,SAAS,CAC5G,MAAM,IAAG;AACP,YAAA,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC;YAChD,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC;AAEzD,YAAA,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC;AAC5C,QAAA,CAAC,CACF;AAED,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,OAAO,EAAE;YAC/B,IAAI,CAAC,kBAAkB,EAAE;QAC3B;AAEA,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;AACzB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;IACnB;IAEQ,kBAAkB,GAAA;AACxB,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,cAAc;QACvD,IAAI,CAAC,cAAc,EAAE;YACnB;QACF;AAEA,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CACzB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,EAAE,YAAY,EAAE,MAAK;AACvD,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AACtB,QAAA,CAAC,CAAC,EACF,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,EAAE,YAAY,EAAE,MAAK;YACvD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;QACvC,CAAC,CAAC,CACH;IACH;IAEQ,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB;QACF;QAEA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC/C,IAAI,CAAC,iBAAiB,EAAE;AACxB,QAAA,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,MAAK;AAClC,YAAA,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;gBAC9B;YACF;YAEA,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;AAC1B,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;QACnB,CAAC,EAAE,4BAA4B,CAAC;IAClC;IAEQ,iBAAiB,GAAA;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB;QACF;AAEA,QAAA,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/B,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;IAC1B;IAEQ,iBAAiB,GAAA;AACvB,QAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC;AACpD,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE;IAC7B;AAEQ,IAAA,qBAAqB,CAAC,QAA0B,EAAA;QACtD,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YAC5C;QACF;QAEA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,qBAAqB,EAAE;QAC1E,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,qBAAqB,EAAE;QAE3E,IAAI,MAAM,GAAG,CAAC;QAEd,IAAI,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,QAAQ,EAAE;YAC/C,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC,KAAK,GAAG,CAAC;YAC/D,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC,KAAK,GAAG,CAAC;AAC/D,YAAA,MAAM,GAAG,cAAc,GAAG,cAAc;QAC1C;QAEA,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,OAAO,EAAE;YAC/C,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC;YAC/D,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC;AAC/D,YAAA,MAAM,GAAG,cAAc,GAAG,cAAc;QAC1C;AAEA,QAAA,MAAM,SAAS,GACb,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,QAAQ,GAAG,WAAW,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE;AACxG,QAAA,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAE1D,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YACxB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;YACnD;QACF;QAEA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAChD;uGAxcW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,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,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,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,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,cAAA,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,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,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,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,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,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,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,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,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,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,UAAU;AACrB,iBAAA;;;ACpCD;;AAEG;;;;"}
|
|
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.positions.ts","../../../../libs/core-ui/components/z-tooltip/z-tooltip.types.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, type VariantProps } from 'class-variance-authority';\n\nexport const zTooltipVariants = cva(\n ['z-tooltip relative rounded-[0.3125rem] 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(\n 'relative z-10 rounded-[0.25rem] font-medium p-1.5 break-words leading-[1.7]',\n {\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);\n\nexport const zTooltipArrowVariants = cva('absolute z-0 size-2.5 rotate-45 rounded-[0.1875rem]', {\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\nexport type ZTooltipVariants = VariantProps<typeof zTooltipVariants>;\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 } from './z-tooltip.types';\nimport {\n zTooltipArrowVariants,\n zTooltipContentVariants,\n zTooltipExitVariants,\n zTooltipVariants,\n type 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","import type {\n ConnectedOverlayPositionChange,\n ConnectedPosition,\n FlexibleConnectedPositionStrategy,\n FlexibleConnectedPositionStrategyOrigin,\n OverlayPositionBuilder,\n} from '@angular/cdk/overlay';\n\nexport type ZTooltipPosition =\n | 'top'\n | 'top-left'\n | 'top-right'\n | 'bottom'\n | 'bottom-left'\n | 'bottom-right'\n | 'left'\n | 'left-top'\n | 'left-bottom'\n | 'right'\n | 'right-top'\n | 'right-bottom';\n\nexport function createTooltipPosition(position: ZTooltipPosition, offset: number): ConnectedPosition {\n const positions: Record<ZTooltipPosition, ConnectedPosition> = {\n top: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetY: -offset,\n },\n 'top-left': {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -offset,\n },\n 'top-right': {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetY: -offset,\n },\n bottom: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: offset,\n },\n 'bottom-left': {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: offset,\n },\n 'bottom-right': {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: offset,\n },\n left: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n offsetX: -offset,\n },\n 'left-top': {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: -offset,\n },\n 'left-bottom': {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetX: -offset,\n },\n right: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n offsetX: offset,\n },\n 'right-top': {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: offset,\n },\n 'right-bottom': {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetX: offset,\n },\n };\n\n return positions[position];\n}\n\nexport function getTooltipFallbackPositions(position: ZTooltipPosition, offset: number): ConnectedPosition[] {\n const fallbackOrder: Record<ZTooltipPosition, ZTooltipPosition[]> = {\n top: ['top', 'bottom', 'top-left', 'top-right', 'bottom-left', 'bottom-right'],\n 'top-left': ['top-left', 'bottom-left', 'top', 'bottom', 'top-right', 'bottom-right'],\n 'top-right': ['top-right', 'bottom-right', 'top', 'bottom', 'top-left', 'bottom-left'],\n bottom: ['bottom', 'top', 'bottom-left', 'bottom-right', 'top-left', 'top-right'],\n 'bottom-left': ['bottom-left', 'top-left', 'bottom', 'top', 'bottom-right', 'top-right'],\n 'bottom-right': ['bottom-right', 'top-right', 'bottom', 'top', 'bottom-left', 'top-left'],\n left: ['left', 'right', 'left-top', 'left-bottom', 'right-top', 'right-bottom'],\n 'left-top': ['left-top', 'right-top', 'left', 'right', 'left-bottom', 'right-bottom'],\n 'left-bottom': ['left-bottom', 'right-bottom', 'left', 'right', 'left-top', 'right-top'],\n right: ['right', 'left', 'right-top', 'right-bottom', 'left-top', 'left-bottom'],\n 'right-top': ['right-top', 'left-top', 'right', 'left', 'right-bottom', 'left-bottom'],\n 'right-bottom': ['right-bottom', 'left-bottom', 'right', 'left', 'right-top', 'left-top'],\n };\n\n const orderedPositions = fallbackOrder[position] ?? [position];\n\n return orderedPositions.map(pos => createTooltipPosition(pos, offset));\n}\n\nexport function createTooltipPositionStrategy(\n overlayPositionBuilder: OverlayPositionBuilder,\n origin: FlexibleConnectedPositionStrategyOrigin,\n position: ZTooltipPosition,\n offset: number\n): FlexibleConnectedPositionStrategy {\n return overlayPositionBuilder\n .flexibleConnectedTo(origin)\n .withPositions(getTooltipFallbackPositions(position, offset))\n .withFlexibleDimensions(false)\n .withPush(true)\n .withViewportMargin(8);\n}\n\nexport function getActualPosition(change: ConnectedOverlayPositionChange): ZTooltipPosition {\n const { originX, originY, overlayX, overlayY } = change.connectionPair;\n\n if (overlayY === 'bottom' && originY === 'top') {\n if (originX === 'start' && overlayX === 'start') {\n return 'top-left';\n }\n if (originX === 'end' && overlayX === 'end') {\n return 'top-right';\n }\n return 'top';\n }\n\n if (overlayY === 'top' && originY === 'bottom') {\n if (originX === 'start' && overlayX === 'start') {\n return 'bottom-left';\n }\n if (originX === 'end' && overlayX === 'end') {\n return 'bottom-right';\n }\n return 'bottom';\n }\n\n if (overlayX === 'end' && originX === 'start') {\n if (originY === 'top' && overlayY === 'top') {\n return 'left-top';\n }\n if (originY === 'bottom' && overlayY === 'bottom') {\n return 'left-bottom';\n }\n return 'left';\n }\n\n if (overlayX === 'start' && originX === 'end') {\n if (originY === 'top' && overlayY === 'top') {\n return 'right-top';\n }\n if (originY === 'bottom' && overlayY === 'bottom') {\n return 'right-bottom';\n }\n return 'right';\n }\n\n return 'top';\n}\n","import type { TemplateRef } from '@angular/core';\nimport type { ZTooltipPosition } from './z-tooltip.positions';\nimport type { ZTooltipVariants } from './z-tooltip.variants';\n\nexport const Z_TOOLTIP_ANIMATION_DURATION = 150;\nexport type ZTooltipTrigger = 'hover' | 'click';\nexport type ZTooltipContent = string | TemplateRef<unknown>;\nexport interface ZTooltipDelayConfig {\n show: boolean;\n delay: number;\n}\n\nexport interface ZTooltipConfig {\n content?: ZTooltipContent;\n position?: ZTooltipPosition;\n trigger?: ZTooltipTrigger;\n type?: ZTooltipVariants['zType'];\n size?: ZTooltipVariants['zSize'];\n class?: string;\n showDelay?: number;\n hideDelay?: number;\n arrow?: boolean;\n offset?: number;\n autoDetect?: boolean;\n alwaysShow?: boolean;\n maxWidth?: string;\n}\n","import { FlexibleConnectedPositionStrategy, Overlay, OverlayPositionBuilder, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { 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 { zTransform } from '@shival99/z-ui/utils';\nimport { filter, map, of, Subject, Subscription, switchMap, timer } from 'rxjs';\nimport { ZTooltipContentComponent } from '../z-tooltip.component';\nimport { createTooltipPositionStrategy, getActualPosition, type ZTooltipPosition } from '../z-tooltip.positions';\nimport {\n Z_TOOLTIP_ANIMATION_DURATION,\n ZTooltipContent,\n ZTooltipDelayConfig,\n ZTooltipTrigger,\n} from '../z-tooltip.types';\nimport { type ZTooltipVariants } from '../z-tooltip.variants';\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(100);\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 _overlay = inject(Overlay);\n private readonly _overlayPositionBuilder = inject(OverlayPositionBuilder);\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: OverlayRef | null = null;\n private _componentRef: ComponentRef<ZTooltipContentComponent> | null = null;\n private _delaySubject = new Subject<ZTooltipDelayConfig>();\n private _listenerCleanups: (() => void)[] = [];\n private _positionSubscription: Subscription | 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 this._delay(false, 0);\n }\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 _createOverlay(): OverlayRef {\n const anchorElement = this.zTriggerElement() || this._elementRef;\n const positionStrategy = createTooltipPositionStrategy(\n this._overlayPositionBuilder,\n anchorElement,\n this._position(),\n this._offset()\n );\n\n return this._overlay.create({\n positionStrategy,\n scrollStrategy: this._overlay.scrollStrategies.reposition(),\n });\n }\n\n private _disposeOverlay(): void {\n this._positionSubscription?.unsubscribe();\n this._positionSubscription = 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 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 _showTooltip(): 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._createOverlay();\n this._setupOutsideClick();\n }\n\n const anchorElement = this.zTriggerElement() || this._elementRef;\n const positionStrategy = createTooltipPositionStrategy(\n this._overlayPositionBuilder,\n anchorElement,\n this._position(),\n this._offset()\n );\n\n this._overlayRef.updatePositionStrategy(positionStrategy);\n\n const portal = new ComponentPortal(ZTooltipContentComponent);\n this._componentRef = this._overlayRef.attach(portal);\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 this._positionSubscription = (positionStrategy as FlexibleConnectedPositionStrategy).positionChanges.subscribe(\n change => {\n const actualPosition = getActualPosition(change);\n this._componentRef?.instance.position.set(actualPosition);\n\n this._calculateArrowOffset(actualPosition);\n }\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 _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 _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.zTriggerElement() ?? this._elementRef.nativeElement;\n const triggerRect = triggerElement.getBoundingClientRect();\n const tooltipRect = this._overlayRef.overlayElement.getBoundingClientRect();\n\n let offset = 0;\n\n if (position === 'top' || position === 'bottom') {\n const triggerCenterX = triggerRect.left + triggerRect.width / 2;\n const tooltipCenterX = tooltipRect.left + tooltipRect.width / 2;\n offset = triggerCenterX - tooltipCenterX;\n }\n\n if (position === 'left' || position === 'right') {\n const triggerCenterY = triggerRect.top + triggerRect.height / 2;\n const tooltipCenterY = tooltipRect.top + tooltipRect.height / 2;\n offset = triggerCenterY - tooltipCenterY;\n }\n\n const maxOffset =\n position === 'top' || position === 'bottom' ? tooltipRect.width / 2 - 12 : tooltipRect.height / 2 - 12;\n offset = Math.max(-maxOffset, Math.min(maxOffset, offset));\n\n if (Math.abs(offset) > 1) {\n this._componentRef.instance.arrowOffset.set(offset);\n return;\n }\n\n this._componentRef.instance.arrowOffset.set(0);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;AAEO,MAAM,gBAAgB,GAAG,GAAG,CACjC,CAAC,kDAAkD,EAAE,uCAAuC,CAAC,EAC7F;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EAAE,wDAAwD;AACjE,YAAA,IAAI,EAAE,iDAAiD;AACvD,YAAA,KAAK,EAAE,iDAAiD;AACxD,YAAA,OAAO,EAAE,0DAA0D;AACnE,YAAA,OAAO,EAAE,iDAAiD;AAC1D,YAAA,OAAO,EAAE,iDAAiD;AAC1D,YAAA,KAAK,EAAE,6CAA6C;AACpD,YAAA,IAAI,EAAE,+CAA+C;AACtD,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,EAAE,EAAE,iBAAiB;AACrB,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,EAAE,EAAE,SAAS;AACd,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,GAAG,EAAE,0BAA0B;AAC/B,YAAA,UAAU,EAAE,0BAA0B;AACtC,YAAA,WAAW,EAAE,0BAA0B;AACvC,YAAA,MAAM,EAAE,uBAAuB;AAC/B,YAAA,aAAa,EAAE,uBAAuB;AACtC,YAAA,cAAc,EAAE,uBAAuB;AACvC,YAAA,IAAI,EAAE,yBAAyB;AAC/B,YAAA,UAAU,EAAE,yBAAyB;AACrC,YAAA,aAAa,EAAE,yBAAyB;AACxC,YAAA,KAAK,EAAE,wBAAwB;AAC/B,YAAA,WAAW,EAAE,wBAAwB;AACrC,YAAA,cAAc,EAAE,wBAAwB;AACzC,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,SAAS,EAAE,KAAK;AACjB,KAAA;AACF,CAAA;AAGI,MAAM,uBAAuB,GAAG,GAAG,CACxC,6EAA6E,EAC7E;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EAAE,eAAe;AACxB,YAAA,IAAI,EAAE,cAAc;AACpB,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,OAAO,EAAE,YAAY;AACrB,YAAA,OAAO,EAAE,cAAc;AACvB,YAAA,OAAO,EAAE,cAAc;AACvB,YAAA,KAAK,EAAE,YAAY;AACnB,YAAA,IAAI,EAAE,aAAa;AACpB,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,KAAK,EAAE,SAAS;AACjB,KAAA;AACF,CAAA,CACF;AAEM,MAAM,qBAAqB,GAAG,GAAG,CAAC,qDAAqD,EAAE;AAC9F,IAAA,QAAQ,EAAE;AACR,QAAA,QAAQ,EAAE;AACR,YAAA,GAAG,EAAE,uDAAuD;AAC5D,YAAA,UAAU,EAAE,oCAAoC;AAChD,YAAA,WAAW,EAAE,qCAAqC;AAClD,YAAA,MAAM,EAAE,oDAAoD;AAC5D,YAAA,aAAa,EAAE,iCAAiC;AAChD,YAAA,cAAc,EAAE,kCAAkC;AAClD,YAAA,IAAI,EAAE,qDAAqD;AAC3D,YAAA,UAAU,EAAE,kCAAkC;AAC9C,YAAA,aAAa,EAAE,qCAAqC;AACpD,YAAA,KAAK,EAAE,oDAAoD;AAC3D,YAAA,WAAW,EAAE,iCAAiC;AAC9C,YAAA,cAAc,EAAE,oCAAoC;AACrD,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EAAE,iCAAiC;AAC1C,YAAA,IAAI,EAAE,+BAA+B;AACrC,YAAA,KAAK,EAAE,2BAA2B;AAClC,YAAA,OAAO,EAAE,2BAA2B;AACpC,YAAA,OAAO,EAAE,+BAA+B;AACxC,YAAA,OAAO,EAAE,+BAA+B;AACxC,YAAA,KAAK,EAAE,2BAA2B;AAClC,YAAA,IAAI,EAAE,6BAA6B;AACpC,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,KAAK,EAAE,SAAS;AACjB,KAAA;AACF,CAAA,CAAC;AAEK,MAAM,oBAAoB,GAAG,GAAG,CAAC,0BAA0B,EAAE;AAClE,IAAA,QAAQ,EAAE;AACR,QAAA,SAAS,EAAE;AACT,YAAA,GAAG,EAAE,yBAAyB;AAC9B,YAAA,UAAU,EAAE,yBAAyB;AACrC,YAAA,WAAW,EAAE,yBAAyB;AACtC,YAAA,MAAM,EAAE,sBAAsB;AAC9B,YAAA,aAAa,EAAE,sBAAsB;AACrC,YAAA,cAAc,EAAE,sBAAsB;AACtC,YAAA,IAAI,EAAE,wBAAwB;AAC9B,YAAA,UAAU,EAAE,wBAAwB;AACpC,YAAA,aAAa,EAAE,wBAAwB;AACvC,YAAA,KAAK,EAAE,uBAAuB;AAC9B,YAAA,WAAW,EAAE,uBAAuB;AACpC,YAAA,cAAc,EAAE,uBAAuB;AACxC,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,SAAS,EAAE,KAAK;AACjB,KAAA;AACF,CAAA,CAAC;;MC1EW,wBAAwB,CAAA;AACnB,IAAA,OAAO,GAAG,MAAM,CAAkB,EAAE,mDAAC;AACrC,IAAA,QAAQ,GAAG,MAAM,CAAmB,KAAK,oDAAC;AAC1C,IAAA,WAAW,GAAG,MAAM,CAA4B,SAAS,uDAAC;AAC1D,IAAA,WAAW,GAAG,MAAM,CAA4B,SAAS,uDAAC;AAC1D,IAAA,YAAY,GAAG,MAAM,CAAC,EAAE,wDAAC;AACzB,IAAA,SAAS,GAAG,MAAM,CAAC,IAAI,qDAAC;AACxB,IAAA,QAAQ,GAAG,MAAM,CAAS,OAAO,oDAAC;AAClC,IAAA,KAAK,GAAG,MAAM,CAAoB,MAAM,iDAAC;AACzC,IAAA,WAAW,GAAG,MAAM,CAAS,CAAC,uDAAC;AAE5B,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;QACzC,MAAM,WAAW,GAAG,gBAAgB,CAAC;AACnC,YAAA,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE;AACzB,YAAA,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE;AACzB,YAAA,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE;AAC3B,SAAA,CAAC;AAEF,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,QAAQ,GAAG,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACpF,OAAO,aAAa,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;AACrE,IAAA,CAAC,mDAAC;IAEM,wBAAwB,GAAA;QAC9B,OAAO,oBAAoB,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;IAC7D;IAEmB,cAAc,GAAG,QAAQ,CAAC,MAC3C,aAAa,CAAC,uBAAuB,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CACtE;IAEkB,YAAY,GAAG,QAAQ,CAAC,MACzC,aAAa,CACX,qBAAqB,CAAC;AACpB,QAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;AACzB,QAAA,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE;KAC1B,CAAC,CACH,wDACF;AAEkB,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAC5C,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC3B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE;QAEjC,MAAM,gBAAgB,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC1C,IAAI,gBAAgB,EAAE;AACpB,YAAA,OAAO,EAAE;QACX;AAEA,QAAA,IAAI,MAAM,KAAK,CAAC,EAAE;AAChB,YAAA,OAAO,EAAE;QACX;QAEA,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,QAAQ,EAAE;YACrC,OAAO;gBACL,IAAI,EAAE,CAAA,WAAA,EAAc,MAAM,CAAA,GAAA,CAAK;aAChC;QACH;QAEA,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO,EAAE;YACrC,OAAO;gBACL,GAAG,EAAE,CAAA,WAAA,EAAc,MAAM,CAAA,GAAA,CAAK;aAC/B;QACH;AAEA,QAAA,OAAO,EAAE;AACX,IAAA,CAAC,sDAAC;AAEiB,IAAA,iBAAiB,GAAG,QAAQ,CAAC,MAAK;AACnD,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE;AACxB,QAAA,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;AACnC,IAAA,CAAC,6DAAC;AAEiB,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAK;AAC/C,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE;QACxB,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AACjD,IAAA,CAAC,yDAAC;AAEiB,IAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;AACjD,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE;AACxB,QAAA,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC5C,YAAA,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QAC/B;AACA,QAAA,OAAO,CAAC;AACV,IAAA,CAAC,2DAAC;AAEM,IAAA,cAAc,CAAC,IAAY,EAAA;QACjC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC7C,QAAA,OAAO,CAAC,SAAS,GAAG,IAAI;QACxB,OAAO,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,SAAS,IAAI,EAAE;IACvD;AAEO,IAAA,QAAQ,CAAC,MAQf,EAAA;QACC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,MAAM,CAAC,IAAI,EAAE;YACf,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QACnC;AACA,QAAA,IAAI,MAAM,CAAC,IAAI,EAAE;YACf,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QACnC;AACA,QAAA,IAAI,MAAM,CAAC,WAAW,EAAE;YACtB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC;QAC3C;AACA,QAAA,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE;YAC9B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;QAClC;AACA,QAAA,IAAI,MAAM,CAAC,QAAQ,EAAE;YACnB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;QACpC;IACF;uGArHW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAxB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA1BzB;;;;;;;;;;;;;;;;GAgBT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAlBS,gBAAgB,+IAAE,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FA4B9B,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBA9BpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,OAAO,EAAE,CAAC,gBAAgB,EAAE,aAAa,CAAC;AAC1C,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;AAgBT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,kBAAkB,EAAE,YAAY;AAChC,wBAAA,mBAAmB,EAAE,SAAS;AAC9B,wBAAA,sBAAsB,EAAE,YAAY;AACpC,wBAAA,IAAI,EAAE,SAAS;AAChB,qBAAA;AACF,iBAAA;;;ACrBK,SAAU,qBAAqB,CAAC,QAA0B,EAAE,MAAc,EAAA;AAC9E,IAAA,MAAM,SAAS,GAAgD;AAC7D,QAAA,GAAG,EAAE;AACH,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,CAAC,MAAM;AACjB,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,CAAC,MAAM;AACjB,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,CAAC,MAAM;AACjB,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,OAAO,EAAE,MAAM;AAChB,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,OAAO,EAAE,MAAM;AAChB,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,OAAO,EAAE,MAAM;AAChB,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,CAAC,MAAM;AACjB,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,CAAC,MAAM;AACjB,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,CAAC,MAAM;AACjB,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,OAAO,EAAE,MAAM;AAChB,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,OAAO,EAAE,MAAM;AAChB,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,OAAO,EAAE,MAAM;AAChB,SAAA;KACF;AAED,IAAA,OAAO,SAAS,CAAC,QAAQ,CAAC;AAC5B;AAEM,SAAU,2BAA2B,CAAC,QAA0B,EAAE,MAAc,EAAA;AACpF,IAAA,MAAM,aAAa,GAAiD;AAClE,QAAA,GAAG,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,CAAC;AAC9E,QAAA,UAAU,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,CAAC;AACrF,QAAA,WAAW,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC;AACtF,QAAA,MAAM,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,CAAC;AACjF,QAAA,aAAa,EAAE,CAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,CAAC;AACxF,QAAA,cAAc,EAAE,CAAC,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,CAAC;AACzF,QAAA,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,CAAC;AAC/E,QAAA,UAAU,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,CAAC;AACrF,QAAA,aAAa,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC;AACxF,QAAA,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,CAAC;AAChF,QAAA,WAAW,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,aAAa,CAAC;AACtF,QAAA,cAAc,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC;KAC1F;IAED,MAAM,gBAAgB,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;AAE9D,IAAA,OAAO,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACxE;AAEM,SAAU,6BAA6B,CAC3C,sBAA8C,EAC9C,MAA+C,EAC/C,QAA0B,EAC1B,MAAc,EAAA;AAEd,IAAA,OAAO;SACJ,mBAAmB,CAAC,MAAM;AAC1B,SAAA,aAAa,CAAC,2BAA2B,CAAC,QAAQ,EAAE,MAAM,CAAC;SAC3D,sBAAsB,CAAC,KAAK;SAC5B,QAAQ,CAAC,IAAI;SACb,kBAAkB,CAAC,CAAC,CAAC;AAC1B;AAEM,SAAU,iBAAiB,CAAC,MAAsC,EAAA;AACtE,IAAA,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,cAAc;IAEtE,IAAI,QAAQ,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,EAAE;QAC9C,IAAI,OAAO,KAAK,OAAO,IAAI,QAAQ,KAAK,OAAO,EAAE;AAC/C,YAAA,OAAO,UAAU;QACnB;QACA,IAAI,OAAO,KAAK,KAAK,IAAI,QAAQ,KAAK,KAAK,EAAE;AAC3C,YAAA,OAAO,WAAW;QACpB;AACA,QAAA,OAAO,KAAK;IACd;IAEA,IAAI,QAAQ,KAAK,KAAK,IAAI,OAAO,KAAK,QAAQ,EAAE;QAC9C,IAAI,OAAO,KAAK,OAAO,IAAI,QAAQ,KAAK,OAAO,EAAE;AAC/C,YAAA,OAAO,aAAa;QACtB;QACA,IAAI,OAAO,KAAK,KAAK,IAAI,QAAQ,KAAK,KAAK,EAAE;AAC3C,YAAA,OAAO,cAAc;QACvB;AACA,QAAA,OAAO,QAAQ;IACjB;IAEA,IAAI,QAAQ,KAAK,KAAK,IAAI,OAAO,KAAK,OAAO,EAAE;QAC7C,IAAI,OAAO,KAAK,KAAK,IAAI,QAAQ,KAAK,KAAK,EAAE;AAC3C,YAAA,OAAO,UAAU;QACnB;QACA,IAAI,OAAO,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,EAAE;AACjD,YAAA,OAAO,aAAa;QACtB;AACA,QAAA,OAAO,MAAM;IACf;IAEA,IAAI,QAAQ,KAAK,OAAO,IAAI,OAAO,KAAK,KAAK,EAAE;QAC7C,IAAI,OAAO,KAAK,KAAK,IAAI,QAAQ,KAAK,KAAK,EAAE;AAC3C,YAAA,OAAO,WAAW;QACpB;QACA,IAAI,OAAO,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,EAAE;AACjD,YAAA,OAAO,cAAc;QACvB;AACA,QAAA,OAAO,OAAO;IAChB;AAEA,IAAA,OAAO,KAAK;AACd;;AC5LO,MAAM,4BAA4B,GAAG,GAAG;;MCiClC,iBAAiB,CAAA;AACZ,IAAA,QAAQ,GAAG,KAAK,CAAkB,EAAE,oDAAC;AACrC,IAAA,SAAS,GAAG,KAAK,CAAmB,KAAK,qDAAC;IAC1C,gBAAgB,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAoB;AAC5C,IAAA,QAAQ,GAAG,KAAK,CAAkB,OAAO,oDAAC;IAC1C,eAAe,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAmB;IAC1C,KAAK,GAAG,KAAK,CAA4B,SAAS,kDAChE,KAAK,EAAE,cAAc,EAAA,CACrB;IAEc,KAAK,GAAG,KAAK,CAA4B,SAAS,kDAChE,KAAK,EAAE,cAAc,EAAA,CACrB;AAEc,IAAA,MAAM,GAAG,KAAK,CAAC,EAAE,kDAAC;IAClB,aAAa,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,eAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AAC/B,IAAA,UAAU,GAAG,KAAK,CAAC,GAAG,sDAAC;IACvB,iBAAiB,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AACnC,IAAA,UAAU,GAAG,KAAK,CAAC,CAAC,sDAAC;IACrB,iBAAiB,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;IACnC,MAAM,GAAG,KAAK,CAAC,IAAI,mDAAI,SAAS,EAAE,UAAU,EAAA,CAAG;AAC/C,IAAA,aAAa,GAAG,KAAK,CAAsB,SAAS,yDAAC;IACrD,SAAS,GAAG,KAAK,CAAC,KAAK,sDAAI,SAAS,EAAE,UAAU,EAAA,CAAG;AACnD,IAAA,gBAAgB,GAAG,KAAK,CAAsB,SAAS,4DAAC;AACxD,IAAA,OAAO,GAAG,KAAK,CAAC,CAAC,mDAAC;IAClB,cAAc,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;IAChC,WAAW,GAAG,KAAK,CAAC,IAAI,wDAAI,SAAS,EAAE,UAAU,EAAA,CAAG;AACpD,IAAA,eAAe,GAAG,KAAK,CAAqB,IAAI,2DAAC;IACjD,WAAW,GAAG,KAAK,CAAC,KAAK,wDAAI,SAAS,EAAE,UAAU,EAAA,CAAG;AACrD,IAAA,SAAS,GAAG,KAAK,CAAS,OAAO,qDAAC;AAEjC,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,qDAAC;AACvE,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,oDAAC;AACpE,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,kDAAC;AAC9D,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,sDAAC;AAC1E,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,sDAAC;AAC1E,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,kDAAC;AAC9D,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,qDAAC;AACvE,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,mDAAC;IAElE,KAAK,GAAG,MAAM,EAAQ;IACtB,KAAK,GAAG,MAAM,EAAQ;AAErB,IAAA,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;AAC1B,IAAA,uBAAuB,GAAG,MAAM,CAAC,sBAAsB,CAAC;AACxD,IAAA,WAAW,GAAG,MAAM,EAAC,UAAuB,EAAC;AAC7C,IAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAC7B,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAChC,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACjC,IAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;IAErC,WAAW,GAAsB,IAAI;IACrC,aAAa,GAAkD,IAAI;AACnE,IAAA,aAAa,GAAG,IAAI,OAAO,EAAuB;IAClD,iBAAiB,GAAmB,EAAE;IACtC,qBAAqB,GAAwB,IAAI;IACjD,YAAY,GAAyC,IAAI;AAChD,IAAA,UAAU,GAAG,MAAM,CAAC,KAAK,sDAAC;AAE3C,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;YACV,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AACxC,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACvB;AACF,QAAA,CAAC,CAAC;IACJ;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YACxC;QACF;QAEA,IAAI,CAAC,oBAAoB,EAAE;QAC3B,IAAI,CAAC,cAAc,EAAE;IACvB;IAEA,WAAW,GAAA;QACT,IAAI,CAAC,iBAAiB,EAAE;AACxB,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;QAC7B,IAAI,CAAC,iBAAiB,EAAE;QACxB,IAAI,CAAC,eAAe,EAAE;IACxB;IAEO,IAAI,GAAA;QACT,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YACxC;QACF;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE;YACzE;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;AACrB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACpB;QACF;QAEA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;IACtC;IAEQ,gBAAgB,GAAA;AACtB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa;AAC7C,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE;AAExC,QAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE;AACpC,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ;AACtC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC9C,YAAA,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAgB;AAC9C,YAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE;AACnC,gBAAA,OAAO,IAAI;YACb;AAEA,YAAA,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ;AACpC,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC7C,IAAI,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAgB,CAAC,EAAE;AAC7D,oBAAA,OAAO,IAAI;gBACb;YACF;QACF;AAEA,QAAA,IAAI,SAAS,IAAI,SAAS,KAAK,MAAM,EAAE;AACrC,YAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE;AACvC,gBAAA,OAAO,IAAI;YACb;AAEA,YAAA,MAAM,qBAAqB,GAAG,SAAS,CAAC,QAAQ;AAChD,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,qBAAqB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACrD,IAAI,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,CAAC,CAAgB,CAAC,EAAE;AACrE,oBAAA,OAAO,IAAI;gBACb;YACF;QACF;AAEA,QAAA,OAAO,KAAK;IACd;AAEQ,IAAA,mBAAmB,CAAC,EAAe,EAAA;QACzC,IAAI,EAAE,YAAY,gBAAgB,IAAI,EAAE,YAAY,mBAAmB,EAAE;AACvE,YAAA,OAAO,IAAI,CAAC,4BAA4B,CAAC,EAAE,CAAC;QAC9C;QAEA,IAAI,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW,EAAE;AACnC,YAAA,OAAO,IAAI;QACb;QAEA,IAAI,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,YAAY,EAAE;AACrC,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,CAAC;AACnC,QAAA,IAAI,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,YAAY,KAAK,UAAU,EAAE;YACxE,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;AAC1C,YAAA,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC5B,MAAM,YAAY,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC,KAAK;YACxD,MAAM,YAAY,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC,KAAK;YACrD,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;YACvD,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;AACzD,YAAA,MAAM,cAAc,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY;AAEhE,YAAA,IAAI,YAAY,GAAG,cAAc,GAAG,GAAG,EAAE;AACvC,gBAAA,OAAO,IAAI;YACb;QACF;QAEA,MAAM,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,CAAC;AAC/D,QAAA,IAAI,SAAS,IAAI,SAAS,KAAK,MAAM,EAAE;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;AAC1C,YAAA,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC5B,MAAM,WAAW,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC,MAAM;YACxD,MAAM,QAAQ,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC,MAAM;YAClD,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;YACrD,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;AAC3D,YAAA,MAAM,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,aAAa;AAC3D,YAAA,IAAI,WAAW,GAAG,aAAa,GAAG,CAAC,EAAE;AACnC,gBAAA,OAAO,IAAI;YACb;QACF;AAEA,QAAA,OAAO,KAAK;IACd;AAEQ,IAAA,4BAA4B,CAAC,EAA0C,EAAA;AAC7E,QAAA,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;AACb,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,CAAC;QACnC,MAAM,cAAc,GAClB,EAAE,CAAC,WAAW,IAAI,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACjG,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC;QACrD,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;QAEvC,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,OAAO,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW;QACxC;AAEA,QAAA,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI;AAC1B,QAAA,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK;QACtD,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC;AACtD,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,aAAa;AAEvG,QAAA,OAAO,UAAU,GAAG,YAAY,GAAG,cAAc;IACnD;IAEO,IAAI,GAAA;QACT,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;IACvC;IAEO,MAAM,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACrB,IAAI,CAAC,IAAI,EAAE;YACX;QACF;QAEA,IAAI,CAAC,IAAI,EAAE;IACb;IAEQ,cAAc,GAAA;QACpB,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,WAAW;QAChE,MAAM,gBAAgB,GAAG,6BAA6B,CACpD,IAAI,CAAC,uBAAuB,EAC5B,aAAa,EACb,IAAI,CAAC,SAAS,EAAE,EAChB,IAAI,CAAC,OAAO,EAAE,CACf;AAED,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC1B,gBAAgB;YAChB,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE;AAC5D,SAAA,CAAC;IACJ;IAEQ,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,qBAAqB,EAAE,WAAW,EAAE;AACzC,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI;AACjC,QAAA,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE;AAC3B,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;IAC3B;IAEQ,oBAAoB,GAAA;AAC1B,QAAA,IAAI,CAAC;aACF,IAAI,CACH,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,EACnG,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;aAErC,SAAS,CAAC,MAAM,IAAG;AAClB,YAAA,IAAI,MAAM,CAAC,IAAI,EAAE;gBACf,IAAI,CAAC,YAAY,EAAE;gBACnB;YACF;YAEA,IAAI,CAAC,YAAY,EAAE;AACrB,QAAA,CAAC,CAAC;IACN;IAEQ,cAAc,GAAA;QACpB,IAAI,CAAC,iBAAiB,EAAE;AACxB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC/B,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa;AAE1E,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CACzB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;AACvF,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,OAAO,EAAE,IAAI;SACd,CAAC,EACF,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;AACvF,YAAA,OAAO,EAAE,IAAI;AACd,SAAA,CAAC,EACF,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CACvF;AAED,QAAA,IAAI,OAAO,KAAK,OAAO,EAAE;AACvB,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CACzB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,EACjE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,EACjE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,EAC5D,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAC5D;YACD;QACF;AAEA,QAAA,IAAI,OAAO,KAAK,OAAO,EAAE;AACvB,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CACzB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,MAAK;AAC7C,gBAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;AACrB,oBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;oBACrB;gBACF;gBAEA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;YACtC,CAAC,CAAC,CACH;QACH;IACF;IAEQ,kBAAkB,GAAA;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB;QACF;AAEA,QAAA,IAAI,CAAC;AACF,aAAA,oBAAoB;AACpB,aAAA,IAAI,CACH,MAAM,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,EACzC,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,CAAC,EAC/E,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;AAErC,aAAA,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC3C;IAEQ,MAAM,CAAC,IAAa,EAAE,KAAa,EAAA;QACzC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC1C;IAEQ,YAAY,GAAA;AAClB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE;QAC/B,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;YAChC;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;AAC7C,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;YACzB;QACF;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACrB,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE;YACxC,IAAI,CAAC,kBAAkB,EAAE;QAC3B;QAEA,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,WAAW;QAChE,MAAM,gBAAgB,GAAG,6BAA6B,CACpD,IAAI,CAAC,uBAAuB,EAC5B,aAAa,EACb,IAAI,CAAC,SAAS,EAAE,EAChB,IAAI,CAAC,OAAO,EAAE,CACf;AAED,QAAA,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,gBAAgB,CAAC;AAEzD,QAAA,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,wBAAwB,CAAC;QAC5D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;AAEpD,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACnC,OAAO;AACP,YAAA,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE;AAC1B,YAAA,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE;AAClB,YAAA,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE;AAClB,YAAA,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE;AAC1B,YAAA,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE;AACpB,YAAA,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE;AAC3B,SAAA,CAAC;QAEF,IAAI,CAAC,qBAAqB,GAAI,gBAAsD,CAAC,eAAe,CAAC,SAAS,CAC5G,MAAM,IAAG;AACP,YAAA,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC;YAChD,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC;AAEzD,YAAA,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC;AAC5C,QAAA,CAAC,CACF;AAED,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,OAAO,EAAE;YAC/B,IAAI,CAAC,kBAAkB,EAAE;QAC3B;AAEA,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;AACzB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;IACnB;IAEQ,kBAAkB,GAAA;AACxB,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,cAAc;QACvD,IAAI,CAAC,cAAc,EAAE;YACnB;QACF;AAEA,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CACzB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,EAAE,YAAY,EAAE,MAAK;AACvD,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AACtB,QAAA,CAAC,CAAC,EACF,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,EAAE,YAAY,EAAE,MAAK;YACvD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;QACvC,CAAC,CAAC,CACH;IACH;IAEQ,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB;QACF;QAEA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC/C,IAAI,CAAC,iBAAiB,EAAE;AACxB,QAAA,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,MAAK;AAClC,YAAA,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;gBAC9B;YACF;YAEA,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;AAC1B,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;QACnB,CAAC,EAAE,4BAA4B,CAAC;IAClC;IAEQ,iBAAiB,GAAA;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB;QACF;AAEA,QAAA,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/B,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;IAC1B;IAEQ,iBAAiB,GAAA;AACvB,QAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC;AACpD,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE;IAC7B;AAEQ,IAAA,qBAAqB,CAAC,QAA0B,EAAA;QACtD,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YAC5C;QACF;AAEA,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa;AAC/E,QAAA,MAAM,WAAW,GAAG,cAAc,CAAC,qBAAqB,EAAE;QAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,qBAAqB,EAAE;QAE3E,IAAI,MAAM,GAAG,CAAC;QAEd,IAAI,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,QAAQ,EAAE;YAC/C,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC,KAAK,GAAG,CAAC;YAC/D,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC,KAAK,GAAG,CAAC;AAC/D,YAAA,MAAM,GAAG,cAAc,GAAG,cAAc;QAC1C;QAEA,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,OAAO,EAAE;YAC/C,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC;YAC/D,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC;AAC/D,YAAA,MAAM,GAAG,cAAc,GAAG,cAAc;QAC1C;AAEA,QAAA,MAAM,SAAS,GACb,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,QAAQ,GAAG,WAAW,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE;AACxG,QAAA,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAE1D,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YACxB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;YACnD;QACF;QAEA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAChD;uGAzcW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,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,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,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,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,cAAA,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,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,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,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,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,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,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,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,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,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,UAAU;AACrB,iBAAA;;;ACpCD;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shival99/z-ui",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.6",
|
|
4
4
|
"description": "Z-UI: Modern Angular UI Component Library - A comprehensive, high-performance design system built with Angular 20+, featuring 40+ customizable components with dark mode, accessibility, and enterprise-ready features.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -274,7 +274,7 @@ declare class ZAutocompleteComponent<T = unknown> implements OnInit, ControlValu
|
|
|
274
274
|
|
|
275
275
|
declare const zAutocompleteInputVariants: (props?: ({
|
|
276
276
|
zSize?: "sm" | "default" | "lg" | null | undefined;
|
|
277
|
-
zStatus?: "default" | "
|
|
277
|
+
zStatus?: "default" | "error" | "disabled" | "readonly" | "open" | null | undefined;
|
|
278
278
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
279
279
|
type ZAutocompleteInputVariants = VariantProps<typeof zAutocompleteInputVariants>;
|
|
280
280
|
declare const zAutocompleteOptionVariants: (props?: ({
|
|
@@ -328,7 +328,7 @@ declare const Z_EDITOR_DEFAULT_TOOLBAR: readonly ZEditorToolbarItem[];
|
|
|
328
328
|
|
|
329
329
|
declare const zEditorVariants: (props?: ({
|
|
330
330
|
zSize?: "sm" | "default" | "lg" | null | undefined;
|
|
331
|
-
zStatus?: "default" | "
|
|
331
|
+
zStatus?: "default" | "disabled" | "readonly" | "error" | null | undefined;
|
|
332
332
|
zPlaceholderMode?: "firstLine" | "everyLine" | null | undefined;
|
|
333
333
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
334
334
|
type ZEditorVariants = VariantProps<typeof zEditorVariants>;
|
|
@@ -188,7 +188,7 @@ declare class ZGalleryComponent implements AfterViewInit {
|
|
|
188
188
|
protected readonly headerControlHeight: _angular_core.Signal<"1.75rem" | "2rem" | "2.5rem" | "2.25rem">;
|
|
189
189
|
protected readonly skeletonMediaHeight: _angular_core.Signal<"9rem" | "14rem" | "11rem">;
|
|
190
190
|
protected readonly toggleIconSize: _angular_core.Signal<"14" | "16" | "20" | "18">;
|
|
191
|
-
protected readonly searchInputSize: _angular_core.Signal<"
|
|
191
|
+
protected readonly searchInputSize: _angular_core.Signal<"default" | "sm" | "lg">;
|
|
192
192
|
protected readonly filteredFiles: _angular_core.Signal<ZGalleryFile[]>;
|
|
193
193
|
protected readonly selectedIds: _angular_core.Signal<Set<string>>;
|
|
194
194
|
protected readonly isAllSelected: _angular_core.Signal<boolean>;
|
|
@@ -382,16 +382,16 @@ declare const isPreviewable: (file: ZGalleryFile) => boolean;
|
|
|
382
382
|
declare const isImage: (file: ZGalleryFile) => boolean;
|
|
383
383
|
|
|
384
384
|
declare const zGalleryVariants: (props?: ({
|
|
385
|
-
zSize?: "
|
|
385
|
+
zSize?: "default" | "sm" | "lg" | null | undefined;
|
|
386
386
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
387
387
|
type ZGalleryVariants = VariantProps<typeof zGalleryVariants>;
|
|
388
388
|
declare const zGalleryItemVariants: (props?: ({
|
|
389
389
|
zMode?: "grid" | "list" | null | undefined;
|
|
390
|
-
zSize?: "
|
|
390
|
+
zSize?: "default" | "sm" | "lg" | null | undefined;
|
|
391
391
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
392
392
|
type ZGalleryItemVariants = VariantProps<typeof zGalleryItemVariants>;
|
|
393
393
|
declare const zGalleryFileIconVariants: (props?: ({
|
|
394
|
-
zSize?: "
|
|
394
|
+
zSize?: "default" | "sm" | "lg" | null | undefined;
|
|
395
395
|
zMode?: "grid" | "list" | null | undefined;
|
|
396
396
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
397
397
|
type ZGalleryFileIconVariants = VariantProps<typeof zGalleryFileIconVariants>;
|
|
@@ -251,7 +251,7 @@ declare class ZModalComponent<T, U> extends BasePortalOutlet implements OnDestro
|
|
|
251
251
|
protected readonly effectiveOkText: _angular_core.Signal<string | null | undefined>;
|
|
252
252
|
protected readonly effectiveCancelText: _angular_core.Signal<string | null | undefined>;
|
|
253
253
|
protected readonly effectiveOkDestructive: _angular_core.Signal<boolean | undefined>;
|
|
254
|
-
protected readonly effectiveTypeOk: _angular_core.Signal<"info" | "warning" | "error" | "
|
|
254
|
+
protected readonly effectiveTypeOk: _angular_core.Signal<"info" | "warning" | "error" | "default" | "primary" | "secondary" | "destructive" | "destructive-heartbeat" | "success" | "outline" | "outline-primary" | "outline-secondary" | "outline-success" | "outline-info" | "outline-warning" | "outline-error" | "outline-destructive" | "outline-shimmer" | "outline-success-secondary" | "outline-info-secondary" | "outline-warning-secondary" | "outline-error-secondary" | "outline-destructive-secondary" | "outline-primary-secondary" | "outline-primary-soft" | "outline-success-soft" | "outline-info-soft" | "outline-warning-soft" | "outline-error-soft" | "outline-destructive-soft" | "outline-primary-soft-border" | "outline-success-soft-border" | "outline-info-soft-border" | "outline-warning-soft-border" | "outline-error-soft-border" | "outline-destructive-soft-border" | "ghost" | "ghost-primary" | "ghost-success" | "ghost-info" | "ghost-warning" | "ghost-error" | "ghost-destructive" | "subtle" | "subtle-primary" | "subtle-success" | "subtle-info" | "subtle-warning" | "subtle-destructive" | "subtle-outline" | "subtle-primary-outline" | "subtle-success-outline" | "subtle-info-outline" | "subtle-warning-outline" | "subtle-destructive-outline" | "link" | null | undefined>;
|
|
255
255
|
protected readonly effectiveOkDisabled: _angular_core.Signal<boolean | undefined>;
|
|
256
256
|
protected readonly effectiveLoading: _angular_core.Signal<boolean>;
|
|
257
257
|
protected readonly effectiveContentLoading: _angular_core.Signal<boolean>;
|
|
@@ -116,7 +116,7 @@ declare class ZPopoverDirective implements OnInit, OnDestroy {
|
|
|
116
116
|
readonly zHideDelay: _angular_core.InputSignal<number>;
|
|
117
117
|
readonly zDisabled: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
|
|
118
118
|
readonly zOffset: _angular_core.InputSignal<number>;
|
|
119
|
-
readonly zPopoverWidth: _angular_core.InputSignal<number | "
|
|
119
|
+
readonly zPopoverWidth: _angular_core.InputSignal<number | "auto" | "trigger">;
|
|
120
120
|
readonly zTriggerRef: _angular_core.InputSignal<HTMLElement | ElementRef<HTMLElement> | null>;
|
|
121
121
|
readonly zManualClose: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
|
|
122
122
|
readonly zOutsideClickClose: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
|
|
@@ -323,7 +323,7 @@ declare class ZTagClassesPipe implements PipeTransform {
|
|
|
323
323
|
|
|
324
324
|
declare const zSelectVariants: (props?: ({
|
|
325
325
|
zSize?: "sm" | "default" | "lg" | null | undefined;
|
|
326
|
-
zStatus?: "default" | "
|
|
326
|
+
zStatus?: "default" | "error" | "disabled" | "readonly" | "open" | null | undefined;
|
|
327
327
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
328
328
|
declare const zSelectTagVariants: (props?: ({
|
|
329
329
|
zSize?: "sm" | "default" | "lg" | null | undefined;
|
|
@@ -7,7 +7,7 @@ import * as _angular_core from '@angular/core';
|
|
|
7
7
|
import { TemplateRef, Type, AfterViewInit, ElementRef, OnInit } from '@angular/core';
|
|
8
8
|
import { CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
9
9
|
import { ConnectedPosition } from '@angular/cdk/overlay';
|
|
10
|
-
import { ZPopoverControl, ZPopoverDirective } from '@shival99/z-ui/components/z-popover';
|
|
10
|
+
import { ZPopoverPosition, ZPopoverTrigger, ZPopoverControl, ZPopoverDirective } from '@shival99/z-ui/components/z-popover';
|
|
11
11
|
import { ClassValue } from 'clsx';
|
|
12
12
|
import { NgScrollbar } from 'ngx-scrollbar';
|
|
13
13
|
import { ZAutocompleteType, ZAutocompleteOption } from '@shival99/z-ui/components/z-autocomplete';
|
|
@@ -17,7 +17,7 @@ import { ZSelectOption, ZSelectConfig, ZSelectMode } from '@shival99/z-ui/compon
|
|
|
17
17
|
import * as _shival99_z_ui_components_z_tags from '@shival99/z-ui/components/z-tags';
|
|
18
18
|
import { ZTagColor } from '@shival99/z-ui/components/z-tags';
|
|
19
19
|
import * as _shival99_z_ui_components_z_tooltip from '@shival99/z-ui/components/z-tooltip';
|
|
20
|
-
import { ZTooltipConfig, ZTooltipContent } from '@shival99/z-ui/components/z-tooltip';
|
|
20
|
+
import { ZTooltipConfig, ZTooltipContent, ZTooltipTrigger } from '@shival99/z-ui/components/z-tooltip';
|
|
21
21
|
import { ZExcelColumnConfig, ZExcelExportOptions } from '@shival99/z-ui/services';
|
|
22
22
|
import { ZDateRange } from '@shival99/z-ui/components/z-calendar';
|
|
23
23
|
import { ZDropdownMenuItem } from '@shival99/z-ui/components/z-dropdown-menu';
|
|
@@ -78,6 +78,43 @@ interface ZTableGroupLabelContext<T> {
|
|
|
78
78
|
rows: Row<T>[];
|
|
79
79
|
}
|
|
80
80
|
type ZTableGroupLabelFormatter<T> = (context: ZTableGroupLabelContext<T>) => string;
|
|
81
|
+
type ZTablePopoverContent = string | TemplateRef<unknown>;
|
|
82
|
+
interface ZTablePopoverConfig {
|
|
83
|
+
content?: ZTablePopoverContent;
|
|
84
|
+
position?: ZPopoverPosition;
|
|
85
|
+
trigger?: ZPopoverTrigger;
|
|
86
|
+
class?: string;
|
|
87
|
+
showDelay?: number;
|
|
88
|
+
hideDelay?: number;
|
|
89
|
+
disabled?: boolean;
|
|
90
|
+
offset?: number;
|
|
91
|
+
width?: 'auto' | 'trigger' | number;
|
|
92
|
+
manualClose?: boolean;
|
|
93
|
+
outsideClickClose?: boolean;
|
|
94
|
+
scrollClose?: boolean;
|
|
95
|
+
sticky?: boolean;
|
|
96
|
+
showArrow?: boolean;
|
|
97
|
+
keyboardSafe?: boolean;
|
|
98
|
+
}
|
|
99
|
+
type ZTableBodyPopoverConfig<T> = string | ZTablePopoverConfig | TemplateRef<unknown> | ((info: CellContext<T, unknown>) => string | ZTablePopoverConfig | TemplateRef<unknown>);
|
|
100
|
+
interface ZTableGroupTotalContext<T> {
|
|
101
|
+
columnId: string;
|
|
102
|
+
rows: Row<T>[];
|
|
103
|
+
value: unknown;
|
|
104
|
+
depth: number;
|
|
105
|
+
}
|
|
106
|
+
type ZTableGroupTotalContent<T> = 'sum' | ((context: ZTableGroupTotalContext<T>) => unknown);
|
|
107
|
+
interface ZTableGroupTotalConfig<T = unknown> {
|
|
108
|
+
columnId: string;
|
|
109
|
+
content?: ZTableGroupTotalContent<T>;
|
|
110
|
+
class?: string;
|
|
111
|
+
tooltip?: string | TemplateRef<unknown> | ZTableTooltipConfig;
|
|
112
|
+
popover?: ZTablePopoverContent | ZTablePopoverConfig;
|
|
113
|
+
}
|
|
114
|
+
interface ZTableTooltipConfig extends ZTooltipConfig {
|
|
115
|
+
trigger?: ZTooltipTrigger;
|
|
116
|
+
}
|
|
117
|
+
type ZTableBodyTooltipConfig<T> = string | ZTableTooltipConfig | TemplateRef<unknown> | ((info: CellContext<T, unknown>) => string | ZTableTooltipConfig | TemplateRef<unknown>);
|
|
81
118
|
/** Available column filter value input hints */
|
|
82
119
|
type ZTableFilterValueType = 'text' | 'number';
|
|
83
120
|
type ZTableFilterUi = 'basic' | 'advanced' | 'custom';
|
|
@@ -287,7 +324,8 @@ interface ZTableBodyColumnConfig<T> {
|
|
|
287
324
|
colSpan?: number | ((info: CellContext<T, unknown>) => number);
|
|
288
325
|
contentClass?: string | ((info: CellContext<T, unknown>) => string);
|
|
289
326
|
contentStyle?: Record<string, string> | ((info: CellContext<T, unknown>) => Record<string, string>);
|
|
290
|
-
tooltip?:
|
|
327
|
+
tooltip?: ZTableBodyTooltipConfig<T>;
|
|
328
|
+
popover?: ZTableBodyPopoverConfig<T>;
|
|
291
329
|
/**
|
|
292
330
|
* Action buttons rendered inside this cell.
|
|
293
331
|
*
|
|
@@ -397,8 +435,10 @@ interface ZTableServerGroup {
|
|
|
397
435
|
count?: number;
|
|
398
436
|
/** Đang fetch rows cho group này (hiển thị loading trong group). */
|
|
399
437
|
loading?: boolean;
|
|
438
|
+
/** Tổng theo cột do server cung cấp, key là columnId. */
|
|
439
|
+
totals?: Record<string, unknown>;
|
|
400
440
|
}
|
|
401
|
-
interface ZTableGroupingConfig {
|
|
441
|
+
interface ZTableGroupingConfig<T = unknown> {
|
|
402
442
|
enabled?: boolean;
|
|
403
443
|
mode?: ZTableGroupingMode;
|
|
404
444
|
/** Các cột được phép group từ header menu. */
|
|
@@ -408,6 +448,8 @@ interface ZTableGroupingConfig {
|
|
|
408
448
|
allowHeaderMenu?: boolean;
|
|
409
449
|
defaultExpanded?: boolean;
|
|
410
450
|
showCount?: boolean;
|
|
451
|
+
/** Cấu hình các cột cần hiển thị tổng trên group row. */
|
|
452
|
+
totals?: ZTableGroupTotalConfig<T>[];
|
|
411
453
|
/**
|
|
412
454
|
* Cột đang group ở chế độ server (bắt buộc cho server grouping vì table không tự suy ra).
|
|
413
455
|
* Nếu bỏ trống, dùng phần tử đầu của `columns`.
|
|
@@ -896,7 +938,7 @@ interface ZTableConfig<T> {
|
|
|
896
938
|
enableColumnPinning?: boolean;
|
|
897
939
|
enableColumnOrdering?: boolean;
|
|
898
940
|
enableColumnSorting?: boolean;
|
|
899
|
-
enableGrouping?: ZTableGroupingConfig | boolean;
|
|
941
|
+
enableGrouping?: ZTableGroupingConfig<T> | boolean;
|
|
900
942
|
pagination?: ZTablePaginationConfig;
|
|
901
943
|
initialState?: ZTableInitialState;
|
|
902
944
|
loading?: boolean;
|
|
@@ -981,6 +1023,7 @@ interface ZTableGroupRowItem {
|
|
|
981
1023
|
expanded: boolean;
|
|
982
1024
|
/** Server grouping: group đang fetch child rows. */
|
|
983
1025
|
loading?: boolean;
|
|
1026
|
+
totals?: Record<string, unknown>;
|
|
984
1027
|
}
|
|
985
1028
|
interface ZTableDataRowItem<T> {
|
|
986
1029
|
type: 'row';
|
|
@@ -1211,7 +1254,7 @@ declare class ZTableComponent<T> implements AfterViewInit {
|
|
|
1211
1254
|
protected readonly hasSorting: _angular_core.Signal<boolean>;
|
|
1212
1255
|
protected readonly hasLocalSorting: _angular_core.Signal<boolean>;
|
|
1213
1256
|
protected readonly hasServerFiltering: _angular_core.Signal<boolean>;
|
|
1214
|
-
protected readonly groupingConfig: _angular_core.Signal<ZTableGroupingConfig
|
|
1257
|
+
protected readonly groupingConfig: _angular_core.Signal<ZTableGroupingConfig<T>>;
|
|
1215
1258
|
/** EN/VI: true khi grouping chạy ở chế độ server (group meta do server cung cấp). */
|
|
1216
1259
|
protected readonly isServerGrouping: _angular_core.Signal<boolean>;
|
|
1217
1260
|
protected readonly canUseGrouping: _angular_core.Signal<boolean>;
|
|
@@ -1220,6 +1263,8 @@ declare class ZTableComponent<T> implements AfterViewInit {
|
|
|
1220
1263
|
protected readonly activeGroupingColumnIds: _angular_core.Signal<string[]>;
|
|
1221
1264
|
protected readonly activeGroupingColumnId: _angular_core.Signal<string>;
|
|
1222
1265
|
protected readonly groupingColumnMap: _angular_core.Signal<Record<string, boolean>>;
|
|
1266
|
+
protected readonly groupTotalColumnMap: _angular_core.Signal<Record<string, boolean>>;
|
|
1267
|
+
protected readonly groupTotalConfigMap: _angular_core.Signal<Record<string, ZTableGroupTotalConfig<T>>>;
|
|
1223
1268
|
protected readonly groupableColumnMap: _angular_core.Signal<Record<string, boolean>>;
|
|
1224
1269
|
protected readonly groupingHeaderMenuMap: _angular_core.Signal<Record<string, boolean>>;
|
|
1225
1270
|
protected readonly groupedCenterRowItems: _angular_core.Signal<ZTableGroupedRowItem<T>[]>;
|
|
@@ -1231,6 +1276,8 @@ declare class ZTableComponent<T> implements AfterViewInit {
|
|
|
1231
1276
|
* Child rows lấy từ `getCenterRows()` (data parent đã fetch) và gán vào group theo value.
|
|
1232
1277
|
*/
|
|
1233
1278
|
private _buildServerGroupedItems;
|
|
1279
|
+
private _getGroupTotals;
|
|
1280
|
+
private _sumGroupColumn;
|
|
1234
1281
|
/**
|
|
1235
1282
|
* EN: Flat list of body rows in the exact order they are rendered. When grouping is active the
|
|
1236
1283
|
* center rows are re-ordered group-by-group, so the flat `table.getRowModel().rows` no longer
|
|
@@ -1658,13 +1705,13 @@ declare class ZTableFilterComponent<T> {
|
|
|
1658
1705
|
|
|
1659
1706
|
declare class ZTableIconTextComponent {
|
|
1660
1707
|
readonly zText: _angular_core.InputSignal<string>;
|
|
1661
|
-
readonly zTooltip: _angular_core.InputSignal<
|
|
1708
|
+
readonly zTooltip: _angular_core.InputSignal<ZTooltipConfig | ZTooltipContent>;
|
|
1662
1709
|
readonly zTriggerElement: _angular_core.InputSignal<HTMLElement | null>;
|
|
1663
1710
|
private readonly _hostEl;
|
|
1664
1711
|
private readonly _zTranslate;
|
|
1665
1712
|
protected readonly triggerEl: _angular_core.Signal<any>;
|
|
1666
1713
|
protected readonly translatedParts: _angular_core.Signal<ZTableIconPart[]>;
|
|
1667
|
-
protected readonly tooltipContent: _angular_core.Signal<
|
|
1714
|
+
protected readonly tooltipContent: _angular_core.Signal<ZTooltipContent>;
|
|
1668
1715
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZTableIconTextComponent, never>;
|
|
1669
1716
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZTableIconTextComponent, "z-table-icon-text", never, { "zText": { "alias": "zText"; "required": false; "isSignal": true; }; "zTooltip": { "alias": "zTooltip"; "required": false; "isSignal": true; }; "zTriggerElement": { "alias": "zTriggerElement"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1670
1717
|
}
|
|
@@ -1778,6 +1825,7 @@ declare const getBodyConfig: <T>(col: ZTableColumnConfig<T> | undefined, ctx?: C
|
|
|
1778
1825
|
contentClass: string | undefined;
|
|
1779
1826
|
contentStyle: Record<string, string> | undefined;
|
|
1780
1827
|
tooltip: string | object | undefined;
|
|
1828
|
+
popover: string | object | undefined;
|
|
1781
1829
|
} | {
|
|
1782
1830
|
content: ZTableCellContent<T> | undefined;
|
|
1783
1831
|
type: _shival99_z_ui_components_z_table.ZTableBodyContentType;
|
|
@@ -1789,7 +1837,8 @@ declare const getBodyConfig: <T>(col: ZTableColumnConfig<T> | undefined, ctx?: C
|
|
|
1789
1837
|
colSpan: number | undefined;
|
|
1790
1838
|
contentClass: string | ((info: CellContext<T, unknown>) => string) | undefined;
|
|
1791
1839
|
contentStyle: Record<string, string> | undefined;
|
|
1792
|
-
tooltip:
|
|
1840
|
+
tooltip: ZTableBodyTooltipConfig<T> | undefined;
|
|
1841
|
+
popover: ZTableBodyPopoverConfig<T> | undefined;
|
|
1793
1842
|
};
|
|
1794
1843
|
declare const getFooterConfig: <T>(col: ZTableColumnConfig<T> | undefined, footerRowIndex?: number) => {
|
|
1795
1844
|
content: ZTableHeaderContent<T> | undefined;
|
|
@@ -17,6 +17,7 @@ type ZTooltipContent = string | TemplateRef<unknown>;
|
|
|
17
17
|
interface ZTooltipConfig {
|
|
18
18
|
content?: ZTooltipContent;
|
|
19
19
|
position?: ZTooltipPosition;
|
|
20
|
+
trigger?: ZTooltipTrigger;
|
|
20
21
|
type?: ZTooltipVariants['zType'];
|
|
21
22
|
size?: ZTooltipVariants['zSize'];
|
|
22
23
|
class?: string;
|