@taiga-ui/core 5.30.0 → 5.31.0
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/taiga-ui-core-components-button.mjs +2 -2
- package/fesm2022/taiga-ui-core-components-cell.mjs +3 -3
- package/fesm2022/taiga-ui-core-components-checkbox.mjs +2 -2
- package/fesm2022/taiga-ui-core-components-data-list.mjs +4 -4
- package/fesm2022/taiga-ui-core-components-icon.mjs +2 -2
- package/fesm2022/taiga-ui-core-components-label.mjs +3 -3
- package/fesm2022/taiga-ui-core-components-link.mjs +2 -2
- package/fesm2022/taiga-ui-core-components-notification.mjs +2 -2
- package/fesm2022/taiga-ui-core-components-radio.mjs +2 -2
- package/fesm2022/taiga-ui-core-components-root.mjs +1 -1
- package/fesm2022/taiga-ui-core-components-scrollbar.mjs +3 -3
- package/fesm2022/taiga-ui-core-components-textfield.mjs +5 -5
- package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-title.mjs +3 -3
- package/fesm2022/taiga-ui-core-directives-appearance.mjs +3 -3
- package/fesm2022/taiga-ui-core-directives-group.mjs +3 -3
- package/fesm2022/taiga-ui-core-directives-icons.mjs +3 -3
- package/fesm2022/taiga-ui-core-portals-alert.mjs +3 -3
- package/fesm2022/taiga-ui-core-portals-dialog.mjs +2 -2
- package/fesm2022/taiga-ui-core-portals-dropdown.mjs +16 -13
- package/fesm2022/taiga-ui-core-portals-dropdown.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-portals-hint.mjs +15 -9
- package/fesm2022/taiga-ui-core-portals-hint.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-portals-modal.mjs +3 -3
- package/fesm2022/taiga-ui-core-services.mjs +30 -3
- package/fesm2022/taiga-ui-core-services.mjs.map +1 -1
- package/package.json +8 -8
- package/portals/dropdown/dropdown-anchored.directive.d.ts +1 -0
- package/portals/hint/hint-anchored.directive.d.ts +1 -0
- package/services/css-zoom.service.d.ts +14 -0
- package/services/index.d.ts +1 -0
|
@@ -21,7 +21,7 @@ import { TuiHoveredService } from '@taiga-ui/cdk/directives/hovered';
|
|
|
21
21
|
import { TUI_VIEWPORT, TUI_ANCHOR_SUPPORT } from '@taiga-ui/core/tokens';
|
|
22
22
|
import { EMPTY_CLIENT_RECT } from '@taiga-ui/cdk/constants';
|
|
23
23
|
import { tuiClamp } from '@taiga-ui/cdk/utils/math';
|
|
24
|
-
import { TuiVisualViewportService, TuiPositionService } from '@taiga-ui/core/services';
|
|
24
|
+
import { TuiVisualViewportService, TuiCSSZoomService, TuiPositionService } from '@taiga-ui/core/services';
|
|
25
25
|
import { tuiAnchorDelegate } from '@taiga-ui/core/utils/dom';
|
|
26
26
|
import { DOCUMENT } from '@angular/common';
|
|
27
27
|
import { tuiIfMap, tuiTypedFromEvent, tuiZoneOptimized } from '@taiga-ui/cdk/observables';
|
|
@@ -340,12 +340,13 @@ class TuiHintAnchored {
|
|
|
340
340
|
this.el = tuiInjectElement();
|
|
341
341
|
this.hover = inject(TuiHintHover);
|
|
342
342
|
this.vvs = inject(TuiVisualViewportService);
|
|
343
|
+
this.zoom = inject(TuiCSSZoomService);
|
|
343
344
|
this.viewport = inject(TUI_VIEWPORT);
|
|
344
345
|
this.rect = inject(TuiRectAccessor);
|
|
345
346
|
this.accessor = inject(TuiPositionAccessor);
|
|
346
347
|
this.directive = inject(TuiHintDirective);
|
|
347
348
|
this.styles$ = inject(TuiPositionService).pipe(takeWhile(() => this.directive.el.isConnected &&
|
|
348
|
-
this.directive.el.getClientRects().length > 0), map((point) => this.vvs.correct(point)), takeUntilDestroyed());
|
|
349
|
+
this.directive.el.getClientRects().length > 0), map((point) => this.zoom.descale(this.vvs.correct(point))), takeUntilDestroyed());
|
|
349
350
|
this.anchored = inject(TUI_ANCHOR_SUPPORT) &&
|
|
350
351
|
'position' in this.accessor &&
|
|
351
352
|
this.viewport.type === 'window';
|
|
@@ -366,21 +367,24 @@ class TuiHintAnchored {
|
|
|
366
367
|
}
|
|
367
368
|
update(left, top) {
|
|
368
369
|
const { clientHeight, clientWidth } = this.el;
|
|
369
|
-
const
|
|
370
|
-
if (
|
|
370
|
+
const clientRect = this.rect.getClientRect();
|
|
371
|
+
if (clientRect === EMPTY_CLIENT_RECT || !clientHeight || !clientWidth) {
|
|
371
372
|
return;
|
|
372
373
|
}
|
|
373
|
-
const
|
|
374
|
+
const rect = this.zoom.descale(clientRect);
|
|
375
|
+
const viewport = this.zoom.descale(this.viewport.getClientRect());
|
|
374
376
|
const max = Math.max(GAP, viewport.width + viewport.left - clientWidth - GAP);
|
|
375
377
|
const safeLeft = tuiClamp(Math.max(GAP, left), viewport.left + GAP, max);
|
|
376
378
|
const startX = Math.round(safeLeft) === Math.round(rect.left);
|
|
377
379
|
const startY = Math.round(top) === Math.round(rect.top);
|
|
378
380
|
const endX = Math.round(safeLeft + clientWidth) === Math.round(rect.right);
|
|
379
381
|
const endY = Math.round(top + clientHeight) === Math.round(rect.bottom);
|
|
380
|
-
const [
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
]);
|
|
382
|
+
const [centerX, centerY] = this.zoom.descale(this.vvs.correct([
|
|
383
|
+
clientRect.left + clientRect.width / 2,
|
|
384
|
+
clientRect.top + clientRect.height / 2,
|
|
385
|
+
]));
|
|
386
|
+
const beakLeft = centerX - safeLeft;
|
|
387
|
+
const beakTop = centerY - top;
|
|
384
388
|
/* eslint-disable no-nested-ternary */
|
|
385
389
|
const x = startX ? ARROW_OFFSET : endX ? clientWidth - ARROW_OFFSET : beakLeft;
|
|
386
390
|
const y = startY ? ARROW_OFFSET : endY ? clientHeight - ARROW_OFFSET : beakTop;
|
|
@@ -397,6 +401,7 @@ class TuiHintAnchored {
|
|
|
397
401
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.25", type: TuiHintAnchored, isStandalone: true, providers: [
|
|
398
402
|
TuiPositionService,
|
|
399
403
|
TuiHoveredService,
|
|
404
|
+
TuiCSSZoomService,
|
|
400
405
|
tuiProvideAccessor(TuiPositionAccessor, 'hint'),
|
|
401
406
|
tuiProvideAccessor(TuiRectAccessor, 'hint'),
|
|
402
407
|
], ngImport: i0 }); }
|
|
@@ -407,6 +412,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
|
|
|
407
412
|
providers: [
|
|
408
413
|
TuiPositionService,
|
|
409
414
|
TuiHoveredService,
|
|
415
|
+
TuiCSSZoomService,
|
|
410
416
|
tuiProvideAccessor(TuiPositionAccessor, 'hint'),
|
|
411
417
|
tuiProvideAccessor(TuiRectAccessor, 'hint'),
|
|
412
418
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-portals-hint.mjs","sources":["../../../projects/core/portals/hint/hint.providers.ts","../../../projects/core/portals/hint/hint-anchor.directive.ts","../../../projects/core/portals/hint/hint-driver.directive.ts","../../../projects/core/portals/hint/hint-options.directive.ts","../../../projects/core/portals/hint/hint-hover.directive.ts","../../../projects/core/portals/hint/hint-position.directive.ts","../../../projects/core/portals/hint/hint.directive.ts","../../../projects/core/portals/hint/hint-anchored.directive.ts","../../../projects/core/portals/hint/hint-pointer.directive.ts","../../../projects/core/portals/hint/hint-unstyled.component.ts","../../../projects/core/portals/hint/hint.component.ts","../../../projects/core/portals/hint/hint-describe.directive.ts","../../../projects/core/portals/hint/hint-host.directive.ts","../../../projects/core/portals/hint/hint-manual.directive.ts","../../../projects/core/portals/hint/hint-overflow.directive.ts","../../../projects/core/portals/hint/hint.ts","../../../projects/core/portals/hint/taiga-ui-core-portals-hint.ts"],"sourcesContent":["import {InjectionToken, type Type} from '@angular/core';\n\nimport {TuiHintComponent} from './hint.component';\n\n/**\n * A component to display a hint\n */\nexport const TUI_HINT_COMPONENT = new InjectionToken<Type<unknown>>(\n ngDevMode ? 'TUI_HINT_COMPONENT' : '',\n {factory: () => TuiHintComponent},\n);\n","import {Directive, ElementRef, InjectionToken} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiGenerateId} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiAsRectAccessor, TuiRectAccessor} from '@taiga-ui/core/classes';\n\nexport const TUI_HINT_ANCHOR = new InjectionToken<ElementRef<HTMLElement>>(\n ngDevMode ? 'TUI_HINT_ANCHOR' : '',\n);\n\n@Directive({\n providers: [\n tuiAsRectAccessor(TuiHintAnchor),\n tuiProvide(TUI_HINT_ANCHOR, ElementRef),\n ],\n host: {\n '[attr.data-tui-anchor]': 'anchor',\n '[style.anchor-name]': 'anchor',\n },\n})\nexport class TuiHintAnchor extends TuiRectAccessor {\n protected readonly el = tuiInjectElement();\n protected readonly anchor = `--${tuiGenerateId()}`;\n\n public readonly type = 'hint';\n\n public getClientRect(): DOMRect {\n return this.el.getBoundingClientRect();\n }\n}\n","import {Directive} from '@angular/core';\nimport {TuiDriverDirective} from '@taiga-ui/core/classes';\n\n@Directive()\nexport class TuiHintDriver extends TuiDriverDirective {\n public readonly type = 'hint';\n}\n","import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiAppearanceOptions} from '@taiga-ui/core/directives/appearance';\n\nexport type TuiHintDirection =\n | 'bottom-end'\n | 'bottom-start'\n | 'bottom'\n | 'end-bottom'\n | 'end-top'\n | 'end'\n | 'start-bottom'\n | 'start-top'\n | 'start'\n | 'top-end'\n | 'top-start'\n | 'top';\n\nexport const TUI_HINT_DIRECTIONS: readonly TuiHintDirection[] = [\n 'bottom-start',\n 'bottom',\n 'bottom-end',\n 'top-start',\n 'top',\n 'top-end',\n 'start-top',\n 'start',\n 'start-bottom',\n 'end-top',\n 'end',\n 'end-bottom',\n];\n\n/** TODO: remove optionality in v6 */\nexport interface TuiHintOptions extends TuiAppearanceOptions {\n readonly direction: TuiHintDirection | TuiHintDirection[];\n readonly centered?: boolean;\n readonly hideDelay: number;\n readonly icon: string;\n readonly showDelay: number;\n}\n\n/** Default values for hint options */\nexport const TUI_HINT_DEFAULT_OPTIONS = {\n direction: 'bottom-start',\n centered: true,\n showDelay: 500,\n hideDelay: 200,\n appearance: '',\n /** TODO @deprecated use {@link TUI_TOOLTIP_OPTIONS} instead **/\n icon: '@tui.circle-help',\n} as const;\n\n/**\n * Default parameters for hint directive\n */\nexport const [TUI_HINT_OPTIONS, tuiHintOptionsProvider] =\n tuiCreateOptions<TuiHintOptions>(TUI_HINT_DEFAULT_OPTIONS);\n","import {Directive, inject, input} from '@angular/core';\nimport {WA_IS_MOBILE} from '@ng-web-apis/platform';\nimport {TuiHoveredService} from '@taiga-ui/cdk/directives/hovered';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiAsDriver, TuiDriver} from '@taiga-ui/core/classes';\nimport {tuiIsObscured} from '@taiga-ui/core/utils/miscellaneous';\nimport {\n delay,\n filter,\n map,\n merge,\n of,\n repeat,\n Subject,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs';\n\nimport {TUI_HINT_OPTIONS} from './hint-options.directive';\n\nconst MOBILE_HIDE_DELAY_MS = 100;\n\n@Directive({\n providers: [tuiAsDriver(TuiHintHover), TuiHoveredService],\n exportAs: 'tuiHintHover',\n host: {'(click)': 'onClick()'},\n})\nexport class TuiHintHover extends TuiDriver {\n private readonly isMobile = inject(WA_IS_MOBILE);\n private readonly hovered$ = inject(TuiHoveredService);\n private readonly options = inject(TUI_HINT_OPTIONS);\n private visible = false;\n private readonly toggle$ = new Subject<boolean>();\n private readonly stream$ = merge(\n this.toggle$.pipe(\n switchMap((show) =>\n this.isMobile\n ? of(show).pipe(delay(show ? 0 : MOBILE_HIDE_DELAY_MS))\n : of(show).pipe(delay(show ? 0 : this.hideDelay())),\n ),\n takeUntil(this.hovered$),\n repeat(),\n ),\n this.hovered$.pipe(\n switchMap((show) =>\n this.isMobile\n ? of(show).pipe(\n filter(() => !show),\n delay(0),\n )\n : of(show).pipe(delay(show ? this.showDelay() : this.hideDelay())),\n ),\n takeUntil(this.toggle$),\n repeat(),\n ),\n ).pipe(\n filter(() => this.enabled),\n map(\n (value) =>\n value &&\n (this.el.hasAttribute('tuiHintPointer') ||\n !tuiIsObscured(this.el, 'tui-popups > :not(tui-modal)')),\n ),\n tap((visible) => {\n this.visible = visible;\n }),\n );\n\n private readonly parent = inject(TuiHintHover, {\n optional: true,\n skipSelf: true,\n });\n\n protected readonly el = tuiInjectElement();\n\n public readonly showDelay = input(this.options.showDelay, {\n alias: 'tuiHintShowDelay',\n });\n\n public readonly hideDelay = input(this.options.hideDelay, {\n alias: 'tuiHintHideDelay',\n });\n\n public readonly type = 'hint';\n public enabled = true;\n\n constructor() {\n super((subscriber) => this.stream$.subscribe(subscriber));\n }\n\n public toggle(visible = !this.visible): void {\n this.toggle$.next(visible);\n this.parent?.toggle(visible);\n }\n\n public close(): void {\n this.toggle$.next(false);\n }\n\n /**\n * Synthesized `mouseenter` is not fired again until another element is tapped, so showing on mobile\n * cannot rely on it.\n */\n protected onClick(): void {\n if (this.isMobile) {\n this.toggle();\n }\n }\n}\n","import {Directive, inject, input} from '@angular/core';\nimport {outputFromObservable} from '@angular/core/rxjs-interop';\nimport {WA_IS_MOBILE} from '@ng-web-apis/platform';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {\n tuiAsPositionAccessor,\n tuiInjectAccessor,\n TuiPositionAccessor,\n TuiRectAccessor,\n} from '@taiga-ui/core/classes';\nimport {TUI_VIEWPORT} from '@taiga-ui/core/tokens';\nimport {type TuiPoint} from '@taiga-ui/core/types';\nimport {distinctUntilChanged, Subject} from 'rxjs';\n\nimport {\n TUI_HINT_DIRECTIONS,\n TUI_HINT_OPTIONS,\n type TuiHintDirection,\n} from './hint-options.directive';\n\nconst GAP = 8;\nconst ARROW_OFFSET = 22;\nconst TOP = 1;\nconst LEFT = 0;\n\n@Directive({providers: [tuiAsPositionAccessor(TuiHintPosition)]})\nexport class TuiHintPosition extends TuiPositionAccessor {\n private readonly el = tuiInjectElement();\n private readonly viewport = inject(TUI_VIEWPORT);\n private readonly options = inject(TUI_HINT_OPTIONS);\n private readonly directionChange = new Subject<TuiHintDirection>();\n private readonly accessor = tuiInjectAccessor(TuiRectAccessor, 'hint');\n private readonly points: Record<TuiHintDirection, [number, number]> =\n TUI_HINT_DIRECTIONS.reduce(\n (acc, direction) => ({...acc, [direction]: [0, 0]}),\n {} as Record<TuiHintDirection, [number, number]>,\n );\n\n public readonly direction = input(this.options.direction, {\n alias: 'tuiHintDirection',\n });\n\n public readonly offset = input(inject(WA_IS_MOBILE) ? 16 : 8, {\n alias: 'tuiHintOffset',\n });\n\n public readonly centered = input(this.options.centered, {alias: 'tuiHintCentered'});\n\n public readonly tuiHintDirectionChange = outputFromObservable(\n this.directionChange.pipe(distinctUntilChanged()),\n );\n\n public readonly type = 'hint';\n\n public getPosition({width, height}: DOMRect): TuiPoint {\n const direction = this.direction();\n const rect = this.accessor.getClientRect();\n const leftCenter = rect.left + rect.width / 2;\n const topCenter = rect.top + rect.height / 2;\n const rtl = this.el.matches('[dir=\"rtl\"] :scope');\n const narrow = rect.width < ARROW_OFFSET * 2 || this.centered();\n const short = rect.height < ARROW_OFFSET * 2 || this.centered();\n const start = narrow ? leftCenter - ARROW_OFFSET : rect.left;\n const end = narrow ? leftCenter - width + ARROW_OFFSET : rect.right - width;\n const top = short ? topCenter - ARROW_OFFSET : rect.top;\n const bottom = short ? topCenter - height + ARROW_OFFSET : rect.bottom - height;\n\n this.points['top-start'][TOP] = rect.top - height - this.offset();\n this.points['top-start'][LEFT] = this.centered() ? end : start;\n this.points.top[TOP] = this.points['top-start'][TOP];\n this.points.top[LEFT] = leftCenter - width / 2;\n this.points['top-end'][TOP] = this.points['top-start'][TOP];\n this.points['top-end'][LEFT] = this.centered() ? start : end;\n\n this.points['bottom-start'][TOP] = rect.bottom + this.offset();\n this.points['bottom-start'][LEFT] = this.points['top-start'][LEFT];\n this.points.bottom[TOP] = this.points['bottom-start'][TOP];\n this.points.bottom[LEFT] = this.points.top[LEFT];\n this.points['bottom-end'][TOP] = this.points['bottom-start'][TOP];\n this.points['bottom-end'][LEFT] = this.points['top-end'][LEFT];\n\n this.points['start-top'][TOP] = this.centered() ? bottom : top;\n this.points['start-top'][LEFT] = rect.left - width - this.offset();\n this.points.start[TOP] = topCenter - height / 2;\n this.points.start[LEFT] = this.points['start-top'][LEFT];\n this.points['start-bottom'][TOP] = this.centered() ? top : bottom;\n this.points['start-bottom'][LEFT] = this.points['start-top'][LEFT];\n\n this.points['end-top'][TOP] = this.points['start-top'][TOP];\n this.points['end-top'][LEFT] = rect.right + this.offset();\n this.points.end[TOP] = this.points.start[TOP];\n this.points.end[LEFT] = this.points['end-top'][LEFT];\n this.points['end-bottom'][TOP] = this.points['start-bottom'][TOP];\n this.points['end-bottom'][LEFT] = this.points['end-top'][LEFT];\n\n const array = Array.isArray(direction) ? direction : [direction];\n const priority = array.map((direction) => adjust(direction, rtl));\n\n const updated =\n priority\n .concat(TUI_HINT_DIRECTIONS)\n .find((dir) => this.checkPosition(this.points[dir], width, height)) ||\n this.fallback;\n\n this.directionChange.next(adjust(updated, rtl));\n\n return this.points[updated];\n }\n\n private get fallback(): TuiHintDirection {\n return this.points.top[TOP] >\n this.viewport.getClientRect().bottom - this.points.bottom[TOP]\n ? 'top'\n : 'bottom';\n }\n\n private checkPosition([left, top]: TuiPoint, width: number, height: number): boolean {\n const viewport = this.viewport.getClientRect();\n\n return (\n top > viewport.top + GAP &&\n left > viewport.left + GAP &&\n top + height < viewport.bottom - GAP &&\n left + width < viewport.right - GAP\n );\n }\n}\n\nfunction adjust(direction: TuiHintDirection, rtl: boolean): TuiHintDirection {\n if (rtl && direction.includes('left')) {\n return direction.replace('left', 'right') as TuiHintDirection;\n }\n\n return rtl && direction.includes('right')\n ? (direction.replace('right', 'left') as TuiHintDirection)\n : direction;\n}\n","import {\n type ComponentRef,\n Directive,\n inject,\n INJECTOR,\n input,\n type OnChanges,\n type OnDestroy,\n signal,\n} from '@angular/core';\nimport {outputFromObservable, toObservable} from '@angular/core/rxjs-interop';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {\n tuiAsVehicle,\n type TuiRectAccessor,\n type TuiVehicle,\n} from '@taiga-ui/core/classes';\nimport {TuiPopupService} from '@taiga-ui/core/portals/popup';\nimport {PolymorpheusComponent, type PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {map, skip} from 'rxjs';\n\nimport {TUI_HINT_COMPONENT} from './hint.providers';\nimport {TuiHintAnchor} from './hint-anchor.directive';\nimport {TuiHintDriver} from './hint-driver.directive';\nimport {TuiHintHover} from './hint-hover.directive';\nimport {TUI_HINT_OPTIONS} from './hint-options.directive';\nimport {TuiHintPosition} from './hint-position.directive';\n\n@Directive({\n selector: '[tuiHint]:not(ng-container):not(ng-template)',\n providers: [\n tuiAsVehicle(TuiHintDirective),\n {\n provide: PolymorpheusComponent,\n deps: [TUI_HINT_COMPONENT, INJECTOR],\n useClass: PolymorpheusComponent,\n },\n ],\n hostDirectives: [\n TuiHintAnchor,\n TuiHintDriver,\n {\n directive: TuiHintHover,\n inputs: ['tuiHintHideDelay', 'tuiHintShowDelay'],\n },\n {\n directive: TuiHintPosition,\n inputs: ['tuiHintDirection', 'tuiHintCentered', 'tuiHintOffset'],\n outputs: ['tuiHintDirectionChange'],\n },\n ],\n})\nexport class TuiHintDirective<C>\n implements OnDestroy, OnChanges, TuiRectAccessor, TuiVehicle\n{\n private readonly service = inject(TuiPopupService);\n private readonly ref = signal<ComponentRef<unknown> | null>(null);\n\n public readonly content = input<PolymorpheusContent<C>>(null, {alias: 'tuiHint'});\n public readonly context = input<C>(undefined, {alias: 'tuiHintContext'});\n public readonly appearance = input(inject(TUI_HINT_OPTIONS).appearance, {\n alias: 'tuiHintAppearance',\n });\n\n public readonly visible = outputFromObservable(\n toObservable(this.ref).pipe(map(Boolean), skip(1)),\n {alias: 'tuiHintVisible'},\n );\n\n public component = inject(PolymorpheusComponent<unknown>);\n public readonly el = tuiInjectElement();\n public readonly type = 'hint';\n\n public ngOnChanges(): void {\n if (!this.content()) {\n this.toggle(false);\n }\n }\n\n public ngOnDestroy(): void {\n this.toggle(false);\n }\n\n public getClientRect(): DOMRect {\n return this.el.getBoundingClientRect();\n }\n\n public toggle(show: boolean): void {\n if (show && this.content() && !this.ref()) {\n this.ref.set(this.service.add(this.component));\n } else if (!show) {\n this.ref()?.destroy();\n this.ref.set(null);\n }\n }\n}\n","import {type AfterViewInit, Directive, inject} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk/constants';\nimport {TuiHoveredService} from '@taiga-ui/cdk/directives/hovered';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n TuiPositionAccessor,\n tuiProvideAccessor,\n TuiRectAccessor,\n} from '@taiga-ui/core/classes';\nimport {TuiPositionService, TuiVisualViewportService} from '@taiga-ui/core/services';\nimport {TUI_ANCHOR_SUPPORT, TUI_VIEWPORT} from '@taiga-ui/core/tokens';\nimport {map, takeWhile} from 'rxjs';\n\nimport {TuiHintDirective} from './hint.directive';\nimport {TuiHintHover} from './hint-hover.directive';\n\nconst GAP = 8;\nconst ARROW_OFFSET = 22;\n\n@Directive({\n providers: [\n TuiPositionService,\n TuiHoveredService,\n tuiProvideAccessor(TuiPositionAccessor, 'hint'),\n tuiProvideAccessor(TuiRectAccessor, 'hint'),\n ],\n})\nexport class TuiHintAnchored implements AfterViewInit {\n private readonly el = tuiInjectElement();\n private readonly hover = inject(TuiHintHover);\n private readonly vvs = inject(TuiVisualViewportService);\n private readonly viewport = inject(TUI_VIEWPORT);\n private readonly rect = inject(TuiRectAccessor);\n private readonly accessor = inject(TuiPositionAccessor);\n private readonly directive = inject(TuiHintDirective);\n private readonly styles$ = inject(TuiPositionService).pipe(\n takeWhile(\n () =>\n this.directive.el.isConnected &&\n this.directive.el.getClientRects().length > 0,\n ),\n map((point) => this.vvs.correct(point)),\n takeUntilDestroyed(),\n );\n\n protected readonly anchored =\n inject(TUI_ANCHOR_SUPPORT) &&\n 'position' in this.accessor &&\n this.viewport.type === 'window';\n\n protected readonly sub = inject(TuiHoveredService)\n .pipe(takeUntilDestroyed())\n .subscribe((hover) => this.hover.toggle(hover));\n\n public ngAfterViewInit(): void {\n if (this.anchored) {\n this.accessor.position?.(this.el);\n } else {\n this.styles$.subscribe({\n next: (point) => this.update(...point),\n complete: () => this.directive.toggle(false),\n });\n }\n }\n\n private update(left: number, top: number): void {\n const {clientHeight, clientWidth} = this.el;\n const rect = this.rect.getClientRect();\n\n if (rect === EMPTY_CLIENT_RECT || !clientHeight || !clientWidth) {\n return;\n }\n\n const viewport = this.viewport.getClientRect();\n const max = Math.max(GAP, viewport.width + viewport.left - clientWidth - GAP);\n const safeLeft = tuiClamp(Math.max(GAP, left), viewport.left + GAP, max);\n const startX = Math.round(safeLeft) === Math.round(rect.left);\n const startY = Math.round(top) === Math.round(rect.top);\n const endX = Math.round(safeLeft + clientWidth) === Math.round(rect.right);\n const endY = Math.round(top + clientHeight) === Math.round(rect.bottom);\n const [beakLeft, beakTop] = this.vvs.correct([\n rect.left + rect.width / 2 - safeLeft,\n rect.top + rect.height / 2 - top,\n ]);\n\n /* eslint-disable no-nested-ternary */\n const x = startX ? ARROW_OFFSET : endX ? clientWidth - ARROW_OFFSET : beakLeft;\n const y = startY ? ARROW_OFFSET : endY ? clientHeight - ARROW_OFFSET : beakTop;\n\n this.apply(\n tuiPx(Math.round(top)),\n tuiPx(Math.round(safeLeft)),\n Math.round((tuiClamp(y, 0, clientHeight) / clientHeight) * 100),\n Math.round((tuiClamp(x, 0, clientWidth) / clientWidth) * 100),\n );\n }\n\n private apply(top: string, left: string, beakTop: number, beakLeft: number): void {\n this.el.style.setProperty('top', top);\n this.el.style.setProperty('left', left);\n this.el.style.setProperty('--t-top', `${beakTop}%`);\n this.el.style.setProperty('--t-left', `${beakLeft}%`);\n this.el.style.setProperty(\n '--t-rotate',\n !beakLeft || Math.ceil(beakLeft) === 100 ? '90deg' : '0deg',\n );\n }\n}\n","import {Directive, type ElementRef, type OnDestroy} from '@angular/core';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk/constants';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {tuiPointToClientRect} from '@taiga-ui/cdk/utils/dom';\nimport {\n tuiAsDriver,\n tuiAsRectAccessor,\n type TuiRectAccessor,\n} from '@taiga-ui/core/classes';\nimport {tuiAnchorDelegate} from '@taiga-ui/core/utils/dom';\n\nimport {TUI_HINT_ANCHOR} from './hint-anchor.directive';\nimport {TuiHintHover} from './hint-hover.directive';\n\n@Directive({\n selector: '[tuiHint][tuiHintPointer]',\n providers: [\n tuiAsRectAccessor(TuiHintPointer),\n tuiAsDriver(TuiHintPointer),\n tuiProvide(TUI_HINT_ANCHOR, TuiHintPointer),\n ],\n host: {'(mousemove.zoneless)': 'onMove($event)'},\n})\nexport class TuiHintPointer\n extends TuiHintHover\n implements TuiRectAccessor, ElementRef<HTMLElement>, OnDestroy\n{\n private currentRect = EMPTY_CLIENT_RECT;\n\n public readonly nativeElement = tuiAnchorDelegate({width: '1px', height: '1px'});\n\n public ngOnDestroy(): void {\n this.nativeElement.parentNode?.removeChild(this.nativeElement);\n }\n\n public getClientRect(): DOMRect {\n return this.currentRect;\n }\n\n protected onMove({clientX, clientY}: MouseEvent): void {\n const {top, left} = this.el.getBoundingClientRect();\n\n this.currentRect = tuiPointToClientRect(clientX, clientY);\n this.nativeElement.style.top = `calc(anchor(top) + ${clientY - top}px)`;\n this.nativeElement.style.left = `calc(anchor(left) + ${clientX - left}px)`;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n inject,\n INJECTOR,\n TemplateRef,\n} from '@angular/core';\nimport {tuiSetSignal} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {PolymorpheusComponent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TuiHintDirective} from './hint.directive';\n\n@Component({\n imports: [PolymorpheusOutlet],\n template: '<ng-container *polymorpheusOutlet=\"hint.content()\" />',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiHintUnstyledComponent {\n protected readonly hint = inject(TuiHintDirective);\n}\n\n@Directive({selector: 'ng-template[tuiHint]'})\nexport class TuiHintUnstyled<C> {\n constructor() {\n const hint = inject(TuiHintDirective<C>);\n\n tuiSetSignal(hint.content, inject(TemplateRef<C>));\n hint.component = new PolymorpheusComponent(\n TuiHintUnstyledComponent,\n inject(INJECTOR),\n );\n }\n}\n","import {ChangeDetectionStrategy, Component, inject, signal} from '@angular/core';\nimport {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiRectAccessor} from '@taiga-ui/core/classes';\nimport {tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {TuiAppearance, tuiAppearance} from '@taiga-ui/core/directives/appearance';\nimport {tuiIsObscured} from '@taiga-ui/core/utils/miscellaneous';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TuiHintDirective} from './hint.directive';\nimport {TuiHintAnchored} from './hint-anchored.directive';\nimport {TuiHintHover} from './hint-hover.directive';\nimport {TuiHintPointer} from './hint-pointer.directive';\nimport {TuiHintUnstyledComponent} from './hint-unstyled.component';\n\n@Component({\n selector: 'tui-hint',\n imports: [PolymorpheusOutlet],\n template: `\n <ng-content />\n <span\n *polymorpheusOutlet=\"content() as text; context: hint.context()\"\n [innerHTML]=\"text\"\n ></span>\n `,\n styleUrl: './hint.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiButtonOptionsProvider({size: 's'})],\n hostDirectives: [TuiAppearance, TuiAnimated, TuiActiveZone, TuiHintAnchored],\n host: {\n role: 'tooltip',\n '[attr.tuiTheme]': 'theme',\n '[class._untouchable]': 'pointer',\n '(document:pointerdown)': 'onPointerDown($event.target)',\n },\n})\nexport class TuiHintComponent {\n private readonly el = tuiInjectElement();\n private readonly hover = inject(TuiHintHover);\n\n protected readonly pointer = inject(TuiHintPointer, {optional: true});\n protected readonly accessor = inject(TuiRectAccessor);\n protected readonly hint = inject(TuiHintDirective);\n protected readonly appearance = tuiAppearance(this.hint.appearance);\n protected readonly content =\n this.hint.component.component === TuiHintUnstyledComponent\n ? signal('')\n : this.hint.content;\n\n protected readonly theme = this.hint.el\n .closest('[tuiTheme]')\n ?.getAttribute('tuiTheme');\n\n protected onPointerDown(target: HTMLElement): void {\n if (\n (!target.closest(this.el.tagName) && !this.hint.el.contains(target)) ||\n tuiIsObscured(this.hint.el)\n ) {\n this.hover.toggle(false);\n }\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {computed, Directive, inject, input} from '@angular/core';\nimport {toObservable} from '@angular/core/rxjs-interop';\nimport {tuiIfMap, tuiTypedFromEvent, tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiIsFocused} from '@taiga-ui/cdk/utils/focus';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiAsDriver, TuiDriver} from '@taiga-ui/core/classes';\nimport {\n debounce,\n distinctUntilChanged,\n fromEvent,\n map,\n merge,\n of,\n skip,\n startWith,\n switchMap,\n timer,\n} from 'rxjs';\n\n@Directive({\n selector: '[tuiHintDescribe]',\n providers: [tuiAsDriver(TuiHintDescribe)],\n})\nexport class TuiHintDescribe extends TuiDriver {\n private readonly doc = inject(DOCUMENT);\n private readonly el = tuiInjectElement();\n\n protected readonly element = computed((id = this.id()) =>\n id ? this.doc.querySelector(`#${id}`) || this.el : this.el,\n );\n\n public readonly id = input<string | null | undefined>('', {alias: 'tuiHintDescribe'});\n public readonly type = 'hint';\n\n protected readonly stream$ = toObservable(this.id).pipe(\n distinctUntilChanged(),\n tuiIfMap(() => fromEvent(this.doc, 'keydown', {capture: true}), tuiIsPresent),\n switchMap(() =>\n this.focused\n ? of(false)\n : merge(\n tuiTypedFromEvent(this.doc, 'keyup'),\n tuiTypedFromEvent(this.element(), 'blur'),\n ).pipe(map(() => this.focused)),\n ),\n debounce((visible) => (visible ? timer(1000) : of(null))),\n startWith(false),\n distinctUntilChanged(),\n skip(1),\n tuiZoneOptimized(),\n );\n\n constructor() {\n super((subscriber) => this.stream$.subscribe(subscriber));\n }\n\n private get focused(): boolean {\n return tuiIsFocused(this.element());\n }\n}\n","import {Directive, effect, type ElementRef, input} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiGenerateId} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiAsRectAccessor, TuiRectAccessor} from '@taiga-ui/core/classes';\n\nimport {TUI_HINT_ANCHOR} from './hint-anchor.directive';\n\n@Directive({\n selector: '[tuiHint][tuiHintHost]',\n providers: [tuiAsRectAccessor(TuiHintHost), tuiProvide(TUI_HINT_ANCHOR, TuiHintHost)],\n})\nexport class TuiHintHost extends TuiRectAccessor implements ElementRef<HTMLElement> {\n public readonly tuiHintHost = input<HTMLElement>();\n public readonly type = 'hint';\n public nativeElement = tuiInjectElement();\n\n protected readonly sync = effect(() => {\n const anchorName = `--${tuiGenerateId()}`;\n\n this.nativeElement = this.tuiHintHost() || this.nativeElement;\n this.nativeElement.setAttribute('data-tui-anchor', anchorName);\n this.nativeElement.style.setProperty('anchor-name', anchorName);\n });\n\n public getClientRect(): DOMRect {\n return this.nativeElement.getBoundingClientRect();\n }\n}\n","import {Directive, inject, input, type OnChanges} from '@angular/core';\nimport {tuiAsDriver, TuiDriver} from '@taiga-ui/core/classes';\nimport {BehaviorSubject} from 'rxjs';\n\nimport {TuiHintHover} from './hint-hover.directive';\n\n@Directive({\n selector: '[tuiHint][tuiHintManual]',\n providers: [tuiAsDriver(TuiHintManual)],\n})\nexport class TuiHintManual extends TuiDriver implements OnChanges {\n private readonly hover = inject(TuiHintHover);\n private readonly stream$ = new BehaviorSubject(false);\n\n public readonly visible = input<boolean | null>(false, {alias: 'tuiHintManual'});\n public readonly type = 'hint';\n\n constructor() {\n super((subscriber) => this.stream$.subscribe(subscriber));\n this.hover.enabled = false;\n }\n\n public ngOnChanges(): void {\n this.stream$.next(!!this.visible());\n this.hover.enabled = this.visible() === null;\n }\n}\n","import {Directive, inject, input} from '@angular/core';\nimport {tuiSetSignal} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {TuiHintDirective} from './hint.directive';\n\n@Directive({\n selector: '[tuiHintOverflow]',\n hostDirectives: [\n {\n directive: TuiHintDirective,\n inputs: ['tuiHintAppearance'],\n },\n ],\n host: {'(mouseenter)': 'onMouseEnter($event.currentTarget)'},\n})\nexport class TuiHintOverflow {\n private readonly hint = inject(TuiHintDirective);\n\n public readonly content = input<string | null>('', {alias: 'tuiHintOverflow'});\n\n protected onMouseEnter({scrollWidth, clientWidth, textContent}: Element): void {\n const content = this.content();\n\n tuiSetSignal(\n this.hint.content,\n scrollWidth > clientWidth && content !== null ? content || textContent : '',\n );\n }\n}\n","import {TuiHintComponent} from './hint.component';\nimport {TuiHintDirective} from './hint.directive';\nimport {TuiHintDescribe} from './hint-describe.directive';\nimport {TuiHintDriver} from './hint-driver.directive';\nimport {TuiHintHost} from './hint-host.directive';\nimport {TuiHintHover} from './hint-hover.directive';\nimport {TuiHintManual} from './hint-manual.directive';\nimport {TuiHintOverflow} from './hint-overflow.directive';\nimport {TuiHintPointer} from './hint-pointer.directive';\nimport {TuiHintUnstyled} from './hint-unstyled.component';\n\nexport const TuiHint = [\n TuiHintComponent,\n TuiHintDirective,\n TuiHintUnstyled,\n TuiHintDriver,\n TuiHintHover,\n TuiHintOverflow,\n TuiHintDescribe,\n TuiHintHost,\n TuiHintManual,\n TuiHintPointer,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["GAP","ARROW_OFFSET","i1.TuiHintAnchor","i2.TuiHintDriver","i3.TuiHintHover","i4.TuiHintPosition","i4.TuiHintAnchored","i1.TuiHintDirective"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-portals-hint.mjs","sources":["../../../projects/core/portals/hint/hint.providers.ts","../../../projects/core/portals/hint/hint-anchor.directive.ts","../../../projects/core/portals/hint/hint-driver.directive.ts","../../../projects/core/portals/hint/hint-options.directive.ts","../../../projects/core/portals/hint/hint-hover.directive.ts","../../../projects/core/portals/hint/hint-position.directive.ts","../../../projects/core/portals/hint/hint.directive.ts","../../../projects/core/portals/hint/hint-anchored.directive.ts","../../../projects/core/portals/hint/hint-pointer.directive.ts","../../../projects/core/portals/hint/hint-unstyled.component.ts","../../../projects/core/portals/hint/hint.component.ts","../../../projects/core/portals/hint/hint-describe.directive.ts","../../../projects/core/portals/hint/hint-host.directive.ts","../../../projects/core/portals/hint/hint-manual.directive.ts","../../../projects/core/portals/hint/hint-overflow.directive.ts","../../../projects/core/portals/hint/hint.ts","../../../projects/core/portals/hint/taiga-ui-core-portals-hint.ts"],"sourcesContent":["import {InjectionToken, type Type} from '@angular/core';\n\nimport {TuiHintComponent} from './hint.component';\n\n/**\n * A component to display a hint\n */\nexport const TUI_HINT_COMPONENT = new InjectionToken<Type<unknown>>(\n ngDevMode ? 'TUI_HINT_COMPONENT' : '',\n {factory: () => TuiHintComponent},\n);\n","import {Directive, ElementRef, InjectionToken} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiGenerateId} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiAsRectAccessor, TuiRectAccessor} from '@taiga-ui/core/classes';\n\nexport const TUI_HINT_ANCHOR = new InjectionToken<ElementRef<HTMLElement>>(\n ngDevMode ? 'TUI_HINT_ANCHOR' : '',\n);\n\n@Directive({\n providers: [\n tuiAsRectAccessor(TuiHintAnchor),\n tuiProvide(TUI_HINT_ANCHOR, ElementRef),\n ],\n host: {\n '[attr.data-tui-anchor]': 'anchor',\n '[style.anchor-name]': 'anchor',\n },\n})\nexport class TuiHintAnchor extends TuiRectAccessor {\n protected readonly el = tuiInjectElement();\n protected readonly anchor = `--${tuiGenerateId()}`;\n\n public readonly type = 'hint';\n\n public getClientRect(): DOMRect {\n return this.el.getBoundingClientRect();\n }\n}\n","import {Directive} from '@angular/core';\nimport {TuiDriverDirective} from '@taiga-ui/core/classes';\n\n@Directive()\nexport class TuiHintDriver extends TuiDriverDirective {\n public readonly type = 'hint';\n}\n","import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiAppearanceOptions} from '@taiga-ui/core/directives/appearance';\n\nexport type TuiHintDirection =\n | 'bottom-end'\n | 'bottom-start'\n | 'bottom'\n | 'end-bottom'\n | 'end-top'\n | 'end'\n | 'start-bottom'\n | 'start-top'\n | 'start'\n | 'top-end'\n | 'top-start'\n | 'top';\n\nexport const TUI_HINT_DIRECTIONS: readonly TuiHintDirection[] = [\n 'bottom-start',\n 'bottom',\n 'bottom-end',\n 'top-start',\n 'top',\n 'top-end',\n 'start-top',\n 'start',\n 'start-bottom',\n 'end-top',\n 'end',\n 'end-bottom',\n];\n\n/** TODO: remove optionality in v6 */\nexport interface TuiHintOptions extends TuiAppearanceOptions {\n readonly direction: TuiHintDirection | TuiHintDirection[];\n readonly centered?: boolean;\n readonly hideDelay: number;\n readonly icon: string;\n readonly showDelay: number;\n}\n\n/** Default values for hint options */\nexport const TUI_HINT_DEFAULT_OPTIONS = {\n direction: 'bottom-start',\n centered: true,\n showDelay: 500,\n hideDelay: 200,\n appearance: '',\n /** TODO @deprecated use {@link TUI_TOOLTIP_OPTIONS} instead **/\n icon: '@tui.circle-help',\n} as const;\n\n/**\n * Default parameters for hint directive\n */\nexport const [TUI_HINT_OPTIONS, tuiHintOptionsProvider] =\n tuiCreateOptions<TuiHintOptions>(TUI_HINT_DEFAULT_OPTIONS);\n","import {Directive, inject, input} from '@angular/core';\nimport {WA_IS_MOBILE} from '@ng-web-apis/platform';\nimport {TuiHoveredService} from '@taiga-ui/cdk/directives/hovered';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiAsDriver, TuiDriver} from '@taiga-ui/core/classes';\nimport {tuiIsObscured} from '@taiga-ui/core/utils/miscellaneous';\nimport {\n delay,\n filter,\n map,\n merge,\n of,\n repeat,\n Subject,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs';\n\nimport {TUI_HINT_OPTIONS} from './hint-options.directive';\n\nconst MOBILE_HIDE_DELAY_MS = 100;\n\n@Directive({\n providers: [tuiAsDriver(TuiHintHover), TuiHoveredService],\n exportAs: 'tuiHintHover',\n host: {'(click)': 'onClick()'},\n})\nexport class TuiHintHover extends TuiDriver {\n private readonly isMobile = inject(WA_IS_MOBILE);\n private readonly hovered$ = inject(TuiHoveredService);\n private readonly options = inject(TUI_HINT_OPTIONS);\n private visible = false;\n private readonly toggle$ = new Subject<boolean>();\n private readonly stream$ = merge(\n this.toggle$.pipe(\n switchMap((show) =>\n this.isMobile\n ? of(show).pipe(delay(show ? 0 : MOBILE_HIDE_DELAY_MS))\n : of(show).pipe(delay(show ? 0 : this.hideDelay())),\n ),\n takeUntil(this.hovered$),\n repeat(),\n ),\n this.hovered$.pipe(\n switchMap((show) =>\n this.isMobile\n ? of(show).pipe(\n filter(() => !show),\n delay(0),\n )\n : of(show).pipe(delay(show ? this.showDelay() : this.hideDelay())),\n ),\n takeUntil(this.toggle$),\n repeat(),\n ),\n ).pipe(\n filter(() => this.enabled),\n map(\n (value) =>\n value &&\n (this.el.hasAttribute('tuiHintPointer') ||\n !tuiIsObscured(this.el, 'tui-popups > :not(tui-modal)')),\n ),\n tap((visible) => {\n this.visible = visible;\n }),\n );\n\n private readonly parent = inject(TuiHintHover, {\n optional: true,\n skipSelf: true,\n });\n\n protected readonly el = tuiInjectElement();\n\n public readonly showDelay = input(this.options.showDelay, {\n alias: 'tuiHintShowDelay',\n });\n\n public readonly hideDelay = input(this.options.hideDelay, {\n alias: 'tuiHintHideDelay',\n });\n\n public readonly type = 'hint';\n public enabled = true;\n\n constructor() {\n super((subscriber) => this.stream$.subscribe(subscriber));\n }\n\n public toggle(visible = !this.visible): void {\n this.toggle$.next(visible);\n this.parent?.toggle(visible);\n }\n\n public close(): void {\n this.toggle$.next(false);\n }\n\n /**\n * Synthesized `mouseenter` is not fired again until another element is tapped, so showing on mobile\n * cannot rely on it.\n */\n protected onClick(): void {\n if (this.isMobile) {\n this.toggle();\n }\n }\n}\n","import {Directive, inject, input} from '@angular/core';\nimport {outputFromObservable} from '@angular/core/rxjs-interop';\nimport {WA_IS_MOBILE} from '@ng-web-apis/platform';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {\n tuiAsPositionAccessor,\n tuiInjectAccessor,\n TuiPositionAccessor,\n TuiRectAccessor,\n} from '@taiga-ui/core/classes';\nimport {TUI_VIEWPORT} from '@taiga-ui/core/tokens';\nimport {type TuiPoint} from '@taiga-ui/core/types';\nimport {distinctUntilChanged, Subject} from 'rxjs';\n\nimport {\n TUI_HINT_DIRECTIONS,\n TUI_HINT_OPTIONS,\n type TuiHintDirection,\n} from './hint-options.directive';\n\nconst GAP = 8;\nconst ARROW_OFFSET = 22;\nconst TOP = 1;\nconst LEFT = 0;\n\n@Directive({providers: [tuiAsPositionAccessor(TuiHintPosition)]})\nexport class TuiHintPosition extends TuiPositionAccessor {\n private readonly el = tuiInjectElement();\n private readonly viewport = inject(TUI_VIEWPORT);\n private readonly options = inject(TUI_HINT_OPTIONS);\n private readonly directionChange = new Subject<TuiHintDirection>();\n private readonly accessor = tuiInjectAccessor(TuiRectAccessor, 'hint');\n private readonly points: Record<TuiHintDirection, [number, number]> =\n TUI_HINT_DIRECTIONS.reduce(\n (acc, direction) => ({...acc, [direction]: [0, 0]}),\n {} as Record<TuiHintDirection, [number, number]>,\n );\n\n public readonly direction = input(this.options.direction, {\n alias: 'tuiHintDirection',\n });\n\n public readonly offset = input(inject(WA_IS_MOBILE) ? 16 : 8, {\n alias: 'tuiHintOffset',\n });\n\n public readonly centered = input(this.options.centered, {alias: 'tuiHintCentered'});\n\n public readonly tuiHintDirectionChange = outputFromObservable(\n this.directionChange.pipe(distinctUntilChanged()),\n );\n\n public readonly type = 'hint';\n\n public getPosition({width, height}: DOMRect): TuiPoint {\n const direction = this.direction();\n const rect = this.accessor.getClientRect();\n const leftCenter = rect.left + rect.width / 2;\n const topCenter = rect.top + rect.height / 2;\n const rtl = this.el.matches('[dir=\"rtl\"] :scope');\n const narrow = rect.width < ARROW_OFFSET * 2 || this.centered();\n const short = rect.height < ARROW_OFFSET * 2 || this.centered();\n const start = narrow ? leftCenter - ARROW_OFFSET : rect.left;\n const end = narrow ? leftCenter - width + ARROW_OFFSET : rect.right - width;\n const top = short ? topCenter - ARROW_OFFSET : rect.top;\n const bottom = short ? topCenter - height + ARROW_OFFSET : rect.bottom - height;\n\n this.points['top-start'][TOP] = rect.top - height - this.offset();\n this.points['top-start'][LEFT] = this.centered() ? end : start;\n this.points.top[TOP] = this.points['top-start'][TOP];\n this.points.top[LEFT] = leftCenter - width / 2;\n this.points['top-end'][TOP] = this.points['top-start'][TOP];\n this.points['top-end'][LEFT] = this.centered() ? start : end;\n\n this.points['bottom-start'][TOP] = rect.bottom + this.offset();\n this.points['bottom-start'][LEFT] = this.points['top-start'][LEFT];\n this.points.bottom[TOP] = this.points['bottom-start'][TOP];\n this.points.bottom[LEFT] = this.points.top[LEFT];\n this.points['bottom-end'][TOP] = this.points['bottom-start'][TOP];\n this.points['bottom-end'][LEFT] = this.points['top-end'][LEFT];\n\n this.points['start-top'][TOP] = this.centered() ? bottom : top;\n this.points['start-top'][LEFT] = rect.left - width - this.offset();\n this.points.start[TOP] = topCenter - height / 2;\n this.points.start[LEFT] = this.points['start-top'][LEFT];\n this.points['start-bottom'][TOP] = this.centered() ? top : bottom;\n this.points['start-bottom'][LEFT] = this.points['start-top'][LEFT];\n\n this.points['end-top'][TOP] = this.points['start-top'][TOP];\n this.points['end-top'][LEFT] = rect.right + this.offset();\n this.points.end[TOP] = this.points.start[TOP];\n this.points.end[LEFT] = this.points['end-top'][LEFT];\n this.points['end-bottom'][TOP] = this.points['start-bottom'][TOP];\n this.points['end-bottom'][LEFT] = this.points['end-top'][LEFT];\n\n const array = Array.isArray(direction) ? direction : [direction];\n const priority = array.map((direction) => adjust(direction, rtl));\n\n const updated =\n priority\n .concat(TUI_HINT_DIRECTIONS)\n .find((dir) => this.checkPosition(this.points[dir], width, height)) ||\n this.fallback;\n\n this.directionChange.next(adjust(updated, rtl));\n\n return this.points[updated];\n }\n\n private get fallback(): TuiHintDirection {\n return this.points.top[TOP] >\n this.viewport.getClientRect().bottom - this.points.bottom[TOP]\n ? 'top'\n : 'bottom';\n }\n\n private checkPosition([left, top]: TuiPoint, width: number, height: number): boolean {\n const viewport = this.viewport.getClientRect();\n\n return (\n top > viewport.top + GAP &&\n left > viewport.left + GAP &&\n top + height < viewport.bottom - GAP &&\n left + width < viewport.right - GAP\n );\n }\n}\n\nfunction adjust(direction: TuiHintDirection, rtl: boolean): TuiHintDirection {\n if (rtl && direction.includes('left')) {\n return direction.replace('left', 'right') as TuiHintDirection;\n }\n\n return rtl && direction.includes('right')\n ? (direction.replace('right', 'left') as TuiHintDirection)\n : direction;\n}\n","import {\n type ComponentRef,\n Directive,\n inject,\n INJECTOR,\n input,\n type OnChanges,\n type OnDestroy,\n signal,\n} from '@angular/core';\nimport {outputFromObservable, toObservable} from '@angular/core/rxjs-interop';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {\n tuiAsVehicle,\n type TuiRectAccessor,\n type TuiVehicle,\n} from '@taiga-ui/core/classes';\nimport {TuiPopupService} from '@taiga-ui/core/portals/popup';\nimport {PolymorpheusComponent, type PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {map, skip} from 'rxjs';\n\nimport {TUI_HINT_COMPONENT} from './hint.providers';\nimport {TuiHintAnchor} from './hint-anchor.directive';\nimport {TuiHintDriver} from './hint-driver.directive';\nimport {TuiHintHover} from './hint-hover.directive';\nimport {TUI_HINT_OPTIONS} from './hint-options.directive';\nimport {TuiHintPosition} from './hint-position.directive';\n\n@Directive({\n selector: '[tuiHint]:not(ng-container):not(ng-template)',\n providers: [\n tuiAsVehicle(TuiHintDirective),\n {\n provide: PolymorpheusComponent,\n deps: [TUI_HINT_COMPONENT, INJECTOR],\n useClass: PolymorpheusComponent,\n },\n ],\n hostDirectives: [\n TuiHintAnchor,\n TuiHintDriver,\n {\n directive: TuiHintHover,\n inputs: ['tuiHintHideDelay', 'tuiHintShowDelay'],\n },\n {\n directive: TuiHintPosition,\n inputs: ['tuiHintDirection', 'tuiHintCentered', 'tuiHintOffset'],\n outputs: ['tuiHintDirectionChange'],\n },\n ],\n})\nexport class TuiHintDirective<C>\n implements OnDestroy, OnChanges, TuiRectAccessor, TuiVehicle\n{\n private readonly service = inject(TuiPopupService);\n private readonly ref = signal<ComponentRef<unknown> | null>(null);\n\n public readonly content = input<PolymorpheusContent<C>>(null, {alias: 'tuiHint'});\n public readonly context = input<C>(undefined, {alias: 'tuiHintContext'});\n public readonly appearance = input(inject(TUI_HINT_OPTIONS).appearance, {\n alias: 'tuiHintAppearance',\n });\n\n public readonly visible = outputFromObservable(\n toObservable(this.ref).pipe(map(Boolean), skip(1)),\n {alias: 'tuiHintVisible'},\n );\n\n public component = inject(PolymorpheusComponent<unknown>);\n public readonly el = tuiInjectElement();\n public readonly type = 'hint';\n\n public ngOnChanges(): void {\n if (!this.content()) {\n this.toggle(false);\n }\n }\n\n public ngOnDestroy(): void {\n this.toggle(false);\n }\n\n public getClientRect(): DOMRect {\n return this.el.getBoundingClientRect();\n }\n\n public toggle(show: boolean): void {\n if (show && this.content() && !this.ref()) {\n this.ref.set(this.service.add(this.component));\n } else if (!show) {\n this.ref()?.destroy();\n this.ref.set(null);\n }\n }\n}\n","import {type AfterViewInit, Directive, inject} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk/constants';\nimport {TuiHoveredService} from '@taiga-ui/cdk/directives/hovered';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n TuiPositionAccessor,\n tuiProvideAccessor,\n TuiRectAccessor,\n} from '@taiga-ui/core/classes';\nimport {\n TuiCSSZoomService,\n TuiPositionService,\n TuiVisualViewportService,\n} from '@taiga-ui/core/services';\nimport {TUI_ANCHOR_SUPPORT, TUI_VIEWPORT} from '@taiga-ui/core/tokens';\nimport {map, takeWhile} from 'rxjs';\n\nimport {TuiHintDirective} from './hint.directive';\nimport {TuiHintHover} from './hint-hover.directive';\n\nconst GAP = 8;\nconst ARROW_OFFSET = 22;\n\n@Directive({\n providers: [\n TuiPositionService,\n TuiHoveredService,\n TuiCSSZoomService,\n tuiProvideAccessor(TuiPositionAccessor, 'hint'),\n tuiProvideAccessor(TuiRectAccessor, 'hint'),\n ],\n})\nexport class TuiHintAnchored implements AfterViewInit {\n private readonly el = tuiInjectElement();\n private readonly hover = inject(TuiHintHover);\n private readonly vvs = inject(TuiVisualViewportService);\n private readonly zoom = inject(TuiCSSZoomService);\n private readonly viewport = inject(TUI_VIEWPORT);\n private readonly rect = inject(TuiRectAccessor);\n private readonly accessor = inject(TuiPositionAccessor);\n private readonly directive = inject(TuiHintDirective);\n private readonly styles$ = inject(TuiPositionService).pipe(\n takeWhile(\n () =>\n this.directive.el.isConnected &&\n this.directive.el.getClientRects().length > 0,\n ),\n map((point) => this.zoom.descale(this.vvs.correct(point))),\n takeUntilDestroyed(),\n );\n\n protected readonly anchored =\n inject(TUI_ANCHOR_SUPPORT) &&\n 'position' in this.accessor &&\n this.viewport.type === 'window';\n\n protected readonly sub = inject(TuiHoveredService)\n .pipe(takeUntilDestroyed())\n .subscribe((hover) => this.hover.toggle(hover));\n\n public ngAfterViewInit(): void {\n if (this.anchored) {\n this.accessor.position?.(this.el);\n } else {\n this.styles$.subscribe({\n next: (point) => this.update(...point),\n complete: () => this.directive.toggle(false),\n });\n }\n }\n\n private update(left: number, top: number): void {\n const {clientHeight, clientWidth} = this.el;\n const clientRect = this.rect.getClientRect();\n\n if (clientRect === EMPTY_CLIENT_RECT || !clientHeight || !clientWidth) {\n return;\n }\n\n const rect = this.zoom.descale(clientRect);\n const viewport = this.zoom.descale(this.viewport.getClientRect());\n const max = Math.max(GAP, viewport.width + viewport.left - clientWidth - GAP);\n const safeLeft = tuiClamp(Math.max(GAP, left), viewport.left + GAP, max);\n const startX = Math.round(safeLeft) === Math.round(rect.left);\n const startY = Math.round(top) === Math.round(rect.top);\n const endX = Math.round(safeLeft + clientWidth) === Math.round(rect.right);\n const endY = Math.round(top + clientHeight) === Math.round(rect.bottom);\n const [centerX, centerY] = this.zoom.descale(\n this.vvs.correct([\n clientRect.left + clientRect.width / 2,\n clientRect.top + clientRect.height / 2,\n ]),\n );\n\n const beakLeft = centerX - safeLeft;\n const beakTop = centerY - top;\n\n /* eslint-disable no-nested-ternary */\n const x = startX ? ARROW_OFFSET : endX ? clientWidth - ARROW_OFFSET : beakLeft;\n const y = startY ? ARROW_OFFSET : endY ? clientHeight - ARROW_OFFSET : beakTop;\n\n this.apply(\n tuiPx(Math.round(top)),\n tuiPx(Math.round(safeLeft)),\n Math.round((tuiClamp(y, 0, clientHeight) / clientHeight) * 100),\n Math.round((tuiClamp(x, 0, clientWidth) / clientWidth) * 100),\n );\n }\n\n private apply(top: string, left: string, beakTop: number, beakLeft: number): void {\n this.el.style.setProperty('top', top);\n this.el.style.setProperty('left', left);\n this.el.style.setProperty('--t-top', `${beakTop}%`);\n this.el.style.setProperty('--t-left', `${beakLeft}%`);\n this.el.style.setProperty(\n '--t-rotate',\n !beakLeft || Math.ceil(beakLeft) === 100 ? '90deg' : '0deg',\n );\n }\n}\n","import {Directive, type ElementRef, type OnDestroy} from '@angular/core';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk/constants';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {tuiPointToClientRect} from '@taiga-ui/cdk/utils/dom';\nimport {\n tuiAsDriver,\n tuiAsRectAccessor,\n type TuiRectAccessor,\n} from '@taiga-ui/core/classes';\nimport {tuiAnchorDelegate} from '@taiga-ui/core/utils/dom';\n\nimport {TUI_HINT_ANCHOR} from './hint-anchor.directive';\nimport {TuiHintHover} from './hint-hover.directive';\n\n@Directive({\n selector: '[tuiHint][tuiHintPointer]',\n providers: [\n tuiAsRectAccessor(TuiHintPointer),\n tuiAsDriver(TuiHintPointer),\n tuiProvide(TUI_HINT_ANCHOR, TuiHintPointer),\n ],\n host: {'(mousemove.zoneless)': 'onMove($event)'},\n})\nexport class TuiHintPointer\n extends TuiHintHover\n implements TuiRectAccessor, ElementRef<HTMLElement>, OnDestroy\n{\n private currentRect = EMPTY_CLIENT_RECT;\n\n public readonly nativeElement = tuiAnchorDelegate({width: '1px', height: '1px'});\n\n public ngOnDestroy(): void {\n this.nativeElement.parentNode?.removeChild(this.nativeElement);\n }\n\n public getClientRect(): DOMRect {\n return this.currentRect;\n }\n\n protected onMove({clientX, clientY}: MouseEvent): void {\n const {top, left} = this.el.getBoundingClientRect();\n\n this.currentRect = tuiPointToClientRect(clientX, clientY);\n this.nativeElement.style.top = `calc(anchor(top) + ${clientY - top}px)`;\n this.nativeElement.style.left = `calc(anchor(left) + ${clientX - left}px)`;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n inject,\n INJECTOR,\n TemplateRef,\n} from '@angular/core';\nimport {tuiSetSignal} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {PolymorpheusComponent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TuiHintDirective} from './hint.directive';\n\n@Component({\n imports: [PolymorpheusOutlet],\n template: '<ng-container *polymorpheusOutlet=\"hint.content()\" />',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiHintUnstyledComponent {\n protected readonly hint = inject(TuiHintDirective);\n}\n\n@Directive({selector: 'ng-template[tuiHint]'})\nexport class TuiHintUnstyled<C> {\n constructor() {\n const hint = inject(TuiHintDirective<C>);\n\n tuiSetSignal(hint.content, inject(TemplateRef<C>));\n hint.component = new PolymorpheusComponent(\n TuiHintUnstyledComponent,\n inject(INJECTOR),\n );\n }\n}\n","import {ChangeDetectionStrategy, Component, inject, signal} from '@angular/core';\nimport {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiRectAccessor} from '@taiga-ui/core/classes';\nimport {tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {TuiAppearance, tuiAppearance} from '@taiga-ui/core/directives/appearance';\nimport {tuiIsObscured} from '@taiga-ui/core/utils/miscellaneous';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TuiHintDirective} from './hint.directive';\nimport {TuiHintAnchored} from './hint-anchored.directive';\nimport {TuiHintHover} from './hint-hover.directive';\nimport {TuiHintPointer} from './hint-pointer.directive';\nimport {TuiHintUnstyledComponent} from './hint-unstyled.component';\n\n@Component({\n selector: 'tui-hint',\n imports: [PolymorpheusOutlet],\n template: `\n <ng-content />\n <span\n *polymorpheusOutlet=\"content() as text; context: hint.context()\"\n [innerHTML]=\"text\"\n ></span>\n `,\n styleUrl: './hint.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiButtonOptionsProvider({size: 's'})],\n hostDirectives: [TuiAppearance, TuiAnimated, TuiActiveZone, TuiHintAnchored],\n host: {\n role: 'tooltip',\n '[attr.tuiTheme]': 'theme',\n '[class._untouchable]': 'pointer',\n '(document:pointerdown)': 'onPointerDown($event.target)',\n },\n})\nexport class TuiHintComponent {\n private readonly el = tuiInjectElement();\n private readonly hover = inject(TuiHintHover);\n\n protected readonly pointer = inject(TuiHintPointer, {optional: true});\n protected readonly accessor = inject(TuiRectAccessor);\n protected readonly hint = inject(TuiHintDirective);\n protected readonly appearance = tuiAppearance(this.hint.appearance);\n protected readonly content =\n this.hint.component.component === TuiHintUnstyledComponent\n ? signal('')\n : this.hint.content;\n\n protected readonly theme = this.hint.el\n .closest('[tuiTheme]')\n ?.getAttribute('tuiTheme');\n\n protected onPointerDown(target: HTMLElement): void {\n if (\n (!target.closest(this.el.tagName) && !this.hint.el.contains(target)) ||\n tuiIsObscured(this.hint.el)\n ) {\n this.hover.toggle(false);\n }\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {computed, Directive, inject, input} from '@angular/core';\nimport {toObservable} from '@angular/core/rxjs-interop';\nimport {tuiIfMap, tuiTypedFromEvent, tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiIsFocused} from '@taiga-ui/cdk/utils/focus';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiAsDriver, TuiDriver} from '@taiga-ui/core/classes';\nimport {\n debounce,\n distinctUntilChanged,\n fromEvent,\n map,\n merge,\n of,\n skip,\n startWith,\n switchMap,\n timer,\n} from 'rxjs';\n\n@Directive({\n selector: '[tuiHintDescribe]',\n providers: [tuiAsDriver(TuiHintDescribe)],\n})\nexport class TuiHintDescribe extends TuiDriver {\n private readonly doc = inject(DOCUMENT);\n private readonly el = tuiInjectElement();\n\n protected readonly element = computed((id = this.id()) =>\n id ? this.doc.querySelector(`#${id}`) || this.el : this.el,\n );\n\n public readonly id = input<string | null | undefined>('', {alias: 'tuiHintDescribe'});\n public readonly type = 'hint';\n\n protected readonly stream$ = toObservable(this.id).pipe(\n distinctUntilChanged(),\n tuiIfMap(() => fromEvent(this.doc, 'keydown', {capture: true}), tuiIsPresent),\n switchMap(() =>\n this.focused\n ? of(false)\n : merge(\n tuiTypedFromEvent(this.doc, 'keyup'),\n tuiTypedFromEvent(this.element(), 'blur'),\n ).pipe(map(() => this.focused)),\n ),\n debounce((visible) => (visible ? timer(1000) : of(null))),\n startWith(false),\n distinctUntilChanged(),\n skip(1),\n tuiZoneOptimized(),\n );\n\n constructor() {\n super((subscriber) => this.stream$.subscribe(subscriber));\n }\n\n private get focused(): boolean {\n return tuiIsFocused(this.element());\n }\n}\n","import {Directive, effect, type ElementRef, input} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiGenerateId} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiAsRectAccessor, TuiRectAccessor} from '@taiga-ui/core/classes';\n\nimport {TUI_HINT_ANCHOR} from './hint-anchor.directive';\n\n@Directive({\n selector: '[tuiHint][tuiHintHost]',\n providers: [tuiAsRectAccessor(TuiHintHost), tuiProvide(TUI_HINT_ANCHOR, TuiHintHost)],\n})\nexport class TuiHintHost extends TuiRectAccessor implements ElementRef<HTMLElement> {\n public readonly tuiHintHost = input<HTMLElement>();\n public readonly type = 'hint';\n public nativeElement = tuiInjectElement();\n\n protected readonly sync = effect(() => {\n const anchorName = `--${tuiGenerateId()}`;\n\n this.nativeElement = this.tuiHintHost() || this.nativeElement;\n this.nativeElement.setAttribute('data-tui-anchor', anchorName);\n this.nativeElement.style.setProperty('anchor-name', anchorName);\n });\n\n public getClientRect(): DOMRect {\n return this.nativeElement.getBoundingClientRect();\n }\n}\n","import {Directive, inject, input, type OnChanges} from '@angular/core';\nimport {tuiAsDriver, TuiDriver} from '@taiga-ui/core/classes';\nimport {BehaviorSubject} from 'rxjs';\n\nimport {TuiHintHover} from './hint-hover.directive';\n\n@Directive({\n selector: '[tuiHint][tuiHintManual]',\n providers: [tuiAsDriver(TuiHintManual)],\n})\nexport class TuiHintManual extends TuiDriver implements OnChanges {\n private readonly hover = inject(TuiHintHover);\n private readonly stream$ = new BehaviorSubject(false);\n\n public readonly visible = input<boolean | null>(false, {alias: 'tuiHintManual'});\n public readonly type = 'hint';\n\n constructor() {\n super((subscriber) => this.stream$.subscribe(subscriber));\n this.hover.enabled = false;\n }\n\n public ngOnChanges(): void {\n this.stream$.next(!!this.visible());\n this.hover.enabled = this.visible() === null;\n }\n}\n","import {Directive, inject, input} from '@angular/core';\nimport {tuiSetSignal} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {TuiHintDirective} from './hint.directive';\n\n@Directive({\n selector: '[tuiHintOverflow]',\n hostDirectives: [\n {\n directive: TuiHintDirective,\n inputs: ['tuiHintAppearance'],\n },\n ],\n host: {'(mouseenter)': 'onMouseEnter($event.currentTarget)'},\n})\nexport class TuiHintOverflow {\n private readonly hint = inject(TuiHintDirective);\n\n public readonly content = input<string | null>('', {alias: 'tuiHintOverflow'});\n\n protected onMouseEnter({scrollWidth, clientWidth, textContent}: Element): void {\n const content = this.content();\n\n tuiSetSignal(\n this.hint.content,\n scrollWidth > clientWidth && content !== null ? content || textContent : '',\n );\n }\n}\n","import {TuiHintComponent} from './hint.component';\nimport {TuiHintDirective} from './hint.directive';\nimport {TuiHintDescribe} from './hint-describe.directive';\nimport {TuiHintDriver} from './hint-driver.directive';\nimport {TuiHintHost} from './hint-host.directive';\nimport {TuiHintHover} from './hint-hover.directive';\nimport {TuiHintManual} from './hint-manual.directive';\nimport {TuiHintOverflow} from './hint-overflow.directive';\nimport {TuiHintPointer} from './hint-pointer.directive';\nimport {TuiHintUnstyled} from './hint-unstyled.component';\n\nexport const TuiHint = [\n TuiHintComponent,\n TuiHintDirective,\n TuiHintUnstyled,\n TuiHintDriver,\n TuiHintHover,\n TuiHintOverflow,\n TuiHintDescribe,\n TuiHintHost,\n TuiHintManual,\n TuiHintPointer,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["GAP","ARROW_OFFSET","i1.TuiHintAnchor","i2.TuiHintDriver","i3.TuiHintHover","i4.TuiHintPosition","i4.TuiHintAnchored","i1.TuiHintDirective"],"mappings":"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"}
|
|
@@ -27,12 +27,12 @@ class TuiModalComponent {
|
|
|
27
27
|
this.current.tuiActiveZoneParentSetter = null;
|
|
28
28
|
}
|
|
29
29
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TuiModalComponent, isStandalone: true, selector: "tui-modal", host: { attributes: { "aria-modal": "true", "data-tui-version": "5.
|
|
30
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TuiModalComponent, isStandalone: true, selector: "tui-modal", host: { attributes: { "aria-modal": "true", "data-tui-version": "5.31.0", "role": "dialog" }, listeners: { "animationend.self": "$event.target.classList.remove(\"tui-enter\")" }, properties: { "attr.aria-labelledby": "context.id" }, classAttribute: "tui-enter" }, hostDirectives: [{ directive: i1.TuiActiveZone }, { directive: i2.TuiFocusTrap }], ngImport: i0, template: `
|
|
31
31
|
<div tuiScrollRef>
|
|
32
32
|
<ng-container *polymorpheusOutlet="component(); context: context" />
|
|
33
33
|
<tui-scroll-controls class="t-scrollbars" />
|
|
34
34
|
</div>
|
|
35
|
-
`, isInline: true, styles: ["@keyframes tuiModalBackdrop{0%{-webkit-backdrop-filter:none;backdrop-filter:none}to{-webkit-backdrop-filter:brightness(.25);backdrop-filter:brightness(.25)}}@keyframes tuiDummy{to{color:currentColor}}tui-modal:where(*[data-tui-version=\"5.
|
|
35
|
+
`, isInline: true, styles: ["@keyframes tuiModalBackdrop{0%{-webkit-backdrop-filter:none;backdrop-filter:none}to{-webkit-backdrop-filter:brightness(.25);backdrop-filter:brightness(.25)}}@keyframes tuiDummy{to{color:currentColor}}tui-modal:where(*[data-tui-version=\"5.31.0\"]){scrollbar-width:none;position:fixed;inset:0;outline:none;overflow:auto;overscroll-behavior:none;transform:translateY(var(--t-root-top))}tui-modal:where(*[data-tui-version=\"5.31.0\"])::-webkit-scrollbar,tui-modal:where(*[data-tui-version=\"5.31.0\"])::-webkit-scrollbar-thumb{display:none}tui-modal:where(*[data-tui-version=\"5.31.0\"]):not(:last-of-type){interactivity:inert}tui-modal:where(*[data-tui-version=\"5.31.0\"]).tui-enter,tui-modal:where(*[data-tui-version=\"5.31.0\"]).tui-leave{animation-name:tuiDummy}@supports not (selector(:has(*))) or not (selector(:nth-child(1 of *))){tui-modal:where(*[data-tui-version=\"5.31.0\"]):last-of-type:not(.tui-leave):before{-webkit-backdrop-filter:brightness(.25);backdrop-filter:brightness(.25)}tui-modal:where(*[data-tui-version=\"5.31.0\"]):last-of-type.tui-enter,tui-modal:where(*[data-tui-version=\"5.31.0\"]):last-of-type.tui-leave{animation-name:tuiDummy}tui-modal:where(*[data-tui-version=\"5.31.0\"]):last-of-type.tui-enter:before,tui-modal:where(*[data-tui-version=\"5.31.0\"]):last-of-type.tui-leave:before{animation-name:tuiModalBackdrop}}@supports (selector(:has(*))){tui-modal:where(*[data-tui-version=\"5.31.0\"]):nth-last-child(1 of tui-modal:not(.tui-leave):not(:has(.tui-backdrop-hidden))):before{-webkit-backdrop-filter:brightness(.25);backdrop-filter:brightness(.25)}tui-modal:where(*[data-tui-version=\"5.31.0\"]):nth-last-child(1 of tui-modal:not(:has(.tui-backdrop-hidden))):is(.tui-enter,.tui-leave){animation-name:tuiDummy}tui-modal:where(*[data-tui-version=\"5.31.0\"]):nth-last-child(1 of tui-modal:not(:has(.tui-backdrop-hidden))):is(.tui-enter,.tui-leave):before{animation-name:tuiModalBackdrop}}tui-modal:where(*[data-tui-version=\"5.31.0\"]):before{transition-property:backdrop-filter;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);content:\"\";position:sticky;inset:0;display:block;block-size:200%;transition-timing-function:linear;animation-duration:var(--tui-duration);animation-timing-function:cubic-bezier(.14,.52,.35,.84);perspective:10rem}tui-modal:where(*[data-tui-version=\"5.31.0\"]).tui-leave:before{animation-direction:reverse}tui-modal:where(*[data-tui-version=\"5.31.0\"])>[tuiScrollRef]{position:sticky;inset:0;display:grid;place-items:center;block-size:100%;overflow:auto;overscroll-behavior:none;scrollbar-gutter:stable both-edges}tui-modal:where(*[data-tui-version=\"5.31.0\"])>[tuiScrollRef]>.t-scrollbars{position:fixed;inset:0;margin:0;color:#747474}tui-modal:where(*[data-tui-version=\"5.31.0\"])>[tuiScrollRef]>.t-scrollbars .t-bar_horizontal,tui-modal:where(*[data-tui-version=\"5.31.0\"])>[tuiScrollRef]>.t-scrollbars .t-bar_vertical .t-thumb[style*=\"height: 100%\"]{display:none}tui-modal:where(*[data-tui-version=\"5.31.0\"])>[tuiScrollRef]>.t-scrollbars:first-child,tui-modal:where(*[data-tui-version=\"5.31.0\"])>[tuiScrollRef]>.tui-enter+.t-scrollbars .t-bar_vertical,tui-modal:where(*[data-tui-version=\"5.31.0\"])>[tuiScrollRef]>.tui-leave+.t-scrollbars .t-bar_vertical{display:none}tui-modal:where(*[data-tui-version=\"5.31.0\"])>[tuiScrollRef]:has(>.tui-enter),tui-modal:where(*[data-tui-version=\"5.31.0\"])>[tuiScrollRef]:has(>.tui-leave){scrollbar-width:none}tui-modal:where(*[data-tui-version=\"5.31.0\"])>[tuiScrollRef]:has(>.tui-enter)::-webkit-scrollbar,tui-modal:where(*[data-tui-version=\"5.31.0\"])>[tuiScrollRef]:has(>.tui-leave)::-webkit-scrollbar,tui-modal:where(*[data-tui-version=\"5.31.0\"])>[tuiScrollRef]:has(>.tui-enter)::-webkit-scrollbar-thumb,tui-modal:where(*[data-tui-version=\"5.31.0\"])>[tuiScrollRef]:has(>.tui-leave)::-webkit-scrollbar-thumb{display:none}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "component", type: TuiScrollControls, selector: "tui-scroll-controls" }, { kind: "directive", type: TuiScrollRef, selector: "[tuiScrollRef]" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
|
|
36
36
|
}
|
|
37
37
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiModalComponent, decorators: [{
|
|
38
38
|
type: Component,
|
|
@@ -48,7 +48,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
|
|
|
48
48
|
class: 'tui-enter',
|
|
49
49
|
'[attr.aria-labelledby]': 'context.id',
|
|
50
50
|
'(animationend.self)': '$event.target.classList.remove("tui-enter")',
|
|
51
|
-
}, styles: ["@keyframes tuiModalBackdrop{0%{-webkit-backdrop-filter:none;backdrop-filter:none}to{-webkit-backdrop-filter:brightness(.25);backdrop-filter:brightness(.25)}}@keyframes tuiDummy{to{color:currentColor}}tui-modal:where(*[data-tui-version=\"5.
|
|
51
|
+
}, styles: ["@keyframes tuiModalBackdrop{0%{-webkit-backdrop-filter:none;backdrop-filter:none}to{-webkit-backdrop-filter:brightness(.25);backdrop-filter:brightness(.25)}}@keyframes tuiDummy{to{color:currentColor}}tui-modal:where(*[data-tui-version=\"5.31.0\"]){scrollbar-width:none;position:fixed;inset:0;outline:none;overflow:auto;overscroll-behavior:none;transform:translateY(var(--t-root-top))}tui-modal:where(*[data-tui-version=\"5.31.0\"])::-webkit-scrollbar,tui-modal:where(*[data-tui-version=\"5.31.0\"])::-webkit-scrollbar-thumb{display:none}tui-modal:where(*[data-tui-version=\"5.31.0\"]):not(:last-of-type){interactivity:inert}tui-modal:where(*[data-tui-version=\"5.31.0\"]).tui-enter,tui-modal:where(*[data-tui-version=\"5.31.0\"]).tui-leave{animation-name:tuiDummy}@supports not (selector(:has(*))) or not (selector(:nth-child(1 of *))){tui-modal:where(*[data-tui-version=\"5.31.0\"]):last-of-type:not(.tui-leave):before{-webkit-backdrop-filter:brightness(.25);backdrop-filter:brightness(.25)}tui-modal:where(*[data-tui-version=\"5.31.0\"]):last-of-type.tui-enter,tui-modal:where(*[data-tui-version=\"5.31.0\"]):last-of-type.tui-leave{animation-name:tuiDummy}tui-modal:where(*[data-tui-version=\"5.31.0\"]):last-of-type.tui-enter:before,tui-modal:where(*[data-tui-version=\"5.31.0\"]):last-of-type.tui-leave:before{animation-name:tuiModalBackdrop}}@supports (selector(:has(*))){tui-modal:where(*[data-tui-version=\"5.31.0\"]):nth-last-child(1 of tui-modal:not(.tui-leave):not(:has(.tui-backdrop-hidden))):before{-webkit-backdrop-filter:brightness(.25);backdrop-filter:brightness(.25)}tui-modal:where(*[data-tui-version=\"5.31.0\"]):nth-last-child(1 of tui-modal:not(:has(.tui-backdrop-hidden))):is(.tui-enter,.tui-leave){animation-name:tuiDummy}tui-modal:where(*[data-tui-version=\"5.31.0\"]):nth-last-child(1 of tui-modal:not(:has(.tui-backdrop-hidden))):is(.tui-enter,.tui-leave):before{animation-name:tuiModalBackdrop}}tui-modal:where(*[data-tui-version=\"5.31.0\"]):before{transition-property:backdrop-filter;transition-duration:var(--tui-duration, .3s);transition-timing-function:var(--tui-curve-productive-standard);content:\"\";position:sticky;inset:0;display:block;block-size:200%;transition-timing-function:linear;animation-duration:var(--tui-duration);animation-timing-function:cubic-bezier(.14,.52,.35,.84);perspective:10rem}tui-modal:where(*[data-tui-version=\"5.31.0\"]).tui-leave:before{animation-direction:reverse}tui-modal:where(*[data-tui-version=\"5.31.0\"])>[tuiScrollRef]{position:sticky;inset:0;display:grid;place-items:center;block-size:100%;overflow:auto;overscroll-behavior:none;scrollbar-gutter:stable both-edges}tui-modal:where(*[data-tui-version=\"5.31.0\"])>[tuiScrollRef]>.t-scrollbars{position:fixed;inset:0;margin:0;color:#747474}tui-modal:where(*[data-tui-version=\"5.31.0\"])>[tuiScrollRef]>.t-scrollbars .t-bar_horizontal,tui-modal:where(*[data-tui-version=\"5.31.0\"])>[tuiScrollRef]>.t-scrollbars .t-bar_vertical .t-thumb[style*=\"height: 100%\"]{display:none}tui-modal:where(*[data-tui-version=\"5.31.0\"])>[tuiScrollRef]>.t-scrollbars:first-child,tui-modal:where(*[data-tui-version=\"5.31.0\"])>[tuiScrollRef]>.tui-enter+.t-scrollbars .t-bar_vertical,tui-modal:where(*[data-tui-version=\"5.31.0\"])>[tuiScrollRef]>.tui-leave+.t-scrollbars .t-bar_vertical{display:none}tui-modal:where(*[data-tui-version=\"5.31.0\"])>[tuiScrollRef]:has(>.tui-enter),tui-modal:where(*[data-tui-version=\"5.31.0\"])>[tuiScrollRef]:has(>.tui-leave){scrollbar-width:none}tui-modal:where(*[data-tui-version=\"5.31.0\"])>[tuiScrollRef]:has(>.tui-enter)::-webkit-scrollbar,tui-modal:where(*[data-tui-version=\"5.31.0\"])>[tuiScrollRef]:has(>.tui-leave)::-webkit-scrollbar,tui-modal:where(*[data-tui-version=\"5.31.0\"])>[tuiScrollRef]:has(>.tui-enter)::-webkit-scrollbar-thumb,tui-modal:where(*[data-tui-version=\"5.31.0\"])>[tuiScrollRef]:has(>.tui-leave)::-webkit-scrollbar-thumb{display:none}\n"] }]
|
|
52
52
|
}] });
|
|
53
53
|
function findActive(zone, el) {
|
|
54
54
|
if (!el || !zone.contains(el)) {
|
|
@@ -1,13 +1,40 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, NgZone
|
|
2
|
+
import { Injectable, inject, NgZone } from '@angular/core';
|
|
3
|
+
import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
|
|
3
4
|
import { WA_ANIMATION_FRAME, WA_WINDOW } from '@ng-web-apis/common';
|
|
4
5
|
import { EMPTY_CLIENT_RECT } from '@taiga-ui/cdk/constants';
|
|
5
6
|
import { tuiZonefree } from '@taiga-ui/cdk/observables';
|
|
6
|
-
import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
|
|
7
7
|
import { TuiPositionAccessor } from '@taiga-ui/core/classes';
|
|
8
8
|
import { Observable, startWith, map, finalize } from 'rxjs';
|
|
9
9
|
import { WA_IS_WEBKIT } from '@ng-web-apis/platform';
|
|
10
10
|
|
|
11
|
+
/**
|
|
12
|
+
* @internal
|
|
13
|
+
* Converts client coordinates (getBoundingClientRect, TuiPositionService etc.)
|
|
14
|
+
* into local CSS pixels of the host element, compensating CSS `zoom`
|
|
15
|
+
*/
|
|
16
|
+
class TuiCSSZoomService {
|
|
17
|
+
constructor() {
|
|
18
|
+
this.el = tuiInjectElement();
|
|
19
|
+
}
|
|
20
|
+
descale(value) {
|
|
21
|
+
const zoom = this.el.currentCSSZoom || 1;
|
|
22
|
+
if (zoom === 1) {
|
|
23
|
+
return value;
|
|
24
|
+
}
|
|
25
|
+
if (!('left' in value)) {
|
|
26
|
+
return [value[0] / zoom, value[1] / zoom];
|
|
27
|
+
}
|
|
28
|
+
const { left, top, width, height } = value;
|
|
29
|
+
return new DOMRect(left / zoom, top / zoom, width / zoom, height / zoom);
|
|
30
|
+
}
|
|
31
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiCSSZoomService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
32
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiCSSZoomService }); }
|
|
33
|
+
}
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiCSSZoomService, decorators: [{
|
|
35
|
+
type: Injectable
|
|
36
|
+
}] });
|
|
37
|
+
|
|
11
38
|
class TuiPositionService extends Observable {
|
|
12
39
|
constructor() {
|
|
13
40
|
const animationFrame$ = inject(WA_ANIMATION_FRAME);
|
|
@@ -60,5 +87,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
|
|
|
60
87
|
* Generated bundle index. Do not edit.
|
|
61
88
|
*/
|
|
62
89
|
|
|
63
|
-
export { TuiPositionService, TuiVisualViewportService };
|
|
90
|
+
export { TuiCSSZoomService, TuiPositionService, TuiVisualViewportService };
|
|
64
91
|
//# sourceMappingURL=taiga-ui-core-services.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-services.mjs","sources":["../../../projects/core/services/position.service.ts","../../../projects/core/services/visual-viewport.service.ts","../../../projects/core/services/taiga-ui-core-services.ts"],"sourcesContent":["import {inject, Injectable, NgZone} from '@angular/core';\nimport {WA_ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk/constants';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiPositionAccessor} from '@taiga-ui/core/classes';\nimport {type TuiPoint} from '@taiga-ui/core/types';\nimport {finalize, map, Observable, startWith} from 'rxjs';\n\n@Injectable()\nexport class TuiPositionService extends Observable<TuiPoint> {\n private readonly el = tuiInjectElement();\n private readonly accessor = inject(TuiPositionAccessor);\n private rect?: DOMRect;\n\n constructor() {\n const animationFrame$ = inject(WA_ANIMATION_FRAME);\n const zone = inject(NgZone);\n\n super((subscriber) =>\n animationFrame$\n .pipe(\n startWith(null),\n map(() => {\n const rect = this.el.getBoundingClientRect();\n const animations = this.el.getAnimations?.() || [];\n\n const animated =\n animations.length &&\n animations.every(\n ({effect}) =>\n effect?.getComputedTiming().progress !== null,\n ) &&\n animations.some(\n (a) =>\n 'animationName' in a &&\n a.animationName === 'tuiScale',\n );\n\n this.rect = (animated && this.rect) || rect;\n\n return this.accessor.getPosition(this.rect);\n }),\n tuiZonefree(zone),\n finalize(() => this.accessor.getPosition(EMPTY_CLIENT_RECT)),\n )\n .subscribe(subscriber),\n );\n }\n}\n","import {inject, Injectable} from '@angular/core';\nimport {WA_WINDOW} from '@ng-web-apis/common';\nimport {WA_IS_WEBKIT} from '@ng-web-apis/platform';\nimport {type TuiPoint} from '@taiga-ui/core/types';\n\n@Injectable({providedIn: 'root'})\nexport class TuiVisualViewportService {\n private readonly isWebkit = inject(WA_IS_WEBKIT);\n private readonly win = inject(WA_WINDOW);\n\n // https://bugs.webkit.org/show_bug.cgi?id=207089\n public correct(point: TuiPoint): TuiPoint {\n return this.isWebkit\n ? [\n point[0] + (this.win.visualViewport?.offsetLeft ?? 0),\n point[1] + (this.win.visualViewport?.offsetTop ?? 0),\n ]\n : point;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-services.mjs","sources":["../../../projects/core/services/css-zoom.service.ts","../../../projects/core/services/position.service.ts","../../../projects/core/services/visual-viewport.service.ts","../../../projects/core/services/taiga-ui-core-services.ts"],"sourcesContent":["import {Injectable} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {type TuiPoint} from '@taiga-ui/core/types';\n\n/**\n * @internal\n * Converts client coordinates (getBoundingClientRect, TuiPositionService etc.)\n * into local CSS pixels of the host element, compensating CSS `zoom`\n */\n@Injectable()\nexport class TuiCSSZoomService {\n private readonly el = tuiInjectElement();\n\n public descale(point: TuiPoint): TuiPoint;\n public descale(rect: DOMRect): DOMRect;\n public descale(value: DOMRect | TuiPoint): DOMRect | TuiPoint {\n const zoom = this.el.currentCSSZoom || 1;\n\n if (zoom === 1) {\n return value;\n }\n\n if (!('left' in value)) {\n return [value[0] / zoom, value[1] / zoom];\n }\n\n const {left, top, width, height} = value;\n\n return new DOMRect(left / zoom, top / zoom, width / zoom, height / zoom);\n }\n}\n","import {inject, Injectable, NgZone} from '@angular/core';\nimport {WA_ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk/constants';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiPositionAccessor} from '@taiga-ui/core/classes';\nimport {type TuiPoint} from '@taiga-ui/core/types';\nimport {finalize, map, Observable, startWith} from 'rxjs';\n\n@Injectable()\nexport class TuiPositionService extends Observable<TuiPoint> {\n private readonly el = tuiInjectElement();\n private readonly accessor = inject(TuiPositionAccessor);\n private rect?: DOMRect;\n\n constructor() {\n const animationFrame$ = inject(WA_ANIMATION_FRAME);\n const zone = inject(NgZone);\n\n super((subscriber) =>\n animationFrame$\n .pipe(\n startWith(null),\n map(() => {\n const rect = this.el.getBoundingClientRect();\n const animations = this.el.getAnimations?.() || [];\n\n const animated =\n animations.length &&\n animations.every(\n ({effect}) =>\n effect?.getComputedTiming().progress !== null,\n ) &&\n animations.some(\n (a) =>\n 'animationName' in a &&\n a.animationName === 'tuiScale',\n );\n\n this.rect = (animated && this.rect) || rect;\n\n return this.accessor.getPosition(this.rect);\n }),\n tuiZonefree(zone),\n finalize(() => this.accessor.getPosition(EMPTY_CLIENT_RECT)),\n )\n .subscribe(subscriber),\n );\n }\n}\n","import {inject, Injectable} from '@angular/core';\nimport {WA_WINDOW} from '@ng-web-apis/common';\nimport {WA_IS_WEBKIT} from '@ng-web-apis/platform';\nimport {type TuiPoint} from '@taiga-ui/core/types';\n\n@Injectable({providedIn: 'root'})\nexport class TuiVisualViewportService {\n private readonly isWebkit = inject(WA_IS_WEBKIT);\n private readonly win = inject(WA_WINDOW);\n\n // https://bugs.webkit.org/show_bug.cgi?id=207089\n public correct(point: TuiPoint): TuiPoint {\n return this.isWebkit\n ? [\n point[0] + (this.win.visualViewport?.offsetLeft ?? 0),\n point[1] + (this.win.visualViewport?.offsetTop ?? 0),\n ]\n : point;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taiga-ui/core",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.31.0",
|
|
4
4
|
"description": "Core library for creating Angular components and applications using Taiga UI",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -37,15 +37,15 @@
|
|
|
37
37
|
"@angular/forms": ">=19.0.0",
|
|
38
38
|
"@angular/platform-browser": ">=19.0.0",
|
|
39
39
|
"@angular/router": ">=19.0.0",
|
|
40
|
-
"@ng-web-apis/common": "^5.4.
|
|
41
|
-
"@ng-web-apis/intersection-observer": "^5.4.
|
|
42
|
-
"@ng-web-apis/mutation-observer": "^5.4.
|
|
43
|
-
"@ng-web-apis/platform": "^5.4.
|
|
44
|
-
"@taiga-ui/cdk": "5.
|
|
40
|
+
"@ng-web-apis/common": "^5.4.1",
|
|
41
|
+
"@ng-web-apis/intersection-observer": "^5.4.1",
|
|
42
|
+
"@ng-web-apis/mutation-observer": "^5.4.1",
|
|
43
|
+
"@ng-web-apis/platform": "^5.4.1",
|
|
44
|
+
"@taiga-ui/cdk": "5.31.0",
|
|
45
45
|
"@taiga-ui/event-plugins": "^5.1.0",
|
|
46
|
-
"@taiga-ui/i18n": "5.
|
|
46
|
+
"@taiga-ui/i18n": "5.31.0",
|
|
47
47
|
"@taiga-ui/polymorpheus": "^5.0.1",
|
|
48
|
-
"@taiga-ui/styles": "5.
|
|
48
|
+
"@taiga-ui/styles": "5.31.0",
|
|
49
49
|
"rxjs": ">=7.0.0"
|
|
50
50
|
},
|
|
51
51
|
"schematics": "./schematics/collection.json",
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type TuiPoint } from '@taiga-ui/core/types';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* @internal
|
|
5
|
+
* Converts client coordinates (getBoundingClientRect, TuiPositionService etc.)
|
|
6
|
+
* into local CSS pixels of the host element, compensating CSS `zoom`
|
|
7
|
+
*/
|
|
8
|
+
export declare class TuiCSSZoomService {
|
|
9
|
+
private readonly el;
|
|
10
|
+
descale(point: TuiPoint): TuiPoint;
|
|
11
|
+
descale(rect: DOMRect): DOMRect;
|
|
12
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TuiCSSZoomService, never>;
|
|
13
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<TuiCSSZoomService>;
|
|
14
|
+
}
|
package/services/index.d.ts
CHANGED