@taiga-ui/legacy 4.52.0-canary.974ca4b → 4.52.0-canary.a1004d6

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 (186) hide show
  1. package/components/dialog/dialog.component.d.ts +2 -1
  2. package/components/dialog/dialog.service.d.ts +1 -1
  3. package/components/index.d.ts +0 -12
  4. package/components/mobile-dialog/mobile-dialog.service.d.ts +1 -1
  5. package/components/pdf-viewer/pdf-viewer.service.d.ts +1 -1
  6. package/fesm2022/taiga-ui-legacy-components-dialog.mjs +17 -17
  7. package/fesm2022/taiga-ui-legacy-components-dialog.mjs.map +1 -1
  8. package/fesm2022/taiga-ui-legacy-components-mobile-dialog.mjs +8 -8
  9. package/fesm2022/taiga-ui-legacy-components-mobile-dialog.mjs.map +1 -1
  10. package/fesm2022/taiga-ui-legacy-components-pdf-viewer.mjs +11 -11
  11. package/fesm2022/taiga-ui-legacy-components-pdf-viewer.mjs.map +1 -1
  12. package/fesm2022/taiga-ui-legacy-components.mjs +0 -12
  13. package/fesm2022/taiga-ui-legacy-components.mjs.map +1 -1
  14. package/fesm2022/taiga-ui-legacy.mjs +0 -4
  15. package/fesm2022/taiga-ui-legacy.mjs.map +1 -1
  16. package/index.d.ts +0 -4
  17. package/package.json +9 -91
  18. package/classes/abstract-native-select.d.ts +0 -22
  19. package/classes/abstract-textfield-host.d.ts +0 -19
  20. package/classes/control.d.ts +0 -60
  21. package/classes/controller.d.ts +0 -9
  22. package/classes/index.d.ts +0 -9
  23. package/classes/interactive.d.ts +0 -34
  24. package/classes/multiple-control.d.ts +0 -11
  25. package/classes/named-day.d.ts +0 -11
  26. package/classes/nullable-control.d.ts +0 -10
  27. package/classes/stringifiable-item.d.ts +0 -11
  28. package/components/arrow/arrow.component.d.ts +0 -17
  29. package/components/arrow/arrow.options.d.ts +0 -17
  30. package/components/arrow/arrow.providers.d.ts +0 -18
  31. package/components/arrow/index.d.ts +0 -3
  32. package/components/input/index.d.ts +0 -3
  33. package/components/input/input.component.d.ts +0 -32
  34. package/components/input/input.directive.d.ts +0 -12
  35. package/components/input/input.module.d.ts +0 -16
  36. package/components/input-date-range/index.d.ts +0 -3
  37. package/components/input-date-range/input-date-range.component.d.ts +0 -66
  38. package/components/input-date-range/input-date-range.directive.d.ts +0 -16
  39. package/components/input-date-range/input-date-range.module.d.ts +0 -21
  40. package/components/input-date-time/index.d.ts +0 -3
  41. package/components/input-date-time/input-date-time.component.d.ts +0 -87
  42. package/components/input-date-time/input-date-time.directive.d.ts +0 -17
  43. package/components/input-date-time/input-date-time.module.d.ts +0 -23
  44. package/components/input-date-time/native-date-time/native-date-time.directive.d.ts +0 -13
  45. package/components/input-month-range/index.d.ts +0 -3
  46. package/components/input-month-range/input-month-range.component.d.ts +0 -38
  47. package/components/input-month-range/input-month-range.directive.d.ts +0 -23
  48. package/components/input-month-range/input-month-range.module.d.ts +0 -18
  49. package/components/input-number/index.d.ts +0 -4
  50. package/components/input-number/input-number.component.d.ts +0 -62
  51. package/components/input-number/input-number.directive.d.ts +0 -16
  52. package/components/input-number/input-number.module.d.ts +0 -18
  53. package/components/input-number/input-number.options.d.ts +0 -23
  54. package/components/input-range/index.d.ts +0 -2
  55. package/components/input-range/input-range.component.d.ts +0 -56
  56. package/components/input-range/input-range.module.d.ts +0 -19
  57. package/components/input-slider/index.d.ts +0 -2
  58. package/components/input-slider/input-slider.component.d.ts +0 -42
  59. package/components/input-slider/input-slider.module.d.ts +0 -18
  60. package/components/primitive-textfield/index.d.ts +0 -7
  61. package/components/primitive-textfield/primitive-textfield-options.d.ts +0 -21
  62. package/components/primitive-textfield/primitive-textfield-types.d.ts +0 -11
  63. package/components/primitive-textfield/primitive-textfield.component.d.ts +0 -73
  64. package/components/primitive-textfield/primitive-textfield.directive.d.ts +0 -14
  65. package/components/primitive-textfield/primitive-textfield.module.d.ts +0 -21
  66. package/components/primitive-textfield/textfield/textfield.component.d.ts +0 -13
  67. package/components/primitive-textfield/value-decoration/value-decoration.component.d.ts +0 -22
  68. package/components/select/index.d.ts +0 -6
  69. package/components/select/native-select/native-select-group.component.d.ts +0 -17
  70. package/components/select/native-select/native-select.component.d.ts +0 -16
  71. package/components/select/select.component.d.ts +0 -45
  72. package/components/select/select.directive.d.ts +0 -16
  73. package/components/select/select.module.d.ts +0 -24
  74. package/components/select/select.options.d.ts +0 -19
  75. package/components/select-option/index.d.ts +0 -2
  76. package/components/select-option/select-option.component.d.ts +0 -27
  77. package/components/select-option/select-option.module.d.ts +0 -10
  78. package/components/tooltip/index.d.ts +0 -2
  79. package/components/tooltip/tooltip.component.d.ts +0 -12
  80. package/components/tooltip/tooltip.module.d.ts +0 -13
  81. package/directives/index.d.ts +0 -5
  82. package/directives/legacy-dropdown-open-monitor/index.d.ts +0 -1
  83. package/directives/legacy-dropdown-open-monitor/legacy-dropdown-open-monitor.d.ts +0 -11
  84. package/directives/textfield-controller/index.d.ts +0 -14
  85. package/directives/textfield-controller/textfield-appearance.directive.d.ts +0 -9
  86. package/directives/textfield-controller/textfield-cleaner.directive.d.ts +0 -9
  87. package/directives/textfield-controller/textfield-controller.module.d.ts +0 -17
  88. package/directives/textfield-controller/textfield-controller.provider.d.ts +0 -4
  89. package/directives/textfield-controller/textfield-custom-content.directive.d.ts +0 -10
  90. package/directives/textfield-controller/textfield-filler.directive.d.ts +0 -9
  91. package/directives/textfield-controller/textfield-icon-left.directive.d.ts +0 -12
  92. package/directives/textfield-controller/textfield-icon.directive.d.ts +0 -12
  93. package/directives/textfield-controller/textfield-label-outside.directive.d.ts +0 -9
  94. package/directives/textfield-controller/textfield-postfix.directive.d.ts +0 -9
  95. package/directives/textfield-controller/textfield-prefix.directive.d.ts +0 -9
  96. package/directives/textfield-controller/textfield-size.directive.d.ts +0 -10
  97. package/directives/textfield-controller/textfield.controller.d.ts +0 -41
  98. package/directives/textfield-controller/textfield.options.d.ts +0 -17
  99. package/directives/unfinished-validator/index.d.ts +0 -2
  100. package/directives/unfinished-validator/unfinished-validator.directive.d.ts +0 -10
  101. package/directives/unfinished-validator/unfinished.validator.d.ts +0 -4
  102. package/directives/value-accessor/index.d.ts +0 -3
  103. package/directives/value-accessor/value-accessor.directive.d.ts +0 -5
  104. package/directives/value-accessor/value-accessor.module.d.ts +0 -7
  105. package/directives/value-accessor/value-accessor.provider.d.ts +0 -2
  106. package/directives/wrapper/README.md +0 -19
  107. package/directives/wrapper/index.d.ts +0 -2
  108. package/directives/wrapper/wrapper.directive.d.ts +0 -22
  109. package/directives/wrapper/wrapper.module.d.ts +0 -10
  110. package/fesm2022/taiga-ui-legacy-classes.mjs +0 -413
  111. package/fesm2022/taiga-ui-legacy-classes.mjs.map +0 -1
  112. package/fesm2022/taiga-ui-legacy-components-arrow.mjs +0 -72
  113. package/fesm2022/taiga-ui-legacy-components-arrow.mjs.map +0 -1
  114. package/fesm2022/taiga-ui-legacy-components-input-date-range.mjs +0 -346
  115. package/fesm2022/taiga-ui-legacy-components-input-date-range.mjs.map +0 -1
  116. package/fesm2022/taiga-ui-legacy-components-input-date-time.mjs +0 -459
  117. package/fesm2022/taiga-ui-legacy-components-input-date-time.mjs.map +0 -1
  118. package/fesm2022/taiga-ui-legacy-components-input-month-range.mjs +0 -221
  119. package/fesm2022/taiga-ui-legacy-components-input-month-range.mjs.map +0 -1
  120. package/fesm2022/taiga-ui-legacy-components-input-number.mjs +0 -375
  121. package/fesm2022/taiga-ui-legacy-components-input-number.mjs.map +0 -1
  122. package/fesm2022/taiga-ui-legacy-components-input-range.mjs +0 -261
  123. package/fesm2022/taiga-ui-legacy-components-input-range.mjs.map +0 -1
  124. package/fesm2022/taiga-ui-legacy-components-input-slider.mjs +0 -199
  125. package/fesm2022/taiga-ui-legacy-components-input-slider.mjs.map +0 -1
  126. package/fesm2022/taiga-ui-legacy-components-input.mjs +0 -156
  127. package/fesm2022/taiga-ui-legacy-components-input.mjs.map +0 -1
  128. package/fesm2022/taiga-ui-legacy-components-primitive-textfield.mjs +0 -454
  129. package/fesm2022/taiga-ui-legacy-components-primitive-textfield.mjs.map +0 -1
  130. package/fesm2022/taiga-ui-legacy-components-select-option.mjs +0 -88
  131. package/fesm2022/taiga-ui-legacy-components-select-option.mjs.map +0 -1
  132. package/fesm2022/taiga-ui-legacy-components-select.mjs +0 -345
  133. package/fesm2022/taiga-ui-legacy-components-select.mjs.map +0 -1
  134. package/fesm2022/taiga-ui-legacy-components-tooltip.mjs +0 -53
  135. package/fesm2022/taiga-ui-legacy-components-tooltip.mjs.map +0 -1
  136. package/fesm2022/taiga-ui-legacy-directives-legacy-dropdown-open-monitor.mjs +0 -49
  137. package/fesm2022/taiga-ui-legacy-directives-legacy-dropdown-open-monitor.mjs.map +0 -1
  138. package/fesm2022/taiga-ui-legacy-directives-textfield-controller.mjs +0 -397
  139. package/fesm2022/taiga-ui-legacy-directives-textfield-controller.mjs.map +0 -1
  140. package/fesm2022/taiga-ui-legacy-directives-unfinished-validator.mjs +0 -48
  141. package/fesm2022/taiga-ui-legacy-directives-unfinished-validator.mjs.map +0 -1
  142. package/fesm2022/taiga-ui-legacy-directives-value-accessor.mjs +0 -44
  143. package/fesm2022/taiga-ui-legacy-directives-value-accessor.mjs.map +0 -1
  144. package/fesm2022/taiga-ui-legacy-directives-wrapper.mjs +0 -99
  145. package/fesm2022/taiga-ui-legacy-directives-wrapper.mjs.map +0 -1
  146. package/fesm2022/taiga-ui-legacy-directives.mjs +0 -10
  147. package/fesm2022/taiga-ui-legacy-directives.mjs.map +0 -1
  148. package/fesm2022/taiga-ui-legacy-tokens.mjs +0 -384
  149. package/fesm2022/taiga-ui-legacy-tokens.mjs.map +0 -1
  150. package/fesm2022/taiga-ui-legacy-utils.mjs +0 -262
  151. package/fesm2022/taiga-ui-legacy-utils.mjs.map +0 -1
  152. package/styles/mixins/mixins.less +0 -239
  153. package/styles/mixins/mixins.scss +0 -224
  154. package/styles/mixins/textfield.less +0 -324
  155. package/styles/mixins/textfield.scss +0 -308
  156. package/styles/taiga-ui-local.less +0 -3
  157. package/styles/taiga-ui-local.scss +0 -3
  158. package/tokens/countries-masks.d.ts +0 -9
  159. package/tokens/focusable-item-accessor.d.ts +0 -25
  160. package/tokens/fonts-ready.d.ts +0 -6
  161. package/tokens/icons.d.ts +0 -6
  162. package/tokens/index.d.ts +0 -14
  163. package/tokens/is-apple.d.ts +0 -6
  164. package/tokens/is-chromium.d.ts +0 -6
  165. package/tokens/is-firefox.d.ts +0 -6
  166. package/tokens/is-stackblitz.d.ts +0 -5
  167. package/tokens/month-formatter.d.ts +0 -10
  168. package/tokens/sanitizer.d.ts +0 -6
  169. package/tokens/textfield-appearance.d.ts +0 -7
  170. package/tokens/textfield-host.d.ts +0 -23
  171. package/tokens/touch-supported.d.ts +0 -5
  172. package/tokens/value-accessor.d.ts +0 -7
  173. package/utils/capitalize-first-letter.d.ts +0 -4
  174. package/utils/date-mode-maskito-adapter.d.ts +0 -6
  175. package/utils/format-phone.d.ts +0 -30
  176. package/utils/get-border.d.ts +0 -5
  177. package/utils/get-max-allowed-phone-length.d.ts +0 -24
  178. package/utils/get-safe-area-size.d.ts +0 -7
  179. package/utils/icons-path-factory.d.ts +0 -13
  180. package/utils/index.d.ts +0 -13
  181. package/utils/is-presumed-html-string.d.ts +0 -4
  182. package/utils/iso-to-country-code.d.ts +0 -13
  183. package/utils/not-kz-region.d.ts +0 -20
  184. package/utils/process-icon.d.ts +0 -4
  185. package/utils/specific-dropdown-controllers.d.ts +0 -4
  186. package/utils/status.d.ts +0 -4
@@ -1,17 +0,0 @@
1
- import { type TuiContext } from '@taiga-ui/cdk/types';
2
- import { type TuiSizeL, type TuiSizeS } from '@taiga-ui/core/types';
3
- import { type PolymorpheusContent } from '@taiga-ui/polymorpheus';
4
- export interface TuiTextfieldOptions {
5
- readonly hintOnDisabled: boolean;
6
- readonly iconCleaner: PolymorpheusContent<TuiContext<TuiSizeL | TuiSizeS>>;
7
- }
8
- /**
9
- * @deprecated: drop in v5.0
10
- * Default values for primitive textfield options
11
- */
12
- export declare const TUI_TEXTFIELD_DEFAULT_OPTIONS: TuiTextfieldOptions;
13
- /**
14
- * @deprecated: drop in v5.0
15
- * Default parameters for textfield
16
- */
17
- export declare const TUI_TEXTFIELD_OPTIONS: import("@angular/core").InjectionToken<TuiTextfieldOptions>, tuiTextfieldOptionsProvider: (item: Partial<TuiTextfieldOptions> | (() => Partial<TuiTextfieldOptions>)) => import("@angular/core").FactoryProvider;
@@ -1,2 +0,0 @@
1
- export * from './unfinished.validator';
2
- export * from './unfinished-validator.directive';
@@ -1,10 +0,0 @@
1
- import { type Validator } from '@angular/forms';
2
- import * as i0 from "@angular/core";
3
- export declare class TuiUnfinishedValidator implements Validator {
4
- private readonly default;
5
- private readonly injector;
6
- tuiUnfinishedValidator: string;
7
- readonly validate: import("@angular/forms").ValidatorFn;
8
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiUnfinishedValidator, never>;
9
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiUnfinishedValidator, "[tuiUnfinishedValidator]", never, { "tuiUnfinishedValidator": { "alias": "tuiUnfinishedValidator"; "required": false; }; }, {}, never, never, true, never>;
10
- }
@@ -1,4 +0,0 @@
1
- import { type ValidatorFn } from '@angular/forms';
2
- import { type TuiFocusableElementAccessor } from '@taiga-ui/legacy/tokens';
3
- import { type PolymorpheusContent } from '@taiga-ui/polymorpheus';
4
- export declare function tuiCreateUnfinishedValidator(nativeInputGetter: () => TuiFocusableElementAccessor, message: PolymorpheusContent): ValidatorFn;
@@ -1,3 +0,0 @@
1
- export * from './value-accessor.directive';
2
- export * from './value-accessor.module';
3
- export * from './value-accessor.provider';
@@ -1,5 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- export declare class TuiValueAccessorDirective {
3
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiValueAccessorDirective, never>;
4
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiValueAccessorDirective, "[tuiValueAccessor]", never, {}, {}, never, never, false, never>;
5
- }
@@ -1,7 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- import * as i1 from "./value-accessor.directive";
3
- export declare class TuiValueAccessorModule {
4
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiValueAccessorModule, never>;
5
- static ɵmod: i0.ɵɵNgModuleDeclaration<TuiValueAccessorModule, [typeof i1.TuiValueAccessorDirective], never, [typeof i1.TuiValueAccessorDirective]>;
6
- static ɵinj: i0.ɵɵInjectorDeclaration<TuiValueAccessorModule>;
7
- }
@@ -1,2 +0,0 @@
1
- import { type FactoryProvider } from '@angular/core';
2
- export declare const TUI_VALUE_ACCESSOR_PROVIDER: FactoryProvider;
@@ -1,19 +0,0 @@
1
- Wrapper is organized with 2 layers:
2
-
3
- 1. element itself, that serves as a background
4
- 2. `:after` pseudo element that serves as overlay
5
-
6
- Overlay is click-through and typically used for focus ring
7
-
8
- To apply styles use following mixins from
9
-
10
- ```less
11
- @import '@taiga-ui/core/styles/taiga-ui-local.less';
12
- ```
13
-
14
- 1. `.wrapper-hover(@ruleset)`
15
- 2. `.wrapper-active(@ruleset)`
16
- 3. `.wrapper-readonly(@ruleset)`
17
- 4. `.wrapper-disabled(@ruleset)`
18
- 5. `.wrapper-focus(@ruleset)`
19
- 6. `.wrapper-invalid(@ruleset)`
@@ -1,2 +0,0 @@
1
- export * from './wrapper.directive';
2
- export * from './wrapper.module';
@@ -1,22 +0,0 @@
1
- import { type TuiLooseUnion } from '@taiga-ui/cdk/types';
2
- import { type TuiInteractiveState } from '@taiga-ui/core/types';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * @deprecated: drop in v5.0
6
- */
7
- export declare class TuiWrapperDirective {
8
- disabled: boolean;
9
- readOnly: boolean;
10
- hover: boolean | null;
11
- active: boolean | null;
12
- focus: boolean;
13
- invalid: boolean;
14
- appearance: string;
15
- protected get computedInvalid(): boolean;
16
- protected get computedFocused(): boolean;
17
- protected get interactiveState(): TuiLooseUnion<TuiInteractiveState> | null;
18
- protected get noHover(): boolean;
19
- protected get noActive(): boolean;
20
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiWrapperDirective, never>;
21
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiWrapperDirective, "[tuiWrapper]", never, { "disabled": { "alias": "disabled"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; "hover": { "alias": "hover"; "required": false; }; "active": { "alias": "active"; "required": false; }; "focus": { "alias": "focus"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; }, {}, never, never, false, never>;
22
- }
@@ -1,10 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- import * as i1 from "./wrapper.directive";
3
- /**
4
- * @deprecated: drop in v5.0
5
- */
6
- export declare class TuiWrapperModule {
7
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiWrapperModule, never>;
8
- static ɵmod: i0.ɵɵNgModuleDeclaration<TuiWrapperModule, [typeof i1.TuiWrapperDirective], never, [typeof i1.TuiWrapperDirective]>;
9
- static ɵinj: i0.ɵɵInjectorDeclaration<TuiWrapperModule>;
10
- }
@@ -1,413 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { EventEmitter, Output, Input, Directive, inject, DestroyRef, ChangeDetectorRef, TemplateRef, ViewChild } from '@angular/core';
3
- import { tuiInjectId } from '@taiga-ui/cdk/services';
4
- import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
5
- import { TuiDataListDirective } from '@taiga-ui/core/components/data-list';
6
- import { TUI_ITEMS_HANDLERS } from '@taiga-ui/kit/tokens';
7
- import { TUI_TEXTFIELD_HOST } from '@taiga-ui/legacy/tokens';
8
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
9
- import { NgControl, NgModel } from '@angular/forms';
10
- import { TuiValueTransformer, TuiControl } from '@taiga-ui/cdk/classes';
11
- import { EMPTY_FUNCTION } from '@taiga-ui/cdk/constants';
12
- import { tuiIsPresent, tuiProvide } from '@taiga-ui/cdk/utils/miscellaneous';
13
- import { Subject, delay, startWith, map, filter, distinctUntilChanged, switchMap, merge, EMPTY } from 'rxjs';
14
-
15
- const TUI = 'tui_interactive_';
16
- /**
17
- * @deprecated: drop in v5.0
18
- */
19
- class AbstractTuiInteractive {
20
- constructor() {
21
- this.autoIdString = `${TUI}${AbstractTuiInteractive.autoId++}${Date.now()}`;
22
- this.focusVisible = false;
23
- this.pseudoHover = null;
24
- this.pseudoActive = null;
25
- this.pseudoFocus = null;
26
- /**
27
- * Determines if component is focusable with keyboard.
28
- */
29
- this.focusable = true;
30
- this.nativeId = '';
31
- /**
32
- * Emits 'true' on focus and 'false' on blur.
33
- */
34
- this.focusedChange = new EventEmitter();
35
- this.focusVisibleChange = new EventEmitter();
36
- }
37
- static { this.autoId = 0; }
38
- get computedDisabled() {
39
- return this.disabled;
40
- }
41
- get computedFocused() {
42
- return !this.computedDisabled && (this.pseudoFocus ?? this.focused);
43
- }
44
- get computedFocusVisible() {
45
- return !this.computedDisabled && (this.pseudoFocus ?? this.focusVisible);
46
- }
47
- get computedFocusable() {
48
- return !this.computedDisabled && (this.focusable || this.focused);
49
- }
50
- // TODO: 3.0 Consider removing since native input is exposed
51
- get id() {
52
- return this.nativeId || this.autoIdString;
53
- }
54
- updateFocused(focused) {
55
- this.focusedChange.emit(focused);
56
- }
57
- updateFocusVisible(focusVisible) {
58
- if (this.focusVisible === focusVisible) {
59
- return;
60
- }
61
- this.focusVisible = focusVisible;
62
- this.focusVisibleChange.emit(focusVisible);
63
- }
64
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiInteractive, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
65
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: AbstractTuiInteractive, isStandalone: false, inputs: { pseudoHover: "pseudoHover", pseudoActive: "pseudoActive", pseudoFocus: "pseudoFocus", focusable: "focusable", nativeId: "nativeId" }, outputs: { focusedChange: "focusedChange", focusVisibleChange: "focusVisibleChange" }, host: { properties: { "attr.data-focused": "pseudoFocus", "class._disabled": "computedDisabled", "class._focused": "computedFocused", "class._focus-visible": "computedFocusVisible" } }, ngImport: i0 }); }
66
- }
67
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiInteractive, decorators: [{
68
- type: Directive,
69
- args: [{
70
- standalone: false,
71
- host: {
72
- '[attr.data-focused]': 'pseudoFocus',
73
- '[class._disabled]': 'computedDisabled',
74
- '[class._focused]': 'computedFocused',
75
- '[class._focus-visible]': 'computedFocusVisible',
76
- },
77
- }]
78
- }], propDecorators: { pseudoHover: [{
79
- type: Input
80
- }], pseudoActive: [{
81
- type: Input
82
- }], pseudoFocus: [{
83
- type: Input
84
- }], focusable: [{
85
- type: Input
86
- }], nativeId: [{
87
- type: Input
88
- }], focusedChange: [{
89
- type: Output
90
- }], focusVisibleChange: [{
91
- type: Output
92
- }] } });
93
-
94
- /// <reference types="@taiga-ui/tsconfig/ng-dev-mode" />
95
- /**
96
- * @deprecated: drop in v5.0
97
- * Basic ControlValueAccessor class to build form components upon
98
- */
99
- class AbstractTuiControl extends AbstractTuiInteractive {
100
- constructor() {
101
- super();
102
- this.ngControl = inject(NgControl, { optional: true });
103
- this.refresh$ = new Subject();
104
- this.onTouched = EMPTY_FUNCTION;
105
- this.onChange = EMPTY_FUNCTION;
106
- this.fallbackValue = this.getFallbackValue();
107
- this.destroyRef = inject(DestroyRef);
108
- this.cdr = inject(ChangeDetectorRef);
109
- this.valueTransformer = inject(TuiValueTransformer, { optional: true });
110
- this.readOnly = false;
111
- this.pseudoInvalid = null;
112
- // Workaround for legacy control to notify of internal change in case updateOn: 'blur' is used
113
- this.update$ = new Subject();
114
- if (ngDevMode && this.ngControl === null) {
115
- console.assert(false, `NgControl not injected in ${this.constructor.name}!\n`, 'Use [(ngModel)] or [formControl] or formControlName for correct work.');
116
- }
117
- if (this.ngControl) {
118
- this.ngControl.valueAccessor = this;
119
- }
120
- }
121
- get computedInvalid() {
122
- return (this.interactive &&
123
- (this.pseudoInvalid !== null
124
- ? this.pseudoInvalid
125
- : this.touched && this.invalid));
126
- }
127
- get value() {
128
- return this.previousInternalValue ?? this.fallbackValue;
129
- }
130
- set value(value) {
131
- this.updateValue(value);
132
- this.update$.next();
133
- }
134
- get safeCurrentValue() {
135
- return this.rawValue ?? this.fallbackValue;
136
- }
137
- get invalid() {
138
- return this.safeNgControlData(({ invalid }) => invalid, false);
139
- }
140
- get valid() {
141
- return this.safeNgControlData(({ valid }) => valid, false);
142
- }
143
- get touched() {
144
- return this.safeNgControlData(({ touched }) => touched, false);
145
- }
146
- get disabled() {
147
- return this.safeNgControlData(({ disabled }) => disabled, false);
148
- }
149
- get interactive() {
150
- return !this.readOnly && !this.computedDisabled;
151
- }
152
- get control() {
153
- return this.safeNgControlData(({ control }) => control, null);
154
- }
155
- get computedName() {
156
- return this.controlName?.toString() ?? null;
157
- }
158
- get controlName() {
159
- return this.ngControl?.name?.toString() ?? null;
160
- }
161
- ngOnInit() {
162
- this.refresh$
163
- .pipe(delay(0), startWith(null), map(() => this.ngControl?.control), filter(tuiIsPresent), distinctUntilChanged(), switchMap((control) => merge(control.valueChanges, control.statusChanges, control.events || EMPTY)), takeUntilDestroyed(this.destroyRef))
164
- .subscribe(() => {
165
- this.refreshLocalValue(this.safeCurrentValue);
166
- });
167
- }
168
- checkControlUpdate() {
169
- this.cdr.markForCheck();
170
- }
171
- registerOnChange(onChange) {
172
- this.onChange = (componentValue) => {
173
- onChange(this.toControlValue(componentValue));
174
- };
175
- this.refresh$.next();
176
- }
177
- registerOnTouched(onTouched) {
178
- this.onTouched = onTouched;
179
- }
180
- setDisabledState() {
181
- this.checkControlUpdate();
182
- }
183
- writeValue(value) {
184
- const controlValue = this.ngControl instanceof NgModel && this.previousInternalValue === undefined
185
- ? this.ngControl.model
186
- : value;
187
- this.refreshLocalValue(this.fromControlValue(controlValue));
188
- }
189
- updateFocused(focused) {
190
- if (!focused) {
191
- this.controlMarkAsTouched();
192
- }
193
- super.updateFocused(focused);
194
- }
195
- /**
196
- * @deprecated use `value` setter
197
- */
198
- updateValue(value) {
199
- if (this.disabled || this.valueIdenticalComparator(this.value, value)) {
200
- return;
201
- }
202
- this.previousInternalValue = value;
203
- this.controlSetValue(value);
204
- }
205
- valueIdenticalComparator(oldValue, newValue) {
206
- return oldValue === newValue;
207
- }
208
- get rawValue() {
209
- const { ngControl } = this;
210
- if (ngControl === null) {
211
- return undefined;
212
- }
213
- const controlValue = ngControl instanceof NgModel && this.previousInternalValue === undefined
214
- ? ngControl.viewModel
215
- : ngControl.value;
216
- return this.fromControlValue(controlValue);
217
- }
218
- safeNgControlData(extractor, defaultFieldValue) {
219
- return (this.ngControl && extractor(this.ngControl)) ?? defaultFieldValue;
220
- }
221
- controlMarkAsTouched() {
222
- this.onTouched();
223
- this.checkControlUpdate();
224
- }
225
- controlSetValue(value) {
226
- this.onChange(value);
227
- this.checkControlUpdate();
228
- }
229
- refreshLocalValue(value) {
230
- this.previousInternalValue = value;
231
- this.checkControlUpdate();
232
- }
233
- fromControlValue(controlValue) {
234
- return this.valueTransformer
235
- ? this.valueTransformer.fromControlValue(controlValue)
236
- : controlValue;
237
- }
238
- toControlValue(componentValue) {
239
- return this.valueTransformer
240
- ? this.valueTransformer.toControlValue(componentValue)
241
- : componentValue;
242
- }
243
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiControl, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
244
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: AbstractTuiControl, isStandalone: false, inputs: { readOnly: "readOnly", pseudoInvalid: "pseudoInvalid" }, host: { properties: { "class._readonly": "readOnly", "class._invalid": "computedInvalid" } }, usesInheritance: true, ngImport: i0 }); }
245
- }
246
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiControl, decorators: [{
247
- type: Directive,
248
- args: [{
249
- standalone: false,
250
- host: {
251
- '[class._readonly]': 'readOnly',
252
- '[class._invalid]': 'computedInvalid',
253
- },
254
- }]
255
- }], ctorParameters: () => [], propDecorators: { readOnly: [{
256
- type: Input
257
- }], pseudoInvalid: [{
258
- type: Input
259
- }] } });
260
- function tuiAsControl(control) {
261
- return [tuiProvide(AbstractTuiControl, control), tuiProvide(TuiControl, control)];
262
- }
263
-
264
- /**
265
- * @deprecated: drop in v5.0
266
- */
267
- class AbstractTuiNativeSelect {
268
- constructor() {
269
- this.datalist = null;
270
- this.autoId = tuiInjectId();
271
- this.el = tuiInjectElement();
272
- this.host = inject(TUI_TEXTFIELD_HOST);
273
- this.control = inject(AbstractTuiControl);
274
- this.itemsHandlers = inject(TUI_ITEMS_HANDLERS);
275
- this.disabledItemHandler = null;
276
- this.placeholder = '';
277
- }
278
- get id() {
279
- return this.el.id || this.autoId;
280
- }
281
- get emptyOption() {
282
- return !!this.placeholder && !this.control.value;
283
- }
284
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiNativeSelect, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
285
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: AbstractTuiNativeSelect, isStandalone: false, inputs: { disabledItemHandler: "disabledItemHandler", placeholder: "placeholder" }, host: { properties: { "id": "id" } }, viewQueries: [{ propertyName: "datalist", first: true, predicate: TuiDataListDirective, descendants: true, read: TemplateRef, static: true }], ngImport: i0 }); }
286
- }
287
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiNativeSelect, decorators: [{
288
- type: Directive,
289
- args: [{
290
- standalone: false,
291
- host: {
292
- '[id]': 'id',
293
- },
294
- }]
295
- }], propDecorators: { datalist: [{
296
- type: ViewChild,
297
- args: [TuiDataListDirective, { read: TemplateRef, static: true }]
298
- }], disabledItemHandler: [{
299
- type: Input
300
- }], placeholder: [{
301
- type: Input
302
- }] } });
303
-
304
- /**
305
- * @deprecated: drop in v5.0
306
- */
307
- class AbstractTuiTextfieldHost {
308
- constructor() {
309
- this.host = inject(AbstractTuiControl, { optional: true });
310
- this.inputMode = 'text';
311
- }
312
- get readOnly() {
313
- return this.host.readOnly;
314
- }
315
- get disabled() {
316
- return this.host.computedDisabled;
317
- }
318
- get invalid() {
319
- return this.host.computedInvalid;
320
- }
321
- get focusable() {
322
- return this.host.computedFocusable;
323
- }
324
- get value() {
325
- return this.host.value?.toString() || '';
326
- }
327
- process(_input) { }
328
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiTextfieldHost, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
329
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: AbstractTuiTextfieldHost, isStandalone: true, ngImport: i0 }); }
330
- }
331
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiTextfieldHost, decorators: [{
332
- type: Directive
333
- }] });
334
-
335
- class AbstractTuiController {
336
- constructor() {
337
- this.change$ = new Subject();
338
- }
339
- ngOnChanges() {
340
- this.change$.next();
341
- }
342
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiController, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
343
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: AbstractTuiController, isStandalone: true, usesOnChanges: true, ngImport: i0 }); }
344
- }
345
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiController, decorators: [{
346
- type: Directive
347
- }] });
348
-
349
- /**
350
- * @deprecated: drop in v5.0
351
- */
352
- class AbstractTuiMultipleControl extends AbstractTuiControl {
353
- clear() {
354
- this.value = [];
355
- }
356
- getFallbackValue() {
357
- return [];
358
- }
359
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiMultipleControl, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
360
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: AbstractTuiMultipleControl, isStandalone: true, usesInheritance: true, ngImport: i0 }); }
361
- }
362
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiMultipleControl, decorators: [{
363
- type: Directive
364
- }] });
365
-
366
- /**
367
- * @deprecated: drop in v5.0
368
- */
369
- class TuiNamedDay {
370
- constructor(day, name, displayDay = day) {
371
- this.day = day;
372
- this.name = name;
373
- this.displayDay = displayDay;
374
- }
375
- toString() {
376
- return this.name;
377
- }
378
- }
379
-
380
- /**
381
- * @deprecated: drop in v5.0
382
- */
383
- class AbstractTuiNullableControl extends AbstractTuiControl {
384
- getFallbackValue() {
385
- return null;
386
- }
387
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiNullableControl, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
388
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: AbstractTuiNullableControl, isStandalone: true, usesInheritance: true, ngImport: i0 }); }
389
- }
390
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiNullableControl, decorators: [{
391
- type: Directive
392
- }] });
393
-
394
- /**
395
- * @deprecated: drop in v5.0
396
- * Wrapper around an item to add `toString()` method
397
- */
398
- class TuiStringifiableItem {
399
- constructor(item, stringify) {
400
- this.item = item;
401
- this.stringify = stringify;
402
- }
403
- toString() {
404
- return this.stringify(this.item);
405
- }
406
- }
407
-
408
- /**
409
- * Generated bundle index. Do not edit.
410
- */
411
-
412
- export { AbstractTuiControl, AbstractTuiController, AbstractTuiInteractive, AbstractTuiMultipleControl, AbstractTuiNativeSelect, AbstractTuiNullableControl, AbstractTuiTextfieldHost, TuiNamedDay, TuiStringifiableItem, tuiAsControl };
413
- //# sourceMappingURL=taiga-ui-legacy-classes.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"taiga-ui-legacy-classes.mjs","sources":["../../../projects/legacy/classes/interactive.ts","../../../projects/legacy/classes/control.ts","../../../projects/legacy/classes/abstract-native-select.ts","../../../projects/legacy/classes/abstract-textfield-host.ts","../../../projects/legacy/classes/controller.ts","../../../projects/legacy/classes/multiple-control.ts","../../../projects/legacy/classes/named-day.ts","../../../projects/legacy/classes/nullable-control.ts","../../../projects/legacy/classes/stringifiable-item.ts","../../../projects/legacy/classes/taiga-ui-legacy-classes.ts"],"sourcesContent":["import {Directive, EventEmitter, Input, Output} from '@angular/core';\n\nconst TUI = 'tui_interactive_';\n\n/**\n * @deprecated: drop in v5.0\n */\n@Directive({\n standalone: false,\n host: {\n '[attr.data-focused]': 'pseudoFocus',\n '[class._disabled]': 'computedDisabled',\n '[class._focused]': 'computedFocused',\n '[class._focus-visible]': 'computedFocusVisible',\n },\n})\nexport abstract class AbstractTuiInteractive {\n private static autoId = 0;\n\n public abstract disabled: boolean;\n\n public abstract focused: boolean;\n\n private readonly autoIdString: string = `${TUI}${AbstractTuiInteractive.autoId++}${Date.now()}`;\n\n protected focusVisible = false;\n\n @Input()\n public pseudoHover: boolean | null = null;\n\n @Input()\n public pseudoActive: boolean | null = null;\n\n @Input()\n public pseudoFocus: boolean | null = null;\n\n /**\n * Determines if component is focusable with keyboard.\n */\n @Input()\n public focusable = true;\n\n @Input()\n public nativeId = '';\n\n /**\n * Emits 'true' on focus and 'false' on blur.\n */\n @Output()\n public readonly focusedChange = new EventEmitter<boolean>();\n\n @Output()\n public readonly focusVisibleChange = new EventEmitter<boolean>();\n\n public get computedDisabled(): boolean {\n return this.disabled;\n }\n\n public get computedFocused(): boolean {\n return !this.computedDisabled && (this.pseudoFocus ?? this.focused);\n }\n\n public get computedFocusVisible(): boolean {\n return !this.computedDisabled && (this.pseudoFocus ?? this.focusVisible);\n }\n\n public get computedFocusable(): boolean {\n return !this.computedDisabled && (this.focusable || this.focused);\n }\n\n // TODO: 3.0 Consider removing since native input is exposed\n public get id(): string {\n return this.nativeId || this.autoIdString;\n }\n\n protected updateFocused(focused: boolean): void {\n this.focusedChange.emit(focused);\n }\n\n protected updateFocusVisible(focusVisible: boolean): void {\n if (this.focusVisible === focusVisible) {\n return;\n }\n\n this.focusVisible = focusVisible;\n this.focusVisibleChange.emit(focusVisible);\n }\n}\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\nimport {\n ChangeDetectorRef,\n DestroyRef,\n Directive,\n inject,\n Input,\n type OnInit,\n type Provider,\n type Type,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {\n type AbstractControl,\n type ControlValueAccessor,\n NgControl,\n NgModel,\n} from '@angular/forms';\nimport {TuiControl, TuiValueTransformer} from '@taiga-ui/cdk/classes';\nimport {EMPTY_FUNCTION} from '@taiga-ui/cdk/constants';\nimport {tuiIsPresent, tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n delay,\n distinctUntilChanged,\n EMPTY,\n filter,\n map,\n merge,\n startWith,\n Subject,\n switchMap,\n} from 'rxjs';\n\nimport {AbstractTuiInteractive} from './interactive';\n\n/**\n * @deprecated: drop in v5.0\n * Basic ControlValueAccessor class to build form components upon\n */\n@Directive({\n standalone: false,\n host: {\n '[class._readonly]': 'readOnly',\n '[class._invalid]': 'computedInvalid',\n },\n})\nexport abstract class AbstractTuiControl<T>\n extends AbstractTuiInteractive\n implements OnInit, ControlValueAccessor\n{\n private readonly ngControl = inject(NgControl, {optional: true});\n private previousInternalValue?: T | null;\n private readonly refresh$ = new Subject<void>();\n\n protected onTouched = EMPTY_FUNCTION;\n protected onChange = EMPTY_FUNCTION;\n protected readonly fallbackValue = this.getFallbackValue();\n protected destroyRef = inject(DestroyRef);\n protected readonly cdr = inject(ChangeDetectorRef);\n protected readonly valueTransformer = inject<TuiValueTransformer<T>>(\n TuiValueTransformer,\n {optional: true},\n );\n\n @Input()\n public readOnly = false;\n\n @Input()\n public pseudoInvalid: boolean | null = null;\n\n // Workaround for legacy control to notify of internal change in case updateOn: 'blur' is used\n public readonly update$ = new Subject<void>();\n\n constructor() {\n super();\n\n if (ngDevMode && this.ngControl === null) {\n console.assert(\n false,\n `NgControl not injected in ${this.constructor.name}!\\n`,\n 'Use [(ngModel)] or [formControl] or formControlName for correct work.',\n );\n }\n\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n protected abstract getFallbackValue(): T;\n\n public get computedInvalid(): boolean {\n return (\n this.interactive &&\n (this.pseudoInvalid !== null\n ? this.pseudoInvalid\n : this.touched && this.invalid)\n );\n }\n\n public get value(): T {\n return this.previousInternalValue ?? this.fallbackValue;\n }\n\n public set value(value: T) {\n this.updateValue(value);\n this.update$.next();\n }\n\n public get safeCurrentValue(): T {\n return this.rawValue ?? this.fallbackValue;\n }\n\n public get invalid(): boolean {\n return this.safeNgControlData<boolean>(({invalid}) => invalid, false);\n }\n\n public get valid(): boolean {\n return this.safeNgControlData<boolean>(({valid}) => valid, false);\n }\n\n public get touched(): boolean {\n return this.safeNgControlData<boolean>(({touched}) => touched, false);\n }\n\n public get disabled(): boolean {\n return this.safeNgControlData<boolean>(({disabled}) => disabled, false);\n }\n\n public get interactive(): boolean {\n return !this.readOnly && !this.computedDisabled;\n }\n\n public get control(): AbstractControl | null {\n return this.safeNgControlData<AbstractControl | null>(\n ({control}) => control,\n null,\n );\n }\n\n public get computedName(): string | null {\n return this.controlName?.toString() ?? null;\n }\n\n public get controlName(): string | null {\n return this.ngControl?.name?.toString() ?? null;\n }\n\n public ngOnInit(): void {\n this.refresh$\n .pipe(\n delay(0),\n startWith(null),\n map(() => this.ngControl?.control),\n filter(tuiIsPresent),\n distinctUntilChanged(),\n switchMap((control) =>\n merge(\n control.valueChanges,\n control.statusChanges,\n (control as any).events || EMPTY,\n ),\n ),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.refreshLocalValue(this.safeCurrentValue);\n });\n }\n\n public checkControlUpdate(): void {\n this.cdr.markForCheck();\n }\n\n public registerOnChange(onChange: (value: unknown) => void): void {\n this.onChange = (componentValue: T) => {\n onChange(this.toControlValue(componentValue));\n };\n\n this.refresh$.next();\n }\n\n public registerOnTouched(onTouched: () => void): void {\n this.onTouched = onTouched;\n }\n\n public setDisabledState(): void {\n this.checkControlUpdate();\n }\n\n public writeValue(value: T | null): void {\n const controlValue =\n this.ngControl instanceof NgModel && this.previousInternalValue === undefined\n ? this.ngControl.model\n : value;\n\n this.refreshLocalValue(this.fromControlValue(controlValue));\n }\n\n protected override updateFocused(focused: boolean): void {\n if (!focused) {\n this.controlMarkAsTouched();\n }\n\n super.updateFocused(focused);\n }\n\n /**\n * @deprecated use `value` setter\n */\n protected updateValue(value: T): void {\n if (this.disabled || this.valueIdenticalComparator(this.value, value)) {\n return;\n }\n\n this.previousInternalValue = value;\n this.controlSetValue(value);\n }\n\n protected valueIdenticalComparator(oldValue: T, newValue: T): boolean {\n return oldValue === newValue;\n }\n\n private get rawValue(): T | undefined {\n const {ngControl} = this;\n\n if (ngControl === null) {\n return undefined;\n }\n\n const controlValue =\n ngControl instanceof NgModel && this.previousInternalValue === undefined\n ? ngControl.viewModel\n : ngControl.value;\n\n return this.fromControlValue(controlValue);\n }\n\n private safeNgControlData<T>(\n extractor: (ngControl: NgControl) => T | null | undefined,\n defaultFieldValue: T,\n ): T {\n return (this.ngControl && extractor(this.ngControl)) ?? defaultFieldValue;\n }\n\n private controlMarkAsTouched(): void {\n this.onTouched();\n this.checkControlUpdate();\n }\n\n private controlSetValue(value: T): void {\n this.onChange(value);\n this.checkControlUpdate();\n }\n\n private refreshLocalValue(value: T | null): void {\n this.previousInternalValue = value;\n this.checkControlUpdate();\n }\n\n private fromControlValue(controlValue: unknown): T {\n return this.valueTransformer\n ? this.valueTransformer.fromControlValue(controlValue)\n : (controlValue as T);\n }\n\n private toControlValue(componentValue: T): unknown {\n return this.valueTransformer\n ? this.valueTransformer.toControlValue(componentValue)\n : componentValue;\n }\n}\n\nexport function tuiAsControl<T>(control: Type<AbstractTuiControl<T>>): Provider[] {\n return [tuiProvide(AbstractTuiControl, control), tuiProvide(TuiControl, control)];\n}\n","import {Directive, inject, Input, TemplateRef, ViewChild} from '@angular/core';\nimport {tuiInjectId} from '@taiga-ui/cdk/services';\nimport {type TuiBooleanHandler} from '@taiga-ui/cdk/types';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiDataListDirective} from '@taiga-ui/core/components/data-list';\nimport {TUI_ITEMS_HANDLERS} from '@taiga-ui/kit/tokens';\nimport {TUI_TEXTFIELD_HOST, type TuiTextfieldHost} from '@taiga-ui/legacy/tokens';\n\nimport {AbstractTuiControl} from './control';\n\n/**\n * @deprecated: drop in v5.0\n */\n@Directive({\n standalone: false,\n host: {\n '[id]': 'id',\n },\n})\nexport abstract class AbstractTuiNativeSelect<H = TuiTextfieldHost, T = string> {\n @ViewChild(TuiDataListDirective, {read: TemplateRef, static: true})\n protected readonly datalist: TemplateRef<any> | null = null;\n\n protected readonly autoId = tuiInjectId();\n protected readonly el = tuiInjectElement<HTMLSelectElement>();\n protected readonly host = inject<H>(TUI_TEXTFIELD_HOST);\n protected readonly control = inject(AbstractTuiControl);\n protected readonly itemsHandlers = inject(TUI_ITEMS_HANDLERS);\n\n @Input()\n public disabledItemHandler: TuiBooleanHandler<T> | null = null;\n\n @Input()\n public placeholder = '';\n\n protected get id(): string {\n return this.el.id || this.autoId;\n }\n\n protected get emptyOption(): boolean {\n return !!this.placeholder && !this.control.value;\n }\n}\n","import {Directive, inject} from '@angular/core';\nimport {type TuiTextfieldHost} from '@taiga-ui/legacy/tokens';\n\nimport {AbstractTuiControl} from './control';\n\n/**\n * @deprecated: drop in v5.0\n */\n@Directive()\nexport abstract class AbstractTuiTextfieldHost<T extends AbstractTuiControl<any>>\n implements TuiTextfieldHost\n{\n protected readonly host: T = inject<any>(AbstractTuiControl, {optional: true});\n\n public readonly inputMode: TuiTextfieldHost['inputMode'] = 'text';\n\n public abstract onValueChange(value: string): void;\n\n public get readOnly(): boolean {\n return this.host.readOnly;\n }\n\n public get disabled(): boolean {\n return this.host.computedDisabled;\n }\n\n public get invalid(): boolean {\n return this.host.computedInvalid;\n }\n\n public get focusable(): boolean {\n return this.host.computedFocusable;\n }\n\n public get value(): string {\n return this.host.value?.toString() || '';\n }\n\n public process(_input: HTMLInputElement): void {}\n}\n","import {Directive, type OnChanges} from '@angular/core';\nimport {Subject} from 'rxjs';\n\n@Directive()\nexport abstract class AbstractTuiController implements OnChanges {\n public readonly change$ = new Subject<void>();\n\n public ngOnChanges(): void {\n this.change$.next();\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {AbstractTuiControl} from './control';\n\n/**\n * @deprecated: drop in v5.0\n */\n@Directive()\nexport abstract class AbstractTuiMultipleControl<T> extends AbstractTuiControl<\n readonly T[]\n> {\n protected clear(): void {\n this.value = [];\n }\n\n protected getFallbackValue(): readonly T[] {\n return [];\n }\n}\n","import {type TuiDay} from '@taiga-ui/cdk/date-time';\n\n/**\n * @deprecated: drop in v5.0\n */\nexport class TuiNamedDay {\n constructor(\n public readonly day: TuiDay,\n private readonly name: string,\n public readonly displayDay: TuiDay = day,\n ) {}\n\n protected toString(): string {\n return this.name;\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {AbstractTuiControl} from './control';\n\n/**\n * @deprecated: drop in v5.0\n */\n@Directive()\nexport abstract class AbstractTuiNullableControl<T> extends AbstractTuiControl<T | null> {\n protected getFallbackValue(): T | null {\n return null;\n }\n}\n","import {type TuiStringHandler} from '@taiga-ui/cdk/types';\n\n/**\n * @deprecated: drop in v5.0\n * Wrapper around an item to add `toString()` method\n */\nexport class TuiStringifiableItem<T> {\n constructor(\n public readonly item: T,\n public readonly stringify: TuiStringHandler<T>,\n ) {}\n\n protected toString(): string {\n return this.stringify(this.item);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}