@taiga-ui/kit 3.22.0-dev.main-9b18d21 → 3.22.0-dev.main-29da1cb

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 (222) hide show
  1. package/abstract/abstract-native-select.d.ts +18 -0
  2. package/abstract/index.d.ts +1 -0
  3. package/abstract/package.json +10 -0
  4. package/abstract/taiga-ui-kit-abstract.d.ts +5 -0
  5. package/bundles/taiga-ui-kit-abstract.umd.js +87 -0
  6. package/bundles/taiga-ui-kit-abstract.umd.js.map +1 -0
  7. package/bundles/taiga-ui-kit-components-checkbox-block.umd.js +3 -2
  8. package/bundles/taiga-ui-kit-components-checkbox-block.umd.js.map +1 -1
  9. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js +3 -2
  10. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js.map +1 -1
  11. package/bundles/taiga-ui-kit-components-checkbox.umd.js +3 -2
  12. package/bundles/taiga-ui-kit-components-checkbox.umd.js.map +1 -1
  13. package/bundles/taiga-ui-kit-components-combo-box.umd.js +7 -6
  14. package/bundles/taiga-ui-kit-components-combo-box.umd.js.map +1 -1
  15. package/bundles/taiga-ui-kit-components-filter.umd.js +2 -2
  16. package/bundles/taiga-ui-kit-components-filter.umd.js.map +1 -1
  17. package/bundles/taiga-ui-kit-components-input-copy.umd.js +2 -2
  18. package/bundles/taiga-ui-kit-components-input-copy.umd.js.map +1 -1
  19. package/bundles/taiga-ui-kit-components-input-count.umd.js +5 -4
  20. package/bundles/taiga-ui-kit-components-input-count.umd.js.map +1 -1
  21. package/bundles/taiga-ui-kit-components-input-date-range.umd.js +16 -13
  22. package/bundles/taiga-ui-kit-components-input-date-range.umd.js.map +1 -1
  23. package/bundles/taiga-ui-kit-components-input-date-time.umd.js +4 -4
  24. package/bundles/taiga-ui-kit-components-input-date-time.umd.js.map +1 -1
  25. package/bundles/taiga-ui-kit-components-input-date.umd.js +6 -5
  26. package/bundles/taiga-ui-kit-components-input-date.umd.js.map +1 -1
  27. package/bundles/taiga-ui-kit-components-input-files.umd.js +5 -5
  28. package/bundles/taiga-ui-kit-components-input-files.umd.js.map +1 -1
  29. package/bundles/taiga-ui-kit-components-input-inline.umd.js +3 -2
  30. package/bundles/taiga-ui-kit-components-input-inline.umd.js.map +1 -1
  31. package/bundles/taiga-ui-kit-components-input-month-range.umd.js +3 -3
  32. package/bundles/taiga-ui-kit-components-input-month-range.umd.js.map +1 -1
  33. package/bundles/taiga-ui-kit-components-input-month.umd.js +2 -2
  34. package/bundles/taiga-ui-kit-components-input-month.umd.js.map +1 -1
  35. package/bundles/taiga-ui-kit-components-input-number.umd.js +4 -5
  36. package/bundles/taiga-ui-kit-components-input-number.umd.js.map +1 -1
  37. package/bundles/taiga-ui-kit-components-input-password.umd.js +2 -2
  38. package/bundles/taiga-ui-kit-components-input-password.umd.js.map +1 -1
  39. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js +7 -6
  40. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js.map +1 -1
  41. package/bundles/taiga-ui-kit-components-input-phone.umd.js +4 -4
  42. package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
  43. package/bundles/taiga-ui-kit-components-input-range.umd.js +1 -1
  44. package/bundles/taiga-ui-kit-components-input-range.umd.js.map +1 -1
  45. package/bundles/taiga-ui-kit-components-input-slider.umd.js +1 -1
  46. package/bundles/taiga-ui-kit-components-input-slider.umd.js.map +1 -1
  47. package/bundles/taiga-ui-kit-components-input-tag.umd.js +9 -9
  48. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  49. package/bundles/taiga-ui-kit-components-input-time.umd.js +6 -7
  50. package/bundles/taiga-ui-kit-components-input-time.umd.js.map +1 -1
  51. package/bundles/taiga-ui-kit-components-input-year.umd.js +2 -2
  52. package/bundles/taiga-ui-kit-components-input-year.umd.js.map +1 -1
  53. package/bundles/taiga-ui-kit-components-input.umd.js +2 -2
  54. package/bundles/taiga-ui-kit-components-input.umd.js.map +1 -1
  55. package/bundles/taiga-ui-kit-components-multi-select.umd.js +50 -84
  56. package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
  57. package/bundles/taiga-ui-kit-components-radio-block.umd.js +3 -2
  58. package/bundles/taiga-ui-kit-components-radio-block.umd.js.map +1 -1
  59. package/bundles/taiga-ui-kit-components-radio-labeled.umd.js +3 -2
  60. package/bundles/taiga-ui-kit-components-radio-labeled.umd.js.map +1 -1
  61. package/bundles/taiga-ui-kit-components-radio-list.umd.js +3 -2
  62. package/bundles/taiga-ui-kit-components-radio-list.umd.js.map +1 -1
  63. package/bundles/taiga-ui-kit-components-radio.umd.js +1 -1
  64. package/bundles/taiga-ui-kit-components-radio.umd.js.map +1 -1
  65. package/bundles/taiga-ui-kit-components-range.umd.js +2 -2
  66. package/bundles/taiga-ui-kit-components-range.umd.js.map +1 -1
  67. package/bundles/taiga-ui-kit-components-rating.umd.js +2 -2
  68. package/bundles/taiga-ui-kit-components-rating.umd.js.map +1 -1
  69. package/bundles/taiga-ui-kit-components-select.umd.js +38 -83
  70. package/bundles/taiga-ui-kit-components-select.umd.js.map +1 -1
  71. package/bundles/taiga-ui-kit-components-slider.umd.js +1 -1
  72. package/bundles/taiga-ui-kit-components-slider.umd.js.map +1 -1
  73. package/bundles/taiga-ui-kit-components-text-area.umd.js +2 -2
  74. package/bundles/taiga-ui-kit-components-text-area.umd.js.map +1 -1
  75. package/bundles/taiga-ui-kit-components-toggle.umd.js +6 -14
  76. package/bundles/taiga-ui-kit-components-toggle.umd.js.map +1 -1
  77. package/bundles/taiga-ui-kit.umd.js +10 -4
  78. package/bundles/taiga-ui-kit.umd.js.map +1 -1
  79. package/components/checkbox/checkbox.component.d.ts +1 -0
  80. package/components/checkbox-block/checkbox-block.component.d.ts +1 -0
  81. package/components/checkbox-labeled/checkbox-labeled.component.d.ts +1 -0
  82. package/components/combo-box/combo-box.component.d.ts +1 -0
  83. package/components/input-count/input-count.component.d.ts +1 -0
  84. package/components/input-date-range/input-date-range.component.d.ts +1 -0
  85. package/components/input-inline/input-inline.component.d.ts +1 -0
  86. package/components/input-phone-international/input-phone-international.component.d.ts +1 -0
  87. package/components/input-tag/input-tag.component.d.ts +1 -1
  88. package/components/multi-select/multi-select.directive.d.ts +1 -1
  89. package/components/multi-select/native-multi-select/native-multi-select.component.d.ts +1 -1
  90. package/components/multi-select/native-multi-select/native-multi-select.d.ts +4 -12
  91. package/components/radio-block/radio-block.component.d.ts +1 -0
  92. package/components/radio-labeled/radio-labeled.component.d.ts +1 -0
  93. package/components/radio-list/radio-list.component.d.ts +1 -0
  94. package/components/select/index.d.ts +0 -1
  95. package/components/select/native-select/native-select-group.component.d.ts +1 -1
  96. package/components/select/native-select/native-select.component.d.ts +1 -1
  97. package/components/toggle/toggle.component.d.ts +1 -1
  98. package/esm2015/abstract/abstract-native-select.js +49 -0
  99. package/esm2015/abstract/index.js +2 -0
  100. package/esm2015/abstract/taiga-ui-kit-abstract.js +5 -0
  101. package/esm2015/components/checkbox/checkbox.component.js +4 -3
  102. package/esm2015/components/checkbox-block/checkbox-block.component.js +4 -3
  103. package/esm2015/components/checkbox-labeled/checkbox-labeled.component.js +4 -3
  104. package/esm2015/components/combo-box/combo-box-strict.directive.js +2 -2
  105. package/esm2015/components/combo-box/combo-box.component.js +7 -6
  106. package/esm2015/components/filter/filter.component.js +3 -3
  107. package/esm2015/components/input/input.component.js +3 -3
  108. package/esm2015/components/input-copy/input-copy.component.js +3 -3
  109. package/esm2015/components/input-count/input-count.component.js +6 -5
  110. package/esm2015/components/input-date/input-date.component.js +7 -6
  111. package/esm2015/components/input-date-range/input-date-range.component.js +17 -14
  112. package/esm2015/components/input-date-time/input-date-time.component.js +5 -5
  113. package/esm2015/components/input-files/input-files.component.js +6 -6
  114. package/esm2015/components/input-inline/input-inline.component.js +4 -3
  115. package/esm2015/components/input-month/input-month.component.js +3 -3
  116. package/esm2015/components/input-month-range/input-month-range.component.js +4 -4
  117. package/esm2015/components/input-number/input-number.component.js +5 -6
  118. package/esm2015/components/input-password/input-password.component.js +3 -3
  119. package/esm2015/components/input-phone/input-phone.component.js +5 -5
  120. package/esm2015/components/input-phone-international/input-phone-international.component.js +8 -7
  121. package/esm2015/components/input-range/input-range.component.js +2 -2
  122. package/esm2015/components/input-slider/input-slider.component.js +2 -2
  123. package/esm2015/components/input-tag/input-tag.component.js +10 -10
  124. package/esm2015/components/input-time/input-time.component.js +7 -8
  125. package/esm2015/components/input-year/input-year.component.js +3 -3
  126. package/esm2015/components/multi-select/multi-select.component.js +6 -5
  127. package/esm2015/components/multi-select/multi-select.directive.js +2 -4
  128. package/esm2015/components/multi-select/native-multi-select/native-multi-select-group.component.js +5 -4
  129. package/esm2015/components/multi-select/native-multi-select/native-multi-select.component.js +5 -4
  130. package/esm2015/components/multi-select/native-multi-select/native-multi-select.js +9 -41
  131. package/esm2015/components/radio/radio.component.js +2 -2
  132. package/esm2015/components/radio-block/radio-block.component.js +4 -3
  133. package/esm2015/components/radio-labeled/radio-labeled.component.js +4 -3
  134. package/esm2015/components/radio-list/radio-list.component.js +4 -3
  135. package/esm2015/components/range/range.component.js +3 -3
  136. package/esm2015/components/rating/rating.component.js +3 -3
  137. package/esm2015/components/select/index.js +1 -2
  138. package/esm2015/components/select/native-select/native-select-group.component.js +3 -3
  139. package/esm2015/components/select/native-select/native-select.component.js +3 -3
  140. package/esm2015/components/select/select.component.js +6 -6
  141. package/esm2015/components/slider/helpers/slider-key-steps.directive.js +2 -2
  142. package/esm2015/components/text-area/text-area.component.js +3 -3
  143. package/esm2015/components/toggle/toggle.component.js +7 -11
  144. package/esm2015/index.js +2 -1
  145. package/fesm2015/taiga-ui-kit-abstract.js +56 -0
  146. package/fesm2015/taiga-ui-kit-abstract.js.map +1 -0
  147. package/fesm2015/taiga-ui-kit-components-checkbox-block.js +3 -2
  148. package/fesm2015/taiga-ui-kit-components-checkbox-block.js.map +1 -1
  149. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js +3 -2
  150. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js.map +1 -1
  151. package/fesm2015/taiga-ui-kit-components-checkbox.js +3 -2
  152. package/fesm2015/taiga-ui-kit-components-checkbox.js.map +1 -1
  153. package/fesm2015/taiga-ui-kit-components-combo-box.js +7 -6
  154. package/fesm2015/taiga-ui-kit-components-combo-box.js.map +1 -1
  155. package/fesm2015/taiga-ui-kit-components-filter.js +2 -2
  156. package/fesm2015/taiga-ui-kit-components-filter.js.map +1 -1
  157. package/fesm2015/taiga-ui-kit-components-input-copy.js +2 -2
  158. package/fesm2015/taiga-ui-kit-components-input-copy.js.map +1 -1
  159. package/fesm2015/taiga-ui-kit-components-input-count.js +5 -4
  160. package/fesm2015/taiga-ui-kit-components-input-count.js.map +1 -1
  161. package/fesm2015/taiga-ui-kit-components-input-date-range.js +16 -13
  162. package/fesm2015/taiga-ui-kit-components-input-date-range.js.map +1 -1
  163. package/fesm2015/taiga-ui-kit-components-input-date-time.js +4 -4
  164. package/fesm2015/taiga-ui-kit-components-input-date-time.js.map +1 -1
  165. package/fesm2015/taiga-ui-kit-components-input-date.js +6 -5
  166. package/fesm2015/taiga-ui-kit-components-input-date.js.map +1 -1
  167. package/fesm2015/taiga-ui-kit-components-input-files.js +5 -5
  168. package/fesm2015/taiga-ui-kit-components-input-files.js.map +1 -1
  169. package/fesm2015/taiga-ui-kit-components-input-inline.js +3 -2
  170. package/fesm2015/taiga-ui-kit-components-input-inline.js.map +1 -1
  171. package/fesm2015/taiga-ui-kit-components-input-month-range.js +3 -3
  172. package/fesm2015/taiga-ui-kit-components-input-month-range.js.map +1 -1
  173. package/fesm2015/taiga-ui-kit-components-input-month.js +2 -2
  174. package/fesm2015/taiga-ui-kit-components-input-month.js.map +1 -1
  175. package/fesm2015/taiga-ui-kit-components-input-number.js +4 -5
  176. package/fesm2015/taiga-ui-kit-components-input-number.js.map +1 -1
  177. package/fesm2015/taiga-ui-kit-components-input-password.js +2 -2
  178. package/fesm2015/taiga-ui-kit-components-input-password.js.map +1 -1
  179. package/fesm2015/taiga-ui-kit-components-input-phone-international.js +7 -6
  180. package/fesm2015/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  181. package/fesm2015/taiga-ui-kit-components-input-phone.js +4 -4
  182. package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
  183. package/fesm2015/taiga-ui-kit-components-input-range.js +1 -1
  184. package/fesm2015/taiga-ui-kit-components-input-range.js.map +1 -1
  185. package/fesm2015/taiga-ui-kit-components-input-slider.js +1 -1
  186. package/fesm2015/taiga-ui-kit-components-input-slider.js.map +1 -1
  187. package/fesm2015/taiga-ui-kit-components-input-tag.js +9 -9
  188. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  189. package/fesm2015/taiga-ui-kit-components-input-time.js +6 -7
  190. package/fesm2015/taiga-ui-kit-components-input-time.js.map +1 -1
  191. package/fesm2015/taiga-ui-kit-components-input-year.js +2 -2
  192. package/fesm2015/taiga-ui-kit-components-input-year.js.map +1 -1
  193. package/fesm2015/taiga-ui-kit-components-input.js +2 -2
  194. package/fesm2015/taiga-ui-kit-components-input.js.map +1 -1
  195. package/fesm2015/taiga-ui-kit-components-multi-select.js +38 -67
  196. package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
  197. package/fesm2015/taiga-ui-kit-components-radio-block.js +3 -2
  198. package/fesm2015/taiga-ui-kit-components-radio-block.js.map +1 -1
  199. package/fesm2015/taiga-ui-kit-components-radio-labeled.js +3 -2
  200. package/fesm2015/taiga-ui-kit-components-radio-labeled.js.map +1 -1
  201. package/fesm2015/taiga-ui-kit-components-radio-list.js +3 -2
  202. package/fesm2015/taiga-ui-kit-components-radio-list.js.map +1 -1
  203. package/fesm2015/taiga-ui-kit-components-radio.js +1 -1
  204. package/fesm2015/taiga-ui-kit-components-radio.js.map +1 -1
  205. package/fesm2015/taiga-ui-kit-components-range.js +2 -2
  206. package/fesm2015/taiga-ui-kit-components-range.js.map +1 -1
  207. package/fesm2015/taiga-ui-kit-components-rating.js +2 -2
  208. package/fesm2015/taiga-ui-kit-components-rating.js.map +1 -1
  209. package/fesm2015/taiga-ui-kit-components-select.js +16 -52
  210. package/fesm2015/taiga-ui-kit-components-select.js.map +1 -1
  211. package/fesm2015/taiga-ui-kit-components-slider.js +1 -1
  212. package/fesm2015/taiga-ui-kit-components-slider.js.map +1 -1
  213. package/fesm2015/taiga-ui-kit-components-text-area.js +2 -2
  214. package/fesm2015/taiga-ui-kit-components-text-area.js.map +1 -1
  215. package/fesm2015/taiga-ui-kit-components-toggle.js +6 -10
  216. package/fesm2015/taiga-ui-kit-components-toggle.js.map +1 -1
  217. package/fesm2015/taiga-ui-kit.js +1 -0
  218. package/fesm2015/taiga-ui-kit.js.map +1 -1
  219. package/index.d.ts +1 -0
  220. package/package.json +1 -1
  221. package/components/select/native-select/native-select.d.ts +0 -15
  222. package/esm2015/components/select/native-select/native-select.js +0 -42
@@ -1,16 +1,17 @@
1
1
  import * as i0 from '@angular/core';
2
- import { ElementRef, TemplateRef, Directive, Inject, ViewChild, HostBinding, Component, ChangeDetectionStrategy, Input, InjectionToken, ChangeDetectorRef, Optional, Self, ContentChild, NgModule } from '@angular/core';
3
- import * as i1 from '@taiga-ui/cdk';
4
- import { AbstractTuiControl, TuiIdService, AbstractTuiNullableControl, tuiIsNativeFocused, TUI_IS_MOBILE, tuiAsFocusableItemAccessor, tuiAsControl, tuiDefaultProp, TuiActiveZoneModule } from '@taiga-ui/cdk';
5
- import * as i1$2 from '@taiga-ui/core';
6
- import { TUI_TEXTFIELD_HOST, TuiDataListDirective, tuiAsDataList, TUI_TEXTFIELD_CLEANER, tuiAsDataListHost, tuiAsOptionContent, TuiPrimitiveTextfieldComponent, TuiHostedDropdownComponent, AbstractTuiTextfieldHost, tuiAsTextfieldHost, TuiPrimitiveTextfieldModule, TuiHostedDropdownModule, TuiWrapperModule, TuiTextfieldControllerModule, TuiDataListModule, TuiTextfieldComponent } from '@taiga-ui/core';
7
- import * as i1$1 from '@taiga-ui/kit/components/data-list-wrapper';
2
+ import { TemplateRef, Component, ChangeDetectionStrategy, Input, InjectionToken, ChangeDetectorRef, Optional, Self, Inject, ViewChild, ContentChild, Directive, NgModule } from '@angular/core';
3
+ import * as i1$1 from '@taiga-ui/core';
4
+ import { tuiAsDataList, TUI_TEXTFIELD_CLEANER, tuiAsDataListHost, tuiAsOptionContent, TuiDataListDirective, TuiPrimitiveTextfieldComponent, TuiHostedDropdownComponent, AbstractTuiTextfieldHost, tuiAsTextfieldHost, TuiPrimitiveTextfieldModule, TuiHostedDropdownModule, TuiWrapperModule, TuiTextfieldControllerModule, TuiDataListModule, TuiTextfieldComponent } from '@taiga-ui/core';
5
+ import { AbstractTuiNativeSelect } from '@taiga-ui/kit/abstract';
6
+ import * as i1 from '@taiga-ui/kit/components/data-list-wrapper';
8
7
  import { TuiDataListWrapperModule } from '@taiga-ui/kit/components/data-list-wrapper';
9
8
  import * as i3 from '@angular/common';
10
9
  import { CommonModule } from '@angular/common';
11
10
  import { __decorate } from 'tslib';
12
11
  import * as i5 from '@angular/forms';
13
12
  import { NgControl } from '@angular/forms';
13
+ import * as i2 from '@taiga-ui/cdk';
14
+ import { AbstractTuiNullableControl, tuiIsNativeFocused, TUI_IS_MOBILE, tuiAsFocusableItemAccessor, tuiAsControl, tuiDefaultProp, TuiActiveZoneModule } from '@taiga-ui/cdk';
14
15
  import { TUI_ARROW_MODE, TuiArrowModule } from '@taiga-ui/kit/components/arrow';
15
16
  import { TUI_SELECT_OPTION, TuiSelectOptionModule } from '@taiga-ui/kit/components/select-option';
16
17
  import { FIXED_DROPDOWN_CONTROLLER_PROVIDER } from '@taiga-ui/kit/providers';
@@ -18,43 +19,6 @@ import { TUI_ITEMS_HANDLERS } from '@taiga-ui/kit/tokens';
18
19
  import * as i4 from '@tinkoff/ng-polymorpheus';
19
20
  import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
20
21
 
21
- class AbstractTuiNativeSelect {
22
- constructor(host, control, elementRef, idService) {
23
- this.host = host;
24
- this.control = control;
25
- this.elementRef = elementRef;
26
- this.idService = idService;
27
- this.datalist = null;
28
- this.host.process(this.elementRef.nativeElement);
29
- }
30
- get id() {
31
- return this.elementRef.nativeElement.id || this.idService.generate();
32
- }
33
- }
34
- AbstractTuiNativeSelect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AbstractTuiNativeSelect, deps: [{ token: TUI_TEXTFIELD_HOST }, { token: AbstractTuiControl }, { token: ElementRef }, { token: TuiIdService }], target: i0.ɵɵFactoryTarget.Directive });
35
- AbstractTuiNativeSelect.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: AbstractTuiNativeSelect, host: { properties: { "id": "this.id" } }, viewQueries: [{ propertyName: "datalist", first: true, predicate: TuiDataListDirective, descendants: true, read: TemplateRef, static: true }], ngImport: i0 });
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AbstractTuiNativeSelect, decorators: [{
37
- type: Directive
38
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
39
- type: Inject,
40
- args: [TUI_TEXTFIELD_HOST]
41
- }] }, { type: i1.AbstractTuiControl, decorators: [{
42
- type: Inject,
43
- args: [AbstractTuiControl]
44
- }] }, { type: i0.ElementRef, decorators: [{
45
- type: Inject,
46
- args: [ElementRef]
47
- }] }, { type: i1.TuiIdService, decorators: [{
48
- type: Inject,
49
- args: [TuiIdService]
50
- }] }]; }, propDecorators: { datalist: [{
51
- type: ViewChild,
52
- args: [TuiDataListDirective, { read: TemplateRef, static: true }]
53
- }], id: [{
54
- type: HostBinding,
55
- args: [`id`]
56
- }] } });
57
-
58
22
  class TuiNativeSelectComponent extends AbstractTuiNativeSelect {
59
23
  constructor() {
60
24
  super(...arguments);
@@ -73,7 +37,7 @@ TuiNativeSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0
73
37
  provide: AbstractTuiNativeSelect,
74
38
  useExisting: TuiNativeSelectComponent,
75
39
  },
76
- ], usesInheritance: true, ngImport: i0, template: "<tui-data-list-wrapper\n *tuiDataList\n [items]=\"items\"\n></tui-data-list-wrapper>\n<option\n *ngFor=\"let option of items\"\n [value]=\"option\"\n>\n {{ option }}\n</option>\n", styles: [":host{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0}\n"], components: [{ type: i1$1.TuiDataListWrapperComponent, selector: "tui-data-list-wrapper:not([labels])", inputs: ["items"] }], directives: [{ type: i1$2.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
40
+ ], usesInheritance: true, ngImport: i0, template: "<tui-data-list-wrapper\n *tuiDataList\n [items]=\"items\"\n [disabledItemHandler]=\"disabledItemHandler || itemsHandlers.disabledItemHandler\"\n></tui-data-list-wrapper>\n<option\n *ngFor=\"let option of items\"\n [value]=\"option\"\n [disabled]=\"disabledItemHandler ? disabledItemHandler(option) : itemsHandlers.disabledItemHandler(option)\"\n>\n {{ option }}\n</option>\n", styles: [":host{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0}\n"], components: [{ type: i1.TuiDataListWrapperComponent, selector: "tui-data-list-wrapper:not([labels])", inputs: ["items"] }], directives: [{ type: i1$1.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
77
41
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiNativeSelectComponent, decorators: [{
78
42
  type: Component,
79
43
  args: [{
@@ -124,7 +88,7 @@ TuiNativeSelectGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "1
124
88
  provide: AbstractTuiNativeSelect,
125
89
  useExisting: TuiNativeSelectGroupComponent,
126
90
  },
127
- ], usesInheritance: true, ngImport: i0, template: "<tui-data-list-wrapper\n *tuiDataList\n [items]=\"items\"\n [labels]=\"labels\"\n></tui-data-list-wrapper>\n<optgroup\n *ngFor=\"let group of items; let index = index\"\n [label]=\"labels[index]\"\n>\n <option\n *ngFor=\"let option of group\"\n [value]=\"option\"\n >\n {{ option }}\n </option>\n</optgroup>\n", styles: [":host{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0}\n"], components: [{ type: i1$1.TuiDataListGroupWrapperComponent, selector: "tui-data-list-wrapper[labels]", inputs: ["items", "labels"] }], directives: [{ type: i1$2.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
91
+ ], usesInheritance: true, ngImport: i0, template: "<tui-data-list-wrapper\n *tuiDataList\n [items]=\"items\"\n [labels]=\"labels\"\n [disabledItemHandler]=\"disabledItemHandler || itemsHandlers.disabledItemHandler\"\n></tui-data-list-wrapper>\n<optgroup\n *ngFor=\"let group of items; let index = index\"\n [label]=\"labels[index]\"\n>\n <option\n *ngFor=\"let option of group\"\n [value]=\"option\"\n [disabled]=\"disabledItemHandler ? disabledItemHandler(option) : itemsHandlers.disabledItemHandler(option)\"\n >\n {{ option }}\n </option>\n</optgroup>\n", styles: [":host{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0}\n"], components: [{ type: i1.TuiDataListGroupWrapperComponent, selector: "tui-data-list-wrapper[labels]", inputs: ["items", "labels"] }], directives: [{ type: i1$1.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
128
92
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiNativeSelectGroupComponent, decorators: [{
129
93
  type: Component,
130
94
  args: [{
@@ -206,10 +170,10 @@ class TuiSelectComponent extends AbstractTuiNullableControl {
206
170
  }
207
171
  onValueChange(value) {
208
172
  if (!value) {
209
- this.updateValue(null);
173
+ this.value = null;
210
174
  }
211
175
  else {
212
- this.updateValue(value || null);
176
+ this.value = value || null;
213
177
  }
214
178
  }
215
179
  onActiveZone(active) {
@@ -217,13 +181,13 @@ class TuiSelectComponent extends AbstractTuiNullableControl {
217
181
  }
218
182
  onKeyDownDelete() {
219
183
  if (this.textfieldCleaner.cleaner) {
220
- this.updateValue(null);
184
+ this.value = null;
221
185
  }
222
186
  }
223
187
  handleOption(option) {
224
188
  var _a;
225
189
  this.focusInput();
226
- this.updateValue(option);
190
+ this.value = option;
227
191
  (_a = this.hostedDropdown) === null || _a === void 0 ? void 0 : _a.updateOpen(false);
228
192
  }
229
193
  focusInput(preventScroll = false) {
@@ -238,7 +202,7 @@ TuiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
238
202
  tuiAsControl(TuiSelectComponent),
239
203
  tuiAsDataListHost(TuiSelectComponent),
240
204
  tuiAsOptionContent(TUI_SELECT_OPTION),
241
- ], queries: [{ propertyName: "nativeSelect", first: true, predicate: AbstractTuiNativeSelect, descendants: true, static: true }, { propertyName: "datalist", first: true, predicate: TuiDataListDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "textfield", first: true, predicate: TuiPrimitiveTextfieldComponent, descendants: true }, { propertyName: "hostedDropdown", first: true, predicate: TuiHostedDropdownComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<tui-hosted-dropdown\n class=\"t-hosted\"\n [canOpen]=\"interactive && !nativeDropdownMode\"\n [content]=\"datalist || ''\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n automation-id=\"tui-select__textfield\"\n class=\"t-textfield\"\n [tuiTextfieldIcon]=\"arrow ? icon : ''\"\n [editable]=\"false\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoActive]=\"pseudoActive\"\n [invalid]=\"computedInvalid\"\n [nativeId]=\"nativeId\"\n [readOnly]=\"readOnly\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"computedFocusable\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange($any($event))\"\n (keydown.delete.prevent)=\"onKeyDownDelete()\"\n (keydown.backspace.prevent)=\"onKeyDownDelete()\"\n >\n <ng-content></ng-content>\n <ng-content\n select=\"input\"\n ngProjectAs=\"input\"\n ></ng-content>\n\n <ng-template #select>\n <ng-content\n *ngIf=\"isMobile\"\n select=\"select\"\n ></ng-content>\n </ng-template>\n\n <ng-container\n *ngTemplateOutlet=\"select\"\n ngProjectAs=\"select\"\n ></ng-container>\n\n <div\n *ngIf=\"value !== null\"\n ngProjectAs=\"tuiContent\"\n automation-id=\"tui-select__value\"\n class=\"t-value\"\n >\n <div\n *polymorpheusOutlet=\"computedContent as text; context: {$implicit: value, active: computedFocused}\"\n class=\"t-primitive-value\"\n [textContent]=\"text\"\n ></div>\n </div>\n </tui-primitive-textfield>\n\n <ng-template #icon>\n <div\n tuiWrapper\n appearance=\"icon\"\n class=\"t-icon\"\n >\n <ng-container *polymorpheusOutlet=\"arrow\"></ng-container>\n </div>\n </ng-template>\n</tui-hosted-dropdown>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:left}:host:not(._readonly) ::ng-deep input:not(:disabled){cursor:pointer}:host._readonly ::ng-deep input{cursor:default}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}.t-value{display:flex;width:100%;align-items:center}.t-primitive-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], components: [{ type: i1$2.TuiHostedDropdownComponent, selector: "tui-hosted-dropdown", inputs: ["content", "sided", "canOpen", "open"], outputs: ["openChange", "focusedChange"] }, { type: i1$2.TuiPrimitiveTextfieldComponent, selector: "tui-primitive-textfield", inputs: ["editable", "filler", "iconCleaner", "readOnly", "invalid", "disabled", "prefix", "postfix", "value"], outputs: ["valueChange"] }], directives: [{ type: i1.TuiActiveZoneDirective, selector: "[tuiActiveZone]:not(ng-container), [tuiActiveZoneChange]:not(ng-container), [tuiActiveZoneParent]:not(ng-container)", inputs: ["tuiActiveZoneParent"], outputs: ["tuiActiveZoneChange"], exportAs: ["tuiActiveZone"] }, { type: i1$2.TuiPrimitiveTextfieldDirective, selector: "tui-primitive-textfield" }, { type: i1$2.TuiTextfieldIconDirective, selector: "[tuiTextfieldIcon]", inputs: ["tuiTextfieldIcon"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { type: i1$2.TuiWrapperDirective, selector: "[tuiWrapper]", inputs: ["disabled", "readOnly", "hover", "active", "focus", "invalid", "appearance"] }], viewProviders: [FIXED_DROPDOWN_CONTROLLER_PROVIDER], changeDetection: i0.ChangeDetectionStrategy.OnPush });
205
+ ], queries: [{ propertyName: "nativeSelect", first: true, predicate: AbstractTuiNativeSelect, descendants: true, static: true }, { propertyName: "datalist", first: true, predicate: TuiDataListDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "textfield", first: true, predicate: TuiPrimitiveTextfieldComponent, descendants: true }, { propertyName: "hostedDropdown", first: true, predicate: TuiHostedDropdownComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<tui-hosted-dropdown\n class=\"t-hosted\"\n [canOpen]=\"interactive && !nativeDropdownMode\"\n [content]=\"datalist || ''\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n automation-id=\"tui-select__textfield\"\n class=\"t-textfield\"\n [tuiTextfieldIcon]=\"arrow ? icon : ''\"\n [editable]=\"false\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoActive]=\"pseudoActive\"\n [invalid]=\"computedInvalid\"\n [nativeId]=\"nativeId\"\n [readOnly]=\"readOnly\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"computedFocusable\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange($any($event))\"\n (keydown.delete.prevent)=\"onKeyDownDelete()\"\n (keydown.backspace.prevent)=\"onKeyDownDelete()\"\n >\n <ng-content></ng-content>\n <ng-content\n select=\"input\"\n ngProjectAs=\"input\"\n ></ng-content>\n\n <ng-template #select>\n <ng-content\n *ngIf=\"isMobile\"\n select=\"select\"\n ></ng-content>\n </ng-template>\n\n <ng-container\n *ngTemplateOutlet=\"select\"\n ngProjectAs=\"select\"\n ></ng-container>\n\n <div\n *ngIf=\"value !== null\"\n ngProjectAs=\"tuiContent\"\n automation-id=\"tui-select__value\"\n class=\"t-value\"\n >\n <div\n *polymorpheusOutlet=\"computedContent as text; context: {$implicit: value, active: computedFocused}\"\n class=\"t-primitive-value\"\n [textContent]=\"text\"\n ></div>\n </div>\n </tui-primitive-textfield>\n\n <ng-template #icon>\n <div\n tuiWrapper\n appearance=\"icon\"\n class=\"t-icon\"\n >\n <ng-container *polymorpheusOutlet=\"arrow\"></ng-container>\n </div>\n </ng-template>\n</tui-hosted-dropdown>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:left}:host:not(._readonly) ::ng-deep input:not(:disabled){cursor:pointer}:host._readonly ::ng-deep input{cursor:default}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}.t-value{display:flex;width:100%;align-items:center}.t-primitive-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], components: [{ type: i1$1.TuiHostedDropdownComponent, selector: "tui-hosted-dropdown", inputs: ["content", "sided", "canOpen", "open"], outputs: ["openChange", "focusedChange"] }, { type: i1$1.TuiPrimitiveTextfieldComponent, selector: "tui-primitive-textfield", inputs: ["editable", "filler", "iconCleaner", "readOnly", "invalid", "disabled", "prefix", "postfix", "value"], outputs: ["valueChange"] }], directives: [{ type: i2.TuiActiveZoneDirective, selector: "[tuiActiveZone]:not(ng-container), [tuiActiveZoneChange]:not(ng-container), [tuiActiveZoneParent]:not(ng-container)", inputs: ["tuiActiveZoneParent"], outputs: ["tuiActiveZoneChange"], exportAs: ["tuiActiveZone"] }, { type: i1$1.TuiPrimitiveTextfieldDirective, selector: "tui-primitive-textfield" }, { type: i1$1.TuiTextfieldIconDirective, selector: "[tuiTextfieldIcon]", inputs: ["tuiTextfieldIcon"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { type: i1$1.TuiWrapperDirective, selector: "[tuiWrapper]", inputs: ["disabled", "readOnly", "hover", "active", "focus", "invalid", "appearance"] }], viewProviders: [FIXED_DROPDOWN_CONTROLLER_PROVIDER], changeDetection: i0.ChangeDetectionStrategy.OnPush });
242
206
  __decorate([
243
207
  tuiDefaultProp()
244
208
  ], TuiSelectComponent.prototype, "stringify", void 0);
@@ -273,7 +237,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
273
237
  }] }, { type: i0.ChangeDetectorRef, decorators: [{
274
238
  type: Inject,
275
239
  args: [ChangeDetectorRef]
276
- }] }, { type: i1$2.TuiTextfieldCleanerDirective, decorators: [{
240
+ }] }, { type: i1$1.TuiTextfieldCleanerDirective, decorators: [{
277
241
  type: Inject,
278
242
  args: [TUI_TEXTFIELD_CLEANER]
279
243
  }] }, { type: undefined, decorators: [{
@@ -399,5 +363,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
399
363
  * Generated bundle index. Do not edit.
400
364
  */
401
365
 
402
- export { AbstractTuiNativeSelect, TUI_SELECT_DEFAULT_OPTIONS, TUI_SELECT_OPTIONS, TuiNativeSelectComponent, TuiNativeSelectGroupComponent, TuiSelectComponent, TuiSelectDirective, TuiSelectModule, tuiSelectOptionsProvider };
366
+ export { TUI_SELECT_DEFAULT_OPTIONS, TUI_SELECT_OPTIONS, TuiNativeSelectComponent, TuiNativeSelectGroupComponent, TuiSelectComponent, TuiSelectDirective, TuiSelectModule, tuiSelectOptionsProvider };
403
367
  //# sourceMappingURL=taiga-ui-kit-components-select.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-select.js","sources":["../../../projects/kit/components/select/native-select/native-select.ts","../../../projects/kit/components/select/native-select/native-select.component.ts","../../../projects/kit/components/select/native-select/native-select.template.html","../../../projects/kit/components/select/native-select/native-select-group.component.ts","../../../projects/kit/components/select/native-select/native-select-group.template.html","../../../projects/kit/components/select/select-options.ts","../../../projects/kit/components/select/select.component.ts","../../../projects/kit/components/select/select.template.html","../../../projects/kit/components/select/select.directive.ts","../../../projects/kit/components/select/select.module.ts","../../../projects/kit/components/select/taiga-ui-kit-components-select.ts"],"sourcesContent":["import {\n Directive,\n ElementRef,\n HostBinding,\n Inject,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {AbstractTuiControl, TuiIdService} from '@taiga-ui/cdk';\nimport {TUI_TEXTFIELD_HOST, TuiDataListDirective, TuiTextfieldHost} from '@taiga-ui/core';\n\n@Directive()\nexport abstract class AbstractTuiNativeSelect {\n @ViewChild(TuiDataListDirective, {read: TemplateRef, static: true})\n readonly datalist: TemplateRef<any> | null = null;\n\n constructor(\n @Inject(TUI_TEXTFIELD_HOST) readonly host: TuiTextfieldHost,\n @Inject(AbstractTuiControl) readonly control: AbstractTuiControl<unknown>,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLInputElement>,\n @Inject(TuiIdService)\n private readonly idService: TuiIdService,\n ) {\n this.host.process(this.elementRef.nativeElement);\n }\n\n @HostBinding(`id`)\n get id(): string {\n return this.elementRef.nativeElement.id || this.idService.generate();\n }\n}\n","import {ChangeDetectionStrategy, Component, Input, TemplateRef} from '@angular/core';\nimport {tuiAsDataList} from '@taiga-ui/core';\n\nimport {AbstractTuiNativeSelect} from './native-select';\n\n@Component({\n selector: 'select[tuiSelect]:not([labels]):not([multiple])',\n templateUrl: './native-select.template.html',\n providers: [\n tuiAsDataList(TuiNativeSelectComponent),\n {\n provide: TemplateRef,\n deps: [TuiNativeSelectComponent],\n useFactory: ({datalist}: TuiNativeSelectComponent) => datalist,\n },\n {\n provide: AbstractTuiNativeSelect,\n useExisting: TuiNativeSelectComponent,\n },\n ],\n host: {\n '[attr.aria-invalid]': 'host.invalid',\n '[disabled]': 'host.disabled || control.readOnly',\n '[tabIndex]': 'host.focusable ? 0 : -1',\n '[value]': 'host.value',\n '(change)': 'host.onValueChange($event.target.value)',\n },\n styleUrls: ['./native-select.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiNativeSelectComponent extends AbstractTuiNativeSelect {\n @Input()\n items: readonly string[] | null = [];\n}\n","<tui-data-list-wrapper\n *tuiDataList\n [items]=\"items\"\n></tui-data-list-wrapper>\n<option\n *ngFor=\"let option of items\"\n [value]=\"option\"\n>\n {{ option }}\n</option>\n","import {ChangeDetectionStrategy, Component, Input, TemplateRef} from '@angular/core';\nimport {tuiAsDataList} from '@taiga-ui/core';\n\nimport {AbstractTuiNativeSelect} from './native-select';\n\n@Component({\n selector: 'select[tuiSelect][labels]:not([multiple])',\n templateUrl: './native-select-group.template.html',\n providers: [\n tuiAsDataList(TuiNativeSelectGroupComponent),\n {\n provide: TemplateRef,\n deps: [TuiNativeSelectGroupComponent],\n useFactory: ({datalist}: TuiNativeSelectGroupComponent) => datalist,\n },\n {\n provide: AbstractTuiNativeSelect,\n useExisting: TuiNativeSelectGroupComponent,\n },\n ],\n host: {\n '[attr.aria-invalid]': 'host.invalid',\n '[disabled]': 'host.disabled || control.readOnly',\n '[tabIndex]': 'host.focusable ? 0 : -1',\n '[value]': 'host.value',\n '(change)': 'host.onValueChange($event.target.value)',\n },\n styleUrls: ['./native-select.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiNativeSelectGroupComponent extends AbstractTuiNativeSelect {\n @Input()\n items: readonly string[][] | null = [];\n\n @Input()\n labels: readonly string[] = [];\n}\n","<tui-data-list-wrapper\n *tuiDataList\n [items]=\"items\"\n [labels]=\"labels\"\n></tui-data-list-wrapper>\n<optgroup\n *ngFor=\"let group of items; let index = index\"\n [label]=\"labels[index]\"\n>\n <option\n *ngFor=\"let option of group\"\n [value]=\"option\"\n >\n {{ option }}\n </option>\n</optgroup>\n","import {InjectionToken, ValueProvider} from '@angular/core';\nimport {TuiValueContentContext} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport interface TuiSelectOptions<T> {\n readonly valueContent: PolymorpheusContent<TuiValueContentContext<T>>;\n}\n\nexport const TUI_SELECT_DEFAULT_OPTIONS: TuiSelectOptions<unknown> = {\n valueContent: ``,\n};\n\n/**\n * Default parameters for Select component\n */\nexport const TUI_SELECT_OPTIONS = new InjectionToken<TuiSelectOptions<unknown>>(\n `[TUI_SELECT_OPTIONS]`,\n {\n factory: () => TUI_SELECT_DEFAULT_OPTIONS,\n },\n);\n\nexport const tuiSelectOptionsProvider: <T>(\n options: Partial<TuiSelectOptions<T>>,\n) => ValueProvider = <T>(options: Partial<TuiSelectOptions<T>>) => ({\n provide: TUI_SELECT_OPTIONS,\n useValue: {...TUI_SELECT_DEFAULT_OPTIONS, ...options},\n});\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n Inject,\n Input,\n Optional,\n Self,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiNullableControl,\n TUI_IS_MOBILE,\n TuiActiveZoneDirective,\n tuiAsControl,\n tuiAsFocusableItemAccessor,\n TuiContextWithImplicit,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n tuiIsNativeFocused,\n} from '@taiga-ui/cdk';\nimport {\n TUI_TEXTFIELD_CLEANER,\n tuiAsDataListHost,\n tuiAsOptionContent,\n TuiDataListDirective,\n TuiDataListHost,\n TuiHostedDropdownComponent,\n TuiPrimitiveTextfieldComponent,\n TuiSizeL,\n TuiSizeM,\n TuiSizeS,\n TuiTextfieldCleanerDirective,\n TuiValueContentContext,\n} from '@taiga-ui/core';\nimport {TUI_ARROW_MODE, TuiArrowMode} from '@taiga-ui/kit/components/arrow';\nimport {TUI_SELECT_OPTION} from '@taiga-ui/kit/components/select-option';\nimport {FIXED_DROPDOWN_CONTROLLER_PROVIDER} from '@taiga-ui/kit/providers';\nimport {TUI_ITEMS_HANDLERS, TuiItemsHandlers} from '@taiga-ui/kit/tokens';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nimport {AbstractTuiNativeSelect} from './native-select/native-select';\nimport {TUI_SELECT_OPTIONS, TuiSelectOptions} from './select-options';\n\n@Component({\n selector: 'tui-select',\n templateUrl: './select.template.html',\n styleUrls: ['./select.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsFocusableItemAccessor(TuiSelectComponent),\n tuiAsControl(TuiSelectComponent),\n tuiAsDataListHost(TuiSelectComponent),\n tuiAsOptionContent(TUI_SELECT_OPTION),\n ],\n viewProviders: [FIXED_DROPDOWN_CONTROLLER_PROVIDER],\n})\nexport class TuiSelectComponent<T>\n extends AbstractTuiNullableControl<T>\n implements TuiFocusableElementAccessor, TuiDataListHost<T>\n{\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n @ViewChild(TuiHostedDropdownComponent)\n private readonly hostedDropdown?: TuiHostedDropdownComponent;\n\n @ContentChild(AbstractTuiNativeSelect, {static: true})\n private readonly nativeSelect?: AbstractTuiNativeSelect;\n\n @Input()\n @tuiDefaultProp()\n stringify: TuiItemsHandlers<T>['stringify'] = this.itemsHandlers.stringify;\n\n @Input()\n @tuiDefaultProp()\n identityMatcher: TuiItemsHandlers<T>['identityMatcher'] =\n this.itemsHandlers.identityMatcher;\n\n @Input()\n @tuiDefaultProp()\n valueContent: TuiSelectOptions<T>['valueContent'] = this.options.valueContent;\n\n @ContentChild(TuiDataListDirective, {read: TemplateRef})\n readonly datalist: PolymorpheusContent<\n TuiContextWithImplicit<TuiActiveZoneDirective>\n > = '';\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TUI_TEXTFIELD_CLEANER)\n private readonly textfieldCleaner: TuiTextfieldCleanerDirective,\n @Inject(TUI_ARROW_MODE)\n private readonly arrowMode: TuiArrowMode,\n @Inject(TUI_ITEMS_HANDLERS)\n private readonly itemsHandlers: TuiItemsHandlers<T>,\n @Inject(TUI_SELECT_OPTIONS)\n private readonly options: TuiSelectOptions<T>,\n @Inject(TUI_IS_MOBILE)\n readonly isMobile: boolean,\n ) {\n super(control, changeDetectorRef);\n }\n\n get arrow(): PolymorpheusContent<\n TuiContextWithImplicit<TuiSizeL | TuiSizeM | TuiSizeS>\n > {\n return !this.interactive ? this.arrowMode.disabled : this.arrowMode.interactive;\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.textfield ? this.textfield.nativeFocusableElement : null;\n }\n\n get focused(): boolean {\n return (\n tuiIsNativeFocused(this.nativeFocusableElement) ||\n (!!this.hostedDropdown && this.hostedDropdown.focused)\n );\n }\n\n get nativeDropdownMode(): boolean {\n return !!this.nativeSelect && this.isMobile;\n }\n\n get computedValue(): string {\n return this.value === null ? '' : this.stringify(this.value) || ' ';\n }\n\n get computedContent(): PolymorpheusContent<TuiValueContentContext<T>> {\n return this.valueContent || this.computedValue;\n }\n\n onValueChange(value: T): void {\n if (!value) {\n this.updateValue(null);\n } else {\n this.updateValue(value || null);\n }\n }\n\n onActiveZone(active: boolean): void {\n this.updateFocused(active);\n }\n\n onKeyDownDelete(): void {\n if (this.textfieldCleaner.cleaner) {\n this.updateValue(null);\n }\n }\n\n handleOption(option: T): void {\n this.focusInput();\n this.updateValue(option);\n this.hostedDropdown?.updateOpen(false);\n }\n\n private focusInput(preventScroll: boolean = false): void {\n if (this.nativeFocusableElement) {\n this.nativeFocusableElement.focus({preventScroll});\n }\n }\n}\n","<tui-hosted-dropdown\n class=\"t-hosted\"\n [canOpen]=\"interactive && !nativeDropdownMode\"\n [content]=\"datalist || ''\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n automation-id=\"tui-select__textfield\"\n class=\"t-textfield\"\n [tuiTextfieldIcon]=\"arrow ? icon : ''\"\n [editable]=\"false\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoActive]=\"pseudoActive\"\n [invalid]=\"computedInvalid\"\n [nativeId]=\"nativeId\"\n [readOnly]=\"readOnly\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"computedFocusable\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange($any($event))\"\n (keydown.delete.prevent)=\"onKeyDownDelete()\"\n (keydown.backspace.prevent)=\"onKeyDownDelete()\"\n >\n <ng-content></ng-content>\n <ng-content\n select=\"input\"\n ngProjectAs=\"input\"\n ></ng-content>\n\n <ng-template #select>\n <ng-content\n *ngIf=\"isMobile\"\n select=\"select\"\n ></ng-content>\n </ng-template>\n\n <ng-container\n *ngTemplateOutlet=\"select\"\n ngProjectAs=\"select\"\n ></ng-container>\n\n <div\n *ngIf=\"value !== null\"\n ngProjectAs=\"tuiContent\"\n automation-id=\"tui-select__value\"\n class=\"t-value\"\n >\n <div\n *polymorpheusOutlet=\"computedContent as text; context: {$implicit: value, active: computedFocused}\"\n class=\"t-primitive-value\"\n [textContent]=\"text\"\n ></div>\n </div>\n </tui-primitive-textfield>\n\n <ng-template #icon>\n <div\n tuiWrapper\n appearance=\"icon\"\n class=\"t-icon\"\n >\n <ng-container *polymorpheusOutlet=\"arrow\"></ng-container>\n </div>\n </ng-template>\n</tui-hosted-dropdown>\n","import {Directive} from '@angular/core';\nimport {AbstractTuiTextfieldHost, tuiAsTextfieldHost} from '@taiga-ui/core';\n\nimport {TuiSelectComponent} from './select.component';\n\n@Directive({\n selector: 'tui-select',\n providers: [tuiAsTextfieldHost(TuiSelectDirective)],\n})\nexport class TuiSelectDirective extends AbstractTuiTextfieldHost<\n TuiSelectComponent<unknown>\n> {\n override get readOnly(): boolean {\n return true;\n }\n\n override get value(): string {\n return this.host.computedValue;\n }\n\n onValueChange(value: string): void {\n this.host.onValueChange(value);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiActiveZoneModule} from '@taiga-ui/cdk';\nimport {\n TuiDataListModule,\n TuiHostedDropdownModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldComponent,\n TuiTextfieldControllerModule,\n TuiWrapperModule,\n} from '@taiga-ui/core';\nimport {TuiArrowModule} from '@taiga-ui/kit/components/arrow';\nimport {TuiDataListWrapperModule} from '@taiga-ui/kit/components/data-list-wrapper';\nimport {TuiSelectOptionModule} from '@taiga-ui/kit/components/select-option';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiNativeSelectComponent} from './native-select/native-select.component';\nimport {TuiNativeSelectGroupComponent} from './native-select/native-select-group.component';\nimport {TuiSelectComponent} from './select.component';\nimport {TuiSelectDirective} from './select.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiActiveZoneModule,\n TuiPrimitiveTextfieldModule,\n TuiHostedDropdownModule,\n TuiSelectOptionModule,\n TuiArrowModule,\n TuiWrapperModule,\n TuiTextfieldControllerModule,\n TuiDataListWrapperModule,\n TuiDataListModule,\n ],\n declarations: [\n TuiSelectComponent,\n TuiSelectDirective,\n TuiNativeSelectComponent,\n TuiNativeSelectGroupComponent,\n ],\n exports: [\n TuiSelectComponent,\n TuiSelectDirective,\n TuiTextfieldComponent,\n TuiNativeSelectComponent,\n TuiNativeSelectGroupComponent,\n ],\n})\nexport class TuiSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-components-select.js","sources":["../../../projects/kit/components/select/native-select/native-select.component.ts","../../../projects/kit/components/select/native-select/native-select.template.html","../../../projects/kit/components/select/native-select/native-select-group.component.ts","../../../projects/kit/components/select/native-select/native-select-group.template.html","../../../projects/kit/components/select/select-options.ts","../../../projects/kit/components/select/select.component.ts","../../../projects/kit/components/select/select.template.html","../../../projects/kit/components/select/select.directive.ts","../../../projects/kit/components/select/select.module.ts","../../../projects/kit/components/select/taiga-ui-kit-components-select.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, Input, TemplateRef} from '@angular/core';\nimport {tuiAsDataList} from '@taiga-ui/core';\nimport {AbstractTuiNativeSelect} from '@taiga-ui/kit/abstract';\n\n@Component({\n selector: 'select[tuiSelect]:not([labels]):not([multiple])',\n templateUrl: './native-select.template.html',\n providers: [\n tuiAsDataList(TuiNativeSelectComponent),\n {\n provide: TemplateRef,\n deps: [TuiNativeSelectComponent],\n useFactory: ({datalist}: TuiNativeSelectComponent) => datalist,\n },\n {\n provide: AbstractTuiNativeSelect,\n useExisting: TuiNativeSelectComponent,\n },\n ],\n host: {\n '[attr.aria-invalid]': 'host.invalid',\n '[disabled]': 'host.disabled || control.readOnly',\n '[tabIndex]': 'host.focusable ? 0 : -1',\n '[value]': 'host.value',\n '(change)': 'host.onValueChange($event.target.value)',\n },\n styleUrls: ['./native-select.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiNativeSelectComponent extends AbstractTuiNativeSelect {\n @Input()\n items: readonly string[] | null = [];\n}\n","<tui-data-list-wrapper\n *tuiDataList\n [items]=\"items\"\n [disabledItemHandler]=\"disabledItemHandler || itemsHandlers.disabledItemHandler\"\n></tui-data-list-wrapper>\n<option\n *ngFor=\"let option of items\"\n [value]=\"option\"\n [disabled]=\"disabledItemHandler ? disabledItemHandler(option) : itemsHandlers.disabledItemHandler(option)\"\n>\n {{ option }}\n</option>\n","import {ChangeDetectionStrategy, Component, Input, TemplateRef} from '@angular/core';\nimport {tuiAsDataList} from '@taiga-ui/core';\nimport {AbstractTuiNativeSelect} from '@taiga-ui/kit/abstract';\n\n@Component({\n selector: 'select[tuiSelect][labels]:not([multiple])',\n templateUrl: './native-select-group.template.html',\n providers: [\n tuiAsDataList(TuiNativeSelectGroupComponent),\n {\n provide: TemplateRef,\n deps: [TuiNativeSelectGroupComponent],\n useFactory: ({datalist}: TuiNativeSelectGroupComponent) => datalist,\n },\n {\n provide: AbstractTuiNativeSelect,\n useExisting: TuiNativeSelectGroupComponent,\n },\n ],\n host: {\n '[attr.aria-invalid]': 'host.invalid',\n '[disabled]': 'host.disabled || control.readOnly',\n '[tabIndex]': 'host.focusable ? 0 : -1',\n '[value]': 'host.value',\n '(change)': 'host.onValueChange($event.target.value)',\n },\n styleUrls: ['./native-select.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiNativeSelectGroupComponent extends AbstractTuiNativeSelect {\n @Input()\n items: readonly string[][] | null = [];\n\n @Input()\n labels: readonly string[] = [];\n}\n","<tui-data-list-wrapper\n *tuiDataList\n [items]=\"items\"\n [labels]=\"labels\"\n [disabledItemHandler]=\"disabledItemHandler || itemsHandlers.disabledItemHandler\"\n></tui-data-list-wrapper>\n<optgroup\n *ngFor=\"let group of items; let index = index\"\n [label]=\"labels[index]\"\n>\n <option\n *ngFor=\"let option of group\"\n [value]=\"option\"\n [disabled]=\"disabledItemHandler ? disabledItemHandler(option) : itemsHandlers.disabledItemHandler(option)\"\n >\n {{ option }}\n </option>\n</optgroup>\n","import {InjectionToken, ValueProvider} from '@angular/core';\nimport {TuiValueContentContext} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport interface TuiSelectOptions<T> {\n readonly valueContent: PolymorpheusContent<TuiValueContentContext<T>>;\n}\n\nexport const TUI_SELECT_DEFAULT_OPTIONS: TuiSelectOptions<unknown> = {\n valueContent: ``,\n};\n\n/**\n * Default parameters for Select component\n */\nexport const TUI_SELECT_OPTIONS = new InjectionToken<TuiSelectOptions<unknown>>(\n `[TUI_SELECT_OPTIONS]`,\n {\n factory: () => TUI_SELECT_DEFAULT_OPTIONS,\n },\n);\n\nexport const tuiSelectOptionsProvider: <T>(\n options: Partial<TuiSelectOptions<T>>,\n) => ValueProvider = <T>(options: Partial<TuiSelectOptions<T>>) => ({\n provide: TUI_SELECT_OPTIONS,\n useValue: {...TUI_SELECT_DEFAULT_OPTIONS, ...options},\n});\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n Inject,\n Input,\n Optional,\n Self,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiNullableControl,\n TUI_IS_MOBILE,\n TuiActiveZoneDirective,\n tuiAsControl,\n tuiAsFocusableItemAccessor,\n TuiContextWithImplicit,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n tuiIsNativeFocused,\n} from '@taiga-ui/cdk';\nimport {\n TUI_TEXTFIELD_CLEANER,\n tuiAsDataListHost,\n tuiAsOptionContent,\n TuiDataListDirective,\n TuiDataListHost,\n TuiHostedDropdownComponent,\n TuiPrimitiveTextfieldComponent,\n TuiSizeL,\n TuiSizeM,\n TuiSizeS,\n TuiTextfieldCleanerDirective,\n TuiValueContentContext,\n} from '@taiga-ui/core';\nimport {AbstractTuiNativeSelect} from '@taiga-ui/kit/abstract';\nimport {TUI_ARROW_MODE, TuiArrowMode} from '@taiga-ui/kit/components/arrow';\nimport {TUI_SELECT_OPTION} from '@taiga-ui/kit/components/select-option';\nimport {FIXED_DROPDOWN_CONTROLLER_PROVIDER} from '@taiga-ui/kit/providers';\nimport {TUI_ITEMS_HANDLERS, TuiItemsHandlers} from '@taiga-ui/kit/tokens';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nimport {TUI_SELECT_OPTIONS, TuiSelectOptions} from './select-options';\n\n@Component({\n selector: 'tui-select',\n templateUrl: './select.template.html',\n styleUrls: ['./select.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsFocusableItemAccessor(TuiSelectComponent),\n tuiAsControl(TuiSelectComponent),\n tuiAsDataListHost(TuiSelectComponent),\n tuiAsOptionContent(TUI_SELECT_OPTION),\n ],\n viewProviders: [FIXED_DROPDOWN_CONTROLLER_PROVIDER],\n})\nexport class TuiSelectComponent<T>\n extends AbstractTuiNullableControl<T>\n implements TuiFocusableElementAccessor, TuiDataListHost<T>\n{\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n @ViewChild(TuiHostedDropdownComponent)\n private readonly hostedDropdown?: TuiHostedDropdownComponent;\n\n @ContentChild(AbstractTuiNativeSelect, {static: true})\n private readonly nativeSelect?: AbstractTuiNativeSelect;\n\n @Input()\n @tuiDefaultProp()\n stringify: TuiItemsHandlers<T>['stringify'] = this.itemsHandlers.stringify;\n\n @Input()\n @tuiDefaultProp()\n identityMatcher: TuiItemsHandlers<T>['identityMatcher'] =\n this.itemsHandlers.identityMatcher;\n\n @Input()\n @tuiDefaultProp()\n valueContent: TuiSelectOptions<T>['valueContent'] = this.options.valueContent;\n\n @ContentChild(TuiDataListDirective, {read: TemplateRef})\n readonly datalist: PolymorpheusContent<\n TuiContextWithImplicit<TuiActiveZoneDirective>\n > = '';\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TUI_TEXTFIELD_CLEANER)\n private readonly textfieldCleaner: TuiTextfieldCleanerDirective,\n @Inject(TUI_ARROW_MODE)\n private readonly arrowMode: TuiArrowMode,\n @Inject(TUI_ITEMS_HANDLERS)\n private readonly itemsHandlers: TuiItemsHandlers<T>,\n @Inject(TUI_SELECT_OPTIONS)\n private readonly options: TuiSelectOptions<T>,\n @Inject(TUI_IS_MOBILE)\n readonly isMobile: boolean,\n ) {\n super(control, changeDetectorRef);\n }\n\n get arrow(): PolymorpheusContent<\n TuiContextWithImplicit<TuiSizeL | TuiSizeM | TuiSizeS>\n > {\n return !this.interactive ? this.arrowMode.disabled : this.arrowMode.interactive;\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.textfield ? this.textfield.nativeFocusableElement : null;\n }\n\n get focused(): boolean {\n return (\n tuiIsNativeFocused(this.nativeFocusableElement) ||\n (!!this.hostedDropdown && this.hostedDropdown.focused)\n );\n }\n\n get nativeDropdownMode(): boolean {\n return !!this.nativeSelect && this.isMobile;\n }\n\n get computedValue(): string {\n return this.value === null ? '' : this.stringify(this.value) || ' ';\n }\n\n get computedContent(): PolymorpheusContent<TuiValueContentContext<T>> {\n return this.valueContent || this.computedValue;\n }\n\n onValueChange(value: T): void {\n if (!value) {\n this.value = null;\n } else {\n this.value = value || null;\n }\n }\n\n onActiveZone(active: boolean): void {\n this.updateFocused(active);\n }\n\n onKeyDownDelete(): void {\n if (this.textfieldCleaner.cleaner) {\n this.value = null;\n }\n }\n\n handleOption(option: T): void {\n this.focusInput();\n this.value = option;\n this.hostedDropdown?.updateOpen(false);\n }\n\n private focusInput(preventScroll: boolean = false): void {\n if (this.nativeFocusableElement) {\n this.nativeFocusableElement.focus({preventScroll});\n }\n }\n}\n","<tui-hosted-dropdown\n class=\"t-hosted\"\n [canOpen]=\"interactive && !nativeDropdownMode\"\n [content]=\"datalist || ''\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n automation-id=\"tui-select__textfield\"\n class=\"t-textfield\"\n [tuiTextfieldIcon]=\"arrow ? icon : ''\"\n [editable]=\"false\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoActive]=\"pseudoActive\"\n [invalid]=\"computedInvalid\"\n [nativeId]=\"nativeId\"\n [readOnly]=\"readOnly\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"computedFocusable\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange($any($event))\"\n (keydown.delete.prevent)=\"onKeyDownDelete()\"\n (keydown.backspace.prevent)=\"onKeyDownDelete()\"\n >\n <ng-content></ng-content>\n <ng-content\n select=\"input\"\n ngProjectAs=\"input\"\n ></ng-content>\n\n <ng-template #select>\n <ng-content\n *ngIf=\"isMobile\"\n select=\"select\"\n ></ng-content>\n </ng-template>\n\n <ng-container\n *ngTemplateOutlet=\"select\"\n ngProjectAs=\"select\"\n ></ng-container>\n\n <div\n *ngIf=\"value !== null\"\n ngProjectAs=\"tuiContent\"\n automation-id=\"tui-select__value\"\n class=\"t-value\"\n >\n <div\n *polymorpheusOutlet=\"computedContent as text; context: {$implicit: value, active: computedFocused}\"\n class=\"t-primitive-value\"\n [textContent]=\"text\"\n ></div>\n </div>\n </tui-primitive-textfield>\n\n <ng-template #icon>\n <div\n tuiWrapper\n appearance=\"icon\"\n class=\"t-icon\"\n >\n <ng-container *polymorpheusOutlet=\"arrow\"></ng-container>\n </div>\n </ng-template>\n</tui-hosted-dropdown>\n","import {Directive} from '@angular/core';\nimport {AbstractTuiTextfieldHost, tuiAsTextfieldHost} from '@taiga-ui/core';\n\nimport {TuiSelectComponent} from './select.component';\n\n@Directive({\n selector: 'tui-select',\n providers: [tuiAsTextfieldHost(TuiSelectDirective)],\n})\nexport class TuiSelectDirective extends AbstractTuiTextfieldHost<\n TuiSelectComponent<unknown>\n> {\n override get readOnly(): boolean {\n return true;\n }\n\n override get value(): string {\n return this.host.computedValue;\n }\n\n onValueChange(value: string): void {\n this.host.onValueChange(value);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiActiveZoneModule} from '@taiga-ui/cdk';\nimport {\n TuiDataListModule,\n TuiHostedDropdownModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldComponent,\n TuiTextfieldControllerModule,\n TuiWrapperModule,\n} from '@taiga-ui/core';\nimport {TuiArrowModule} from '@taiga-ui/kit/components/arrow';\nimport {TuiDataListWrapperModule} from '@taiga-ui/kit/components/data-list-wrapper';\nimport {TuiSelectOptionModule} from '@taiga-ui/kit/components/select-option';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiNativeSelectComponent} from './native-select/native-select.component';\nimport {TuiNativeSelectGroupComponent} from './native-select/native-select-group.component';\nimport {TuiSelectComponent} from './select.component';\nimport {TuiSelectDirective} from './select.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiActiveZoneModule,\n TuiPrimitiveTextfieldModule,\n TuiHostedDropdownModule,\n TuiSelectOptionModule,\n TuiArrowModule,\n TuiWrapperModule,\n TuiTextfieldControllerModule,\n TuiDataListWrapperModule,\n TuiDataListModule,\n ],\n declarations: [\n TuiSelectComponent,\n TuiSelectDirective,\n TuiNativeSelectComponent,\n TuiNativeSelectGroupComponent,\n ],\n exports: [\n TuiSelectComponent,\n TuiSelectDirective,\n TuiTextfieldComponent,\n TuiNativeSelectComponent,\n TuiNativeSelectGroupComponent,\n ],\n})\nexport class TuiSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1"],"mappings":"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"}
@@ -179,7 +179,7 @@ class TuiSliderKeyStepsDirective extends AbstractTuiControl {
179
179
  return this.keySteps[this.keySteps.length - 1][1];
180
180
  }
181
181
  updateControlValue() {
182
- this.updateValue(tuiPercentageToKeyStepValue(this.slider.valuePercentage, this.keySteps));
182
+ this.value = tuiPercentageToKeyStepValue(this.slider.valuePercentage, this.keySteps);
183
183
  }
184
184
  writeValue(controlValue) {
185
185
  if (controlValue === null) {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-slider.js","sources":["../../../projects/kit/components/slider/slider-options.ts","../../../projects/kit/components/slider/slider.component.ts","../../../projects/kit/components/slider/helpers/slider-key-steps.directive.ts","../../../projects/kit/components/slider/helpers/slider-readonly.directive.ts","../../../projects/kit/components/slider/helpers/slider-thumb-label/slider-thumb-label.component.ts","../../../projects/kit/components/slider/helpers/slider-thumb-label/slider-thumb-label.template.html","../../../projects/kit/components/slider/slider.module.ts","../../../projects/kit/components/slider/taiga-ui-kit-components-slider.ts"],"sourcesContent":["import {InjectionToken, ValueProvider} from '@angular/core';\nimport {TuiSizeS} from '@taiga-ui/core';\n\nexport interface TuiSliderOptions {\n readonly size: TuiSizeS;\n readonly trackColor: string;\n}\n\nexport const TUI_SLIDER_DEFAULT_OPTIONS: TuiSliderOptions = {\n size: `m`,\n trackColor: `var(--tui-base-03)`,\n};\n\n/**\n * Default parameters for Slider component\n */\nexport const TUI_SLIDER_OPTIONS = new InjectionToken<TuiSliderOptions>(\n `[TUI_SLIDER_OPTIONS]`,\n {factory: () => TUI_SLIDER_DEFAULT_OPTIONS},\n);\n\nexport function tuiSliderOptionsProvider(\n options: Partial<TuiSliderOptions>,\n): ValueProvider {\n return {\n provide: TUI_SLIDER_OPTIONS,\n useValue: {...TUI_SLIDER_DEFAULT_OPTIONS, ...options},\n };\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Inject,\n Injector,\n Input,\n Optional,\n Self,\n} from '@angular/core';\nimport {NgControl, NgModel} from '@angular/forms';\nimport {USER_AGENT} from '@ng-web-apis/common';\nimport {\n CHROMIUM_EDGE_START_VERSION,\n tuiDefaultProp,\n tuiIsEdgeOlderThan,\n tuiPure,\n tuiWatch,\n} from '@taiga-ui/cdk';\nimport {TuiSizeS} from '@taiga-ui/core';\nimport {take} from 'rxjs/operators';\n\n// TODO: find the best way for prevent cycle\n// eslint-disable-next-line import/no-cycle\nimport {TuiSliderKeyStepsDirective} from './helpers/slider-key-steps.directive';\nimport {TUI_SLIDER_OPTIONS, TuiSliderOptions} from './slider-options';\n\n@Component({\n /**\n * We have to call our component as `<input tuiSlider type=\"range\" ... />`\n * because otherwise built-in angular\n * {@link https://github.com/angular/angular/blob/master/packages/forms/src/directives/range_value_accessor.ts#L45 RangeValueAccessor}\n * cannot be matched by its CSS selector.\n */\n selector: 'input[type=range][tuiSlider]',\n template: '',\n styleUrls: ['./slider.style.less'],\n host: {\n /**\n * For change detection.\n * Webkit does not have built-in method for customization of filling progress (as Firefox).\n * We draw filling of progress by `background: linear-gradient(...)` of the track.\n * This function triggers change detection (for {@link valuePercentage} function) when we drag thumb of the input.\n */\n '(input)': '0',\n '[style.--tui-slider-track-color]': 'options.trackColor',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiSliderComponent {\n @Input()\n @HostBinding('attr.data-size')\n @tuiDefaultProp()\n size: TuiSizeS = this.options.size;\n\n @Input()\n @tuiDefaultProp()\n segments = 1;\n\n get min(): number {\n return Number(this.elementRef.nativeElement.min);\n }\n\n get max(): number {\n return Number(this.elementRef.nativeElement.max || 100);\n }\n\n get step(): number {\n return Number(this.elementRef.nativeElement.step) || 1;\n }\n\n get value(): number {\n const {elementRef, control, hasKeySteps} = this;\n\n if (!hasKeySteps && control instanceof NgModel) {\n /**\n * If developer uses `[(ngModel)]` and programmatically change value,\n * the `elementRef.nativeElement.value` is equal to the previous value at this moment.\n */\n return control.viewModel;\n }\n\n return Number(elementRef.nativeElement.value) || 0;\n }\n\n set value(newValue: number) {\n this.elementRef.nativeElement.value = `${newValue}`;\n }\n\n @HostBinding('style.--tui-slider-fill-percentage.%')\n get valuePercentage(): number {\n return (100 * (this.value - this.min)) / (this.max - this.min) || 0;\n }\n\n @HostBinding('style.--tui-slider-segment-width.%')\n get segmentWidth(): number {\n return 100 / Math.max(1, this.segments);\n }\n\n // TODO: drop support of legacy Edge (EdgeHTML) in v4.x\n @HostBinding('class._old-edge')\n get isOldEdge(): boolean {\n return tuiIsEdgeOlderThan(CHROMIUM_EDGE_START_VERSION, this.userAgent);\n }\n\n @tuiPure\n get hasKeySteps(): boolean {\n return Boolean(this.injector.get(TuiSliderKeyStepsDirective, null));\n }\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n private readonly control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TUI_SLIDER_OPTIONS) readonly options: TuiSliderOptions,\n @Inject(ElementRef) readonly elementRef: ElementRef<HTMLInputElement>,\n @Inject(USER_AGENT) private readonly userAgent: string,\n @Inject(Injector) private readonly injector: Injector,\n ) {\n if (control instanceof NgModel) {\n /**\n * The ValueAccessor.writeValue method is called twice on any value accessor during component initialization,\n * when a control is bound using [(ngModel)], first time with a phantom null value.\n * With `changeDetection: ChangeDetectionStrategy.OnPush` the second call of writeValue with real value don't re-render the view.\n * ___\n * See this {@link https://github.com/angular/angular/issues/14988 issue}\n */\n control.valueChanges?.pipe(tuiWatch(changeDetectorRef), take(1)).subscribe();\n }\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n forwardRef,\n HostListener,\n Inject,\n Input,\n Optional,\n Self,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiControl,\n tuiAssert,\n tuiClamp,\n TuiFocusableElementAccessor,\n tuiIsNativeFocused,\n} from '@taiga-ui/cdk';\nimport {TuiKeySteps} from '@taiga-ui/kit/types';\nimport {\n tuiKeyStepValueToPercentage,\n tuiPercentageToKeyStepValue,\n} from '@taiga-ui/kit/utils';\n\n// TODO: find the best way for prevent cycle\n// eslint-disable-next-line import/no-cycle\nimport {TuiSliderComponent} from '../slider.component';\n\n@Directive({\n selector: 'input[tuiSlider][keySteps]',\n host: {\n '[attr.aria-valuenow]': 'safeCurrentValue',\n '[attr.aria-valuemin]': 'min',\n '[attr.aria-valuemax]': 'max',\n },\n})\nexport class TuiSliderKeyStepsDirective\n extends AbstractTuiControl<number>\n implements TuiFocusableElementAccessor\n{\n @Input()\n keySteps!: TuiKeySteps;\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.computedDisabled ? null : this.elementRef.nativeElement;\n }\n\n get focused(): boolean {\n return tuiIsNativeFocused(this.nativeFocusableElement);\n }\n\n get min(): number {\n return this.keySteps[0][1];\n }\n\n get max(): number {\n return this.keySteps[this.keySteps.length - 1][1];\n }\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLInputElement>,\n @Inject(forwardRef(() => TuiSliderComponent))\n private readonly slider: TuiSliderComponent,\n ) {\n super(control, changeDetectorRef);\n }\n\n @HostListener('input')\n @HostListener('change')\n updateControlValue(): void {\n this.updateValue(\n tuiPercentageToKeyStepValue(this.slider.valuePercentage, this.keySteps),\n );\n }\n\n override writeValue(controlValue: number | null): void {\n if (controlValue === null) {\n return;\n }\n\n const clampedControlValue = tuiClamp(controlValue, this.min, this.max);\n\n tuiAssert.assert(\n controlValue === clampedControlValue,\n '\\n[SliderKeySteps]: You cannot programmatically set value which is less/more than min/max',\n );\n\n this.slider.value = this.transformToNativeValue(clampedControlValue);\n }\n\n protected getFallbackValue(): number {\n return 0;\n }\n\n private transformToNativeValue(controlValue: number): number {\n const {min, max} = this.slider;\n const newValuePercentage = tuiKeyStepValueToPercentage(\n controlValue,\n this.keySteps,\n );\n\n return (newValuePercentage * (max - min)) / 100 + min;\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Directive, ElementRef, HostListener, Inject, Input, Self} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n ALWAYS_TRUE_HANDLER,\n tuiCoerceBooleanProperty,\n tuiDefaultProp,\n TuiDestroyService,\n tuiTypedFromEvent,\n} from '@taiga-ui/cdk';\nimport {combineLatest, merge, Observable} from 'rxjs';\nimport {filter, map, takeUntil, tap} from 'rxjs/operators';\n\nconst SLIDER_INTERACTION_KEYS = new Set([\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n]);\n\n/**\n * Native <input type='range' readonly> doesn't work.\n * This directive imitates this native behaviour.\n */\n@Directive({\n selector: 'input[tuiSlider][readonly]',\n providers: [TuiDestroyService],\n})\nexport class TuiSliderReadonlyDirective {\n @Input()\n @tuiDefaultProp()\n readonly: boolean | string = true;\n\n constructor(\n @Inject(ElementRef) elementRef: ElementRef<HTMLInputElement>,\n @Inject(DOCUMENT) documentRef: Document,\n @Self()\n @Inject(TuiDestroyService)\n destroy$: Observable<unknown>,\n ) {\n const touchStart$ = tuiTypedFromEvent(elementRef.nativeElement, 'touchstart', {\n passive: false,\n });\n const touchMove$ = tuiTypedFromEvent(documentRef, 'touchmove', {\n passive: false,\n });\n const touchEnd$ = tuiTypedFromEvent(documentRef, 'touchend', {\n passive: true,\n });\n\n const shouldPreventMove$ = merge(\n touchStart$.pipe(\n tap(e => this.preventEvent(e)),\n map(ALWAYS_TRUE_HANDLER),\n ),\n touchEnd$.pipe(map(ALWAYS_FALSE_HANDLER)),\n );\n\n /**\n * @bad TODO think about another solution.\n * Keep in mind that preventing touch event (on slider) inside `@HostListener('touchstart')` doesn't work for mobile chrome.\n */\n combineLatest([touchMove$, shouldPreventMove$])\n .pipe(\n filter(([_, shouldPreventMove]) => shouldPreventMove),\n takeUntil(destroy$),\n )\n .subscribe(([moveEvent]) => this.preventEvent(moveEvent));\n }\n\n @HostListener('mousedown', ['$event'])\n preventEvent(event: Event): void {\n if (event.cancelable && tuiCoerceBooleanProperty(this.readonly)) {\n event.preventDefault();\n }\n }\n\n @HostListener('keydown', ['$event'])\n preventKeyboardInteraction(event: KeyboardEvent): void {\n if (SLIDER_INTERACTION_KEYS.has(event.key)) {\n this.preventEvent(event);\n }\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {tuiAssert} from '@taiga-ui/cdk';\nimport {TuiSizeS} from '@taiga-ui/core';\n\nimport {TuiSliderComponent} from '../../slider.component';\n\n@Component({\n selector: '[tuiSliderThumbLabel]',\n templateUrl: './slider-thumb-label.template.html',\n styleUrls: ['./slider-thumb-label.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiSliderThumbLabelComponent implements AfterContentInit {\n @ContentChild(TuiSliderComponent)\n readonly slider?: TuiSliderComponent;\n\n @ContentChild(NgControl)\n readonly control?: NgControl;\n\n get size(): TuiSizeS {\n return this.slider?.size || 'm';\n }\n\n get ratio(): number {\n return (this.slider?.valuePercentage || 0) / 100;\n }\n\n get ghostLeft(): number {\n return this.ratio * (this.slider?.elementRef.nativeElement.offsetWidth || 0);\n }\n\n ngAfterContentInit(): void {\n tuiAssert.assert(\n Boolean(this.control?.valueChanges),\n '\\n[tuiSliderThumbLabel] expected <input tuiSlider type=\"range\" /> to use Angular Forms.\\n' +\n 'Use [(ngModel)] or [formControl] or formControlName for correct work.',\n );\n }\n}\n","<ng-container *ngIf=\"control?.valueChanges | async\"></ng-container>\n\n<div\n class=\"t-ghost\"\n [attr.data-size]=\"size\"\n [style.left.px]=\"ghostLeft\"\n [style.--tui-slider-thumb-ratio]=\"ratio\"\n>\n <ng-content></ng-content>\n</div>\n\n<ng-content select=\"input[type=range]\"></ng-content>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\n\nimport {TuiSliderKeyStepsDirective} from './helpers/slider-key-steps.directive';\nimport {TuiSliderReadonlyDirective} from './helpers/slider-readonly.directive';\nimport {TuiSliderThumbLabelComponent} from './helpers/slider-thumb-label/slider-thumb-label.component';\nimport {TuiSliderComponent} from './slider.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n TuiSliderComponent,\n TuiSliderThumbLabelComponent,\n TuiSliderKeyStepsDirective,\n TuiSliderReadonlyDirective,\n ],\n exports: [\n TuiSliderComponent,\n TuiSliderThumbLabelComponent,\n TuiSliderKeyStepsDirective,\n TuiSliderReadonlyDirective,\n ],\n})\nexport class TuiSliderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-components-slider.js","sources":["../../../projects/kit/components/slider/slider-options.ts","../../../projects/kit/components/slider/slider.component.ts","../../../projects/kit/components/slider/helpers/slider-key-steps.directive.ts","../../../projects/kit/components/slider/helpers/slider-readonly.directive.ts","../../../projects/kit/components/slider/helpers/slider-thumb-label/slider-thumb-label.component.ts","../../../projects/kit/components/slider/helpers/slider-thumb-label/slider-thumb-label.template.html","../../../projects/kit/components/slider/slider.module.ts","../../../projects/kit/components/slider/taiga-ui-kit-components-slider.ts"],"sourcesContent":["import {InjectionToken, ValueProvider} from '@angular/core';\nimport {TuiSizeS} from '@taiga-ui/core';\n\nexport interface TuiSliderOptions {\n readonly size: TuiSizeS;\n readonly trackColor: string;\n}\n\nexport const TUI_SLIDER_DEFAULT_OPTIONS: TuiSliderOptions = {\n size: `m`,\n trackColor: `var(--tui-base-03)`,\n};\n\n/**\n * Default parameters for Slider component\n */\nexport const TUI_SLIDER_OPTIONS = new InjectionToken<TuiSliderOptions>(\n `[TUI_SLIDER_OPTIONS]`,\n {factory: () => TUI_SLIDER_DEFAULT_OPTIONS},\n);\n\nexport function tuiSliderOptionsProvider(\n options: Partial<TuiSliderOptions>,\n): ValueProvider {\n return {\n provide: TUI_SLIDER_OPTIONS,\n useValue: {...TUI_SLIDER_DEFAULT_OPTIONS, ...options},\n };\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Inject,\n Injector,\n Input,\n Optional,\n Self,\n} from '@angular/core';\nimport {NgControl, NgModel} from '@angular/forms';\nimport {USER_AGENT} from '@ng-web-apis/common';\nimport {\n CHROMIUM_EDGE_START_VERSION,\n tuiDefaultProp,\n tuiIsEdgeOlderThan,\n tuiPure,\n tuiWatch,\n} from '@taiga-ui/cdk';\nimport {TuiSizeS} from '@taiga-ui/core';\nimport {take} from 'rxjs/operators';\n\n// TODO: find the best way for prevent cycle\n// eslint-disable-next-line import/no-cycle\nimport {TuiSliderKeyStepsDirective} from './helpers/slider-key-steps.directive';\nimport {TUI_SLIDER_OPTIONS, TuiSliderOptions} from './slider-options';\n\n@Component({\n /**\n * We have to call our component as `<input tuiSlider type=\"range\" ... />`\n * because otherwise built-in angular\n * {@link https://github.com/angular/angular/blob/master/packages/forms/src/directives/range_value_accessor.ts#L45 RangeValueAccessor}\n * cannot be matched by its CSS selector.\n */\n selector: 'input[type=range][tuiSlider]',\n template: '',\n styleUrls: ['./slider.style.less'],\n host: {\n /**\n * For change detection.\n * Webkit does not have built-in method for customization of filling progress (as Firefox).\n * We draw filling of progress by `background: linear-gradient(...)` of the track.\n * This function triggers change detection (for {@link valuePercentage} function) when we drag thumb of the input.\n */\n '(input)': '0',\n '[style.--tui-slider-track-color]': 'options.trackColor',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiSliderComponent {\n @Input()\n @HostBinding('attr.data-size')\n @tuiDefaultProp()\n size: TuiSizeS = this.options.size;\n\n @Input()\n @tuiDefaultProp()\n segments = 1;\n\n get min(): number {\n return Number(this.elementRef.nativeElement.min);\n }\n\n get max(): number {\n return Number(this.elementRef.nativeElement.max || 100);\n }\n\n get step(): number {\n return Number(this.elementRef.nativeElement.step) || 1;\n }\n\n get value(): number {\n const {elementRef, control, hasKeySteps} = this;\n\n if (!hasKeySteps && control instanceof NgModel) {\n /**\n * If developer uses `[(ngModel)]` and programmatically change value,\n * the `elementRef.nativeElement.value` is equal to the previous value at this moment.\n */\n return control.viewModel;\n }\n\n return Number(elementRef.nativeElement.value) || 0;\n }\n\n set value(newValue: number) {\n this.elementRef.nativeElement.value = `${newValue}`;\n }\n\n @HostBinding('style.--tui-slider-fill-percentage.%')\n get valuePercentage(): number {\n return (100 * (this.value - this.min)) / (this.max - this.min) || 0;\n }\n\n @HostBinding('style.--tui-slider-segment-width.%')\n get segmentWidth(): number {\n return 100 / Math.max(1, this.segments);\n }\n\n // TODO: drop support of legacy Edge (EdgeHTML) in v4.x\n @HostBinding('class._old-edge')\n get isOldEdge(): boolean {\n return tuiIsEdgeOlderThan(CHROMIUM_EDGE_START_VERSION, this.userAgent);\n }\n\n @tuiPure\n get hasKeySteps(): boolean {\n return Boolean(this.injector.get(TuiSliderKeyStepsDirective, null));\n }\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n private readonly control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TUI_SLIDER_OPTIONS) readonly options: TuiSliderOptions,\n @Inject(ElementRef) readonly elementRef: ElementRef<HTMLInputElement>,\n @Inject(USER_AGENT) private readonly userAgent: string,\n @Inject(Injector) private readonly injector: Injector,\n ) {\n if (control instanceof NgModel) {\n /**\n * The ValueAccessor.writeValue method is called twice on any value accessor during component initialization,\n * when a control is bound using [(ngModel)], first time with a phantom null value.\n * With `changeDetection: ChangeDetectionStrategy.OnPush` the second call of writeValue with real value don't re-render the view.\n * ___\n * See this {@link https://github.com/angular/angular/issues/14988 issue}\n */\n control.valueChanges?.pipe(tuiWatch(changeDetectorRef), take(1)).subscribe();\n }\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n forwardRef,\n HostListener,\n Inject,\n Input,\n Optional,\n Self,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiControl,\n tuiAssert,\n tuiClamp,\n TuiFocusableElementAccessor,\n tuiIsNativeFocused,\n} from '@taiga-ui/cdk';\nimport {TuiKeySteps} from '@taiga-ui/kit/types';\nimport {\n tuiKeyStepValueToPercentage,\n tuiPercentageToKeyStepValue,\n} from '@taiga-ui/kit/utils';\n\n// TODO: find the best way for prevent cycle\n// eslint-disable-next-line import/no-cycle\nimport {TuiSliderComponent} from '../slider.component';\n\n@Directive({\n selector: 'input[tuiSlider][keySteps]',\n host: {\n '[attr.aria-valuenow]': 'safeCurrentValue',\n '[attr.aria-valuemin]': 'min',\n '[attr.aria-valuemax]': 'max',\n },\n})\nexport class TuiSliderKeyStepsDirective\n extends AbstractTuiControl<number>\n implements TuiFocusableElementAccessor\n{\n @Input()\n keySteps!: TuiKeySteps;\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.computedDisabled ? null : this.elementRef.nativeElement;\n }\n\n get focused(): boolean {\n return tuiIsNativeFocused(this.nativeFocusableElement);\n }\n\n get min(): number {\n return this.keySteps[0][1];\n }\n\n get max(): number {\n return this.keySteps[this.keySteps.length - 1][1];\n }\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLInputElement>,\n @Inject(forwardRef(() => TuiSliderComponent))\n private readonly slider: TuiSliderComponent,\n ) {\n super(control, changeDetectorRef);\n }\n\n @HostListener('input')\n @HostListener('change')\n updateControlValue(): void {\n this.value = tuiPercentageToKeyStepValue(\n this.slider.valuePercentage,\n this.keySteps,\n );\n }\n\n override writeValue(controlValue: number | null): void {\n if (controlValue === null) {\n return;\n }\n\n const clampedControlValue = tuiClamp(controlValue, this.min, this.max);\n\n tuiAssert.assert(\n controlValue === clampedControlValue,\n '\\n[SliderKeySteps]: You cannot programmatically set value which is less/more than min/max',\n );\n\n this.slider.value = this.transformToNativeValue(clampedControlValue);\n }\n\n protected getFallbackValue(): number {\n return 0;\n }\n\n private transformToNativeValue(controlValue: number): number {\n const {min, max} = this.slider;\n const newValuePercentage = tuiKeyStepValueToPercentage(\n controlValue,\n this.keySteps,\n );\n\n return (newValuePercentage * (max - min)) / 100 + min;\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Directive, ElementRef, HostListener, Inject, Input, Self} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n ALWAYS_TRUE_HANDLER,\n tuiCoerceBooleanProperty,\n tuiDefaultProp,\n TuiDestroyService,\n tuiTypedFromEvent,\n} from '@taiga-ui/cdk';\nimport {combineLatest, merge, Observable} from 'rxjs';\nimport {filter, map, takeUntil, tap} from 'rxjs/operators';\n\nconst SLIDER_INTERACTION_KEYS = new Set([\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n]);\n\n/**\n * Native <input type='range' readonly> doesn't work.\n * This directive imitates this native behaviour.\n */\n@Directive({\n selector: 'input[tuiSlider][readonly]',\n providers: [TuiDestroyService],\n})\nexport class TuiSliderReadonlyDirective {\n @Input()\n @tuiDefaultProp()\n readonly: boolean | string = true;\n\n constructor(\n @Inject(ElementRef) elementRef: ElementRef<HTMLInputElement>,\n @Inject(DOCUMENT) documentRef: Document,\n @Self()\n @Inject(TuiDestroyService)\n destroy$: Observable<unknown>,\n ) {\n const touchStart$ = tuiTypedFromEvent(elementRef.nativeElement, 'touchstart', {\n passive: false,\n });\n const touchMove$ = tuiTypedFromEvent(documentRef, 'touchmove', {\n passive: false,\n });\n const touchEnd$ = tuiTypedFromEvent(documentRef, 'touchend', {\n passive: true,\n });\n\n const shouldPreventMove$ = merge(\n touchStart$.pipe(\n tap(e => this.preventEvent(e)),\n map(ALWAYS_TRUE_HANDLER),\n ),\n touchEnd$.pipe(map(ALWAYS_FALSE_HANDLER)),\n );\n\n /**\n * @bad TODO think about another solution.\n * Keep in mind that preventing touch event (on slider) inside `@HostListener('touchstart')` doesn't work for mobile chrome.\n */\n combineLatest([touchMove$, shouldPreventMove$])\n .pipe(\n filter(([_, shouldPreventMove]) => shouldPreventMove),\n takeUntil(destroy$),\n )\n .subscribe(([moveEvent]) => this.preventEvent(moveEvent));\n }\n\n @HostListener('mousedown', ['$event'])\n preventEvent(event: Event): void {\n if (event.cancelable && tuiCoerceBooleanProperty(this.readonly)) {\n event.preventDefault();\n }\n }\n\n @HostListener('keydown', ['$event'])\n preventKeyboardInteraction(event: KeyboardEvent): void {\n if (SLIDER_INTERACTION_KEYS.has(event.key)) {\n this.preventEvent(event);\n }\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {tuiAssert} from '@taiga-ui/cdk';\nimport {TuiSizeS} from '@taiga-ui/core';\n\nimport {TuiSliderComponent} from '../../slider.component';\n\n@Component({\n selector: '[tuiSliderThumbLabel]',\n templateUrl: './slider-thumb-label.template.html',\n styleUrls: ['./slider-thumb-label.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiSliderThumbLabelComponent implements AfterContentInit {\n @ContentChild(TuiSliderComponent)\n readonly slider?: TuiSliderComponent;\n\n @ContentChild(NgControl)\n readonly control?: NgControl;\n\n get size(): TuiSizeS {\n return this.slider?.size || 'm';\n }\n\n get ratio(): number {\n return (this.slider?.valuePercentage || 0) / 100;\n }\n\n get ghostLeft(): number {\n return this.ratio * (this.slider?.elementRef.nativeElement.offsetWidth || 0);\n }\n\n ngAfterContentInit(): void {\n tuiAssert.assert(\n Boolean(this.control?.valueChanges),\n '\\n[tuiSliderThumbLabel] expected <input tuiSlider type=\"range\" /> to use Angular Forms.\\n' +\n 'Use [(ngModel)] or [formControl] or formControlName for correct work.',\n );\n }\n}\n","<ng-container *ngIf=\"control?.valueChanges | async\"></ng-container>\n\n<div\n class=\"t-ghost\"\n [attr.data-size]=\"size\"\n [style.left.px]=\"ghostLeft\"\n [style.--tui-slider-thumb-ratio]=\"ratio\"\n>\n <ng-content></ng-content>\n</div>\n\n<ng-content select=\"input[type=range]\"></ng-content>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\n\nimport {TuiSliderKeyStepsDirective} from './helpers/slider-key-steps.directive';\nimport {TuiSliderReadonlyDirective} from './helpers/slider-readonly.directive';\nimport {TuiSliderThumbLabelComponent} from './helpers/slider-thumb-label/slider-thumb-label.component';\nimport {TuiSliderComponent} from './slider.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n TuiSliderComponent,\n TuiSliderThumbLabelComponent,\n TuiSliderKeyStepsDirective,\n TuiSliderReadonlyDirective,\n ],\n exports: [\n TuiSliderComponent,\n TuiSliderThumbLabelComponent,\n TuiSliderKeyStepsDirective,\n TuiSliderReadonlyDirective,\n ],\n})\nexport class TuiSliderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
@@ -92,7 +92,7 @@ class TuiTextAreaComponent extends AbstractTuiControl {
92
92
  this.updateFocused(focused);
93
93
  }
94
94
  onValueChange(value) {
95
- this.updateValue(value);
95
+ this.value = value;
96
96
  }
97
97
  onMouseDown(event) {
98
98
  if (event.target === this.nativeFocusableElement) {
@@ -119,7 +119,7 @@ TuiTextAreaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
119
119
  tuiAsControl(TuiTextAreaComponent),
120
120
  TEXTFIELD_CONTROLLER_PROVIDER,
121
121
  MODE_PROVIDER,
122
- ], queries: [{ propertyName: "textfield", first: true, predicate: TuiTextfieldComponent, descendants: true, read: ElementRef }], viewQueries: [{ propertyName: "focusableElement", first: true, predicate: ["focusableElement"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"hintOptions?.change$ | async\"></ng-container>\n<div\n tuiWrapper\n automation-id=\"tui-text-area__wrapper\"\n class=\"t-outline\"\n [appearance]=\"appearance\"\n [disabled]=\"disabled\"\n [focus]=\"computedFocused\"\n [hover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [invalid]=\"computedInvalid\"\n>\n <div\n *ngIf=\"hasCounter\"\n automation-id=\"tui-text-area__counter\"\n class=\"t-counter\"\n >\n {{ value.length }}/{{ maxLength }}\n </div>\n\n <label\n class=\"t-content\"\n (mousedown)=\"onMouseDown($event)\"\n >\n <div class=\"t-wrapper\">\n <div\n *ngIf=\"hasPlaceholder\"\n automation-id=\"tui-text-area__placeholder\"\n class=\"t-placeholder\"\n [class.t-placeholder_raised]=\"placeholderRaised\"\n >\n <ng-content></ng-content>\n </div>\n <tui-scrollbar\n automation-id=\"tui-text-area__scrollbar\"\n class=\"t-box\"\n [style.maxHeight.px]=\"computeMaxHeight\"\n >\n <div class=\"t-input-wrapper\">\n <div class=\"t-relative\">\n <div\n aria-hidden=\"true\"\n class=\"t-pseudo-content\"\n >\n <span [textContent]=\"fittedContent || nativeFocusableElement?.placeholder\"></span>\n <span\n class=\"t-pseudo-content__extra\"\n [textContent]=\"extraContent\"\n ></span>\n &nbsp;\n </div>\n <textarea\n #focusableElement\n automation-id=\"tui-text-area__native\"\n class=\"t-input\"\n [id]=\"id\"\n [tuiFocusable]=\"computedFocusable\"\n [disabled]=\"computedDisabled\"\n [ngModel]=\"value\"\n [readOnly]=\"readOnly\"\n (ngModelChange)=\"onValueChange($event)\"\n ></textarea>\n <ng-content select=\"textarea\"></ng-content>\n </div>\n </div>\n </tui-scrollbar>\n </div>\n <div class=\"t-icons\">\n <ng-container *ngIf=\"hasCleaner\">\n <tui-svg\n *polymorpheusOutlet=\"iconCleaner as src; context: {$implicit: size}\"\n tuiWrapper\n appearance=\"icon\"\n class=\"t-cleaner\"\n [src]=\"src\"\n (click.stop)=\"onValueChange('')\"\n ></tui-svg>\n </ng-container>\n <tui-tooltip\n *ngIf=\"hintOptions && hintOptions.content && !computedDisabled\"\n automation-id=\"tui-text-area__tooltip\"\n class=\"t-tooltip\"\n [describeId]=\"id\"\n [direction]=\"hintOptions.direction\"\n [appearance]=\"hintOptions.appearance\"\n [content]=\"hintOptions.content\"\n [showDelay]=\"hintOptions.showDelay\"\n [hideDelay]=\"hintOptions.hideDelay\"\n ></tui-tooltip>\n </div>\n </label>\n</div>\n", styles: [":host{position:relative;z-index:0;display:flex;font:var(--tui-font-text-m);flex-direction:column;min-height:var(--tui-textarea-height, 6.75rem);border-radius:var(--tui-radius-m);color:var(--tui-text-01)}:host[data-mode=onDark]{color:var(--tui-text-01-night)}:host[data-size=s]{--tui-textarea-height: 4.5625rem;font:var(--tui-font-text-s)}:host[data-size=m]{--tui-textarea-height: 5.5rem;font:var(--tui-font-text-s)}:host[data-size=m]._has-counter{--tui-textarea-height: 6.625rem}:host[data-size=l]._has-counter{--tui-textarea-height: 7.875rem}.t-outline{min-height:inherit}.t-content{display:block;margin-top:0;margin-bottom:0;min-height:inherit;box-sizing:border-box;overflow:hidden;cursor:text}:host._disabled .t-content{cursor:auto;opacity:var(--tui-disabled-opacity)}:host:not(._expandable) .t-content{position:absolute;top:0;left:0;bottom:1px;right:0;min-height:auto}:host._has-counter:not(._expandable) .t-content{bottom:1.6875rem}.t-wrapper{position:relative;width:100%;height:100%;min-height:inherit;padding-bottom:.4375rem;box-sizing:border-box}:host[data-size=s] .t-wrapper{padding-top:.375rem}:host[data-size=m]._label-outside .t-wrapper{padding-top:.75rem}:host[data-size=l]._label-outside .t-wrapper{padding-top:1rem}:host[data-size=m]:not(._label-outside) .t-wrapper{padding-top:1.25rem}:host[data-size=l]:not(._label-outside) .t-wrapper{padding-top:1.625rem}:host-context(table)[data-size=m]._label-outside .t-wrapper{padding-bottom:.75rem}:host-context(table)[data-size=l]._label-outside .t-wrapper{padding-bottom:1rem}.t-input-wrapper{min-height:inherit;width:100%;flex:1}.t-relative{position:relative;min-height:inherit}.t-box{display:flex;min-height:100%;width:100%}:host:not(._expandable) .t-box{height:100%}:host._has-counter._expandable .t-box{margin-bottom:1.25rem}.t-pseudo-content{white-space:pre-wrap;word-wrap:break-word;pointer-events:none;color:transparent;overflow:hidden;border:solid transparent;border-width:0 var(--border-end, 0) 0 var(--border-start, 0);border-inline-start-width:var(--border-start, 0);border-inline-end-width:var(--border-end, 0)}:host[data-size=m] .t-pseudo-content{padding:0 .75rem}:host[data-size=l] .t-pseudo-content{padding:0 1rem}.t-pseudo-content__extra{background-color:var(--tui-error-bg-night)}.t-input{padding:0;margin:0;border:0;border-radius:inherit;background:none;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;-webkit-appearance:none;-moz-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;width:100%;height:100%;box-sizing:border-box;resize:none;overflow:hidden;outline:none;border:solid transparent;border-width:0 var(--border-end, 0) 0 var(--border-start, 0);border-inline-start-width:var(--border-start, 0);border-inline-end-width:var(--border-end, 0)}.t-input:-webkit-autofill,.t-input:-webkit-autofill:hover,.t-input:-webkit-autofill:focus{caret-color:var(--tui-base-09);border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01)!important;border-color:var(--tui-autofill);-webkit-box-shadow:0 0 0 100rem var(--tui-autofill) inset!important}.t-input:not(:last-of-type){display:none}.t-input::-ms-input-placeholder{color:var(--tui-text-03);opacity:0}.t-input::placeholder{color:var(--tui-text-03);opacity:0}:host[data-mode=onDark] .t-input::-ms-input-placeholder{color:var(--tui-text-03-night)}:host[data-mode=onDark] .t-input::placeholder{color:var(--tui-text-03-night)}:host._focused .t-input:not(:read-only)::-ms-input-placeholder{opacity:1}:host._focused .t-input:not(:-moz-read-only)::placeholder{opacity:1}:host._focused .t-input:not(:read-only)::placeholder{opacity:1}:host[data-size=m] .t-input{padding:0 .75rem}:host[data-size=l] .t-input{padding:0 1rem}:host[data-mode=onDark]._disabled .t-input{color:var(--tui-text-03-night)}@supports (-webkit-marquee-repetition: infinite) and (object-fit: fill){:host._ios .t-input{padding-left:.8125rem}}.t-placeholder{transition-property:transform,font-size,color,letter-spacing;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;font:var(--tui-font-text-s);color:var(--tui-text-01);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:var(--tui-text-02);pointer-events:none;will-change:transform;transform:translateY(0);position:absolute;left:0;max-width:100%;padding:0 1rem;border:solid transparent;border-width:0 var(--border-end, 0) 0 var(--border-start, 0);border-inline-start-width:var(--border-start, 0);border-inline-end-width:var(--border-end, 0);box-sizing:border-box}.t-placeholder_raised{transform:translateY(-.625rem)}:host[data-size=m] .t-placeholder_raised{font:var(--tui-font-text-xs);transform:translateY(-.5rem);letter-spacing:.025rem}:host._invalid:not(._focused) .t-placeholder_raised,:host._invalid:not(._focused):hover .t-placeholder_raised{color:var(--tui-error-fill)}:host[data-mode=onDark]._invalid:not(._focused) .t-placeholder_raised,:host[data-mode=onDark]._invalid:not(._focused):hover .t-placeholder_raised{color:var(--tui-error-fill-night)}:host._focused .t-placeholder,:host[data-size=m]._focused._label-outside .t-placeholder,:host[data-size=l]._focused._label-outside .t-placeholder{color:var(--tui-text-03)}:host[data-size=l] .t-placeholder{font-size:.9375rem}:host[data-size=l] .t-placeholder_raised{font-size:.8156rem}:host[data-size=m]._focused:not(._label-outside) .t-placeholder,:host[data-size=l]._focused:not(._label-outside) .t-placeholder{color:var(--tui-text-01)}:host[data-mode=onDark] .t-placeholder{color:var(--tui-text-02-night)}:host[data-size=m][data-mode=onDark]._focused:not(._label-outside) .t-placeholder,:host[data-size=l][data-mode=onDark]._focused:not(._label-outside) .t-placeholder{color:var(--tui-text-01-night)}:host[data-mode=onDark]._focused .t-placeholder,:host[data-size=m][data-mode=onDark]._focused._label-outside .t-placeholder,:host[data-size=l][data-mode=onDark]._focused._label-outside .t-placeholder{color:var(--tui-text-02-night)}@supports (-webkit-hyphens: none){.t-placeholder{will-change:unset;transition-property:transform,color,letter-spacing}}:host[data-size=s] .t-placeholder{top:.375rem;padding:0 .75rem}:host[data-size=m] .t-placeholder{top:.75rem;padding:0 .75rem}:host[data-size=l] .t-placeholder{top:1.12rem}:host._label-outside .t-placeholder{overflow:visible;overflow:initial;height:auto;white-space:normal;white-space:initial}.t-icons{position:absolute;top:0;left:0;bottom:0;right:0;display:flex;justify-content:flex-end;pointer-events:none;padding:1rem .75rem}:host[data-size=m] .t-icons{padding:.75rem}.t-cleaner{position:relative;display:flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center;box-sizing:border-box;cursor:pointer;pointer-events:auto}:host._readonly .t-cleaner,:host._disabled .t-cleaner{pointer-events:none}.t-tooltip{pointer-events:auto}.t-counter{position:absolute;right:.75rem;bottom:.5rem;font:var(--tui-font-text-s);pointer-events:none;margin-top:auto;text-align:right;color:var(--tui-text-03)}:host[data-mode=onDark] .t-counter{color:var(--tui-text-03-night)}\n"], components: [{ type: i1.TuiScrollbarComponent, selector: "tui-scrollbar", inputs: ["hidden"] }, { type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i1.TuiTooltipComponent, selector: "tui-tooltip", inputs: ["content", "direction", "appearance", "showDelay", "hideDelay", "describeId"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.TuiWrapperDirective, selector: "[tuiWrapper]", inputs: ["disabled", "readOnly", "hover", "active", "focus", "invalid", "appearance"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.TuiFocusableDirective, selector: "[tuiFocusable]", inputs: ["tuiFocusable"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], pipes: { "async": i2.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
122
+ ], queries: [{ propertyName: "textfield", first: true, predicate: TuiTextfieldComponent, descendants: true, read: ElementRef }], viewQueries: [{ propertyName: "focusableElement", first: true, predicate: ["focusableElement"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"hintOptions?.change$ | async\"></ng-container>\n<div\n tuiWrapper\n automation-id=\"tui-text-area__wrapper\"\n class=\"t-outline\"\n [appearance]=\"appearance\"\n [disabled]=\"disabled\"\n [focus]=\"computedFocused\"\n [hover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [invalid]=\"computedInvalid\"\n>\n <div\n *ngIf=\"hasCounter\"\n automation-id=\"tui-text-area__counter\"\n class=\"t-counter\"\n >\n {{ value.length }}/{{ maxLength }}\n </div>\n\n <label\n class=\"t-content\"\n (mousedown)=\"onMouseDown($event)\"\n >\n <div class=\"t-wrapper\">\n <div\n *ngIf=\"hasPlaceholder\"\n automation-id=\"tui-text-area__placeholder\"\n class=\"t-placeholder\"\n [class.t-placeholder_raised]=\"placeholderRaised\"\n >\n <ng-content></ng-content>\n </div>\n <tui-scrollbar\n automation-id=\"tui-text-area__scrollbar\"\n class=\"t-box\"\n [style.maxHeight.px]=\"computeMaxHeight\"\n >\n <div class=\"t-input-wrapper\">\n <div class=\"t-relative\">\n <div\n aria-hidden=\"true\"\n class=\"t-pseudo-content\"\n >\n <span [textContent]=\"fittedContent || nativeFocusableElement?.placeholder\"></span>\n <span\n class=\"t-pseudo-content__extra\"\n [textContent]=\"extraContent\"\n ></span>\n &nbsp;\n </div>\n <textarea\n #focusableElement\n automation-id=\"tui-text-area__native\"\n class=\"t-input\"\n [id]=\"id\"\n [tuiFocusable]=\"computedFocusable\"\n [disabled]=\"computedDisabled\"\n [readOnly]=\"readOnly\"\n [(ngModel)]=\"value\"\n ></textarea>\n <ng-content select=\"textarea\"></ng-content>\n </div>\n </div>\n </tui-scrollbar>\n </div>\n <div class=\"t-icons\">\n <ng-container *ngIf=\"hasCleaner\">\n <tui-svg\n *polymorpheusOutlet=\"iconCleaner as src; context: {$implicit: size}\"\n tuiWrapper\n appearance=\"icon\"\n class=\"t-cleaner\"\n [src]=\"src\"\n (click.stop)=\"onValueChange('')\"\n ></tui-svg>\n </ng-container>\n <tui-tooltip\n *ngIf=\"hintOptions && hintOptions.content && !computedDisabled\"\n automation-id=\"tui-text-area__tooltip\"\n class=\"t-tooltip\"\n [describeId]=\"id\"\n [direction]=\"hintOptions.direction\"\n [appearance]=\"hintOptions.appearance\"\n [content]=\"hintOptions.content\"\n [showDelay]=\"hintOptions.showDelay\"\n [hideDelay]=\"hintOptions.hideDelay\"\n ></tui-tooltip>\n </div>\n </label>\n</div>\n", styles: [":host{position:relative;z-index:0;display:flex;font:var(--tui-font-text-m);flex-direction:column;min-height:var(--tui-textarea-height, 6.75rem);border-radius:var(--tui-radius-m);color:var(--tui-text-01)}:host[data-mode=onDark]{color:var(--tui-text-01-night)}:host[data-size=s]{--tui-textarea-height: 4.5625rem;font:var(--tui-font-text-s)}:host[data-size=m]{--tui-textarea-height: 5.5rem;font:var(--tui-font-text-s)}:host[data-size=m]._has-counter{--tui-textarea-height: 6.625rem}:host[data-size=l]._has-counter{--tui-textarea-height: 7.875rem}.t-outline{min-height:inherit}.t-content{display:block;margin-top:0;margin-bottom:0;min-height:inherit;box-sizing:border-box;overflow:hidden;cursor:text}:host._disabled .t-content{cursor:auto;opacity:var(--tui-disabled-opacity)}:host:not(._expandable) .t-content{position:absolute;top:0;left:0;bottom:1px;right:0;min-height:auto}:host._has-counter:not(._expandable) .t-content{bottom:1.6875rem}.t-wrapper{position:relative;width:100%;height:100%;min-height:inherit;padding-bottom:.4375rem;box-sizing:border-box}:host[data-size=s] .t-wrapper{padding-top:.375rem}:host[data-size=m]._label-outside .t-wrapper{padding-top:.75rem}:host[data-size=l]._label-outside .t-wrapper{padding-top:1rem}:host[data-size=m]:not(._label-outside) .t-wrapper{padding-top:1.25rem}:host[data-size=l]:not(._label-outside) .t-wrapper{padding-top:1.625rem}:host-context(table)[data-size=m]._label-outside .t-wrapper{padding-bottom:.75rem}:host-context(table)[data-size=l]._label-outside .t-wrapper{padding-bottom:1rem}.t-input-wrapper{min-height:inherit;width:100%;flex:1}.t-relative{position:relative;min-height:inherit}.t-box{display:flex;min-height:100%;width:100%}:host:not(._expandable) .t-box{height:100%}:host._has-counter._expandable .t-box{margin-bottom:1.25rem}.t-pseudo-content{white-space:pre-wrap;word-wrap:break-word;pointer-events:none;color:transparent;overflow:hidden;border:solid transparent;border-width:0 var(--border-end, 0) 0 var(--border-start, 0);border-inline-start-width:var(--border-start, 0);border-inline-end-width:var(--border-end, 0)}:host[data-size=m] .t-pseudo-content{padding:0 .75rem}:host[data-size=l] .t-pseudo-content{padding:0 1rem}.t-pseudo-content__extra{background-color:var(--tui-error-bg-night)}.t-input{padding:0;margin:0;border:0;border-radius:inherit;background:none;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;-webkit-appearance:none;-moz-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;width:100%;height:100%;box-sizing:border-box;resize:none;overflow:hidden;outline:none;border:solid transparent;border-width:0 var(--border-end, 0) 0 var(--border-start, 0);border-inline-start-width:var(--border-start, 0);border-inline-end-width:var(--border-end, 0)}.t-input:-webkit-autofill,.t-input:-webkit-autofill:hover,.t-input:-webkit-autofill:focus{caret-color:var(--tui-base-09);border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01)!important;border-color:var(--tui-autofill);-webkit-box-shadow:0 0 0 100rem var(--tui-autofill) inset!important}.t-input:not(:last-of-type){display:none}.t-input::-ms-input-placeholder{color:var(--tui-text-03);opacity:0}.t-input::placeholder{color:var(--tui-text-03);opacity:0}:host[data-mode=onDark] .t-input::-ms-input-placeholder{color:var(--tui-text-03-night)}:host[data-mode=onDark] .t-input::placeholder{color:var(--tui-text-03-night)}:host._focused .t-input:not(:read-only)::-ms-input-placeholder{opacity:1}:host._focused .t-input:not(:-moz-read-only)::placeholder{opacity:1}:host._focused .t-input:not(:read-only)::placeholder{opacity:1}:host[data-size=m] .t-input{padding:0 .75rem}:host[data-size=l] .t-input{padding:0 1rem}:host[data-mode=onDark]._disabled .t-input{color:var(--tui-text-03-night)}@supports (-webkit-marquee-repetition: infinite) and (object-fit: fill){:host._ios .t-input{padding-left:.8125rem}}.t-placeholder{transition-property:transform,font-size,color,letter-spacing;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;font:var(--tui-font-text-s);color:var(--tui-text-01);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:var(--tui-text-02);pointer-events:none;will-change:transform;transform:translateY(0);position:absolute;left:0;max-width:100%;padding:0 1rem;border:solid transparent;border-width:0 var(--border-end, 0) 0 var(--border-start, 0);border-inline-start-width:var(--border-start, 0);border-inline-end-width:var(--border-end, 0);box-sizing:border-box}.t-placeholder_raised{transform:translateY(-.625rem)}:host[data-size=m] .t-placeholder_raised{font:var(--tui-font-text-xs);transform:translateY(-.5rem);letter-spacing:.025rem}:host._invalid:not(._focused) .t-placeholder_raised,:host._invalid:not(._focused):hover .t-placeholder_raised{color:var(--tui-error-fill)}:host[data-mode=onDark]._invalid:not(._focused) .t-placeholder_raised,:host[data-mode=onDark]._invalid:not(._focused):hover .t-placeholder_raised{color:var(--tui-error-fill-night)}:host._focused .t-placeholder,:host[data-size=m]._focused._label-outside .t-placeholder,:host[data-size=l]._focused._label-outside .t-placeholder{color:var(--tui-text-03)}:host[data-size=l] .t-placeholder{font-size:.9375rem}:host[data-size=l] .t-placeholder_raised{font-size:.8156rem}:host[data-size=m]._focused:not(._label-outside) .t-placeholder,:host[data-size=l]._focused:not(._label-outside) .t-placeholder{color:var(--tui-text-01)}:host[data-mode=onDark] .t-placeholder{color:var(--tui-text-02-night)}:host[data-size=m][data-mode=onDark]._focused:not(._label-outside) .t-placeholder,:host[data-size=l][data-mode=onDark]._focused:not(._label-outside) .t-placeholder{color:var(--tui-text-01-night)}:host[data-mode=onDark]._focused .t-placeholder,:host[data-size=m][data-mode=onDark]._focused._label-outside .t-placeholder,:host[data-size=l][data-mode=onDark]._focused._label-outside .t-placeholder{color:var(--tui-text-02-night)}@supports (-webkit-hyphens: none){.t-placeholder{will-change:unset;transition-property:transform,color,letter-spacing}}:host[data-size=s] .t-placeholder{top:.375rem;padding:0 .75rem}:host[data-size=m] .t-placeholder{top:.75rem;padding:0 .75rem}:host[data-size=l] .t-placeholder{top:1.12rem}:host._label-outside .t-placeholder{overflow:visible;overflow:initial;height:auto;white-space:normal;white-space:initial}.t-icons{position:absolute;top:0;left:0;bottom:0;right:0;display:flex;justify-content:flex-end;pointer-events:none;padding:1rem .75rem}:host[data-size=m] .t-icons{padding:.75rem}.t-cleaner{position:relative;display:flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center;box-sizing:border-box;cursor:pointer;pointer-events:auto}:host._readonly .t-cleaner,:host._disabled .t-cleaner{pointer-events:none}.t-tooltip{pointer-events:auto}.t-counter{position:absolute;right:.75rem;bottom:.5rem;font:var(--tui-font-text-s);pointer-events:none;margin-top:auto;text-align:right;color:var(--tui-text-03)}:host[data-mode=onDark] .t-counter{color:var(--tui-text-03-night)}\n"], components: [{ type: i1.TuiScrollbarComponent, selector: "tui-scrollbar", inputs: ["hidden"] }, { type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i1.TuiTooltipComponent, selector: "tui-tooltip", inputs: ["content", "direction", "appearance", "showDelay", "hideDelay", "describeId"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.TuiWrapperDirective, selector: "[tuiWrapper]", inputs: ["disabled", "readOnly", "hover", "active", "focus", "invalid", "appearance"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.TuiFocusableDirective, selector: "[tuiFocusable]", inputs: ["tuiFocusable"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], pipes: { "async": i2.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
123
123
  __decorate([
124
124
  tuiDefaultProp()
125
125
  ], TuiTextAreaComponent.prototype, "rows", void 0);