@taiga-ui/kit 4.28.0 → 4.29.0-canary.8cd9147

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 (51) hide show
  1. package/components/calendar-month/calendar-month.component.d.ts +2 -1
  2. package/components/calendar-month/calendar-month.options.d.ts +5 -0
  3. package/components/calendar-month/index.d.ts +1 -0
  4. package/components/files/index.d.ts +1 -1
  5. package/components/index.d.ts +1 -0
  6. package/components/input-month/input-month.directive.d.ts +4 -7
  7. package/components/input-month-range/index.d.ts +2 -0
  8. package/components/input-month-range/input-month-range.d.ts +3 -0
  9. package/components/input-month-range/input-month-range.directive.d.ts +21 -0
  10. package/components/tree/index.d.ts +1 -1
  11. package/esm2022/components/block/block.directive.mjs +2 -2
  12. package/esm2022/components/calendar-month/calendar-month.component.mjs +21 -13
  13. package/esm2022/components/calendar-month/calendar-month.options.mjs +6 -0
  14. package/esm2022/components/calendar-month/index.mjs +2 -1
  15. package/esm2022/components/checkbox/checkbox.component.mjs +2 -2
  16. package/esm2022/components/chip/chip.directive.mjs +2 -2
  17. package/esm2022/components/files/index.mjs +1 -2
  18. package/esm2022/components/index.mjs +2 -1
  19. package/esm2022/components/input-month/input-month.directive.mjs +12 -33
  20. package/esm2022/components/input-month-range/index.mjs +3 -0
  21. package/esm2022/components/input-month-range/input-month-range.directive.mjs +76 -0
  22. package/esm2022/components/input-month-range/input-month-range.mjs +7 -0
  23. package/esm2022/components/input-month-range/taiga-ui-kit-components-input-month-range.mjs +5 -0
  24. package/esm2022/components/progress/progress-bar/fixed-gradient/progress-fixed-gradient.directive.mjs +2 -2
  25. package/esm2022/components/routable-dialog/routable-dialog.component.mjs +2 -2
  26. package/esm2022/components/tree/index.mjs +1 -2
  27. package/esm2022/pipes/field-error/field-error-pipe.mjs +2 -2
  28. package/fesm2022/taiga-ui-kit-components-block.mjs +2 -2
  29. package/fesm2022/taiga-ui-kit-components-block.mjs.map +1 -1
  30. package/fesm2022/taiga-ui-kit-components-calendar-month.mjs +27 -14
  31. package/fesm2022/taiga-ui-kit-components-calendar-month.mjs.map +1 -1
  32. package/fesm2022/taiga-ui-kit-components-checkbox.mjs +2 -2
  33. package/fesm2022/taiga-ui-kit-components-checkbox.mjs.map +1 -1
  34. package/fesm2022/taiga-ui-kit-components-chip.mjs +2 -2
  35. package/fesm2022/taiga-ui-kit-components-chip.mjs.map +1 -1
  36. package/fesm2022/taiga-ui-kit-components-input-month-range.mjs +87 -0
  37. package/fesm2022/taiga-ui-kit-components-input-month-range.mjs.map +1 -0
  38. package/fesm2022/taiga-ui-kit-components-input-month.mjs +11 -32
  39. package/fesm2022/taiga-ui-kit-components-input-month.mjs.map +1 -1
  40. package/fesm2022/taiga-ui-kit-components-progress.mjs +1 -1
  41. package/fesm2022/taiga-ui-kit-components-progress.mjs.map +1 -1
  42. package/fesm2022/taiga-ui-kit-components-routable-dialog.mjs +1 -1
  43. package/fesm2022/taiga-ui-kit-components-routable-dialog.mjs.map +1 -1
  44. package/fesm2022/taiga-ui-kit-components.mjs +1 -0
  45. package/fesm2022/taiga-ui-kit-components.mjs.map +1 -1
  46. package/fesm2022/taiga-ui-kit-pipes-field-error.mjs +1 -1
  47. package/fesm2022/taiga-ui-kit-pipes-field-error.mjs.map +1 -1
  48. package/package.json +17 -11
  49. package/styles/components/block.less +1 -0
  50. package/styles/components/checkbox.less +1 -0
  51. package/styles/components/chip.less +5 -1
@@ -6,11 +6,10 @@ import { TuiControl, tuiAsControl } from '@taiga-ui/cdk/classes';
6
6
  import { TUI_ALLOW_SIGNAL_WRITES } from '@taiga-ui/cdk/constants';
7
7
  import { TUI_IS_MOBILE } from '@taiga-ui/cdk/tokens';
8
8
  import { tuiValueBinding, tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
9
- import { tuiDirectiveBinding } from '@taiga-ui/cdk/utils/miscellaneous';
10
9
  import * as i1 from '@taiga-ui/core/components/textfield';
11
- import { TUI_TEXTFIELD_OPTIONS, tuiInjectAuxiliary, TuiWithTextfield, TuiTextfieldContent } from '@taiga-ui/core/components/textfield';
12
- import { tuiDropdownOpen, TUI_DROPDOWN_OPTIONS } from '@taiga-ui/core/directives/dropdown';
13
- import { TuiIcons } from '@taiga-ui/core/directives/icons';
10
+ import { tuiTextfieldIconBinding, tuiInjectAuxiliary, TuiWithTextfield, TuiSelectLike, TuiTextfieldContent } from '@taiga-ui/core/components/textfield';
11
+ import * as i2 from '@taiga-ui/core/directives/dropdown';
12
+ import { tuiDropdownOpen, tuiDropdownEnabled, TuiDropdownAuto } from '@taiga-ui/core/directives/dropdown';
14
13
  import { TUI_MONTH_FORMATTER } from '@taiga-ui/kit/tokens';
15
14
  import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
16
15
  import { NgIf } from '@angular/common';
@@ -23,15 +22,14 @@ const [TUI_INPUT_MONTH_OPTIONS, tuiInputMonthOptionsProvider] = tuiCreateOptions
23
22
 
24
23
  class TuiInputMonthDirective extends TuiControl {
25
24
  constructor() {
26
- super();
27
- this.options = inject(TUI_INPUT_MONTH_OPTIONS);
28
- this.textfieldOptions = inject(TUI_TEXTFIELD_OPTIONS);
25
+ super(...arguments);
29
26
  this.open = tuiDropdownOpen();
30
27
  this.formatter = toSignal(inject(TUI_MONTH_FORMATTER), {
31
28
  initialValue: () => '',
32
29
  });
30
+ this.icon = tuiTextfieldIconBinding(TUI_INPUT_MONTH_OPTIONS);
31
+ this.dropdownEnabled = tuiDropdownEnabled(computed(() => !this.nativePickerEnabled && this.interactive()));
33
32
  this.textfieldValue = tuiValueBinding(computed(() => this.formatter()(this.value())));
34
- this.icon = tuiDirectiveBinding(TuiIcons, 'iconEnd', computed(() => this.options.icon(this.textfieldOptions.size())), {});
35
33
  this.calendarSync = effect(() => {
36
34
  this.calendar()?.value.set(this.value());
37
35
  }, TUI_ALLOW_SIGNAL_WRITES);
@@ -44,29 +42,13 @@ class TuiInputMonthDirective extends TuiControl {
44
42
  });
45
43
  this.calendar = tuiInjectAuxiliary((x) => x instanceof TuiCalendarMonth);
46
44
  this.nativePickerEnabled = tuiInjectElement().type === 'month' && inject(TUI_IS_MOBILE);
47
- /**
48
- * Update directive props with new defaults before inputs are processed
49
- * TODO: find better way to override TuiDropdownFixed host directive from TuiTextfieldComponent
50
- */
51
- inject(TUI_DROPDOWN_OPTIONS).limitWidth = 'auto';
52
- }
53
- setDisabledState() {
54
- super.setDisabledState();
55
- this.open.set(false);
56
- }
57
- toggleDropdown() {
58
- if (this.interactive() && !this.nativePickerEnabled) {
59
- this.open.update((x) => !x);
60
- }
61
45
  }
62
46
  clear() {
63
47
  this.onChange(null);
64
- if (!this.nativePickerEnabled) {
65
- this.open.set(true);
66
- }
48
+ this.open.set(true);
67
49
  }
68
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputMonthDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
69
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputMonthDirective, isStandalone: true, selector: "input[tuiInputMonth]", host: { attributes: { "inputmode": "none" }, listeners: { "click": "toggleDropdown()", "blur": "onTouched()", "beforeinput": "$event.inputType.includes(\"delete\") || $event.preventDefault()", "input": "$event.inputType?.includes(\"delete\") && clear()" }, properties: { "disabled": "disabled()" } }, providers: [tuiAsControl(TuiInputMonthDirective)], usesInheritance: true, hostDirectives: [{ directive: i1.TuiWithTextfield }], ngImport: i0 }); }
50
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputMonthDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
51
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputMonthDirective, isStandalone: true, selector: "input[tuiInputMonth]", host: { listeners: { "blur": "onTouched()", "input": "$event.inputType?.includes(\"delete\") && clear()" }, properties: { "disabled": "disabled()" } }, providers: [tuiAsControl(TuiInputMonthDirective)], usesInheritance: true, hostDirectives: [{ directive: i1.TuiWithTextfield }, { directive: i1.TuiSelectLike }, { directive: i2.TuiDropdownAuto }], ngImport: i0 }); }
70
52
  }
71
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputMonthDirective, decorators: [{
72
54
  type: Directive,
@@ -74,17 +56,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
74
56
  standalone: true,
75
57
  selector: 'input[tuiInputMonth]',
76
58
  providers: [tuiAsControl(TuiInputMonthDirective)],
77
- hostDirectives: [TuiWithTextfield],
59
+ hostDirectives: [TuiWithTextfield, TuiSelectLike, TuiDropdownAuto],
78
60
  host: {
79
- inputmode: 'none',
80
61
  '[disabled]': 'disabled()',
81
- '(click)': 'toggleDropdown()',
82
62
  '(blur)': 'onTouched()',
83
- '(beforeinput)': '$event.inputType.includes("delete") || $event.preventDefault()',
84
63
  '(input)': '$event.inputType?.includes("delete") && clear()',
85
64
  },
86
65
  }]
87
- }], ctorParameters: function () { return []; } });
66
+ }] });
88
67
 
89
68
  class TuiNativeMonthPicker {
90
69
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-input-month.mjs","sources":["../../../projects/kit/components/input-month/input-month.options.ts","../../../projects/kit/components/input-month/input-month.directive.ts","../../../projects/kit/components/input-month/native-month-picker/native-month-picker.component.ts","../../../projects/kit/components/input-month/native-month-picker/native-month-picker.template.html","../../../projects/kit/components/input-month/input-month.ts","../../../projects/kit/components/input-month/taiga-ui-kit-components-input-month.ts"],"sourcesContent":["import type {TuiHandler} 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 TuiInputMonthOptions {\n readonly icon: TuiHandler<TuiSizeL | TuiSizeS, string>;\n}\n\nexport const TUI_INPUT_MONTH_DEFAULT_OPTIONS: TuiInputMonthOptions = {\n icon: () => '@tui.calendar',\n};\n\nexport const [TUI_INPUT_MONTH_OPTIONS, tuiInputMonthOptionsProvider] = tuiCreateOptions(\n TUI_INPUT_MONTH_DEFAULT_OPTIONS,\n);\n","import {computed, Directive, effect, inject} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {tuiAsControl, TuiControl} from '@taiga-ui/cdk/classes';\nimport {TUI_ALLOW_SIGNAL_WRITES} from '@taiga-ui/cdk/constants';\nimport type {TuiMonth} from '@taiga-ui/cdk/date-time';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {tuiInjectElement, tuiValueBinding} from '@taiga-ui/cdk/utils/dom';\nimport {tuiDirectiveBinding} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n TUI_TEXTFIELD_OPTIONS,\n tuiInjectAuxiliary,\n TuiWithTextfield,\n} from '@taiga-ui/core/components/textfield';\nimport {TUI_DROPDOWN_OPTIONS, tuiDropdownOpen} from '@taiga-ui/core/directives/dropdown';\nimport {TuiIcons} from '@taiga-ui/core/directives/icons';\nimport {TuiCalendarMonth} from '@taiga-ui/kit/components/calendar-month';\nimport {TUI_MONTH_FORMATTER} from '@taiga-ui/kit/tokens';\n\nimport {TUI_INPUT_MONTH_OPTIONS} from './input-month.options';\n\n@Directive({\n standalone: true,\n selector: 'input[tuiInputMonth]',\n providers: [tuiAsControl(TuiInputMonthDirective)],\n hostDirectives: [TuiWithTextfield],\n host: {\n inputmode: 'none',\n '[disabled]': 'disabled()',\n '(click)': 'toggleDropdown()',\n '(blur)': 'onTouched()',\n '(beforeinput)': '$event.inputType.includes(\"delete\") || $event.preventDefault()',\n '(input)': '$event.inputType?.includes(\"delete\") && clear()',\n },\n})\nexport class TuiInputMonthDirective extends TuiControl<TuiMonth | null> {\n private readonly options = inject(TUI_INPUT_MONTH_OPTIONS);\n private readonly textfieldOptions = inject(TUI_TEXTFIELD_OPTIONS);\n\n private readonly open = tuiDropdownOpen();\n\n private readonly formatter = toSignal(inject(TUI_MONTH_FORMATTER), {\n initialValue: () => '',\n });\n\n protected readonly textfieldValue = tuiValueBinding(\n computed(() => this.formatter()(this.value())),\n );\n\n protected readonly icon = tuiDirectiveBinding(\n TuiIcons,\n 'iconEnd',\n computed(() => this.options.icon(this.textfieldOptions.size())),\n {},\n );\n\n protected readonly calendarSync = effect(() => {\n this.calendar()?.value.set(this.value());\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n protected onMonthClickEffect = effect((onCleanup) => {\n const subscription = this.calendar()?.monthClick.subscribe((month) => {\n this.onChange(month);\n this.open.set(false);\n });\n\n onCleanup(() => subscription?.unsubscribe());\n });\n\n public readonly calendar = tuiInjectAuxiliary<TuiCalendarMonth>(\n (x) => x instanceof TuiCalendarMonth,\n );\n\n public readonly nativePickerEnabled =\n tuiInjectElement<HTMLInputElement>().type === 'month' && inject(TUI_IS_MOBILE);\n\n constructor() {\n super();\n\n /**\n * Update directive props with new defaults before inputs are processed\n * TODO: find better way to override TuiDropdownFixed host directive from TuiTextfieldComponent\n */\n (inject(TUI_DROPDOWN_OPTIONS) as any).limitWidth = 'auto';\n }\n\n public override setDisabledState(): void {\n super.setDisabledState();\n this.open.set(false);\n }\n\n protected toggleDropdown(): void {\n if (this.interactive() && !this.nativePickerEnabled) {\n this.open.update((x) => !x);\n }\n }\n\n protected clear(): void {\n this.onChange(null);\n\n if (!this.nativePickerEnabled) {\n this.open.set(true);\n }\n }\n}\n","import {NgIf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n effect,\n inject,\n Input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {TUI_ALLOW_SIGNAL_WRITES} from '@taiga-ui/cdk/constants';\nimport {TUI_FIRST_DAY, TUI_LAST_DAY, TuiMonth} from '@taiga-ui/cdk/date-time';\nimport {TuiTextfieldContent} from '@taiga-ui/core/components/textfield';\n\nimport {TuiInputMonthDirective} from '../input-month.directive';\n\n@Component({\n standalone: true,\n selector: 'input[tuiInputMonth][type=\"month\"]',\n imports: [NgIf, TuiTextfieldContent],\n templateUrl: './native-month-picker.template.html',\n styleUrls: ['./native-month-picker.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[type]': '\"text\"',\n },\n})\nexport class TuiNativeMonthPicker {\n private readonly control = inject(TuiControl);\n\n protected readonly host = inject(TuiInputMonthDirective);\n protected readonly min = signal<TuiMonth | null>(null);\n protected readonly max = signal<TuiMonth | null>(null);\n protected readonly calendarSync = effect(() => {\n const calendar = this.host.calendar();\n\n if (calendar) {\n calendar.min.set(this.min() ?? TUI_FIRST_DAY); // TODO(v5): remove TUI_FIRST_DAY fallback\n calendar.max.set(this.max() ?? TUI_LAST_DAY); // TODO(v5): remove TUI_LAST_DAY fallback\n }\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n // TODO(v5): use signal inputs\n @Input('min')\n public set minSetter(x: TuiMonth | null) {\n this.min.set(x);\n }\n\n // TODO(v5): use signal inputs\n @Input('max')\n public set maxSetter(x: TuiMonth | null) {\n this.max.set(x);\n }\n\n protected onInput(value: string): void {\n if (!value) {\n return this.control.onChange(null);\n }\n\n const [year = 0, month = 0] = value.split('-').map(Number);\n\n this.control.onChange(new TuiMonth(year, month - 1));\n }\n}\n","<ng-container *ngIf=\"host.nativePickerEnabled\">\n <input\n *tuiTextfieldContent\n type=\"month\"\n [max]=\"max()?.toJSON()\"\n [min]=\"min()?.toJSON()\"\n [value]=\"host.value()?.toJSON()\"\n (click.stop.zoneless)=\"(0)\"\n (input)=\"onInput($any($event.target).value)\"\n (mousedown.stop.zoneless)=\"(0)\"\n />\n</ng-container>\n","import {TuiCalendarMonth} from '@taiga-ui/kit/components/calendar-month';\n\nimport {TuiInputMonthDirective} from './input-month.directive';\nimport {TuiNativeMonthPicker} from './native-month-picker/native-month-picker.component';\n\nexport const TuiInputMonth = [\n TuiInputMonthDirective,\n TuiCalendarMonth,\n TuiNativeMonthPicker,\n] as const;\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-components-input-month.mjs","sources":["../../../projects/kit/components/input-month/input-month.options.ts","../../../projects/kit/components/input-month/input-month.directive.ts","../../../projects/kit/components/input-month/native-month-picker/native-month-picker.component.ts","../../../projects/kit/components/input-month/native-month-picker/native-month-picker.template.html","../../../projects/kit/components/input-month/input-month.ts","../../../projects/kit/components/input-month/taiga-ui-kit-components-input-month.ts"],"sourcesContent":["import type {TuiHandler} 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 TuiInputMonthOptions {\n readonly icon: TuiHandler<TuiSizeL | TuiSizeS, string>;\n}\n\nexport const TUI_INPUT_MONTH_DEFAULT_OPTIONS: TuiInputMonthOptions = {\n icon: () => '@tui.calendar',\n};\n\nexport const [TUI_INPUT_MONTH_OPTIONS, tuiInputMonthOptionsProvider] = tuiCreateOptions(\n TUI_INPUT_MONTH_DEFAULT_OPTIONS,\n);\n","import {computed, Directive, effect, inject} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {tuiAsControl, TuiControl} from '@taiga-ui/cdk/classes';\nimport {TUI_ALLOW_SIGNAL_WRITES} from '@taiga-ui/cdk/constants';\nimport type {TuiMonth} from '@taiga-ui/cdk/date-time';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {tuiInjectElement, tuiValueBinding} from '@taiga-ui/cdk/utils/dom';\nimport {\n tuiInjectAuxiliary,\n TuiSelectLike,\n tuiTextfieldIconBinding,\n TuiWithTextfield,\n} from '@taiga-ui/core/components/textfield';\nimport {\n TuiDropdownAuto,\n tuiDropdownEnabled,\n tuiDropdownOpen,\n} from '@taiga-ui/core/directives/dropdown';\nimport {TuiCalendarMonth} from '@taiga-ui/kit/components/calendar-month';\nimport {TUI_MONTH_FORMATTER} from '@taiga-ui/kit/tokens';\n\nimport {TUI_INPUT_MONTH_OPTIONS} from './input-month.options';\n\n@Directive({\n standalone: true,\n selector: 'input[tuiInputMonth]',\n providers: [tuiAsControl(TuiInputMonthDirective)],\n hostDirectives: [TuiWithTextfield, TuiSelectLike, TuiDropdownAuto],\n host: {\n '[disabled]': 'disabled()',\n '(blur)': 'onTouched()',\n '(input)': '$event.inputType?.includes(\"delete\") && clear()',\n },\n})\nexport class TuiInputMonthDirective extends TuiControl<TuiMonth | null> {\n private readonly open = tuiDropdownOpen();\n private readonly formatter = toSignal(inject(TUI_MONTH_FORMATTER), {\n initialValue: () => '',\n });\n\n protected readonly icon = tuiTextfieldIconBinding(TUI_INPUT_MONTH_OPTIONS);\n protected readonly dropdownEnabled = tuiDropdownEnabled(\n computed(() => !this.nativePickerEnabled && this.interactive()),\n );\n\n protected readonly textfieldValue = tuiValueBinding(\n computed(() => this.formatter()(this.value())),\n );\n\n protected readonly calendarSync = effect(() => {\n this.calendar()?.value.set(this.value());\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n protected onMonthClickEffect = effect((onCleanup) => {\n const subscription = this.calendar()?.monthClick.subscribe((month) => {\n this.onChange(month);\n this.open.set(false);\n });\n\n onCleanup(() => subscription?.unsubscribe());\n });\n\n public readonly calendar = tuiInjectAuxiliary<TuiCalendarMonth>(\n (x) => x instanceof TuiCalendarMonth,\n );\n\n public readonly nativePickerEnabled =\n tuiInjectElement<HTMLInputElement>().type === 'month' && inject(TUI_IS_MOBILE);\n\n protected clear(): void {\n this.onChange(null);\n this.open.set(true);\n }\n}\n","import {NgIf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n effect,\n inject,\n Input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {TUI_ALLOW_SIGNAL_WRITES} from '@taiga-ui/cdk/constants';\nimport {TUI_FIRST_DAY, TUI_LAST_DAY, TuiMonth} from '@taiga-ui/cdk/date-time';\nimport {TuiTextfieldContent} from '@taiga-ui/core/components/textfield';\n\nimport {TuiInputMonthDirective} from '../input-month.directive';\n\n@Component({\n standalone: true,\n selector: 'input[tuiInputMonth][type=\"month\"]',\n imports: [NgIf, TuiTextfieldContent],\n templateUrl: './native-month-picker.template.html',\n styleUrls: ['./native-month-picker.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[type]': '\"text\"',\n },\n})\nexport class TuiNativeMonthPicker {\n private readonly control = inject(TuiControl);\n\n protected readonly host = inject(TuiInputMonthDirective);\n protected readonly min = signal<TuiMonth | null>(null);\n protected readonly max = signal<TuiMonth | null>(null);\n protected readonly calendarSync = effect(() => {\n const calendar = this.host.calendar();\n\n if (calendar) {\n calendar.min.set(this.min() ?? TUI_FIRST_DAY); // TODO(v5): remove TUI_FIRST_DAY fallback\n calendar.max.set(this.max() ?? TUI_LAST_DAY); // TODO(v5): remove TUI_LAST_DAY fallback\n }\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n // TODO(v5): use signal inputs\n @Input('min')\n public set minSetter(x: TuiMonth | null) {\n this.min.set(x);\n }\n\n // TODO(v5): use signal inputs\n @Input('max')\n public set maxSetter(x: TuiMonth | null) {\n this.max.set(x);\n }\n\n protected onInput(value: string): void {\n if (!value) {\n return this.control.onChange(null);\n }\n\n const [year = 0, month = 0] = value.split('-').map(Number);\n\n this.control.onChange(new TuiMonth(year, month - 1));\n }\n}\n","<ng-container *ngIf=\"host.nativePickerEnabled\">\n <input\n *tuiTextfieldContent\n type=\"month\"\n [max]=\"max()?.toJSON()\"\n [min]=\"min()?.toJSON()\"\n [value]=\"host.value()?.toJSON()\"\n (click.stop.zoneless)=\"(0)\"\n (input)=\"onInput($any($event.target).value)\"\n (mousedown.stop.zoneless)=\"(0)\"\n />\n</ng-container>\n","import {TuiCalendarMonth} from '@taiga-ui/kit/components/calendar-month';\n\nimport {TuiInputMonthDirective} from './input-month.directive';\nimport {TuiNativeMonthPicker} from './native-month-picker/native-month-picker.component';\n\nexport const TuiInputMonth = [\n TuiInputMonthDirective,\n TuiCalendarMonth,\n TuiNativeMonthPicker,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAQa,MAAA,+BAA+B,GAAyB;AACjE,IAAA,IAAI,EAAE,MAAM,eAAe;EAC7B;AAEK,MAAM,CAAC,uBAAuB,EAAE,4BAA4B,CAAC,GAAG,gBAAgB,CACnF,+BAA+B;;ACUnC,MAWa,sBAAuB,SAAQ,UAA2B,CAAA;AAXvE,IAAA,WAAA,GAAA;;QAYqB,IAAI,CAAA,IAAA,GAAG,eAAe,EAAE,CAAC;AACzB,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE;AAC/D,YAAA,YAAY,EAAE,MAAM,EAAE;AACzB,SAAA,CAAC,CAAC;AAEgB,QAAA,IAAA,CAAA,IAAI,GAAG,uBAAuB,CAAC,uBAAuB,CAAC,CAAC;AACxD,QAAA,IAAA,CAAA,eAAe,GAAG,kBAAkB,CACnD,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,CAClE,CAAC;QAEiB,IAAc,CAAA,cAAA,GAAG,eAAe,CAC/C,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CACjD,CAAC;AAEiB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,MAAK;AAC1C,YAAA,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SAC5C,EAAE,uBAAuB,CAAC,CAAC;AAElB,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,CAAC,SAAS,KAAI;AAChD,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AACjE,gBAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrB,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACzB,aAAC,CAAC,CAAC;YAEH,SAAS,CAAC,MAAM,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC;AACjD,SAAC,CAAC,CAAC;AAEa,QAAA,IAAA,CAAA,QAAQ,GAAG,kBAAkB,CACzC,CAAC,CAAC,KAAK,CAAC,YAAY,gBAAgB,CACvC,CAAC;AAEc,QAAA,IAAA,CAAA,mBAAmB,GAC/B,gBAAgB,EAAoB,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC;AAMtF,KAAA;IAJa,KAAK,GAAA;AACX,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACvB;+GAtCQ,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,2NARpB,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,aAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,eAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAQxC,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAXlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,SAAS,EAAE,CAAC,YAAY,CAAA,sBAAA,CAAwB,CAAC;AACjD,oBAAA,cAAc,EAAE,CAAC,gBAAgB,EAAE,aAAa,EAAE,eAAe,CAAC;AAClE,oBAAA,IAAI,EAAE;AACF,wBAAA,YAAY,EAAE,YAAY;AAC1B,wBAAA,QAAQ,EAAE,aAAa;AACvB,wBAAA,SAAS,EAAE,iDAAiD;AAC/D,qBAAA;AACJ,iBAAA,CAAA;;;AChBD,MAYa,oBAAoB,CAAA;AAZjC,IAAA,WAAA,GAAA;AAaqB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAE3B,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AACtC,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAkB,IAAI,CAAC,CAAC;AACpC,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAkB,IAAI,CAAC,CAAC;AACpC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,MAAK;YAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AAEtC,YAAA,IAAI,QAAQ,EAAE;AACV,gBAAA,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,aAAa,CAAC,CAAC;AAC9C,gBAAA,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,YAAY,CAAC,CAAC;AAChD,aAAA;SACJ,EAAE,uBAAuB,CAAC,CAAC;AAuB/B,KAAA;;IApBG,IACW,SAAS,CAAC,CAAkB,EAAA;AACnC,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KACnB;;IAGD,IACW,SAAS,CAAC,CAAkB,EAAA;AACnC,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KACnB;AAES,IAAA,OAAO,CAAC,KAAa,EAAA;QAC3B,IAAI,CAAC,KAAK,EAAE;YACR,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACtC,SAAA;QAED,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAE3D,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;KACxD;+GAnCQ,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,EC7BjC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,CAAA,KAAA,EAAA,WAAA,CAAA,EAAA,SAAA,EAAA,CAAA,KAAA,EAAA,WAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,UAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,4YAYA,EDQc,MAAA,EAAA,CAAA,0TAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAI,6FAAE,mBAAmB,EAAA,QAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAS1B,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAZhC,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,oCAAoC,EAAA,OAAA,EACrC,CAAC,IAAI,EAAE,mBAAmB,CAAC,EAGrB,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,QAAQ,EAAE,QAAQ;AACrB,qBAAA,EAAA,QAAA,EAAA,4YAAA,EAAA,MAAA,EAAA,CAAA,0TAAA,CAAA,EAAA,CAAA;8BAmBU,SAAS,EAAA,CAAA;sBADnB,KAAK;uBAAC,KAAK,CAAA;gBAOD,SAAS,EAAA,CAAA;sBADnB,KAAK;uBAAC,KAAK,CAAA;;;AE9CH,MAAA,aAAa,GAAG;IACzB,sBAAsB;IACtB,gBAAgB;IAChB,oBAAoB;;;ACRxB;;AAEG;;;;"}
@@ -23,7 +23,7 @@ class TuiProgressFixedGradientDirective {
23
23
  this.nothing = tuiWithStyles(TuiProgressFixedGradientStyles);
24
24
  }
25
25
  get progressPercent() {
26
- const value = this.nativeProgress.value;
26
+ const { value } = this.nativeProgress;
27
27
  const max = this.nativeProgress.max ?? 1;
28
28
  return Math.min((value / max) * 100, 100);
29
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-progress.mjs","sources":["../../../projects/kit/components/progress/progress-bar/fixed-gradient/progress-fixed-gradient.directive.ts","../../../projects/kit/components/progress/progress.options.ts","../../../projects/kit/components/progress/progress-bar/progress-bar.component.ts","../../../projects/kit/components/progress/progress-bar/progress-color-segments.directive.ts","../../../projects/kit/components/progress/progress-circle/progress-circle.component.ts","../../../projects/kit/components/progress/progress-circle/progress-circle.template.html","../../../projects/kit/components/progress/progress-label/progress-label.component.ts","../../../projects/kit/components/progress/progress-label/progress-label.template.html","../../../projects/kit/components/progress/progress-segmented/progress-segmented.directive.ts","../../../projects/kit/components/progress/progress.ts","../../../projects/kit/components/progress/taiga-ui-kit-components-progress.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./progress-fixed-gradient.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-fixed-gradient',\n },\n})\nclass TuiProgressFixedGradientStyles {}\n\n@Directive({\n standalone: true,\n selector: 'progress[tuiProgressBar][tuiProgressFixedGradient]',\n host: {\n '[style.--tui-progress-percent.%]': 'progressPercent',\n },\n})\nexport class TuiProgressFixedGradientDirective {\n private readonly nativeProgress = tuiInjectElement<HTMLProgressElement>();\n protected readonly nothing = tuiWithStyles(TuiProgressFixedGradientStyles);\n\n protected get progressPercent(): number {\n const value = this.nativeProgress.value;\n const max = this.nativeProgress.max ?? 1;\n\n return Math.min((value / max) * 100, 100);\n }\n}\n","import type {Provider} from '@angular/core';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiSizeXXL, TuiSizeXXS} from '@taiga-ui/core/types';\n\nexport interface TuiProgressOptions {\n readonly color: string | null;\n readonly size: TuiSizeXXL | TuiSizeXXS;\n}\n\nexport const TUI_PROGRESS_DEFAULT_OPTIONS: TuiProgressOptions = {\n color: null,\n size: 'm',\n};\n\nexport const TUI_PROGRESS_OPTIONS = tuiCreateToken(TUI_PROGRESS_DEFAULT_OPTIONS);\n\nexport function tuiProgressOptionsProvider(\n options: Partial<TuiProgressOptions>,\n): Provider {\n return tuiProvideOptions(TUI_PROGRESS_OPTIONS, options, TUI_PROGRESS_DEFAULT_OPTIONS);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport type {TuiSizeXXL, TuiSizeXXS} from '@taiga-ui/core/types';\n\nimport {TUI_PROGRESS_OPTIONS} from '../progress.options';\n\n@Component({\n standalone: true,\n selector: 'progress[tuiProgressBar]',\n template: '',\n styles: ['@import \"@taiga-ui/kit/styles/components/progress-bar.less\";'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[style.--tui-progress-color]': 'color',\n '[attr.data-size]': 'size',\n },\n})\nexport class TuiProgressBar {\n private readonly options = inject(TUI_PROGRESS_OPTIONS);\n\n @Input()\n public color: string | null = this.options.color;\n\n @Input()\n public size: TuiSizeXXL | TuiSizeXXS = this.options.size;\n}\n","import {Directive, inject, Input} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {ResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {tuiWatch, tuiZonefull} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {BehaviorSubject, combineLatest, distinctUntilChanged, map} from 'rxjs';\n\n@Directive({\n standalone: true,\n selector: 'progress[tuiProgressBar][tuiProgressColorSegments]',\n providers: [ResizeObserverService],\n host: {'[style.--tui-progress-color]': 'color()'},\n})\nexport class TuiProgressColorSegments {\n private readonly colors$ = new BehaviorSubject<string[]>([]);\n private readonly el = tuiInjectElement<HTMLProgressElement>();\n\n protected readonly color = toSignal(\n combineLatest([\n this.colors$,\n inject(ResizeObserverService, {self: true}).pipe(\n map(() => this.el.offsetWidth),\n distinctUntilChanged(),\n ),\n ]).pipe(\n map(([colors, width]) => {\n const segmentWidth = Math.ceil(width / colors.length);\n const colorsString = colors.reduce(\n (acc, color, i) =>\n `${acc}, ${color} ${i * segmentWidth}px ${(i + 1) * segmentWidth}px`,\n '',\n );\n\n return `linear-gradient(to right ${colorsString})`;\n }),\n tuiZonefull(),\n tuiWatch(),\n ),\n );\n\n @Input('tuiProgressColorSegments')\n public set colors(colors: string[]) {\n this.colors$.next(colors);\n }\n}\n","import {ChangeDetectionStrategy, Component, inject, Input} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport type {TuiSizeXXL, TuiSizeXXS} from '@taiga-ui/core/types';\nimport {delay, of} from 'rxjs';\n\nimport {TUI_PROGRESS_OPTIONS} from '../progress.options';\n\n@Component({\n standalone: true,\n selector: 'tui-progress-circle',\n templateUrl: './progress-circle.template.html',\n styleUrls: ['./progress-circle.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.data-size]': 'size',\n '[style.--tui-progress-color]': 'color',\n '[style.--t-progress-ratio]': 'progressRatio',\n },\n})\nexport class TuiProgressCircle {\n private readonly options = inject(TUI_PROGRESS_OPTIONS);\n\n protected readonly animationDelay = toSignal(of(true).pipe(delay(0)));\n\n @Input()\n public value = 0;\n\n @Input()\n public max = 1;\n\n @Input()\n public color: string | null = this.options.color;\n\n @Input()\n public size: TuiSizeXXL | TuiSizeXXS = this.options.size;\n\n protected get progressRatio(): number {\n const ratio = this.value / this.max;\n\n return Number.isFinite(ratio) ? ratio : 0;\n }\n}\n","<progress\n class=\"t-hidden-progress\"\n [max]=\"max\"\n [value]=\"value\"\n></progress>\n\n<svg\n aria-hidden=\"true\"\n height=\"100%\"\n width=\"100%\"\n class=\"t-svg\"\n>\n <circle\n cx=\"50%\"\n cy=\"50%\"\n class=\"t-track\"\n />\n\n <circle\n cx=\"50%\"\n cy=\"50%\"\n class=\"t-progress\"\n [class.t-progress_filled]=\"animationDelay()\"\n />\n</svg>\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'label[tuiProgressLabel]',\n templateUrl: './progress-label.template.html',\n styleUrls: ['./progress-label.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiProgressLabel {}\n","<ng-content select=\"progress\" />\n<ng-content select=\"tui-progress-circle\" />\n<span class=\"t-label\">\n <ng-content />\n</span>\n","import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./progress-segmented.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-progress-segmented'},\n})\nclass TuiProgressSegmentedStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiProgressBar][segments]',\n host: {\n class: '_segmented',\n '[style.--t-segment-width]': '1 / segments',\n },\n})\nexport class TuiProgressSegmented {\n protected readonly nothing = tuiWithStyles(TuiProgressSegmentedStyles);\n\n @Input()\n public segments = 1;\n}\n","import {TuiProgressFixedGradientDirective} from './progress-bar/fixed-gradient/progress-fixed-gradient.directive';\nimport {TuiProgressBar} from './progress-bar/progress-bar.component';\nimport {TuiProgressColorSegments} from './progress-bar/progress-color-segments.directive';\nimport {TuiProgressCircle} from './progress-circle/progress-circle.component';\nimport {TuiProgressLabel} from './progress-label/progress-label.component';\nimport {TuiProgressSegmented} from './progress-segmented/progress-segmented.directive';\n\nexport const TuiProgress = [\n TuiProgressBar,\n TuiProgressCircle,\n TuiProgressColorSegments,\n TuiProgressFixedGradientDirective,\n TuiProgressLabel,\n TuiProgressSegmented,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AASA,MAUM,8BAA8B,CAAA;+GAA9B,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,wHARtB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,mlBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAQV,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAVnC,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,oBAAoB;AAC9B,qBAAA,EAAA,MAAA,EAAA,CAAA,mlBAAA,CAAA,EAAA,CAAA;;AAIL,MAOa,iCAAiC,CAAA;AAP9C,IAAA,WAAA,GAAA;QAQqB,IAAc,CAAA,cAAA,GAAG,gBAAgB,EAAuB,CAAC;AACvD,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,8BAA8B,CAAC,CAAC;AAQ9E,KAAA;AANG,IAAA,IAAc,eAAe,GAAA;AACzB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC;AAEzC,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC;KAC7C;+GATQ,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAjC,iCAAiC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oDAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gCAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAjC,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAP7C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,oDAAoD;AAC9D,oBAAA,IAAI,EAAE;AACF,wBAAA,kCAAkC,EAAE,iBAAiB;AACxD,qBAAA;AACJ,iBAAA,CAAA;;;AClBY,MAAA,4BAA4B,GAAuB;AAC5D,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,IAAI,EAAE,GAAG;EACX;MAEW,oBAAoB,GAAG,cAAc,CAAC,4BAA4B,EAAE;AAE3E,SAAU,0BAA0B,CACtC,OAAoC,EAAA;IAEpC,OAAO,iBAAiB,CAAC,oBAAoB,EAAE,OAAO,EAAE,4BAA4B,CAAC,CAAC;AAC1F;;ACTA,MAYa,cAAc,CAAA;AAZ3B,IAAA,WAAA,GAAA;AAaqB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAGjD,QAAA,IAAA,CAAA,KAAK,GAAkB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAG1C,QAAA,IAAA,CAAA,IAAI,GAA4B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAC5D,KAAA;+GARY,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,yNATb,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,6vDAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FASH,cAAc,EAAA,UAAA,EAAA,CAAA;kBAZ1B,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACN,QAAA,EAAA,0BAA0B,EAC1B,QAAA,EAAA,EAAE,EAEG,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,8BAA8B,EAAE,OAAO;AACvC,wBAAA,kBAAkB,EAAE,MAAM;AAC7B,qBAAA,EAAA,MAAA,EAAA,CAAA,6vDAAA,CAAA,EAAA,CAAA;8BAMM,KAAK,EAAA,CAAA;sBADX,KAAK;gBAIC,IAAI,EAAA,CAAA;sBADV,KAAK;;;ACtBV,MAMa,wBAAwB,CAAA;AANrC,IAAA,WAAA,GAAA;AAOqB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,eAAe,CAAW,EAAE,CAAC,CAAC;QAC5C,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAuB,CAAC;AAE3C,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAC/B,aAAa,CAAC;AACV,YAAA,IAAI,CAAC,OAAO;YACZ,MAAM,CAAC,qBAAqB,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,IAAI,CAC5C,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,EAC9B,oBAAoB,EAAE,CACzB;AACJ,SAAA,CAAC,CAAC,IAAI,CACH,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,KAAI;AACpB,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AACtD,YAAA,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAC9B,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,KACV,CAAG,EAAA,GAAG,CAAK,EAAA,EAAA,KAAK,IAAI,CAAC,GAAG,YAAY,CAAA,GAAA,EAAM,CAAC,CAAC,GAAG,CAAC,IAAI,YAAY,CAAA,EAAA,CAAI,EACxE,EAAE,CACL,CAAC;YAEF,OAAO,CAAA,yBAAA,EAA4B,YAAY,CAAA,CAAA,CAAG,CAAC;SACtD,CAAC,EACF,WAAW,EAAE,EACb,QAAQ,EAAE,CACb,CACJ,CAAC;AAML,KAAA;IAJG,IACW,MAAM,CAAC,MAAgB,EAAA;AAC9B,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC7B;+GA9BQ,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oDAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,4BAAA,EAAA,SAAA,EAAA,EAAA,EAAA,SAAA,EAHtB,CAAC,qBAAqB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAGzB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,oDAAoD;oBAC9D,SAAS,EAAE,CAAC,qBAAqB,CAAC;AAClC,oBAAA,IAAI,EAAE,EAAC,8BAA8B,EAAE,SAAS,EAAC;AACpD,iBAAA,CAAA;8BA6Bc,MAAM,EAAA,CAAA;sBADhB,KAAK;uBAAC,0BAA0B,CAAA;;;ACjCrC,MAYa,iBAAiB,CAAA;AAZ9B,IAAA,WAAA,GAAA;AAaqB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAErC,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAG/D,IAAK,CAAA,KAAA,GAAG,CAAC,CAAC;QAGV,IAAG,CAAA,GAAA,GAAG,CAAC,CAAC;AAGR,QAAA,IAAA,CAAA,KAAK,GAAkB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAG1C,QAAA,IAAA,CAAA,IAAI,GAA4B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAO5D,KAAA;AALG,IAAA,IAAc,aAAa,GAAA;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;AAEpC,QAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;KAC7C;+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,6RCnB9B,8bAyBA,EAAA,MAAA,EAAA,CAAA,q0DAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDNa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAZ7B,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,qBAAqB,EAAA,eAAA,EAGd,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,kBAAkB,EAAE,MAAM;AAC1B,wBAAA,8BAA8B,EAAE,OAAO;AACvC,wBAAA,4BAA4B,EAAE,eAAe;AAChD,qBAAA,EAAA,QAAA,EAAA,8bAAA,EAAA,MAAA,EAAA,CAAA,q0DAAA,CAAA,EAAA,CAAA;8BAQM,KAAK,EAAA,CAAA;sBADX,KAAK;gBAIC,GAAG,EAAA,CAAA;sBADT,KAAK;gBAIC,KAAK,EAAA,CAAA;sBADX,KAAK;gBAIC,IAAI,EAAA,CAAA;sBADV,KAAK;;;AE/BV,MAOa,gBAAgB,CAAA;+GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,mFCT7B,4IAKA,EAAA,MAAA,EAAA,CAAA,iQAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDIa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAP5B,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACN,QAAA,EAAA,yBAAyB,EAGlB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,4IAAA,EAAA,MAAA,EAAA,CAAA,iQAAA,CAAA,EAAA,CAAA;;;AEEnD,MAQM,0BAA0B,CAAA;+GAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,4HANlB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,6xCAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAMV,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAR/B,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACN,QAAA,EAAA,EAAE,EAEG,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA,EAAC,KAAK,EAAE,wBAAwB,EAAC,EAAA,MAAA,EAAA,CAAA,6xCAAA,CAAA,EAAA,CAAA;;AAI3C,MAQa,oBAAoB,CAAA;AARjC,IAAA,WAAA,GAAA;AASuB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,0BAA0B,CAAC,CAAC;QAGhE,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC;AACvB,KAAA;+GALY,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,yBAAA,EAAA,cAAA,EAAA,EAAA,cAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBARhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE,YAAY;AACnB,wBAAA,2BAA2B,EAAE,cAAc;AAC9C,qBAAA;AACJ,iBAAA,CAAA;8BAKU,QAAQ,EAAA,CAAA;sBADd,KAAK;;;ACvBG,MAAA,WAAW,GAAG;IACvB,cAAc;IACd,iBAAiB;IACjB,wBAAwB;IACxB,iCAAiC;IACjC,gBAAgB;IAChB,oBAAoB;;;ACbxB;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-components-progress.mjs","sources":["../../../projects/kit/components/progress/progress-bar/fixed-gradient/progress-fixed-gradient.directive.ts","../../../projects/kit/components/progress/progress.options.ts","../../../projects/kit/components/progress/progress-bar/progress-bar.component.ts","../../../projects/kit/components/progress/progress-bar/progress-color-segments.directive.ts","../../../projects/kit/components/progress/progress-circle/progress-circle.component.ts","../../../projects/kit/components/progress/progress-circle/progress-circle.template.html","../../../projects/kit/components/progress/progress-label/progress-label.component.ts","../../../projects/kit/components/progress/progress-label/progress-label.template.html","../../../projects/kit/components/progress/progress-segmented/progress-segmented.directive.ts","../../../projects/kit/components/progress/progress.ts","../../../projects/kit/components/progress/taiga-ui-kit-components-progress.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./progress-fixed-gradient.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-fixed-gradient',\n },\n})\nclass TuiProgressFixedGradientStyles {}\n\n@Directive({\n standalone: true,\n selector: 'progress[tuiProgressBar][tuiProgressFixedGradient]',\n host: {\n '[style.--tui-progress-percent.%]': 'progressPercent',\n },\n})\nexport class TuiProgressFixedGradientDirective {\n private readonly nativeProgress = tuiInjectElement<HTMLProgressElement>();\n protected readonly nothing = tuiWithStyles(TuiProgressFixedGradientStyles);\n\n protected get progressPercent(): number {\n const {value} = this.nativeProgress;\n const max = this.nativeProgress.max ?? 1;\n\n return Math.min((value / max) * 100, 100);\n }\n}\n","import type {Provider} from '@angular/core';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiSizeXXL, TuiSizeXXS} from '@taiga-ui/core/types';\n\nexport interface TuiProgressOptions {\n readonly color: string | null;\n readonly size: TuiSizeXXL | TuiSizeXXS;\n}\n\nexport const TUI_PROGRESS_DEFAULT_OPTIONS: TuiProgressOptions = {\n color: null,\n size: 'm',\n};\n\nexport const TUI_PROGRESS_OPTIONS = tuiCreateToken(TUI_PROGRESS_DEFAULT_OPTIONS);\n\nexport function tuiProgressOptionsProvider(\n options: Partial<TuiProgressOptions>,\n): Provider {\n return tuiProvideOptions(TUI_PROGRESS_OPTIONS, options, TUI_PROGRESS_DEFAULT_OPTIONS);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport type {TuiSizeXXL, TuiSizeXXS} from '@taiga-ui/core/types';\n\nimport {TUI_PROGRESS_OPTIONS} from '../progress.options';\n\n@Component({\n standalone: true,\n selector: 'progress[tuiProgressBar]',\n template: '',\n styles: ['@import \"@taiga-ui/kit/styles/components/progress-bar.less\";'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[style.--tui-progress-color]': 'color',\n '[attr.data-size]': 'size',\n },\n})\nexport class TuiProgressBar {\n private readonly options = inject(TUI_PROGRESS_OPTIONS);\n\n @Input()\n public color: string | null = this.options.color;\n\n @Input()\n public size: TuiSizeXXL | TuiSizeXXS = this.options.size;\n}\n","import {Directive, inject, Input} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {ResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {tuiWatch, tuiZonefull} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {BehaviorSubject, combineLatest, distinctUntilChanged, map} from 'rxjs';\n\n@Directive({\n standalone: true,\n selector: 'progress[tuiProgressBar][tuiProgressColorSegments]',\n providers: [ResizeObserverService],\n host: {'[style.--tui-progress-color]': 'color()'},\n})\nexport class TuiProgressColorSegments {\n private readonly colors$ = new BehaviorSubject<string[]>([]);\n private readonly el = tuiInjectElement<HTMLProgressElement>();\n\n protected readonly color = toSignal(\n combineLatest([\n this.colors$,\n inject(ResizeObserverService, {self: true}).pipe(\n map(() => this.el.offsetWidth),\n distinctUntilChanged(),\n ),\n ]).pipe(\n map(([colors, width]) => {\n const segmentWidth = Math.ceil(width / colors.length);\n const colorsString = colors.reduce(\n (acc, color, i) =>\n `${acc}, ${color} ${i * segmentWidth}px ${(i + 1) * segmentWidth}px`,\n '',\n );\n\n return `linear-gradient(to right ${colorsString})`;\n }),\n tuiZonefull(),\n tuiWatch(),\n ),\n );\n\n @Input('tuiProgressColorSegments')\n public set colors(colors: string[]) {\n this.colors$.next(colors);\n }\n}\n","import {ChangeDetectionStrategy, Component, inject, Input} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport type {TuiSizeXXL, TuiSizeXXS} from '@taiga-ui/core/types';\nimport {delay, of} from 'rxjs';\n\nimport {TUI_PROGRESS_OPTIONS} from '../progress.options';\n\n@Component({\n standalone: true,\n selector: 'tui-progress-circle',\n templateUrl: './progress-circle.template.html',\n styleUrls: ['./progress-circle.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.data-size]': 'size',\n '[style.--tui-progress-color]': 'color',\n '[style.--t-progress-ratio]': 'progressRatio',\n },\n})\nexport class TuiProgressCircle {\n private readonly options = inject(TUI_PROGRESS_OPTIONS);\n\n protected readonly animationDelay = toSignal(of(true).pipe(delay(0)));\n\n @Input()\n public value = 0;\n\n @Input()\n public max = 1;\n\n @Input()\n public color: string | null = this.options.color;\n\n @Input()\n public size: TuiSizeXXL | TuiSizeXXS = this.options.size;\n\n protected get progressRatio(): number {\n const ratio = this.value / this.max;\n\n return Number.isFinite(ratio) ? ratio : 0;\n }\n}\n","<progress\n class=\"t-hidden-progress\"\n [max]=\"max\"\n [value]=\"value\"\n></progress>\n\n<svg\n aria-hidden=\"true\"\n height=\"100%\"\n width=\"100%\"\n class=\"t-svg\"\n>\n <circle\n cx=\"50%\"\n cy=\"50%\"\n class=\"t-track\"\n />\n\n <circle\n cx=\"50%\"\n cy=\"50%\"\n class=\"t-progress\"\n [class.t-progress_filled]=\"animationDelay()\"\n />\n</svg>\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'label[tuiProgressLabel]',\n templateUrl: './progress-label.template.html',\n styleUrls: ['./progress-label.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiProgressLabel {}\n","<ng-content select=\"progress\" />\n<ng-content select=\"tui-progress-circle\" />\n<span class=\"t-label\">\n <ng-content />\n</span>\n","import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./progress-segmented.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-progress-segmented'},\n})\nclass TuiProgressSegmentedStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiProgressBar][segments]',\n host: {\n class: '_segmented',\n '[style.--t-segment-width]': '1 / segments',\n },\n})\nexport class TuiProgressSegmented {\n protected readonly nothing = tuiWithStyles(TuiProgressSegmentedStyles);\n\n @Input()\n public segments = 1;\n}\n","import {TuiProgressFixedGradientDirective} from './progress-bar/fixed-gradient/progress-fixed-gradient.directive';\nimport {TuiProgressBar} from './progress-bar/progress-bar.component';\nimport {TuiProgressColorSegments} from './progress-bar/progress-color-segments.directive';\nimport {TuiProgressCircle} from './progress-circle/progress-circle.component';\nimport {TuiProgressLabel} from './progress-label/progress-label.component';\nimport {TuiProgressSegmented} from './progress-segmented/progress-segmented.directive';\n\nexport const TuiProgress = [\n TuiProgressBar,\n TuiProgressCircle,\n TuiProgressColorSegments,\n TuiProgressFixedGradientDirective,\n TuiProgressLabel,\n TuiProgressSegmented,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -30,7 +30,7 @@ class TuiRoutableDialog {
30
30
  this.injector = inject(INJECTOR);
31
31
  this.initialUrl = this.router.url;
32
32
  this.dialog = inject(TuiDialogService);
33
- const dialog = this.route.snapshot.data['dialog'];
33
+ const { dialog } = this.route.snapshot.data;
34
34
  from(isClass(dialog) ? of(dialog) : dialog().then((m) => m.default ?? m))
35
35
  .pipe(switchMap((dialog) => this.dialog.open(new PolymorpheusComponent(dialog, this.injector), this.route.snapshot.data['dialogOptions'])), takeUntilDestroyed())
36
36
  .subscribe({ complete: () => this.onDialogClosing() });
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-routable-dialog.mjs","sources":["../../../projects/kit/components/routable-dialog/generate-dialogable-route.ts","../../../projects/kit/components/routable-dialog/routable-dialog.component.ts","../../../projects/kit/components/routable-dialog/taiga-ui-kit-components-routable-dialog.ts"],"sourcesContent":["import type {Type} from '@angular/core';\nimport type {DefaultExport, Route} from '@angular/router';\nimport type {TuiDialogOptions} from '@taiga-ui/core/components/dialog';\n\nexport function tuiGenerateDialogableRoute<I>(\n component: Type<any> | (() => Promise<DefaultExport<Type<any>> | Type<any>>),\n {\n path = '',\n outlet = '',\n ...dialogOptions\n }: Partial<TuiDialogOptions<I>> & {path?: string; outlet?: string} = {},\n): Route {\n return {\n path,\n outlet,\n loadComponent: async () => import('./routable-dialog.component'),\n data: {\n dialog: component,\n backUrl: path\n .split('/')\n .map(() => '..')\n .join('/'),\n isLazy: path === '',\n dialogOptions,\n },\n };\n}\n","import type {Type} from '@angular/core';\nimport {ChangeDetectionStrategy, Component, inject, INJECTOR} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {TuiDialogService} from '@taiga-ui/core/components/dialog';\nimport {PolymorpheusComponent} from '@taiga-ui/polymorpheus';\nimport {from, of, switchMap} from 'rxjs';\n\n@Component({\n standalone: true,\n selector: 'tui-routable-dialog',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport default class TuiRoutableDialog {\n private readonly route = inject(ActivatedRoute);\n private readonly router = inject(Router);\n private readonly injector = inject(INJECTOR);\n private readonly initialUrl = this.router.url;\n private readonly dialog = inject(TuiDialogService);\n\n constructor() {\n const dialog = this.route.snapshot.data['dialog'];\n\n from(isClass(dialog) ? of(dialog) : dialog().then((m: any) => m.default ?? m))\n .pipe(\n switchMap((dialog: any) =>\n this.dialog.open(\n new PolymorpheusComponent<Type<any>>(dialog, this.injector),\n this.route.snapshot.data['dialogOptions'],\n ),\n ),\n takeUntilDestroyed(),\n )\n .subscribe({complete: () => this.onDialogClosing()});\n }\n\n private get lazyLoadedBackUrl(): string {\n return (this.route.parent?.snapshot.url || []).map(() => '..').join('/');\n }\n\n private onDialogClosing(): void {\n if (this.initialUrl === this.router.url) {\n this.navigateToParent();\n }\n }\n\n private navigateToParent(): void {\n const backUrl = this.route.snapshot.data['isLazy']\n ? this.lazyLoadedBackUrl\n : this.route.snapshot.data['backUrl'];\n\n void this.router.navigate([backUrl], {\n relativeTo: this.route,\n });\n }\n}\n\nfunction isClass(fn: unknown): boolean {\n return (\n typeof fn === 'function' &&\n Object.getOwnPropertyDescriptor(fn, 'prototype')?.writable === false\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-components-routable-dialog.mjs","sources":["../../../projects/kit/components/routable-dialog/generate-dialogable-route.ts","../../../projects/kit/components/routable-dialog/routable-dialog.component.ts","../../../projects/kit/components/routable-dialog/taiga-ui-kit-components-routable-dialog.ts"],"sourcesContent":["import type {Type} from '@angular/core';\nimport type {DefaultExport, Route} from '@angular/router';\nimport type {TuiDialogOptions} from '@taiga-ui/core/components/dialog';\n\nexport function tuiGenerateDialogableRoute<I>(\n component: Type<any> | (() => Promise<DefaultExport<Type<any>> | Type<any>>),\n {\n path = '',\n outlet = '',\n ...dialogOptions\n }: Partial<TuiDialogOptions<I>> & {path?: string; outlet?: string} = {},\n): Route {\n return {\n path,\n outlet,\n loadComponent: async () => import('./routable-dialog.component'),\n data: {\n dialog: component,\n backUrl: path\n .split('/')\n .map(() => '..')\n .join('/'),\n isLazy: path === '',\n dialogOptions,\n },\n };\n}\n","import type {Type} from '@angular/core';\nimport {ChangeDetectionStrategy, Component, inject, INJECTOR} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {TuiDialogService} from '@taiga-ui/core/components/dialog';\nimport {PolymorpheusComponent} from '@taiga-ui/polymorpheus';\nimport {from, of, switchMap} from 'rxjs';\n\n@Component({\n standalone: true,\n selector: 'tui-routable-dialog',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport default class TuiRoutableDialog {\n private readonly route = inject(ActivatedRoute);\n private readonly router = inject(Router);\n private readonly injector = inject(INJECTOR);\n private readonly initialUrl = this.router.url;\n private readonly dialog = inject(TuiDialogService);\n\n constructor() {\n const {dialog} = this.route.snapshot.data;\n\n from(isClass(dialog) ? of(dialog) : dialog().then((m: any) => m.default ?? m))\n .pipe(\n switchMap((dialog: any) =>\n this.dialog.open(\n new PolymorpheusComponent<Type<any>>(dialog, this.injector),\n this.route.snapshot.data['dialogOptions'],\n ),\n ),\n takeUntilDestroyed(),\n )\n .subscribe({complete: () => this.onDialogClosing()});\n }\n\n private get lazyLoadedBackUrl(): string {\n return (this.route.parent?.snapshot.url || []).map(() => '..').join('/');\n }\n\n private onDialogClosing(): void {\n if (this.initialUrl === this.router.url) {\n this.navigateToParent();\n }\n }\n\n private navigateToParent(): void {\n const backUrl = this.route.snapshot.data['isLazy']\n ? this.lazyLoadedBackUrl\n : this.route.snapshot.data['backUrl'];\n\n void this.router.navigate([backUrl], {\n relativeTo: this.route,\n });\n }\n}\n\nfunction isClass(fn: unknown): boolean {\n return (\n typeof fn === 'function' &&\n Object.getOwnPropertyDescriptor(fn, 'prototype')?.writable === false\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -22,6 +22,7 @@ export * from '@taiga-ui/kit/components/files';
22
22
  export * from '@taiga-ui/kit/components/filter';
23
23
  export * from '@taiga-ui/kit/components/input-inline';
24
24
  export * from '@taiga-ui/kit/components/input-month';
25
+ export * from '@taiga-ui/kit/components/input-month-range';
25
26
  export * from '@taiga-ui/kit/components/input-number';
26
27
  export * from '@taiga-ui/kit/components/input-password';
27
28
  export * from '@taiga-ui/kit/components/input-phone-international';
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components.mjs","sources":["../../../projects/kit/components/taiga-ui-kit-components.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEG"}
1
+ {"version":3,"file":"taiga-ui-kit-components.mjs","sources":["../../../projects/kit/components/taiga-ui-kit-components.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEG"}
@@ -81,7 +81,7 @@ class TuiFieldErrorPipe {
81
81
  }
82
82
  getErrorId(order, controlErrors) {
83
83
  const id = order?.find((errorId) => controlErrors[errorId]);
84
- const fallback = Object.keys(controlErrors)[0];
84
+ const [fallback] = Object.keys(controlErrors);
85
85
  return id || fallback || '';
86
86
  }
87
87
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiFieldErrorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-pipes-field-error.mjs","sources":["../../../projects/kit/pipes/field-error/field-error-pipe.ts","../../../projects/kit/pipes/field-error/field-error-content-pipe.ts","../../../projects/kit/pipes/field-error/taiga-ui-kit-pipes-field-error.ts"],"sourcesContent":["import type {PipeTransform} from '@angular/core';\nimport {inject, Pipe} from '@angular/core';\nimport type {AbstractControl, ControlValueAccessor} from '@angular/forms';\nimport {ControlContainer, NgControl} from '@angular/forms';\nimport {TuiValidationError} from '@taiga-ui/cdk/classes';\nimport {tuiIsString, tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_VALIDATION_ERRORS} from '@taiga-ui/kit/tokens';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {map, Observable, of} from 'rxjs';\n\nconst EMPTY_RECORD = {};\n\nfunction unwrapObservable(\n content: Observable<PolymorpheusContent>,\n context: any,\n): Observable<TuiValidationError> {\n return content.pipe(map((error) => new TuiValidationError(error || '', context)));\n}\n\nfunction defaultError(\n content: PolymorpheusContent,\n context: any,\n): Observable<TuiValidationError> {\n return of(new TuiValidationError(content || '', context));\n}\n\n@Pipe({\n standalone: true,\n name: 'tuiFieldError',\n pure: false,\n})\nexport class TuiFieldErrorPipe implements PipeTransform, ControlValueAccessor {\n private order: readonly string[] = [];\n private readonly parent = inject(NgControl, {skipSelf: true, optional: true});\n private readonly self = inject(NgControl, {self: true, optional: true});\n private readonly container = inject(ControlContainer, {optional: true});\n private readonly validationErrors = inject(TUI_VALIDATION_ERRORS);\n\n constructor() {\n if (this.self && !this.self.valueAccessor) {\n this.self.valueAccessor = this;\n }\n }\n\n public transform(order: readonly string[]): Observable<TuiValidationError | null> {\n this.order = order;\n\n return this.computedError;\n }\n\n public registerOnChange(): void {}\n\n public registerOnTouched(): void {}\n\n public setDisabledState(): void {}\n\n public writeValue(): void {}\n\n protected get computedError(): Observable<TuiValidationError | null> {\n return (this.invalid && this.touched && this.error) || of(null);\n }\n\n private get error(): Observable<TuiValidationError> | null {\n const {errorId} = this;\n\n if (!errorId) {\n return null;\n }\n\n const firstError = this.controlErrors[errorId];\n const errorContent = this.validationErrors[errorId];\n\n return this.getError(firstError, errorContent);\n }\n\n private get invalid(): boolean {\n return !!this.control?.invalid;\n }\n\n private get touched(): boolean {\n return !!this.control?.touched;\n }\n\n private get control(): AbstractControl | null | undefined {\n return this.self?.control || this.parent?.control || this.container?.control;\n }\n\n private get errorId(): string {\n return this.getErrorId(this.order, this.controlErrors);\n }\n\n private get controlErrors(): Record<string, unknown> {\n return this.control?.errors || EMPTY_RECORD;\n }\n\n @tuiPure\n private getError(\n context: any,\n content?: Observable<PolymorpheusContent> | PolymorpheusContent,\n ): Observable<TuiValidationError> {\n if (context instanceof TuiValidationError) {\n return of(context);\n }\n\n if (content === undefined && tuiIsString(context)) {\n return of(new TuiValidationError(context));\n }\n\n if (content instanceof Observable) {\n return unwrapObservable(content, context);\n }\n\n if (content instanceof Function) {\n const message = content(context) as\n | Observable<PolymorpheusContent>\n | PolymorpheusContent;\n\n return message instanceof Observable\n ? unwrapObservable(message, context)\n : defaultError(message, context);\n }\n\n return defaultError(content, context);\n }\n\n @tuiPure\n private getErrorId(\n order: readonly string[],\n controlErrors: Record<string, unknown>,\n ): string {\n const id = order?.find((errorId) => controlErrors[errorId]);\n const fallback = Object.keys(controlErrors)[0];\n\n return id || fallback || '';\n }\n}\n","import {AsyncPipe} from '@angular/common';\nimport type {OnDestroy, PipeTransform} from '@angular/core';\nimport {inject, INJECTOR, Injector, Pipe} from '@angular/core';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nimport {TuiFieldErrorPipe} from './field-error-pipe';\n\n@Pipe({\n standalone: true,\n name: 'tuiFieldErrorContent',\n pure: false,\n})\nexport class TuiFieldErrorContentPipe implements PipeTransform, OnDestroy {\n private readonly injector = inject(INJECTOR);\n private readonly localInjector = Injector.create({\n providers: [{provide: AsyncPipe}, {provide: TuiFieldErrorPipe}],\n parent: this.injector,\n });\n\n private readonly asyncPipe = this.localInjector.get(AsyncPipe);\n private readonly fieldErrorPipe = this.localInjector.get(TuiFieldErrorPipe);\n\n public transform(order: readonly string[]): PolymorpheusContent {\n return this.getErrorContent(order);\n }\n\n public ngOnDestroy(): void {\n this.asyncPipe.ngOnDestroy();\n }\n\n private getErrorContent(order: readonly string[]): PolymorpheusContent {\n const error = this.asyncPipe.transform(this.fieldErrorPipe.transform(order));\n\n if (!error) {\n return '';\n }\n\n return typeof error.message === 'function'\n ? error.message(error.context)\n : error.message;\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-field-error.mjs","sources":["../../../projects/kit/pipes/field-error/field-error-pipe.ts","../../../projects/kit/pipes/field-error/field-error-content-pipe.ts","../../../projects/kit/pipes/field-error/taiga-ui-kit-pipes-field-error.ts"],"sourcesContent":["import type {PipeTransform} from '@angular/core';\nimport {inject, Pipe} from '@angular/core';\nimport type {AbstractControl, ControlValueAccessor} from '@angular/forms';\nimport {ControlContainer, NgControl} from '@angular/forms';\nimport {TuiValidationError} from '@taiga-ui/cdk/classes';\nimport {tuiIsString, tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_VALIDATION_ERRORS} from '@taiga-ui/kit/tokens';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {map, Observable, of} from 'rxjs';\n\nconst EMPTY_RECORD = {};\n\nfunction unwrapObservable(\n content: Observable<PolymorpheusContent>,\n context: any,\n): Observable<TuiValidationError> {\n return content.pipe(map((error) => new TuiValidationError(error || '', context)));\n}\n\nfunction defaultError(\n content: PolymorpheusContent,\n context: any,\n): Observable<TuiValidationError> {\n return of(new TuiValidationError(content || '', context));\n}\n\n@Pipe({\n standalone: true,\n name: 'tuiFieldError',\n pure: false,\n})\nexport class TuiFieldErrorPipe implements PipeTransform, ControlValueAccessor {\n private order: readonly string[] = [];\n private readonly parent = inject(NgControl, {skipSelf: true, optional: true});\n private readonly self = inject(NgControl, {self: true, optional: true});\n private readonly container = inject(ControlContainer, {optional: true});\n private readonly validationErrors = inject(TUI_VALIDATION_ERRORS);\n\n constructor() {\n if (this.self && !this.self.valueAccessor) {\n this.self.valueAccessor = this;\n }\n }\n\n public transform(order: readonly string[]): Observable<TuiValidationError | null> {\n this.order = order;\n\n return this.computedError;\n }\n\n public registerOnChange(): void {}\n\n public registerOnTouched(): void {}\n\n public setDisabledState(): void {}\n\n public writeValue(): void {}\n\n protected get computedError(): Observable<TuiValidationError | null> {\n return (this.invalid && this.touched && this.error) || of(null);\n }\n\n private get error(): Observable<TuiValidationError> | null {\n const {errorId} = this;\n\n if (!errorId) {\n return null;\n }\n\n const firstError = this.controlErrors[errorId];\n const errorContent = this.validationErrors[errorId];\n\n return this.getError(firstError, errorContent);\n }\n\n private get invalid(): boolean {\n return !!this.control?.invalid;\n }\n\n private get touched(): boolean {\n return !!this.control?.touched;\n }\n\n private get control(): AbstractControl | null | undefined {\n return this.self?.control || this.parent?.control || this.container?.control;\n }\n\n private get errorId(): string {\n return this.getErrorId(this.order, this.controlErrors);\n }\n\n private get controlErrors(): Record<string, unknown> {\n return this.control?.errors || EMPTY_RECORD;\n }\n\n @tuiPure\n private getError(\n context: any,\n content?: Observable<PolymorpheusContent> | PolymorpheusContent,\n ): Observable<TuiValidationError> {\n if (context instanceof TuiValidationError) {\n return of(context);\n }\n\n if (content === undefined && tuiIsString(context)) {\n return of(new TuiValidationError(context));\n }\n\n if (content instanceof Observable) {\n return unwrapObservable(content, context);\n }\n\n if (content instanceof Function) {\n const message = content(context) as\n | Observable<PolymorpheusContent>\n | PolymorpheusContent;\n\n return message instanceof Observable\n ? unwrapObservable(message, context)\n : defaultError(message, context);\n }\n\n return defaultError(content, context);\n }\n\n @tuiPure\n private getErrorId(\n order: readonly string[],\n controlErrors: Record<string, unknown>,\n ): string {\n const id = order?.find((errorId) => controlErrors[errorId]);\n const [fallback] = Object.keys(controlErrors);\n\n return id || fallback || '';\n }\n}\n","import {AsyncPipe} from '@angular/common';\nimport type {OnDestroy, PipeTransform} from '@angular/core';\nimport {inject, INJECTOR, Injector, Pipe} from '@angular/core';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nimport {TuiFieldErrorPipe} from './field-error-pipe';\n\n@Pipe({\n standalone: true,\n name: 'tuiFieldErrorContent',\n pure: false,\n})\nexport class TuiFieldErrorContentPipe implements PipeTransform, OnDestroy {\n private readonly injector = inject(INJECTOR);\n private readonly localInjector = Injector.create({\n providers: [{provide: AsyncPipe}, {provide: TuiFieldErrorPipe}],\n parent: this.injector,\n });\n\n private readonly asyncPipe = this.localInjector.get(AsyncPipe);\n private readonly fieldErrorPipe = this.localInjector.get(TuiFieldErrorPipe);\n\n public transform(order: readonly string[]): PolymorpheusContent {\n return this.getErrorContent(order);\n }\n\n public ngOnDestroy(): void {\n this.asyncPipe.ngOnDestroy();\n }\n\n private getErrorContent(order: readonly string[]): PolymorpheusContent {\n const error = this.asyncPipe.transform(this.fieldErrorPipe.transform(order));\n\n if (!error) {\n return '';\n }\n\n return typeof error.message === 'function'\n ? error.message(error.context)\n : error.message;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/kit",
3
- "version": "4.28.0",
3
+ "version": "4.29.0-canary.8cd9147",
4
4
  "description": "Taiga UI Angular main components kit",
5
5
  "keywords": [
6
6
  "angular",
@@ -197,6 +197,12 @@
197
197
  "esm": "./esm2022/components/input-month/taiga-ui-kit-components-input-month.mjs",
198
198
  "default": "./fesm2022/taiga-ui-kit-components-input-month.mjs"
199
199
  },
200
+ "./components/input-month-range": {
201
+ "types": "./components/input-month-range/index.d.ts",
202
+ "esm2022": "./esm2022/components/input-month-range/taiga-ui-kit-components-input-month-range.mjs",
203
+ "esm": "./esm2022/components/input-month-range/taiga-ui-kit-components-input-month-range.mjs",
204
+ "default": "./fesm2022/taiga-ui-kit-components-input-month-range.mjs"
205
+ },
200
206
  "./components/input-number": {
201
207
  "types": "./components/input-number/index.d.ts",
202
208
  "esm2022": "./esm2022/components/input-number/taiga-ui-kit-components-input-number.mjs",
@@ -347,18 +353,18 @@
347
353
  "esm": "./esm2022/components/switch/taiga-ui-kit-components-switch.mjs",
348
354
  "default": "./fesm2022/taiga-ui-kit-components-switch.mjs"
349
355
  },
350
- "./components/tiles": {
351
- "types": "./components/tiles/index.d.ts",
352
- "esm2022": "./esm2022/components/tiles/taiga-ui-kit-components-tiles.mjs",
353
- "esm": "./esm2022/components/tiles/taiga-ui-kit-components-tiles.mjs",
354
- "default": "./fesm2022/taiga-ui-kit-components-tiles.mjs"
355
- },
356
356
  "./components/tabs": {
357
357
  "types": "./components/tabs/index.d.ts",
358
358
  "esm2022": "./esm2022/components/tabs/taiga-ui-kit-components-tabs.mjs",
359
359
  "esm": "./esm2022/components/tabs/taiga-ui-kit-components-tabs.mjs",
360
360
  "default": "./fesm2022/taiga-ui-kit-components-tabs.mjs"
361
361
  },
362
+ "./components/tiles": {
363
+ "types": "./components/tiles/index.d.ts",
364
+ "esm2022": "./esm2022/components/tiles/taiga-ui-kit-components-tiles.mjs",
365
+ "esm": "./esm2022/components/tiles/taiga-ui-kit-components-tiles.mjs",
366
+ "default": "./fesm2022/taiga-ui-kit-components-tiles.mjs"
367
+ },
362
368
  "./components/tree": {
363
369
  "types": "./components/tree/index.d.ts",
364
370
  "esm2022": "./esm2022/components/tree/taiga-ui-kit-components-tree.mjs",
@@ -541,10 +547,10 @@
541
547
  "@ng-web-apis/intersection-observer": "^4.11.1",
542
548
  "@ng-web-apis/mutation-observer": "^4.11.1",
543
549
  "@ng-web-apis/resize-observer": "^4.11.1",
544
- "@taiga-ui/cdk": "^4.28.0",
545
- "@taiga-ui/core": "^4.28.0",
546
- "@taiga-ui/i18n": "^4.28.0",
547
- "@taiga-ui/polymorpheus": "^4.8.0",
550
+ "@taiga-ui/cdk": "^4.29.0",
551
+ "@taiga-ui/core": "^4.29.0",
552
+ "@taiga-ui/i18n": "^4.29.0",
553
+ "@taiga-ui/polymorpheus": "^4.9.0",
548
554
  "rxjs": ">=7.0.0"
549
555
  },
550
556
  "module": "fesm2022/taiga-ui-kit.mjs",
@@ -35,6 +35,7 @@
35
35
  overflow: hidden;
36
36
  font: var(--tui-font-text-m);
37
37
  padding: var(--tui-padding-l);
38
+ isolation: isolate;
38
39
 
39
40
  &[data-size='s'] {
40
41
  gap: 0.5rem;
@@ -48,6 +48,7 @@
48
48
 
49
49
  &:disabled._readonly {
50
50
  opacity: 1;
51
+ pointer-events: none;
51
52
  }
52
53
 
53
54
  &:checked,
@@ -107,8 +107,12 @@ tui-chip,
107
107
  & > input[tuiChip] {
108
108
  .fullsize();
109
109
 
110
- z-index: -1;
111
110
  margin: 0;
111
+
112
+ &[type='checkbox'],
113
+ &[type='radio'] {
114
+ z-index: -1;
115
+ }
112
116
  }
113
117
 
114
118
  &[tuiAppearance][data-appearance='error'], /* TODO @deprecated remove in v5 */