@lucca/prisme 22.0.0 → 22.0.1-rc.1
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/lucca-prisme-button.mjs +3 -3
- package/fesm2022/lucca-prisme-button.mjs.map +1 -1
- package/fesm2022/lucca-prisme-core.mjs +3 -3
- package/fesm2022/lucca-prisme-core.mjs.map +1 -1
- package/fesm2022/lucca-prisme-icon.mjs +3 -3
- package/fesm2022/lucca-prisme-icon.mjs.map +1 -1
- package/fesm2022/lucca-prisme-numeric-badge.mjs +3 -3
- package/fesm2022/lucca-prisme-numeric-badge.mjs.map +1 -1
- package/fesm2022/lucca-prisme-skeleton.mjs +30 -30
- package/fesm2022/lucca-prisme-skeleton.mjs.map +1 -1
- package/fesm2022/lucca-prisme-tag.mjs +3 -3
- package/fesm2022/lucca-prisme-tag.mjs.map +1 -1
- package/fesm2022/lucca-prisme-tooltip.mjs +34 -31
- package/fesm2022/lucca-prisme-tooltip.mjs.map +1 -1
- package/package.json +3 -3
- package/types/lucca-prisme-icon.d.ts +1 -1
- package/types/lucca-prisme-tooltip.d.ts +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-prisme-tooltip.mjs","sources":["../../../packages/prisme/tooltip/animation/tooltip.animation.ts","../../../packages/prisme/tooltip/panel/tooltip-panel.component.ts","../../../packages/prisme/tooltip/panel/tooltip-panel.component.html","../../../packages/prisme/tooltip/trigger/tooltip-visibility.observer.ts","../../../packages/prisme/tooltip/trigger/tooltip-trigger.directive.ts","../../../packages/prisme/tooltip/trigger/tooltip-trigger.module.ts","../../../packages/prisme/tooltip/tooltip.module.ts","../../../packages/prisme/tooltip/lucca-prisme-tooltip.ts"],"sourcesContent":["import { trigger, state, style, animate, transition, AnimationTriggerMetadata } from '@angular/animations';\n\nexport const luTransformTooltip: AnimationTriggerMetadata = trigger('transformTooltip', [\n\tstate(\n\t\t'enter',\n\t\tstyle({\n\t\t\topacity: 1,\n\t\t\ttransform: `scale(1)`,\n\t\t}),\n\t),\n\ttransition('void => *', [\n\t\tstyle({\n\t\t\topacity: 0,\n\t\t\ttransform: `scale(0)`,\n\t\t}),\n\t\tanimate(`150ms cubic-bezier(0.25, 0.8, 0.25, 1)`),\n\t]),\n\ttransition('* => void', [animate('50ms 100ms linear', style({ opacity: 0 }))]),\n]);\n","import { HorizontalConnectionPos, VerticalConnectionPos } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, Component, DestroyRef, inject, signal } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { Subject } from 'rxjs';\n\n@Component({\n\tselector: 'lu-tooltip-panel,pr-tooltip-panel',\n\ttemplateUrl: './tooltip-panel.component.html',\n\tstyleUrl: './tooltip-panel.component.scss',\n\thost: {\n\t\trole: 'tooltip',\n\t\t'(mouseenter)': 'mouseEnter$.next()',\n\t\t'(mouseleave)': 'mouseLeave$.next()',\n\t},\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LuTooltipPanelComponent {\n\treadonly destroyRef = inject(DestroyRef);\n\n\treadonly mouseEnter$ = new Subject<void>();\n\treadonly mouseLeave$ = new Subject<void>();\n\n\treadonly content = signal<string | SafeHtml | null>(null);\n\n\treadonly contentPositionClasses = signal<Record<string, boolean>>({});\n\n\tsetPanelPosition(posX: HorizontalConnectionPos, posY: VerticalConnectionPos): void {\n\t\tthis.contentPositionClasses.set({\n\t\t\t'is-before': posX === 'end',\n\t\t\t'is-after': posX === 'start',\n\t\t\t'is-above': posY === 'bottom',\n\t\t\t'is-below': posY === 'top',\n\t\t});\n\t}\n}\n","@if (content(); as content) {\n\t<div class=\"tooltip\" [class]=\"contentPositionClasses()\" [innerHtml]=\"content\"></div>\n}\n","import { Injectable } from '@angular/core';\n\n/**\n * Single, shared IntersectionObserver used by every tooltip to defer its first ellipsis\n * measurement until the host element is near the viewport.\n *\n * One observer for the whole page is far cheaper than one IntersectionObserver per tooltip when\n * many tooltips are created at once (e.g. a large table being (re)rendered): the browser then\n * delivers a single batched callback instead of one per element.\n */\n@Injectable({ providedIn: 'root' })\nexport class TooltipVisibilityObserver {\n\t#observer?: IntersectionObserver;\n\treadonly #callbacks = new WeakMap<Element, () => void>();\n\n\t/** Calls `onVisible` once — the first time `element` comes near the viewport — then stops observing it. */\n\tobserveOnce(element: Element, onVisible: () => void): void {\n\t\tthis.#callbacks.set(element, onVisible);\n\t\tthis.#getObserver().observe(element);\n\t}\n\n\tunobserve(element: Element): void {\n\t\tthis.#callbacks.delete(element);\n\t\tthis.#observer?.unobserve(element);\n\t}\n\n\t// Created lazily so the observer is only instantiated in the browser, on first use.\n\t#getObserver(): IntersectionObserver {\n\t\treturn (this.#observer ??= new IntersectionObserver(\n\t\t\t(entries) => {\n\t\t\t\tfor (const entry of entries) {\n\t\t\t\t\tif (!entry.isIntersecting) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tconst onVisible = this.#callbacks.get(entry.target);\n\t\t\t\t\tthis.unobserve(entry.target);\n\t\t\t\t\tonVisible?.();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ rootMargin: '100px' },\n\t\t));\n\t}\n}\n","import {\n\tFlexibleConnectedPositionStrategy,\n\tFlexibleConnectedPositionStrategyOrigin,\n\tHorizontalConnectionPos,\n\tOriginConnectionPosition,\n\tOverlay,\n\tOverlayConnectionPosition,\n\tOverlayRef,\n\tVerticalConnectionPos,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n\tafterRenderEffect,\n\tbooleanAttribute,\n\tcomputed,\n\tDestroyRef,\n\tDirective,\n\teffect,\n\tEffectRef,\n\tElementRef,\n\tinject,\n\tInjector,\n\tinput,\n\tlinkedSignal,\n\tnumberAttribute,\n\tOnDestroy,\n\tRenderer2,\n\tsignal,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { getPushPanelViewportMargin, isNil, isNotNil, ɵeffectWithDeps } from '@lucca/prisme/core';\nimport { startWith, timer } from 'rxjs';\nimport { debounce, filter, map, tap } from 'rxjs/operators';\nimport { LuTooltipPanelComponent } from '../panel';\nimport { TooltipPosition } from './tooltip-position';\nimport { TooltipVisibilityObserver } from './tooltip-visibility.observer';\n\nexport interface LuTooltipAnchorRef {\n\tgetElementRef(): ElementRef;\n}\n\nlet nextId = 0;\n\n@Directive({\n\tselector: '[luTooltip],[prTooltip]',\n\texportAs: 'luTooltip',\n\thost: {\n\t\t'[attr.aria-describedby]': 'ariaDescribedBy()',\n\t\t'[attr.id]': 'id()',\n\t\t'(mouseenter)': 'onMouseEnter()',\n\t\t'(mouseleave)': 'onMouseLeave()',\n\t\t'(focus)': 'onFocus()',\n\t\t'(focusout)': 'onFocusOut($event)',\n\t\t'(blur)': 'onBlur()',\n\t\t'(keydown.escape)': 'onEscape($event)',\n\t\tclass: 'tooltip_trigger',\n\t\t'[class.is-whenEllipsis]': 'luTooltipWhenEllipsis()',\n\t},\n})\nexport class LuTooltipTriggerDirective implements OnDestroy {\n\treadonly #overlay = inject(Overlay);\n\treadonly #host = inject<ElementRef<HTMLElement>>(ElementRef);\n\treadonly #renderer = inject(Renderer2);\n\treadonly #document = inject(DOCUMENT);\n\treadonly #injector = inject(Injector);\n\treadonly #destroyRef = inject(DestroyRef);\n\treadonly #visibilityObserver = inject(TooltipVisibilityObserver);\n\n\treadonly luTooltipInput = input<string | SafeHtml>('', { alias: 'luTooltip' });\n\treadonly luTooltip = linkedSignal<string | SafeHtml>(() => this.luTooltipInput());\n\treadonly prTooltipInput = input<string | SafeHtml>('', { alias: 'prTooltip' });\n\treadonly prTooltip = linkedSignal<string | SafeHtml>(() => this.prTooltipInput());\n\treadonly tooltipContent = computed(() => this.luTooltip() || this.prTooltip());\n\n\treadonly luTooltipEnterDelay = input(300, { transform: numberAttribute });\n\treadonly prTooltipEnterDelay = input(300, { transform: numberAttribute });\n\treadonly tooltipEnterDelay = computed(() => this.prTooltipEnterDelay() || this.luTooltipEnterDelay());\n\n\treadonly luTooltipLeaveDelay = input(100, { transform: numberAttribute });\n\treadonly prTooltipLeaveDelay = input(100, { transform: numberAttribute });\n\treadonly tooltipLeaveDelay = computed(() => this.prTooltipLeaveDelay() || this.luTooltipLeaveDelay());\n\n\treadonly luTooltipDisabled = input(false, { transform: booleanAttribute });\n\treadonly prTooltipDisabled = input(false, { transform: booleanAttribute });\n\treadonly tooltipDisabled = computed(() => this.prTooltipDisabled() || this.luTooltipDisabled());\n\n\treadonly luTooltipOnlyForDisplay = input(false, { transform: booleanAttribute });\n\treadonly prTooltipOnlyForDisplay = input(false, { transform: booleanAttribute });\n\treadonly tooltipOnlyForDisplay = computed(() => this.prTooltipOnlyForDisplay() || this.luTooltipOnlyForDisplay());\n\n\treadonly luTooltipPosition = input<TooltipPosition>('above');\n\treadonly prTooltipPosition = input<TooltipPosition>('above');\n\treadonly tooltipPosition = computed(() => this.prTooltipPosition() || this.luTooltipPosition());\n\n\treadonly luTooltipWhenEllipsisInput = input(false, { alias: 'luTooltipWhenEllipsis', transform: booleanAttribute });\n\treadonly prTooltipWhenEllipsisInput = input(false, { alias: 'prTooltipWhenEllipsis', transform: booleanAttribute });\n\n\treadonly luTooltipWhenEllipsis = linkedSignal(() => this.luTooltipWhenEllipsisInput());\n\treadonly prTooltipWhenEllipsis = linkedSignal(() => this.prTooltipWhenEllipsisInput());\n\treadonly tooltipWhenEllipsis = computed(() => this.prTooltipWhenEllipsis() || this.luTooltipWhenEllipsis());\n\n\treadonly luTooltipAnchor = input<FlexibleConnectedPositionStrategyOrigin | LuTooltipAnchorRef | null | undefined>(this.#host);\n\treadonly prTooltipAnchor = input<FlexibleConnectedPositionStrategyOrigin | LuTooltipAnchorRef | null | undefined>(this.#host);\n\treadonly tooltipAnchor = computed(() => this.prTooltipAnchor() || this.luTooltipAnchor());\n\n\treadonly id = input<string>(`${this.#host.nativeElement.tagName.toLowerCase()}-tooltip-${nextId++}`);\n\n\treadonly ariaDescribedBy = computed(() => {\n\t\tif (this.tooltipDisabled() || this.tooltipWhenEllipsis() || this.tooltipOnlyForDisplay()) {\n\t\t\treturn null;\n\t\t}\n\t\treturn `${this.id()}-panel`;\n\t});\n\n\toverlayRef?: OverlayRef;\n\n\t// 0 until the element first appears; bumped for the initial measurement and on every real\n\t// size/content change. Scrolling in and out of view does NOT bump it (see #armMeasurementObservers).\n\treadonly #measureTrigger = signal(0);\n\n\t// guards the one-time setup of the persistent resize/mutation observers\n\t#measurementObserversArmed = false;\n\n\t// the IntersectionObserver callback and a debounced 'open' action (see openTooltip) can\n\t// fire after the view is destroyed; avoid touching the destroyed injector (NG0911) or\n\t// recreating the overlay when that happens\n\t#destroyed = false;\n\n\t// written only from the `read` phase of the afterRenderEffect below\n\treadonly #hasEllipsis = signal(false);\n\n\t// reusable hidden clone, one per directive, used to measure the unconstrained width\n\t#clone?: HTMLDivElement;\n\n\treadonly #action = signal<'open' | 'close' | null>(null);\n\treadonly #realAction = linkedSignal<'open' | 'close' | null, 'open' | 'close' | null>({\n\t\tsource: this.#action,\n\t\tcomputation: (action, previous): 'open' | 'close' | null => {\n\t\t\tif (!action || action === 'close') {\n\t\t\t\treturn action;\n\t\t\t}\n\n\t\t\t// We only filter open events because even if it's disabled while opened,\n\t\t\t// we want the tooltip to be able to close itself no matter what\n\t\t\tif (this.tooltipDisabled()) {\n\t\t\t\treturn previous?.value ?? null;\n\t\t\t}\n\n\t\t\tif (this.tooltipWhenEllipsis()) {\n\t\t\t\treturn this.#hasEllipsis() ? 'open' : (previous?.value ?? null);\n\t\t\t}\n\n\t\t\treturn 'open';\n\t\t},\n\t});\n\n\t#effectRef?: EffectRef;\n\n\t// pane the focus moved into when it last left this trigger, or null\n\t#focusLeftToPane: Element | null = null;\n\n\tconstructor() {\n\t\tthis.#destroyRef.onDestroy(() => (this.#destroyed = true));\n\n\t\t// Action debounce pipeline — kept as Observable since signals can't debounce\n\t\ttoObservable(this.#realAction)\n\t\t\t.pipe(\n\t\t\t\tfilter(isNotNil),\n\t\t\t\tdebounce((action) => timer(action === 'open' ? this.tooltipEnterDelay() : this.tooltipLeaveDelay())),\n\t\t\t\ttap((event) => {\n\t\t\t\t\tif (event === 'open') {\n\t\t\t\t\t\tthis.openTooltip();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.closeTooltip();\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\ttakeUntilDestroyed(),\n\t\t\t)\n\t\t\t.subscribe();\n\n\t\teffect(() => {\n\t\t\tif (!this.tooltipDisabled() && (!this.tooltipWhenEllipsis() || this.#hasEllipsis())) {\n\t\t\t\tthis.setAccessibilityProperties(0);\n\t\t\t} else {\n\t\t\t\tthis.setAccessibilityProperties(null);\n\t\t\t}\n\t\t});\n\n\t\t// Defer the first measurement until the element is near the viewport, then stop tracking\n\t\t// visibility: scrolling must not re-measure, so we arm the resize/mutation observers once.\n\t\t// A single shared IntersectionObserver handles every tooltip (see TooltipVisibilityObserver).\n\t\teffect((onCleanup) => {\n\t\t\tif (!this.tooltipWhenEllipsis() || this.tooltipDisabled() || this.#measurementObserversArmed) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst el = this.#host.nativeElement;\n\t\t\tthis.#visibilityObserver.observeOnce(el, () => this.#armMeasurementObservers());\n\n\t\t\tonCleanup(() => this.#visibilityObserver.unobserve(el));\n\t\t});\n\n\t\t// Ellipsis measurement, split across afterRenderEffect phases so that — across every tooltip\n\t\t// on the page — all DOM writes happen together, then all geometry reads happen together.\n\t\t// This keeps the whole batch to a single forced reflow instead of one reflow per element.\n\t\tafterRenderEffect({\n\t\t\tearlyRead: () => {\n\t\t\t\t// reading the trigger registers the dependency; 0 means \"not measured yet\"\n\t\t\t\tconst measured = this.#measureTrigger() > 0;\n\t\t\t\tconst shouldMeasure = measured && !this.tooltipDisabled() && this.tooltipWhenEllipsis();\n\t\t\t\tif (!shouldMeasure) {\n\t\t\t\t\treturn { measure: false } as const;\n\t\t\t\t}\n\t\t\t\tconst host = this.#host.nativeElement;\n\t\t\t\tconst hostStyle = getComputedStyle(host);\n\t\t\t\t// No need to run a test if the element is not truncated\n\t\t\t\t// or if its `display` property is set to `inline`\n\t\t\t\t// (especially for Safari, which still calculates a width, unlike other browsers)\n\t\t\t\tif (hostStyle.textOverflow !== 'ellipsis' || hostStyle.display === 'inline') {\n\t\t\t\t\treturn { measure: false } as const;\n\t\t\t\t}\n\t\t\t\treturn { measure: true, host, hostStyle } as const;\n\t\t\t},\n\t\t\twrite: (earlyReadResult) => {\n\t\t\t\tconst snapshot = earlyReadResult();\n\t\t\t\tif (!snapshot.measure) {\n\t\t\t\t\treturn { measure: false } as const;\n\t\t\t\t}\n\t\t\t\tconst clone = (this.#clone ??= this.#createClone());\n\t\t\t\tthis.#applyClonedStyles(clone, snapshot.hostStyle);\n\t\t\t\tclone.innerHTML = snapshot.host.innerHTML;\n\t\t\t\treturn { measure: true, host: snapshot.host, clone } as const;\n\t\t\t},\n\t\t\tread: (writeResult) => {\n\t\t\t\tconst measurement = writeResult();\n\t\t\t\tif (!measurement.measure) {\n\t\t\t\t\tthis.#hasEllipsis.set(false);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// Computed `width`, unlike `getBoundingClientRect`, ignores ancestor CSS transforms\n\t\t\t\t// (e.g. the popover's scale-in animation), so a mid-animation read can't mistake the\n\t\t\t\t// host for narrower than it is and get stuck with a false \"has ellipsis\".\n\t\t\t\tconst cloneWidth = parseFloat(getComputedStyle(measurement.clone).width);\n\t\t\t\tconst hostWidth = parseFloat(getComputedStyle(measurement.host).width);\n\t\t\t\t// rounded to 3 decimals to ignore sub-pixel noise\n\t\t\t\tthis.#hasEllipsis.set(Math.round(cloneWidth * 1000) > Math.round(hostWidth * 1000));\n\t\t\t},\n\t\t});\n\n\t\tthis.#destroyRef.onDestroy(() => this.#clone?.remove());\n\t}\n\n\t// Set up — once — the observers that ask for a re-measurement on real size/content changes.\n\t// They stay connected for the directive lifetime (even off-screen), so scrolling never\n\t// re-measures; only an actual resize/mutation does.\n\t#armMeasurementObservers(): void {\n\t\tif (this.#measurementObserversArmed || this.#destroyed) {\n\t\t\treturn;\n\t\t}\n\t\tthis.#measurementObserversArmed = true;\n\n\t\tconst el = this.#host.nativeElement;\n\t\tconst bump = () => this.#measureTrigger.update((v) => v + 1);\n\n\t\tconst resizeObserver = new ResizeObserver(() => bump());\n\t\tresizeObserver.observe(el);\n\n\t\tconst mutationObserver = new MutationObserver(() => bump());\n\t\tmutationObserver.observe(el, { characterData: true, subtree: true, childList: true });\n\n\t\tthis.#destroyRef.onDestroy(() => {\n\t\t\tresizeObserver.disconnect();\n\t\t\tmutationObserver.disconnect();\n\t\t});\n\n\t\t// initial measurement now that the element has appeared\n\t\tbump();\n\t}\n\n\t#createClone(): HTMLDivElement {\n\t\tconst clone = this.#document.createElement('div');\n\t\tclone.setAttribute('aria-hidden', 'true');\n\t\tObject.assign(clone.style, {\n\t\t\tinlineSize: 'fit-content',\n\t\t\twhiteSpace: 'nowrap',\n\t\t\t// `fixed` + pinned origin keeps the (potentially very wide) clone out of the\n\t\t\t// document's scrollable overflow, so measuring never flashes a scrollbar.\n\t\t\tposition: 'fixed',\n\t\t\tinsetBlockStart: '0',\n\t\t\tinsetInlineStart: '0',\n\t\t\tvisibility: 'hidden',\n\t\t\tpointerEvents: 'none',\n\t\t\tcontain: 'layout',\n\t\t});\n\t\tthis.#document.body.appendChild(clone);\n\t\treturn clone;\n\t}\n\n\t#applyClonedStyles(clone: HTMLDivElement, hostStyle: CSSStyleDeclaration): void {\n\t\tconst { padding, borderWidth, borderStyle, boxSizing, fontFamily, fontWeight, fontStyle, fontSize } = hostStyle;\n\t\tObject.assign(clone.style, { padding, borderWidth, borderStyle, boxSizing, fontFamily, fontWeight, fontStyle, fontSize });\n\t}\n\n\tonMouseEnter() {\n\t\tthis.#action.set('open');\n\t}\n\n\tonMouseLeave() {\n\t\tthis.#action.set('close');\n\t}\n\n\tonFocus() {\n\t\tconst leftToPane = this.#focusLeftToPane;\n\t\tthis.#focusLeftToPane = null;\n\n\t\t// A closing overlay hands the focus back to its trigger.\n\t\t// That is not the user reaching the trigger, so the tooltip stays closed.\n\t\tif (this.#isForeignPane(leftToPane)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.#host.nativeElement.getAttribute('aria-expanded') !== 'true') {\n\t\t\tthis.#action.set('open');\n\t\t}\n\t}\n\n\tonFocusOut(event: FocusEvent) {\n\t\t// Captured on the way out.\n\t\t// Some overlays dispose their pane before handing the focus back, leaving nothing to inspect.\n\t\tthis.#focusLeftToPane = event.relatedTarget instanceof Element ? this.#paneOf(event.relatedTarget) : null;\n\t}\n\n\t#isForeignPane(pane: Element | null): boolean {\n\t\t// Panes, not the whole container.\n\t\t// A trigger inside an overlay keeps its tooltip when the focus moves within that same overlay.\n\t\treturn isNotNil(pane) && pane !== this.#paneOf(this.#host.nativeElement);\n\t}\n\n\t#paneOf(element: Element): Element | null {\n\t\treturn element.closest('.cdk-overlay-pane');\n\t}\n\n\tonBlur() {\n\t\tthis.#action.set('close');\n\t}\n\n\tonEscape(event: Event) {\n\t\tevent.stopPropagation();\n\t\tthis.#action.set(null);\n\t\tthis.closeTooltip();\n\t}\n\n\trequestOpen() {\n\t\tthis.#action.set('open');\n\t}\n\n\trequestClose() {\n\t\tthis.#action.set('close');\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.closeTooltip();\n\t\tif (this.overlayRef) {\n\t\t\tthis.overlayRef.dispose();\n\t\t\tdelete this.overlayRef;\n\t\t}\n\t}\n\n\tprivate prepareOverlay(): void {\n\t\tif (this.overlayRef) {\n\t\t\treturn;\n\t\t}\n\t\tthis.overlayRef = this.#overlay.create({\n\t\t\tscrollStrategy: this.#overlay.scrollStrategies.close(),\n\t\t\tdisposeOnNavigation: true,\n\t\t});\n\t\tconst describedBy = this.ariaDescribedBy();\n\t\tif (describedBy !== null) {\n\t\t\tthis.overlayRef.overlayElement.id = describedBy;\n\t\t}\n\t}\n\n\tprivate openTooltip(): void {\n\t\t// A pending debounced 'open' is flushed when `toObservable(#realAction)` completes on\n\t\t// destroy (`debounce` re-emits the held value on completion), i.e. AFTER ngOnDestroy has\n\t\t// disposed the overlay. Opening then would recreate an overlay anchored to a detached\n\t\t// host — pinned to the viewport's top-left corner — that nothing would ever dispose.\n\t\tif (this.#destroyed || this.overlayRef?.hasAttached()) {\n\t\t\treturn;\n\t\t}\n\t\tconst position = this.legacyPositionBuilder();\n\t\tif (!this.overlayRef) {\n\t\t\tthis.overlayRef = this.#overlay.create({\n\t\t\t\tpositionStrategy: position,\n\t\t\t\tscrollStrategy: this.#overlay.scrollStrategies.close(),\n\t\t\t\tdisposeOnNavigation: true,\n\t\t\t});\n\t\t} else {\n\t\t\tthis.overlayRef.updatePositionStrategy(position);\n\t\t}\n\t\tconst portal = new ComponentPortal(LuTooltipPanelComponent);\n\t\tconst ref = this.overlayRef.attach(portal);\n\t\tposition.positionChanges\n\t\t\t.pipe(\n\t\t\t\ttakeUntilDestroyed(this.#destroyRef),\n\t\t\t\tmap(({ connectionPair }) => connectionPair),\n\t\t\t\tstartWith(position.positions[0]),\n\t\t\t)\n\t\t\t.subscribe(({ overlayX, overlayY }) => {\n\t\t\t\tref.instance.setPanelPosition(overlayX, overlayY);\n\t\t\t});\n\n\t\tif (this.tooltipContent()) {\n\t\t\tthis.#effectRef = ɵeffectWithDeps(\n\t\t\t\t[this.tooltipContent],\n\t\t\t\t(content) => {\n\t\t\t\t\tref.instance.content.set(content);\n\t\t\t\t},\n\t\t\t\t{ injector: this.#injector },\n\t\t\t);\n\t\t} else if (this.tooltipWhenEllipsis()) {\n\t\t\tref.instance.content.set(this.#host.nativeElement.innerText);\n\t\t} else {\n\t\t\tref.instance.content.set('');\n\t\t}\n\n\t\tref.instance.mouseLeave$.pipe(takeUntilDestroyed(ref.instance.destroyRef)).subscribe(() => this.#action.set('close'));\n\t\tref.instance.mouseEnter$.pipe(takeUntilDestroyed(ref.instance.destroyRef)).subscribe(() => this.#action.set('open'));\n\t}\n\n\tprivate closeTooltip(): void {\n\t\tif (this.overlayRef) {\n\t\t\tthis.overlayRef.detach();\n\t\t}\n\t\tthis.#effectRef?.destroy();\n\t}\n\n\tprivate setAccessibilityProperties(tabindex: number | null): void {\n\t\tif (tabindex === null) {\n\t\t\tthis.#renderer.removeAttribute(this.#host.nativeElement, 'tabindex');\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.tooltipWhenEllipsis() && !this.tooltipOnlyForDisplay()) {\n\t\t\tthis.prepareOverlay();\n\t\t}\n\n\t\tconst tag = this.#host.nativeElement.tagName.toLowerCase();\n\t\tconst nativelyFocusableTags = ['a', 'button', 'input', 'select', 'textarea'];\n\t\tconst isNativelyFocusableTag = nativelyFocusableTags.includes(tag);\n\n\t\tconst hasATabIndex = this.#host.nativeElement.getAttribute('tabindex') !== null;\n\n\t\tif (!isNativelyFocusableTag && !hasATabIndex) {\n\t\t\tthis.#renderer.setAttribute(this.#host.nativeElement, 'tabindex', tabindex.toString());\n\t\t}\n\n\t\tif (!isNativelyFocusableTag && !this.tooltipWhenEllipsis() && !this.tooltipOnlyForDisplay()) {\n\t\t\tthis.#renderer.setAttribute(this.#host.nativeElement, 'role', 'button');\n\t\t}\n\t}\n\n\t// Legacy position builder to handle existing position API\n\tprivate legacyPositionBuilder(): FlexibleConnectedPositionStrategy {\n\t\tconst connectionPosition: OriginConnectionPosition = {\n\t\t\toriginX: 'start',\n\t\t\toriginY: 'top',\n\t\t};\n\n\t\t// Position\n\t\tconst position = this.tooltipPosition();\n\t\tif (position === 'above') {\n\t\t\tconnectionPosition.originY = 'top';\n\t\t} else if (position === 'below') {\n\t\t\tconnectionPosition.originY = 'bottom';\n\t\t} else if (position === 'before') {\n\t\t\tconnectionPosition.originX = 'start';\n\t\t} else if (position === 'after') {\n\t\t\tconnectionPosition.originX = 'end';\n\t\t}\n\n\t\t// Alignment\n\t\tif (position === 'above' || position === 'below') {\n\t\t\tconnectionPosition.originX = 'center';\n\t\t} else {\n\t\t\tconnectionPosition.originY = 'center';\n\t\t}\n\n\t\tconst overlayPosition: OverlayConnectionPosition = {\n\t\t\toverlayX: 'start',\n\t\t\toverlayY: 'top',\n\t\t};\n\n\t\tif (position === 'above' || position === 'below') {\n\t\t\toverlayPosition.overlayX = connectionPosition.originX;\n\t\t\toverlayPosition.overlayY = position === 'above' ? 'bottom' : 'top';\n\t\t} else {\n\t\t\toverlayPosition.overlayX = position === 'before' ? 'end' : 'start';\n\t\t\toverlayPosition.overlayY = connectionPosition.originY;\n\t\t}\n\n\t\treturn this.#overlay\n\t\t\t.position()\n\t\t\t.flexibleConnectedTo(this.#resolveAnchor())\n\t\t\t.withViewportMargin(getPushPanelViewportMargin(this.#host.nativeElement))\n\t\t\t.withPositions([\n\t\t\t\t{\n\t\t\t\t\toriginX: connectionPosition.originX,\n\t\t\t\t\toriginY: connectionPosition.originY,\n\t\t\t\t\toverlayX: overlayPosition.overlayX,\n\t\t\t\t\toverlayY: overlayPosition.overlayY,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\toriginX: connectionPosition.originX,\n\t\t\t\t\toriginY: this.invertVerticalPos(connectionPosition.originY),\n\t\t\t\t\toverlayX: overlayPosition.overlayX,\n\t\t\t\t\toverlayY: this.invertVerticalPos(overlayPosition.overlayY),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\toriginX: this.invertHorizontalPos(connectionPosition.originX),\n\t\t\t\t\toriginY: connectionPosition.originY,\n\t\t\t\t\toverlayX: this.invertHorizontalPos(overlayPosition.overlayX),\n\t\t\t\t\toverlayY: overlayPosition.overlayY,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\toriginX: this.invertHorizontalPos(connectionPosition.originX),\n\t\t\t\t\toriginY: this.invertVerticalPos(connectionPosition.originY),\n\t\t\t\t\toverlayX: this.invertHorizontalPos(overlayPosition.overlayX),\n\t\t\t\t\toverlayY: this.invertVerticalPos(overlayPosition.overlayY),\n\t\t\t\t},\n\t\t\t]);\n\t}\n\n\t#resolveAnchor(): FlexibleConnectedPositionStrategyOrigin {\n\t\tconst anchor = this.tooltipAnchor();\n\n\t\tif (isNil(anchor)) {\n\t\t\treturn this.#host;\n\t\t} else if ('getElementRef' in anchor) {\n\t\t\treturn anchor.getElementRef();\n\t\t} else {\n\t\t\treturn anchor;\n\t\t}\n\t}\n\n\tprivate invertVerticalPos(y: VerticalConnectionPos): VerticalConnectionPos {\n\t\tif (y === 'top') {\n\t\t\treturn 'bottom';\n\t\t} else if (y === 'bottom') {\n\t\t\treturn 'top';\n\t\t}\n\t\treturn y;\n\t}\n\n\tprivate invertHorizontalPos(x: HorizontalConnectionPos): HorizontalConnectionPos {\n\t\tif (x === 'end') {\n\t\t\treturn 'start';\n\t\t} else if (x === 'start') {\n\t\t\treturn 'end';\n\t\t}\n\t\treturn x;\n\t}\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { NgModule } from '@angular/core';\nimport { LuTooltipTriggerDirective } from './tooltip-trigger.directive';\n\n/**\n * @deprecated use `LuTooltipTriggerDirective` instead\n */\n@NgModule({\n\timports: [LuTooltipTriggerDirective, OverlayModule],\n\texports: [LuTooltipTriggerDirective],\n})\nexport class LuTooltipTriggerModule {}\n","import { NgModule } from '@angular/core';\nimport { LuTooltipPanelComponent } from './panel/index';\nimport { LuTooltipTriggerModule } from './trigger/index';\n\n/**\n * @deprecated use `LuTooltipTriggerDirective, LuTooltipPanelComponent` instead\n */\n@NgModule({\n\timports: [LuTooltipTriggerModule, LuTooltipPanelComponent],\n\texports: [LuTooltipTriggerModule, LuTooltipPanelComponent],\n})\nexport class LuTooltipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ɵeffectWithDeps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lucca-prisme-tooltip.mjs","sources":["../../../packages/prisme/tooltip/animation/tooltip.animation.ts","../../../packages/prisme/tooltip/panel/tooltip-panel.component.ts","../../../packages/prisme/tooltip/panel/tooltip-panel.component.html","../../../packages/prisme/tooltip/trigger/tooltip-visibility.observer.ts","../../../packages/prisme/tooltip/trigger/tooltip-trigger.directive.ts","../../../packages/prisme/tooltip/trigger/tooltip-trigger.module.ts","../../../packages/prisme/tooltip/tooltip.module.ts","../../../packages/prisme/tooltip/lucca-prisme-tooltip.ts"],"sourcesContent":["import { trigger, state, style, animate, transition, AnimationTriggerMetadata } from '@angular/animations';\n\nexport const luTransformTooltip: AnimationTriggerMetadata = trigger('transformTooltip', [\n\tstate(\n\t\t'enter',\n\t\tstyle({\n\t\t\topacity: 1,\n\t\t\ttransform: `scale(1)`,\n\t\t}),\n\t),\n\ttransition('void => *', [\n\t\tstyle({\n\t\t\topacity: 0,\n\t\t\ttransform: `scale(0)`,\n\t\t}),\n\t\tanimate(`150ms cubic-bezier(0.25, 0.8, 0.25, 1)`),\n\t]),\n\ttransition('* => void', [animate('50ms 100ms linear', style({ opacity: 0 }))]),\n]);\n","import { HorizontalConnectionPos, VerticalConnectionPos } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, Component, DestroyRef, inject, signal } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { Subject } from 'rxjs';\n\n@Component({\n\tselector: 'lu-tooltip-panel,pr-tooltip-panel',\n\ttemplateUrl: './tooltip-panel.component.html',\n\tstyleUrl: './tooltip-panel.component.scss',\n\thost: {\n\t\trole: 'tooltip',\n\t\t'(mouseenter)': 'mouseEnter$.next()',\n\t\t'(mouseleave)': 'mouseLeave$.next()',\n\t},\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LuTooltipPanelComponent {\n\treadonly destroyRef = inject(DestroyRef);\n\n\treadonly mouseEnter$ = new Subject<void>();\n\treadonly mouseLeave$ = new Subject<void>();\n\n\treadonly content = signal<string | SafeHtml | null>(null);\n\treadonly enterDelay = signal(300);\n\n\treadonly contentPositionClasses = signal<Record<string, boolean>>({});\n\n\tsetPanelPosition(posX: HorizontalConnectionPos, posY: VerticalConnectionPos): void {\n\t\tthis.contentPositionClasses.set({\n\t\t\t'is-before': posX === 'end',\n\t\t\t'is-after': posX === 'start',\n\t\t\t'is-above': posY === 'bottom',\n\t\t\t'is-below': posY === 'top',\n\t\t});\n\t}\n}\n","@if (content(); as content) {\n\t<div\n\t\tclass=\"tooltip\"\n\t\t[class]=\"contentPositionClasses()\"\n\t\t[innerHtml]=\"content\"\n\t\t[style.--components-tooltip-animationDelay]=\"enterDelay() + 'ms'\"\n\t></div>\n}\n","import { Injectable } from '@angular/core';\n\n/**\n * Single, shared IntersectionObserver used by every tooltip to defer its first ellipsis\n * measurement until the host element is near the viewport.\n *\n * One observer for the whole page is far cheaper than one IntersectionObserver per tooltip when\n * many tooltips are created at once (e.g. a large table being (re)rendered): the browser then\n * delivers a single batched callback instead of one per element.\n */\n@Injectable({ providedIn: 'root' })\nexport class TooltipVisibilityObserver {\n\t#observer?: IntersectionObserver;\n\treadonly #callbacks = new WeakMap<Element, () => void>();\n\n\t/** Calls `onVisible` once — the first time `element` comes near the viewport — then stops observing it. */\n\tobserveOnce(element: Element, onVisible: () => void): void {\n\t\tthis.#callbacks.set(element, onVisible);\n\t\tthis.#getObserver().observe(element);\n\t}\n\n\tunobserve(element: Element): void {\n\t\tthis.#callbacks.delete(element);\n\t\tthis.#observer?.unobserve(element);\n\t}\n\n\t// Created lazily so the observer is only instantiated in the browser, on first use.\n\t#getObserver(): IntersectionObserver {\n\t\treturn (this.#observer ??= new IntersectionObserver(\n\t\t\t(entries) => {\n\t\t\t\tfor (const entry of entries) {\n\t\t\t\t\tif (!entry.isIntersecting) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tconst onVisible = this.#callbacks.get(entry.target);\n\t\t\t\t\tthis.unobserve(entry.target);\n\t\t\t\t\tonVisible?.();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ rootMargin: '100px' },\n\t\t));\n\t}\n}\n","import {\n\tFlexibleConnectedPositionStrategy,\n\tFlexibleConnectedPositionStrategyOrigin,\n\tHorizontalConnectionPos,\n\tOriginConnectionPosition,\n\tOverlay,\n\tOverlayConnectionPosition,\n\tOverlayRef,\n\tVerticalConnectionPos,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n\tafterRenderEffect,\n\tbooleanAttribute,\n\tcomputed,\n\tDestroyRef,\n\tDirective,\n\teffect,\n\tEffectRef,\n\tElementRef,\n\tinject,\n\tInjector,\n\tinput,\n\tlinkedSignal,\n\tnumberAttribute,\n\tOnDestroy,\n\tRenderer2,\n\tsignal,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { getPushPanelViewportMargin, isNil, isNotNil, ɵeffectWithDeps } from '@lucca/prisme/core';\nimport { startWith, timer } from 'rxjs';\nimport { debounce, filter, map, tap } from 'rxjs/operators';\nimport { LuTooltipPanelComponent } from '../panel';\nimport { TooltipPosition } from './tooltip-position';\nimport { TooltipVisibilityObserver } from './tooltip-visibility.observer';\n\nexport interface LuTooltipAnchorRef {\n\tgetElementRef(): ElementRef;\n}\n\nlet nextId = 0;\n\n@Directive({\n\tselector: '[luTooltip],[prTooltip]',\n\texportAs: 'luTooltip',\n\thost: {\n\t\t'[attr.aria-describedby]': 'ariaDescribedBy()',\n\t\t'[attr.id]': 'id()',\n\t\t'(mouseenter)': 'onMouseEnter()',\n\t\t'(mouseleave)': 'onMouseLeave()',\n\t\t'(focus)': 'onFocus()',\n\t\t'(focusout)': 'onFocusOut($event)',\n\t\t'(blur)': 'onBlur()',\n\t\t'(keydown.escape)': 'onEscape($event)',\n\t\tclass: 'tooltip_trigger',\n\t\t'[class.is-whenEllipsis]': 'luTooltipWhenEllipsis()',\n\t},\n})\nexport class LuTooltipTriggerDirective implements OnDestroy {\n\treadonly #overlay = inject(Overlay);\n\treadonly #host = inject<ElementRef<HTMLElement>>(ElementRef);\n\treadonly #renderer = inject(Renderer2);\n\treadonly #document = inject(DOCUMENT);\n\treadonly #injector = inject(Injector);\n\treadonly #destroyRef = inject(DestroyRef);\n\treadonly #visibilityObserver = inject(TooltipVisibilityObserver);\n\n\treadonly luTooltipInput = input<string | SafeHtml>('', { alias: 'luTooltip' });\n\treadonly luTooltip = linkedSignal<string | SafeHtml>(() => this.luTooltipInput());\n\treadonly prTooltipInput = input<string | SafeHtml>('', { alias: 'prTooltip' });\n\treadonly prTooltip = linkedSignal<string | SafeHtml>(() => this.prTooltipInput());\n\treadonly tooltipContent = computed(() => this.luTooltip() || this.prTooltip());\n\n\treadonly luTooltipEnterDelay = input(0, { transform: numberAttribute });\n\treadonly prTooltipEnterDelay = input(300, { transform: numberAttribute });\n\treadonly tooltipEnterDelay = computed(() => this.luTooltipEnterDelay() || this.prTooltipEnterDelay());\n\n\treadonly luTooltipLeaveDelay = input(0, { transform: numberAttribute });\n\treadonly prTooltipLeaveDelay = input(100, { transform: numberAttribute });\n\treadonly tooltipLeaveDelay = computed(() => this.luTooltipLeaveDelay() || this.prTooltipLeaveDelay());\n\n\treadonly luTooltipDisabled = input(false, { transform: booleanAttribute });\n\treadonly prTooltipDisabled = input(false, { transform: booleanAttribute });\n\treadonly tooltipDisabled = computed(() => this.prTooltipDisabled() || this.luTooltipDisabled());\n\n\treadonly luTooltipOnlyForDisplay = input(false, { transform: booleanAttribute });\n\treadonly prTooltipOnlyForDisplay = input(false, { transform: booleanAttribute });\n\treadonly tooltipOnlyForDisplay = computed(() => this.prTooltipOnlyForDisplay() || this.luTooltipOnlyForDisplay());\n\n\treadonly luTooltipPosition = input<TooltipPosition | null>(null);\n\treadonly prTooltipPosition = input<TooltipPosition>('above');\n\treadonly tooltipPosition = computed(() => this.luTooltipPosition() ?? this.prTooltipPosition());\n\n\treadonly luTooltipWhenEllipsisInput = input(false, { alias: 'luTooltipWhenEllipsis', transform: booleanAttribute });\n\treadonly prTooltipWhenEllipsisInput = input(false, { alias: 'prTooltipWhenEllipsis', transform: booleanAttribute });\n\n\treadonly luTooltipWhenEllipsis = linkedSignal(() => this.luTooltipWhenEllipsisInput());\n\treadonly prTooltipWhenEllipsis = linkedSignal(() => this.prTooltipWhenEllipsisInput());\n\treadonly tooltipWhenEllipsis = computed(() => this.prTooltipWhenEllipsis() || this.luTooltipWhenEllipsis());\n\n\treadonly luTooltipAnchor = input<FlexibleConnectedPositionStrategyOrigin | LuTooltipAnchorRef | null | undefined>(null);\n\treadonly prTooltipAnchor = input<FlexibleConnectedPositionStrategyOrigin | LuTooltipAnchorRef | null | undefined>(this.#host);\n\treadonly tooltipAnchor = computed(() => this.luTooltipAnchor() || this.prTooltipAnchor());\n\n\treadonly id = input<string>(`${this.#host.nativeElement.tagName.toLowerCase()}-tooltip-${nextId++}`);\n\n\treadonly ariaDescribedBy = computed(() => {\n\t\tif (this.tooltipDisabled() || this.tooltipWhenEllipsis() || this.tooltipOnlyForDisplay()) {\n\t\t\treturn null;\n\t\t}\n\t\treturn `${this.id()}-panel`;\n\t});\n\n\toverlayRef?: OverlayRef;\n\n\t// 0 until the element first appears; bumped for the initial measurement and on every real\n\t// size/content change. Scrolling in and out of view does NOT bump it (see #armMeasurementObservers).\n\treadonly #measureTrigger = signal(0);\n\n\t// guards the one-time setup of the persistent resize/mutation observers\n\t#measurementObserversArmed = false;\n\n\t// the IntersectionObserver callback and a debounced 'open' action (see openTooltip) can\n\t// fire after the view is destroyed; avoid touching the destroyed injector (NG0911) or\n\t// recreating the overlay when that happens\n\t#destroyed = false;\n\n\t// written only from the `read` phase of the afterRenderEffect below\n\treadonly #hasEllipsis = signal(false);\n\n\t// reusable hidden clone, one per directive, used to measure the unconstrained width\n\t#clone?: HTMLDivElement;\n\n\treadonly #action = signal<'open' | 'close' | null>(null);\n\treadonly #realAction = linkedSignal<'open' | 'close' | null, 'open' | 'close' | null>({\n\t\tsource: this.#action,\n\t\tcomputation: (action, previous): 'open' | 'close' | null => {\n\t\t\tif (!action || action === 'close') {\n\t\t\t\treturn action;\n\t\t\t}\n\n\t\t\t// We only filter open events because even if it's disabled while opened,\n\t\t\t// we want the tooltip to be able to close itself no matter what\n\t\t\tif (this.tooltipDisabled()) {\n\t\t\t\treturn previous?.value ?? null;\n\t\t\t}\n\n\t\t\tif (this.tooltipWhenEllipsis()) {\n\t\t\t\treturn this.#hasEllipsis() ? 'open' : (previous?.value ?? null);\n\t\t\t}\n\n\t\t\treturn 'open';\n\t\t},\n\t});\n\n\t#effectRef?: EffectRef;\n\n\t// pane the focus moved into when it last left this trigger, or null\n\t#focusLeftToPane: Element | null = null;\n\n\tconstructor() {\n\t\tthis.#destroyRef.onDestroy(() => (this.#destroyed = true));\n\n\t\t// content attach/detach — immediate on open, VoiceOver/Safari misses a late aria-describedby\n\t\ttoObservable(this.#realAction)\n\t\t\t.pipe(\n\t\t\t\tfilter(isNotNil),\n\t\t\t\tdebounce((action) => timer(action === 'open' ? 0 : this.tooltipLeaveDelay())),\n\t\t\t\ttap((action) => {\n\t\t\t\t\tif (action === 'open') {\n\t\t\t\t\t\tthis.attachTooltip();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.closeTooltip();\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\ttakeUntilDestroyed(),\n\t\t\t)\n\t\t\t.subscribe();\n\n\t\teffect(() => {\n\t\t\tif (!this.tooltipDisabled() && (!this.tooltipWhenEllipsis() || this.#hasEllipsis())) {\n\t\t\t\tthis.setAccessibilityProperties(0);\n\t\t\t} else {\n\t\t\t\tthis.setAccessibilityProperties(null);\n\t\t\t}\n\t\t});\n\n\t\t// Defer the first measurement until the element is near the viewport, then stop tracking\n\t\t// visibility: scrolling must not re-measure, so we arm the resize/mutation observers once.\n\t\t// A single shared IntersectionObserver handles every tooltip (see TooltipVisibilityObserver).\n\t\teffect((onCleanup) => {\n\t\t\tif (!this.tooltipWhenEllipsis() || this.tooltipDisabled() || this.#measurementObserversArmed) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst el = this.#host.nativeElement;\n\t\t\tthis.#visibilityObserver.observeOnce(el, () => this.#armMeasurementObservers());\n\n\t\t\tonCleanup(() => this.#visibilityObserver.unobserve(el));\n\t\t});\n\n\t\t// Ellipsis measurement, split across afterRenderEffect phases so that — across every tooltip\n\t\t// on the page — all DOM writes happen together, then all geometry reads happen together.\n\t\t// This keeps the whole batch to a single forced reflow instead of one reflow per element.\n\t\tafterRenderEffect({\n\t\t\tearlyRead: () => {\n\t\t\t\t// reading the trigger registers the dependency; 0 means \"not measured yet\"\n\t\t\t\tconst measured = this.#measureTrigger() > 0;\n\t\t\t\tconst shouldMeasure = measured && !this.tooltipDisabled() && this.tooltipWhenEllipsis();\n\t\t\t\tif (!shouldMeasure) {\n\t\t\t\t\treturn { measure: false } as const;\n\t\t\t\t}\n\t\t\t\tconst host = this.#host.nativeElement;\n\t\t\t\tconst hostStyle = getComputedStyle(host);\n\t\t\t\t// No need to run a test if the element is not truncated\n\t\t\t\t// or if its `display` property is set to `inline`\n\t\t\t\t// (especially for Safari, which still calculates a width, unlike other browsers)\n\t\t\t\tif (hostStyle.textOverflow !== 'ellipsis' || hostStyle.display === 'inline') {\n\t\t\t\t\treturn { measure: false } as const;\n\t\t\t\t}\n\t\t\t\treturn { measure: true, host, hostStyle } as const;\n\t\t\t},\n\t\t\twrite: (earlyReadResult) => {\n\t\t\t\tconst snapshot = earlyReadResult();\n\t\t\t\tif (!snapshot.measure) {\n\t\t\t\t\treturn { measure: false } as const;\n\t\t\t\t}\n\t\t\t\tconst clone = (this.#clone ??= this.#createClone());\n\t\t\t\tthis.#applyClonedStyles(clone, snapshot.hostStyle);\n\t\t\t\tclone.innerHTML = snapshot.host.innerHTML;\n\t\t\t\treturn { measure: true, host: snapshot.host, clone } as const;\n\t\t\t},\n\t\t\tread: (writeResult) => {\n\t\t\t\tconst measurement = writeResult();\n\t\t\t\tif (!measurement.measure) {\n\t\t\t\t\tthis.#hasEllipsis.set(false);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// Computed `width`, unlike `getBoundingClientRect`, ignores ancestor CSS transforms\n\t\t\t\t// (e.g. the popover's scale-in animation), so a mid-animation read can't mistake the\n\t\t\t\t// host for narrower than it is and get stuck with a false \"has ellipsis\".\n\t\t\t\tconst cloneWidth = parseFloat(getComputedStyle(measurement.clone).width);\n\t\t\t\tconst hostWidth = parseFloat(getComputedStyle(measurement.host).width);\n\t\t\t\t// rounded to 3 decimals to ignore sub-pixel noise\n\t\t\t\tthis.#hasEllipsis.set(Math.round(cloneWidth * 1000) > Math.round(hostWidth * 1000));\n\t\t\t},\n\t\t});\n\n\t\tthis.#destroyRef.onDestroy(() => this.#clone?.remove());\n\t}\n\n\t// Set up — once — the observers that ask for a re-measurement on real size/content changes.\n\t// They stay connected for the directive lifetime (even off-screen), so scrolling never\n\t// re-measures; only an actual resize/mutation does.\n\t#armMeasurementObservers(): void {\n\t\tif (this.#measurementObserversArmed || this.#destroyed) {\n\t\t\treturn;\n\t\t}\n\t\tthis.#measurementObserversArmed = true;\n\n\t\tconst el = this.#host.nativeElement;\n\t\tconst bump = () => this.#measureTrigger.update((v) => v + 1);\n\n\t\tconst resizeObserver = new ResizeObserver(() => bump());\n\t\tresizeObserver.observe(el);\n\n\t\tconst mutationObserver = new MutationObserver(() => bump());\n\t\tmutationObserver.observe(el, { characterData: true, subtree: true, childList: true });\n\n\t\tthis.#destroyRef.onDestroy(() => {\n\t\t\tresizeObserver.disconnect();\n\t\t\tmutationObserver.disconnect();\n\t\t});\n\n\t\t// initial measurement now that the element has appeared\n\t\tbump();\n\t}\n\n\t#createClone(): HTMLDivElement {\n\t\tconst clone = this.#document.createElement('div');\n\t\tclone.setAttribute('aria-hidden', 'true');\n\t\tObject.assign(clone.style, {\n\t\t\tinlineSize: 'fit-content',\n\t\t\twhiteSpace: 'nowrap',\n\t\t\t// `fixed` + pinned origin keeps the (potentially very wide) clone out of the\n\t\t\t// document's scrollable overflow, so measuring never flashes a scrollbar.\n\t\t\tposition: 'fixed',\n\t\t\tinsetBlockStart: '0',\n\t\t\tinsetInlineStart: '0',\n\t\t\tvisibility: 'hidden',\n\t\t\tpointerEvents: 'none',\n\t\t\tcontain: 'layout',\n\t\t});\n\t\tthis.#document.body.appendChild(clone);\n\t\treturn clone;\n\t}\n\n\t#applyClonedStyles(clone: HTMLDivElement, hostStyle: CSSStyleDeclaration): void {\n\t\tconst { padding, borderWidth, borderStyle, boxSizing, fontFamily, fontWeight, fontStyle, fontSize } = hostStyle;\n\t\tObject.assign(clone.style, { padding, borderWidth, borderStyle, boxSizing, fontFamily, fontWeight, fontStyle, fontSize });\n\t}\n\n\tonMouseEnter() {\n\t\tthis.#action.set('open');\n\t}\n\n\tonMouseLeave() {\n\t\tthis.#action.set('close');\n\t}\n\n\tonFocus() {\n\t\tconst leftToPane = this.#focusLeftToPane;\n\t\tthis.#focusLeftToPane = null;\n\n\t\t// A closing overlay hands the focus back to its trigger.\n\t\t// That is not the user reaching the trigger, so the tooltip stays closed.\n\t\tif (this.#isForeignPane(leftToPane)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.#host.nativeElement.getAttribute('aria-expanded') !== 'true') {\n\t\t\tthis.#action.set('open');\n\t\t}\n\t}\n\n\tonFocusOut(event: FocusEvent) {\n\t\t// Captured on the way out.\n\t\t// Some overlays dispose their pane before handing the focus back, leaving nothing to inspect.\n\t\tthis.#focusLeftToPane = event.relatedTarget instanceof Element ? this.#paneOf(event.relatedTarget) : null;\n\t}\n\n\t#isForeignPane(pane: Element | null): boolean {\n\t\t// Panes, not the whole container.\n\t\t// A trigger inside an overlay keeps its tooltip when the focus moves within that same overlay.\n\t\treturn isNotNil(pane) && pane !== this.#paneOf(this.#host.nativeElement);\n\t}\n\n\t#paneOf(element: Element): Element | null {\n\t\treturn element.closest('.cdk-overlay-pane');\n\t}\n\n\tonBlur() {\n\t\tthis.#action.set('close');\n\t}\n\n\tonEscape(event: Event) {\n\t\tevent.stopPropagation();\n\t\tthis.#action.set(null);\n\t\tthis.closeTooltip();\n\t}\n\n\trequestOpen() {\n\t\tthis.#action.set('open');\n\t}\n\n\trequestClose() {\n\t\tthis.#action.set('close');\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.closeTooltip();\n\t\tif (this.overlayRef) {\n\t\t\tthis.overlayRef.dispose();\n\t\t\tdelete this.overlayRef;\n\t\t}\n\t}\n\n\tprivate prepareOverlay(): void {\n\t\tif (this.overlayRef) {\n\t\t\treturn;\n\t\t}\n\t\tthis.overlayRef = this.#overlay.create({\n\t\t\tscrollStrategy: this.#overlay.scrollStrategies.close(),\n\t\t\tdisposeOnNavigation: true,\n\t\t});\n\t\tconst describedBy = this.ariaDescribedBy();\n\t\tif (describedBy !== null) {\n\t\t\tthis.overlayRef.overlayElement.id = describedBy;\n\t\t}\n\t}\n\n\tprivate attachTooltip(): void {\n\t\t// A pending debounced 'open' is flushed when `toObservable(#realAction)` completes on\n\t\t// destroy (`debounce` re-emits the held value on completion), i.e. AFTER ngOnDestroy has\n\t\t// disposed the overlay. Opening then would recreate an overlay anchored to a detached\n\t\t// host — pinned to the viewport's top-left corner — that nothing would ever dispose.\n\t\tif (this.#destroyed || this.overlayRef?.hasAttached()) {\n\t\t\treturn;\n\t\t}\n\t\tconst position = this.legacyPositionBuilder();\n\t\tif (!this.overlayRef) {\n\t\t\tthis.overlayRef = this.#overlay.create({\n\t\t\t\tpositionStrategy: position,\n\t\t\t\tscrollStrategy: this.#overlay.scrollStrategies.close(),\n\t\t\t\tdisposeOnNavigation: true,\n\t\t\t});\n\t\t} else {\n\t\t\tthis.overlayRef.updatePositionStrategy(position);\n\t\t}\n\t\tconst portal = new ComponentPortal(LuTooltipPanelComponent);\n\t\tconst ref = this.overlayRef.attach(portal);\n\t\tref.instance.enterDelay.set(this.tooltipEnterDelay());\n\t\tposition.positionChanges\n\t\t\t.pipe(\n\t\t\t\ttakeUntilDestroyed(this.#destroyRef),\n\t\t\t\tmap(({ connectionPair }) => connectionPair),\n\t\t\t\tstartWith(position.positions[0]),\n\t\t\t)\n\t\t\t.subscribe(({ overlayX, overlayY }) => {\n\t\t\t\tref.instance.setPanelPosition(overlayX, overlayY);\n\t\t\t});\n\n\t\tif (this.tooltipContent()) {\n\t\t\tthis.#effectRef = ɵeffectWithDeps(\n\t\t\t\t[this.tooltipContent],\n\t\t\t\t(content) => {\n\t\t\t\t\tref.instance.content.set(content);\n\t\t\t\t},\n\t\t\t\t{ injector: this.#injector },\n\t\t\t);\n\t\t} else if (this.tooltipWhenEllipsis()) {\n\t\t\tref.instance.content.set(this.#host.nativeElement.innerText);\n\t\t} else {\n\t\t\tref.instance.content.set('');\n\t\t}\n\n\t\tref.instance.mouseLeave$.pipe(takeUntilDestroyed(ref.instance.destroyRef)).subscribe(() => this.#action.set('close'));\n\t\tref.instance.mouseEnter$.pipe(takeUntilDestroyed(ref.instance.destroyRef)).subscribe(() => this.#action.set('open'));\n\t}\n\n\tprivate closeTooltip(): void {\n\t\tif (this.overlayRef) {\n\t\t\tthis.overlayRef.detach();\n\t\t}\n\t\tthis.#effectRef?.destroy();\n\t}\n\n\tprivate setAccessibilityProperties(tabindex: number | null): void {\n\t\tif (tabindex === null) {\n\t\t\tthis.#renderer.removeAttribute(this.#host.nativeElement, 'tabindex');\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.tooltipWhenEllipsis() && !this.tooltipOnlyForDisplay()) {\n\t\t\tthis.prepareOverlay();\n\t\t}\n\n\t\tconst tag = this.#host.nativeElement.tagName.toLowerCase();\n\t\tconst nativelyFocusableTags = ['a', 'button', 'input', 'select', 'textarea'];\n\t\tconst isNativelyFocusableTag = nativelyFocusableTags.includes(tag);\n\n\t\tconst hasATabIndex = this.#host.nativeElement.getAttribute('tabindex') !== null;\n\n\t\tif (!isNativelyFocusableTag && !hasATabIndex) {\n\t\t\tthis.#renderer.setAttribute(this.#host.nativeElement, 'tabindex', tabindex.toString());\n\t\t}\n\n\t\tif (!isNativelyFocusableTag && !this.tooltipWhenEllipsis() && !this.tooltipOnlyForDisplay()) {\n\t\t\tthis.#renderer.setAttribute(this.#host.nativeElement, 'role', 'button');\n\t\t}\n\t}\n\n\t// Legacy position builder to handle existing position API\n\tprivate legacyPositionBuilder(): FlexibleConnectedPositionStrategy {\n\t\tconst connectionPosition: OriginConnectionPosition = {\n\t\t\toriginX: 'start',\n\t\t\toriginY: 'top',\n\t\t};\n\n\t\t// Position\n\t\tconst position = this.tooltipPosition();\n\t\tif (position === 'above') {\n\t\t\tconnectionPosition.originY = 'top';\n\t\t} else if (position === 'below') {\n\t\t\tconnectionPosition.originY = 'bottom';\n\t\t} else if (position === 'before') {\n\t\t\tconnectionPosition.originX = 'start';\n\t\t} else if (position === 'after') {\n\t\t\tconnectionPosition.originX = 'end';\n\t\t}\n\n\t\t// Alignment\n\t\tif (position === 'above' || position === 'below') {\n\t\t\tconnectionPosition.originX = 'center';\n\t\t} else {\n\t\t\tconnectionPosition.originY = 'center';\n\t\t}\n\n\t\tconst overlayPosition: OverlayConnectionPosition = {\n\t\t\toverlayX: 'start',\n\t\t\toverlayY: 'top',\n\t\t};\n\n\t\tif (position === 'above' || position === 'below') {\n\t\t\toverlayPosition.overlayX = connectionPosition.originX;\n\t\t\toverlayPosition.overlayY = position === 'above' ? 'bottom' : 'top';\n\t\t} else {\n\t\t\toverlayPosition.overlayX = position === 'before' ? 'end' : 'start';\n\t\t\toverlayPosition.overlayY = connectionPosition.originY;\n\t\t}\n\n\t\treturn this.#overlay\n\t\t\t.position()\n\t\t\t.flexibleConnectedTo(this.#resolveAnchor())\n\t\t\t.withViewportMargin(getPushPanelViewportMargin(this.#host.nativeElement))\n\t\t\t.withPositions([\n\t\t\t\t{\n\t\t\t\t\toriginX: connectionPosition.originX,\n\t\t\t\t\toriginY: connectionPosition.originY,\n\t\t\t\t\toverlayX: overlayPosition.overlayX,\n\t\t\t\t\toverlayY: overlayPosition.overlayY,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\toriginX: connectionPosition.originX,\n\t\t\t\t\toriginY: this.invertVerticalPos(connectionPosition.originY),\n\t\t\t\t\toverlayX: overlayPosition.overlayX,\n\t\t\t\t\toverlayY: this.invertVerticalPos(overlayPosition.overlayY),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\toriginX: this.invertHorizontalPos(connectionPosition.originX),\n\t\t\t\t\toriginY: connectionPosition.originY,\n\t\t\t\t\toverlayX: this.invertHorizontalPos(overlayPosition.overlayX),\n\t\t\t\t\toverlayY: overlayPosition.overlayY,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\toriginX: this.invertHorizontalPos(connectionPosition.originX),\n\t\t\t\t\toriginY: this.invertVerticalPos(connectionPosition.originY),\n\t\t\t\t\toverlayX: this.invertHorizontalPos(overlayPosition.overlayX),\n\t\t\t\t\toverlayY: this.invertVerticalPos(overlayPosition.overlayY),\n\t\t\t\t},\n\t\t\t]);\n\t}\n\n\t#resolveAnchor(): FlexibleConnectedPositionStrategyOrigin {\n\t\tconst anchor = this.tooltipAnchor();\n\n\t\tif (isNil(anchor)) {\n\t\t\treturn this.#host;\n\t\t} else if ('getElementRef' in anchor) {\n\t\t\treturn anchor.getElementRef();\n\t\t} else {\n\t\t\treturn anchor;\n\t\t}\n\t}\n\n\tprivate invertVerticalPos(y: VerticalConnectionPos): VerticalConnectionPos {\n\t\tif (y === 'top') {\n\t\t\treturn 'bottom';\n\t\t} else if (y === 'bottom') {\n\t\t\treturn 'top';\n\t\t}\n\t\treturn y;\n\t}\n\n\tprivate invertHorizontalPos(x: HorizontalConnectionPos): HorizontalConnectionPos {\n\t\tif (x === 'end') {\n\t\t\treturn 'start';\n\t\t} else if (x === 'start') {\n\t\t\treturn 'end';\n\t\t}\n\t\treturn x;\n\t}\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { NgModule } from '@angular/core';\nimport { LuTooltipTriggerDirective } from './tooltip-trigger.directive';\n\n/**\n * @deprecated use `LuTooltipTriggerDirective` instead\n */\n@NgModule({\n\timports: [LuTooltipTriggerDirective, OverlayModule],\n\texports: [LuTooltipTriggerDirective],\n})\nexport class LuTooltipTriggerModule {}\n","import { NgModule } from '@angular/core';\nimport { LuTooltipPanelComponent } from './panel/index';\nimport { LuTooltipTriggerModule } from './trigger/index';\n\n/**\n * @deprecated use `LuTooltipTriggerDirective, LuTooltipPanelComponent` instead\n */\n@NgModule({\n\timports: [LuTooltipTriggerModule, LuTooltipPanelComponent],\n\texports: [LuTooltipTriggerModule, LuTooltipPanelComponent],\n})\nexport class LuTooltipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ɵeffectWithDeps"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lucca/prisme",
|
|
3
|
-
"version": "22.0.
|
|
3
|
+
"version": "22.0.1-rc.1",
|
|
4
4
|
"description": "Design system made by @lucca",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
"@angular/cdk": "^22.0.0",
|
|
22
22
|
"@angular/animations": "^22.0.0",
|
|
23
23
|
"@types/dompurify": "^3.0.0",
|
|
24
|
-
"@lucca-front/icons": "22.0.
|
|
25
|
-
"@lucca-front/scss": "22.0.
|
|
24
|
+
"@lucca-front/icons": "22.0.1-rc.1",
|
|
25
|
+
"@lucca-front/scss": "22.0.1-rc.1",
|
|
26
26
|
"isomorphic-dompurify": "^2.11.0",
|
|
27
27
|
"date-fns": "^3.6.0",
|
|
28
28
|
"rxjs": "^7.8.0"
|
|
@@ -8,7 +8,7 @@ type IconSize = (typeof ICON_SIZE)[number];
|
|
|
8
8
|
declare const ICON_COLOR: readonly ["product", "error", "warning", "success", "light", "placeholder", "inherit"];
|
|
9
9
|
type IconColor = (typeof ICON_COLOR)[number];
|
|
10
10
|
|
|
11
|
-
type LuccaIcon = 'app' | 'apps' | 'nineTiles' | 'mosaic' | 'tiles' | 'appWidget' | 'arrowBackward' | 'backward' | 'arrowBottom' | 'arrowFullSouth' | 'arrowBottomLeft' | 'arrowBottomRight' | 'arrowCenterReduce' | 'arrowChevronBottom' | 'arrowSouth' | 'southArrow' | 'southThinArrow' | 'chevronSouth' | 'chevronBottom' | 'arrowChevronLeft' | 'arrowWest' | 'westArrow' | 'westThinArrow' | 'chevronWest' | 'chevronLeft' | 'arrowChevronRight' | 'arrowEast' | 'eastArrow' | 'eastThinArrow' | 'chevronEast' | 'chevronRight' | 'arrowChevronTop' | 'arrowNorth' | 'northArrow' | 'northThinArrow' | 'chevronNorth' | 'chevronTop' | 'arrowCorner' | 'distribute' | 'arrowCornerExpand' | 'arrowCurvedDownRight' | '
|
|
11
|
+
type LuccaIcon = 'app' | 'apps' | 'nineTiles' | 'mosaic' | 'tiles' | 'appWidget' | 'arrowBackward' | 'backward' | 'arrowBottom' | 'arrowFullSouth' | 'arrowBottomLeft' | 'arrowBottomRight' | 'arrowCenterReduce' | 'arrowChevronBottom' | 'arrowSouth' | 'southArrow' | 'southThinArrow' | 'chevronSouth' | 'chevronBottom' | 'arrowChevronLeft' | 'arrowWest' | 'westArrow' | 'westThinArrow' | 'chevronWest' | 'chevronLeft' | 'arrowChevronRight' | 'arrowEast' | 'eastArrow' | 'eastThinArrow' | 'chevronEast' | 'chevronRight' | 'arrowChevronTop' | 'arrowNorth' | 'northArrow' | 'northThinArrow' | 'chevronNorth' | 'chevronTop' | 'arrowCorner' | 'distribute' | 'arrowCornerExpand' | 'arrowCurvedDownRight' | 'arrowDownload' | 'download' | 'arrowExternal' | 'outside' | 'arrowForward' | 'arrowDouble' | 'forward' | 'arrowLeft' | 'arrowFullWest' | 'arrowLineBottom' | 'arrowLineTop' | 'arrowLogin' | 'login' | 'arrowLogout' | 'logout' | 'arrowOppositeLeftRight' | 'arrowOppositeHorizontal' | 'swap' | 'arrowOppositeRightLeft' | 'arrowOppositeTopBottom' | 'arrowOppositeVertical' | 'creditDebit' | 'arrowRedo' | 'arrowReply' | 'reply' | 'arrowReset' | 'refresh' | 'update' | 'arrowRight' | 'arrowFullEast' | 'arrowSync' | 'sync' | 'arrowSyncStrikethrough' | 'syncDisabled' | 'arrowTop' | 'arrowFullNorth' | 'arrowTopLeft' | 'arrowTopRight' | 'arrowUndo' | 'arrowUnfoldLess' | 'collapse' | 'arrowUnfoldMore' | 'expand' | 'arrowUpload' | 'upload' | 'cloudUpload' | 'bell' | 'notification' | 'bellStrikethrough' | 'book' | 'bookmark' | 'bookmarkFilled' | 'boxArchive' | 'archive' | 'boxUnarchive' | 'unarchive' | 'branch' | 'bubbleAnswer' | 'answer' | 'bubbleConversation' | 'messenger' | 'bubbleSpeech' | 'chat' | 'talk' | 'dialog' | 'bubbleSpeechStrikethrough' | 'bubbleStars' | 'buildingCompany' | 'building' | 'establishment' | 'buildingHouse' | 'house' | 'home' | 'buildingHouseFilled' | 'houseFilled' | 'homeFill' | 'buildingHouseStarred' | 'houseStarred' | 'homeStarred' | 'buildingStore' | 'store' | 'bulb' | 'lightBulb' | 'calendarChecked' | 'calendarDate' | 'calendar' | 'planning' | 'calendarEdit' | 'planningEdit' | 'calendarPlanning' | 'payPeriod' | 'calendarSettings' | 'planningManage' | 'calendarStrikethrough' | 'calendarOff' | 'capCrown' | 'crown' | 'capGraduate' | 'graduate' | 'school' | 'certificationFailed' | 'certifKo' | 'certificationSuccess' | 'certifOk' | 'certificationWaiting' | 'certifWaiting' | 'chartDonut' | 'donut' | 'donutChart' | 'chartFlow' | 'familyTree' | 'orgTree' | 'chartHorizontalBar' | 'horizontalBarChart' | 'chartLevels' | 'level' | 'chartPie' | 'dashboard' | 'chartSpider' | 'chartTree' | 'chartVerticalBar' | 'analytics' | 'charts' | 'clipboard' | 'paste' | 'completion' | 'cornersFocus' | 'cornersFullscreenExit' | 'fullscreenExit' | 'cornersFullscreenOpen' | 'fullscreen' | 'dataTable' | 'table' | 'database' | 'databaseArrow' | 'apiSync' | 'deviceCamera' | 'camera' | 'deviceComputer' | 'computer' | 'deviceLaptop' | 'laptop' | 'deviceMobile' | 'deviceMouse' | 'computerMouse' | 'devicePrinter' | 'print' | 'deviceTablet' | 'deviceVideo' | 'dotsDrag' | 'drag' | 'emojiSmile' | 'eye' | 'watch' | 'eyeStrikethrough' | 'unwatch' | 'fileContract' | 'contract' | 'fileCopy' | 'copy' | 'fileDocument' | 'file' | 'files' | 'fileExport' | 'fileFolder' | 'folder' | 'fileImport' | 'importDirty' | 'importPristine' | 'filePlus' | 'fileSign' | 'sign' | 'filtersDescending' | 'filterAbstract' | 'filtersFunnel' | 'funnel' | 'filter' | 'filtersSort' | 'sort' | 'reorder' | 'flag' | 'floppyDiskSave' | 'save' | 'foodBirthdayCake' | 'birthday' | 'foodBobun' | 'lunchAlternative' | 'foodBurger' | 'lunch' | 'foodChefHat' | 'restaurant' | 'foodClocheDish' | 'diner' | 'foodCocktail' | 'drink' | 'foodCoffee' | 'coffee' | 'breaktime' | 'foodCroissant' | 'breakfast' | 'foodCutlery' | 'meal' | 'foodSandwich' | 'snack' | 'formatBulletedList' | 'list' | 'formatClipperAttachment' | 'attach' | 'formatCornerUpLeft' | 'formatUndo' | 'formatCornerUpRight' | 'formatRedo' | 'formatLink' | 'formatNumberedList' | 'formatListNb' | 'formatText' | 'formatJustify' | 'formatTextBold' | 'formatBold' | 'formatTextClear' | 'formatClear' | 'formatTextItalic' | 'formatItalic' | 'formatTextSize' | 'formatSize' | 'formatTextStrikethrough' | 'formatStrikethrough' | 'formatTextUnderline' | 'formatUnderlined' | 'formatUnlink' | 'unlink' | 'gift' | 'present' | 'heart' | 'heartFilled' | 'heartStrikethrough' | 'brokenHeart' | 'hotelBed' | 'bed' | 'hotel' | 'hotelHanger' | 'hanger' | 'hotelIron' | 'iron' | 'pressing' | 'hotelLuggage' | 'luggage' | 'jigsawPuzzle' | 'puzzle' | 'journey' | 'milestone' | 'jumpingCc' | 'lucca' | 'laboratoryTestFlask' | 'test' | 'layers' | 'floor' | 'listChecked' | 'listChecklist' | 'listTodo' | 'listMultipleChoices' | 'lockClose' | 'lock' | 'lockKey' | 'key' | 'lockOpen' | 'unlock' | 'mailEnvelope' | 'mail' | 'mailMailbox' | 'mailbox' | 'stamp' | 'postage' | 'mailPaperPlane' | 'send' | 'mapGlobe' | 'globe' | 'mapLocation' | 'location' | 'mapPin' | 'pin' | 'mapPlan' | 'mapTripStep' | 'mathsDivide' | 'divide' | 'mathsEquals' | 'mathsMinus' | 'minus' | 'partial' | 'minimize' | 'mathsMultiplicate' | 'close' | 'thinCross' | 'cross' | 'crossBold' | 'mathsNotEqual' | 'mathsPlus' | 'plus' | 'plusBold' | 'medicalDoctor' | 'menuBurger' | 'menu' | 'hamburgerMenu' | 'menuDots' | 'menuEllipsis' | 'ellipsis' | 'moneyBag' | 'moneybag' | 'moneyBagStrikethrough' | 'noMoney' | 'moneyBankImport' | 'moneyBanknoteStrikethrough' | 'moneyBill' | 'bill' | 'moneyBuildingBank' | 'bank' | 'moneyCardCheck' | 'moneyCardImport' | 'importCb' | 'moneyCheck' | 'moneyCoins' | 'money' | 'payment' | 'moneyCurrencyDollar' | 'dollar' | 'moneyCurrencyEuro' | 'euro' | 'moneyIban' | 'moneyPaymentCard' | 'bankingCard' | 'moneyPaymentCards' | 'moneyPiggyBank' | 'piggyBank' | 'moneyWallet' | 'wallet' | 'officeBriefcase' | 'officeChair' | 'chair' | 'officeCompass' | 'compass' | 'officeElectricalPlug' | 'officeFirstAid' | 'officeMicrophone' | 'officePen' | 'edit' | 'editMini' | 'officePenStar' | 'officePenWriting' | 'editWrite' | 'editFrame' | 'officePhone' | 'telephone' | 'officeScissors' | 'cut' | 'officeSupplies' | 'supplies' | 'peopleAccessibility' | 'peopleAdd' | 'userAdd' | 'adduser' | 'peopleArrowUp' | 'peopleEdit' | 'peopleFolder' | 'peopleGroup' | 'userGroup' | 'group' | 'peopleHouse' | 'peopleId' | 'identityCard' | 'userFile' | 'dossierRh' | 'peopleLocked' | 'userRoles' | 'peoplePerson' | 'user' | 'face' | 'peopleRemove' | 'userRemove' | 'peopleSwitch' | 'send2user' | 'userSendTo' | 'peopleTeacher' | 'teacher' | 'pictureGallery' | 'gallery' | 'pictureImage' | 'image' | 'picturePalette' | 'palette' | 'playerPauseCircle' | 'pause' | 'playerPlay' | 'playFull' | 'playerPlayCircle' | 'play' | 'playerRecording' | 'playerStopCircle' | 'stop' | 'priceTag' | 'pricetag' | 'priorityHigh' | 'high' | 'priorityHigher' | 'higher' | 'priorityHighest' | 'highest' | 'priorityLow' | 'low' | 'priorityLower' | 'lower' | 'priorityLowest' | 'lowest' | 'priorityMedium' | 'medium' | 'rotationLeft' | 'rotate' | 'rotationRight' | 'rotateRight' | 'searchMagnifyingGlass' | 'search' | 'searchZoomIn' | 'searchZoomOut' | 'settingsEqualizer' | 'sliders' | 'settingsGear' | 'settings' | 'settingsTools' | 'tools' | 'share' | 'signAt' | 'signBan' | 'forbidden' | 'signCancel' | 'cancel' | 'signCheckbox' | 'signClose' | 'signConfirm' | 'confirm' | 'tick' | 'tickThin' | 'tickBold' | 'signConstruction' | 'build' | 'signDecimal' | 'signDiscount' | 'discount' | 'signError' | 'error' | 'signHelp' | 'help' | 'helpOutline' | 'signInfo' | 'info' | 'signParking' | 'parking' | 'signRating' | 'signShieldCancel' | 'signShieldError' | 'signShieldSuccess' | 'signShieldWarning' | 'signSimpleChoice' | 'signSuccess' | 'success' | 'signTag' | 'signTranslation' | 'signWarning' | 'warning' | 'signWebhook' | 'soundMegaphone' | 'star' | 'unstared' | 'starFilled' | 'target' | 'thumbDown' | 'thumbDownFilled' | 'thumbUp' | 'thumbUpFilled' | 'thumbnail' | 'timeAlarm' | 'alarm' | 'timeClock' | 'clock' | 'timeFuture' | 'postpone' | 'timeHourglass' | 'timer' | 'timePast' | 'history' | 'timeTimer' | 'chronoOn' | 'timeTimerStrikethrough' | 'overplanned' | 'timeTimesheet' | 'timesheet' | 'transportBus' | 'bus' | 'transportCar' | 'car' | 'transportCarElectric' | 'transportCarwashStation' | 'cleanCar' | 'transportGazStation' | 'gasoline' | 'transportMotocycle' | 'transportMotocycleElectric' | 'transportPlane' | 'plane' | 'transportRocket' | 'rocket' | 'transportScooter' | 'transportScooterElectric' | 'transportSpeedometer' | 'speedometer' | 'mileage' | 'transportSubway' | 'subway' | 'transportTaxi' | 'taxi' | 'transportToll' | 'toll' | 'tollDollar' | 'tollEuro' | 'transportTrain' | 'train' | 'transportTruck' | 'truck' | 'trashDelete' | 'trash' | 'trendingGrowth' | 'evolution' | 'trendingLoss' | 'evolutionDown' | 'weatherCloudy' | 'weatherLightning' | 'weatherStars' | 'weatherStormy' | 'weatherStorm' | 'weatherSunny' | 'weatherSun' | 'weight' | 'window' | 'windowAside' | 'windowAsideLarge' | 'windowCornerBottom' | 'windowCornerTop';
|
|
12
12
|
|
|
13
13
|
declare class IconComponent {
|
|
14
14
|
/**
|
|
@@ -13,6 +13,7 @@ declare class LuTooltipPanelComponent {
|
|
|
13
13
|
readonly mouseEnter$: Subject<void>;
|
|
14
14
|
readonly mouseLeave$: Subject<void>;
|
|
15
15
|
readonly content: _angular_core.WritableSignal<string | SafeHtml>;
|
|
16
|
+
readonly enterDelay: _angular_core.WritableSignal<number>;
|
|
16
17
|
readonly contentPositionClasses: _angular_core.WritableSignal<Record<string, boolean>>;
|
|
17
18
|
setPanelPosition(posX: HorizontalConnectionPos, posY: VerticalConnectionPos): void;
|
|
18
19
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<LuTooltipPanelComponent, never>;
|
|
@@ -68,7 +69,7 @@ declare class LuTooltipTriggerDirective implements OnDestroy {
|
|
|
68
69
|
requestClose(): void;
|
|
69
70
|
ngOnDestroy(): void;
|
|
70
71
|
private prepareOverlay;
|
|
71
|
-
private
|
|
72
|
+
private attachTooltip;
|
|
72
73
|
private closeTooltip;
|
|
73
74
|
private setAccessibilityProperties;
|
|
74
75
|
private legacyPositionBuilder;
|