@taiga-ui/core 2.32.0 → 2.33.0

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 (191) hide show
  1. package/abstract/abstract-dropdown.d.ts +2 -1
  2. package/abstract/abstract-textfield-host.d.ts +13 -0
  3. package/abstract/index.d.ts +1 -0
  4. package/abstract/taiga-ui-core-abstract.metadata.json +1 -1
  5. package/bundles/taiga-ui-core-abstract.umd.js +63 -0
  6. package/bundles/taiga-ui-core-abstract.umd.js.map +1 -1
  7. package/bundles/taiga-ui-core-abstract.umd.min.js +1 -1
  8. package/bundles/taiga-ui-core-abstract.umd.min.js.map +1 -1
  9. package/bundles/taiga-ui-core-components-dialog.umd.js +1 -1
  10. package/bundles/taiga-ui-core-components-dialog.umd.min.js +1 -1
  11. package/bundles/taiga-ui-core-components-dialog.umd.min.js.map +1 -1
  12. package/bundles/taiga-ui-core-components-dropdown-box.umd.js +1 -1
  13. package/bundles/taiga-ui-core-components-dropdown-box.umd.min.js +1 -1
  14. package/bundles/taiga-ui-core-components-dropdown-box.umd.min.js.map +1 -1
  15. package/bundles/taiga-ui-core-components-label.umd.js +1 -1
  16. package/bundles/taiga-ui-core-components-label.umd.min.js +1 -1
  17. package/bundles/taiga-ui-core-components-label.umd.min.js.map +1 -1
  18. package/bundles/taiga-ui-core-components-loader.umd.js +5 -2
  19. package/bundles/taiga-ui-core-components-loader.umd.js.map +1 -1
  20. package/bundles/taiga-ui-core-components-loader.umd.min.js +1 -1
  21. package/bundles/taiga-ui-core-components-loader.umd.min.js.map +1 -1
  22. package/bundles/taiga-ui-core-components-primitive-textfield.umd.js +201 -42
  23. package/bundles/taiga-ui-core-components-primitive-textfield.umd.js.map +1 -1
  24. package/bundles/taiga-ui-core-components-primitive-textfield.umd.min.js +2 -2
  25. package/bundles/taiga-ui-core-components-primitive-textfield.umd.min.js.map +1 -1
  26. package/bundles/taiga-ui-core-components-theme-night.umd.js +1 -1
  27. package/bundles/taiga-ui-core-components-theme-night.umd.min.js +1 -1
  28. package/bundles/taiga-ui-core-components-theme-night.umd.min.js.map +1 -1
  29. package/bundles/taiga-ui-core-components-tooltip.umd.js +1 -1
  30. package/bundles/taiga-ui-core-components-tooltip.umd.min.js +1 -1
  31. package/bundles/taiga-ui-core-components-tooltip.umd.min.js.map +1 -1
  32. package/bundles/taiga-ui-core-constants.umd.js +1 -1
  33. package/bundles/taiga-ui-core-constants.umd.js.map +1 -1
  34. package/bundles/taiga-ui-core-constants.umd.min.js +1 -1
  35. package/bundles/taiga-ui-core-constants.umd.min.js.map +1 -1
  36. package/bundles/taiga-ui-core-directives-dropdown.umd.js +1 -6
  37. package/bundles/taiga-ui-core-directives-dropdown.umd.js.map +1 -1
  38. package/bundles/taiga-ui-core-directives-dropdown.umd.min.js +2 -2
  39. package/bundles/taiga-ui-core-directives-dropdown.umd.min.js.map +1 -1
  40. package/bundles/taiga-ui-core-directives.umd.js +4 -12
  41. package/bundles/taiga-ui-core-directives.umd.js.map +1 -1
  42. package/bundles/taiga-ui-core-directives.umd.min.js +1 -1
  43. package/bundles/taiga-ui-core-tokens.umd.js +3 -0
  44. package/bundles/taiga-ui-core-tokens.umd.js.map +1 -1
  45. package/bundles/taiga-ui-core-tokens.umd.min.js +2 -2
  46. package/bundles/taiga-ui-core-tokens.umd.min.js.map +1 -1
  47. package/bundles/taiga-ui-core-utils-format.umd.js +1 -1
  48. package/bundles/taiga-ui-core-utils-format.umd.js.map +1 -1
  49. package/bundles/taiga-ui-core-utils-format.umd.min.js +1 -1
  50. package/bundles/taiga-ui-core-utils-format.umd.min.js.map +1 -1
  51. package/components/dialog/taiga-ui-core-components-dialog.metadata.json +1 -1
  52. package/components/dropdown-box/taiga-ui-core-components-dropdown-box.metadata.json +1 -1
  53. package/components/label/taiga-ui-core-components-label.metadata.json +1 -1
  54. package/components/loader/loader.directive.d.ts +3 -0
  55. package/components/loader/taiga-ui-core-components-loader.metadata.json +1 -1
  56. package/components/primitive-textfield/index.d.ts +2 -0
  57. package/components/primitive-textfield/primitive-textfield.component.d.ts +12 -8
  58. package/components/primitive-textfield/primitive-textfield.directive.d.ts +8 -0
  59. package/components/primitive-textfield/taiga-ui-core-components-primitive-textfield.metadata.json +1 -1
  60. package/components/primitive-textfield/textfield/textfield.component.d.ts +15 -0
  61. package/components/primitive-textfield/value-decoration/value-decoration.component.d.ts +1 -0
  62. package/components/theme-night/taiga-ui-core-components-theme-night.metadata.json +1 -1
  63. package/components/tooltip/taiga-ui-core-components-tooltip.metadata.json +1 -1
  64. package/constants/taiga-ui-core-constants.metadata.json +1 -1
  65. package/constants/version.d.ts +1 -1
  66. package/directives/dropdown/taiga-ui-core-directives-dropdown.metadata.json +1 -1
  67. package/directives/index.d.ts +0 -1
  68. package/directives/taiga-ui-core-directives.metadata.json +1 -1
  69. package/esm2015/abstract/abstract-dropdown.js +12 -1
  70. package/esm2015/abstract/abstract-textfield-host.js +34 -0
  71. package/esm2015/abstract/index.js +2 -1
  72. package/esm2015/components/dialog/dialog.component.js +1 -1
  73. package/esm2015/components/dropdown-box/dropdown-box.component.js +1 -1
  74. package/esm2015/components/label/label.component.js +1 -1
  75. package/esm2015/components/loader/loader.component.js +1 -1
  76. package/esm2015/components/loader/loader.directive.js +5 -2
  77. package/esm2015/components/primitive-textfield/index.js +3 -1
  78. package/esm2015/components/primitive-textfield/primitive-textfield.component.js +54 -29
  79. package/esm2015/components/primitive-textfield/primitive-textfield.directive.js +40 -0
  80. package/esm2015/components/primitive-textfield/primitive-textfield.module.js +15 -7
  81. package/esm2015/components/primitive-textfield/textfield/textfield.component.js +68 -0
  82. package/esm2015/components/primitive-textfield/value-decoration/value-decoration.component.js +12 -5
  83. package/esm2015/components/theme-night/theme-night.component.js +1 -1
  84. package/esm2015/components/tooltip/tooltip.component.js +1 -1
  85. package/esm2015/constants/version.js +2 -2
  86. package/esm2015/directives/dropdown/dropdown.directive.js +2 -7
  87. package/esm2015/directives/index.js +1 -2
  88. package/esm2015/interfaces/index.js +1 -1
  89. package/esm2015/interfaces/textfield-host.js +1 -0
  90. package/esm2015/tokens/index.js +2 -1
  91. package/esm2015/tokens/textfield-host.js +3 -0
  92. package/esm2015/utils/format/format-number.js +2 -2
  93. package/esm5/abstract/abstract-dropdown.js +12 -1
  94. package/esm5/abstract/abstract-textfield-host.js +55 -0
  95. package/esm5/abstract/index.js +2 -1
  96. package/esm5/components/dialog/dialog.component.js +1 -1
  97. package/esm5/components/dropdown-box/dropdown-box.component.js +1 -1
  98. package/esm5/components/label/label.component.js +1 -1
  99. package/esm5/components/loader/loader.component.js +1 -1
  100. package/esm5/components/loader/loader.directive.js +5 -2
  101. package/esm5/components/primitive-textfield/index.js +3 -1
  102. package/esm5/components/primitive-textfield/primitive-textfield.component.js +58 -33
  103. package/esm5/components/primitive-textfield/primitive-textfield.directive.js +49 -0
  104. package/esm5/components/primitive-textfield/primitive-textfield.module.js +15 -7
  105. package/esm5/components/primitive-textfield/textfield/textfield.component.js +77 -0
  106. package/esm5/components/primitive-textfield/value-decoration/value-decoration.component.js +16 -5
  107. package/esm5/components/theme-night/theme-night.component.js +1 -1
  108. package/esm5/components/tooltip/tooltip.component.js +1 -1
  109. package/esm5/constants/version.js +2 -2
  110. package/esm5/directives/dropdown/dropdown.directive.js +2 -7
  111. package/esm5/directives/index.js +1 -2
  112. package/esm5/interfaces/index.js +1 -1
  113. package/esm5/interfaces/textfield-host.js +1 -0
  114. package/esm5/tokens/index.js +2 -1
  115. package/esm5/tokens/textfield-host.js +3 -0
  116. package/esm5/utils/format/format-number.js +2 -2
  117. package/fesm2015/taiga-ui-core-abstract.js +45 -4
  118. package/fesm2015/taiga-ui-core-abstract.js.map +1 -1
  119. package/fesm2015/taiga-ui-core-components-dialog.js +1 -1
  120. package/fesm2015/taiga-ui-core-components-dropdown-box.js +1 -1
  121. package/fesm2015/taiga-ui-core-components-label.js +1 -1
  122. package/fesm2015/taiga-ui-core-components-loader.js +5 -2
  123. package/fesm2015/taiga-ui-core-components-loader.js.map +1 -1
  124. package/fesm2015/taiga-ui-core-components-primitive-textfield.js +175 -40
  125. package/fesm2015/taiga-ui-core-components-primitive-textfield.js.map +1 -1
  126. package/fesm2015/taiga-ui-core-components-theme-night.js +1 -1
  127. package/fesm2015/taiga-ui-core-components-tooltip.js +1 -1
  128. package/fesm2015/taiga-ui-core-constants.js +1 -1
  129. package/fesm2015/taiga-ui-core-constants.js.map +1 -1
  130. package/fesm2015/taiga-ui-core-directives-dropdown.js +1 -6
  131. package/fesm2015/taiga-ui-core-directives-dropdown.js.map +1 -1
  132. package/fesm2015/taiga-ui-core-directives.js +0 -1
  133. package/fesm2015/taiga-ui-core-directives.js.map +1 -1
  134. package/fesm2015/taiga-ui-core-tokens.js +3 -1
  135. package/fesm2015/taiga-ui-core-tokens.js.map +1 -1
  136. package/fesm2015/taiga-ui-core-utils-format.js +1 -1
  137. package/fesm2015/taiga-ui-core-utils-format.js.map +1 -1
  138. package/fesm5/taiga-ui-core-abstract.js +66 -4
  139. package/fesm5/taiga-ui-core-abstract.js.map +1 -1
  140. package/fesm5/taiga-ui-core-components-dialog.js +1 -1
  141. package/fesm5/taiga-ui-core-components-dropdown-box.js +1 -1
  142. package/fesm5/taiga-ui-core-components-label.js +1 -1
  143. package/fesm5/taiga-ui-core-components-loader.js +5 -2
  144. package/fesm5/taiga-ui-core-components-loader.js.map +1 -1
  145. package/fesm5/taiga-ui-core-components-primitive-textfield.js +201 -44
  146. package/fesm5/taiga-ui-core-components-primitive-textfield.js.map +1 -1
  147. package/fesm5/taiga-ui-core-components-theme-night.js +1 -1
  148. package/fesm5/taiga-ui-core-components-tooltip.js +1 -1
  149. package/fesm5/taiga-ui-core-constants.js +1 -1
  150. package/fesm5/taiga-ui-core-constants.js.map +1 -1
  151. package/fesm5/taiga-ui-core-directives-dropdown.js +1 -6
  152. package/fesm5/taiga-ui-core-directives-dropdown.js.map +1 -1
  153. package/fesm5/taiga-ui-core-directives.js +0 -1
  154. package/fesm5/taiga-ui-core-directives.js.map +1 -1
  155. package/fesm5/taiga-ui-core-tokens.js +3 -1
  156. package/fesm5/taiga-ui-core-tokens.js.map +1 -1
  157. package/fesm5/taiga-ui-core-utils-format.js +1 -1
  158. package/fesm5/taiga-ui-core-utils-format.js.map +1 -1
  159. package/interfaces/index.d.ts +1 -0
  160. package/interfaces/taiga-ui-core-interfaces.metadata.json +1 -1
  161. package/interfaces/textfield-host.d.ts +9 -0
  162. package/package.json +10 -9
  163. package/styles/markup/tui-island.less +1 -0
  164. package/styles/mixins/textfield.less +40 -27
  165. package/styles/mixins/textfield.scss +0 -9
  166. package/styles/theme/variables.less +2 -0
  167. package/tokens/index.d.ts +1 -0
  168. package/tokens/taiga-ui-core-tokens.metadata.json +1 -1
  169. package/tokens/textfield-host.d.ts +3 -0
  170. package/bundles/taiga-ui-core-directives-border.umd.js +0 -291
  171. package/bundles/taiga-ui-core-directives-border.umd.js.map +0 -1
  172. package/bundles/taiga-ui-core-directives-border.umd.min.js +0 -16
  173. package/bundles/taiga-ui-core-directives-border.umd.min.js.map +0 -1
  174. package/directives/border/border.directive.d.ts +0 -9
  175. package/directives/border/border.module.d.ts +0 -2
  176. package/directives/border/index.d.ts +0 -2
  177. package/directives/border/package.json +0 -13
  178. package/directives/border/taiga-ui-core-directives-border.d.ts +0 -4
  179. package/directives/border/taiga-ui-core-directives-border.metadata.json +0 -1
  180. package/esm2015/directives/border/border.directive.js +0 -42
  181. package/esm2015/directives/border/border.module.js +0 -13
  182. package/esm2015/directives/border/index.js +0 -3
  183. package/esm2015/directives/border/taiga-ui-core-directives-border.js +0 -5
  184. package/esm5/directives/border/border.directive.js +0 -51
  185. package/esm5/directives/border/border.module.js +0 -16
  186. package/esm5/directives/border/index.js +0 -3
  187. package/esm5/directives/border/taiga-ui-core-directives-border.js +0 -5
  188. package/fesm2015/taiga-ui-core-directives-border.js +0 -57
  189. package/fesm2015/taiga-ui-core-directives-border.js.map +0 -1
  190. package/fesm5/taiga-ui-core-directives-border.js +0 -69
  191. package/fesm5/taiga-ui-core-directives-border.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { __decorate, __extends, __param } from "tslib";
2
- import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, HostBinding, Inject, Input, Output, ViewChild, } from '@angular/core';
3
- import { AbstractTuiInteractive, isNativeFocused, setNativeFocused, tuiDefaultProp, tuiPure, } from '@taiga-ui/cdk';
2
+ import { ChangeDetectionStrategy, Component, ContentChildren, ElementRef, EventEmitter, HostBinding, HostListener, Inject, Input, Output, QueryList, ViewChild, } from '@angular/core';
3
+ import { AbstractTuiInteractive, isNativeFocusedIn, setNativeFocused, tuiDefaultProp, tuiPure, } from '@taiga-ui/cdk';
4
4
  import { TUI_HINT_WATCHED_CONTROLLER, TuiHintControllerDirective, } from '@taiga-ui/core/directives/hint-controller';
5
5
  import { TUI_TEXTFIELD_WATCHED_CONTROLLER, TuiTextfieldController, } from '@taiga-ui/core/directives/textfield-controller';
6
6
  import { TUI_MODE, TUI_TEXTFIELD_APPEARANCE } from '@taiga-ui/core/tokens';
@@ -14,13 +14,14 @@ var ICON_PADDING = 1.75;
14
14
  var ICON_PADDING_S = 1.5;
15
15
  var TuiPrimitiveTextfieldComponent = /** @class */ (function (_super) {
16
16
  __extends(TuiPrimitiveTextfieldComponent, _super);
17
- function TuiPrimitiveTextfieldComponent(mode$, appearance, controller, hintController, options) {
17
+ function TuiPrimitiveTextfieldComponent(mode$, appearance, controller, hintController, options, elementRef) {
18
18
  var _this = _super.call(this) || this;
19
19
  _this.mode$ = mode$;
20
20
  _this.appearance = appearance;
21
21
  _this.controller = controller;
22
22
  _this.hintController = hintController;
23
23
  _this.options = options;
24
+ _this.elementRef = elementRef;
24
25
  _this.editable = true;
25
26
  _this.filler = '';
26
27
  _this.iconAlign = _this.options.iconAlign;
@@ -34,22 +35,29 @@ var TuiPrimitiveTextfieldComponent = /** @class */ (function (_super) {
34
35
  _this.postfix = '';
35
36
  _this.value = '';
36
37
  _this.valueChange = new EventEmitter();
38
+ /**
39
+ * @deprecated TODO: remove in 3.0
40
+ */
37
41
  _this.autofilledChange = new EventEmitter();
38
42
  _this.autofilled = false;
39
43
  return _this;
40
44
  }
41
45
  Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "nativeFocusableElement", {
42
46
  get: function () {
43
- return this.computedDisabled || !this.focusableElement
44
- ? null
45
- : this.focusableElement.nativeElement;
47
+ if (this.computedDisabled || !this.focusableElement) {
48
+ return null;
49
+ }
50
+ // TODO: Refactor this after we drop built-in input element
51
+ return (this.focusableElement.nativeElement
52
+ .previousElementSibling ||
53
+ this.focusableElement.nativeElement);
46
54
  },
47
55
  enumerable: true,
48
56
  configurable: true
49
57
  });
50
58
  Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "focused", {
51
59
  get: function () {
52
- return isNativeFocused(this.nativeFocusableElement);
60
+ return isNativeFocusedIn(this.elementRef.nativeElement);
53
61
  },
54
62
  enumerable: true,
55
63
  configurable: true
@@ -61,13 +69,6 @@ var TuiPrimitiveTextfieldComponent = /** @class */ (function (_super) {
61
69
  enumerable: true,
62
70
  configurable: true
63
71
  });
64
- Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "labelOutside", {
65
- get: function () {
66
- return this.controller.labelOutside;
67
- },
68
- enumerable: true,
69
- configurable: true
70
- });
71
72
  Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "computedInvalid", {
72
73
  get: function () {
73
74
  return !this.readOnly && !this.disabled && this.invalid;
@@ -114,7 +115,10 @@ var TuiPrimitiveTextfieldComponent = /** @class */ (function (_super) {
114
115
  });
115
116
  Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "hasPlaceholder", {
116
117
  get: function () {
117
- var hasDecor = this.controller.exampleText || this.prefix || this.postfix;
118
+ var _a;
119
+ var hasDecor = this.controller.exampleText ||
120
+ this.prefix ||
121
+ this.postfix || ((_a = this.nativeFocusableElement) === null || _a === void 0 ? void 0 : _a.placeholder);
118
122
  var showDecor = hasDecor && !this.readOnly && this.computedFocused;
119
123
  var placeholderVisible = !this.hasValue && !showDecor;
120
124
  return this.placeholderRaisable || placeholderVisible;
@@ -130,14 +134,14 @@ var TuiPrimitiveTextfieldComponent = /** @class */ (function (_super) {
130
134
  enumerable: true,
131
135
  configurable: true
132
136
  });
133
- Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "borderLeft", {
137
+ Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "borderStart", {
134
138
  get: function () {
135
139
  return this.iconAlignLeft ? this.iconPaddingLeft : 0;
136
140
  },
137
141
  enumerable: true,
138
142
  configurable: true
139
143
  });
140
- Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "borderRight", {
144
+ Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "borderEnd", {
141
145
  get: function () {
142
146
  return getBorder(this.iconAlignRight, this.hasCleaner, this.hasTooltip, this.hasCustomContent);
143
147
  },
@@ -168,6 +172,17 @@ var TuiPrimitiveTextfieldComponent = /** @class */ (function (_super) {
168
172
  enumerable: true,
169
173
  configurable: true
170
174
  });
175
+ Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "computedId", {
176
+ get: function () {
177
+ var _a;
178
+ return ((_a = this.nativeFocusableElement) === null || _a === void 0 ? void 0 : _a.id) || '';
179
+ },
180
+ enumerable: true,
181
+ configurable: true
182
+ });
183
+ TuiPrimitiveTextfieldComponent.prototype.onFocused = function (focused) {
184
+ this.updateFocused(focused);
185
+ };
171
186
  TuiPrimitiveTextfieldComponent.prototype.getIndent$ = function (element) {
172
187
  return fromEvent(element, 'scroll').pipe(map(function () { return -1 * element.scrollLeft; }));
173
188
  };
@@ -178,12 +193,12 @@ var TuiPrimitiveTextfieldComponent = /** @class */ (function (_super) {
178
193
  this.updateValue('');
179
194
  };
180
195
  TuiPrimitiveTextfieldComponent.prototype.onMouseDown = function (event) {
181
- if (!this.focusableElement ||
182
- event.target === this.focusableElement.nativeElement) {
196
+ var nativeFocusableElement = this.nativeFocusableElement;
197
+ if (!nativeFocusableElement || event.target === nativeFocusableElement) {
183
198
  return;
184
199
  }
185
200
  event.preventDefault();
186
- setNativeFocused(this.focusableElement.nativeElement);
201
+ setNativeFocused(nativeFocusableElement);
187
202
  };
188
203
  TuiPrimitiveTextfieldComponent.prototype.onModelChange = function (value) {
189
204
  this.updateValue(value);
@@ -191,9 +206,6 @@ var TuiPrimitiveTextfieldComponent = /** @class */ (function (_super) {
191
206
  TuiPrimitiveTextfieldComponent.prototype.onHovered = function (hovered) {
192
207
  this.updateHovered(hovered);
193
208
  };
194
- TuiPrimitiveTextfieldComponent.prototype.onFocused = function (focused) {
195
- this.updateFocused(focused);
196
- };
197
209
  TuiPrimitiveTextfieldComponent.prototype.onAutofilled = function (autofilled) {
198
210
  this.updateAutofilled(autofilled);
199
211
  };
@@ -206,7 +218,7 @@ var TuiPrimitiveTextfieldComponent = /** @class */ (function (_super) {
206
218
  });
207
219
  Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "placeholderRaisable", {
208
220
  get: function () {
209
- return this.size !== 's' && !this.labelOutside;
221
+ return this.size !== 's' && !this.controller.labelOutside;
210
222
  },
211
223
  enumerable: true,
212
224
  configurable: true
@@ -234,7 +246,8 @@ var TuiPrimitiveTextfieldComponent = /** @class */ (function (_super) {
234
246
  { type: String, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_APPEARANCE,] }] },
235
247
  { type: TuiTextfieldController, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_WATCHED_CONTROLLER,] }] },
236
248
  { type: TuiHintControllerDirective, decorators: [{ type: Inject, args: [TUI_HINT_WATCHED_CONTROLLER,] }] },
237
- { type: undefined, decorators: [{ type: Inject, args: [TUI_PRIMITIVE_TEXTFIELD_OPTIONS,] }] }
249
+ { type: undefined, decorators: [{ type: Inject, args: [TUI_PRIMITIVE_TEXTFIELD_OPTIONS,] }] },
250
+ { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] }
238
251
  ]; };
239
252
  __decorate([
240
253
  ViewChild('focusableElement')
@@ -294,36 +307,48 @@ var TuiPrimitiveTextfieldComponent = /** @class */ (function (_super) {
294
307
  ContentChildren(PolymorpheusOutletComponent)
295
308
  ], TuiPrimitiveTextfieldComponent.prototype, "content", void 0);
296
309
  __decorate([
297
- HostBinding('attr.data-tui-host-size')
310
+ HostBinding('attr.data-size')
298
311
  ], TuiPrimitiveTextfieldComponent.prototype, "size", null);
299
- __decorate([
300
- HostBinding('class._label-outside')
301
- ], TuiPrimitiveTextfieldComponent.prototype, "labelOutside", null);
302
312
  __decorate([
303
313
  HostBinding('class._invalid')
304
314
  ], TuiPrimitiveTextfieldComponent.prototype, "computedInvalid", null);
315
+ __decorate([
316
+ HostBinding('class._hidden')
317
+ ], TuiPrimitiveTextfieldComponent.prototype, "inputHidden", null);
318
+ __decorate([
319
+ HostBinding('style.--border-start.rem')
320
+ ], TuiPrimitiveTextfieldComponent.prototype, "borderStart", null);
321
+ __decorate([
322
+ HostBinding('style.--border-end.rem')
323
+ ], TuiPrimitiveTextfieldComponent.prototype, "borderEnd", null);
324
+ __decorate([
325
+ HostListener('focusin', ['true']),
326
+ HostListener('focusout', ['false'])
327
+ ], TuiPrimitiveTextfieldComponent.prototype, "onFocused", null);
305
328
  __decorate([
306
329
  tuiPure
307
330
  ], TuiPrimitiveTextfieldComponent.prototype, "getIndent$", null);
308
331
  TuiPrimitiveTextfieldComponent = __decorate([
309
332
  Component({
310
333
  selector: 'tui-primitive-textfield',
311
- template: "<ng-container *ngIf=\"content?.changes | async\"></ng-container>\n<tui-wrapper\n automation-id=\"tui-primitive-textfield__wrapper\"\n tuiPreventDefault=\"click\"\n [appearance]=\"appearance\"\n [readOnly]=\"readOnly\"\n [disabled]=\"disabled\"\n [focused]=\"computedFocused\"\n [hovered]=\"computedHovered\"\n [pressed]=\"computedPressed\"\n [invalid]=\"computedInvalid\"\n (tuiHoveredChange)=\"onHovered($event)\"\n (mousedown)=\"onMouseDown($event)\"\n>\n <input\n #focusableElement\n tuiMaskAccessor\n automation-id=\"tui-primitive-textfield__native-input\"\n class=\"input\"\n [class.input_hidden]=\"inputHidden\"\n [style.textIndent.px]=\"decor.pre$ | async\"\n [attr.disabled]=\"computedDisabled || null\"\n [attr.maxLength]=\"controller.maxLength\"\n [attr.name]=\"name\"\n [attr.aria-placeholder]=\"controller.exampleText\"\n [attr.aria-invalid]=\"computedInvalid\"\n [autocomplete]=\"controller.autocomplete\"\n [type]=\"controller.type\"\n [id]=\"id\"\n [readOnly]=\"readOnly || !editable\"\n [tuiBorderStart]=\"borderLeft\"\n [tuiBorderEnd]=\"borderRight\"\n [tuiInputMode]=\"controller.inputMode\"\n [tuiFocusable]=\"computedFocusable\"\n [tuiDescribedBy]=\"id\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onModelChange($event)\"\n (tuiFocusedChange)=\"onFocused($event)\"\n (tuiAutofilledChange)=\"onAutofilled($event)\"\n />\n <div\n *ngIf=\"inputHidden\"\n automation-id=\"tui-primitive-textfield__value\"\n class=\"input input_template\"\n [tuiBorderStart]=\"borderLeft\"\n [tuiBorderEnd]=\"borderRight\"\n >\n <ng-content select=\"[polymorpheus-outlet]\"></ng-content>\n </div>\n <div class=\"content\">\n <div\n *ngIf=\"iconAlignLeft\"\n polymorpheus-outlet\n class=\"icon icon_left\"\n [content]=\"iconContent\"\n [context]=\"{$implicit: size}\"\n >\n <ng-template let-iconSrc>\n <tui-svg [src]=\"iconSrc\"></tui-svg>\n </ng-template>\n </div>\n <div class=\"wrapper\">\n <label\n *ngIf=\"hasPlaceholder\"\n automation-id=\"tui-primitive-textfield__placeholder\"\n class=\"placeholder\"\n [class.placeholder_raised]=\"placeholderRaised\"\n [for]=\"id\"\n >\n <ng-content></ng-content>\n </label>\n <tui-value-decoration\n #decor\n automation-id=\"tui-primitive-textfield__value-decoration\"\n aria-hidden=\"true\"\n class=\"t-value-decoration\"\n [style.textIndent.px]=\"getIndent$(focusableElement) | async\"\n ></tui-value-decoration>\n </div>\n <div\n *ngIf=\"hasCustomContent\"\n polymorpheus-outlet\n automation-id=\"tui-primitive-textfield__custom-content\"\n class=\"custom-content\"\n [content]=\"controller.customContent\"\n >\n <ng-template let-iconSrc>\n <tui-svg class=\"custom-icon\" [src]=\"iconSrc\"></tui-svg>\n </ng-template>\n </div>\n <span\n *ngIf=\"hasCleaner\"\n polymorpheus-outlet\n automation-id=\"tui-primitive-textfield__cleaner\"\n class=\"cleaner\"\n [content]=\"iconCleaner\"\n (click.stop)=\"clear()\"\n >\n <ng-template let-icon>\n <tui-svg [src]=\"icon\"></tui-svg>\n </ng-template>\n </span>\n <tui-tooltip\n *ngIf=\"hasTooltip\"\n automation-id=\"tui-primitive-textfield__tooltip\"\n [describeId]=\"id\"\n [content]=\"hintController.content\"\n [direction]=\"hintController.direction\"\n [mode]=\"hintController.mode\"\n [showDelay]=\"hintController.showDelay\"\n [hideDelay]=\"hintController.hideDelay\"\n ></tui-tooltip>\n <div\n *ngIf=\"iconAlignRight\"\n polymorpheus-outlet\n class=\"icon\"\n [content]=\"iconContent\"\n [context]=\"{$implicit: size}\"\n >\n <ng-template let-iconSrc>\n <tui-svg [src]=\"iconSrc\"></tui-svg>\n </ng-template>\n </div>\n </div>\n</tui-wrapper>\n",
334
+ template: "<ng-container *ngIf=\"content?.changes | async\"></ng-container>\n<tui-wrapper\n automation-id=\"tui-primitive-textfield__wrapper\"\n tuiPreventDefault=\"click\"\n [appearance]=\"appearance\"\n [readOnly]=\"readOnly\"\n [disabled]=\"disabled\"\n [focused]=\"computedFocused\"\n [hovered]=\"computedHovered\"\n [pressed]=\"computedPressed\"\n [invalid]=\"computedInvalid\"\n [style.--text-indent.px]=\"decor.pre$ | async\"\n (mousedown)=\"onMouseDown($event)\"\n (tuiHoveredChange)=\"onHovered($event)\"\n (tuiAutofilledChange)=\"onAutofilled($event)\"\n>\n <ng-content select=\"input\"></ng-content>\n <input\n #focusableElement\n tuiMaskAccessor\n automation-id=\"tui-primitive-textfield__native-input\"\n class=\"input\"\n [attr.disabled]=\"computedDisabled || null\"\n [attr.maxLength]=\"controller.maxLength\"\n [attr.name]=\"name\"\n [attr.aria-placeholder]=\"controller.exampleText\"\n [attr.aria-invalid]=\"computedInvalid\"\n [autocomplete]=\"controller.autocomplete\"\n [type]=\"controller.type\"\n [id]=\"id\"\n [readOnly]=\"readOnly || !editable\"\n [tuiInputMode]=\"controller.inputMode\"\n [tuiFocusable]=\"computedFocusable\"\n [tuiDescribedBy]=\"id\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onModelChange($event)\"\n />\n <div\n *ngIf=\"inputHidden\"\n automation-id=\"tui-primitive-textfield__value\"\n class=\"input input_template\"\n >\n <ng-content select=\"[polymorpheus-outlet]\"></ng-content>\n </div>\n <div class=\"content\">\n <div\n *ngIf=\"iconAlignLeft\"\n polymorpheus-outlet\n class=\"icon icon_left\"\n [content]=\"iconContent\"\n [context]=\"{$implicit: size}\"\n >\n <ng-template let-iconSrc>\n <tui-svg [src]=\"iconSrc\"></tui-svg>\n </ng-template>\n </div>\n <div class=\"wrapper\">\n <label\n *ngIf=\"hasPlaceholder\"\n automation-id=\"tui-primitive-textfield__placeholder\"\n class=\"placeholder\"\n [class.placeholder_raised]=\"placeholderRaised\"\n [for]=\"computedId\"\n >\n <ng-content></ng-content>\n </label>\n <tui-value-decoration\n #decor\n automation-id=\"tui-primitive-textfield__value-decoration\"\n aria-hidden=\"true\"\n class=\"t-value-decoration\"\n [style.textIndent.px]=\"getIndent$(focusableElement) | async\"\n ></tui-value-decoration>\n </div>\n <div\n *ngIf=\"hasCustomContent\"\n polymorpheus-outlet\n automation-id=\"tui-primitive-textfield__custom-content\"\n class=\"custom-content\"\n [content]=\"controller.customContent\"\n >\n <ng-template let-iconSrc>\n <tui-svg class=\"custom-icon\" [src]=\"iconSrc\"></tui-svg>\n </ng-template>\n </div>\n <span\n *ngIf=\"hasCleaner\"\n polymorpheus-outlet\n automation-id=\"tui-primitive-textfield__cleaner\"\n class=\"cleaner\"\n [content]=\"iconCleaner\"\n (click.stop)=\"clear()\"\n >\n <ng-template let-icon>\n <tui-svg [src]=\"icon\"></tui-svg>\n </ng-template>\n </span>\n <tui-tooltip\n *ngIf=\"hasTooltip\"\n automation-id=\"tui-primitive-textfield__tooltip\"\n [describeId]=\"computedId\"\n [content]=\"hintController.content\"\n [direction]=\"hintController.direction\"\n [mode]=\"hintController.mode\"\n [showDelay]=\"hintController.showDelay\"\n [hideDelay]=\"hintController.hideDelay\"\n ></tui-tooltip>\n <div\n *ngIf=\"iconAlignRight\"\n polymorpheus-outlet\n class=\"icon\"\n [content]=\"iconContent\"\n [context]=\"{$implicit: size}\"\n >\n <ng-template let-iconSrc>\n <tui-svg [src]=\"iconSrc\"></tui-svg>\n </ng-template>\n </div>\n </div>\n</tui-wrapper>\n",
312
335
  changeDetection: ChangeDetectionStrategy.OnPush,
313
336
  providers: TUI_PRIMITIVE_TEXTFIELD_PROVIDERS,
314
337
  host: {
315
338
  '($.data-mode.attr)': 'mode$',
316
339
  '[class._autofilled]': 'autofilled',
340
+ '[class._label-outside]': 'controller.labelOutside',
317
341
  },
318
- styles: [":host{font:var(--tui-font-text-s);color:var(--tui-text-01);position:relative;display:block;border-radius:var(--tui-radius-m);text-align:left}:host[data-tui-host-size='s']{height:var(--tui-height-s);min-height:var(--tui-height-s);max-height:var(--tui-height-s)}:host[data-tui-host-size='m']{height:var(--tui-height-m);min-height:var(--tui-height-m);max-height:var(--tui-height-m)}:host[data-tui-host-size='l']{height:var(--tui-height-l);min-height:var(--tui-height-l);max-height:var(--tui-height-l);font-size:.9375rem}.input{font:var(--tui-font-text-s);color:var(--tui-text-01);padding:0;border:0 solid transparent;border-radius:inherit;background:0 0;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:0;-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%;padding:0 var(--tui-padding-m);text-align:inherit;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-transform:inherit}.input:-webkit-autofill,.input:-webkit-autofill:focus,.input:-webkit-autofill:hover{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 1000px var(--tui-autofill) inset!important}:host[data-mode=onDark] .input:-webkit-autofill,:host[data-mode=onDark] .input:-webkit-autofill:focus,:host[data-mode=onDark] .input:-webkit-autofill:hover{border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01-night)!important;border-color:var(--tui-autofill-night);-webkit-box-shadow:0 0 0 1000px var(--tui-autofill-night) inset!important}:host[data-tui-host-size='s'] .input{padding:0 var(--tui-padding-s)}:host[data-tui-host-size='l'] .input{padding:0 var(--tui-padding-l)}:host._disabled .input{pointer-events:none}:host._right-aligned .input{text-align:right}:host[data-tui-host-size='l']:not(._label-outside) .input{padding-top:1.25rem}:host[data-tui-host-size='l']:not(._label-outside) .input:-webkit-autofill+.content .placeholder{font-size:.8156rem;transform:translateY(-.625rem)}:host[data-tui-host-size='m']:not(._label-outside) .input{padding-top:1.125rem}:host[data-tui-host-size='m']:not(._label-outside) .input:-webkit-autofill+.content .placeholder{font-size:.69rem;transform:translateY(-.5rem)}.filler{vertical-align:middle}.content{display:flex;height:100%;width:100%;padding:0 var(--tui-padding-m);box-sizing:border-box;align-items:center;overflow:hidden}:host[data-tui-host-size='s'] .content{padding:0 var(--tui-padding-s)}:host[data-tui-host-size='l'] .content{padding:0 var(--tui-padding-l)}.content:after{content:'';margin-right:-.25rem}:host[data-tui-host-size='m'] .content:after{display:none}.wrapper{flex:1;min-width:0;padding-right:.25rem;-webkit-padding-end:.25rem;padding-inline-end:.25rem;-webkit-padding-start:0;padding-inline-start:0}.placeholder{transition-property:transform,font-size,color,letter-spacing;transition-duration:var(--tui-duration,300ms);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%;font-size:.8125rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:var(--tui-text-02);pointer-events:none}.placeholder_raised{transform:translateY(-.625rem)}:host[data-tui-host-size='m'] .placeholder_raised{font-size:.69rem;transform:translateY(-.5rem);letter-spacing:.025rem}:host._invalid:not(._focused) .placeholder_raised,:host._invalid:not(._focused)._hovered .placeholder_raised{color:var(--tui-error-fill)}:host[data-mode=onDark]._invalid:not(._focused) .placeholder_raised,:host[data-mode=onDark]._invalid:not(._focused)._hovered .placeholder_raised{color:var(--tui-error-fill-night)}:host._focused .placeholder,:host[data-tui-host-size='l']._focused._label-outside .placeholder,:host[data-tui-host-size='m']._focused._label-outside .placeholder{color:var(--tui-text-03)}:host[data-tui-host-size='l'] .placeholder{font-size:.9375rem}:host[data-tui-host-size='l'] .placeholder_raised{font-size:.8156rem}:host[data-tui-host-size='l']._focused:not(._label-outside) .placeholder,:host[data-tui-host-size='m']._focused:not(._label-outside) .placeholder{color:var(--tui-text-01)}:host[data-mode=onDark] .placeholder{color:var(--tui-text-02-night)}:host[data-tui-host-size='l'][data-mode=onDark]._focused:not(._label-outside) .placeholder,:host[data-tui-host-size='m'][data-mode=onDark]._focused:not(._label-outside) .placeholder{color:var(--tui-text-01-night)}:host[data-mode=onDark]._focused .placeholder,:host[data-tui-host-size='l'][data-mode=onDark]._focused._label-outside .placeholder,:host[data-tui-host-size='m'][data-mode=onDark]._focused._label-outside .placeholder{color:var(--tui-text-02-night)}@supports (-webkit-hyphens:none){.placeholder{transition-property:transform,color,letter-spacing}}.cleaner{transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;display:flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center;color:var(--tui-text-03);position:relative;box-sizing:border-box;cursor:pointer;transition-property:color,transform}.cleaner:hover{color:var(--tui-text-02)}:host._disabled .cleaner,:host._readonly .cleaner{pointer-events:none}:host[data-mode=onDark] .cleaner{color:var(--tui-text-03-night)}:host[data-mode=onDark] .cleaner:hover{color:var(--tui-text-01-night)}.icon{display:flex;align-items:center;justify-content:center;color:var(--tui-text-03)}.icon_left{margin:0 .5rem 0 -.25rem;-webkit-margin-start:-.25rem;margin-inline-start:-.25rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}:host[data-tui-host-size='s'] .icon_left{margin-right:.25rem;-webkit-margin-end:.25rem;margin-inline-end:.25rem}:host._autofilled .t-value-decoration{display:none}.value_visible{display:block}.custom-content{position:relative;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;margin-right:.25rem;pointer-events:none}.custom-icon{width:100%;height:100%}.icon{transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;display:flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center;color:var(--tui-text-03);box-sizing:border-box;cursor:pointer;transition-property:color,transform;position:relative;pointer-events:none}.icon:hover{color:var(--tui-text-02)}:host._disabled .icon,:host._readonly .icon{pointer-events:none}:host[data-mode=onDark] .icon{color:var(--tui-text-03-night)}:host[data-mode=onDark] .icon:hover{color:var(--tui-text-01-night)}:host._hovered:not(._readonly) .icon{color:var(--tui-text-02)}:host[data-mode=onDark]._hovered:not(._readonly) .icon{color:var(--tui-text-01-night)}:host[data-mode=onLight]._hovered:not(._readonly) .icon{color:var(--tui-text-01)}.input_hidden{opacity:0;text-indent:-10em;-webkit-user-select:none}:host[data-tui-host-size] .input_template{display:flex;width:100%;max-width:100%;align-items:center;pointer-events:none}.input::-webkit-caps-lock-indicator{margin-right:.375rem;align-self:center}:host[data-tui-host-size='l']:not(._label-outside) .input::-webkit-caps-lock-indicator{margin-top:-1.25rem}.input::-webkit-contacts-auto-fill-button,.input::-webkit-credentials-auto-fill-button,.input::-webkit-credit-card-auto-fill-button{background-color:var(--tui-text-03)}:host[data-tui-host-size='l']:not(._label-outside) .input::-webkit-contacts-auto-fill-button,:host[data-tui-host-size='l']:not(._label-outside) .input::-webkit-credentials-auto-fill-button,:host[data-tui-host-size='l']:not(._label-outside) .input::-webkit-credit-card-auto-fill-button{margin-top:-1.25rem}.input::-webkit-contacts-auto-fill-button:hover,.input::-webkit-credentials-auto-fill-button:hover,.input::-webkit-credit-card-auto-fill-button:hover{background-color:var(--tui-text-02)}.input:-webkit-autofill,.input:-webkit-autofill::first-line{font-size:inherit;line-height:inherit}.text-template{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]
342
+ styles: [":host{font:var(--tui-font-text-s);color:var(--tui-text-01);position:relative;display:block;border-radius:var(--tui-radius-m);text-align:left}:host[data-size='s']{height:var(--tui-height-s);min-height:var(--tui-height-s);max-height:var(--tui-height-s)}:host[data-size='m']{height:var(--tui-height-m);min-height:var(--tui-height-m);max-height:var(--tui-height-m)}:host[data-size='l']{height:var(--tui-height-l);min-height:var(--tui-height-l);max-height:var(--tui-height-l);font-size:.9375rem}.input{font:var(--tui-font-text-s);color:var(--tui-text-01);padding:0;border:0 solid transparent;border-radius:inherit;background:0 0;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:0;-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%;padding:0 var(--tui-padding-m);border-width:0 var(--border-end) 0 var(--border-start);border-inline-start-width:var(--border-start);border-inline-end-width:var(--border-end);text-indent:var(--text-indent);text-align:inherit;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-transform:inherit}.input:-webkit-autofill,.input:-webkit-autofill:focus,.input:-webkit-autofill:hover{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 1000px var(--tui-autofill) inset!important}.input :host-context(tui-primitive-textfield[data-mode=onDark]):-webkit-autofill,.input :host-context(tui-primitive-textfield[data-mode=onDark]):-webkit-autofill:focus,.input :host-context(tui-primitive-textfield[data-mode=onDark]):-webkit-autofill:hover,:host[data-mode=onDark] .input:-webkit-autofill,:host[data-mode=onDark] .input:-webkit-autofill:focus,:host[data-mode=onDark] .input:-webkit-autofill:hover{border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01-night)!important;border-color:var(--tui-autofill-night);-webkit-box-shadow:0 0 0 1000px var(--tui-autofill-night) inset!important}.input :host-context(tui-primitive-textfield[data-size='s']):not(tui-primitive-textfield),:host[data-size='s'] .input{padding:0 var(--tui-padding-s)}.input :host-context(tui-primitive-textfield[data-size='l']):not(tui-primitive-textfield),:host[data-size='l'] .input{padding:0 var(--tui-padding-l)}.input :host-context(tui-primitive-textfield._disabled),:host._disabled .input{pointer-events:none}.input :host-context(tui-primitive-textfield[data-size='l']:not(._label-outside)):not(tui-primitive-textfield),:host[data-size='l']:not(._label-outside) .input{padding-top:1.25rem}.input :host-context(tui-primitive-textfield[data-size='l']:not(._label-outside)):not(tui-primitive-textfield):-webkit-autofill+.content .placeholder,:host[data-size='l']:not(._label-outside) .input:-webkit-autofill+.content .placeholder{font-size:.8156rem;transform:translateY(-.625rem)}.input :host-context(tui-primitive-textfield[data-size='m']:not(._label-outside)):not(tui-primitive-textfield),:host[data-size='m']:not(._label-outside) .input{padding-top:1.125rem}.input :host-context(tui-primitive-textfield[data-size='m']:not(._label-outside)):not(tui-primitive-textfield):-webkit-autofill+.content .placeholder,:host[data-size='m']:not(._label-outside) .input:-webkit-autofill+.content .placeholder{font-size:.69rem;transform:translateY(-.5rem)}.input :host-context(tui-primitive-textfield._hidden),:host._hidden input.input{opacity:0;text-indent:-10em;-webkit-user-select:none}.filler{vertical-align:middle}.content{display:flex;height:100%;width:100%;padding:0 var(--tui-padding-m);box-sizing:border-box;align-items:center;overflow:hidden}:host[data-size='s'] .content{padding:0 var(--tui-padding-s)}:host[data-size='l'] .content{padding:0 var(--tui-padding-l)}.content:after{content:'';margin-right:-.25rem}:host[data-size='m'] .content:after{display:none}.wrapper{flex:1;min-width:0;padding-right:.25rem;-webkit-padding-end:.25rem;padding-inline-end:.25rem;-webkit-padding-start:0;padding-inline-start:0}.placeholder{transition-property:transform,font-size,color,letter-spacing;transition-duration:var(--tui-duration,300ms);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%;font-size:.8125rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:var(--tui-text-02);pointer-events:none}.placeholder_raised{transform:translateY(-.625rem)}:host[data-size='m'] .placeholder_raised{font-size:.69rem;transform:translateY(-.5rem);letter-spacing:.025rem}:host._invalid:not(._focused) .placeholder_raised,:host._invalid:not(._focused)._hovered .placeholder_raised{color:var(--tui-error-fill)}:host[data-mode=onDark]._invalid:not(._focused) .placeholder_raised,:host[data-mode=onDark]._invalid:not(._focused)._hovered .placeholder_raised{color:var(--tui-error-fill-night)}:host._focused .placeholder,:host[data-size='l']._focused._label-outside .placeholder,:host[data-size='m']._focused._label-outside .placeholder{color:var(--tui-text-03)}:host[data-size='l'] .placeholder{font-size:.9375rem}:host[data-size='l'] .placeholder_raised{font-size:.8156rem}:host[data-size='l']._focused:not(._label-outside) .placeholder,:host[data-size='m']._focused:not(._label-outside) .placeholder{color:var(--tui-text-01)}:host[data-mode=onDark] .placeholder{color:var(--tui-text-02-night)}:host[data-size='l'][data-mode=onDark]._focused:not(._label-outside) .placeholder,:host[data-size='m'][data-mode=onDark]._focused:not(._label-outside) .placeholder{color:var(--tui-text-01-night)}:host[data-mode=onDark]._focused .placeholder,:host[data-size='l'][data-mode=onDark]._focused._label-outside .placeholder,:host[data-size='m'][data-mode=onDark]._focused._label-outside .placeholder{color:var(--tui-text-02-night)}@supports (-webkit-hyphens:none){.placeholder{transition-property:transform,color,letter-spacing}}.cleaner{transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;display:flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center;color:var(--tui-text-03);position:relative;box-sizing:border-box;cursor:pointer;transition-property:color,transform}.cleaner:hover{color:var(--tui-text-02)}:host._disabled .cleaner,:host._readonly .cleaner{pointer-events:none}:host[data-mode=onDark] .cleaner{color:var(--tui-text-03-night)}:host[data-mode=onDark] .cleaner:hover{color:var(--tui-text-01-night)}.icon{display:flex;align-items:center;justify-content:center;color:var(--tui-text-03)}.icon_left{margin:0 .5rem 0 -.25rem;-webkit-margin-start:-.25rem;margin-inline-start:-.25rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}:host[data-size='s'] .icon_left{margin-right:.25rem;-webkit-margin-end:.25rem;margin-inline-end:.25rem}:host._autofilled .t-value-decoration{display:none}.custom-content{position:relative;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;margin-right:.25rem;pointer-events:none}.custom-icon{width:100%;height:100%}.icon{transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;display:flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center;color:var(--tui-text-03);box-sizing:border-box;cursor:pointer;transition-property:color,transform;position:relative;pointer-events:none}.icon:hover{color:var(--tui-text-02)}:host._disabled .icon,:host._readonly .icon{pointer-events:none}:host[data-mode=onDark] .icon{color:var(--tui-text-03-night)}:host[data-mode=onDark] .icon:hover{color:var(--tui-text-01-night)}:host._hovered:not(._readonly) .icon{color:var(--tui-text-02)}:host[data-mode=onDark]._hovered:not(._readonly) .icon{color:var(--tui-text-01-night)}:host[data-mode=onLight]._hovered:not(._readonly) .icon{color:var(--tui-text-01)}.input:not(:first-child){display:none}:host[data-size] .input_template{display:flex;width:100%;max-width:100%;align-items:center;pointer-events:none}.input::-webkit-caps-lock-indicator{margin-right:.375rem;align-self:center}:host[data-size='l']:not(._label-outside) .input::-webkit-caps-lock-indicator{margin-top:-1.25rem}.input::-webkit-contacts-auto-fill-button,.input::-webkit-credentials-auto-fill-button,.input::-webkit-credit-card-auto-fill-button{background-color:var(--tui-text-03)}:host[data-size='l']:not(._label-outside) .input::-webkit-contacts-auto-fill-button,:host[data-size='l']:not(._label-outside) .input::-webkit-credentials-auto-fill-button,:host[data-size='l']:not(._label-outside) .input::-webkit-credit-card-auto-fill-button{margin-top:-1.25rem}.input::-webkit-contacts-auto-fill-button:hover,.input::-webkit-credentials-auto-fill-button:hover,.input::-webkit-credit-card-auto-fill-button:hover{background-color:var(--tui-text-02)}.input:-webkit-autofill,.input:-webkit-autofill::first-line{font-size:inherit;line-height:inherit}.text-template{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]
319
343
  }),
320
344
  __param(0, Inject(TUI_MODE)),
321
345
  __param(1, Inject(TUI_TEXTFIELD_APPEARANCE)),
322
346
  __param(2, Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER)),
323
347
  __param(3, Inject(TUI_HINT_WATCHED_CONTROLLER)),
324
- __param(4, Inject(TUI_PRIMITIVE_TEXTFIELD_OPTIONS))
348
+ __param(4, Inject(TUI_PRIMITIVE_TEXTFIELD_OPTIONS)),
349
+ __param(5, Inject(ElementRef))
325
350
  ], TuiPrimitiveTextfieldComponent);
326
351
  return TuiPrimitiveTextfieldComponent;
327
352
  }(AbstractTuiInteractive));
328
353
  export { TuiPrimitiveTextfieldComponent };
329
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlLXRleHRmaWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3ByaW1pdGl2ZS10ZXh0ZmllbGQvIiwic291cmNlcyI6WyJwcmltaXRpdmUtdGV4dGZpZWxkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUVmLFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxzQkFBc0IsRUFDdEIsZUFBZSxFQUNmLGdCQUFnQixFQUVoQixjQUFjLEVBRWQsT0FBTyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCwyQkFBMkIsRUFDM0IsMEJBQTBCLEdBQzdCLE1BQU0sMkNBQTJDLENBQUM7QUFDbkQsT0FBTyxFQUNILGdDQUFnQyxFQUNoQyxzQkFBc0IsR0FDekIsTUFBTSxnREFBZ0QsQ0FBQztBQUN4RCxPQUFPLEVBQUMsUUFBUSxFQUFFLHdCQUF3QixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFekUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzdELE9BQU8sRUFBc0IsMkJBQTJCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRixPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkMsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbEYsT0FBTyxFQUNILCtCQUErQixHQUVsQyxNQUFNLCtCQUErQixDQUFDO0FBRXZDLElBQU0sWUFBWSxHQUFHLElBQUksQ0FBQztBQUMxQixJQUFNLGNBQWMsR0FB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RWxELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO1lBQy9DLFNBQVMsRUFBRSxpQ0FBaUM7WUFDNUMsSUFBSSxFQUFFO2dCQUNGLG9CQUFvQixFQUFFLE9BQU87Z0JBQzdCLHFCQUFxQixFQUFFLFlBQVk7YUFDdEM7O1NBQ0osQ0FBQztRQWtFTyxXQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNoQixXQUFBLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO1FBQ2hDLFdBQUEsTUFBTSxDQUFDLGdDQUFnQyxDQUFDLENBQUE7UUFFeEMsV0FBQSxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtRQUVuQyxXQUFBLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxDQUFBO09BdkVuQyw4QkFBOEIsQ0F5TzFDO0lBQUQscUNBQUM7Q0FBQSxBQXpPRCxDQUNZLHNCQUFzQixHQXdPakM7U0F6T1ksOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpSW50ZXJhY3RpdmUsXG4gICAgaXNOYXRpdmVGb2N1c2VkLFxuICAgIHNldE5hdGl2ZUZvY3VzZWQsXG4gICAgVHVpQ3JlZGl0Q2FyZEF1dG9maWxsTmFtZSxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgdHVpUHVyZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIFRVSV9ISU5UX1dBVENIRURfQ09OVFJPTExFUixcbiAgICBUdWlIaW50Q29udHJvbGxlckRpcmVjdGl2ZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9oaW50LWNvbnRyb2xsZXInO1xuaW1wb3J0IHtcbiAgICBUVUlfVEVYVEZJRUxEX1dBVENIRURfQ09OVFJPTExFUixcbiAgICBUdWlUZXh0ZmllbGRDb250cm9sbGVyLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL3RleHRmaWVsZC1jb250cm9sbGVyJztcbmltcG9ydCB7VFVJX01PREUsIFRVSV9URVhURklFTERfQVBQRUFSQU5DRX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcbmltcG9ydCB7VHVpQnJpZ2h0bmVzcywgVHVpU2l6ZUwsIFR1aVNpemVTfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90eXBlcyc7XG5pbXBvcnQge2dldEJvcmRlcn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnQsIFBvbHltb3JwaGV1c091dGxldENvbXBvbmVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7ZnJvbUV2ZW50LCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7VFVJX1BSSU1JVElWRV9URVhURklFTERfUFJPVklERVJTfSBmcm9tICcuL3ByaW1pdGl2ZS10ZXh0ZmllbGQucHJvdmlkZXJzJztcbmltcG9ydCB7XG4gICAgVFVJX1BSSU1JVElWRV9URVhURklFTERfT1BUSU9OUyxcbiAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRPcHRpb25zLFxufSBmcm9tICcuL3ByaW1pdGl2ZS10ZXh0ZmllbGQtb3B0aW9ucyc7XG5cbmNvbnN0IElDT05fUEFERElORyA9IDEuNzU7XG5jb25zdCBJQ09OX1BBRERJTkdfUyA9IDEuNTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktcHJpbWl0aXZlLXRleHRmaWVsZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3ByaW1pdGl2ZS10ZXh0ZmllbGQudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcHJpbWl0aXZlLXRleHRmaWVsZC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBUVUlfUFJJTUlUSVZFX1RFWFRGSUVMRF9QUk9WSURFUlMsXG4gICAgaG9zdDoge1xuICAgICAgICAnKCQuZGF0YS1tb2RlLmF0dHIpJzogJ21vZGUkJyxcbiAgICAgICAgJ1tjbGFzcy5fYXV0b2ZpbGxlZF0nOiAnYXV0b2ZpbGxlZCcsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aUludGVyYWN0aXZlXG4gICAgaW1wbGVtZW50cyBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3JcbntcbiAgICBAVmlld0NoaWxkKCdmb2N1c2FibGVFbGVtZW50JylcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvY3VzYWJsZUVsZW1lbnQ/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGVkaXRhYmxlID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBmaWxsZXIgPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBpY29uQWxpZ246IFR1aVByaW1pdGl2ZVRleHRmaWVsZE9wdGlvbnNbJ2ljb25BbGlnbiddID0gdGhpcy5vcHRpb25zLmljb25BbGlnbjtcblxuICAgIC8vIFRPRE86IFJlbW92ZSBudWxsIGluIDMuMFxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBpY29uQ29udGVudDogUG9seW1vcnBoZXVzQ29udGVudCB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGljb25DbGVhbmVyOiBUdWlQcmltaXRpdmVUZXh0ZmllbGRPcHRpb25zWydpY29uQ2xlYW5lciddID0gdGhpcy5vcHRpb25zLmljb25DbGVhbmVyO1xuXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9yZWFkb25seScpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICByZWFkT25seSA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGludmFsaWQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHByZWZpeCA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHBvc3RmaXggPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICB2YWx1ZSA9ICcnO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGF1dG9maWxsZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFBvbHltb3JwaGV1c091dGxldENvbXBvbmVudClcbiAgICByZWFkb25seSBjb250ZW50PzogUXVlcnlMaXN0PHVua25vd24+O1xuXG4gICAgYXV0b2ZpbGxlZCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVFVJX01PREUpIHJlYWRvbmx5IG1vZGUkOiBPYnNlcnZhYmxlPFR1aUJyaWdodG5lc3MgfCBudWxsPixcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX0FQUEVBUkFOQ0UpIHJlYWRvbmx5IGFwcGVhcmFuY2U6IHN0cmluZyxcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX1dBVENIRURfQ09OVFJPTExFUilcbiAgICAgICAgcmVhZG9ubHkgY29udHJvbGxlcjogVHVpVGV4dGZpZWxkQ29udHJvbGxlcixcbiAgICAgICAgQEluamVjdChUVUlfSElOVF9XQVRDSEVEX0NPTlRST0xMRVIpXG4gICAgICAgIHJlYWRvbmx5IGhpbnRDb250cm9sbGVyOiBUdWlIaW50Q29udHJvbGxlckRpcmVjdGl2ZSxcbiAgICAgICAgQEluamVjdChUVUlfUFJJTUlUSVZFX1RFWFRGSUVMRF9PUFRJT05TKVxuICAgICAgICByZWFkb25seSBvcHRpb25zOiBUdWlQcmltaXRpdmVUZXh0ZmllbGRPcHRpb25zLFxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcHV0ZWREaXNhYmxlZCB8fCAhdGhpcy5mb2N1c2FibGVFbGVtZW50XG4gICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgIDogdGhpcy5mb2N1c2FibGVFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpc05hdGl2ZUZvY3VzZWQodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS10dWktaG9zdC1zaXplJylcbiAgICBnZXQgc2l6ZSgpOiBUdWlTaXplUyB8IFR1aVNpemVMIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5zaXplO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX2xhYmVsLW91dHNpZGUnKVxuICAgIGdldCBsYWJlbE91dHNpZGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2xsZXIubGFiZWxPdXRzaWRlO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX2ludmFsaWQnKVxuICAgIGdldCBjb21wdXRlZEludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5yZWFkT25seSAmJiAhdGhpcy5kaXNhYmxlZCAmJiB0aGlzLmludmFsaWQ7XG4gICAgfVxuXG4gICAgZ2V0IGlucHV0SGlkZGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmNvbnRlbnQ/Lmxlbmd0aDtcbiAgICB9XG5cbiAgICBnZXQgaGFzVmFsdWUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0NsZWFuZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2xsZXIuY2xlYW5lciAmJiB0aGlzLmhhc1ZhbHVlICYmICF0aGlzLmRpc2FibGVkICYmICF0aGlzLnJlYWRPbmx5XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGhhc1Rvb2x0aXAoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuaGludENvbnRyb2xsZXI/LmNvbnRlbnQgJiYgIXRoaXMuZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0N1c3RvbUNvbnRlbnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuY29udHJvbGxlci5jdXN0b21Db250ZW50O1xuICAgIH1cblxuICAgIGdldCBoYXNQbGFjZWhvbGRlcigpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgaGFzRGVjb3IgPSB0aGlzLmNvbnRyb2xsZXIuZXhhbXBsZVRleHQgfHwgdGhpcy5wcmVmaXggfHwgdGhpcy5wb3N0Zml4O1xuICAgICAgICBjb25zdCBzaG93RGVjb3IgPSBoYXNEZWNvciAmJiAhdGhpcy5yZWFkT25seSAmJiB0aGlzLmNvbXB1dGVkRm9jdXNlZDtcbiAgICAgICAgY29uc3QgcGxhY2Vob2xkZXJWaXNpYmxlID0gIXRoaXMuaGFzVmFsdWUgJiYgIXNob3dEZWNvcjtcblxuICAgICAgICByZXR1cm4gdGhpcy5wbGFjZWhvbGRlclJhaXNhYmxlIHx8IHBsYWNlaG9sZGVyVmlzaWJsZTtcbiAgICB9XG5cbiAgICBnZXQgcGxhY2Vob2xkZXJSYWlzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLnBsYWNlaG9sZGVyUmFpc2FibGUgJiZcbiAgICAgICAgICAgICgodGhpcy5jb21wdXRlZEZvY3VzZWQgJiYgIXRoaXMucmVhZE9ubHkpIHx8IHRoaXMuaGFzVmFsdWUgfHwgdGhpcy5hdXRvZmlsbGVkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBib3JkZXJMZWZ0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmljb25BbGlnbkxlZnQgPyB0aGlzLmljb25QYWRkaW5nTGVmdCA6IDA7XG4gICAgfVxuXG4gICAgZ2V0IGJvcmRlclJpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBnZXRCb3JkZXIoXG4gICAgICAgICAgICB0aGlzLmljb25BbGlnblJpZ2h0LFxuICAgICAgICAgICAgdGhpcy5oYXNDbGVhbmVyLFxuICAgICAgICAgICAgdGhpcy5oYXNUb29sdGlwLFxuICAgICAgICAgICAgdGhpcy5oYXNDdXN0b21Db250ZW50LFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBpY29uQWxpZ25MZWZ0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNJY29uICYmIHRoaXMuaWNvbkFsaWduID09PSAnbGVmdCc7XG4gICAgfVxuXG4gICAgZ2V0IGljb25BbGlnblJpZ2h0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNJY29uICYmIHRoaXMuaWNvbkFsaWduID09PSAncmlnaHQnO1xuICAgIH1cblxuICAgIC8vIFNhZmFyaSBleHBpcmF0aW9uIGRhdGUgYXV0b2ZpbGwgd29ya2Fyb3VuZFxuICAgIGdldCBuYW1lKCk6ICdjY2V4cGlyeXllYXInIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2xsZXIuYXV0b2NvbXBsZXRlID09PSBUdWlDcmVkaXRDYXJkQXV0b2ZpbGxOYW1lLkNjRXhwXG4gICAgICAgICAgICA/ICdjY2V4cGlyeXllYXInXG4gICAgICAgICAgICA6IG51bGw7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBnZXRJbmRlbnQkKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICAgICAgcmV0dXJuIGZyb21FdmVudChlbGVtZW50LCAnc2Nyb2xsJykucGlwZShtYXAoKCkgPT4gLTEgKiBlbGVtZW50LnNjcm9sbExlZnQpKTtcbiAgICB9XG5cbiAgICBjbGVhcigpIHtcbiAgICAgICAgaWYgKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKCcnKTtcbiAgICB9XG5cbiAgICBvbk1vdXNlRG93bihldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhdGhpcy5mb2N1c2FibGVFbGVtZW50IHx8XG4gICAgICAgICAgICBldmVudC50YXJnZXQgPT09IHRoaXMuZm9jdXNhYmxlRWxlbWVudC5uYXRpdmVFbGVtZW50XG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgc2V0TmF0aXZlRm9jdXNlZCh0aGlzLmZvY3VzYWJsZUVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgb25Nb2RlbENoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIG9uSG92ZXJlZChob3ZlcmVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlSG92ZXJlZChob3ZlcmVkKTtcbiAgICB9XG5cbiAgICBvbkZvY3VzZWQoZm9jdXNlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoZm9jdXNlZCk7XG4gICAgfVxuXG4gICAgb25BdXRvZmlsbGVkKGF1dG9maWxsZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVBdXRvZmlsbGVkKGF1dG9maWxsZWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGljb25QYWRkaW5nTGVmdCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5zaXplID09PSAncycgPyBJQ09OX1BBRERJTkdfUyA6IElDT05fUEFERElORztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBwbGFjZWhvbGRlclJhaXNhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaXplICE9PSAncycgJiYgIXRoaXMubGFiZWxPdXRzaWRlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGhhc0ljb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuaWNvbkNvbnRlbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVBdXRvZmlsbGVkKGF1dG9maWxsZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHRoaXMuYXV0b2ZpbGxlZCA9PT0gYXV0b2ZpbGxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hdXRvZmlsbGVkID0gYXV0b2ZpbGxlZDtcbiAgICAgICAgdGhpcy5hdXRvZmlsbGVkQ2hhbmdlLmVtaXQoYXV0b2ZpbGxlZCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB9XG59XG4iXX0=
354
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlLXRleHRmaWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3ByaW1pdGl2ZS10ZXh0ZmllbGQvIiwic291cmNlcyI6WyJwcmltaXRpdmUtdGV4dGZpZWxkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxzQkFBc0IsRUFDdEIsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUdoQixjQUFjLEVBRWQsT0FBTyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCwyQkFBMkIsRUFDM0IsMEJBQTBCLEdBQzdCLE1BQU0sMkNBQTJDLENBQUM7QUFDbkQsT0FBTyxFQUNILGdDQUFnQyxFQUNoQyxzQkFBc0IsR0FDekIsTUFBTSxnREFBZ0QsQ0FBQztBQUN4RCxPQUFPLEVBQUMsUUFBUSxFQUFFLHdCQUF3QixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFekUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzdELE9BQU8sRUFBc0IsMkJBQTJCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRixPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkMsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbEYsT0FBTyxFQUNILCtCQUErQixHQUVsQyxNQUFNLCtCQUErQixDQUFDO0FBRXZDLElBQU0sWUFBWSxH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cnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpSW50ZXJhY3RpdmUsXG4gICAgaXNOYXRpdmVGb2N1c2VkSW4sXG4gICAgc2V0TmF0aXZlRm9jdXNlZCxcbiAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0LFxuICAgIFR1aUNyZWRpdENhcmRBdXRvZmlsbE5hbWUsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIHR1aVB1cmUsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBUVUlfSElOVF9XQVRDSEVEX0NPTlRST0xMRVIsXG4gICAgVHVpSGludENvbnRyb2xsZXJEaXJlY3RpdmUsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvaGludC1jb250cm9sbGVyJztcbmltcG9ydCB7XG4gICAgVFVJX1RFWFRGSUVMRF9XQVRDSEVEX0NPTlRST0xMRVIsXG4gICAgVHVpVGV4dGZpZWxkQ29udHJvbGxlcixcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy90ZXh0ZmllbGQtY29udHJvbGxlcic7XG5pbXBvcnQge1RVSV9NT0RFLCBUVUlfVEVYVEZJRUxEX0FQUEVBUkFOQ0V9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQge1R1aUJyaWdodG5lc3MsIFR1aVNpemVMLCBUdWlTaXplU30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHtnZXRCb3JkZXJ9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNDb250ZW50LCBQb2x5bW9ycGhldXNPdXRsZXRDb21wb25lbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge2Zyb21FdmVudCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1RVSV9QUklNSVRJVkVfVEVYVEZJRUxEX1BST1ZJREVSU30gZnJvbSAnLi9wcmltaXRpdmUtdGV4dGZpZWxkLnByb3ZpZGVycyc7XG5pbXBvcnQge1xuICAgIFRVSV9QUklNSVRJVkVfVEVYVEZJRUxEX09QVElPTlMsXG4gICAgVHVpUHJpbWl0aXZlVGV4dGZpZWxkT3B0aW9ucyxcbn0gZnJvbSAnLi9wcmltaXRpdmUtdGV4dGZpZWxkLW9wdGlvbnMnO1xuXG5jb25zdCBJQ09OX1BBRERJTkcgPSAxLjc1O1xuY29uc3QgSUNPTl9QQURESU5HX1MgPSAxLjU7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLXByaW1pdGl2ZS10ZXh0ZmllbGQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wcmltaXRpdmUtdGV4dGZpZWxkLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3ByaW1pdGl2ZS10ZXh0ZmllbGQuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogVFVJX1BSSU1JVElWRV9URVhURklFTERfUFJPVklERVJTLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJygkLmRhdGEtbW9kZS5hdHRyKSc6ICdtb2RlJCcsXG4gICAgICAgICdbY2xhc3MuX2F1dG9maWxsZWRdJzogJ2F1dG9maWxsZWQnLFxuICAgICAgICAnW2NsYXNzLl9sYWJlbC1vdXRzaWRlXSc6ICdjb250cm9sbGVyLmxhYmVsT3V0c2lkZScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aUludGVyYWN0aXZlXG4gICAgaW1wbGVtZW50cyBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3JcbntcbiAgICBAVmlld0NoaWxkKCdmb2N1c2FibGVFbGVtZW50JylcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvY3VzYWJsZUVsZW1lbnQ/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGVkaXRhYmxlID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBmaWxsZXIgPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBpY29uQWxpZ246IFR1aVByaW1pdGl2ZVRleHRmaWVsZE9wdGlvbnNbJ2ljb25BbGlnbiddID0gdGhpcy5vcHRpb25zLmljb25BbGlnbjtcblxuICAgIC8vIFRPRE86IFJlbW92ZSBudWxsIGluIDMuMFxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBpY29uQ29udGVudDogUG9seW1vcnBoZXVzQ29udGVudDxUdWlDb250ZXh0V2l0aEltcGxpY2l0PFR1aVNpemVTIHwgVHVpU2l6ZUw+PiB8IG51bGwgPVxuICAgICAgICBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGljb25DbGVhbmVyOiBUdWlQcmltaXRpdmVUZXh0ZmllbGRPcHRpb25zWydpY29uQ2xlYW5lciddID0gdGhpcy5vcHRpb25zLmljb25DbGVhbmVyO1xuXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9yZWFkb25seScpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICByZWFkT25seSA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGludmFsaWQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHByZWZpeCA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHBvc3RmaXggPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICB2YWx1ZSA9ICcnO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIFRPRE86IHJlbW92ZSBpbiAzLjBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBhdXRvZmlsbGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihQb2x5bW9ycGhldXNPdXRsZXRDb21wb25lbnQpXG4gICAgcmVhZG9ubHkgY29udGVudD86IFF1ZXJ5TGlzdDx1bmtub3duPjtcblxuICAgIGF1dG9maWxsZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFRVSV9NT0RFKSByZWFkb25seSBtb2RlJDogT2JzZXJ2YWJsZTxUdWlCcmlnaHRuZXNzIHwgbnVsbD4sXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9BUFBFQVJBTkNFKSByZWFkb25seSBhcHBlYXJhbmNlOiBzdHJpbmcsXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9XQVRDSEVEX0NPTlRST0xMRVIpXG4gICAgICAgIHJlYWRvbmx5IGNvbnRyb2xsZXI6IFR1aVRleHRmaWVsZENvbnRyb2xsZXIsXG4gICAgICAgIEBJbmplY3QoVFVJX0hJTlRfV0FUQ0hFRF9DT05UUk9MTEVSKVxuICAgICAgICByZWFkb25seSBoaW50Q29udHJvbGxlcjogVHVpSGludENvbnRyb2xsZXJEaXJlY3RpdmUsXG4gICAgICAgIEBJbmplY3QoVFVJX1BSSU1JVElWRV9URVhURklFTERfT1BUSU9OUylcbiAgICAgICAgcmVhZG9ubHkgb3B0aW9uczogVHVpUHJpbWl0aXZlVGV4dGZpZWxkT3B0aW9ucyxcbiAgICAgICAgQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgaWYgKHRoaXMuY29tcHV0ZWREaXNhYmxlZCB8fCAhdGhpcy5mb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRPRE86IFJlZmFjdG9yIHRoaXMgYWZ0ZXIgd2UgZHJvcCBidWlsdC1pbiBpbnB1dCBlbGVtZW50XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAodGhpcy5mb2N1c2FibGVFbGVtZW50Lm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgICAgICAucHJldmlvdXNFbGVtZW50U2libGluZyBhcyBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCkgfHxcbiAgICAgICAgICAgIHRoaXMuZm9jdXNhYmxlRWxlbWVudC5uYXRpdmVFbGVtZW50XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpc05hdGl2ZUZvY3VzZWRJbih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtc2l6ZScpXG4gICAgZ2V0IHNpemUoKTogVHVpU2l6ZVMgfCBUdWlTaXplTCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2xsZXIuc2l6ZTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9pbnZhbGlkJylcbiAgICBnZXQgY29tcHV0ZWRJbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMucmVhZE9ubHkgJiYgIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy5pbnZhbGlkO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX2hpZGRlbicpXG4gICAgZ2V0IGlucHV0SGlkZGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmNvbnRlbnQ/Lmxlbmd0aDtcbiAgICB9XG5cbiAgICBnZXQgaGFzVmFsdWUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0NsZWFuZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2xsZXIuY2xlYW5lciAmJiB0aGlzLmhhc1ZhbHVlICYmICF0aGlzLmRpc2FibGVkICYmICF0aGlzLnJlYWRPbmx5XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGhhc1Rvb2x0aXAoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuaGludENvbnRyb2xsZXI/LmNvbnRlbnQgJiYgIXRoaXMuZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0N1c3RvbUNvbnRlbnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuY29udHJvbGxlci5jdXN0b21Db250ZW50O1xuICAgIH1cblxuICAgIGdldCBoYXNQbGFjZWhvbGRlcigpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgaGFzRGVjb3IgPVxuICAgICAgICAgICAgdGhpcy5jb250cm9sbGVyLmV4YW1wbGVUZXh0IHx8XG4gICAgICAgICAgICB0aGlzLnByZWZpeCB8fFxuICAgICAgICAgICAgdGhpcy5wb3N0Zml4IHx8XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ/LnBsYWNlaG9sZGVyO1xuICAgICAgICBjb25zdCBzaG93RGVjb3IgPSBoYXNEZWNvciAmJiAhdGhpcy5yZWFkT25seSAmJiB0aGlzLmNvbXB1dGVkRm9jdXNlZDtcbiAgICAgICAgY29uc3QgcGxhY2Vob2xkZXJWaXNpYmxlID0gIXRoaXMuaGFzVmFsdWUgJiYgIXNob3dEZWNvcjtcblxuICAgICAgICByZXR1cm4gdGhpcy5wbGFjZWhvbGRlclJhaXNhYmxlIHx8IHBsYWNlaG9sZGVyVmlzaWJsZTtcbiAgICB9XG5cbiAgICBnZXQgcGxhY2Vob2xkZXJSYWlzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLnBsYWNlaG9sZGVyUmFpc2FibGUgJiZcbiAgICAgICAgICAgICgodGhpcy5jb21wdXRlZEZvY3VzZWQgJiYgIXRoaXMucmVhZE9ubHkpIHx8IHRoaXMuaGFzVmFsdWUgfHwgdGhpcy5hdXRvZmlsbGVkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuLS1ib3JkZXItc3RhcnQucmVtJylcbiAgICBnZXQgYm9yZGVyU3RhcnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaWNvbkFsaWduTGVmdCA/IHRoaXMuaWNvblBhZGRpbmdMZWZ0IDogMDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0tYm9yZGVyLWVuZC5yZW0nKVxuICAgIGdldCBib3JkZXJFbmQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGdldEJvcmRlcihcbiAgICAgICAgICAgIHRoaXMuaWNvbkFsaWduUmlnaHQsXG4gICAgICAgICAgICB0aGlzLmhhc0NsZWFuZXIsXG4gICAgICAgICAgICB0aGlzLmhhc1Rvb2x0aXAsXG4gICAgICAgICAgICB0aGlzLmhhc0N1c3RvbUNvbnRlbnQsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGljb25BbGlnbkxlZnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc0ljb24gJiYgdGhpcy5pY29uQWxpZ24gPT09ICdsZWZ0JztcbiAgICB9XG5cbiAgICBnZXQgaWNvbkFsaWduUmlnaHQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc0ljb24gJiYgdGhpcy5pY29uQWxpZ24gPT09ICdyaWdodCc7XG4gICAgfVxuXG4gICAgLy8gU2FmYXJpIGV4cGlyYXRpb24gZGF0ZSBhdXRvZmlsbCB3b3JrYXJvdW5kXG4gICAgZ2V0IG5hbWUoKTogJ2NjZXhwaXJ5eWVhcicgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5hdXRvY29tcGxldGUgPT09IFR1aUNyZWRpdENhcmRBdXRvZmlsbE5hbWUuQ2NFeHBcbiAgICAgICAgICAgID8gJ2NjZXhwaXJ5eWVhcidcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRJZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50Py5pZCB8fCAnJztcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdmb2N1c2luJywgWyd0cnVlJ10pXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXNvdXQnLCBbJ2ZhbHNlJ10pXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgZ2V0SW5kZW50JChlbGVtZW50OiBIVE1MRWxlbWVudCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgICAgIHJldHVybiBmcm9tRXZlbnQoZWxlbWVudCwgJ3Njcm9sbCcpLnBpcGUobWFwKCgpID0+IC0xICogZWxlbWVudC5zY3JvbGxMZWZ0KSk7XG4gICAgfVxuXG4gICAgY2xlYXIoKSB7XG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSgnJyk7XG4gICAgfVxuXG4gICAgb25Nb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgY29uc3Qge25hdGl2ZUZvY3VzYWJsZUVsZW1lbnR9ID0gdGhpcztcblxuICAgICAgICBpZiAoIW5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgfHwgZXZlbnQudGFyZ2V0ID09PSBuYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBzZXROYXRpdmVGb2N1c2VkKG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIG9uTW9kZWxDaGFuZ2UodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBvbkhvdmVyZWQoaG92ZXJlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZUhvdmVyZWQoaG92ZXJlZCk7XG4gICAgfVxuXG4gICAgb25BdXRvZmlsbGVkKGF1dG9maWxsZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVBdXRvZmlsbGVkKGF1dG9maWxsZWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGljb25QYWRkaW5nTGVmdCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5zaXplID09PSAncycgPyBJQ09OX1BBRERJTkdfUyA6IElDT05fUEFERElORztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBwbGFjZWhvbGRlclJhaXNhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaXplICE9PSAncycgJiYgIXRoaXMuY29udHJvbGxlci5sYWJlbE91dHNpZGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaGFzSWNvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5pY29uQ29udGVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUF1dG9maWxsZWQoYXV0b2ZpbGxlZDogYm9vbGVhbikge1xuICAgICAgICBpZiAodGhpcy5hdXRvZmlsbGVkID09PSBhdXRvZmlsbGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmF1dG9maWxsZWQgPSBhdXRvZmlsbGVkO1xuICAgICAgICB0aGlzLmF1dG9maWxsZWRDaGFuZ2UuZW1pdChhdXRvZmlsbGVkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,49 @@
1
+ import { __decorate, __extends, __param } from "tslib";
2
+ import { Directive, forwardRef, Inject } from '@angular/core';
3
+ import { TuiAbstractTextfieldHost } from '@taiga-ui/core/abstract';
4
+ import { TUI_TEXTFIELD_HOST } from '@taiga-ui/core/tokens';
5
+ import { TuiPrimitiveTextfieldComponent } from './primitive-textfield.component';
6
+ var TuiPrimitiveTextfieldDirective = /** @class */ (function (_super) {
7
+ __extends(TuiPrimitiveTextfieldDirective, _super);
8
+ function TuiPrimitiveTextfieldDirective(textfield) {
9
+ var _this =
10
+ /**
11
+ * TuiPrimitiveTextfieldComponent satisfies all required parts of
12
+ * AbstractTuiControl interface. A new interface is not introduced
13
+ * so AbstractTuiControl is automatically injected for all other controls.
14
+ */
15
+ _super.call(this, textfield) || this;
16
+ _this.textfield = textfield;
17
+ return _this;
18
+ }
19
+ TuiPrimitiveTextfieldDirective_1 = TuiPrimitiveTextfieldDirective;
20
+ Object.defineProperty(TuiPrimitiveTextfieldDirective.prototype, "readOnly", {
21
+ get: function () {
22
+ return this.textfield.readOnly || !this.textfield.editable;
23
+ },
24
+ enumerable: true,
25
+ configurable: true
26
+ });
27
+ TuiPrimitiveTextfieldDirective.prototype.onValueChange = function (value) {
28
+ this.textfield.onModelChange(value);
29
+ };
30
+ var TuiPrimitiveTextfieldDirective_1;
31
+ TuiPrimitiveTextfieldDirective.ctorParameters = function () { return [
32
+ { type: TuiPrimitiveTextfieldComponent, decorators: [{ type: Inject, args: [TuiPrimitiveTextfieldComponent,] }] }
33
+ ]; };
34
+ TuiPrimitiveTextfieldDirective = TuiPrimitiveTextfieldDirective_1 = __decorate([
35
+ Directive({
36
+ selector: 'tui-primitive-textfield',
37
+ providers: [
38
+ {
39
+ provide: TUI_TEXTFIELD_HOST,
40
+ useExisting: forwardRef(function () { return TuiPrimitiveTextfieldDirective_1; }),
41
+ },
42
+ ],
43
+ }),
44
+ __param(0, Inject(TuiPrimitiveTextfieldComponent))
45
+ ], TuiPrimitiveTextfieldDirective);
46
+ return TuiPrimitiveTextfieldDirective;
47
+ }(TuiAbstractTextfieldHost));
48
+ export { TuiPrimitiveTextfieldDirective };
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlLXRleHRmaWVsZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3ByaW1pdGl2ZS10ZXh0ZmllbGQvIiwic291cmNlcyI6WyJwcmltaXRpdmUtdGV4dGZpZWxkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTVELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRXpELE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBVy9FO0lBQW9ELGtEQUE2QjtJQUM3RSx3Q0FFcUIsU0FBeUM7UUFGOUQ7UUFJSTs7OztXQUlHO1FBQ0gsa0JBQU0sU0FBK0MsQ0FBQyxTQUN6RDtRQVJvQixlQUFTLEdBQVQsU0FBUyxDQUFnQzs7SUFROUQsQ0FBQzt1Q0FYUSw4QkFBOEI7SUFhdkMsc0JBQUksb0RBQVE7YUFBWjtZQUNJLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztRQUMvRCxDQUFDOzs7T0FBQTtJQUVELHNEQUFhLEdBQWIsVUFBYyxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7OztnQkFoQitCLDhCQUE4Qix1QkFEekQsTUFBTSxTQUFDLDhCQUE4Qjs7SUFGakMsOEJBQThCO1FBVDFDLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSx5QkFBeUI7WUFDbkMsU0FBUyxFQUFFO2dCQUNQO29CQUNJLE9BQU8sRUFBRSxrQkFBa0I7b0JBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsY0FBTSxPQUFBLGdDQUE4QixFQUE5QixDQUE4QixDQUFDO2lCQUNoRTthQUNKO1NBQ0osQ0FBQztRQUdPLFdBQUEsTUFBTSxDQUFDLDhCQUE4QixDQUFDLENBQUE7T0FGbEMsOEJBQThCLENBb0IxQztJQUFELHFDQUFDO0NBQUEsQUFwQkQsQ0FBb0Qsd0JBQXdCLEdBb0IzRTtTQXBCWSw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgZm9yd2FyZFJlZiwgSW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWJzdHJhY3RUdWlDb250cm9sfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VHVpQWJzdHJhY3RUZXh0ZmllbGRIb3N0fSBmcm9tICdAdGFpZ2EtdWkvY29yZS9hYnN0cmFjdCc7XG5pbXBvcnQge1RVSV9URVhURklFTERfSE9TVH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcblxuaW1wb3J0IHtUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnR9IGZyb20gJy4vcHJpbWl0aXZlLXRleHRmaWVsZC5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ3R1aS1wcmltaXRpdmUtdGV4dGZpZWxkJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX1RFWFRGSUVMRF9IT1NULFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpUHJpbWl0aXZlVGV4dGZpZWxkRGlyZWN0aXZlKSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlQcmltaXRpdmVUZXh0ZmllbGREaXJlY3RpdmUgZXh0ZW5kcyBUdWlBYnN0cmFjdFRleHRmaWVsZEhvc3Q8YW55PiB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50KVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZDogVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgICkge1xuICAgICAgICAvKipcbiAgICAgICAgICogVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50IHNhdGlzZmllcyBhbGwgcmVxdWlyZWQgcGFydHMgb2ZcbiAgICAgICAgICogQWJzdHJhY3RUdWlDb250cm9sIGludGVyZmFjZS4gQSBuZXcgaW50ZXJmYWNlIGlzIG5vdCBpbnRyb2R1Y2VkXG4gICAgICAgICAqIHNvIEFic3RyYWN0VHVpQ29udHJvbCBpcyBhdXRvbWF0aWNhbGx5IGluamVjdGVkIGZvciBhbGwgb3RoZXIgY29udHJvbHMuXG4gICAgICAgICAqL1xuICAgICAgICBzdXBlcih0ZXh0ZmllbGQgYXMgYW55IGFzIEFic3RyYWN0VHVpQ29udHJvbDx1bmtub3duPik7XG4gICAgfVxuXG4gICAgZ2V0IHJlYWRPbmx5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0ZmllbGQucmVhZE9ubHkgfHwgIXRoaXMudGV4dGZpZWxkLmVkaXRhYmxlO1xuICAgIH1cblxuICAgIG9uVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnRleHRmaWVsZC5vbk1vZGVsQ2hhbmdlKHZhbHVlKTtcbiAgICB9XG59XG4iXX0=
@@ -3,15 +3,16 @@ import { CommonModule } from '@angular/common';
3
3
  import { NgModule } from '@angular/core';
4
4
  import { FormsModule } from '@angular/forms';
5
5
  import { MutationObserverModule } from '@ng-web-apis/mutation-observer';
6
- import { TuiAutofilledModule, TuiFocusableModule, TuiFocusedModule, TuiHoveredModule, TuiInputModeModule, TuiPreventDefaultModule, } from '@taiga-ui/cdk';
6
+ import { TuiAutofilledModule, TuiFocusableModule, TuiHoveredModule, TuiInputModeModule, TuiPreventDefaultModule, } from '@taiga-ui/cdk';
7
7
  import { TuiSvgModule } from '@taiga-ui/core/components/svg';
8
8
  import { TuiTooltipModule } from '@taiga-ui/core/components/tooltip';
9
9
  import { TuiWrapperModule } from '@taiga-ui/core/components/wrapper';
10
- import { TuiBorderModule } from '@taiga-ui/core/directives/border';
11
10
  import { TuiDescribedByModule } from '@taiga-ui/core/directives/described-by';
12
11
  import { TuiMaskAccessorModule } from '@taiga-ui/core/directives/mask-accessor';
13
12
  import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
14
13
  import { TuiPrimitiveTextfieldComponent } from './primitive-textfield.component';
14
+ import { TuiPrimitiveTextfieldDirective } from './primitive-textfield.directive';
15
+ import { TuiTextfieldComponent } from './textfield/textfield.component';
15
16
  import { TuiValueDecorationComponent } from './value-decoration/value-decoration.component';
16
17
  var TuiPrimitiveTextfieldModule = /** @class */ (function () {
17
18
  function TuiPrimitiveTextfieldModule() {
@@ -23,7 +24,6 @@ var TuiPrimitiveTextfieldModule = /** @class */ (function () {
23
24
  FormsModule,
24
25
  TuiMaskAccessorModule,
25
26
  TuiFocusableModule,
26
- TuiFocusedModule,
27
27
  TuiHoveredModule,
28
28
  TuiInputModeModule,
29
29
  PolymorpheusModule,
@@ -33,14 +33,22 @@ var TuiPrimitiveTextfieldModule = /** @class */ (function () {
33
33
  TuiAutofilledModule,
34
34
  TuiDescribedByModule,
35
35
  TuiPreventDefaultModule,
36
- TuiBorderModule,
37
36
  MutationObserverModule,
38
37
  ],
39
- declarations: [TuiPrimitiveTextfieldComponent, TuiValueDecorationComponent],
40
- exports: [TuiPrimitiveTextfieldComponent],
38
+ declarations: [
39
+ TuiPrimitiveTextfieldComponent,
40
+ TuiPrimitiveTextfieldDirective,
41
+ TuiTextfieldComponent,
42
+ TuiValueDecorationComponent,
43
+ ],
44
+ exports: [
45
+ TuiPrimitiveTextfieldComponent,
46
+ TuiPrimitiveTextfieldDirective,
47
+ TuiTextfieldComponent,
48
+ ],
41
49
  })
42
50
  ], TuiPrimitiveTextfieldModule);
43
51
  return TuiPrimitiveTextfieldModule;
44
52
  }());
45
53
  export { TuiPrimitiveTextfieldModule };
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlLXRleHRmaWVsZC5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3ByaW1pdGl2ZS10ZXh0ZmllbGQvIiwic291cmNlcyI6WyJwcmltaXRpdmUtdGV4dGZpZWxkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLHVCQUF1QixHQUMxQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRTVELE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQy9FLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBd0IxRjtJQUFBO0lBQTBDLENBQUM7SUFBOUIsMkJBQTJCO1FBdEJ2QyxRQUFRLENBQUM7WUFDTixPQUFPLEVBQUU7Z0JBQ0wsWUFBWTtnQkFDWixXQUFXO2dCQUNYLHFCQUFxQjtnQkFDckIsa0JBQWtCO2dCQUNsQixnQkFBZ0I7Z0JBQ2hCLGdCQUFnQjtnQkFDaEIsa0JBQWtCO2dCQUNsQixrQkFBa0I7Z0JBQ2xCLGdCQUFnQjtnQkFDaEIsWUFBWTtnQkFDWixnQkFBZ0I7Z0JBQ2hCLG1CQUFtQjtnQkFDbkIsb0JBQW9CO2dCQUNwQix1QkFBdUI7Z0JBQ3ZCLGVBQWU7Z0JBQ2Ysc0JBQXNCO2FBQ3pCO1lBQ0QsWUFBWSxFQUFFLENBQUMsOEJBQThCLEVBQUUsMkJBQTJCLENBQUM7WUFDM0UsT0FBTyxFQUFFLENBQUMsOEJBQThCLENBQUM7U0FDNUMsQ0FBQztPQUNXLDJCQUEyQixDQUFHO0lBQUQsa0NBQUM7Q0FBQSxBQUEzQyxJQUEyQztTQUE5QiwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtNdXRhdGlvbk9ic2VydmVyTW9kdWxlfSBmcm9tICdAbmctd2ViLWFwaXMvbXV0YXRpb24tb2JzZXJ2ZXInO1xuaW1wb3J0IHtcbiAgICBUdWlBdXRvZmlsbGVkTW9kdWxlLFxuICAgIFR1aUZvY3VzYWJsZU1vZHVsZSxcbiAgICBUdWlGb2N1c2VkTW9kdWxlLFxuICAgIFR1aUhvdmVyZWRNb2R1bGUsXG4gICAgVHVpSW5wdXRNb2RlTW9kdWxlLFxuICAgIFR1aVByZXZlbnREZWZhdWx0TW9kdWxlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VHVpU3ZnTW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3N2Zyc7XG5pbXBvcnQge1R1aVRvb2x0aXBNb2R1bGV9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvdG9vbHRpcCc7XG5pbXBvcnQge1R1aVdyYXBwZXJNb2R1bGV9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvd3JhcHBlcic7XG5pbXBvcnQge1R1aUJvcmRlck1vZHVsZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9ib3JkZXInO1xuaW1wb3J0IHtUdWlEZXNjcmliZWRCeU1vZHVsZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9kZXNjcmliZWQtYnknO1xuaW1wb3J0IHtUdWlNYXNrQWNjZXNzb3JNb2R1bGV9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvbWFzay1hY2Nlc3Nvcic7XG5pbXBvcnQge1BvbHltb3JwaGV1c01vZHVsZX0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcblxuaW1wb3J0IHtUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnR9IGZyb20gJy4vcHJpbWl0aXZlLXRleHRmaWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHtUdWlWYWx1ZURlY29yYXRpb25Db21wb25lbnR9IGZyb20gJy4vdmFsdWUtZGVjb3JhdGlvbi92YWx1ZS1kZWNvcmF0aW9uLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBUdWlNYXNrQWNjZXNzb3JNb2R1bGUsXG4gICAgICAgIFR1aUZvY3VzYWJsZU1vZHVsZSxcbiAgICAgICAgVHVpRm9jdXNlZE1vZHVsZSxcbiAgICAgICAgVHVpSG92ZXJlZE1vZHVsZSxcbiAgICAgICAgVHVpSW5wdXRNb2RlTW9kdWxlLFxuICAgICAgICBQb2x5bW9ycGhldXNNb2R1bGUsXG4gICAgICAgIFR1aVdyYXBwZXJNb2R1bGUsXG4gICAgICAgIFR1aVN2Z01vZHVsZSxcbiAgICAgICAgVHVpVG9vbHRpcE1vZHVsZSxcbiAgICAgICAgVHVpQXV0b2ZpbGxlZE1vZHVsZSxcbiAgICAgICAgVHVpRGVzY3JpYmVkQnlNb2R1bGUsXG4gICAgICAgIFR1aVByZXZlbnREZWZhdWx0TW9kdWxlLFxuICAgICAgICBUdWlCb3JkZXJNb2R1bGUsXG4gICAgICAgIE11dGF0aW9uT2JzZXJ2ZXJNb2R1bGUsXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQsIFR1aVZhbHVlRGVjb3JhdGlvbkNvbXBvbmVudF0sXG4gICAgZXhwb3J0czogW1R1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVByaW1pdGl2ZVRleHRmaWVsZE1vZHVsZSB7fVxuIl19
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlLXRleHRmaWVsZC5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3ByaW1pdGl2ZS10ZXh0ZmllbGQvIiwic291cmNlcyI6WyJwcmltaXRpdmUtdGV4dGZpZWxkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsdUJBQXVCLEdBQzFCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1RSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUM5RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUU1RCxPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRSxPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQStCMUY7SUFBQTtJQUEwQyxDQUFDO0lBQTlCLDJCQUEyQjtRQTdCdkMsUUFBUSxDQUFDO1lBQ04sT0FBTyxFQUFFO2dCQUNMLFlBQVk7Z0JBQ1osV0FBVztnQkFDWCxxQkFBcUI7Z0JBQ3JCLGtCQUFrQjtnQkFDbEIsZ0JBQWdCO2dCQUNoQixrQkFBa0I7Z0JBQ2xCLGtCQUFrQjtnQkFDbEIsZ0JBQWdCO2dCQUNoQixZQUFZO2dCQUNaLGdCQUFnQjtnQkFDaEIsbUJBQW1CO2dCQUNuQixvQkFBb0I7Z0JBQ3BCLHVCQUF1QjtnQkFDdkIsc0JBQXNCO2FBQ3pCO1lBQ0QsWUFBWSxFQUFFO2dCQUNWLDhCQUE4QjtnQkFDOUIsOEJBQThCO2dCQUM5QixxQkFBcUI7Z0JBQ3JCLDJCQUEyQjthQUM5QjtZQUNELE9BQU8sRUFBRTtnQkFDTCw4QkFBOEI7Z0JBQzlCLDhCQUE4QjtnQkFDOUIscUJBQXFCO2FBQ3hCO1NBQ0osQ0FBQztPQUNXLDJCQUEyQixDQUFHO0lBQUQsa0NBQUM7Q0FBQSxBQUEzQyxJQUEyQztTQUE5QiwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtNdXRhdGlvbk9ic2VydmVyTW9kdWxlfSBmcm9tICdAbmctd2ViLWFwaXMvbXV0YXRpb24tb2JzZXJ2ZXInO1xuaW1wb3J0IHtcbiAgICBUdWlBdXRvZmlsbGVkTW9kdWxlLFxuICAgIFR1aUZvY3VzYWJsZU1vZHVsZSxcbiAgICBUdWlIb3ZlcmVkTW9kdWxlLFxuICAgIFR1aUlucHV0TW9kZU1vZHVsZSxcbiAgICBUdWlQcmV2ZW50RGVmYXVsdE1vZHVsZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1R1aVN2Z01vZHVsZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9zdmcnO1xuaW1wb3J0IHtUdWlUb29sdGlwTW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHtUdWlXcmFwcGVyTW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3dyYXBwZXInO1xuaW1wb3J0IHtUdWlEZXNjcmliZWRCeU1vZHVsZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9kZXNjcmliZWQtYnknO1xuaW1wb3J0IHtUdWlNYXNrQWNjZXNzb3JNb2R1bGV9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvbWFzay1hY2Nlc3Nvcic7XG5pbXBvcnQge1BvbHltb3JwaGV1c01vZHVsZX0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcblxuaW1wb3J0IHtUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnR9IGZyb20gJy4vcHJpbWl0aXZlLXRleHRmaWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHtUdWlQcmltaXRpdmVUZXh0ZmllbGREaXJlY3RpdmV9IGZyb20gJy4vcHJpbWl0aXZlLXRleHRmaWVsZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtUdWlUZXh0ZmllbGRDb21wb25lbnR9IGZyb20gJy4vdGV4dGZpZWxkL3RleHRmaWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHtUdWlWYWx1ZURlY29yYXRpb25Db21wb25lbnR9IGZyb20gJy4vdmFsdWUtZGVjb3JhdGlvbi92YWx1ZS1kZWNvcmF0aW9uLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBUdWlNYXNrQWNjZXNzb3JNb2R1bGUsXG4gICAgICAgIFR1aUZvY3VzYWJsZU1vZHVsZSxcbiAgICAgICAgVHVpSG92ZXJlZE1vZHVsZSxcbiAgICAgICAgVHVpSW5wdXRNb2RlTW9kdWxlLFxuICAgICAgICBQb2x5bW9ycGhldXNNb2R1bGUsXG4gICAgICAgIFR1aVdyYXBwZXJNb2R1bGUsXG4gICAgICAgIFR1aVN2Z01vZHVsZSxcbiAgICAgICAgVHVpVG9vbHRpcE1vZHVsZSxcbiAgICAgICAgVHVpQXV0b2ZpbGxlZE1vZHVsZSxcbiAgICAgICAgVHVpRGVzY3JpYmVkQnlNb2R1bGUsXG4gICAgICAgIFR1aVByZXZlbnREZWZhdWx0TW9kdWxlLFxuICAgICAgICBNdXRhdGlvbk9ic2VydmVyTW9kdWxlLFxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudCxcbiAgICAgICAgVHVpUHJpbWl0aXZlVGV4dGZpZWxkRGlyZWN0aXZlLFxuICAgICAgICBUdWlUZXh0ZmllbGRDb21wb25lbnQsXG4gICAgICAgIFR1aVZhbHVlRGVjb3JhdGlvbkNvbXBvbmVudCxcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgICAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGREaXJlY3RpdmUsXG4gICAgICAgIFR1aVRleHRmaWVsZENvbXBvbmVudCxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlQcmltaXRpdmVUZXh0ZmllbGRNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,77 @@
1
+ import { __decorate, __param } from "tslib";
2
+ import { ChangeDetectionStrategy, Component, DoCheck, ElementRef, HostBinding, Inject, } from '@angular/core';
3
+ import { TuiIdService } from '@taiga-ui/cdk';
4
+ import { TEXTFIELD_CONTROLLER_PROVIDER, TUI_DESCRIBED_BY_PROVIDERS, TUI_TEXTFIELD_WATCHED_CONTROLLER, TuiDescribedByDirective, TuiTextfieldController, } from '@taiga-ui/core/directives';
5
+ import { TUI_TEXTFIELD_HOST } from '@taiga-ui/core/tokens';
6
+ // @dynamic
7
+ var TuiTextfieldComponent = /** @class */ (function () {
8
+ function TuiTextfieldComponent(host, controller, elementRef, describedBy, idService) {
9
+ this.host = host;
10
+ this.controller = controller;
11
+ this.elementRef = elementRef;
12
+ this.describedBy = describedBy;
13
+ this.idService = idService;
14
+ this.host.process(this.elementRef.nativeElement);
15
+ }
16
+ Object.defineProperty(TuiTextfieldComponent.prototype, "computedDescribedBy", {
17
+ get: function () {
18
+ return this.describedBy.computedDescribedBy;
19
+ },
20
+ enumerable: true,
21
+ configurable: true
22
+ });
23
+ Object.defineProperty(TuiTextfieldComponent.prototype, "id", {
24
+ get: function () {
25
+ return this.elementRef.nativeElement.id || this.idService.generate();
26
+ },
27
+ enumerable: true,
28
+ configurable: true
29
+ });
30
+ TuiTextfieldComponent.prototype.ngDoCheck = function () {
31
+ this.describedBy.tuiDescribedBy = this.id;
32
+ };
33
+ TuiTextfieldComponent.ctorParameters = function () { return [
34
+ { type: undefined, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_HOST,] }] },
35
+ { type: TuiTextfieldController, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_WATCHED_CONTROLLER,] }] },
36
+ { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
37
+ { type: TuiDescribedByDirective, decorators: [{ type: Inject, args: [TuiDescribedByDirective,] }] },
38
+ { type: TuiIdService, decorators: [{ type: Inject, args: [TuiIdService,] }] }
39
+ ]; };
40
+ __decorate([
41
+ HostBinding('attr.aria-describedby')
42
+ ], TuiTextfieldComponent.prototype, "computedDescribedBy", null);
43
+ __decorate([
44
+ HostBinding('id')
45
+ ], TuiTextfieldComponent.prototype, "id", null);
46
+ TuiTextfieldComponent = __decorate([
47
+ Component({
48
+ selector: 'input[tuiTextfield]',
49
+ template: '',
50
+ providers: [
51
+ TuiDescribedByDirective,
52
+ TUI_DESCRIBED_BY_PROVIDERS,
53
+ TEXTFIELD_CONTROLLER_PROVIDER,
54
+ ],
55
+ host: {
56
+ type: 'text',
57
+ '[attr.aria-placeholder]': 'controller.exampleText',
58
+ '[attr.aria-invalid]': 'host.invalid',
59
+ '[attr.disabled]': 'host.disabled || null',
60
+ '[tabIndex]': 'host.focusable ? 0 : -1',
61
+ '[readOnly]': 'host.readOnly',
62
+ '[value]': 'host.value',
63
+ '(input)': 'host.onValueChange($event.target.value)',
64
+ },
65
+ changeDetection: ChangeDetectionStrategy.OnPush,
66
+ styles: [":host{font:var(--tui-font-text-s);color:var(--tui-text-01);padding:0;border:0 solid transparent;border-radius:inherit;background:0 0;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:0;-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%;padding:0 var(--tui-padding-m);border-width:0 var(--border-end) 0 var(--border-start);border-inline-start-width:var(--border-start);border-inline-end-width:var(--border-end);text-indent:var(--text-indent);text-align:inherit;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-transform:inherit}:host:-webkit-autofill,:host:-webkit-autofill:focus,:host:-webkit-autofill:hover{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 1000px var(--tui-autofill) inset!important}:host :host-context(tui-primitive-textfield[data-mode=onDark]):-webkit-autofill,:host :host-context(tui-primitive-textfield[data-mode=onDark]):-webkit-autofill:focus,:host :host-context(tui-primitive-textfield[data-mode=onDark]):-webkit-autofill:hover,:host[data-mode=onDark] :host:-webkit-autofill,:host[data-mode=onDark] :host:-webkit-autofill:focus,:host[data-mode=onDark] :host:-webkit-autofill:hover{border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01-night)!important;border-color:var(--tui-autofill-night);-webkit-box-shadow:0 0 0 1000px var(--tui-autofill-night) inset!important}:host :host-context(tui-primitive-textfield[data-size='s']):not(tui-primitive-textfield),:host[data-size='s'] :host{padding:0 var(--tui-padding-s)}:host :host-context(tui-primitive-textfield[data-size='l']):not(tui-primitive-textfield),:host[data-size='l'] :host{padding:0 var(--tui-padding-l)}:host :host-context(tui-primitive-textfield._disabled),:host._disabled :host{pointer-events:none}:host :host-context(tui-primitive-textfield[data-size='l']:not(._label-outside)):not(tui-primitive-textfield),:host[data-size='l']:not(._label-outside) :host{padding-top:1.25rem}:host :host-context(tui-primitive-textfield[data-size='l']:not(._label-outside)):not(tui-primitive-textfield):-webkit-autofill+.content .placeholder,:host[data-size='l']:not(._label-outside) :host:-webkit-autofill+.content .placeholder{font-size:.8156rem;transform:translateY(-.625rem)}:host :host-context(tui-primitive-textfield[data-size='m']:not(._label-outside)):not(tui-primitive-textfield),:host[data-size='m']:not(._label-outside) :host{padding-top:1.125rem}:host :host-context(tui-primitive-textfield[data-size='m']:not(._label-outside)):not(tui-primitive-textfield):-webkit-autofill+.content .placeholder,:host[data-size='m']:not(._label-outside) :host:-webkit-autofill+.content .placeholder{font-size:.69rem;transform:translateY(-.5rem)}:host :host-context(tui-primitive-textfield._hidden),:host._hidden input:host{opacity:0;text-indent:-10em;-webkit-user-select:none}:host::-webkit-caps-lock-indicator{margin-right:.375rem;align-self:center}:host-context(tui-primitive-textfield[data-size='l']:not(._label-outside)) :host::-webkit-caps-lock-indicator{margin-top:-1.25rem}:host::-webkit-contacts-auto-fill-button,:host::-webkit-credentials-auto-fill-button,:host::-webkit-credit-card-auto-fill-button{background-color:var(--tui-text-03)}:host-context(tui-primitive-textfield[data-size='l']:not(._label-outside)) :host::-webkit-contacts-auto-fill-button,:host-context(tui-primitive-textfield[data-size='l']:not(._label-outside)) :host::-webkit-credentials-auto-fill-button,:host-context(tui-primitive-textfield[data-size='l']:not(._label-outside)) :host::-webkit-credit-card-auto-fill-button{margin-top:-1.25rem}:host::-webkit-contacts-auto-fill-button:hover,:host::-webkit-credentials-auto-fill-button:hover,:host::-webkit-credit-card-auto-fill-button:hover{background-color:var(--tui-text-02)}:host::-ms-input-placeholder{color:var(--tui-text-03);opacity:0}:host::placeholder{color:var(--tui-text-03);opacity:0}:host :host-context(tui-primitive-textfield[data-mode=onDark])::-ms-input-placeholder{color:var(--tui-text-03-night)}:host :host-context(tui-primitive-textfield[data-mode=onDark])::placeholder{color:var(--tui-text-03-night)}:host :host-context(tui-primitive-textfield._focused:not(._readonly))::-ms-input-placeholder{opacity:1}:host :host-context(tui-primitive-textfield._focused:not(._readonly))::placeholder{opacity:1}"]
67
+ }),
68
+ __param(0, Inject(TUI_TEXTFIELD_HOST)),
69
+ __param(1, Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER)),
70
+ __param(2, Inject(ElementRef)),
71
+ __param(3, Inject(TuiDescribedByDirective)),
72
+ __param(4, Inject(TuiIdService))
73
+ ], TuiTextfieldComponent);
74
+ return TuiTextfieldComponent;
75
+ }());
76
+ export { TuiTextfieldComponent };
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvcHJpbWl0aXZlLXRleHRmaWVsZC8iLCJzb3VyY2VzIjpbInRleHRmaWVsZC90ZXh0ZmllbGQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxPQUFPLEVBQ1AsVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQ0gsNkJBQTZCLEVBQzdCLDBCQUEwQixFQUMxQixnQ0FBZ0MsRUFDaEMsdUJBQXVCLEVBQ3ZCLHNCQUFzQixHQUN6QixNQUFNLDJCQUEyQixDQUFDO0FBRW5DLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRXpELFdBQVc7QUFzQlg7SUFDSSwrQkFDeUMsSUFBc0IsRUFFbEQsVUFBa0MsRUFDTixVQUF3QyxFQUU1RCxXQUFvQyxFQUVwQyxTQUF1QjtRQVBILFNBQUksR0FBSixJQUFJLENBQWtCO1FBRWxELGVBQVUsR0FBVixVQUFVLENBQXdCO1FBQ04sZUFBVSxHQUFWLFVBQVUsQ0FBOEI7UUFFNUQsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBRXBDLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFFeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBR0Qsc0JBQUksc0RBQW1CO2FBQXZCO1lBQ0ksT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDO1FBQ2hELENBQUM7OztPQUFBO0lBR0Qsc0JBQUkscUNBQUU7YUFBTjtZQUNJLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekUsQ0FBQzs7O09BQUE7SUFFRCx5Q0FBUyxHQUFUO1FBQ0ksSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUM5QyxDQUFDOztnREF4QkksTUFBTSxTQUFDLGtCQUFrQjtnQkFFTCxzQkFBc0IsdUJBRDFDLE1BQU0sU0FBQyxnQ0FBZ0M7Z0JBRVMsVUFBVSx1QkFBMUQsTUFBTSxTQUFDLFVBQVU7Z0JBRVksdUJBQXVCLHVCQURwRCxNQUFNLFNBQUMsdUJBQXVCO2dCQUdILFlBQVksdUJBRHZDLE1BQU0sU0FBQyxZQUFZOztJQU94QjtRQURDLFdBQVcsQ0FBQyx1QkFBdUIsQ0FBQztvRUFHcEM7SUFHRDtRQURDLFdBQVcsQ0FBQyxJQUFJLENBQUM7bURBR2pCO0lBdEJRLHFCQUFxQjtRQXJCakMsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLHFCQUFxQjtZQUMvQixRQUFRLEVBQUUsRUFBRTtZQUNaLFNBQVMsRUFBRTtnQkFDUCx1QkFBdUI7Z0JBQ3ZCLDBCQUEwQjtnQkFDMUIsNkJBQTZCO2FBQ2hDO1lBQ0QsSUFBSSxFQUFFO2dCQUNGLElBQUksRUFBRSxNQUFNO2dCQUNaLHlCQUF5QixFQUFFLHdCQUF3QjtnQkFDbkQscUJBQXFCLEVBQUUsY0FBYztnQkFDckMsaUJBQWlCLEVBQUUsdUJBQXVCO2dCQUMxQyxZQUFZLEVBQUUseUJBQXlCO2dCQUN2QyxZQUFZLEVBQUUsZUFBZTtnQkFDN0IsU0FBUyxFQUFFLFlBQVk7Z0JBQ3ZCLFNBQVMsRUFBRSx5Q0FBeUM7YUFDdkQ7WUFFRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7U0FDbEQsQ0FBQztRQUdPLFdBQUEsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUE7UUFDMUIsV0FBQSxNQUFNLENBQUMsZ0NBQWdDLENBQUMsQ0FBQTtRQUV4QyxXQUFBLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUNsQixXQUFBLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO1FBRS9CLFdBQUEsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFBO09BUmhCLHFCQUFxQixDQTJCakM7SUFBRCw0QkFBQztDQUFBLEFBM0JELElBMkJDO1NBM0JZLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIERvQ2hlY2ssXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUdWlJZFNlcnZpY2V9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBURVhURklFTERfQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICBUVUlfREVTQ1JJQkVEX0JZX1BST1ZJREVSUyxcbiAgICBUVUlfVEVYVEZJRUxEX1dBVENIRURfQ09OVFJPTExFUixcbiAgICBUdWlEZXNjcmliZWRCeURpcmVjdGl2ZSxcbiAgICBUdWlUZXh0ZmllbGRDb250cm9sbGVyLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzJztcbmltcG9ydCB7VHVpVGV4dGZpZWxkSG9zdH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvaW50ZXJmYWNlcyc7XG5pbXBvcnQge1RVSV9URVhURklFTERfSE9TVH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcblxuLy8gQGR5bmFtaWNcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnaW5wdXRbdHVpVGV4dGZpZWxkXScsXG4gICAgdGVtcGxhdGU6ICcnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBUdWlEZXNjcmliZWRCeURpcmVjdGl2ZSxcbiAgICAgICAgVFVJX0RFU0NSSUJFRF9CWV9QUk9WSURFUlMsXG4gICAgICAgIFRFWFRGSUVMRF9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICdbYXR0ci5hcmlhLXBsYWNlaG9sZGVyXSc6ICdjb250cm9sbGVyLmV4YW1wbGVUZXh0JyxcbiAgICAgICAgJ1thdHRyLmFyaWEtaW52YWxpZF0nOiAnaG9zdC5pbnZhbGlkJyxcbiAgICAgICAgJ1thdHRyLmRpc2FibGVkXSc6ICdob3N0LmRpc2FibGVkIHx8IG51bGwnLFxuICAgICAgICAnW3RhYkluZGV4XSc6ICdob3N0LmZvY3VzYWJsZSA/IDAgOiAtMScsXG4gICAgICAgICdbcmVhZE9ubHldJzogJ2hvc3QucmVhZE9ubHknLFxuICAgICAgICAnW3ZhbHVlXSc6ICdob3N0LnZhbHVlJyxcbiAgICAgICAgJyhpbnB1dCknOiAnaG9zdC5vblZhbHVlQ2hhbmdlKCRldmVudC50YXJnZXQudmFsdWUpJyxcbiAgICB9LFxuICAgIHN0eWxlVXJsczogWyd0ZXh0ZmllbGQuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlUZXh0ZmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBEb0NoZWNrIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX0hPU1QpIHJlYWRvbmx5IGhvc3Q6IFR1aVRleHRmaWVsZEhvc3QsXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9XQVRDSEVEX0NPTlRST0xMRVIpXG4gICAgICAgIHJlYWRvbmx5IGNvbnRyb2xsZXI6IFR1aVRleHRmaWVsZENvbnRyb2xsZXIsXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KFR1aURlc2NyaWJlZEJ5RGlyZWN0aXZlKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRlc2NyaWJlZEJ5OiBUdWlEZXNjcmliZWRCeURpcmVjdGl2ZSxcbiAgICAgICAgQEluamVjdChUdWlJZFNlcnZpY2UpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaWRTZXJ2aWNlOiBUdWlJZFNlcnZpY2UsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuaG9zdC5wcm9jZXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1kZXNjcmliZWRieScpXG4gICAgZ2V0IGNvbXB1dGVkRGVzY3JpYmVkQnkoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmRlc2NyaWJlZEJ5LmNvbXB1dGVkRGVzY3JpYmVkQnk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdpZCcpXG4gICAgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5pZCB8fCB0aGlzLmlkU2VydmljZS5nZW5lcmF0ZSgpO1xuICAgIH1cblxuICAgIG5nRG9DaGVjaygpIHtcbiAgICAgICAgdGhpcy5kZXNjcmliZWRCeS50dWlEZXNjcmliZWRCeSA9IHRoaXMuaWQ7XG4gICAgfVxufVxuIl19