ngx-kit 8.3.0 → 8.3.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-kit-tooltip.mjs","sources":["../../../projects/libs/tooltip/types/configs.ts","../../../projects/libs/tooltip/providers/tootip.provider.ts","../../../projects/libs/tooltip/directives/ngx-tooltip.directive.ts","../../../projects/libs/tooltip/ngx-kit-tooltip.ts"],"sourcesContent":["import type { NgxTooltipPlacement, NgxTooltipTrigger } from '../public-api';\n\nconst DEFAULT_OFFSET = 8;\nconst SHOW_DELAY = 80;\nconst HIDE_DELAY = 40;\n\nexport class NgxTooltipConfig {\n placement: NgxTooltipPlacement = 'bottom';\n offset: number = DEFAULT_OFFSET;\n delay: number = SHOW_DELAY;\n hideDelay: number = HIDE_DELAY;\n useHtml: boolean = false;\n usePopOver: boolean = true;\n trigger: NgxTooltipTrigger = 'hover';\n \n}\n","import { InjectionToken, makeEnvironmentProviders, type EnvironmentProviders } from '@angular/core';\nimport { NgxTooltipConfig } from '../types/configs';\n\nexport const NGX_TOOLTIP_CONFIG = new InjectionToken<NgxTooltipConfig>('ngx-tooltip-config', {\n factory: () => new NgxTooltipConfig(),\n});\nexport function provideTooltip(configs?: NgxTooltipConfig): EnvironmentProviders {\n return makeEnvironmentProviders([\n {\n provide: NGX_TOOLTIP_CONFIG,\n useValue: { ...new NgxTooltipConfig(), ...(configs || {}) },\n },\n ]);\n}\n","import {\n Directive,\n DOCUMENT,\n effect,\n ElementRef,\n inject,\n input,\n NgZone,\n OnDestroy,\n Renderer2,\n SecurityContext,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { NgxTooltipPlacement } from '../types/placement';\nimport { NgxTooltipTrigger } from '../types/trigger';\nimport { NGX_TOOLTIP_CONFIG } from '../providers/tootip.provider';\n\nconst TOOLTIP_CLASS = 'ngx-tooltip';\nconst VISIBLE_CLASS = 'ngx-tooltip-visible';\nconst VIEWPORT_PADDING = 8;\n\n@Directive({\n selector: '[ngxTooltip]',\n standalone: true,\n})\nexport class NgxTooltip implements OnDestroy {\n private readonly configs = inject(NGX_TOOLTIP_CONFIG);\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n private readonly renderer = inject(Renderer2);\n private readonly sanitizer = inject(DomSanitizer);\n private readonly doc = inject(DOCUMENT);\n\n private readonly element = this.elementRef.nativeElement;\n\n private tooltip?: HTMLElement;\n\n private showTimer?: ReturnType<typeof setTimeout>;\n private hideTimer?: ReturnType<typeof setTimeout>;\n\n private rafId = 0;\n private visible = false;\n private destroyed = false;\n\n private removeMouseEnter?: () => void;\n private removeMouseLeave?: () => void;\n private removeFocusIn?: () => void;\n private removeFocusOut?: () => void;\n private removeScroll?: () => void;\n private removeResize?: () => void;\n\n readonly tooltipText = input.required<string>({ alias: 'ngxTooltip' });\n readonly ngxTooltipUseOverlay = input<boolean>(true);\n\n readonly ngxTooltipPlacement = input<NgxTooltipPlacement>('bottom');\n\n readonly ngxTooltipOffset = input<number>(this.configs.offset);\n\n readonly ngxTooltipDelay = input<number>(this.configs.delay);\n\n readonly ngxTooltipHideDelay = input<number>(this.configs.hideDelay);\n\n readonly ngxTooltipAllowHtml = input<boolean>(false);\n\n readonly ngxTooltipTrigger = input<NgxTooltipTrigger>('hover');\n\n /**\n * If true, the tooltip automatically changes placement\n * when there is not enough room.\n */\n readonly ngxTooltipFlip = input<boolean>(true);\n\n /**\n * Keeps the tooltip inside the viewport.\n */\n readonly ngxTooltipShift = input<boolean>(true);\n\n constructor() {\n effect(() => {\n const trigger = this.ngxTooltipTrigger();\n this.bindEvents();\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed = true;\n\n this.clearTimers();\n\n if (this.rafId) {\n cancelAnimationFrame(this.rafId);\n this.rafId = 0;\n }\n\n this.removeListeners();\n\n this.tooltip?.remove();\n this.tooltip = undefined;\n }\n\n private bindEvents(): void {\n const trigger = this.ngxTooltipTrigger();\n this.removeMouseEnter?.();\n this.removeMouseLeave?.();\n this.removeFocusIn?.();\n this.removeFocusOut?.();\n\n if (trigger === 'hover' || trigger === 'hover-focus') {\n this.removeMouseEnter = this.renderer.listen(this.element, 'mouseenter', () =>\n this.scheduleShow(),\n );\n\n this.removeMouseLeave = this.renderer.listen(this.element, 'mouseleave', () =>\n this.scheduleHide(),\n );\n }\n\n if (trigger === 'focus' || trigger === 'hover-focus') {\n this.removeFocusIn = this.renderer.listen(this.element, 'focusin', () => this.scheduleShow());\n\n this.removeFocusOut = this.renderer.listen(this.element, 'focusout', () =>\n this.scheduleHide(),\n );\n }\n }\n\n private scheduleShow(): void {\n if (this.destroyed || !this.hasContent()) {\n return;\n }\n\n this.clearHideTimer();\n\n if (this.visible) {\n this.schedulePositionUpdate();\n return;\n }\n\n this.clearShowTimer();\n\n this.showTimer = setTimeout(\n () => {\n this.showTimer = undefined;\n\n if (!this.destroyed) {\n this.show();\n }\n },\n Math.max(0, this.ngxTooltipDelay()),\n );\n }\n\n private scheduleHide(): void {\n this.clearShowTimer();\n\n if (!this.visible) {\n return;\n }\n\n this.clearHideTimer();\n\n this.hideTimer = setTimeout(\n () => {\n this.hideTimer = undefined;\n\n if (!this.destroyed) {\n this.hide();\n }\n },\n Math.max(0, this.ngxTooltipHideDelay()),\n );\n }\n\n private show(): void {\n if (this.visible || this.destroyed || !this.hasContent()) {\n return;\n }\n\n const tooltip = this.getOrCreateTooltip();\n\n this.updateContent(tooltip);\n\n const doc = this.element.ownerDocument;\n\n if (!tooltip.isConnected) {\n doc.body.appendChild(tooltip);\n }\n\n this.applyDirection();\n\n this.visible = true;\n\n if (this.ngxTooltipUseOverlay()) {\n const popover = tooltip as HTMLElement & {\n showPopover?: () => void;\n };\n\n popover.showPopover?.();\n }\n\n tooltip.classList.add(VISIBLE_CLASS);\n\n this.schedulePositionUpdate();\n this.addViewportListeners();\n }\n\n private hide(): void {\n if (!this.visible) {\n return;\n }\n\n this.visible = false;\n\n this.clearShowTimer();\n\n if (this.rafId) {\n cancelAnimationFrame(this.rafId);\n this.rafId = 0;\n }\n\n this.tooltip?.classList.remove(VISIBLE_CLASS);\n\n if (this.ngxTooltipUseOverlay() && this.tooltip?.matches(':popover-open')) {\n (\n this.tooltip as HTMLElement & {\n hidePopover(): void;\n }\n ).hidePopover();\n }\n\n // Tooltip should not stay in the DOM while hidden.\n this.tooltip?.remove();\n\n this.removeViewportListeners();\n }\n\n private getOrCreateTooltip(): HTMLElement {\n if (this.tooltip) {\n return this.tooltip;\n }\n\n const doc = this.element.ownerDocument;\n\n const tooltip = doc.createElement('div');\n\n tooltip.className = TOOLTIP_CLASS;\n tooltip.setAttribute('role', 'tooltip');\n\n if (this.ngxTooltipUseOverlay()) {\n tooltip.setAttribute('popover', 'manual');\n }\n\n tooltip.style.position = 'fixed';\n tooltip.style.left = '0';\n tooltip.style.top = '0';\n\n const content = doc.createElement('div');\n content.className = 'ngx-tooltip-content';\n\n tooltip.appendChild(content);\n\n this.tooltip = tooltip;\n\n return tooltip;\n }\n\n private updateContent(tooltip: HTMLElement): void {\n const content = tooltip.firstElementChild as HTMLElement | null;\n\n if (!content) {\n return;\n }\n\n const value = this.tooltipText() ?? '';\n if (this.ngxTooltipAllowHtml()) {\n content.innerHTML = this.sanitizer.sanitize(SecurityContext.STYLE, value) ?? '';\n } else {\n content.textContent = value;\n }\n }\n\n private applyDirection(): void {\n if (!this.tooltip) {\n return;\n }\n\n const direction = getComputedStyle(this.element).direction;\n\n this.tooltip.style.direction = direction;\n }\n\n private schedulePositionUpdate(): void {\n if (!this.visible || this.destroyed || !this.tooltip) {\n return;\n }\n\n if (this.rafId) {\n return;\n }\n\n this.rafId = requestAnimationFrame(() => {\n this.rafId = 0;\n\n if (!this.visible || this.destroyed) {\n return;\n }\n\n this.positionTooltip();\n });\n }\n\n private positionTooltip(): void {\n const tooltip = this.tooltip;\n\n if (!tooltip || !this.visible) {\n return;\n }\n\n const win = this.element.ownerDocument.defaultView;\n\n if (!win) {\n return;\n }\n\n const targetRect = this.element.getBoundingClientRect();\n\n if (targetRect.width === 0 || targetRect.height === 0 || !this.intersectsViewport(targetRect)) {\n tooltip.style.visibility = 'hidden';\n return;\n }\n\n tooltip.style.visibility = 'hidden';\n\n const tooltipRect = tooltip.getBoundingClientRect();\n\n const viewportWidth = win.innerWidth;\n const viewportHeight = win.innerHeight;\n\n const requestedPlacement = this.ngxTooltipPlacement();\n\n const placement = this.ngxTooltipFlip()\n ? this.findBestPlacement(\n requestedPlacement,\n targetRect,\n tooltipRect,\n viewportWidth,\n viewportHeight,\n )\n : requestedPlacement;\n\n let { left, top } = this.calculatePosition(\n placement,\n targetRect,\n tooltipRect,\n this.ngxTooltipOffset(),\n );\n\n if (this.ngxTooltipShift()) {\n const shifted = this.shiftIntoViewport(left, top, tooltipRect, viewportWidth, viewportHeight);\n\n left = shifted.left;\n top = shifted.top;\n }\n\n tooltip.dataset['placement'] = placement;\n\n tooltip.style.left = `${Math.round(left)}px`;\n tooltip.style.top = `${Math.round(top)}px`;\n\n tooltip.style.visibility = 'visible';\n }\n\n private calculatePosition(\n placement: NgxTooltipPlacement,\n target: DOMRect,\n tooltip: DOMRect,\n offset: number,\n ): { left: number; top: number } {\n const [side, align] = this.parsePlacement(placement);\n\n let left: number = 0;\n let top: number = 0;\n\n switch (side) {\n case 'top':\n top = target.top - tooltip.height - offset;\n break;\n\n case 'bottom':\n top = target.bottom + offset;\n break;\n\n case 'left':\n left = target.left - tooltip.width - offset;\n break;\n\n case 'right':\n left = target.right + offset;\n break;\n }\n\n if (side === 'top' || side === 'bottom') {\n switch (align) {\n case 'start':\n left = target.left;\n break;\n\n case 'end':\n left = target.right - tooltip.width;\n break;\n\n default:\n left = target.left + (target.width - tooltip.width) / 2;\n }\n } else {\n switch (align) {\n case 'start':\n top = target.top;\n break;\n\n case 'end':\n top = target.bottom - tooltip.height;\n break;\n\n default:\n top = target.top + (target.height - tooltip.height) / 2;\n }\n }\n\n return { left, top };\n }\n\n private findBestPlacement(\n requested: NgxTooltipPlacement,\n target: DOMRect,\n tooltip: DOMRect,\n viewportWidth: number,\n viewportHeight: number,\n ): NgxTooltipPlacement {\n const candidates = this.getPlacementCandidates(requested);\n\n for (const placement of candidates) {\n const position = this.calculatePosition(placement, target, tooltip, this.ngxTooltipOffset());\n\n if (this.fitsViewport(position.left, position.top, tooltip, viewportWidth, viewportHeight)) {\n return placement;\n }\n }\n\n return requested;\n }\n\n private getPlacementCandidates(placement: NgxTooltipPlacement): NgxTooltipPlacement[] {\n switch (placement) {\n case 'top':\n return ['top', 'bottom', 'right', 'left'];\n\n case 'bottom':\n return ['bottom', 'top', 'right', 'left'];\n\n case 'left':\n return ['left', 'right', 'top', 'bottom'];\n\n case 'right':\n return ['right', 'left', 'top', 'bottom'];\n }\n }\n\n private shiftIntoViewport(\n left: number,\n top: number,\n tooltip: DOMRect,\n viewportWidth: number,\n viewportHeight: number,\n ): { left: number; top: number } {\n const minLeft = VIEWPORT_PADDING;\n const maxLeft = viewportWidth - tooltip.width - VIEWPORT_PADDING;\n\n const minTop = VIEWPORT_PADDING;\n const maxTop = viewportHeight - tooltip.height - VIEWPORT_PADDING;\n\n left = Math.min(Math.max(left, minLeft), Math.max(minLeft, maxLeft));\n\n top = Math.min(Math.max(top, minTop), Math.max(minTop, maxTop));\n\n return { left, top };\n }\n\n private fitsViewport(\n left: number,\n top: number,\n tooltip: DOMRect,\n viewportWidth: number,\n viewportHeight: number,\n ): boolean {\n return (\n left >= VIEWPORT_PADDING &&\n top >= VIEWPORT_PADDING &&\n left + tooltip.width <= viewportWidth - VIEWPORT_PADDING &&\n top + tooltip.height <= viewportHeight - VIEWPORT_PADDING\n );\n }\n\n private intersectsViewport(rect: DOMRect): boolean {\n const win = this.element.ownerDocument.defaultView;\n\n if (!win) {\n return false;\n }\n\n return (\n rect.bottom > 0 && rect.right > 0 && rect.top < win.innerHeight && rect.left < win.innerWidth\n );\n }\n\n private parsePlacement(\n placement: NgxTooltipPlacement,\n ): ['top' | 'bottom' | 'left' | 'right', 'start' | 'end' | 'center'] {\n const [side, alignment] = placement.split('-') as [\n 'top' | 'bottom' | 'left' | 'right',\n 'start' | 'end' | undefined,\n ];\n\n return [side, alignment ?? 'center'];\n }\n\n private addViewportListeners(): void {\n if (this.removeScroll || this.removeResize) {\n return;\n }\n\n const win = this.element.ownerDocument.defaultView;\n\n if (!win) {\n return;\n }\n\n const onScroll = () => this.schedulePositionUpdate();\n const onResize = () => this.schedulePositionUpdate();\n\n win.addEventListener('scroll', onScroll, {\n passive: true,\n });\n\n win.addEventListener('resize', onResize, {\n passive: true,\n });\n\n this.removeScroll = () => {\n win.removeEventListener('scroll', onScroll);\n };\n\n this.removeResize = () => {\n win.removeEventListener('resize', onResize);\n };\n }\n\n private removeViewportListeners(): void {\n this.removeScroll?.();\n this.removeScroll = undefined;\n\n this.removeResize?.();\n this.removeResize = undefined;\n }\n\n private removeListeners(): void {\n this.removeMouseEnter?.();\n this.removeMouseLeave?.();\n this.removeFocusIn?.();\n this.removeFocusOut?.();\n\n this.removeMouseEnter = undefined;\n this.removeMouseLeave = undefined;\n this.removeFocusIn = undefined;\n this.removeFocusOut = undefined;\n }\n\n private hasContent(): boolean {\n return !!this.tooltipText()?.trim();\n }\n\n private clearTimers(): void {\n this.clearShowTimer();\n this.clearHideTimer();\n }\n\n private clearShowTimer(): void {\n if (this.showTimer !== undefined) {\n clearTimeout(this.showTimer);\n this.showTimer = undefined;\n }\n }\n\n private clearHideTimer(): void {\n if (this.hideTimer !== undefined) {\n clearTimeout(this.hideTimer);\n this.hideTimer = undefined;\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;AAEA,MAAM,cAAc,GAAG,CAAC;AACxB,MAAM,UAAU,GAAG,EAAE;AACrB,MAAM,UAAU,GAAG,EAAE;MAER,gBAAgB,CAAA;IAC3B,SAAS,GAAwB,QAAQ;IACzC,MAAM,GAAW,cAAc;IAC/B,KAAK,GAAW,UAAU;IAC1B,SAAS,GAAW,UAAU;IAC9B,OAAO,GAAY,KAAK;IACxB,UAAU,GAAY,IAAI;IAC1B,OAAO,GAAsB,OAAO;AAErC;;MCZY,kBAAkB,GAAG,IAAI,cAAc,CAAmB,oBAAoB,EAAE;AAC3F,IAAA,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE;AACtC,CAAA;AACK,SAAU,cAAc,CAAC,OAA0B,EAAA;AACvD,IAAA,OAAO,wBAAwB,CAAC;AAC9B,QAAA;AACE,YAAA,OAAO,EAAE,kBAAkB;AAC3B,YAAA,QAAQ,EAAE,EAAE,GAAG,IAAI,gBAAgB,EAAE,EAAE,IAAI,OAAO,IAAI,EAAE,CAAC,EAAE;AAC5D,SAAA;AACF,KAAA,CAAC;AACJ;;ACIA,MAAM,aAAa,GAAG,aAAa;AACnC,MAAM,aAAa,GAAG,qBAAqB;AAC3C,MAAM,gBAAgB,GAAG,CAAC;MAMb,UAAU,CAAA;AACJ,IAAA,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACpC,IAAA,UAAU,GAAG,MAAM,EAAC,UAAuB,EAAC;AAC5C,IAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AAC5B,IAAA,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC;AAChC,IAAA,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;AAEtB,IAAA,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;AAEhD,IAAA,OAAO;AAEP,IAAA,SAAS;AACT,IAAA,SAAS;IAET,KAAK,GAAG,CAAC;IACT,OAAO,GAAG,KAAK;IACf,SAAS,GAAG,KAAK;AAEjB,IAAA,gBAAgB;AAChB,IAAA,gBAAgB;AAChB,IAAA,aAAa;AACb,IAAA,cAAc;AACd,IAAA,YAAY;AACZ,IAAA,YAAY;IAEX,WAAW,GAAG,KAAK,CAAC,QAAQ,kFAAW,KAAK,EAAE,YAAY,EAAA,CAAG;IAC7D,oBAAoB,GAAG,KAAK,CAAU,IAAI;6FAAC;IAE3C,mBAAmB,GAAG,KAAK,CAAsB,QAAQ;4FAAC;AAE1D,IAAA,gBAAgB,GAAG,KAAK,CAAS,IAAI,CAAC,OAAO,CAAC,MAAM;yFAAC;AAErD,IAAA,eAAe,GAAG,KAAK,CAAS,IAAI,CAAC,OAAO,CAAC,KAAK;wFAAC;AAEnD,IAAA,mBAAmB,GAAG,KAAK,CAAS,IAAI,CAAC,OAAO,CAAC,SAAS;4FAAC;IAE3D,mBAAmB,GAAG,KAAK,CAAU,KAAK;4FAAC;IAE3C,iBAAiB,GAAG,KAAK,CAAoB,OAAO;0FAAC;AAE9D;;;AAGG;IACM,cAAc,GAAG,KAAK,CAAU,IAAI;uFAAC;AAE9C;;AAEG;IACM,eAAe,GAAG,KAAK,CAAU,IAAI;wFAAC;AAE/C,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE;YACxC,IAAI,CAAC,UAAU,EAAE;AACnB,QAAA,CAAC,CAAC;IACJ;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QAErB,IAAI,CAAC,WAAW,EAAE;AAElB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC;AAChC,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC;QAChB;QAEA,IAAI,CAAC,eAAe,EAAE;AAEtB,QAAA,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE;AACtB,QAAA,IAAI,CAAC,OAAO,GAAG,SAAS;IAC1B;IAEQ,UAAU,GAAA;AAChB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE;AACxC,QAAA,IAAI,CAAC,gBAAgB,IAAI;AACzB,QAAA,IAAI,CAAC,gBAAgB,IAAI;AACzB,QAAA,IAAI,CAAC,aAAa,IAAI;AACtB,QAAA,IAAI,CAAC,cAAc,IAAI;QAEvB,IAAI,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,aAAa,EAAE;YACpD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,MACvE,IAAI,CAAC,YAAY,EAAE,CACpB;YAED,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,MACvE,IAAI,CAAC,YAAY,EAAE,CACpB;QACH;QAEA,IAAI,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,aAAa,EAAE;YACpD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAE7F,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,MACnE,IAAI,CAAC,YAAY,EAAE,CACpB;QACH;IACF;IAEQ,YAAY,GAAA;QAClB,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;YACxC;QACF;QAEA,IAAI,CAAC,cAAc,EAAE;AAErB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,sBAAsB,EAAE;YAC7B;QACF;QAEA,IAAI,CAAC,cAAc,EAAE;AAErB,QAAA,IAAI,CAAC,SAAS,GAAG,UAAU,CACzB,MAAK;AACH,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;AAE1B,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACnB,IAAI,CAAC,IAAI,EAAE;YACb;AACF,QAAA,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CACpC;IACH;IAEQ,YAAY,GAAA;QAClB,IAAI,CAAC,cAAc,EAAE;AAErB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB;QACF;QAEA,IAAI,CAAC,cAAc,EAAE;AAErB,QAAA,IAAI,CAAC,SAAS,GAAG,UAAU,CACzB,MAAK;AACH,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;AAE1B,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACnB,IAAI,CAAC,IAAI,EAAE;YACb;AACF,QAAA,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC,CACxC;IACH;IAEQ,IAAI,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;YACxD;QACF;AAEA,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE;AAEzC,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;AAE3B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa;AAEtC,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;AACxB,YAAA,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;QAC/B;QAEA,IAAI,CAAC,cAAc,EAAE;AAErB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AAEnB,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE,EAAE;YAC/B,MAAM,OAAO,GAAG,OAEf;AAED,YAAA,OAAO,CAAC,WAAW,IAAI;QACzB;AAEA,QAAA,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC;QAEpC,IAAI,CAAC,sBAAsB,EAAE;QAC7B,IAAI,CAAC,oBAAoB,EAAE;IAC7B;IAEQ,IAAI,GAAA;AACV,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB;QACF;AAEA,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;QAEpB,IAAI,CAAC,cAAc,EAAE;AAErB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC;AAChC,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC;QAChB;QAEA,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC;AAE7C,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,EAAE;AAEvE,YAAA,IAAI,CAAC,OAGN,CAAC,WAAW,EAAE;QACjB;;AAGA,QAAA,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE;QAEtB,IAAI,CAAC,uBAAuB,EAAE;IAChC;IAEQ,kBAAkB,GAAA;AACxB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAO,IAAI,CAAC,OAAO;QACrB;AAEA,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa;QAEtC,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC;AAExC,QAAA,OAAO,CAAC,SAAS,GAAG,aAAa;AACjC,QAAA,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC;AAEvC,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE,EAAE;AAC/B,YAAA,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC;QAC3C;AAEA,QAAA,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO;AAChC,QAAA,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG;AACxB,QAAA,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG;QAEvB,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC;AACxC,QAAA,OAAO,CAAC,SAAS,GAAG,qBAAqB;AAEzC,QAAA,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;AAE5B,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AAEtB,QAAA,OAAO,OAAO;IAChB;AAEQ,IAAA,aAAa,CAAC,OAAoB,EAAA;AACxC,QAAA,MAAM,OAAO,GAAG,OAAO,CAAC,iBAAuC;QAE/D,IAAI,CAAC,OAAO,EAAE;YACZ;QACF;QAEA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE;AACtC,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE,EAAE;AAC9B,YAAA,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;QACjF;aAAO;AACL,YAAA,OAAO,CAAC,WAAW,GAAG,KAAK;QAC7B;IACF;IAEQ,cAAc,GAAA;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB;QACF;QAEA,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS;QAE1D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS;IAC1C;IAEQ,sBAAsB,GAAA;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACpD;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACd;QACF;AAEA,QAAA,IAAI,CAAC,KAAK,GAAG,qBAAqB,CAAC,MAAK;AACtC,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC;YAEd,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE;gBACnC;YACF;YAEA,IAAI,CAAC,eAAe,EAAE;AACxB,QAAA,CAAC,CAAC;IACJ;IAEQ,eAAe,GAAA;AACrB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO;QAE5B,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YAC7B;QACF;QAEA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW;QAElD,IAAI,CAAC,GAAG,EAAE;YACR;QACF;QAEA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE;QAEvD,IAAI,UAAU,CAAC,KAAK,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE;AAC7F,YAAA,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ;YACnC;QACF;AAEA,QAAA,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ;AAEnC,QAAA,MAAM,WAAW,GAAG,OAAO,CAAC,qBAAqB,EAAE;AAEnD,QAAA,MAAM,aAAa,GAAG,GAAG,CAAC,UAAU;AACpC,QAAA,MAAM,cAAc,GAAG,GAAG,CAAC,WAAW;AAEtC,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,EAAE;AAErD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc;AACnC,cAAE,IAAI,CAAC,iBAAiB,CACpB,kBAAkB,EAClB,UAAU,EACV,WAAW,EACX,aAAa,EACb,cAAc;cAEhB,kBAAkB;QAEtB,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,iBAAiB,CACxC,SAAS,EACT,UAAU,EACV,WAAW,EACX,IAAI,CAAC,gBAAgB,EAAE,CACxB;AAED,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;AAC1B,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,CAAC;AAE7F,YAAA,IAAI,GAAG,OAAO,CAAC,IAAI;AACnB,YAAA,GAAG,GAAG,OAAO,CAAC,GAAG;QACnB;AAEA,QAAA,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,SAAS;AAExC,QAAA,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAA,EAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;AAC5C,QAAA,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI;AAE1C,QAAA,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS;IACtC;AAEQ,IAAA,iBAAiB,CACvB,SAA8B,EAC9B,MAAe,EACf,OAAgB,EAChB,MAAc,EAAA;AAEd,QAAA,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;QAEpD,IAAI,IAAI,GAAW,CAAC;QACpB,IAAI,GAAG,GAAW,CAAC;QAEnB,QAAQ,IAAI;AACV,YAAA,KAAK,KAAK;gBACR,GAAG,GAAG,MAAM,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM;gBAC1C;AAEF,YAAA,KAAK,QAAQ;AACX,gBAAA,GAAG,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM;gBAC5B;AAEF,YAAA,KAAK,MAAM;gBACT,IAAI,GAAG,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,MAAM;gBAC3C;AAEF,YAAA,KAAK,OAAO;AACV,gBAAA,IAAI,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM;gBAC5B;;QAGJ,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,QAAQ,EAAE;YACvC,QAAQ,KAAK;AACX,gBAAA,KAAK,OAAO;AACV,oBAAA,IAAI,GAAG,MAAM,CAAC,IAAI;oBAClB;AAEF,gBAAA,KAAK,KAAK;oBACR,IAAI,GAAG,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK;oBACnC;AAEF,gBAAA;AACE,oBAAA,IAAI,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC;;QAE7D;aAAO;YACL,QAAQ,KAAK;AACX,gBAAA,KAAK,OAAO;AACV,oBAAA,GAAG,GAAG,MAAM,CAAC,GAAG;oBAChB;AAEF,gBAAA,KAAK,KAAK;oBACR,GAAG,GAAG,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;oBACpC;AAEF,gBAAA;AACE,oBAAA,GAAG,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;;QAE7D;AAEA,QAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE;IACtB;IAEQ,iBAAiB,CACvB,SAA8B,EAC9B,MAAe,EACf,OAAgB,EAChB,aAAqB,EACrB,cAAsB,EAAA;QAEtB,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC;AAEzD,QAAA,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;AAClC,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAE5F,YAAA,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,CAAC,EAAE;AAC1F,gBAAA,OAAO,SAAS;YAClB;QACF;AAEA,QAAA,OAAO,SAAS;IAClB;AAEQ,IAAA,sBAAsB,CAAC,SAA8B,EAAA;QAC3D,QAAQ,SAAS;AACf,YAAA,KAAK,KAAK;gBACR,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC;AAE3C,YAAA,KAAK,QAAQ;gBACX,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC;AAE3C,YAAA,KAAK,MAAM;gBACT,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC;AAE3C,YAAA,KAAK,OAAO;gBACV,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC;;IAE/C;IAEQ,iBAAiB,CACvB,IAAY,EACZ,GAAW,EACX,OAAgB,EAChB,aAAqB,EACrB,cAAsB,EAAA;QAEtB,MAAM,OAAO,GAAG,gBAAgB;QAChC,MAAM,OAAO,GAAG,aAAa,GAAG,OAAO,CAAC,KAAK,GAAG,gBAAgB;QAEhE,MAAM,MAAM,GAAG,gBAAgB;QAC/B,MAAM,MAAM,GAAG,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,gBAAgB;QAEjE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAEpE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE/D,QAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE;IACtB;IAEQ,YAAY,CAClB,IAAY,EACZ,GAAW,EACX,OAAgB,EAChB,aAAqB,EACrB,cAAsB,EAAA;QAEtB,QACE,IAAI,IAAI,gBAAgB;AACxB,YAAA,GAAG,IAAI,gBAAgB;AACvB,YAAA,IAAI,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,GAAG,gBAAgB;YACxD,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,cAAc,GAAG,gBAAgB;IAE7D;AAEQ,IAAA,kBAAkB,CAAC,IAAa,EAAA;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW;QAElD,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,QACE,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,UAAU;IAEjG;AAEQ,IAAA,cAAc,CACpB,SAA8B,EAAA;AAE9B,QAAA,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAG5C;AAED,QAAA,OAAO,CAAC,IAAI,EAAE,SAAS,IAAI,QAAQ,CAAC;IACtC;IAEQ,oBAAoB,GAAA;QAC1B,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE;YAC1C;QACF;QAEA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW;QAElD,IAAI,CAAC,GAAG,EAAE;YACR;QACF;QAEA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE;QACpD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE;AAEpD,QAAA,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE;AACvC,YAAA,OAAO,EAAE,IAAI;AACd,SAAA,CAAC;AAEF,QAAA,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE;AACvC,YAAA,OAAO,EAAE,IAAI;AACd,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,YAAY,GAAG,MAAK;AACvB,YAAA,GAAG,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAC7C,QAAA,CAAC;AAED,QAAA,IAAI,CAAC,YAAY,GAAG,MAAK;AACvB,YAAA,GAAG,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAC7C,QAAA,CAAC;IACH;IAEQ,uBAAuB,GAAA;AAC7B,QAAA,IAAI,CAAC,YAAY,IAAI;AACrB,QAAA,IAAI,CAAC,YAAY,GAAG,SAAS;AAE7B,QAAA,IAAI,CAAC,YAAY,IAAI;AACrB,QAAA,IAAI,CAAC,YAAY,GAAG,SAAS;IAC/B;IAEQ,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,gBAAgB,IAAI;AACzB,QAAA,IAAI,CAAC,gBAAgB,IAAI;AACzB,QAAA,IAAI,CAAC,aAAa,IAAI;AACtB,QAAA,IAAI,CAAC,cAAc,IAAI;AAEvB,QAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS;AACjC,QAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS;AACjC,QAAA,IAAI,CAAC,aAAa,GAAG,SAAS;AAC9B,QAAA,IAAI,CAAC,cAAc,GAAG,SAAS;IACjC;IAEQ,UAAU,GAAA;QAChB,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE;IACrC;IAEQ,WAAW,GAAA;QACjB,IAAI,CAAC,cAAc,EAAE;QACrB,IAAI,CAAC,cAAc,EAAE;IACvB;IAEQ,cAAc,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;AAChC,YAAA,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AAC5B,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;QAC5B;IACF;IAEQ,cAAc,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;AAChC,YAAA,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AAC5B,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;QAC5B;IACF;uGA5jBW,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,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,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,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,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,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,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAJtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;ACxBD;;AAEG;;;;"}
1
+ {"version":3,"file":"ngx-kit-tooltip.mjs","sources":["../../../projects/libs/tooltip/types/configs.ts","../../../projects/libs/tooltip/providers/tootip.provider.ts","../../../projects/libs/tooltip/directives/ngx-tooltip.directive.ts","../../../projects/libs/tooltip/ngx-kit-tooltip.ts"],"sourcesContent":["import type { NgxTooltipPlacement, NgxTooltipTrigger } from '../public-api';\n\nconst DEFAULT_OFFSET = 8;\nconst SHOW_DELAY = 80;\nconst HIDE_DELAY = 40;\n\nexport class NgxTooltipConfig {\n placement: NgxTooltipPlacement = 'bottom';\n offset: number = DEFAULT_OFFSET;\n delay: number = SHOW_DELAY;\n hideDelay: number = HIDE_DELAY;\n useHtml: boolean = false;\n usePopOver: boolean = true;\n trigger: NgxTooltipTrigger = 'hover';\n \n}\n","import { InjectionToken, makeEnvironmentProviders, type EnvironmentProviders } from '@angular/core';\nimport { NgxTooltipConfig } from '../types/configs';\n\nexport const NGX_TOOLTIP_CONFIG = new InjectionToken<NgxTooltipConfig>('ngx-tooltip-config', {\n factory: () => new NgxTooltipConfig(),\n});\nexport function provideTooltip(configs?: NgxTooltipConfig): EnvironmentProviders {\n return makeEnvironmentProviders([\n {\n provide: NGX_TOOLTIP_CONFIG,\n useValue: { ...new NgxTooltipConfig(), ...(configs || {}) },\n },\n ]);\n}\n","import {\n Directive,\n DOCUMENT,\n effect,\n ElementRef,\n inject,\n input,\n NgZone,\n OnDestroy,\n Renderer2,\n SecurityContext,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { NgxTooltipPlacement } from '../types/placement';\nimport { NgxTooltipTrigger } from '../types/trigger';\nimport { NGX_TOOLTIP_CONFIG } from '../providers/tootip.provider';\n\nconst TOOLTIP_CLASS = 'ngx-tooltip';\nconst VISIBLE_CLASS = 'ngx-tooltip-visible';\nconst VIEWPORT_PADDING = 8;\n\n@Directive({\n selector: '[ngxTooltip]',\n standalone: true,\n})\nexport class NgxTooltip implements OnDestroy {\n private readonly configs = inject(NGX_TOOLTIP_CONFIG);\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n private readonly renderer = inject(Renderer2);\n private readonly sanitizer = inject(DomSanitizer);\n private readonly doc = inject(DOCUMENT);\n\n private readonly element = this.elementRef.nativeElement;\n\n private tooltip?: HTMLElement;\n\n private showTimer?: ReturnType<typeof setTimeout>;\n private hideTimer?: ReturnType<typeof setTimeout>;\n\n private rafId = 0;\n private visible = false;\n private destroyed = false;\n\n private removeMouseEnter?: () => void;\n private removeMouseLeave?: () => void;\n private removeFocusIn?: () => void;\n private removeFocusOut?: () => void;\n private removeScroll?: () => void;\n private removeResize?: () => void;\n\n readonly tooltipText = input.required<string>({ alias: 'ngxTooltip' });\n readonly ngxTooltipUseOverlay = input<boolean>(true);\n\n readonly ngxTooltipPlacement = input<NgxTooltipPlacement>('bottom');\n\n readonly ngxTooltipOffset = input<number>(this.configs.offset);\n\n readonly ngxTooltipDelay = input<number>(this.configs.delay);\n\n readonly ngxTooltipHideDelay = input<number>(this.configs.hideDelay);\n\n readonly ngxTooltipAllowHtml = input<boolean>(false);\n\n readonly ngxTooltipTrigger = input<NgxTooltipTrigger>('hover');\n\n /**\n * If true, the tooltip automatically changes placement\n * when there is not enough room.\n */\n readonly ngxTooltipFlip = input<boolean>(true);\n\n /**\n * Keeps the tooltip inside the viewport.\n */\n readonly ngxTooltipShift = input<boolean>(true);\n\n constructor() {\n effect(() => {\n const trigger = this.ngxTooltipTrigger();\n this.bindEvents();\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed = true;\n\n this.clearTimers();\n\n if (this.rafId) {\n cancelAnimationFrame(this.rafId);\n this.rafId = 0;\n }\n\n this.removeListeners();\n\n this.tooltip?.remove();\n this.tooltip = undefined;\n }\n\n private bindEvents(): void {\n const trigger = this.ngxTooltipTrigger();\n this.removeMouseEnter?.();\n this.removeMouseLeave?.();\n this.removeFocusIn?.();\n this.removeFocusOut?.();\n\n if (trigger === 'hover' || trigger === 'hover-focus') {\n this.removeMouseEnter = this.renderer.listen(this.element, 'mouseenter', () =>\n this.scheduleShow(),\n );\n\n this.removeMouseLeave = this.renderer.listen(this.element, 'mouseleave', () =>\n this.scheduleHide(),\n );\n }\n\n if (trigger === 'focus' || trigger === 'hover-focus') {\n this.removeFocusIn = this.renderer.listen(this.element, 'focusin', () => this.scheduleShow());\n\n this.removeFocusOut = this.renderer.listen(this.element, 'focusout', () =>\n this.scheduleHide(),\n );\n }\n }\n\n private scheduleShow(): void {\n if (this.destroyed || !this.hasContent()) {\n return;\n }\n\n this.clearHideTimer();\n\n if (this.visible) {\n this.schedulePositionUpdate();\n return;\n }\n\n this.clearShowTimer();\n\n this.showTimer = setTimeout(\n () => {\n this.showTimer = undefined;\n\n if (!this.destroyed) {\n this.show();\n }\n },\n Math.max(0, this.ngxTooltipDelay()),\n );\n }\n\n private scheduleHide(): void {\n this.clearShowTimer();\n\n if (!this.visible) {\n return;\n }\n\n this.clearHideTimer();\n\n this.hideTimer = setTimeout(\n () => {\n this.hideTimer = undefined;\n\n if (!this.destroyed) {\n this.hide();\n }\n },\n Math.max(0, this.ngxTooltipHideDelay()),\n );\n }\n\n private show(): void {\n if (this.visible || this.destroyed || !this.hasContent()) {\n return;\n }\n\n const tooltip = this.getOrCreateTooltip();\n\n this.updateContent(tooltip);\n\n const doc = this.element.ownerDocument;\n\n if (!tooltip.isConnected) {\n doc.body.appendChild(tooltip);\n }\n\n this.applyDirection();\n\n this.visible = true;\n\n if (this.ngxTooltipUseOverlay()) {\n const popover = tooltip as HTMLElement & {\n showPopover?: () => void;\n };\n\n popover.showPopover?.();\n }\n\n tooltip.classList.add(VISIBLE_CLASS);\n\n this.schedulePositionUpdate();\n this.addViewportListeners();\n }\n\n private hide(): void {\n if (!this.visible) {\n return;\n }\n\n this.visible = false;\n\n this.clearShowTimer();\n\n if (this.rafId) {\n cancelAnimationFrame(this.rafId);\n this.rafId = 0;\n }\n\n this.tooltip?.classList.remove(VISIBLE_CLASS);\n\n if (this.ngxTooltipUseOverlay() && this.tooltip?.matches(':popover-open')) {\n (\n this.tooltip as HTMLElement & {\n hidePopover(): void;\n }\n ).hidePopover();\n }\n\n // Tooltip should not stay in the DOM while hidden.\n this.tooltip?.remove();\n\n this.removeViewportListeners();\n }\n\n private getOrCreateTooltip(): HTMLElement {\n if (this.tooltip) {\n return this.tooltip;\n }\n\n const doc = this.element.ownerDocument;\n\n const tooltip = doc.createElement('div');\n\n tooltip.className = TOOLTIP_CLASS;\n tooltip.setAttribute('role', 'tooltip');\n\n if (this.ngxTooltipUseOverlay()) {\n tooltip.setAttribute('popover', 'manual');\n }\n\n tooltip.style.position = 'fixed';\n tooltip.style.left = '0';\n tooltip.style.top = '0';\n\n const content = doc.createElement('div');\n content.className = 'ngx-tooltip-content';\n\n tooltip.appendChild(content);\n\n this.tooltip = tooltip;\n\n return tooltip;\n }\n\n private updateContent(tooltip: HTMLElement): void {\n const content = tooltip.firstElementChild as HTMLElement | null;\n\n if (!content) {\n return;\n }\n\n const value = this.tooltipText() ?? '';\n if (this.ngxTooltipAllowHtml()) {\n content.innerHTML = this.sanitizer.sanitize(SecurityContext.STYLE, value) ?? '';\n } else {\n content.textContent = value;\n }\n }\n\n private applyDirection(): void {\n if (!this.tooltip) {\n return;\n }\n\n const direction = getComputedStyle?.(this.element)?.direction;\n\n this.tooltip.style.direction = direction;\n }\n\n private schedulePositionUpdate(): void {\n if (!this.visible || this.destroyed || !this.tooltip) {\n return;\n }\n\n if (this.rafId) {\n return;\n }\n\n this.rafId = requestAnimationFrame(() => {\n this.rafId = 0;\n\n if (!this.visible || this.destroyed) {\n return;\n }\n\n this.positionTooltip();\n });\n }\n\n private positionTooltip(): void {\n const tooltip = this.tooltip;\n\n if (!tooltip || !this.visible) {\n return;\n }\n\n const win = this.element.ownerDocument.defaultView;\n\n if (!win) {\n return;\n }\n\n const targetRect = this.element.getBoundingClientRect();\n\n if (targetRect.width === 0 || targetRect.height === 0 || !this.intersectsViewport(targetRect)) {\n tooltip.style.visibility = 'hidden';\n return;\n }\n\n tooltip.style.visibility = 'hidden';\n\n const tooltipRect = tooltip.getBoundingClientRect();\n\n const viewportWidth = win.innerWidth;\n const viewportHeight = win.innerHeight;\n\n const requestedPlacement = this.ngxTooltipPlacement();\n\n const placement = this.ngxTooltipFlip()\n ? this.findBestPlacement(\n requestedPlacement,\n targetRect,\n tooltipRect,\n viewportWidth,\n viewportHeight,\n )\n : requestedPlacement;\n\n let { left, top } = this.calculatePosition(\n placement,\n targetRect,\n tooltipRect,\n this.ngxTooltipOffset(),\n );\n\n if (this.ngxTooltipShift()) {\n const shifted = this.shiftIntoViewport(left, top, tooltipRect, viewportWidth, viewportHeight);\n\n left = shifted.left;\n top = shifted.top;\n }\n\n tooltip.dataset['placement'] = placement;\n\n tooltip.style.left = `${Math.round(left)}px`;\n tooltip.style.top = `${Math.round(top)}px`;\n\n tooltip.style.visibility = 'visible';\n }\n\n private calculatePosition(\n placement: NgxTooltipPlacement,\n target: DOMRect,\n tooltip: DOMRect,\n offset: number,\n ): { left: number; top: number } {\n const [side, align] = this.parsePlacement(placement);\n\n let left: number = 0;\n let top: number = 0;\n\n switch (side) {\n case 'top':\n top = target.top - tooltip.height - offset;\n break;\n\n case 'bottom':\n top = target.bottom + offset;\n break;\n\n case 'left':\n left = target.left - tooltip.width - offset;\n break;\n\n case 'right':\n left = target.right + offset;\n break;\n }\n\n if (side === 'top' || side === 'bottom') {\n switch (align) {\n case 'start':\n left = target.left;\n break;\n\n case 'end':\n left = target.right - tooltip.width;\n break;\n\n default:\n left = target.left + (target.width - tooltip.width) / 2;\n }\n } else {\n switch (align) {\n case 'start':\n top = target.top;\n break;\n\n case 'end':\n top = target.bottom - tooltip.height;\n break;\n\n default:\n top = target.top + (target.height - tooltip.height) / 2;\n }\n }\n\n return { left, top };\n }\n\n private findBestPlacement(\n requested: NgxTooltipPlacement,\n target: DOMRect,\n tooltip: DOMRect,\n viewportWidth: number,\n viewportHeight: number,\n ): NgxTooltipPlacement {\n const candidates = this.getPlacementCandidates(requested);\n\n for (const placement of candidates) {\n const position = this.calculatePosition(placement, target, tooltip, this.ngxTooltipOffset());\n\n if (this.fitsViewport(position.left, position.top, tooltip, viewportWidth, viewportHeight)) {\n return placement;\n }\n }\n\n return requested;\n }\n\n private getPlacementCandidates(placement: NgxTooltipPlacement): NgxTooltipPlacement[] {\n switch (placement) {\n case 'top':\n return ['top', 'bottom', 'right', 'left'];\n\n case 'bottom':\n return ['bottom', 'top', 'right', 'left'];\n\n case 'left':\n return ['left', 'right', 'top', 'bottom'];\n\n case 'right':\n return ['right', 'left', 'top', 'bottom'];\n }\n }\n\n private shiftIntoViewport(\n left: number,\n top: number,\n tooltip: DOMRect,\n viewportWidth: number,\n viewportHeight: number,\n ): { left: number; top: number } {\n const minLeft = VIEWPORT_PADDING;\n const maxLeft = viewportWidth - tooltip.width - VIEWPORT_PADDING;\n\n const minTop = VIEWPORT_PADDING;\n const maxTop = viewportHeight - tooltip.height - VIEWPORT_PADDING;\n\n left = Math.min(Math.max(left, minLeft), Math.max(minLeft, maxLeft));\n\n top = Math.min(Math.max(top, minTop), Math.max(minTop, maxTop));\n\n return { left, top };\n }\n\n private fitsViewport(\n left: number,\n top: number,\n tooltip: DOMRect,\n viewportWidth: number,\n viewportHeight: number,\n ): boolean {\n return (\n left >= VIEWPORT_PADDING &&\n top >= VIEWPORT_PADDING &&\n left + tooltip.width <= viewportWidth - VIEWPORT_PADDING &&\n top + tooltip.height <= viewportHeight - VIEWPORT_PADDING\n );\n }\n\n private intersectsViewport(rect: DOMRect): boolean {\n const win = this.element.ownerDocument.defaultView;\n\n if (!win) {\n return false;\n }\n\n return (\n rect.bottom > 0 && rect.right > 0 && rect.top < win.innerHeight && rect.left < win.innerWidth\n );\n }\n\n private parsePlacement(\n placement: NgxTooltipPlacement,\n ): ['top' | 'bottom' | 'left' | 'right', 'start' | 'end' | 'center'] {\n const [side, alignment] = placement.split('-') as [\n 'top' | 'bottom' | 'left' | 'right',\n 'start' | 'end' | undefined,\n ];\n\n return [side, alignment ?? 'center'];\n }\n\n private addViewportListeners(): void {\n if (this.removeScroll || this.removeResize) {\n return;\n }\n\n const win = this.element.ownerDocument.defaultView;\n\n if (!win) {\n return;\n }\n\n const onScroll = () => this.schedulePositionUpdate();\n const onResize = () => this.schedulePositionUpdate();\n\n win.addEventListener('scroll', onScroll, {\n passive: true,\n });\n\n win.addEventListener('resize', onResize, {\n passive: true,\n });\n\n this.removeScroll = () => {\n win.removeEventListener('scroll', onScroll);\n };\n\n this.removeResize = () => {\n win.removeEventListener('resize', onResize);\n };\n }\n\n private removeViewportListeners(): void {\n this.removeScroll?.();\n this.removeScroll = undefined;\n\n this.removeResize?.();\n this.removeResize = undefined;\n }\n\n private removeListeners(): void {\n this.removeMouseEnter?.();\n this.removeMouseLeave?.();\n this.removeFocusIn?.();\n this.removeFocusOut?.();\n\n this.removeMouseEnter = undefined;\n this.removeMouseLeave = undefined;\n this.removeFocusIn = undefined;\n this.removeFocusOut = undefined;\n }\n\n private hasContent(): boolean {\n return !!this.tooltipText()?.trim();\n }\n\n private clearTimers(): void {\n this.clearShowTimer();\n this.clearHideTimer();\n }\n\n private clearShowTimer(): void {\n if (this.showTimer !== undefined) {\n clearTimeout(this.showTimer);\n this.showTimer = undefined;\n }\n }\n\n private clearHideTimer(): void {\n if (this.hideTimer !== undefined) {\n clearTimeout(this.hideTimer);\n this.hideTimer = undefined;\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-kit",
3
- "version": "8.3.0",
3
+ "version": "8.3.2",
4
4
  "description": "Angular input components",
5
5
  "author": "Mohammadreza Samani <mr.samani1368@gmail.com>",
6
6
  "license": "MIT",
@@ -1,5 +1,5 @@
1
- import * as i0 from '@angular/core';
2
- import { OnInit, OnDestroy, ChangeDetectorRef, AfterViewInit, ElementRef, EventEmitter, Renderer2, ViewContainerRef } from '@angular/core';
1
+ import * as _angular_core from '@angular/core';
2
+ import { OnInit, OnDestroy, ChangeDetectorRef, AfterViewInit, ElementRef, Renderer2, ViewContainerRef } from '@angular/core';
3
3
  import { ControlValueAccessor, Validator, AbstractControl, ValidationErrors } from '@angular/forms';
4
4
  import { RangeSliderComponent, OverlayService } from 'ngx-kit/core';
5
5
 
@@ -12,8 +12,8 @@ type GradientType = 'linear' | 'radial' | 'conic' | 'repeating-linear' | 'repeat
12
12
 
13
13
  declare class NgxInputGradientComponent implements OnInit, OnDestroy, ControlValueAccessor, Validator {
14
14
  private cd;
15
- readonly showSamples: i0.InputSignal<boolean>;
16
- readonly change: i0.OutputEmitterRef<string>;
15
+ readonly showSamples: _angular_core.InputSignal<boolean>;
16
+ readonly change: _angular_core.OutputEmitterRef<string>;
17
17
  defaultGradients: string[];
18
18
  resultGradient: string;
19
19
  baseBg: string;
@@ -46,8 +46,8 @@ declare class NgxInputGradientComponent implements OnInit, OnDestroy, ControlVal
46
46
  emitChange(): void;
47
47
  setDefaultGradients(): void;
48
48
  onSelectDefault(item: string, i: number): void;
49
- static ɵfac: i0.ɵɵFactoryDeclaration<NgxInputGradientComponent, never>;
50
- static ɵcmp: i0.ɵɵComponentDeclaration<NgxInputGradientComponent, "ngx-input-gradient", never, { "showSamples": { "alias": "showSamples"; "required": false; "isSignal": true; }; }, { "change": "change"; }, never, never, true, never>;
49
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxInputGradientComponent, never>;
50
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxInputGradientComponent, "ngx-input-gradient", never, { "showSamples": { "alias": "showSamples"; "required": false; "isSignal": true; }; }, { "change": "change"; }, never, never, true, never>;
51
51
  }
52
52
 
53
53
  declare class NgxInputGradient implements AfterViewInit, OnDestroy, ControlValueAccessor, Validator {
@@ -55,10 +55,11 @@ declare class NgxInputGradient implements AfterViewInit, OnDestroy, ControlValue
55
55
  private renderer;
56
56
  private viewContainerRef;
57
57
  private overlayService;
58
- setInputBackground: boolean;
58
+ readonly setInputBackground: _angular_core.InputSignal<boolean>;
59
59
  private _targetInput?;
60
+ readonly showSamples: _angular_core.InputSignal<boolean>;
60
61
  set ngxInputColor(el: HTMLInputElement | ElementRef<HTMLInputElement> | null | undefined | '');
61
- change: EventEmitter<string>;
62
+ protected readonly change: _angular_core.OutputEmitterRef<string>;
62
63
  private boundInputHandler;
63
64
  private isHostInput;
64
65
  private pickerRef?;
@@ -79,8 +80,8 @@ declare class NgxInputGradient implements AfterViewInit, OnDestroy, ControlValue
79
80
  toggle(): void;
80
81
  destroyPicker(): void;
81
82
  private emitChange;
82
- static ɵfac: i0.ɵɵFactoryDeclaration<NgxInputGradient, never>;
83
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgxInputGradient, "[ngxInputGradient]", never, { "setInputBackground": { "alias": "setInputBackground"; "required": false; }; "ngxInputColor": { "alias": "ngxInputColor"; "required": false; }; }, { "change": "change"; }, never, never, true, never>;
83
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxInputGradient, never>;
84
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NgxInputGradient, "[ngxInputGradient]", never, { "setInputBackground": { "alias": "setInputBackground"; "required": false; "isSignal": true; }; "showSamples": { "alias": "showSamples"; "required": false; "isSignal": true; }; "ngxInputColor": { "alias": "ngxInputColor"; "required": false; }; }, { "change": "change"; }, never, never, true, never>;
84
85
  }
85
86
 
86
87
  export { NgxInputGradient, NgxInputGradientComponent };