@taiga-ui/kit 4.52.0-canary.c107f6a → 4.52.0-canary.ca43bcb
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/README.md +1 -1
- package/components/badge/badge.options.d.ts +1 -3
- package/components/badge-notification/badge-notification.options.d.ts +1 -3
- package/components/block/block.options.d.ts +1 -3
- package/components/breadcrumbs/breadcrumbs.options.d.ts +1 -3
- package/components/chip/chip.options.d.ts +1 -3
- package/components/combo-box/combo-box.d.ts +2 -0
- package/components/combo-box/combo-box.directive.d.ts +5 -5
- package/components/combo-box/index.d.ts +1 -0
- package/components/confirm/confirm.component.d.ts +4 -3
- package/components/confirm/confirm.service.d.ts +1 -1
- package/components/copy/copy.component.d.ts +1 -1
- package/components/copy/copy.directive.d.ts +2 -4
- package/components/data-list-wrapper/data-list-group-wrapper.component.d.ts +2 -2
- package/components/data-list-wrapper/data-list-wrapper.component.d.ts +14 -22
- package/components/data-list-wrapper/{data-list-wrapper.module.d.ts → data-list-wrapper.d.ts} +1 -2
- package/components/data-list-wrapper/index.d.ts +1 -1
- package/components/files/file/file.options.d.ts +1 -1
- package/components/files/input-files/input-files.options.d.ts +1 -3
- package/components/input-chip/input-chip.component.d.ts +9 -8
- package/components/input-chip/input-chip.d.ts +1 -1
- package/components/input-chip/input-chip.directive.d.ts +7 -12
- package/components/input-color/index.d.ts +1 -0
- package/components/input-color/input-color.component.d.ts +4 -4
- package/components/input-color/input-color.d.ts +2 -0
- package/components/input-date/input-date.d.ts +1 -1
- package/components/input-date/input-date.directive.d.ts +9 -11
- package/components/input-date-multi/input-date-multi.d.ts +1 -2
- package/components/input-date-multi/input-date-multi.directive.d.ts +9 -13
- package/components/input-date-range/input-date-range.d.ts +1 -1
- package/components/input-date-range/input-date-range.directive.d.ts +3 -3
- package/components/input-date-time/input-date-time.d.ts +1 -1
- package/components/input-date-time/input-date-time.directive.d.ts +3 -3
- package/components/input-month/input-month.d.ts +1 -1
- package/components/input-month/input-month.directive.d.ts +5 -4
- package/components/input-month-range/input-month-range.d.ts +1 -1
- package/components/input-month-range/input-month-range.directive.d.ts +5 -4
- package/components/input-number/input-number.d.ts +1 -1
- package/components/input-number/input-number.directive.d.ts +3 -3
- package/components/input-phone/index.d.ts +1 -0
- package/components/input-phone/input-phone.d.ts +2 -0
- package/components/input-phone/input-phone.directive.d.ts +7 -7
- package/components/input-phone-international/index.d.ts +1 -0
- package/components/input-phone-international/input-phone-international.component.d.ts +5 -10
- package/components/input-phone-international/input-phone-international.d.ts +2 -0
- package/components/input-phone-international/input-phone-international.options.d.ts +1 -3
- package/components/input-pin/index.d.ts +1 -0
- package/components/input-pin/input-pin.component.d.ts +3 -3
- package/components/input-pin/input-pin.d.ts +2 -0
- package/components/input-range/input-range.component.d.ts +9 -41
- package/components/input-slider/input-slider.d.ts +1 -1
- package/components/input-slider/input-slider.directive.d.ts +1 -1
- package/components/input-time/input-time.component.d.ts +1 -3
- package/components/input-time/input-time.d.ts +1 -1
- package/components/input-time/input-time.directive.d.ts +4 -4
- package/components/input-year/input-year.d.ts +1 -1
- package/components/input-year/input-year.directive.d.ts +5 -5
- package/components/line-clamp/line-clamp-box.component.d.ts +1 -1
- package/components/line-clamp/line-clamp.options.d.ts +1 -3
- package/components/multi-select/multi-select-group/multi-select-group.component.d.ts +4 -6
- package/components/notification-middle/notification-middle.component.d.ts +2 -2
- package/components/notification-middle/notification-middle.directive.d.ts +4 -3
- package/components/notification-middle/notification-middle.service.d.ts +7 -3
- package/components/preview/dialog/preview-dialog.component.d.ts +2 -2
- package/components/preview/dialog/preview-dialog.directive.d.ts +3 -3
- package/components/preview/dialog/preview-dialog.service.d.ts +5 -2
- package/components/preview/preview.d.ts +2 -1
- package/components/progress/progress.options.d.ts +1 -3
- package/components/push/push-alert.component.d.ts +2 -2
- package/components/push/push.options.d.ts +4 -3
- package/components/push/push.service.d.ts +2 -2
- package/components/radio-list/radio-list.component.d.ts +5 -3
- package/components/rating/rating.component.d.ts +1 -1
- package/components/rating/rating.options.d.ts +1 -3
- package/components/routable-dialog/generate-dialogable-route.d.ts +1 -1
- package/components/segmented/segmented.component.d.ts +4 -6
- package/components/segmented/segmented.directive.d.ts +6 -7
- package/components/select/native-select/native-select.component.d.ts +4 -4
- package/components/select/select.d.ts +1 -1
- package/components/select/select.directive.d.ts +4 -3
- package/components/slider/slider.options.d.ts +1 -6
- package/components/stepper/step.component.d.ts +6 -8
- package/components/stepper/stepper.component.d.ts +6 -11
- package/components/tabs/tabs.options.d.ts +1 -6
- package/components/textarea/index.d.ts +2 -1
- package/components/textarea/textarea.component.d.ts +4 -4
- package/components/textarea/textarea.d.ts +3 -0
- package/components/textarea/textarea.directive.d.ts +13 -0
- package/components/toast/toast.component.d.ts +4 -4
- package/components/toast/toast.options.d.ts +4 -3
- package/components/toast/toast.service.d.ts +2 -2
- package/components/tree/components/tree-item-content/tree-item-content.component.d.ts +7 -0
- package/components/tree/misc/tree.constants.d.ts +0 -3
- package/components/tree/misc/tree.tokens.d.ts +1 -6
- package/directives/button-select/button-select.directive.d.ts +3 -2
- package/directives/data-list-dropdown-manager/data-list-dropdown-manager.directive.d.ts +5 -5
- package/directives/fade/fade.directive.d.ts +1 -2
- package/directives/fluid-typography/fluid-typography.options.d.ts +1 -3
- package/directives/index.d.ts +0 -1
- package/directives/password/password.directive.d.ts +1 -1
- package/directives/tooltip/tooltip.directive.d.ts +1 -1
- package/fesm2022/taiga-ui-kit-components-avatar.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-avatar.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-badge-notification.mjs +3 -8
- package/fesm2022/taiga-ui-kit-components-badge-notification.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-badge.mjs +4 -8
- package/fesm2022/taiga-ui-kit-components-badge.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-block.mjs +4 -8
- package/fesm2022/taiga-ui-kit-components-block.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs +8 -13
- package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-calendar-month.mjs +3 -11
- package/fesm2022/taiga-ui-kit-components-calendar-month.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-calendar-range.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-calendar-range.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-checkbox.mjs +1 -2
- package/fesm2022/taiga-ui-kit-components-checkbox.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-chip.mjs +6 -10
- package/fesm2022/taiga-ui-kit-components-chip.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-combo-box.mjs +27 -24
- package/fesm2022/taiga-ui-kit-components-combo-box.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-compass.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-compass.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-confirm.mjs +5 -7
- package/fesm2022/taiga-ui-kit-components-confirm.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-copy.mjs +9 -15
- package/fesm2022/taiga-ui-kit-components-copy.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-data-list-wrapper.mjs +17 -80
- package/fesm2022/taiga-ui-kit-components-data-list-wrapper.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-files.mjs +10 -15
- package/fesm2022/taiga-ui-kit-components-files.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-filter.mjs +1 -1
- package/fesm2022/taiga-ui-kit-components-filter.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-floating-container.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-floating-container.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-chip.mjs +58 -68
- package/fesm2022/taiga-ui-kit-components-input-chip.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-color.mjs +16 -13
- package/fesm2022/taiga-ui-kit-components-input-color.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-date-multi.mjs +28 -41
- package/fesm2022/taiga-ui-kit-components-input-date-multi.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-date-range.mjs +15 -10
- package/fesm2022/taiga-ui-kit-components-input-date-range.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-date-time.mjs +17 -14
- package/fesm2022/taiga-ui-kit-components-input-date-time.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-date.mjs +23 -23
- package/fesm2022/taiga-ui-kit-components-input-date.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-month-range.mjs +13 -10
- package/fesm2022/taiga-ui-kit-components-input-month-range.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-month.mjs +14 -11
- package/fesm2022/taiga-ui-kit-components-input-month.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-number.mjs +16 -14
- package/fesm2022/taiga-ui-kit-components-input-number.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs +81 -78
- package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-phone.mjs +21 -18
- package/fesm2022/taiga-ui-kit-components-input-phone.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-pin.mjs +10 -9
- package/fesm2022/taiga-ui-kit-components-input-pin.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-range.mjs +52 -49
- package/fesm2022/taiga-ui-kit-components-input-range.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-slider.mjs +5 -5
- package/fesm2022/taiga-ui-kit-components-input-slider.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-time.mjs +27 -29
- package/fesm2022/taiga-ui-kit-components-input-time.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-year.mjs +17 -12
- package/fesm2022/taiga-ui-kit-components-input-year.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-line-clamp.mjs +8 -12
- package/fesm2022/taiga-ui-kit-components-line-clamp.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-multi-select.mjs +17 -27
- package/fesm2022/taiga-ui-kit-components-multi-select.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-notification-middle.mjs +30 -18
- package/fesm2022/taiga-ui-kit-components-notification-middle.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-pager.mjs +4 -6
- package/fesm2022/taiga-ui-kit-components-pager.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-pagination.mjs +2 -3
- package/fesm2022/taiga-ui-kit-components-pagination.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-pin.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-pin.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-preview.mjs +28 -18
- package/fesm2022/taiga-ui-kit-components-preview.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-progress.mjs +4 -8
- package/fesm2022/taiga-ui-kit-components-progress.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-push.mjs +12 -13
- package/fesm2022/taiga-ui-kit-components-push.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-radio-list.mjs +4 -4
- package/fesm2022/taiga-ui-kit-components-radio-list.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-radio.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-radio.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-range.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-range.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-rating.mjs +4 -9
- package/fesm2022/taiga-ui-kit-components-rating.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-routable-dialog.mjs +1 -1
- package/fesm2022/taiga-ui-kit-components-routable-dialog.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-segmented.mjs +27 -53
- package/fesm2022/taiga-ui-kit-components-segmented.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-select.mjs +36 -20
- package/fesm2022/taiga-ui-kit-components-select.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-slider.mjs +7 -14
- package/fesm2022/taiga-ui-kit-components-slider.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-stepper.mjs +41 -75
- package/fesm2022/taiga-ui-kit-components-stepper.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-switch.mjs +1 -2
- package/fesm2022/taiga-ui-kit-components-switch.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-tabs.mjs +9 -14
- package/fesm2022/taiga-ui-kit-components-tabs.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-textarea.mjs +45 -48
- package/fesm2022/taiga-ui-kit-components-textarea.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-toast.mjs +15 -15
- package/fesm2022/taiga-ui-kit-components-toast.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-tree.mjs +34 -33
- package/fesm2022/taiga-ui-kit-components-tree.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-button-select.mjs +15 -6
- package/fesm2022/taiga-ui-kit-directives-button-select.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-chevron.mjs +3 -2
- package/fesm2022/taiga-ui-kit-directives-chevron.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-data-list-dropdown-manager.mjs +23 -50
- package/fesm2022/taiga-ui-kit-directives-data-list-dropdown-manager.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-fade.mjs +7 -6
- package/fesm2022/taiga-ui-kit-directives-fade.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-fluid-typography.mjs +3 -8
- package/fesm2022/taiga-ui-kit-directives-fluid-typography.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-password.mjs +7 -5
- package/fesm2022/taiga-ui-kit-directives-password.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-tooltip.mjs +4 -4
- package/fesm2022/taiga-ui-kit-directives-tooltip.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-unfinished-validator.mjs +1 -1
- package/fesm2022/taiga-ui-kit-directives-unfinished-validator.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-unmask-handler.mjs +1 -1
- package/fesm2022/taiga-ui-kit-directives-unmask-handler.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives.mjs +0 -1
- package/fesm2022/taiga-ui-kit-directives.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-pipes-auto-color.mjs +43 -0
- package/fesm2022/taiga-ui-kit-pipes-auto-color.mjs.map +1 -0
- package/fesm2022/taiga-ui-kit-pipes-flag.mjs +31 -0
- package/fesm2022/taiga-ui-kit-pipes-flag.mjs.map +1 -0
- package/fesm2022/taiga-ui-kit-pipes-hide-selected.mjs +1 -1
- package/fesm2022/taiga-ui-kit-pipes-hide-selected.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-pipes-initials.mjs +28 -0
- package/fesm2022/taiga-ui-kit-pipes-initials.mjs.map +1 -0
- package/fesm2022/taiga-ui-kit-pipes-stringify-content.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-pipes.mjs +3 -0
- package/fesm2022/taiga-ui-kit-pipes.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-tokens.mjs +3 -18
- package/fesm2022/taiga-ui-kit-tokens.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-utils.mjs +2 -8
- package/fesm2022/taiga-ui-kit-utils.mjs.map +1 -1
- package/package.json +30 -26
- package/pipes/auto-color/auto-color.pipe.d.ts +13 -0
- package/pipes/auto-color/index.d.ts +1 -0
- package/pipes/flag/flag.pipe.d.ts +14 -0
- package/pipes/flag/index.d.ts +1 -0
- package/pipes/index.d.ts +3 -0
- package/pipes/initials/index.d.ts +1 -0
- package/pipes/initials/initials.pipe.d.ts +7 -0
- package/pipes/stringify-content/stringify-content.pipe.d.ts +2 -3
- package/tokens/items-handlers.d.ts +1 -7
- package/tokens/preview-icons.d.ts +1 -3
- package/utils/index.d.ts +0 -1
- package/components/textarea/textarea-limit.directive.d.ts +0 -26
- package/directives/lazy-loading/index.d.ts +0 -2
- package/directives/lazy-loading/lazy-loading.directive.d.ts +0 -18
- package/directives/lazy-loading/lazy-loading.service.d.ts +0 -12
- package/fesm2022/taiga-ui-kit-components-preview-dialog.mjs +0 -63
- package/fesm2022/taiga-ui-kit-components-preview-dialog.mjs.map +0 -1
- package/fesm2022/taiga-ui-kit-directives-lazy-loading.mjs +0 -80
- package/fesm2022/taiga-ui-kit-directives-lazy-loading.mjs.map +0 -1
- package/utils/phone.d.ts +0 -3
|
@@ -1,19 +1,25 @@
|
|
|
1
|
-
import { __decorate } from 'tslib';
|
|
2
1
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { inject, DestroyRef,
|
|
4
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
5
|
-
import {
|
|
6
|
-
import { tuiTypedFromEvent, tuiQueryListChanges, tuiPreventDefault } from '@taiga-ui/cdk/observables';
|
|
2
|
+
import { inject, DestroyRef, contentChildren, ElementRef, Directive } from '@angular/core';
|
|
3
|
+
import { toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { tuiTypedFromEvent, tuiPreventDefault } from '@taiga-ui/cdk/observables';
|
|
7
5
|
import { tuiGetClosestFocusable } from '@taiga-ui/cdk/utils/focus';
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import { merge, switchMap, EMPTY, take, filter, tap, map, shareReplay, debounceTime } from 'rxjs';
|
|
6
|
+
import { TuiDropdownDirective } from '@taiga-ui/core/portals/dropdown';
|
|
7
|
+
import { map, shareReplay, switchMap, merge, filter, debounceTime, EMPTY, take, tap } from 'rxjs';
|
|
11
8
|
|
|
12
9
|
class TuiDataListDropdownManager {
|
|
13
10
|
constructor() {
|
|
14
|
-
this.dropdowns = EMPTY_QUERY;
|
|
15
|
-
this.els = EMPTY_QUERY;
|
|
16
11
|
this.destroyRef = inject(DestroyRef);
|
|
12
|
+
this.dropdowns = contentChildren(TuiDropdownDirective, {
|
|
13
|
+
descendants: true,
|
|
14
|
+
});
|
|
15
|
+
this.els = contentChildren(TuiDropdownDirective, {
|
|
16
|
+
read: ElementRef,
|
|
17
|
+
descendants: true,
|
|
18
|
+
});
|
|
19
|
+
this.elements$ = toObservable(this.els).pipe(map((array) => array.map(({ nativeElement }) => nativeElement)), shareReplay({ bufferSize: 1, refCount: true }));
|
|
20
|
+
this.right$ = this.elements$.pipe(switchMap((elements) => merge(...elements.map((element, index) => tuiTypedFromEvent(element, 'keydown').pipe(filter(({ key }) => key === 'ArrowRight'), tuiPreventDefault(), map(() => index))))));
|
|
21
|
+
this.immediate$ = this.elements$.pipe(switchMap((elements) => merge(...elements.map((element, index) => tuiTypedFromEvent(element, 'click').pipe(map(() => index))))));
|
|
22
|
+
this.debounce$ = this.elements$.pipe(switchMap((elements) => merge(...elements.map((element, index) => merge(tuiTypedFromEvent(element, 'focus'), tuiTypedFromEvent(element, 'blur')).pipe(filter(({ relatedTarget }) => this.notInDropdown(relatedTarget, index)), map(({ type }) => (type === 'focus' ? index : NaN)))))), debounceTime(300));
|
|
17
23
|
}
|
|
18
24
|
ngAfterViewInit() {
|
|
19
25
|
this.right$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((index) => {
|
|
@@ -21,11 +27,11 @@ class TuiDataListDropdownManager {
|
|
|
21
27
|
});
|
|
22
28
|
merge(this.immediate$, this.debounce$)
|
|
23
29
|
.pipe(switchMap((active) => {
|
|
24
|
-
this.dropdowns.forEach((dropdown, index) => {
|
|
30
|
+
this.dropdowns().forEach((dropdown, index) => {
|
|
25
31
|
dropdown.toggle(index === active);
|
|
26
32
|
});
|
|
27
|
-
const element = this.els
|
|
28
|
-
const dropdown = this.dropdowns
|
|
33
|
+
const element = this.els()[active];
|
|
34
|
+
const dropdown = this.dropdowns()[active];
|
|
29
35
|
const ref = dropdown?.ref();
|
|
30
36
|
if (!element || !dropdown || !ref) {
|
|
31
37
|
return EMPTY;
|
|
@@ -43,26 +49,11 @@ class TuiDataListDropdownManager {
|
|
|
43
49
|
}), takeUntilDestroyed(this.destroyRef))
|
|
44
50
|
.subscribe();
|
|
45
51
|
}
|
|
46
|
-
get elements$() {
|
|
47
|
-
return tuiQueryListChanges(this.els).pipe(map((array) => array.map(({ nativeElement }) => nativeElement)), shareReplay({ bufferSize: 1, refCount: true }));
|
|
48
|
-
}
|
|
49
|
-
get right$() {
|
|
50
|
-
return this.elements$.pipe(switchMap((elements) => merge(...elements.map((element, index) => tuiTypedFromEvent(element, 'keydown').pipe(filter(({ key }) => key === 'ArrowRight'), tuiPreventDefault(), map(() => index))))));
|
|
51
|
-
}
|
|
52
|
-
get immediate$() {
|
|
53
|
-
return this.elements$.pipe(switchMap((elements) => merge(...elements.map((element, index) => tuiTypedFromEvent(element, 'click').pipe(map(() => index))))));
|
|
54
|
-
}
|
|
55
|
-
get debounce$() {
|
|
56
|
-
return this.elements$.pipe(switchMap((elements) => merge(...elements.map((element, index) => merge(tuiTypedFromEvent(element, 'focus'), tuiTypedFromEvent(element, 'blur')).pipe(filter(({ relatedTarget }) => this.notInDropdown(relatedTarget, index)), map(({ type }) => (type === 'focus' ? index : NaN)))))), debounceTime(300));
|
|
57
|
-
}
|
|
58
52
|
notInDropdown(element, index) {
|
|
59
|
-
return !this.dropdowns
|
|
60
|
-
.get(index)
|
|
61
|
-
?.ref()
|
|
62
|
-
?.location.nativeElement.contains(element);
|
|
53
|
+
return !this.dropdowns()[index]?.ref()?.location.nativeElement.contains(element);
|
|
63
54
|
}
|
|
64
55
|
tryToFocus(index) {
|
|
65
|
-
const content = this.dropdowns
|
|
56
|
+
const content = this.dropdowns()[index]?.ref()?.location.nativeElement;
|
|
66
57
|
if (!content) {
|
|
67
58
|
return;
|
|
68
59
|
}
|
|
@@ -75,32 +66,14 @@ class TuiDataListDropdownManager {
|
|
|
75
66
|
item?.focus();
|
|
76
67
|
}
|
|
77
68
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDataListDropdownManager, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
78
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
69
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "19.2.15", type: TuiDataListDropdownManager, isStandalone: true, selector: "tui-data-list[tuiDataListDropdownManager]", queries: [{ propertyName: "dropdowns", predicate: TuiDropdownDirective, descendants: true, isSignal: true }, { propertyName: "els", predicate: TuiDropdownDirective, descendants: true, read: ElementRef, isSignal: true }], ngImport: i0 }); }
|
|
79
70
|
}
|
|
80
|
-
__decorate([
|
|
81
|
-
tuiPure
|
|
82
|
-
], TuiDataListDropdownManager.prototype, "elements$", null);
|
|
83
|
-
__decorate([
|
|
84
|
-
tuiPure
|
|
85
|
-
], TuiDataListDropdownManager.prototype, "right$", null);
|
|
86
|
-
__decorate([
|
|
87
|
-
tuiPure
|
|
88
|
-
], TuiDataListDropdownManager.prototype, "immediate$", null);
|
|
89
|
-
__decorate([
|
|
90
|
-
tuiPure
|
|
91
|
-
], TuiDataListDropdownManager.prototype, "debounce$", null);
|
|
92
71
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDataListDropdownManager, decorators: [{
|
|
93
72
|
type: Directive,
|
|
94
73
|
args: [{
|
|
95
74
|
selector: 'tui-data-list[tuiDataListDropdownManager]',
|
|
96
75
|
}]
|
|
97
|
-
}]
|
|
98
|
-
type: ContentChildren,
|
|
99
|
-
args: [TuiDropdownDirective, { descendants: true }]
|
|
100
|
-
}], els: [{
|
|
101
|
-
type: ContentChildren,
|
|
102
|
-
args: [TuiDropdownDirective, { read: ElementRef, descendants: true }]
|
|
103
|
-
}], elements$: [], right$: [], immediate$: [], debounce$: [] } });
|
|
76
|
+
}] });
|
|
104
77
|
|
|
105
78
|
/**
|
|
106
79
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-directives-data-list-dropdown-manager.mjs","sources":["../../../projects/kit/directives/data-list-dropdown-manager/data-list-dropdown-manager.directive.ts","../../../projects/kit/directives/data-list-dropdown-manager/taiga-ui-kit-directives-data-list-dropdown-manager.ts"],"sourcesContent":["import {\n type AfterViewInit,\n ContentChildren,\n DestroyRef,\n Directive,\n ElementRef,\n inject,\n type QueryList,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {\n tuiPreventDefault,\n tuiQueryListChanges,\n tuiTypedFromEvent,\n} from '@taiga-ui/cdk/observables';\nimport {tuiGetClosestFocusable} from '@taiga-ui/cdk/utils/focus';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiDropdownDirective} from '@taiga-ui/core/directives/dropdown';\nimport {\n debounceTime,\n EMPTY,\n filter,\n map,\n merge,\n type Observable,\n shareReplay,\n switchMap,\n take,\n tap,\n} from 'rxjs';\n\n@Directive({\n selector: 'tui-data-list[tuiDataListDropdownManager]',\n})\nexport class TuiDataListDropdownManager implements AfterViewInit {\n @ContentChildren(TuiDropdownDirective, {descendants: true})\n private readonly dropdowns: QueryList<TuiDropdownDirective> = EMPTY_QUERY;\n\n @ContentChildren(TuiDropdownDirective, {read: ElementRef, descendants: true})\n private readonly els: QueryList<ElementRef<HTMLElement>> = EMPTY_QUERY;\n\n private readonly destroyRef = inject(DestroyRef);\n\n public ngAfterViewInit(): void {\n this.right$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((index) => {\n this.tryToFocus(index);\n });\n\n merge(this.immediate$, this.debounce$)\n .pipe(\n switchMap((active) => {\n this.dropdowns.forEach((dropdown, index) => {\n dropdown.toggle(index === active);\n });\n\n const element = this.els.get(active);\n const dropdown = this.dropdowns.get(active);\n const ref = dropdown?.ref();\n\n if (!element || !dropdown || !ref) {\n return EMPTY;\n }\n\n const {nativeElement} = ref.location;\n const mouseEnter$ = tuiTypedFromEvent(\n nativeElement,\n 'mouseenter',\n ).pipe(take(1));\n const esc$ = merge(\n tuiTypedFromEvent(element.nativeElement, 'keydown'),\n tuiTypedFromEvent(nativeElement, 'keydown'),\n ).pipe(filter(({key}) => key === 'Escape'));\n\n return merge(mouseEnter$, esc$).pipe(\n tap((event) => {\n if (dropdown.ref()) {\n event.stopPropagation();\n }\n\n element.nativeElement.focus();\n dropdown.toggle('offsetX' in event);\n }),\n );\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe();\n }\n\n @tuiPure\n private get elements$(): Observable<readonly HTMLElement[]> {\n return tuiQueryListChanges(this.els).pipe(\n map((array) => array.map(({nativeElement}) => nativeElement)),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n }\n\n @tuiPure\n private get right$(): Observable<number> {\n return this.elements$.pipe(\n switchMap((elements) =>\n merge(\n ...elements.map((element, index) =>\n tuiTypedFromEvent(element, 'keydown').pipe(\n filter(({key}) => key === 'ArrowRight'),\n tuiPreventDefault(),\n map(() => index),\n ),\n ),\n ),\n ),\n );\n }\n\n @tuiPure\n private get immediate$(): Observable<number> {\n return this.elements$.pipe(\n switchMap((elements) =>\n merge(\n ...elements.map((element, index) =>\n tuiTypedFromEvent(element, 'click').pipe(map(() => index)),\n ),\n ),\n ),\n );\n }\n\n @tuiPure\n private get debounce$(): Observable<number> {\n return this.elements$.pipe(\n switchMap((elements) =>\n merge(\n ...elements.map((element, index) =>\n merge(\n tuiTypedFromEvent(element, 'focus'),\n tuiTypedFromEvent(element, 'blur'),\n ).pipe(\n filter(({relatedTarget}) =>\n this.notInDropdown(relatedTarget, index),\n ),\n map(({type}) => (type === 'focus' ? index : NaN)),\n ),\n ),\n ),\n ),\n debounceTime(300),\n );\n }\n\n private notInDropdown(element: EventTarget | null, index: number): boolean {\n return !this.dropdowns\n .get(index)\n ?.ref()\n ?.location.nativeElement.contains(element);\n }\n\n private tryToFocus(index: number): void {\n const content = this.dropdowns.get(index)?.ref()?.location.nativeElement;\n\n if (!content) {\n return;\n }\n\n // First item is focus trap\n const focusTrap = tuiGetClosestFocusable({initial: content, root: content});\n const item = tuiGetClosestFocusable({\n initial: focusTrap || content,\n root: content,\n });\n\n item?.focus();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-directives-data-list-dropdown-manager.mjs","sources":["../../../projects/kit/directives/data-list-dropdown-manager/data-list-dropdown-manager.directive.ts","../../../projects/kit/directives/data-list-dropdown-manager/taiga-ui-kit-directives-data-list-dropdown-manager.ts"],"sourcesContent":["import {\n type AfterViewInit,\n contentChildren,\n DestroyRef,\n Directive,\n ElementRef,\n inject,\n} from '@angular/core';\nimport {takeUntilDestroyed, toObservable} from '@angular/core/rxjs-interop';\nimport {tuiPreventDefault, tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {tuiGetClosestFocusable} from '@taiga-ui/cdk/utils/focus';\nimport {TuiDropdownDirective} from '@taiga-ui/core/portals/dropdown';\nimport {\n debounceTime,\n EMPTY,\n filter,\n map,\n merge,\n shareReplay,\n switchMap,\n take,\n tap,\n} from 'rxjs';\n\n@Directive({\n selector: 'tui-data-list[tuiDataListDropdownManager]',\n})\nexport class TuiDataListDropdownManager implements AfterViewInit {\n private readonly destroyRef = inject(DestroyRef);\n private readonly dropdowns = contentChildren(TuiDropdownDirective, {\n descendants: true,\n });\n\n private readonly els = contentChildren(TuiDropdownDirective, {\n read: ElementRef,\n descendants: true,\n });\n\n private readonly elements$ = toObservable(this.els).pipe(\n map((array) => array.map(({nativeElement}) => nativeElement)),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n\n private readonly right$ = this.elements$.pipe(\n switchMap((elements) =>\n merge(\n ...elements.map((element, index) =>\n tuiTypedFromEvent(element, 'keydown').pipe(\n filter(({key}) => key === 'ArrowRight'),\n tuiPreventDefault(),\n map(() => index),\n ),\n ),\n ),\n ),\n );\n\n private readonly immediate$ = this.elements$.pipe(\n switchMap((elements) =>\n merge(\n ...elements.map((element, index) =>\n tuiTypedFromEvent(element, 'click').pipe(map(() => index)),\n ),\n ),\n ),\n );\n\n private readonly debounce$ = this.elements$.pipe(\n switchMap((elements) =>\n merge(\n ...elements.map((element, index) =>\n merge(\n tuiTypedFromEvent(element, 'focus'),\n tuiTypedFromEvent(element, 'blur'),\n ).pipe(\n filter(({relatedTarget}) =>\n this.notInDropdown(relatedTarget, index),\n ),\n map(({type}) => (type === 'focus' ? index : NaN)),\n ),\n ),\n ),\n ),\n debounceTime(300),\n );\n\n public ngAfterViewInit(): void {\n this.right$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((index) => {\n this.tryToFocus(index);\n });\n\n merge(this.immediate$, this.debounce$)\n .pipe(\n switchMap((active) => {\n this.dropdowns().forEach((dropdown, index) => {\n dropdown.toggle(index === active);\n });\n\n const element = this.els()[active];\n const dropdown = this.dropdowns()[active];\n const ref = dropdown?.ref();\n\n if (!element || !dropdown || !ref) {\n return EMPTY;\n }\n\n const {nativeElement} = ref.location;\n const mouseEnter$ = tuiTypedFromEvent(\n nativeElement,\n 'mouseenter',\n ).pipe(take(1));\n const esc$ = merge(\n tuiTypedFromEvent(element.nativeElement, 'keydown'),\n tuiTypedFromEvent(nativeElement, 'keydown'),\n ).pipe(filter(({key}) => key === 'Escape'));\n\n return merge(mouseEnter$, esc$).pipe(\n tap((event) => {\n if (dropdown.ref()) {\n event.stopPropagation();\n }\n\n element.nativeElement.focus();\n dropdown.toggle('offsetX' in event);\n }),\n );\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe();\n }\n\n private notInDropdown(element: EventTarget | null, index: number): boolean {\n return !this.dropdowns()[index]?.ref()?.location.nativeElement.contains(element);\n }\n\n private tryToFocus(index: number): void {\n const content = this.dropdowns()[index]?.ref()?.location.nativeElement;\n\n if (!content) {\n return;\n }\n\n // First item is focus trap\n const focusTrap = tuiGetClosestFocusable({initial: content, root: content});\n const item = tuiGetClosestFocusable({\n initial: focusTrap || content,\n root: content,\n });\n\n item?.focus();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { ChangeDetectionStrategy, ViewEncapsulation, Component, inject, Input, Directive } from '@angular/core';
|
|
2
|
+
import { ChangeDetectionStrategy, ViewEncapsulation, Component, afterNextRender, inject, Input, Directive } from '@angular/core';
|
|
3
3
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
4
|
import { MutationObserverService, WA_MUTATION_OBSERVER_INIT } from '@ng-web-apis/mutation-observer';
|
|
5
5
|
import { ResizeObserverService } from '@ng-web-apis/resize-observer';
|
|
6
|
-
import * as i1 from '@taiga-ui/cdk/directives/transitioned';
|
|
7
|
-
import { TuiTransitioned } from '@taiga-ui/cdk/directives/transitioned';
|
|
8
6
|
import { tuiZonefree } from '@taiga-ui/cdk/observables';
|
|
9
7
|
import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
|
|
10
8
|
import { tuiWithStyles } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
@@ -28,6 +26,9 @@ class TuiFade {
|
|
|
28
26
|
this.offset = '0em';
|
|
29
27
|
this.orientation = 'horizontal';
|
|
30
28
|
const el = tuiInjectElement();
|
|
29
|
+
// TODO: Replace with TuiTransitioned when fixed:
|
|
30
|
+
// https://github.com/angular/angular/issues/57846
|
|
31
|
+
afterNextRender(() => el.style.setProperty('transition', ''));
|
|
31
32
|
merge(inject(ResizeObserverService, { self: true }), inject(MutationObserverService, { self: true }), fromEvent(el, 'scroll'))
|
|
32
33
|
.pipe(filter(() => !!el.scrollWidth), tuiZonefree(), takeUntilDestroyed())
|
|
33
34
|
.subscribe(() => {
|
|
@@ -43,14 +44,14 @@ class TuiFade {
|
|
|
43
44
|
scrollHeight > clientHeight + 4 * BUFFER;
|
|
44
45
|
}
|
|
45
46
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiFade, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
46
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiFade, isStandalone: true, selector: "[tuiFade]", inputs: { lineHeight: ["tuiFadeHeight", "lineHeight"], size: ["tuiFadeSize", "size"], offset: ["tuiFadeOffset", "offset"], orientation: ["tuiFade", "orientation"] }, host: { properties: { "style.line-height": "lineHeight", "style.--t-line-height": "lineHeight", "style.--t-fade-size": "size", "style.--t-fade-offset": "offset", "attr.data-orientation": "orientation" } }, providers: [
|
|
47
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiFade, isStandalone: true, selector: "[tuiFade]", inputs: { lineHeight: ["tuiFadeHeight", "lineHeight"], size: ["tuiFadeSize", "size"], offset: ["tuiFadeOffset", "offset"], orientation: ["tuiFade", "orientation"] }, host: { properties: { "style.line-height": "lineHeight", "style.--t-line-height": "lineHeight", "style.--t-fade-size": "size", "style.--t-fade-offset": "offset", "attr.data-orientation": "orientation", "style.transition": "\"none\"" } }, providers: [
|
|
47
48
|
ResizeObserverService,
|
|
48
49
|
MutationObserverService,
|
|
49
50
|
{
|
|
50
51
|
provide: WA_MUTATION_OBSERVER_INIT,
|
|
51
52
|
useValue: { characterData: true, subtree: true },
|
|
52
53
|
},
|
|
53
|
-
],
|
|
54
|
+
], ngImport: i0 }); }
|
|
54
55
|
}
|
|
55
56
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiFade, decorators: [{
|
|
56
57
|
type: Directive,
|
|
@@ -64,13 +65,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
64
65
|
useValue: { characterData: true, subtree: true },
|
|
65
66
|
},
|
|
66
67
|
],
|
|
67
|
-
hostDirectives: [TuiTransitioned],
|
|
68
68
|
host: {
|
|
69
69
|
'[style.line-height]': 'lineHeight',
|
|
70
70
|
'[style.--t-line-height]': 'lineHeight',
|
|
71
71
|
'[style.--t-fade-size]': 'size',
|
|
72
72
|
'[style.--t-fade-offset]': 'offset',
|
|
73
73
|
'[attr.data-orientation]': 'orientation',
|
|
74
|
+
'[style.transition]': '"none"',
|
|
74
75
|
},
|
|
75
76
|
}]
|
|
76
77
|
}], ctorParameters: () => [], propDecorators: { lineHeight: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-directives-fade.mjs","sources":["../../../projects/kit/directives/fade/fade.directive.ts","../../../projects/kit/directives/fade/taiga-ui-kit-directives-fade.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n inject,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {\n MutationObserverService,\n WA_MUTATION_OBSERVER_INIT,\n} from '@ng-web-apis/mutation-observer';\nimport {ResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-directives-fade.mjs","sources":["../../../projects/kit/directives/fade/fade.directive.ts","../../../projects/kit/directives/fade/taiga-ui-kit-directives-fade.ts"],"sourcesContent":["import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n Directive,\n inject,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {\n MutationObserverService,\n WA_MUTATION_OBSERVER_INIT,\n} from '@ng-web-apis/mutation-observer';\nimport {ResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiOrientation} from '@taiga-ui/core/types';\nimport {filter, fromEvent, merge} from 'rxjs';\n\nconst BUFFER = 1; // buffer for rounding issues\n\n@Component({\n template: '',\n styleUrl: './fade.style.less',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-fade'},\n})\nclass Styles {}\n\n@Directive({\n selector: '[tuiFade]',\n providers: [\n ResizeObserverService,\n MutationObserverService,\n {\n provide: WA_MUTATION_OBSERVER_INIT,\n useValue: {characterData: true, subtree: true},\n },\n ],\n host: {\n '[style.line-height]': 'lineHeight',\n '[style.--t-line-height]': 'lineHeight',\n '[style.--t-fade-size]': 'size',\n '[style.--t-fade-offset]': 'offset',\n '[attr.data-orientation]': 'orientation',\n '[style.transition]': '\"none\"',\n },\n})\nexport class TuiFade {\n protected readonly nothing = tuiWithStyles(Styles);\n\n // TODO: Remove when lh CSS units are supported: https://caniuse.com/mdn-css_types_length_lh\n @Input('tuiFadeHeight')\n public lineHeight: string | null = null;\n\n @Input('tuiFadeSize')\n public size = '1.5em';\n\n @Input('tuiFadeOffset')\n public offset = '0em';\n\n @Input('tuiFade')\n public orientation: TuiOrientation | '' = 'horizontal';\n\n constructor() {\n const el = tuiInjectElement();\n\n // TODO: Replace with TuiTransitioned when fixed:\n // https://github.com/angular/angular/issues/57846\n afterNextRender(() => el.style.setProperty('transition', ''));\n\n merge(\n inject(ResizeObserverService, {self: true}),\n inject(MutationObserverService, {self: true}),\n fromEvent(el, 'scroll'),\n )\n .pipe(\n filter(() => !!el.scrollWidth),\n tuiZonefree(),\n takeUntilDestroyed(),\n )\n .subscribe(() => {\n el.classList.toggle('_end', this.isEnd(el));\n el.classList.toggle(\n '_start',\n !!Math.floor(el.scrollLeft) || !!Math.floor(el.scrollTop),\n );\n });\n }\n\n private isEnd({\n scrollTop,\n scrollLeft,\n scrollHeight,\n scrollWidth,\n clientHeight,\n clientWidth,\n }: HTMLElement): boolean {\n return this.orientation === 'vertical'\n ? Math.round(scrollTop) < scrollHeight - clientHeight - BUFFER\n : Math.ceil(Math.abs(scrollLeft)) < scrollWidth - clientWidth - BUFFER ||\n // horizontal multiline fade can kick in early due to hanging elements of fonts so using bigger buffer\n scrollHeight > clientHeight + 4 * BUFFER;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AAqBA,MAAM,MAAM,GAAG,CAAC,CAAC;AAEjB,MAOM,MAAM,CAAA;+GAAN,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAN,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAM,8GANE,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,u3IAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAMV,MAAM,EAAA,UAAA,EAAA,CAAA;kBAPX,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAE,EAEG,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA,EAAC,KAAK,EAAE,UAAU,EAAC,EAAA,MAAA,EAAA,CAAA,u3IAAA,CAAA,EAAA;;MAuBhB,OAAO,CAAA;AAgBhB,IAAA,WAAA,GAAA;AAfmB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC;;QAI3C,IAAU,CAAA,UAAA,GAAkB,IAAI;QAGhC,IAAI,CAAA,IAAA,GAAG,OAAO;QAGd,IAAM,CAAA,MAAA,GAAG,KAAK;QAGd,IAAW,CAAA,WAAA,GAAwB,YAAY;AAGlD,QAAA,MAAM,EAAE,GAAG,gBAAgB,EAAE;;;AAI7B,QAAA,eAAe,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAE7D,QAAA,KAAK,CACD,MAAM,CAAC,qBAAqB,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,EAC3C,MAAM,CAAC,uBAAuB,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,EAC7C,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC;AAEtB,aAAA,IAAI,CACD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,EAC9B,WAAW,EAAE,EACb,kBAAkB,EAAE;aAEvB,SAAS,CAAC,MAAK;AACZ,YAAA,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC3C,YAAA,EAAE,CAAC,SAAS,CAAC,MAAM,CACf,QAAQ,EACR,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,CAC5D;AACL,SAAC,CAAC;;AAGF,IAAA,KAAK,CAAC,EACV,SAAS,EACT,UAAU,EACV,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,WAAW,GACD,EAAA;AACV,QAAA,OAAO,IAAI,CAAC,WAAW,KAAK;AACxB,cAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,YAAY,GAAG,YAAY,GAAG;AACxD,cAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,WAAW,GAAG,WAAW,GAAG,MAAM;;AAEhE,gBAAA,YAAY,GAAG,YAAY,GAAG,CAAC,GAAG,MAAM;;+GAtD7C,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAP,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,OAAO,EAjBL,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,CAAA,eAAA,EAAA,YAAA,CAAA,EAAA,IAAA,EAAA,CAAA,aAAA,EAAA,MAAA,CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,QAAA,CAAA,EAAA,WAAA,EAAA,CAAA,SAAA,EAAA,aAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,EAAA,EAAA,SAAA,EAAA;YACP,qBAAqB;YACrB,uBAAuB;AACvB,YAAA;AACI,gBAAA,OAAO,EAAE,yBAAyB;gBAClC,QAAQ,EAAE,EAAC,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAC;AACjD,aAAA;AACJ,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAUQ,OAAO,EAAA,UAAA,EAAA,CAAA;kBAnBnB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,SAAS,EAAE;wBACP,qBAAqB;wBACrB,uBAAuB;AACvB,wBAAA;AACI,4BAAA,OAAO,EAAE,yBAAyB;4BAClC,QAAQ,EAAE,EAAC,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAC;AACjD,yBAAA;AACJ,qBAAA;AACD,oBAAA,IAAI,EAAE;AACF,wBAAA,qBAAqB,EAAE,YAAY;AACnC,wBAAA,yBAAyB,EAAE,YAAY;AACvC,wBAAA,uBAAuB,EAAE,MAAM;AAC/B,wBAAA,yBAAyB,EAAE,QAAQ;AACnC,wBAAA,yBAAyB,EAAE,aAAa;AACxC,wBAAA,oBAAoB,EAAE,QAAQ;AACjC,qBAAA;AACJ,iBAAA;wDAMU,UAAU,EAAA,CAAA;sBADhB,KAAK;uBAAC,eAAe;gBAIf,IAAI,EAAA,CAAA;sBADV,KAAK;uBAAC,aAAa;gBAIb,MAAM,EAAA,CAAA;sBADZ,KAAK;uBAAC,eAAe;gBAIf,WAAW,EAAA,CAAA;sBADjB,KAAK;uBAAC,SAAS;;;AChEpB;;AAEG;;;;"}
|
|
@@ -1,23 +1,18 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { inject, input, Directive } from '@angular/core';
|
|
3
3
|
import { toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
4
|
import { MutationObserverService, WA_MUTATION_OBSERVER_INIT } from '@ng-web-apis/mutation-observer';
|
|
5
5
|
import { ResizeObserverService } from '@ng-web-apis/resize-observer';
|
|
6
6
|
import { tuiZonefree } from '@taiga-ui/cdk/observables';
|
|
7
7
|
import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
|
|
8
8
|
import { merge, fromEvent } from 'rxjs';
|
|
9
|
-
import {
|
|
9
|
+
import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
|
|
10
10
|
|
|
11
11
|
const TUI_FLUID_TYPOGRAPHY_DEFAULT_OPTIONS = {
|
|
12
12
|
min: 0.625,
|
|
13
13
|
max: 1.25,
|
|
14
14
|
};
|
|
15
|
-
const TUI_FLUID_TYPOGRAPHY_OPTIONS =
|
|
16
|
-
factory: () => TUI_FLUID_TYPOGRAPHY_DEFAULT_OPTIONS,
|
|
17
|
-
});
|
|
18
|
-
function tuiFluidTypographyOptionsProvider(options) {
|
|
19
|
-
return tuiProvideOptions(TUI_FLUID_TYPOGRAPHY_OPTIONS, options, TUI_FLUID_TYPOGRAPHY_DEFAULT_OPTIONS);
|
|
20
|
-
}
|
|
15
|
+
const [TUI_FLUID_TYPOGRAPHY_OPTIONS, tuiFluidTypographyOptionsProvider] = tuiCreateOptions(TUI_FLUID_TYPOGRAPHY_DEFAULT_OPTIONS);
|
|
21
16
|
|
|
22
17
|
const STEP = 1 / 16;
|
|
23
18
|
class TuiFluidTypography {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-directives-fluid-typography.mjs","sources":["../../../projects/kit/directives/fluid-typography/fluid-typography.options.ts","../../../projects/kit/directives/fluid-typography/fluid-typography.directive.ts","../../../projects/kit/directives/fluid-typography/taiga-ui-kit-directives-fluid-typography.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-directives-fluid-typography.mjs","sources":["../../../projects/kit/directives/fluid-typography/fluid-typography.options.ts","../../../projects/kit/directives/fluid-typography/fluid-typography.directive.ts","../../../projects/kit/directives/fluid-typography/taiga-ui-kit-directives-fluid-typography.ts"],"sourcesContent":["import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\n\nexport interface TuiFluidTypographyOptions {\n readonly min: number;\n readonly max: number;\n}\n\nexport const TUI_FLUID_TYPOGRAPHY_DEFAULT_OPTIONS: TuiFluidTypographyOptions = {\n min: 0.625,\n max: 1.25,\n};\n\nexport const [TUI_FLUID_TYPOGRAPHY_OPTIONS, tuiFluidTypographyOptionsProvider] =\n tuiCreateOptions(TUI_FLUID_TYPOGRAPHY_DEFAULT_OPTIONS);\n","import {Directive, inject, input} from '@angular/core';\nimport {takeUntilDestroyed, toObservable} from '@angular/core/rxjs-interop';\nimport {\n MutationObserverService,\n WA_MUTATION_OBSERVER_INIT,\n} from '@ng-web-apis/mutation-observer';\nimport {ResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {fromEvent, merge} from 'rxjs';\n\nimport {TUI_FLUID_TYPOGRAPHY_OPTIONS} from './fluid-typography.options';\n\nconst STEP = 1 / 16;\n\n@Directive({\n selector: '[tuiFluidTypography]',\n providers: [\n ResizeObserverService,\n MutationObserverService,\n {\n provide: WA_MUTATION_OBSERVER_INIT,\n useValue: {characterData: true, subtree: true},\n },\n ],\n host: {tuiFluidTypography: ''},\n})\nexport class TuiFluidTypography {\n private readonly el = tuiInjectElement();\n private readonly options = inject(TUI_FLUID_TYPOGRAPHY_OPTIONS);\n\n public readonly tuiFluidTypography = input<readonly [min: number, max: number] | ''>(\n '',\n );\n\n protected readonly sub = merge(\n toObservable(this.tuiFluidTypography),\n inject(ResizeObserverService, {self: true}),\n inject(MutationObserverService, {self: true}),\n fromEvent(this.el, 'input'),\n )\n .pipe(tuiZonefree(), takeUntilDestroyed())\n .subscribe(() => {\n const min = Number(this.tuiFluidTypography()[0] || this.options.min);\n const max = Number(this.tuiFluidTypography()[1] || this.options.max);\n\n for (let i = max; i >= min; i -= STEP) {\n this.el.style.fontSize = `${i}rem`;\n\n if (this.el.scrollWidth <= this.el.clientWidth) {\n break;\n }\n }\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { inject, signal, computed, Directive } from '@angular/core';
|
|
3
|
-
import {
|
|
3
|
+
import { tuiCreateOptions, tuiDirectiveBinding } from '@taiga-ui/cdk/utils/di';
|
|
4
|
+
import { tuiIsString } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
4
5
|
import { TuiTextfieldComponent } from '@taiga-ui/core/components/textfield';
|
|
5
6
|
import * as i1 from '@taiga-ui/core/directives/appearance';
|
|
6
7
|
import { TUI_APPEARANCE_OPTIONS, TuiWithAppearance } from '@taiga-ui/core/directives/appearance';
|
|
7
|
-
import * as i2 from '@taiga-ui/core/directives/hint';
|
|
8
|
-
import { TuiHintDirective } from '@taiga-ui/core/directives/hint';
|
|
9
8
|
import { tuiIconStart } from '@taiga-ui/core/directives/icons';
|
|
9
|
+
import * as i2 from '@taiga-ui/core/portals/hint';
|
|
10
|
+
import { TuiHintDirective } from '@taiga-ui/core/portals/hint';
|
|
10
11
|
import { TUI_PASSWORD_TEXTS } from '@taiga-ui/kit/tokens';
|
|
11
|
-
import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
|
|
12
12
|
|
|
13
13
|
const [TUI_PASSWORD_OPTIONS, tuiPasswordOptionsProvider] = tuiCreateOptions({
|
|
14
14
|
icons: {
|
|
@@ -33,7 +33,9 @@ class TuiPassword {
|
|
|
33
33
|
}
|
|
34
34
|
toggle() {
|
|
35
35
|
this.hidden.set(!this.hidden());
|
|
36
|
-
this.textfield
|
|
36
|
+
this.textfield
|
|
37
|
+
.input()
|
|
38
|
+
?.nativeElement.setAttribute('type', this.hidden() ? 'password' : 'text');
|
|
37
39
|
}
|
|
38
40
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiPassword, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
39
41
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiPassword, isStandalone: true, selector: "tui-icon[tuiPassword]", host: { listeners: { "click": "toggle()" }, properties: { "style.border": "textfield.options.size() === \"s\" ? \"0.25rem solid transparent\" : null" }, styleAttribute: "cursor: pointer" }, providers: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-directives-password.mjs","sources":["../../../projects/kit/directives/password/password.options.ts","../../../projects/kit/directives/password/password.directive.ts","../../../projects/kit/directives/password/taiga-ui-kit-directives-password.ts"],"sourcesContent":["import {type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\nexport interface TuiPasswordOptions {\n readonly icons: Readonly<{\n hide: TuiStringHandler<TuiSizeL | TuiSizeS> | string;\n show: TuiStringHandler<TuiSizeL | TuiSizeS> | string;\n }>;\n}\n\nexport const [TUI_PASSWORD_OPTIONS, tuiPasswordOptionsProvider] =\n tuiCreateOptions<TuiPasswordOptions>({\n icons: {\n hide: '@tui.eye-off',\n show: '@tui.eye',\n },\n });\n","import {computed, Directive, inject, signal} from '@angular/core';\nimport {tuiDirectiveBinding
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-directives-password.mjs","sources":["../../../projects/kit/directives/password/password.options.ts","../../../projects/kit/directives/password/password.directive.ts","../../../projects/kit/directives/password/taiga-ui-kit-directives-password.ts"],"sourcesContent":["import {type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\nexport interface TuiPasswordOptions {\n readonly icons: Readonly<{\n hide: TuiStringHandler<TuiSizeL | TuiSizeS> | string;\n show: TuiStringHandler<TuiSizeL | TuiSizeS> | string;\n }>;\n}\n\nexport const [TUI_PASSWORD_OPTIONS, tuiPasswordOptionsProvider] =\n tuiCreateOptions<TuiPasswordOptions>({\n icons: {\n hide: '@tui.eye-off',\n show: '@tui.eye',\n },\n });\n","import {computed, Directive, inject, signal} from '@angular/core';\nimport {tuiDirectiveBinding} from '@taiga-ui/cdk/utils/di';\nimport {tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_APPEARANCE_OPTIONS,\n TuiWithAppearance,\n} from '@taiga-ui/core/directives/appearance';\nimport {tuiIconStart} from '@taiga-ui/core/directives/icons';\nimport {TuiHintDirective} from '@taiga-ui/core/portals/hint';\nimport {TUI_PASSWORD_TEXTS} from '@taiga-ui/kit/tokens';\n\nimport {TUI_PASSWORD_OPTIONS} from './password.options';\n\n@Directive({\n selector: 'tui-icon[tuiPassword]',\n providers: [\n {\n provide: TUI_APPEARANCE_OPTIONS,\n useValue: {appearance: 'icon'},\n },\n ],\n hostDirectives: [\n TuiWithAppearance,\n {\n directive: TuiHintDirective,\n inputs: ['tuiHintAppearance', 'tuiHintContext'],\n },\n ],\n host: {\n style: 'cursor: pointer',\n '(click)': 'toggle()',\n '[style.border]':\n 'textfield.options.size() === \"s\" ? \"0.25rem solid transparent\" : null',\n },\n})\nexport class TuiPassword {\n private readonly options = inject(TUI_PASSWORD_OPTIONS);\n private readonly texts = inject(TUI_PASSWORD_TEXTS);\n\n protected readonly textfield = inject(TuiTextfieldComponent);\n protected readonly hidden = signal(true);\n protected readonly icon = tuiIconStart(\n computed((size = this.textfield.options.size()) => {\n const icon = this.hidden()\n ? this.options.icons.show\n : this.options.icons.hide;\n\n return tuiIsString(icon) ? icon : icon(size);\n }),\n );\n\n protected readonly hint = tuiDirectiveBinding(\n TuiHintDirective,\n 'content',\n computed(() => (this.hidden() ? this.texts()[0] : this.texts()[1])),\n );\n\n protected toggle(): void {\n this.hidden.set(!this.hidden());\n this.textfield\n .input()\n ?.nativeElement.setAttribute('type', this.hidden() ? 'password' : 'text');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -7,8 +7,8 @@ import { tuiWithStyles, tuiSetSignal } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
|
7
7
|
import { TuiTextfieldComponent } from '@taiga-ui/core/components/textfield';
|
|
8
8
|
import * as i1 from '@taiga-ui/core/directives/appearance';
|
|
9
9
|
import { tuiAppearanceState, tuiAppearanceOptionsProvider, TuiWithAppearance } from '@taiga-ui/core/directives/appearance';
|
|
10
|
-
import * as i2 from '@taiga-ui/core/
|
|
11
|
-
import { TuiHintDescribe, TuiHintHover, TUI_HINT_OPTIONS, TuiHintDirective } from '@taiga-ui/core/
|
|
10
|
+
import * as i2 from '@taiga-ui/core/portals/hint';
|
|
11
|
+
import { TuiHintDescribe, TuiHintHover, TUI_HINT_OPTIONS, TuiHintDirective } from '@taiga-ui/core/portals/hint';
|
|
12
12
|
import { TUI_ICON_START } from '@taiga-ui/core/tokens';
|
|
13
13
|
import { map } from 'rxjs';
|
|
14
14
|
import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
|
|
@@ -20,11 +20,11 @@ const [TUI_TOOLTIP_OPTIONS, tuiTooltipOptionsProvider] = tuiCreateOptions({
|
|
|
20
20
|
|
|
21
21
|
class Styles {
|
|
22
22
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: Styles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-tooltip" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiTooltip]{border-width:.125rem;border-radius:100%;cursor:pointer;pointer-events:auto;background-clip:content-box!important}[tuiTooltip] [tuiBlock],[tuiTooltip] [tuiCell][data-size=s],[tuiLabel][data-orientation=horizontal] [tuiTooltip],[tuiTooltip][data-size=s]{font-size:1.25rem}[tuiTitle] [tuiTooltip]{font-size:1rem;border:none}[tuiTooltip]:before{font-size:1rem}@media (hover: hover) and (pointer: fine){tui-textfield:hover [tuiTooltip][data-appearance=icon]:before,tui-textarea:hover [tuiTooltip][data-appearance=icon]:before,tui-primitive-textfield:hover [tuiTooltip][data-appearance=icon]:before
|
|
23
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: Styles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-tooltip" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiTooltip]{border-width:.125rem;border-radius:100%;cursor:pointer;pointer-events:auto;background-clip:content-box!important}[tuiTooltip] [tuiBlock],[tuiTooltip] [tuiCell][data-size=s],[tuiLabel][data-orientation=horizontal] [tuiTooltip],[tuiTooltip][data-size=s]{font-size:1.25rem}[tuiTitle] [tuiTooltip]{font-size:1rem;border:none}[tuiTooltip]:before{font-size:1rem}@media (hover: hover) and (pointer: fine){tui-textfield:hover [tuiTooltip][data-appearance=icon]:before,tui-textarea:hover [tuiTooltip][data-appearance=icon]:before,tui-primitive-textfield:hover [tuiTooltip][data-appearance=icon]:before{color:var(--tui-text-secondary)}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
24
24
|
}
|
|
25
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: Styles, decorators: [{
|
|
26
26
|
type: Component,
|
|
27
|
-
args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'tui-tooltip' }, styles: ["[tuiTooltip]{border-width:.125rem;border-radius:100%;cursor:pointer;pointer-events:auto;background-clip:content-box!important}[tuiTooltip] [tuiBlock],[tuiTooltip] [tuiCell][data-size=s],[tuiLabel][data-orientation=horizontal] [tuiTooltip],[tuiTooltip][data-size=s]{font-size:1.25rem}[tuiTitle] [tuiTooltip]{font-size:1rem;border:none}[tuiTooltip]:before{font-size:1rem}@media (hover: hover) and (pointer: fine){tui-textfield:hover [tuiTooltip][data-appearance=icon]:before,tui-textarea:hover [tuiTooltip][data-appearance=icon]:before,tui-primitive-textfield:hover [tuiTooltip][data-appearance=icon]:before
|
|
27
|
+
args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'tui-tooltip' }, styles: ["[tuiTooltip]{border-width:.125rem;border-radius:100%;cursor:pointer;pointer-events:auto;background-clip:content-box!important}[tuiTooltip] [tuiBlock],[tuiTooltip] [tuiCell][data-size=s],[tuiLabel][data-orientation=horizontal] [tuiTooltip],[tuiTooltip][data-size=s]{font-size:1.25rem}[tuiTitle] [tuiTooltip]{font-size:1rem;border:none}[tuiTooltip]:before{font-size:1rem}@media (hover: hover) and (pointer: fine){tui-textfield:hover [tuiTooltip][data-appearance=icon]:before,tui-textarea:hover [tuiTooltip][data-appearance=icon]:before,tui-primitive-textfield:hover [tuiTooltip][data-appearance=icon]:before{color:var(--tui-text-secondary)}}\n"] }]
|
|
28
28
|
}] });
|
|
29
29
|
class TuiTooltip {
|
|
30
30
|
constructor() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-directives-tooltip.mjs","sources":["../../../projects/kit/directives/tooltip/tooltip.options.ts","../../../projects/kit/directives/tooltip/tooltip.directive.ts","../../../projects/kit/directives/tooltip/taiga-ui-kit-directives-tooltip.ts"],"sourcesContent":["import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\n\nexport const [TUI_TOOLTIP_OPTIONS, tuiTooltipOptionsProvider] = tuiCreateOptions({\n icon: '',\n appearance: 'icon',\n});\n","import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n type DoCheck,\n inject,\n input,\n type Signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {tuiWatch} from '@taiga-ui/cdk/observables';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {tuiSetSignal, tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\nimport {\n tuiAppearanceOptionsProvider,\n tuiAppearanceState,\n TuiWithAppearance,\n} from '@taiga-ui/core/directives/appearance';\nimport {\n TUI_HINT_OPTIONS,\n TuiHintDescribe,\n TuiHintDirective,\n TuiHintHover,\n} from '@taiga-ui/core/
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-directives-tooltip.mjs","sources":["../../../projects/kit/directives/tooltip/tooltip.options.ts","../../../projects/kit/directives/tooltip/tooltip.directive.ts","../../../projects/kit/directives/tooltip/taiga-ui-kit-directives-tooltip.ts"],"sourcesContent":["import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\n\nexport const [TUI_TOOLTIP_OPTIONS, tuiTooltipOptionsProvider] = tuiCreateOptions({\n icon: '',\n appearance: 'icon',\n});\n","import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n type DoCheck,\n inject,\n input,\n type Signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {tuiWatch} from '@taiga-ui/cdk/observables';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {tuiSetSignal, tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\nimport {\n tuiAppearanceOptionsProvider,\n tuiAppearanceState,\n TuiWithAppearance,\n} from '@taiga-ui/core/directives/appearance';\nimport {\n TUI_HINT_OPTIONS,\n TuiHintDescribe,\n TuiHintDirective,\n TuiHintHover,\n} from '@taiga-ui/core/portals/hint';\nimport {TUI_ICON_START} from '@taiga-ui/core/tokens';\nimport {type TuiSizeS} from '@taiga-ui/core/types';\nimport {map} from 'rxjs';\n\nimport {TUI_TOOLTIP_OPTIONS} from './tooltip.options';\n\n@Component({\n template: '',\n styleUrl: './tooltip.style.less',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-tooltip'},\n})\nclass Styles {}\n\n@Directive({\n selector: 'tui-icon[tuiTooltip]',\n providers: [\n tuiAppearanceOptionsProvider(TUI_TOOLTIP_OPTIONS),\n {\n provide: TUI_ICON_START,\n useFactory: () =>\n inject(TUI_TOOLTIP_OPTIONS).icon || inject(TUI_HINT_OPTIONS).icon,\n },\n ],\n hostDirectives: [\n TuiWithAppearance,\n {\n directive: TuiHintDescribe,\n inputs: ['tuiHintDescribe: tuiTooltipDescribe'],\n },\n {\n directive: TuiHintDirective,\n inputs: ['tuiHint: tuiTooltip', 'tuiHintAppearance', 'tuiHintContext'],\n },\n ],\n host: {\n tuiTooltip: '',\n '[attr.data-size]': 'size()',\n '(click.prevent)': '0',\n '(mousedown)': 'onClick($event)',\n },\n})\nexport class TuiTooltip implements DoCheck {\n private readonly textfield = inject(TuiTextfieldComponent, {optional: true});\n private readonly isMobile = inject(TUI_IS_MOBILE);\n private readonly describe = inject(TuiHintDescribe);\n private readonly driver = inject(TuiHintHover);\n\n protected readonly nothing = tuiWithStyles(Styles);\n protected readonly state: Signal<unknown> = tuiAppearanceState(\n toSignal(\n inject(TuiHintHover).pipe(\n map((hover) => (hover ? 'hover' : null)),\n tuiWatch(),\n ),\n {initialValue: null},\n ),\n );\n\n public readonly size = input<TuiSizeS>('m');\n\n public ngDoCheck(): void {\n if (this.textfield?.id) {\n tuiSetSignal(this.describe.id, this.textfield.id);\n }\n }\n\n protected onClick(event: MouseEvent): void {\n if (this.isMobile) {\n event.preventDefault();\n event.stopPropagation();\n } else {\n this.driver.toggle();\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@ import * as i0 from '@angular/core';
|
|
|
3
3
|
import { inject, signal, Input, Directive } from '@angular/core';
|
|
4
4
|
import { toSignal } from '@angular/core/rxjs-interop';
|
|
5
5
|
import { NG_VALIDATORS } from '@angular/forms';
|
|
6
|
+
import { tuiProvide } from '@taiga-ui/cdk/utils/di';
|
|
6
7
|
import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
|
|
7
|
-
import { tuiProvide } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
8
8
|
import { TUI_DEFAULT_ERROR_MESSAGE, TUI_VALIDATION_ERRORS } from '@taiga-ui/core/tokens';
|
|
9
9
|
import { isObservable } from 'rxjs';
|
|
10
10
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-directives-unfinished-validator.mjs","sources":["../../../projects/kit/directives/unfinished-validator/unfinished.validator.ts","../../../projects/kit/directives/unfinished-validator/unfinished-validator.directive.ts","../../../projects/kit/directives/unfinished-validator/taiga-ui-kit-directives-unfinished-validator.ts"],"sourcesContent":["import {type AbstractControl, type ValidatorFn} from '@angular/forms';\nimport {TuiValidationError} from '@taiga-ui/cdk/classes';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nexport function tuiCreateUnfinishedValidator(\n element: HTMLInputElement,\n message: PolymorpheusContent,\n): ValidatorFn {\n return ({\n value,\n }: AbstractControl): {tuiUnfinished: TuiValidationError | string} | null =>\n value === null && element.value !== ''\n ? {tuiUnfinished: new TuiValidationError(message)}\n : null;\n}\n","import {Directive, inject, Input, signal} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {NG_VALIDATORS, type Validator} from '@angular/forms';\nimport {
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-directives-unfinished-validator.mjs","sources":["../../../projects/kit/directives/unfinished-validator/unfinished.validator.ts","../../../projects/kit/directives/unfinished-validator/unfinished-validator.directive.ts","../../../projects/kit/directives/unfinished-validator/taiga-ui-kit-directives-unfinished-validator.ts"],"sourcesContent":["import {type AbstractControl, type ValidatorFn} from '@angular/forms';\nimport {TuiValidationError} from '@taiga-ui/cdk/classes';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nexport function tuiCreateUnfinishedValidator(\n element: HTMLInputElement,\n message: PolymorpheusContent,\n): ValidatorFn {\n return ({\n value,\n }: AbstractControl): {tuiUnfinished: TuiValidationError | string} | null =>\n value === null && element.value !== ''\n ? {tuiUnfinished: new TuiValidationError(message)}\n : null;\n}\n","import {Directive, inject, Input, signal} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {NG_VALIDATORS, type Validator} from '@angular/forms';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TUI_DEFAULT_ERROR_MESSAGE, TUI_VALIDATION_ERRORS} from '@taiga-ui/core/tokens';\nimport {isObservable} from 'rxjs';\n\nimport {tuiCreateUnfinishedValidator} from './unfinished.validator';\n\n@Directive({\n selector: 'input[tuiUnfinishedValidator]',\n providers: [tuiProvide(NG_VALIDATORS, TuiUnfinishedValidator, true)],\n})\nexport class TuiUnfinishedValidator implements Validator {\n private readonly default = inject(TUI_DEFAULT_ERROR_MESSAGE);\n private readonly error = inject(TUI_VALIDATION_ERRORS)['tuiUnfinished'];\n private readonly fallback = this.error ? signal(this.error) : this.default;\n private readonly message = isObservable(this.error)\n ? toSignal(this.error)\n : this.fallback;\n\n @Input()\n public tuiUnfinishedValidator = '';\n\n public readonly validate = tuiCreateUnfinishedValidator(\n tuiInjectElement<HTMLInputElement>(),\n () => this.tuiUnfinishedValidator || this.message(),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AAIgB,SAAA,4BAA4B,CACxC,OAAyB,EACzB,OAA4B,EAAA;AAE5B,IAAA,OAAO,CAAC,EACJ,KAAK,GACS,KACd,KAAK,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,KAAK;UAC9B,EAAC,aAAa,EAAE,IAAI,kBAAkB,CAAC,OAAO,CAAC;UAC/C,IAAI;AAClB;;MCAa,sBAAsB,CAAA;AAJnC,IAAA,WAAA,GAAA;AAKqB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,yBAAyB,CAAC;QAC3C,IAAK,CAAA,KAAA,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,eAAe,CAAC;AACtD,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO;AACzD,QAAA,IAAA,CAAA,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK;AAC9C,cAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;AACrB,cAAE,IAAI,CAAC,QAAQ;QAGZ,IAAsB,CAAA,sBAAA,GAAG,EAAE;AAElB,QAAA,IAAA,CAAA,QAAQ,GAAG,4BAA4B,CACnD,gBAAgB,EAAoB,EACpC,MAAM,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,OAAO,EAAE,CACtD;AACJ;+GAfY,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,EAAA,SAAA,EAFpB,CAAC,UAAU,CAAC,aAAa,EAAE,sBAAsB,EAAE,IAAI,CAAC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAE3D,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,+BAA+B;oBACzC,SAAS,EAAE,CAAC,UAAU,CAAC,aAAa,EAA0B,sBAAA,EAAA,IAAI,CAAC,CAAC;AACvE,iBAAA;8BAUU,sBAAsB,EAAA,CAAA;sBAD5B;;;ACtBL;;AAEG;;;;"}
|
|
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { Input, Directive } from '@angular/core';
|
|
3
3
|
import { maskitoTransform, MASKITO_DEFAULT_OPTIONS } from '@maskito/core';
|
|
4
4
|
import { TuiValueTransformer } from '@taiga-ui/cdk/classes';
|
|
5
|
-
import { tuiProvide } from '@taiga-ui/cdk/utils/
|
|
5
|
+
import { tuiProvide } from '@taiga-ui/cdk/utils/di';
|
|
6
6
|
import { identity } from 'rxjs';
|
|
7
7
|
|
|
8
8
|
class TuiUnmaskHandler extends TuiValueTransformer {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-directives-unmask-handler.mjs","sources":["../../../projects/kit/directives/unmask-handler/unmask-handler.directive.ts","../../../projects/kit/directives/unmask-handler/taiga-ui-kit-directives-unmask-handler.ts"],"sourcesContent":["import {Directive, Input} from '@angular/core';\nimport {\n MASKITO_DEFAULT_OPTIONS,\n type MaskitoOptions,\n maskitoTransform,\n} from '@maskito/core';\nimport {TuiValueTransformer} from '@taiga-ui/cdk/classes';\nimport {type TuiMapper} from '@taiga-ui/cdk/types';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-directives-unmask-handler.mjs","sources":["../../../projects/kit/directives/unmask-handler/unmask-handler.directive.ts","../../../projects/kit/directives/unmask-handler/taiga-ui-kit-directives-unmask-handler.ts"],"sourcesContent":["import {Directive, Input} from '@angular/core';\nimport {\n MASKITO_DEFAULT_OPTIONS,\n type MaskitoOptions,\n maskitoTransform,\n} from '@maskito/core';\nimport {TuiValueTransformer} from '@taiga-ui/cdk/classes';\nimport {type TuiMapper} from '@taiga-ui/cdk/types';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {identity} from 'rxjs';\n\n@Directive({\n selector: '[maskito][tuiUnmaskHandler]',\n providers: [tuiProvide(TuiValueTransformer, TuiUnmaskHandler)],\n})\nexport class TuiUnmaskHandler extends TuiValueTransformer<string> {\n @Input()\n public tuiUnmaskHandler: TuiMapper<[string], string> = identity;\n\n @Input()\n public maskito: MaskitoOptions | null = null;\n\n public override fromControlValue(controlValue: unknown): string {\n return maskitoTransform(\n String(controlValue ?? ''),\n this.maskito || MASKITO_DEFAULT_OPTIONS,\n );\n }\n\n public override toControlValue(value: string): string {\n return this.tuiUnmaskHandler(value);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAeM,MAAO,gBAAiB,SAAQ,mBAA2B,CAAA;AAJjE,IAAA,WAAA,GAAA;;QAMW,IAAgB,CAAA,gBAAA,GAAgC,QAAQ;QAGxD,IAAO,CAAA,OAAA,GAA0B,IAAI;AAY/C;AAVmB,IAAA,gBAAgB,CAAC,YAAqB,EAAA;AAClD,QAAA,OAAO,gBAAgB,CACnB,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,EAC1B,IAAI,CAAC,OAAO,IAAI,uBAAuB,CAC1C;;AAGW,IAAA,cAAc,CAAC,KAAa,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;;+GAf9B,gBAAgB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAFd,CAAC,UAAU,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAErD,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,SAAS,EAAE,CAAC,UAAU,CAAC,mBAAmB,mBAAmB,CAAC;AACjE,iBAAA;8BAGU,gBAAgB,EAAA,CAAA;sBADtB;gBAIM,OAAO,EAAA,CAAA;sBADb;;;ACnBL;;AAEG;;;;"}
|
|
@@ -7,7 +7,6 @@ export * from '@taiga-ui/kit/directives/data-list-dropdown-manager';
|
|
|
7
7
|
export * from '@taiga-ui/kit/directives/fade';
|
|
8
8
|
export * from '@taiga-ui/kit/directives/fluid-typography';
|
|
9
9
|
export * from '@taiga-ui/kit/directives/highlight';
|
|
10
|
-
export * from '@taiga-ui/kit/directives/lazy-loading';
|
|
11
10
|
export * from '@taiga-ui/kit/directives/password';
|
|
12
11
|
export * from '@taiga-ui/kit/directives/present';
|
|
13
12
|
export * from '@taiga-ui/kit/directives/sensitive';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-directives.mjs","sources":["../../../projects/kit/directives/taiga-ui-kit-directives.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-directives.mjs","sources":["../../../projects/kit/directives/taiga-ui-kit-directives.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA;;AAEG"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Pipe } from '@angular/core';
|
|
3
|
+
|
|
4
|
+
class TuiAutoColorPipe {
|
|
5
|
+
transform(text) {
|
|
6
|
+
return tuiAutoColor(text);
|
|
7
|
+
}
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiAutoColorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
9
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: TuiAutoColorPipe, isStandalone: true, name: "tuiAutoColor" }); }
|
|
10
|
+
}
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiAutoColorPipe, decorators: [{
|
|
12
|
+
type: Pipe,
|
|
13
|
+
args: [{
|
|
14
|
+
name: 'tuiAutoColor',
|
|
15
|
+
}]
|
|
16
|
+
}] });
|
|
17
|
+
/* eslint-disable no-bitwise */
|
|
18
|
+
/**
|
|
19
|
+
* Converts a string to an HSL color
|
|
20
|
+
* @param value string to convert
|
|
21
|
+
* @return HSL color string
|
|
22
|
+
*/
|
|
23
|
+
function tuiAutoColor(value) {
|
|
24
|
+
if (value === '') {
|
|
25
|
+
return '';
|
|
26
|
+
}
|
|
27
|
+
let hash = 0;
|
|
28
|
+
for (let i = 0; i < value.length; i++) {
|
|
29
|
+
hash = value.charCodeAt(i) + ((hash << 5) - hash);
|
|
30
|
+
hash &= hash;
|
|
31
|
+
}
|
|
32
|
+
const hue = hash % 360;
|
|
33
|
+
const saturation = 60 + (hash % 5);
|
|
34
|
+
const lightness = 80 + (hash % 5);
|
|
35
|
+
return `hsl(${hue},${saturation}%,${lightness}%)`;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Generated bundle index. Do not edit.
|
|
40
|
+
*/
|
|
41
|
+
|
|
42
|
+
export { TuiAutoColorPipe, tuiAutoColor };
|
|
43
|
+
//# sourceMappingURL=taiga-ui-kit-pipes-auto-color.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-pipes-auto-color.mjs","sources":["../../../projects/kit/pipes/auto-color/auto-color.pipe.ts","../../../projects/kit/pipes/auto-color/taiga-ui-kit-pipes-auto-color.ts"],"sourcesContent":["import {Pipe, type PipeTransform} from '@angular/core';\n\n@Pipe({\n name: 'tuiAutoColor',\n})\nexport class TuiAutoColorPipe implements PipeTransform {\n public transform(text: string): string {\n return tuiAutoColor(text);\n }\n}\n\n/* eslint-disable no-bitwise */\n/**\n * Converts a string to an HSL color\n * @param value string to convert\n * @return HSL color string\n */\nexport function tuiAutoColor(value: string): string {\n if (value === '') {\n return '';\n }\n\n let hash = 0;\n\n for (let i = 0; i < value.length; i++) {\n hash = value.charCodeAt(i) + ((hash << 5) - hash);\n hash &= hash;\n }\n\n const hue = hash % 360;\n const saturation = 60 + (hash % 5);\n const lightness = 80 + (hash % 5);\n\n return `hsl(${hue},${saturation}%,${lightness}%)`;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAKa,gBAAgB,CAAA;AAClB,IAAA,SAAS,CAAC,IAAY,EAAA;AACzB,QAAA,OAAO,YAAY,CAAC,IAAI,CAAC;;+GAFpB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,CAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,cAAc;AACvB,iBAAA;;AAOD;AACA;;;;AAIG;AACG,SAAU,YAAY,CAAC,KAAa,EAAA;AACtC,IAAA,IAAI,KAAK,KAAK,EAAE,EAAE;AACd,QAAA,OAAO,EAAE;;IAGb,IAAI,IAAI,GAAG,CAAC;AAEZ,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACnC,QAAA,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;QACjD,IAAI,IAAI,IAAI;;AAGhB,IAAA,MAAM,GAAG,GAAG,IAAI,GAAG,GAAG;IACtB,MAAM,UAAU,GAAG,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC;AAEjC,IAAA,OAAO,OAAO,GAAG,CAAA,CAAA,EAAI,UAAU,CAAK,EAAA,EAAA,SAAS,IAAI;AACrD;;AClCA;;AAEG;;;;"}
|