@taiga-ui/kit 4.6.0 → 4.7.0-canary.5ce088a

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.
Files changed (54) hide show
  1. package/components/badged-content/badged-content.directive.d.ts +2 -1
  2. package/components/calendar-month/calendar-month.component.d.ts +2 -4
  3. package/components/line-clamp/line-clamp.component.d.ts +1 -1
  4. package/components/stepper/step.component.d.ts +1 -2
  5. package/components/stepper/stepper.component.d.ts +1 -1
  6. package/directives/copy/copy.directive.d.ts +1 -1
  7. package/directives/lazy-loading/lazy-loading.directive.d.ts +7 -7
  8. package/directives/password/password.directive.d.ts +0 -1
  9. package/esm2022/components/badged-content/badged-content.directive.mjs +1 -1
  10. package/esm2022/components/calendar-month/calendar-month.component.mjs +23 -42
  11. package/esm2022/components/chip/chip.directive.mjs +2 -2
  12. package/esm2022/components/input-phone-international/input-phone-international.component.mjs +3 -3
  13. package/esm2022/components/line-clamp/line-clamp.component.mjs +10 -12
  14. package/esm2022/components/routable-dialog/routable-dialog.component.mjs +1 -1
  15. package/esm2022/components/segmented/segmented.component.mjs +2 -2
  16. package/esm2022/components/stepper/step.component.mjs +6 -6
  17. package/esm2022/components/stepper/stepper.component.mjs +5 -5
  18. package/esm2022/directives/button-group/button-group.directive.mjs +2 -2
  19. package/esm2022/directives/connected/connected.directive.mjs +2 -2
  20. package/esm2022/directives/copy/copy.directive.mjs +1 -1
  21. package/esm2022/directives/lazy-loading/lazy-loading.directive.mjs +22 -26
  22. package/esm2022/directives/password/password.directive.mjs +2 -6
  23. package/esm2022/directives/skeleton/skeleton.directive.mjs +2 -2
  24. package/esm2022/pipes/filter-by-input/filter-by-input.pipe.mjs +1 -1
  25. package/fesm2022/taiga-ui-kit-components-badged-content.mjs.map +1 -1
  26. package/fesm2022/taiga-ui-kit-components-calendar-month.mjs +24 -43
  27. package/fesm2022/taiga-ui-kit-components-calendar-month.mjs.map +1 -1
  28. package/fesm2022/taiga-ui-kit-components-chip.mjs +2 -2
  29. package/fesm2022/taiga-ui-kit-components-chip.mjs.map +1 -1
  30. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs +2 -2
  31. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs.map +1 -1
  32. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs +9 -11
  33. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs.map +1 -1
  34. package/fesm2022/taiga-ui-kit-components-routable-dialog.mjs.map +1 -1
  35. package/fesm2022/taiga-ui-kit-components-segmented.mjs +2 -2
  36. package/fesm2022/taiga-ui-kit-components-segmented.mjs.map +1 -1
  37. package/fesm2022/taiga-ui-kit-components-stepper.mjs +9 -10
  38. package/fesm2022/taiga-ui-kit-components-stepper.mjs.map +1 -1
  39. package/fesm2022/taiga-ui-kit-directives-button-group.mjs +2 -2
  40. package/fesm2022/taiga-ui-kit-directives-button-group.mjs.map +1 -1
  41. package/fesm2022/taiga-ui-kit-directives-connected.mjs +2 -2
  42. package/fesm2022/taiga-ui-kit-directives-connected.mjs.map +1 -1
  43. package/fesm2022/taiga-ui-kit-directives-copy.mjs.map +1 -1
  44. package/fesm2022/taiga-ui-kit-directives-lazy-loading.mjs +21 -25
  45. package/fesm2022/taiga-ui-kit-directives-lazy-loading.mjs.map +1 -1
  46. package/fesm2022/taiga-ui-kit-directives-password.mjs +1 -5
  47. package/fesm2022/taiga-ui-kit-directives-password.mjs.map +1 -1
  48. package/fesm2022/taiga-ui-kit-directives-skeleton.mjs +2 -2
  49. package/fesm2022/taiga-ui-kit-directives-skeleton.mjs.map +1 -1
  50. package/fesm2022/taiga-ui-kit-pipes-filter-by-input.mjs.map +1 -1
  51. package/package.json +517 -517
  52. package/pipes/filter-by-input/filter-by-input.pipe.d.ts +1 -3
  53. package/styles/components/chip.less +2 -0
  54. package/styles/components/compass.less +2 -2
@@ -1,13 +1,13 @@
1
1
  import { AsyncPipe, NgIf } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
3
  import { inject, ChangeDetectorRef, DestroyRef, EventEmitter, ElementRef, Component, ChangeDetectionStrategy, ContentChildren, forwardRef, Input, Output } from '@angular/core';
4
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
5
  import { RouterLinkActive } from '@angular/router';
5
6
  import { tuiInjectElement, tuiIsElement } from '@taiga-ui/cdk/utils/dom';
6
7
  import { TuiIcon } from '@taiga-ui/core/components/icon';
7
8
  import { TUI_ANIMATIONS_SPEED, TUI_COMMON_ICONS } from '@taiga-ui/core/tokens';
8
9
  import { delay, EMPTY, filter } from 'rxjs';
9
10
  import { __decorate } from 'tslib';
10
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
11
11
  import { ResizeObserverService } from '@ng-web-apis/resize-observer';
12
12
  import { EMPTY_QUERY } from '@taiga-ui/cdk/constants';
13
13
  import { tuiQueryListChanges } from '@taiga-ui/cdk/observables';
@@ -25,11 +25,11 @@ class TuiStepperComponent {
25
25
  this.speed = inject(TUI_ANIMATIONS_SPEED);
26
26
  this.destroyRef = inject(DestroyRef);
27
27
  this.activeItemIndex = 0;
28
- this.orientation = 'horizontal';
29
- this.activeItemIndexChange = new EventEmitter();
30
- inject(ResizeObserverService, { self: true })
28
+ this.$ = inject(ResizeObserverService, { self: true })
31
29
  .pipe(takeUntilDestroyed())
32
30
  .subscribe(() => this.scrollIntoView(this.activeItemIndex));
31
+ this.orientation = 'horizontal';
32
+ this.activeItemIndexChange = new EventEmitter();
33
33
  }
34
34
  set activeIndex(index) {
35
35
  this.activeItemIndex = index;
@@ -106,7 +106,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
106
106
  '(keydown.arrowDown)': 'onVertical($event, 1)',
107
107
  '(keydown.arrowUp)': 'onVertical($event, -1)',
108
108
  }, template: "<ng-container *ngIf=\"changes$ | async\" />\n<ng-content />\n", styles: [":host{scrollbar-width:none;-ms-overflow-style:none;display:flex;scroll-behavior:var(--tui-scroll-behavior);overflow:auto;counter-reset:steps}:host::-webkit-scrollbar,:host::-webkit-scrollbar-thumb{display:none}:host[data-orientation=vertical]{flex-direction:column}\n"] }]
109
- }], ctorParameters: function () { return []; }, propDecorators: { steps: [{
109
+ }], propDecorators: { steps: [{
110
110
  type: ContentChildren,
111
111
  args: [forwardRef(() => TuiStep), { read: ElementRef }]
112
112
  }], orientation: [{
@@ -122,14 +122,13 @@ class TuiStep {
122
122
  constructor() {
123
123
  this.stepper = inject(TuiStepperComponent);
124
124
  this.el = tuiInjectElement();
125
- this.routerLinkActive$ = inject(RouterLinkActive, { optional: true })?.isActiveChange || EMPTY;
125
+ this.$ = (inject(RouterLinkActive, { optional: true })?.isActiveChange.asObservable() ?? EMPTY)
126
+ .pipe(filter(Boolean), takeUntilDestroyed())
127
+ .subscribe(() => this.activate());
126
128
  this.focusVisible = false;
127
129
  this.icons = inject(TUI_COMMON_ICONS);
128
130
  this.stepState = 'normal';
129
131
  this.icon = '';
130
- this.routerLinkActive$.pipe(filter(Boolean)).subscribe(() => {
131
- this.activate();
132
- });
133
132
  }
134
133
  get isActive() {
135
134
  return this.stepper.isActive(this.index);
@@ -159,7 +158,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
159
158
  '[tabIndex]': 'tabIndex',
160
159
  '(click)': 'activate()',
161
160
  }, template: "<tui-icon\n *ngIf=\"icon\"\n class=\"t-marker t-marker_custom\"\n [icon]=\"icon\"\n/>\n<tui-icon\n class=\"t-marker t-marker_error\"\n [icon]=\"icons.error\"\n/>\n<tui-icon\n class=\"t-marker t-marker_pass\"\n [icon]=\"icons.check\"\n/>\n<div class=\"t-marker t-marker_index\"></div>\n<ng-content />\n", styles: [":host{-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font-size:inherit;line-height:inherit;text-decoration:none;position:relative;display:flex;align-items:center;flex-shrink:0;color:var(--tui-text-action);margin-right:1.5rem;outline:none;cursor:pointer;counter-increment:steps;text-align:start}:host:disabled{pointer-events:none;color:var(--tui-text-secondary)}:host:hover{color:var(--tui-text-action-hover)}:host:not(:last-of-type)._vertical{margin-bottom:1.25rem}:host._active,:host._active:hover{color:var(--tui-text-primary);cursor:default}:host:focus-visible:before{content:\"\";position:absolute;left:2.75rem;right:0;top:50%;block-size:1.5rem;margin-top:-.75rem;background:var(--tui-service-selection-background)}.t-marker{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;display:flex;inline-size:2rem;block-size:2rem;border-radius:100%;margin-right:.75rem;flex-shrink:0;align-items:center;align-self:flex-start;justify-content:center;background:var(--tui-background-neutral-1);color:var(--tui-text-action);border:.5rem solid transparent;box-sizing:border-box}:host:disabled .t-marker{background:var(--tui-background-neutral-1);color:var(--tui-text-secondary)}.t-marker_index:before{content:counter(steps)}:host:hover .t-marker_index{color:var(--tui-text-action-hover);background:var(--tui-background-neutral-1-hover)}:host._active .t-marker_index{color:var(--tui-text-primary-on-accent-1);background:var(--tui-background-accent-1)}:host:not([data-state=normal]):not(._active) .t-marker_index,:host:not(._active) .t-marker_custom~.t-marker_index{display:none}.t-marker_error{background:var(--tui-status-negative-pale);color:var(--tui-status-negative)}:host:hover .t-marker_error{background:var(--tui-status-negative-pale-hover);color:var(--tui-status-negative)}:host:not([data-state=error]) .t-marker_error,:host._active .t-marker_error{display:none}:host:not([data-state=pass]) .t-marker_pass,:host._active .t-marker_pass{display:none}:host:not([data-state=normal]) .t-marker_custom,:host._active .t-marker_custom{display:none}:host:hover .t-marker_custom{color:var(--tui-text-action-hover);background:var(--tui-background-neutral-1-hover)}\n"] }]
162
- }], ctorParameters: function () { return []; }, propDecorators: { stepState: [{
161
+ }], propDecorators: { stepState: [{
163
162
  type: Input
164
163
  }], icon: [{
165
164
  type: Input
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-stepper.mjs","sources":["../../../projects/kit/components/stepper/stepper.component.ts","../../../projects/kit/components/stepper/stepper.template.html","../../../projects/kit/components/stepper/step.component.ts","../../../projects/kit/components/stepper/step.template.html","../../../projects/kit/components/stepper/stepper.ts","../../../projects/kit/components/stepper/taiga-ui-kit-components-stepper.ts"],"sourcesContent":["import {AsyncPipe, NgIf} from '@angular/common';\nimport type {QueryList} from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n forwardRef,\n inject,\n Input,\n Output,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {ResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {tuiQueryListChanges} from '@taiga-ui/cdk/observables';\nimport {TuiScrollService} from '@taiga-ui/cdk/services';\nimport {tuiInjectElement, tuiIsElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiMoveFocus} from '@taiga-ui/cdk/utils/focus';\nimport {\n tuiGetOriginalArrayFromQueryList,\n tuiPure,\n} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_ANIMATIONS_SPEED} from '@taiga-ui/core/tokens';\nimport type {TuiOrientation} from '@taiga-ui/core/types';\nimport {tuiGetDuration} from '@taiga-ui/core/utils/miscellaneous';\nimport type {Observable} from 'rxjs';\nimport {delay} from 'rxjs';\n\nimport {TuiStep} from './step.component';\n\n@Component({\n standalone: true,\n selector: 'tui-stepper, nav[tuiStepper]',\n imports: [AsyncPipe, NgIf],\n templateUrl: './stepper.template.html',\n styleUrls: ['./stepper.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ResizeObserverService],\n host: {\n '[attr.data-orientation]': 'orientation',\n '(keydown.arrowRight)': 'onHorizontal($event, 1)',\n '(keydown.arrowLeft)': 'onHorizontal($event, -1)',\n '(keydown.arrowDown)': 'onVertical($event, 1)',\n '(keydown.arrowUp)': 'onVertical($event, -1)',\n },\n})\nexport class TuiStepperComponent {\n @ContentChildren(forwardRef(() => TuiStep), {read: ElementRef})\n private readonly steps: QueryList<ElementRef<HTMLElement>> = EMPTY_QUERY;\n\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly el = tuiInjectElement();\n private readonly scrollService = inject(TuiScrollService);\n private readonly speed = inject(TUI_ANIMATIONS_SPEED);\n private readonly destroyRef = inject(DestroyRef);\n\n protected activeItemIndex = 0;\n\n @Input()\n public orientation: TuiOrientation = 'horizontal';\n\n @Output()\n public readonly activeItemIndexChange = new EventEmitter<number>();\n\n constructor() {\n inject(ResizeObserverService, {self: true})\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.scrollIntoView(this.activeItemIndex));\n }\n\n @Input('activeItemIndex')\n public set activeIndex(index: number) {\n this.activeItemIndex = index;\n this.scrollIntoView(index);\n }\n\n public indexOf(step: HTMLElement): number {\n return tuiGetOriginalArrayFromQueryList(this.steps).findIndex(\n ({nativeElement}) => nativeElement === step,\n );\n }\n\n public isActive(index: number): boolean {\n return index === this.activeItemIndex;\n }\n\n public activate(index: number): void {\n if (this.activeItemIndex === index) {\n return;\n }\n\n this.activeItemIndex = index;\n this.activeItemIndexChange.emit(index);\n this.cdr.markForCheck();\n this.scrollIntoView(index);\n }\n\n @tuiPure\n protected get changes$(): Observable<unknown> {\n // Delay is required to trigger change detection after steps are rendered,\n // so they can update their \"active\" status\n return tuiQueryListChanges(this.steps).pipe(delay(0));\n }\n\n protected onHorizontal(event: Event, step: number): void {\n if (this.orientation !== 'horizontal' || !event.target) {\n return;\n }\n\n event.preventDefault();\n this.moveFocus(event.target, step);\n }\n\n protected onVertical(event: Event, step: number): void {\n if (this.orientation !== 'vertical' || !event.target) {\n return;\n }\n\n event.preventDefault();\n this.moveFocus(event.target, step);\n }\n\n private moveFocus(current: EventTarget, step: number): void {\n if (!tuiIsElement(current)) {\n return;\n }\n\n const stepElements = this.steps.toArray().map(({nativeElement}) => nativeElement);\n const index = stepElements.findIndex((element) => element === current);\n\n tuiMoveFocus(index, stepElements, step);\n }\n\n private scrollIntoView(index: number): void {\n const step = this.steps.get(index)?.nativeElement;\n\n if (!step) {\n return;\n }\n\n const {clientHeight, clientWidth, offsetTop, offsetLeft} = this.el;\n const {\n offsetHeight,\n offsetWidth,\n offsetTop: stepOffsetTop,\n offsetLeft: stepOffsetLeft,\n } = step;\n const top = stepOffsetTop - offsetTop - clientHeight / 2 + offsetHeight / 2;\n const left = stepOffsetLeft - offsetLeft - clientWidth / 2 + offsetWidth / 2;\n\n this.scrollService\n .scroll$(\n this.el,\n Math.max(0, top),\n Math.max(0, left),\n tuiGetDuration(this.speed) / 3,\n )\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe();\n }\n}\n","<ng-container *ngIf=\"changes$ | async\" />\n<ng-content />\n","import {NgIf} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, inject, Input} from '@angular/core';\nimport {RouterLinkActive} from '@angular/router';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport type {Observable} from 'rxjs';\nimport {EMPTY, filter} from 'rxjs';\n\nimport {TuiStepperComponent} from './stepper.component';\n\n@Component({\n standalone: true,\n selector:\n 'button[tuiStep], a[tuiStep]:not([routerLink]), a[tuiStep][routerLink][routerLinkActive]',\n imports: [NgIf, TuiIcon],\n templateUrl: './step.template.html',\n styleUrls: ['./step.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.data-state]': 'stepState',\n '[class._vertical]': 'isVertical',\n '[class._focus-visible]': 'focusVisible',\n '[class._active]': 'isActive',\n '[tabIndex]': 'tabIndex',\n '(click)': 'activate()',\n },\n})\nexport class TuiStep {\n private readonly stepper = inject(TuiStepperComponent);\n private readonly el = tuiInjectElement();\n private readonly routerLinkActive$: Observable<boolean> =\n inject(RouterLinkActive, {optional: true})?.isActiveChange || EMPTY;\n\n protected focusVisible = false;\n\n protected readonly icons = inject(TUI_COMMON_ICONS);\n\n @Input()\n public stepState: 'error' | 'normal' | 'pass' = 'normal';\n\n @Input()\n public icon = '';\n\n constructor() {\n this.routerLinkActive$.pipe(filter(Boolean)).subscribe(() => {\n this.activate();\n });\n }\n\n protected get isActive(): boolean {\n return this.stepper.isActive(this.index);\n }\n\n protected get isVertical(): boolean {\n return this.stepper.orientation === 'vertical';\n }\n\n protected get tabIndex(): number {\n return this.isActive ? 0 : -1;\n }\n\n protected get index(): number {\n return this.stepper.indexOf(this.el);\n }\n\n protected activate(): void {\n this.stepper.activate(this.index);\n }\n}\n","<tui-icon\n *ngIf=\"icon\"\n class=\"t-marker t-marker_custom\"\n [icon]=\"icon\"\n/>\n<tui-icon\n class=\"t-marker t-marker_error\"\n [icon]=\"icons.error\"\n/>\n<tui-icon\n class=\"t-marker t-marker_pass\"\n [icon]=\"icons.check\"\n/>\n<div class=\"t-marker t-marker_index\"></div>\n<ng-content />\n","import {TuiStep} from './step.component';\nimport {TuiStepperComponent} from './stepper.component';\n\nexport const TuiStepper = [TuiStepperComponent, TuiStep] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAkCA,MAgBa,mBAAmB,CAAA;AAkB5B,IAAA,WAAA,GAAA;QAhBiB,IAAK,CAAA,KAAA,GAAuC,WAAW,CAAC;AAExD,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAChC,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAE,CAAC;AACxB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACzC,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AACrC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QAEvC,IAAe,CAAA,eAAA,GAAG,CAAC,CAAC;QAGvB,IAAW,CAAA,WAAA,GAAmB,YAAY,CAAC;AAGlC,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAU,CAAC;QAG/D,MAAM,CAAC,qBAAqB,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC;aACtC,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC1B,aAAA,SAAS,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;KACnE;IAED,IACW,WAAW,CAAC,KAAa,EAAA;AAChC,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC7B,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;KAC9B;AAEM,IAAA,OAAO,CAAC,IAAiB,EAAA;QAC5B,OAAO,gCAAgC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CACzD,CAAC,EAAC,aAAa,EAAC,KAAK,aAAa,KAAK,IAAI,CAC9C,CAAC;KACL;AAEM,IAAA,QAAQ,CAAC,KAAa,EAAA;AACzB,QAAA,OAAO,KAAK,KAAK,IAAI,CAAC,eAAe,CAAC;KACzC;AAEM,IAAA,QAAQ,CAAC,KAAa,EAAA;AACzB,QAAA,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE;YAChC,OAAO;AACV,SAAA;AAED,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC7B,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;KAC9B;AAGD,IAAA,IAAc,QAAQ,GAAA;;;AAGlB,QAAA,OAAO,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACzD;IAES,YAAY,CAAC,KAAY,EAAE,IAAY,EAAA;QAC7C,IAAI,IAAI,CAAC,WAAW,KAAK,YAAY,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACpD,OAAO;AACV,SAAA;QAED,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;KACtC;IAES,UAAU,CAAC,KAAY,EAAE,IAAY,EAAA;QAC3C,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAClD,OAAO;AACV,SAAA;QAED,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;KACtC;IAEO,SAAS,CAAC,OAAoB,EAAE,IAAY,EAAA;AAChD,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;YACxB,OAAO;AACV,SAAA;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,EAAC,aAAa,EAAC,KAAK,aAAa,CAAC,CAAC;AAClF,QAAA,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,OAAO,KAAK,OAAO,KAAK,OAAO,CAAC,CAAC;AAEvE,QAAA,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;KAC3C;AAEO,IAAA,cAAc,CAAC,KAAa,EAAA;AAChC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC;QAElD,IAAI,CAAC,IAAI,EAAE;YACP,OAAO;AACV,SAAA;AAED,QAAA,MAAM,EAAC,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAC,GAAG,IAAI,CAAC,EAAE,CAAC;AACnE,QAAA,MAAM,EACF,YAAY,EACZ,WAAW,EACX,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,cAAc,GAC7B,GAAG,IAAI,CAAC;AACT,QAAA,MAAM,GAAG,GAAG,aAAa,GAAG,SAAS,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC;AAC5E,QAAA,MAAM,IAAI,GAAG,cAAc,GAAG,UAAU,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC;AAE7E,QAAA,IAAI,CAAC,aAAa;AACb,aAAA,OAAO,CACJ,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAChB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,EACjB,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CACjC;AACA,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACzC,aAAA,SAAS,EAAE,CAAC;KACpB;+GAjHQ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,EATjB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,CAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,oBAAA,EAAA,yBAAA,EAAA,mBAAA,EAAA,0BAAA,EAAA,mBAAA,EAAA,uBAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,qBAAqB,CAAC,EAUA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,OAAA,OAAO,CAAU,EAAA,CAAA,EAAA,IAAA,EAAA,UAAU,ECnDjE,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,+DAEA,EDmCc,MAAA,EAAA,CAAA,6QAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,SAAS,8CAAE,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;AAiEzB,UAAA,CAAA;IADC,OAAO;AAKP,CAAA,EAAA,mBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,IAAA,CAAA,CAAA;4FAxDQ,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAhB/B,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,8BAA8B,EAAA,OAAA,EAC/B,CAAC,SAAS,EAAE,IAAI,CAAC,EAGT,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC,CAAC,qBAAqB,CAAC,EAC5B,IAAA,EAAA;AACF,wBAAA,yBAAyB,EAAE,aAAa;AACxC,wBAAA,sBAAsB,EAAE,yBAAyB;AACjD,wBAAA,qBAAqB,EAAE,0BAA0B;AACjD,wBAAA,qBAAqB,EAAE,uBAAuB;AAC9C,wBAAA,mBAAmB,EAAE,wBAAwB;AAChD,qBAAA,EAAA,QAAA,EAAA,+DAAA,EAAA,MAAA,EAAA,CAAA,6QAAA,CAAA,EAAA,CAAA;0EAIgB,KAAK,EAAA,CAAA;sBADrB,eAAe;uBAAC,UAAU,CAAC,MAAM,OAAO,CAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAC,CAAA;gBAYvD,WAAW,EAAA,CAAA;sBADjB,KAAK;gBAIU,qBAAqB,EAAA,CAAA;sBADpC,MAAM;gBAUI,WAAW,EAAA,CAAA;sBADrB,KAAK;uBAAC,iBAAiB,CAAA;gBA4BV,QAAQ,EAAA,EAAA,EAAA,EAAA,CAAA;;AE3F1B,MAiBa,OAAO,CAAA;AAgBhB,IAAA,WAAA,GAAA;AAfiB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACtC,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAE,CAAC;AACxB,QAAA,IAAA,CAAA,iBAAiB,GAC9B,MAAM,CAAC,gBAAgB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,EAAE,cAAc,IAAI,KAAK,CAAC;QAE9D,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAEZ,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAG7C,IAAS,CAAA,SAAA,GAAgC,QAAQ,CAAC;QAGlD,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;AAGb,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YACxD,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpB,SAAC,CAAC,CAAC;KACN;AAED,IAAA,IAAc,QAAQ,GAAA;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5C;AAED,IAAA,IAAc,UAAU,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,KAAK,UAAU,CAAC;KAClD;AAED,IAAA,IAAc,QAAQ,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;KACjC;AAED,IAAA,IAAc,KAAK,GAAA;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACxC;IAES,QAAQ,GAAA;QACd,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACrC;+GAxCQ,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAP,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,OAAO,EC5BpB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yFAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,YAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,oUAeA,EDAc,MAAA,EAAA,CAAA,utEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAI,6FAAE,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAad,OAAO,EAAA,UAAA,EAAA,CAAA;kBAjBnB,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EAEZ,QAAA,EAAA,yFAAyF,EACpF,OAAA,EAAA,CAAC,IAAI,EAAE,OAAO,CAAC,EAGP,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,mBAAmB,EAAE,WAAW;AAChC,wBAAA,mBAAmB,EAAE,YAAY;AACjC,wBAAA,wBAAwB,EAAE,cAAc;AACxC,wBAAA,iBAAiB,EAAE,UAAU;AAC7B,wBAAA,YAAY,EAAE,UAAU;AACxB,wBAAA,SAAS,EAAE,YAAY;AAC1B,qBAAA,EAAA,QAAA,EAAA,oUAAA,EAAA,MAAA,EAAA,CAAA,utEAAA,CAAA,EAAA,CAAA;0EAaM,SAAS,EAAA,CAAA;sBADf,KAAK;gBAIC,IAAI,EAAA,CAAA;sBADV,KAAK;;;MEtCG,UAAU,GAAG,CAAC,mBAAmB,EAAE,OAAO;;ACHvD;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-components-stepper.mjs","sources":["../../../projects/kit/components/stepper/stepper.component.ts","../../../projects/kit/components/stepper/stepper.template.html","../../../projects/kit/components/stepper/step.component.ts","../../../projects/kit/components/stepper/step.template.html","../../../projects/kit/components/stepper/stepper.ts","../../../projects/kit/components/stepper/taiga-ui-kit-components-stepper.ts"],"sourcesContent":["import {AsyncPipe, NgIf} from '@angular/common';\nimport type {QueryList} from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n forwardRef,\n inject,\n Input,\n Output,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {ResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {tuiQueryListChanges} from '@taiga-ui/cdk/observables';\nimport {TuiScrollService} from '@taiga-ui/cdk/services';\nimport {tuiInjectElement, tuiIsElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiMoveFocus} from '@taiga-ui/cdk/utils/focus';\nimport {\n tuiGetOriginalArrayFromQueryList,\n tuiPure,\n} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_ANIMATIONS_SPEED} from '@taiga-ui/core/tokens';\nimport type {TuiOrientation} from '@taiga-ui/core/types';\nimport {tuiGetDuration} from '@taiga-ui/core/utils/miscellaneous';\nimport type {Observable} from 'rxjs';\nimport {delay} from 'rxjs';\n\nimport {TuiStep} from './step.component';\n\n@Component({\n standalone: true,\n selector: 'tui-stepper, nav[tuiStepper]',\n imports: [AsyncPipe, NgIf],\n templateUrl: './stepper.template.html',\n styleUrls: ['./stepper.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ResizeObserverService],\n host: {\n '[attr.data-orientation]': 'orientation',\n '(keydown.arrowRight)': 'onHorizontal($event, 1)',\n '(keydown.arrowLeft)': 'onHorizontal($event, -1)',\n '(keydown.arrowDown)': 'onVertical($event, 1)',\n '(keydown.arrowUp)': 'onVertical($event, -1)',\n },\n})\nexport class TuiStepperComponent {\n @ContentChildren(forwardRef(() => TuiStep), {read: ElementRef})\n private readonly steps: QueryList<ElementRef<HTMLElement>> = EMPTY_QUERY;\n\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly el = tuiInjectElement();\n private readonly scrollService = inject(TuiScrollService);\n private readonly speed = inject(TUI_ANIMATIONS_SPEED);\n private readonly destroyRef = inject(DestroyRef);\n\n protected activeItemIndex = 0;\n\n protected readonly $ = inject(ResizeObserverService, {self: true})\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.scrollIntoView(this.activeItemIndex));\n\n @Input()\n public orientation: TuiOrientation = 'horizontal';\n\n @Output()\n public readonly activeItemIndexChange = new EventEmitter<number>();\n\n @Input('activeItemIndex')\n public set activeIndex(index: number) {\n this.activeItemIndex = index;\n this.scrollIntoView(index);\n }\n\n public indexOf(step: HTMLElement): number {\n return tuiGetOriginalArrayFromQueryList(this.steps).findIndex(\n ({nativeElement}) => nativeElement === step,\n );\n }\n\n public isActive(index: number): boolean {\n return index === this.activeItemIndex;\n }\n\n public activate(index: number): void {\n if (this.activeItemIndex === index) {\n return;\n }\n\n this.activeItemIndex = index;\n this.activeItemIndexChange.emit(index);\n this.cdr.markForCheck();\n this.scrollIntoView(index);\n }\n\n @tuiPure\n protected get changes$(): Observable<unknown> {\n // Delay is required to trigger change detection after steps are rendered,\n // so they can update their \"active\" status\n return tuiQueryListChanges(this.steps).pipe(delay(0));\n }\n\n protected onHorizontal(event: Event, step: number): void {\n if (this.orientation !== 'horizontal' || !event.target) {\n return;\n }\n\n event.preventDefault();\n this.moveFocus(event.target, step);\n }\n\n protected onVertical(event: Event, step: number): void {\n if (this.orientation !== 'vertical' || !event.target) {\n return;\n }\n\n event.preventDefault();\n this.moveFocus(event.target, step);\n }\n\n private moveFocus(current: EventTarget, step: number): void {\n if (!tuiIsElement(current)) {\n return;\n }\n\n const stepElements = this.steps.toArray().map(({nativeElement}) => nativeElement);\n const index = stepElements.findIndex((element) => element === current);\n\n tuiMoveFocus(index, stepElements, step);\n }\n\n private scrollIntoView(index: number): void {\n const step = this.steps.get(index)?.nativeElement;\n\n if (!step) {\n return;\n }\n\n const {clientHeight, clientWidth, offsetTop, offsetLeft} = this.el;\n const {\n offsetHeight,\n offsetWidth,\n offsetTop: stepOffsetTop,\n offsetLeft: stepOffsetLeft,\n } = step;\n const top = stepOffsetTop - offsetTop - clientHeight / 2 + offsetHeight / 2;\n const left = stepOffsetLeft - offsetLeft - clientWidth / 2 + offsetWidth / 2;\n\n this.scrollService\n .scroll$(\n this.el,\n Math.max(0, top),\n Math.max(0, left),\n tuiGetDuration(this.speed) / 3,\n )\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe();\n }\n}\n","<ng-container *ngIf=\"changes$ | async\" />\n<ng-content />\n","import {NgIf} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, inject, Input} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {RouterLinkActive} from '@angular/router';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {EMPTY, filter} from 'rxjs';\n\nimport {TuiStepperComponent} from './stepper.component';\n\n@Component({\n standalone: true,\n selector:\n 'button[tuiStep], a[tuiStep]:not([routerLink]), a[tuiStep][routerLink][routerLinkActive]',\n imports: [NgIf, TuiIcon],\n templateUrl: './step.template.html',\n styleUrls: ['./step.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.data-state]': 'stepState',\n '[class._vertical]': 'isVertical',\n '[class._focus-visible]': 'focusVisible',\n '[class._active]': 'isActive',\n '[tabIndex]': 'tabIndex',\n '(click)': 'activate()',\n },\n})\nexport class TuiStep {\n private readonly stepper = inject(TuiStepperComponent);\n private readonly el = tuiInjectElement();\n protected readonly $ = (\n inject(RouterLinkActive, {optional: true})?.isActiveChange.asObservable() ?? EMPTY\n )\n .pipe(filter(Boolean), takeUntilDestroyed())\n .subscribe(() => this.activate());\n\n protected focusVisible = false;\n\n protected readonly icons = inject(TUI_COMMON_ICONS);\n\n @Input()\n public stepState: 'error' | 'normal' | 'pass' = 'normal';\n\n @Input()\n public icon = '';\n\n protected get isActive(): boolean {\n return this.stepper.isActive(this.index);\n }\n\n protected get isVertical(): boolean {\n return this.stepper.orientation === 'vertical';\n }\n\n protected get tabIndex(): number {\n return this.isActive ? 0 : -1;\n }\n\n protected get index(): number {\n return this.stepper.indexOf(this.el);\n }\n\n protected activate(): void {\n this.stepper.activate(this.index);\n }\n}\n","<tui-icon\n *ngIf=\"icon\"\n class=\"t-marker t-marker_custom\"\n [icon]=\"icon\"\n/>\n<tui-icon\n class=\"t-marker t-marker_error\"\n [icon]=\"icons.error\"\n/>\n<tui-icon\n class=\"t-marker t-marker_pass\"\n [icon]=\"icons.check\"\n/>\n<div class=\"t-marker t-marker_index\"></div>\n<ng-content />\n","import {TuiStep} from './step.component';\nimport {TuiStepperComponent} from './stepper.component';\n\nexport const TuiStepper = [TuiStepperComponent, TuiStep] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -4,13 +4,13 @@ import { tuiWithStyles } from '@taiga-ui/cdk/utils/miscellaneous';
4
4
 
5
5
  class TuiButtonGroupStyles {
6
6
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiButtonGroupStyles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiButtonGroupStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-button-group-styles" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiButtonGroup]{display:flex;border-radius:var(--tui-radius-xl);justify-content:center;overflow:hidden}[tuiButtonGroup]>button,[tuiButtonGroup]>a{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;display:flex;border:none;outline:none;background:transparent;align-items:center;flex:1;flex-direction:column;padding:1.125rem .25rem;gap:.5rem;font:var(--tui-font-text-ui-s);max-inline-size:calc(50% - 1.75rem);cursor:pointer;color:var(--tui-text-action);text-align:center}[tuiButtonGroup]>button:active,[tuiButtonGroup]>a:active{background:var(--tui-background-neutral-1)}[tuiButtonGroup]>button:before,[tuiButtonGroup]>a:before,[tuiButtonGroup]>button:after,[tuiButtonGroup]>a:after{position:absolute;top:0;background:inherit;inline-size:1.75rem;block-size:100%}[tuiButtonGroup]>button:first-child:before,[tuiButtonGroup]>a:first-child:before{content:\"\";left:-1.75rem}[tuiButtonGroup]>button:last-child:after,[tuiButtonGroup]>a:last-child:after{content:\"\";right:-1.75rem}[tuiButtonGroup]>button tui-icon,[tuiButtonGroup]>a tui-icon{font-size:1.75rem}[tuiButtonGroup]:has(button:only-child){border-radius:1rem}[tuiButtonGroup]>button:only-child,[tuiButtonGroup]>a:only-child{inline-size:100%;flex-direction:row;font:var(--tui-font-text-ui-l);max-inline-size:100%;justify-content:center}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiButtonGroupStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-button-group-styles" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiButtonGroup]{display:flex;border-radius:var(--tui-radius-xl);justify-content:center;overflow:hidden}[tuiButtonGroup]>button,[tuiButtonGroup]>a{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;display:flex;border:none;outline:none;background:transparent;align-items:center;flex:1;flex-direction:column;padding:1.125rem .25rem;gap:.5rem;font:var(--tui-font-text-ui-s);max-inline-size:calc(50% - 1.75rem);cursor:pointer;color:var(--tui-text-action);text-align:center;text-decoration:none}[tuiButtonGroup]>button:active,[tuiButtonGroup]>a:active{background:var(--tui-background-neutral-1)}[tuiButtonGroup]>button:before,[tuiButtonGroup]>a:before,[tuiButtonGroup]>button:after,[tuiButtonGroup]>a:after{position:absolute;top:0;background:inherit;inline-size:1.75rem;block-size:100%}[tuiButtonGroup]>button:first-child:before,[tuiButtonGroup]>a:first-child:before{content:\"\";left:-1.75rem}[tuiButtonGroup]>button:last-child:after,[tuiButtonGroup]>a:last-child:after{content:\"\";right:-1.75rem}[tuiButtonGroup]>button tui-icon,[tuiButtonGroup]>a tui-icon{font-size:1.75rem}[tuiButtonGroup]:has(button:only-child){border-radius:1rem}[tuiButtonGroup]>button:only-child,[tuiButtonGroup]>a:only-child{inline-size:100%;flex-direction:row;font:var(--tui-font-text-ui-l);max-inline-size:100%;justify-content:center}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
8
8
  }
9
9
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiButtonGroupStyles, decorators: [{
10
10
  type: Component,
11
11
  args: [{ standalone: true, template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
12
12
  class: 'tui-button-group-styles',
13
- }, styles: ["[tuiButtonGroup]{display:flex;border-radius:var(--tui-radius-xl);justify-content:center;overflow:hidden}[tuiButtonGroup]>button,[tuiButtonGroup]>a{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;display:flex;border:none;outline:none;background:transparent;align-items:center;flex:1;flex-direction:column;padding:1.125rem .25rem;gap:.5rem;font:var(--tui-font-text-ui-s);max-inline-size:calc(50% - 1.75rem);cursor:pointer;color:var(--tui-text-action);text-align:center}[tuiButtonGroup]>button:active,[tuiButtonGroup]>a:active{background:var(--tui-background-neutral-1)}[tuiButtonGroup]>button:before,[tuiButtonGroup]>a:before,[tuiButtonGroup]>button:after,[tuiButtonGroup]>a:after{position:absolute;top:0;background:inherit;inline-size:1.75rem;block-size:100%}[tuiButtonGroup]>button:first-child:before,[tuiButtonGroup]>a:first-child:before{content:\"\";left:-1.75rem}[tuiButtonGroup]>button:last-child:after,[tuiButtonGroup]>a:last-child:after{content:\"\";right:-1.75rem}[tuiButtonGroup]>button tui-icon,[tuiButtonGroup]>a tui-icon{font-size:1.75rem}[tuiButtonGroup]:has(button:only-child){border-radius:1rem}[tuiButtonGroup]>button:only-child,[tuiButtonGroup]>a:only-child{inline-size:100%;flex-direction:row;font:var(--tui-font-text-ui-l);max-inline-size:100%;justify-content:center}\n"] }]
13
+ }, styles: ["[tuiButtonGroup]{display:flex;border-radius:var(--tui-radius-xl);justify-content:center;overflow:hidden}[tuiButtonGroup]>button,[tuiButtonGroup]>a{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;display:flex;border:none;outline:none;background:transparent;align-items:center;flex:1;flex-direction:column;padding:1.125rem .25rem;gap:.5rem;font:var(--tui-font-text-ui-s);max-inline-size:calc(50% - 1.75rem);cursor:pointer;color:var(--tui-text-action);text-align:center;text-decoration:none}[tuiButtonGroup]>button:active,[tuiButtonGroup]>a:active{background:var(--tui-background-neutral-1)}[tuiButtonGroup]>button:before,[tuiButtonGroup]>a:before,[tuiButtonGroup]>button:after,[tuiButtonGroup]>a:after{position:absolute;top:0;background:inherit;inline-size:1.75rem;block-size:100%}[tuiButtonGroup]>button:first-child:before,[tuiButtonGroup]>a:first-child:before{content:\"\";left:-1.75rem}[tuiButtonGroup]>button:last-child:after,[tuiButtonGroup]>a:last-child:after{content:\"\";right:-1.75rem}[tuiButtonGroup]>button tui-icon,[tuiButtonGroup]>a tui-icon{font-size:1.75rem}[tuiButtonGroup]:has(button:only-child){border-radius:1rem}[tuiButtonGroup]>button:only-child,[tuiButtonGroup]>a:only-child{inline-size:100%;flex-direction:row;font:var(--tui-font-text-ui-l);max-inline-size:100%;justify-content:center}\n"] }]
14
14
  }] });
15
15
  class TuiButtonGroup {
16
16
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-directives-button-group.mjs","sources":["../../../projects/kit/directives/button-group/button-group.directive.ts","../../../projects/kit/directives/button-group/taiga-ui-kit-directives-button-group.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./button-group.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-button-group-styles',\n },\n})\nclass TuiButtonGroupStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiButtonGroup]',\n})\nexport class TuiButtonGroup {\n protected readonly nothing = tuiWithStyles(TuiButtonGroupStyles);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAQA,MAUM,oBAAoB,CAAA;+GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,6HARZ,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,81CAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAQV,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAVzB,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,EAAE,EAAA,aAAA,EAEG,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,yBAAyB;AACnC,qBAAA,EAAA,MAAA,EAAA,CAAA,81CAAA,CAAA,EAAA,CAAA;;AAIL,MAIa,cAAc,CAAA;AAJ3B,IAAA,WAAA,GAAA;AAKuB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,oBAAoB,CAAC,CAAC;AACpE,KAAA;+GAFY,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,kBAAkB;AAC/B,iBAAA,CAAA;;;ACvBD;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-directives-button-group.mjs","sources":["../../../projects/kit/directives/button-group/button-group.directive.ts","../../../projects/kit/directives/button-group/taiga-ui-kit-directives-button-group.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./button-group.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-button-group-styles',\n },\n})\nclass TuiButtonGroupStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiButtonGroup]',\n})\nexport class TuiButtonGroup {\n protected readonly nothing = tuiWithStyles(TuiButtonGroupStyles);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAQA,MAUM,oBAAoB,CAAA;+GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,6HARZ,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,m3CAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAQV,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAVzB,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,EAAE,EAAA,aAAA,EAEG,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,yBAAyB;AACnC,qBAAA,EAAA,MAAA,EAAA,CAAA,m3CAAA,CAAA,EAAA,CAAA;;AAIL,MAIa,cAAc,CAAA;AAJ3B,IAAA,WAAA,GAAA;AAKuB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,oBAAoB,CAAC,CAAC;AACpE,KAAA;+GAFY,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,kBAAkB;AAC/B,iBAAA,CAAA;;;ACvBD;;AAEG;;;;"}
@@ -4,13 +4,13 @@ import { tuiWithStyles } from '@taiga-ui/cdk/utils/miscellaneous';
4
4
 
5
5
  class TuiConnectedStyles {
6
6
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiConnectedStyles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiConnectedStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-connected-styles" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiConnected]{--t-image-size: 2.5rem;--t-connected-height: calc(100% - var(--t-image-size) - .5rem)}[tuiConnected] [tuiCell]:not(:last-of-type):after,[tuiConnected] [tuiStep]:not(:last-of-type):after{content:\"\";position:absolute;top:calc(var(--t-image-size) + .25rem);left:calc(var(--t-image-size) / 2);block-size:var(--t-connected-height);inline-size:1px;background-color:var(--tui-border-normal);background-clip:content-box;padding:inherit}[tuiConnected] [tuiStep]{--t-image-size: 2rem;--t-connected-height: calc(100% - var(--t-image-size) + .75rem)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiConnectedStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-connected-styles" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiConnected]{--t-image-size: 2.5rem;--t-connected-height: calc(100% - var(--t-image-size) - .5rem)}[tuiConnected][tuiCardLarge]{--t-connected-height: calc(100% - var(--t-image-size) - .25rem)}[tuiConnected] [tuiCell]:not(:last-of-type):after,[tuiConnected] [tuiStep]:not(:last-of-type):after{content:\"\";position:absolute;top:calc(var(--t-image-size) + .25rem);left:calc(var(--t-image-size) / 2);block-size:var(--t-connected-height);inline-size:1px;background-color:var(--tui-border-normal);background-clip:content-box;padding:inherit}[tuiConnected] [tuiStep]{--t-image-size: 2rem;--t-connected-height: calc(100% - var(--t-image-size) + .75rem)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
8
8
  }
9
9
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiConnectedStyles, decorators: [{
10
10
  type: Component,
11
11
  args: [{ standalone: true, template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
12
12
  class: 'tui-connected-styles',
13
- }, styles: ["[tuiConnected]{--t-image-size: 2.5rem;--t-connected-height: calc(100% - var(--t-image-size) - .5rem)}[tuiConnected] [tuiCell]:not(:last-of-type):after,[tuiConnected] [tuiStep]:not(:last-of-type):after{content:\"\";position:absolute;top:calc(var(--t-image-size) + .25rem);left:calc(var(--t-image-size) / 2);block-size:var(--t-connected-height);inline-size:1px;background-color:var(--tui-border-normal);background-clip:content-box;padding:inherit}[tuiConnected] [tuiStep]{--t-image-size: 2rem;--t-connected-height: calc(100% - var(--t-image-size) + .75rem)}\n"] }]
13
+ }, styles: ["[tuiConnected]{--t-image-size: 2.5rem;--t-connected-height: calc(100% - var(--t-image-size) - .5rem)}[tuiConnected][tuiCardLarge]{--t-connected-height: calc(100% - var(--t-image-size) - .25rem)}[tuiConnected] [tuiCell]:not(:last-of-type):after,[tuiConnected] [tuiStep]:not(:last-of-type):after{content:\"\";position:absolute;top:calc(var(--t-image-size) + .25rem);left:calc(var(--t-image-size) / 2);block-size:var(--t-connected-height);inline-size:1px;background-color:var(--tui-border-normal);background-clip:content-box;padding:inherit}[tuiConnected] [tuiStep]{--t-image-size: 2rem;--t-connected-height: calc(100% - var(--t-image-size) + .75rem)}\n"] }]
14
14
  }] });
15
15
  class TuiConnected {
16
16
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-directives-connected.mjs","sources":["../../../projects/kit/directives/connected/connected.directive.ts","../../../projects/kit/directives/connected/taiga-ui-kit-directives-connected.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./connected.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-connected-styles',\n },\n})\nclass TuiConnectedStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiConnected]',\n host: {\n tuiConnected: '',\n },\n})\nexport class TuiConnected {\n protected readonly nothing = tuiWithStyles(TuiConnectedStyles);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAQA,MAUM,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,0HARV,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,+iBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAQV,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAVvB,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,EAAE,EAAA,aAAA,EAEG,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,sBAAsB;AAChC,qBAAA,EAAA,MAAA,EAAA,CAAA,+iBAAA,CAAA,EAAA,CAAA;;AAIL,MAOa,YAAY,CAAA;AAPzB,IAAA,WAAA,GAAA;AAQuB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,kBAAkB,CAAC,CAAC;AAClE,KAAA;+GAFY,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,EAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAPxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,IAAI,EAAE;AACF,wBAAA,YAAY,EAAE,EAAE;AACnB,qBAAA;AACJ,iBAAA,CAAA;;;AC1BD;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-directives-connected.mjs","sources":["../../../projects/kit/directives/connected/connected.directive.ts","../../../projects/kit/directives/connected/taiga-ui-kit-directives-connected.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./connected.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-connected-styles',\n },\n})\nclass TuiConnectedStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiConnected]',\n host: {\n tuiConnected: '',\n },\n})\nexport class TuiConnected {\n protected readonly nothing = tuiWithStyles(TuiConnectedStyles);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAQA,MAUM,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,0HARV,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,4oBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAQV,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAVvB,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,EAAE,EAAA,aAAA,EAEG,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,sBAAsB;AAChC,qBAAA,EAAA,MAAA,EAAA,CAAA,4oBAAA,CAAA,EAAA,CAAA;;AAIL,MAOa,YAAY,CAAA;AAPzB,IAAA,WAAA,GAAA;AAQuB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,kBAAkB,CAAC,CAAC;AAClE,KAAA;+GAFY,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,EAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAPxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,IAAI,EAAE;AACF,wBAAA,YAAY,EAAE,EAAE;AACnB,qBAAA;AACJ,iBAAA,CAAA;;;AC1BD;;AAEG;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-directives-copy.mjs","sources":["../../../projects/kit/directives/copy/copy.options.ts","../../../projects/kit/directives/copy/copy.directive.ts","../../../projects/kit/directives/copy/taiga-ui-kit-directives-copy.ts"],"sourcesContent":["import type {TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport type {TuiSizeL, TuiSizeS} from '@taiga-ui/core/types';\n\nexport interface TuiCopyOptions {\n readonly icon: TuiStringHandler<TuiSizeL | TuiSizeS> | string;\n}\n\nexport const [TUI_COPY_OPTIONS, tuiCopyOptionsProvider] =\n tuiCreateOptions<TuiCopyOptions>({\n icon: '@tui.copy',\n });\n","import {DOCUMENT} from '@angular/common';\nimport {computed, Directive, inject, Input} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {tuiDirectiveBinding, tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_APPEARANCE_OPTIONS,\n TuiWithAppearance,\n} from '@taiga-ui/core/directives/appearance';\nimport {TuiHintDirective} from '@taiga-ui/core/directives/hint';\nimport {TUI_COPY_TEXTS} from '@taiga-ui/kit/tokens';\nimport {map, startWith, Subject, switchMap, timer} from 'rxjs';\n\nimport {TUI_COPY_OPTIONS} from './copy.options';\n\n@Directive({\n standalone: true,\n selector: 'tui-icon[tuiCopy]',\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)': 'copy()',\n '[style.pointer-events]': 'disabled ? \"none\" : null',\n '[style.opacity]': 'disabled ? \"var(--tui-disabled-opacity)\" : null',\n '[style.border]':\n 'textfield.options.size() === \"s\" ? \"0.25rem solid transparent\" : null',\n },\n})\nexport class TuiCopy {\n private readonly options = inject(TUI_COPY_OPTIONS);\n private readonly copied$ = new Subject<void>();\n private readonly doc = inject(DOCUMENT);\n\n protected readonly textfield = inject(TuiTextfieldComponent);\n protected readonly hint = tuiDirectiveBinding(\n TuiHintDirective,\n 'tuiHint',\n toSignal(\n inject(TUI_COPY_TEXTS).pipe(\n switchMap(([copy, copied]) =>\n this.copied$.pipe(\n switchMap(() =>\n timer(3000).pipe(\n map(() => copy),\n startWith(copied),\n ),\n ),\n startWith(copy),\n ),\n ),\n ),\n {initialValue: ''},\n ),\n );\n\n protected readonly icons = tuiDirectiveBinding(\n TuiIcon,\n 'icon',\n computed((size = this.textfield.options.size()) =>\n tuiIsString(this.options.icon) ? this.options.icon : this.options.icon(size),\n ),\n );\n\n @Input()\n public tuiCopy: string | '' = '';\n\n protected get disabled(): boolean {\n return !this.textfield.el?.nativeElement.value;\n }\n\n protected copy(): void {\n this.textfield.el?.nativeElement.select();\n this.doc.execCommand('copy');\n this.copied$.next();\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-copy.mjs","sources":["../../../projects/kit/directives/copy/copy.options.ts","../../../projects/kit/directives/copy/copy.directive.ts","../../../projects/kit/directives/copy/taiga-ui-kit-directives-copy.ts"],"sourcesContent":["import type {TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport type {TuiSizeL, TuiSizeS} from '@taiga-ui/core/types';\n\nexport interface TuiCopyOptions {\n readonly icon: TuiStringHandler<TuiSizeL | TuiSizeS> | string;\n}\n\nexport const [TUI_COPY_OPTIONS, tuiCopyOptionsProvider] =\n tuiCreateOptions<TuiCopyOptions>({\n icon: '@tui.copy',\n });\n","import {DOCUMENT} from '@angular/common';\nimport {computed, Directive, inject, Input} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {tuiDirectiveBinding, tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_APPEARANCE_OPTIONS,\n TuiWithAppearance,\n} from '@taiga-ui/core/directives/appearance';\nimport {TuiHintDirective} from '@taiga-ui/core/directives/hint';\nimport {TUI_COPY_TEXTS} from '@taiga-ui/kit/tokens';\nimport {map, startWith, Subject, switchMap, timer} from 'rxjs';\n\nimport {TUI_COPY_OPTIONS} from './copy.options';\n\n@Directive({\n standalone: true,\n selector: 'tui-icon[tuiCopy]',\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)': 'copy()',\n '[style.pointer-events]': 'disabled ? \"none\" : null',\n '[style.opacity]': 'disabled ? \"var(--tui-disabled-opacity)\" : null',\n '[style.border]':\n 'textfield.options.size() === \"s\" ? \"0.25rem solid transparent\" : null',\n },\n})\nexport class TuiCopy {\n private readonly options = inject(TUI_COPY_OPTIONS);\n private readonly copied$ = new Subject<void>();\n private readonly doc = inject(DOCUMENT);\n\n protected readonly textfield = inject(TuiTextfieldComponent);\n protected readonly hint = tuiDirectiveBinding(\n TuiHintDirective,\n 'tuiHint',\n toSignal(\n inject(TUI_COPY_TEXTS).pipe(\n switchMap(([copy, copied]) =>\n this.copied$.pipe(\n switchMap(() =>\n timer(3000).pipe(\n map(() => copy),\n startWith(copied),\n ),\n ),\n startWith(copy),\n ),\n ),\n ),\n {initialValue: ''},\n ),\n );\n\n protected readonly icons = tuiDirectiveBinding(\n TuiIcon,\n 'icon',\n computed((size = this.textfield.options.size()) =>\n tuiIsString(this.options.icon) ? this.options.icon : this.options.icon(size),\n ),\n );\n\n @Input()\n public tuiCopy = '';\n\n protected get disabled(): boolean {\n return !this.textfield.el?.nativeElement.value;\n }\n\n protected copy(): void {\n this.textfield.el?.nativeElement.select();\n this.doc.execCommand('copy');\n this.copied$.next();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, ChangeDetectorRef, Injectable, Directive, Input } from '@angular/core';
2
+ import { inject, ChangeDetectorRef, Injectable, signal, Directive, Input } from '@angular/core';
3
3
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
4
  import { IntersectionObserverService } from '@ng-web-apis/intersection-observer';
5
5
  import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
@@ -26,30 +26,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
26
26
  class TuiImgLazyLoading {
27
27
  constructor() {
28
28
  this.el = tuiInjectElement();
29
- this.src$ = inject(TuiLazyLoadingService);
30
- this.animation = 'tuiSkeletonVibe ease-in-out 1s infinite alternate';
31
- this.background = 'var(--tui-background-neutral-2)';
32
- this.src = null;
33
- if (this.supported) {
34
- return;
35
- }
36
- this.src$.pipe(takeUntilDestroyed()).subscribe((src) => {
37
- this.src = src;
38
- });
29
+ this.loading$ = inject(TuiLazyLoadingService);
30
+ this.supported = 'loading' in this.el;
31
+ this.src = signal(null);
32
+ this.animation = signal('tuiSkeletonVibe ease-in-out 1s infinite alternate');
33
+ this.background = signal('var(--tui-background-neutral-2)');
34
+ this.$ = this.loading$
35
+ .pipe(takeUntilDestroyed())
36
+ .subscribe((src) => this.src.set(src));
39
37
  }
40
38
  set srcSetter(src) {
41
- this.src = this.supported ? src : null;
42
- this.src$.next(src);
43
- }
44
- onLoad() {
45
- this.background = '';
46
- this.animation = '';
39
+ this.src.set(this.supported ? src : null);
40
+ this.loading$.next(src);
47
41
  }
48
- get supported() {
49
- return 'loading' in this.el;
42
+ unset() {
43
+ this.background.set('');
44
+ this.animation.set('');
50
45
  }
51
46
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiImgLazyLoading, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
52
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiImgLazyLoading, isStandalone: true, selector: "img[loading=\"lazy\"]", inputs: { srcSetter: ["src", "srcSetter"] }, host: { listeners: { "load": "onLoad()" }, properties: { "style.animation": "animation", "style.background": "background", "attr.src": "src" } }, providers: [TuiLazyLoadingService, IntersectionObserverService], ngImport: i0 }); }
47
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiImgLazyLoading, isStandalone: true, selector: "img[loading=\"lazy\"]", inputs: { srcSetter: ["src", "srcSetter"] }, host: { listeners: { "load": "unset()", "error": "unset()" }, properties: { "style.animation": "animation()", "style.background": "background()", "attr.src": "src()" } }, providers: [TuiLazyLoadingService, IntersectionObserverService], ngImport: i0 }); }
53
48
  }
54
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiImgLazyLoading, decorators: [{
55
50
  type: Directive,
@@ -58,13 +53,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
58
53
  selector: 'img[loading="lazy"]',
59
54
  providers: [TuiLazyLoadingService, IntersectionObserverService],
60
55
  host: {
61
- '[style.animation]': 'animation',
62
- '[style.background]': 'background',
63
- '[attr.src]': 'src',
64
- '(load)': 'onLoad()',
56
+ '[style.animation]': 'animation()',
57
+ '[style.background]': 'background()',
58
+ '[attr.src]': 'src()',
59
+ '(load)': 'unset()',
60
+ '(error)': 'unset()',
65
61
  },
66
62
  }]
67
- }], ctorParameters: function () { return []; }, propDecorators: { srcSetter: [{
63
+ }], propDecorators: { srcSetter: [{
68
64
  type: Input,
69
65
  args: ['src']
70
66
  }] } });
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-directives-lazy-loading.mjs","sources":["../../../projects/kit/directives/lazy-loading/lazy-loading.service.ts","../../../projects/kit/directives/lazy-loading/lazy-loading.directive.ts","../../../projects/kit/directives/lazy-loading/taiga-ui-kit-directives-lazy-loading.ts"],"sourcesContent":["import {ChangeDetectorRef, inject, Injectable} from '@angular/core';\nimport type {SafeResourceUrl} from '@angular/platform-browser';\nimport {IntersectionObserverService} from '@ng-web-apis/intersection-observer';\nimport {tuiWatch} from '@taiga-ui/cdk/observables';\nimport {filter, map, Observable, Subject, switchMap, take} from 'rxjs';\n\n@Injectable()\nexport class TuiLazyLoadingService extends Observable<SafeResourceUrl | string> {\n private readonly src$ = new Subject<SafeResourceUrl | string>();\n private readonly intersections$ = inject(IntersectionObserverService);\n private readonly stream$ = this.src$.pipe(\n switchMap((src) =>\n this.intersections$.pipe(\n filter((entry) => !!entry[0]?.isIntersecting),\n map(() => src),\n take(1),\n ),\n ),\n tuiWatch(inject(ChangeDetectorRef)),\n );\n\n constructor() {\n super((subscriber) => this.stream$.subscribe(subscriber));\n }\n\n public next(src: SafeResourceUrl | string): void {\n this.src$.next(src);\n }\n}\n","import {Directive, inject, Input} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport type {SafeResourceUrl} from '@angular/platform-browser';\nimport {IntersectionObserverService} from '@ng-web-apis/intersection-observer';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {TuiLazyLoadingService} from './lazy-loading.service';\n\n@Directive({\n standalone: true,\n selector: 'img[loading=\"lazy\"]',\n providers: [TuiLazyLoadingService, IntersectionObserverService],\n host: {\n '[style.animation]': 'animation',\n '[style.background]': 'background',\n '[attr.src]': 'src',\n '(load)': 'onLoad()',\n },\n})\nexport class TuiImgLazyLoading {\n private readonly el = tuiInjectElement<HTMLImageElement>();\n private readonly src$ = inject(TuiLazyLoadingService);\n protected animation = 'tuiSkeletonVibe ease-in-out 1s infinite alternate';\n protected background = 'var(--tui-background-neutral-2)';\n protected src: SafeResourceUrl | string | null = null;\n\n constructor() {\n if (this.supported) {\n return;\n }\n\n this.src$.pipe(takeUntilDestroyed()).subscribe((src) => {\n this.src = src;\n });\n }\n\n @Input('src')\n public set srcSetter(src: SafeResourceUrl | string) {\n this.src = this.supported ? src : null;\n this.src$.next(src);\n }\n\n protected onLoad(): void {\n this.background = '';\n this.animation = '';\n }\n\n private get supported(): boolean {\n return 'loading' in this.el;\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-lazy-loading.mjs","sources":["../../../projects/kit/directives/lazy-loading/lazy-loading.service.ts","../../../projects/kit/directives/lazy-loading/lazy-loading.directive.ts","../../../projects/kit/directives/lazy-loading/taiga-ui-kit-directives-lazy-loading.ts"],"sourcesContent":["import {ChangeDetectorRef, inject, Injectable} from '@angular/core';\nimport type {SafeResourceUrl} from '@angular/platform-browser';\nimport {IntersectionObserverService} from '@ng-web-apis/intersection-observer';\nimport {tuiWatch} from '@taiga-ui/cdk/observables';\nimport {filter, map, Observable, Subject, switchMap, take} from 'rxjs';\n\n@Injectable()\nexport class TuiLazyLoadingService extends Observable<SafeResourceUrl | string> {\n private readonly src$ = new Subject<SafeResourceUrl | string>();\n private readonly intersections$ = inject(IntersectionObserverService);\n private readonly stream$ = this.src$.pipe(\n switchMap((src) =>\n this.intersections$.pipe(\n filter((entry) => !!entry[0]?.isIntersecting),\n map(() => src),\n take(1),\n ),\n ),\n tuiWatch(inject(ChangeDetectorRef)),\n );\n\n constructor() {\n super((subscriber) => this.stream$.subscribe(subscriber));\n }\n\n public next(src: SafeResourceUrl | string): void {\n this.src$.next(src);\n }\n}\n","import {Directive, inject, Input, signal} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport type {SafeResourceUrl} from '@angular/platform-browser';\nimport {IntersectionObserverService} from '@ng-web-apis/intersection-observer';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {TuiLazyLoadingService} from './lazy-loading.service';\n\n@Directive({\n standalone: true,\n selector: 'img[loading=\"lazy\"]',\n providers: [TuiLazyLoadingService, IntersectionObserverService],\n host: {\n '[style.animation]': 'animation()',\n '[style.background]': 'background()',\n '[attr.src]': 'src()',\n '(load)': 'unset()',\n '(error)': 'unset()',\n },\n})\nexport class TuiImgLazyLoading {\n private readonly el = tuiInjectElement<HTMLImageElement>();\n private readonly loading$ = inject(TuiLazyLoadingService);\n private readonly supported = 'loading' in this.el;\n protected src = signal<SafeResourceUrl | string | null>(null);\n protected animation = signal('tuiSkeletonVibe ease-in-out 1s infinite alternate');\n protected background = signal('var(--tui-background-neutral-2)');\n\n protected readonly $ = this.loading$\n .pipe(takeUntilDestroyed())\n .subscribe((src) => this.src.set(src));\n\n @Input('src')\n public set srcSetter(src: SafeResourceUrl | string) {\n this.src.set(this.supported ? src : null);\n this.loading$.next(src);\n }\n\n protected unset(): void {\n this.background.set('');\n this.animation.set('');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAMA,MACa,qBAAsB,SAAQ,UAAoC,CAAA;AAc3E,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;AAd7C,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,OAAO,EAA4B,CAAC;AAC/C,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,2BAA2B,CAAC,CAAC;AACrD,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CACrC,SAAS,CAAC,CAAC,GAAG,KACV,IAAI,CAAC,cAAc,CAAC,IAAI,CACpB,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,EAC7C,GAAG,CAAC,MAAM,GAAG,CAAC,EACd,IAAI,CAAC,CAAC,CAAC,CACV,CACJ,EACD,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CACtC,CAAC;KAID;AAEM,IAAA,IAAI,CAAC,GAA6B,EAAA;AACrC,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACvB;+GApBQ,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;mHAArB,qBAAqB,EAAA,CAAA,CAAA,EAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,UAAU;;;ACEX,MAYa,iBAAiB,CAAA;AAZ9B,IAAA,WAAA,GAAA;QAaqB,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAoB,CAAC;AAC1C,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACzC,QAAA,IAAA,CAAA,SAAS,GAAG,SAAS,IAAI,IAAI,CAAC,EAAE,CAAC;AACxC,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAkC,IAAI,CAAC,CAAC;AACpD,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,mDAAmD,CAAC,CAAC;AACxE,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,iCAAiC,CAAC,CAAC;QAE9C,IAAC,CAAA,CAAA,GAAG,IAAI,CAAC,QAAQ;aAC/B,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC1B,aAAA,SAAS,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAY9C,KAAA;IAVG,IACW,SAAS,CAAC,GAA6B,EAAA;AAC9C,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;AAC1C,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC3B;IAES,KAAK,GAAA;AACX,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;KAC1B;+GArBQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EATf,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,CAAA,KAAA,EAAA,WAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,OAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,qBAAqB,EAAE,2BAA2B,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAStD,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAZ7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,SAAS,EAAE,CAAC,qBAAqB,EAAE,2BAA2B,CAAC;AAC/D,oBAAA,IAAI,EAAE;AACF,wBAAA,mBAAmB,EAAE,aAAa;AAClC,wBAAA,oBAAoB,EAAE,cAAc;AACpC,wBAAA,YAAY,EAAE,OAAO;AACrB,wBAAA,QAAQ,EAAE,SAAS;AACnB,wBAAA,SAAS,EAAE,SAAS;AACvB,qBAAA;AACJ,iBAAA,CAAA;8BAcc,SAAS,EAAA,CAAA;sBADnB,KAAK;uBAAC,KAAK,CAAA;;;AChChB;;AAEG;;;;"}
@@ -34,15 +34,12 @@ class TuiPassword {
34
34
  }));
35
35
  this.hint = tuiDirectiveBinding(TuiHintDirective, 'tuiHint', computed(() => (this.hidden() ? this.texts()[0] : this.texts()[1])));
36
36
  }
37
- get disabled() {
38
- return !this.textfield.el?.nativeElement.value;
39
- }
40
37
  toggle() {
41
38
  this.hidden.set(!this.hidden());
42
39
  this.textfield.el?.nativeElement.setAttribute('type', this.hidden() ? 'password' : 'text');
43
40
  }
44
41
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiPassword, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
45
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiPassword, isStandalone: true, selector: "tui-icon[tuiPassword]", host: { listeners: { "click": "toggle()" }, properties: { "style.pointer-events": "disabled ? \"none\" : null", "style.border": "textfield.options.size() === \"s\" ? \"0.25rem solid transparent\" : null" }, styleAttribute: "cursor: pointer" }, providers: [
42
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", 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: [
46
43
  {
47
44
  provide: TUI_APPEARANCE_OPTIONS,
48
45
  useValue: { appearance: 'icon' },
@@ -70,7 +67,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
70
67
  host: {
71
68
  style: 'cursor: pointer',
72
69
  '(click)': 'toggle()',
73
- '[style.pointer-events]': 'disabled ? "none" : null',
74
70
  '[style.border]': 'textfield.options.size() === "s" ? "0.25rem solid transparent" : null',
75
71
  },
76
72
  }]
@@ -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, 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 {toSignal} from '@angular/core/rxjs-interop';\nimport {tuiDirectiveBinding, tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_APPEARANCE_OPTIONS,\n TuiWithAppearance,\n} from '@taiga-ui/core/directives/appearance';\nimport {TuiHintDirective} from '@taiga-ui/core/directives/hint';\nimport {TUI_PASSWORD_TEXTS} from '@taiga-ui/kit/tokens';\n\nimport {TUI_PASSWORD_OPTIONS} from './password.options';\n\n@Directive({\n standalone: true,\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.pointer-events]': 'disabled ? \"none\" : null',\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 = toSignal(inject(TUI_PASSWORD_TEXTS), {\n initialValue: ['', ''] as const,\n });\n\n protected readonly textfield = inject(TuiTextfieldComponent);\n protected readonly hidden = signal(true);\n protected readonly icon = tuiDirectiveBinding(\n TuiIcon,\n 'icon',\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 'tuiHint',\n computed(() => (this.hidden() ? this.texts()[0] : this.texts()[1])),\n );\n\n protected get disabled(): boolean {\n return !this.textfield.el?.nativeElement.value;\n }\n\n protected toggle(): void {\n this.hidden.set(!this.hidden());\n this.textfield.el?.nativeElement.setAttribute(\n 'type',\n this.hidden() ? 'password' : 'text',\n );\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-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, 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 {toSignal} from '@angular/core/rxjs-interop';\nimport {tuiDirectiveBinding, tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_APPEARANCE_OPTIONS,\n TuiWithAppearance,\n} from '@taiga-ui/core/directives/appearance';\nimport {TuiHintDirective} from '@taiga-ui/core/directives/hint';\nimport {TUI_PASSWORD_TEXTS} from '@taiga-ui/kit/tokens';\n\nimport {TUI_PASSWORD_OPTIONS} from './password.options';\n\n@Directive({\n standalone: true,\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 = toSignal(inject(TUI_PASSWORD_TEXTS), {\n initialValue: ['', ''] as const,\n });\n\n protected readonly textfield = inject(TuiTextfieldComponent);\n protected readonly hidden = signal(true);\n protected readonly icon = tuiDirectiveBinding(\n TuiIcon,\n 'icon',\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 'tuiHint',\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.el?.nativeElement.setAttribute(\n 'type',\n this.hidden() ? 'password' : 'text',\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -10,13 +10,13 @@ import { TUI_ANIMATIONS_DEFAULT_DURATION } from '@taiga-ui/core/utils/miscellane
10
10
  const FADE = [{ opacity: 0.06 }, { opacity: 1 }];
11
11
  class TuiSkeletonStyles {
12
12
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiSkeletonStyles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiSkeletonStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-skeleton-styles" }, ngImport: i0, template: '', isInline: true, styles: ["@keyframes tuiSkeleton{0%{opacity:.03}to{opacity:.06}}[tuiSkeleton]._skeleton{color:transparent;background:var(--tui-background-base)!important;box-shadow:none!important;filter:contrast(0) brightness(0);animation:tuiSkeleton ease-in-out 1s infinite alternate}[tuiSkeleton]._skeleton[data-tui-skeleton]{background:transparent!important}[tuiSkeleton]._skeleton[data-tui-skeleton]:before{content:attr(data-tui-skeleton);background:var(--tui-background-base);font-size:smaller;-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:.25rem}[tuiTheme=dark] [tuiSkeleton]._skeleton,[tuiTheme=dark][tuiSkeleton]._skeleton{filter:contrast(0) brightness(0) invert(1)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
13
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiSkeletonStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-skeleton-styles" }, ngImport: i0, template: '', isInline: true, styles: ["@keyframes tuiSkeleton{0%{opacity:.03}to{opacity:.06}}[tuiSkeleton]._skeleton{color:transparent;background:var(--tui-background-base)!important;box-shadow:none!important;filter:contrast(0) brightness(0);animation:tuiSkeleton ease-in-out 1s infinite alternate;-webkit-user-select:none;user-select:none;pointer-events:none}[tuiSkeleton]._skeleton[data-tui-skeleton]{background:transparent!important}[tuiSkeleton]._skeleton[data-tui-skeleton]:before{content:attr(data-tui-skeleton);background:var(--tui-background-base);font-size:smaller;-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:.25rem}[tuiTheme=dark] [tuiSkeleton]._skeleton,[tuiTheme=dark][tuiSkeleton]._skeleton{filter:contrast(0) brightness(0) invert(1)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
14
14
  }
15
15
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiSkeletonStyles, decorators: [{
16
16
  type: Component,
17
17
  args: [{ standalone: true, template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
18
18
  class: 'tui-skeleton-styles',
19
- }, styles: ["@keyframes tuiSkeleton{0%{opacity:.03}to{opacity:.06}}[tuiSkeleton]._skeleton{color:transparent;background:var(--tui-background-base)!important;box-shadow:none!important;filter:contrast(0) brightness(0);animation:tuiSkeleton ease-in-out 1s infinite alternate}[tuiSkeleton]._skeleton[data-tui-skeleton]{background:transparent!important}[tuiSkeleton]._skeleton[data-tui-skeleton]:before{content:attr(data-tui-skeleton);background:var(--tui-background-base);font-size:smaller;-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:.25rem}[tuiTheme=dark] [tuiSkeleton]._skeleton,[tuiTheme=dark][tuiSkeleton]._skeleton{filter:contrast(0) brightness(0) invert(1)}\n"] }]
19
+ }, styles: ["@keyframes tuiSkeleton{0%{opacity:.03}to{opacity:.06}}[tuiSkeleton]._skeleton{color:transparent;background:var(--tui-background-base)!important;box-shadow:none!important;filter:contrast(0) brightness(0);animation:tuiSkeleton ease-in-out 1s infinite alternate;-webkit-user-select:none;user-select:none;pointer-events:none}[tuiSkeleton]._skeleton[data-tui-skeleton]{background:transparent!important}[tuiSkeleton]._skeleton[data-tui-skeleton]:before{content:attr(data-tui-skeleton);background:var(--tui-background-base);font-size:smaller;-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:.25rem}[tuiTheme=dark] [tuiSkeleton]._skeleton,[tuiTheme=dark][tuiSkeleton]._skeleton{filter:contrast(0) brightness(0) invert(1)}\n"] }]
20
20
  }] });
21
21
  class TuiSkeleton {
22
22
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-directives-skeleton.mjs","sources":["../../../projects/kit/directives/skeleton/skeleton.directive.ts","../../../projects/kit/directives/skeleton/taiga-ui-kit-directives-skeleton.ts"],"sourcesContent":["import type {OnChanges, SimpleChanges} from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n Directive,\n inject,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {CHAR_NO_BREAK_SPACE} from '@taiga-ui/cdk/constants';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiPure, tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_ANIMATIONS_SPEED} from '@taiga-ui/core/tokens';\nimport {TUI_ANIMATIONS_DEFAULT_DURATION} from '@taiga-ui/core/utils/miscellaneous';\n\nconst FADE = [{opacity: 0.06}, {opacity: 1}];\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./skeleton.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-skeleton-styles',\n },\n})\nclass TuiSkeletonStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiSkeleton]',\n host: {\n tuiSkeleton: '',\n '[class._skeleton]': 'tuiSkeleton',\n '[attr.data-tui-skeleton]': 'getPlaceholder(tuiSkeleton)',\n },\n})\nexport class TuiSkeleton implements OnChanges {\n private animation?: Animation;\n private readonly el = tuiInjectElement();\n private readonly duration =\n inject(TUI_ANIMATIONS_SPEED) * TUI_ANIMATIONS_DEFAULT_DURATION * 2;\n\n protected readonly nothing = tuiWithStyles(TuiSkeletonStyles);\n\n @Input()\n public tuiSkeleton: boolean | number | string = false;\n\n public ngOnChanges({tuiSkeleton}: SimpleChanges): void {\n this.animation?.cancel();\n\n if (!tuiSkeleton?.currentValue && !tuiSkeleton?.firstChange) {\n this.animation = this.el.animate(FADE, this.duration);\n }\n }\n\n @tuiPure\n protected getPlaceholder(value: boolean | number | string): string | null {\n switch (typeof value) {\n case 'number':\n return Array.from({length: value})\n .map(() => CHAR_NO_BREAK_SPACE.repeat(getLength()))\n .join(' ');\n case 'string':\n return value;\n default:\n return null;\n }\n }\n}\n\nfunction getLength(): number {\n return Math.floor(Math.random() * (15 - 5 + 1)) + 5;\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-skeleton.mjs","sources":["../../../projects/kit/directives/skeleton/skeleton.directive.ts","../../../projects/kit/directives/skeleton/taiga-ui-kit-directives-skeleton.ts"],"sourcesContent":["import type {OnChanges, SimpleChanges} from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n Directive,\n inject,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {CHAR_NO_BREAK_SPACE} from '@taiga-ui/cdk/constants';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiPure, tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_ANIMATIONS_SPEED} from '@taiga-ui/core/tokens';\nimport {TUI_ANIMATIONS_DEFAULT_DURATION} from '@taiga-ui/core/utils/miscellaneous';\n\nconst FADE = [{opacity: 0.06}, {opacity: 1}];\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./skeleton.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-skeleton-styles',\n },\n})\nclass TuiSkeletonStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiSkeleton]',\n host: {\n tuiSkeleton: '',\n '[class._skeleton]': 'tuiSkeleton',\n '[attr.data-tui-skeleton]': 'getPlaceholder(tuiSkeleton)',\n },\n})\nexport class TuiSkeleton implements OnChanges {\n private animation?: Animation;\n private readonly el = tuiInjectElement();\n private readonly duration =\n inject(TUI_ANIMATIONS_SPEED) * TUI_ANIMATIONS_DEFAULT_DURATION * 2;\n\n protected readonly nothing = tuiWithStyles(TuiSkeletonStyles);\n\n @Input()\n public tuiSkeleton: boolean | number | string = false;\n\n public ngOnChanges({tuiSkeleton}: SimpleChanges): void {\n this.animation?.cancel();\n\n if (!tuiSkeleton?.currentValue && !tuiSkeleton?.firstChange) {\n this.animation = this.el.animate(FADE, this.duration);\n }\n }\n\n @tuiPure\n protected getPlaceholder(value: boolean | number | string): string | null {\n switch (typeof value) {\n case 'number':\n return Array.from({length: value})\n .map(() => CHAR_NO_BREAK_SPACE.repeat(getLength()))\n .join(' ');\n case 'string':\n return value;\n default:\n return null;\n }\n }\n}\n\nfunction getLength(): number {\n return Math.floor(Math.random() * (15 - 5 + 1)) + 5;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-pipes-filter-by-input.mjs","sources":["../../../projects/kit/pipes/filter-by-input/filter-by-input.pipe.ts","../../../projects/kit/pipes/filter-by-input/taiga-ui-kit-pipes-filter-by-input.ts"],"sourcesContent":["import type {PipeTransform} from '@angular/core';\nimport {inject, Pipe} from '@angular/core';\nimport {TUI_DEFAULT_MATCHER} from '@taiga-ui/cdk/constants';\nimport type {TuiStringHandler, TuiStringMatcher} from '@taiga-ui/cdk/types';\nimport {tuiIsPresent, tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_DATA_LIST_HOST} from '@taiga-ui/core/components/data-list';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\nimport {tuiIsFlat} from '@taiga-ui/kit/utils';\n\ntype TuiArrayElement<A> =\n A extends ReadonlyArray<infer T>\n ? A extends ReadonlyArray<ReadonlyArray<infer G>>\n ? G\n : T\n : never;\n\n// TODO: Consider replacing TuiTextfieldComponent with proper token once we refactor textfields\n@Pipe({\n standalone: true,\n name: 'tuiFilterByInput',\n pure: false,\n})\nexport class TuiFilterByInputPipe implements PipeTransform {\n // TODO: Remove optional after legacy controls are dropped\n private readonly textfield = inject(TuiTextfieldComponent, {optional: true});\n private readonly host = inject(TUI_DATA_LIST_HOST);\n\n public transform<T>(items: T, matcher?: TuiStringMatcher<TuiArrayElement<T>>): T;\n public transform<T>(\n items: ReadonlyArray<readonly T[]> | readonly T[] | null,\n matcher: TuiStringMatcher<T> = TUI_DEFAULT_MATCHER,\n ): ReadonlyArray<readonly T[]> | readonly T[] | null {\n return this.filter<T>(\n items,\n matcher,\n this.host.stringify || String,\n this.textfield?.el?.nativeElement.value ||\n (this.host as any).nativeFocusableElement?.value ||\n '',\n );\n }\n\n @tuiPure\n private filter<T>(\n items: ReadonlyArray<readonly T[]> | readonly T[] | null,\n matcher: TuiStringMatcher<T>,\n stringify: TuiStringHandler<T>,\n query: string,\n ): ReadonlyArray<readonly T[]> | readonly T[] | null {\n if (!items) {\n return null;\n }\n\n return tuiIsFlat(items)\n ? this.filterFlat(items, matcher, stringify, query)\n : this.filter2d(items, matcher, stringify, query);\n }\n\n private filterFlat<T>(\n items: readonly T[],\n matcher: TuiStringMatcher<T>,\n stringify: TuiStringHandler<T>,\n query: string,\n ): readonly T[] {\n const match = this.getMatch(items, stringify, query);\n\n return tuiIsPresent(match)\n ? items\n : items.filter((item) => matcher(item, query, stringify));\n }\n\n private filter2d<T>(\n items: ReadonlyArray<readonly T[]>,\n matcher: TuiStringMatcher<T>,\n stringify: TuiStringHandler<T>,\n query: string,\n ): ReadonlyArray<readonly T[]> {\n const match = items.find((item) =>\n tuiIsPresent(this.getMatch(item, stringify, query)),\n );\n\n return tuiIsPresent(match)\n ? items\n : items.map((inner) => this.filterFlat(inner, matcher, stringify, query));\n }\n\n private getMatch<T>(\n items: readonly T[],\n stringify: TuiStringHandler<T>,\n query: string,\n ): T | undefined {\n return items.find(\n (item) => stringify(item).toLocaleLowerCase() === query.toLocaleLowerCase(),\n );\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-pipes-filter-by-input.mjs","sources":["../../../projects/kit/pipes/filter-by-input/filter-by-input.pipe.ts","../../../projects/kit/pipes/filter-by-input/taiga-ui-kit-pipes-filter-by-input.ts"],"sourcesContent":["import type {PipeTransform} from '@angular/core';\nimport {inject, Pipe} from '@angular/core';\nimport {TUI_DEFAULT_MATCHER} from '@taiga-ui/cdk/constants';\nimport type {TuiStringHandler, TuiStringMatcher} from '@taiga-ui/cdk/types';\nimport {tuiIsPresent, tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_DATA_LIST_HOST} from '@taiga-ui/core/components/data-list';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\nimport {tuiIsFlat} from '@taiga-ui/kit/utils';\n\n// TODO: Consider replacing TuiTextfieldComponent with proper token once we refactor textfields\n@Pipe({\n standalone: true,\n name: 'tuiFilterByInput',\n pure: false,\n})\nexport class TuiFilterByInputPipe implements PipeTransform {\n // TODO: Remove optional after legacy controls are dropped\n private readonly textfield = inject(TuiTextfieldComponent, {optional: true});\n private readonly host = inject(TUI_DATA_LIST_HOST);\n\n public transform<T>(items: readonly T[], matcher?: TuiStringMatcher<T>): readonly T[];\n public transform<T>(\n items: ReadonlyArray<readonly T[]> | readonly T[] | null,\n matcher: TuiStringMatcher<T> = TUI_DEFAULT_MATCHER,\n ): ReadonlyArray<readonly T[]> | readonly T[] | null {\n return this.filter<T>(\n items,\n matcher,\n this.host.stringify || String,\n this.textfield?.el?.nativeElement.value ||\n (this.host as any).nativeFocusableElement?.value ||\n '',\n );\n }\n\n @tuiPure\n private filter<T>(\n items: ReadonlyArray<readonly T[]> | readonly T[] | null,\n matcher: TuiStringMatcher<T>,\n stringify: TuiStringHandler<T>,\n query: string,\n ): ReadonlyArray<readonly T[]> | readonly T[] | null {\n if (!items) {\n return null;\n }\n\n return tuiIsFlat(items)\n ? this.filterFlat(items, matcher, stringify, query)\n : this.filter2d(items, matcher, stringify, query);\n }\n\n private filterFlat<T>(\n items: readonly T[],\n matcher: TuiStringMatcher<T>,\n stringify: TuiStringHandler<T>,\n query: string,\n ): readonly T[] {\n const match = this.getMatch(items, stringify, query);\n\n return tuiIsPresent(match)\n ? items\n : items.filter((item) => matcher(item, query, stringify));\n }\n\n private filter2d<T>(\n items: ReadonlyArray<readonly T[]>,\n matcher: TuiStringMatcher<T>,\n stringify: TuiStringHandler<T>,\n query: string,\n ): ReadonlyArray<readonly T[]> {\n const match = items.find((item) =>\n tuiIsPresent(this.getMatch(item, stringify, query)),\n );\n\n return tuiIsPresent(match)\n ? items\n : items.map((inner) => this.filterFlat(inner, matcher, stringify, query));\n }\n\n private getMatch<T>(\n items: readonly T[],\n stringify: TuiStringHandler<T>,\n query: string,\n ): T | undefined {\n return items.find(\n (item) => stringify(item).toLocaleLowerCase() === query.toLocaleLowerCase(),\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}