@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
@@ -6,6 +6,9 @@ import { Observable } from 'rxjs';
6
6
  import { pairwise, takeUntil } from 'rxjs/operators';
7
7
  const PERIMETER = 314;
8
8
  const COEFFICIENT = 1.5;
9
+ /**
10
+ * @deprecated
11
+ */
9
12
  let TuiLoaderDirective = class TuiLoaderDirective {
10
13
  constructor(animationFrame$, ngZone, destroy$, elementRef, userAgent) {
11
14
  this.elementRef = elementRef;
@@ -29,7 +32,7 @@ let TuiLoaderDirective = class TuiLoaderDirective {
29
32
  const fps = 1000 / delta;
30
33
  const offsetStep = 1 + Math.floor(this.strokeDasharray / PERIMETER);
31
34
  const { style } = this.elementRef.nativeElement;
32
- style.strokeDashoffset = this.strokeDashoffset.toString();
35
+ style.strokeDashoffset = String(this.strokeDashoffset);
33
36
  style.strokeDasharray = PERIMETER - strokeDasharray + ' ' + strokeDasharray;
34
37
  this.strokeDasharray -= PERIMETER / COEFFICIENT / fps;
35
38
  this.strokeDashoffset += (offsetStep * PERIMETER) / COEFFICIENT / fps;
@@ -55,4 +58,4 @@ TuiLoaderDirective = __decorate([
55
58
  __param(4, Inject(USER_AGENT))
56
59
  ], TuiLoaderDirective);
57
60
  export { TuiLoaderDirective };
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvbG9hZGVyLyIsInNvdXJjZXMiOlsibG9hZGVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUMsZUFBZSxFQUFFLFVBQVUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxlQUFlLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBQyxRQUFRLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDO0FBQ3RCLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQztBQU14QixJQUFhLGtCQUFrQixHQUEvQixNQUFhLGtCQUFrQjtJQUszQixZQUM2QixlQUFtQyxFQUM1QyxNQUFjLEVBQ0gsUUFBMEIsRUFDaEIsVUFBd0MsRUFDekQsU0FBaUI7UUFEQSxlQUFVLEdBQVYsVUFBVSxDQUE4QjtRQVJ6RSxvQkFBZSxHQUFHLFNBQVMsQ0FBQztRQUU1QixxQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFTekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDckQsT0FBTztTQUNWO1FBRUQsZUFBZTthQUNWLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzFELFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU8sT0FBTyxDQUFDLEtBQWE7UUFDekIsSUFBSSxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsRUFBRTtZQUMxQixJQUFJLENBQUMsZUFBZSxHQUFHLFNBQVMsR0FBRyxDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsQ0FBQztTQUM3QjtRQUVELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUMsQ0FBQztRQUNuRSxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLE1BQU0sVUFBVSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDLENBQUM7UUFDcEUsTUFBTSxFQUFDLEtBQUssRUFBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBRTlDLEtBQUssQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUQsS0FBSyxDQUFDLGVBQWUsR0FBRyxTQUFTLEdBQUcsZUFBZSxHQUFHLEdBQUcsR0FBRyxlQUFlLENBQUM7UUFFNUUsSUFBSSxDQUFDLGVBQWUsSUFBSSxTQUFTLEdBQUcsV0FBVyxHQUFHLEdBQUcsQ0FBQztRQUN0RCxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLEdBQUcsV0FBVyxHQUFHLEdBQUcsQ0FBQztRQUN0RSx5RUFBeUU7SUFDN0UsQ0FBQztDQUNKLENBQUE7O1lBbkNpRCxVQUFVLHVCQUFuRCxNQUFNLFNBQUMsZUFBZTtZQUNDLE1BQU0sdUJBQTdCLE1BQU0sU0FBQyxNQUFNO1lBQ3VCLFVBQVUsdUJBQTlDLE1BQU0sU0FBQyxpQkFBaUI7WUFDd0IsVUFBVSx1QkFBMUQsTUFBTSxTQUFDLFVBQVU7eUNBQ2pCLE1BQU0sU0FBQyxVQUFVOztBQVZiLGtCQUFrQjtJQUo5QixTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsUUFBUTtRQUNsQixTQUFTLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztLQUNqQyxDQUFDO0lBT08sV0FBQSxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDdkIsV0FBQSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDZCxXQUFBLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0lBQ3pCLFdBQUEsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ2xCLFdBQUEsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0dBVmQsa0JBQWtCLENBeUM5QjtTQXpDWSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5qZWN0LCBOZ1pvbmV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBTklNQVRJT05fRlJBTUUsIFVTRVJfQUdFTlR9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuaW1wb3J0IHtpc0VkZ2VPbGRlclRoYW4sIGlzSUUsIFR1aURlc3Ryb3lTZXJ2aWNlLCB0dWlab25lZnJlZX0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtwYWlyd2lzZSwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmNvbnN0IFBFUklNRVRFUiA9IDMxNDtcbmNvbnN0IENPRUZGSUNJRU5UID0gMS41O1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2NpcmNsZScsXG4gICAgcHJvdmlkZXJzOiBbVHVpRGVzdHJveVNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlMb2FkZXJEaXJlY3RpdmUge1xuICAgIHByaXZhdGUgc3Ryb2tlRGFzaGFycmF5ID0gUEVSSU1FVEVSO1xuXG4gICAgcHJpdmF0ZSBzdHJva2VEYXNob2Zmc2V0ID0gMDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KEFOSU1BVElPTl9GUkFNRSkgYW5pbWF0aW9uRnJhbWUkOiBPYnNlcnZhYmxlPG51bWJlcj4sXG4gICAgICAgIEBJbmplY3QoTmdab25lKSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgQEluamVjdChUdWlEZXN0cm95U2VydmljZSkgZGVzdHJveSQ6IE9ic2VydmFibGU8dm9pZD4sXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPFNWR0NpcmNsZUVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KFVTRVJfQUdFTlQpIHVzZXJBZ2VudDogc3RyaW5nLFxuICAgICkge1xuICAgICAgICBpZiAoIWlzRWRnZU9sZGVyVGhhbigxNywgdXNlckFnZW50KSAmJiAhaXNJRSh1c2VyQWdlbnQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBhbmltYXRpb25GcmFtZSRcbiAgICAgICAgICAgIC5waXBlKHR1aVpvbmVmcmVlKG5nWm9uZSksIHBhaXJ3aXNlKCksIHRha2VVbnRpbChkZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChbY3VyLCBwcmV2XSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYW5pbWF0ZShwcmV2IC0gY3VyKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYW5pbWF0ZShkZWx0YTogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLnN0cm9rZURhc2hhcnJheSA8IDApIHtcbiAgICAgICAgICAgIHRoaXMuc3Ryb2tlRGFzaGFycmF5ID0gUEVSSU1FVEVSICogMjtcbiAgICAgICAgICAgIHRoaXMuc3Ryb2tlRGFzaG9mZnNldCA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdHJva2VEYXNoYXJyYXkgPSBNYXRoLmFicyh0aGlzLnN0cm9rZURhc2hhcnJheSAtIFBFUklNRVRFUik7XG4gICAgICAgIGNvbnN0IGZwcyA9IDEwMDAgLyBkZWx0YTtcbiAgICAgICAgY29uc3Qgb2Zmc2V0U3RlcCA9IDEgKyBNYXRoLmZsb29yKHRoaXMuc3Ryb2tlRGFzaGFycmF5IC8gUEVSSU1FVEVSKTtcbiAgICAgICAgY29uc3Qge3N0eWxlfSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIHN0eWxlLnN0cm9rZURhc2hvZmZzZXQgPSB0aGlzLnN0cm9rZURhc2hvZmZzZXQudG9TdHJpbmcoKTtcbiAgICAgICAgc3R5bGUuc3Ryb2tlRGFzaGFycmF5ID0gUEVSSU1FVEVSIC0gc3Ryb2tlRGFzaGFycmF5ICsgJyAnICsgc3Ryb2tlRGFzaGFycmF5O1xuXG4gICAgICAgIHRoaXMuc3Ryb2tlRGFzaGFycmF5IC09IFBFUklNRVRFUiAvIENPRUZGSUNJRU5UIC8gZnBzO1xuICAgICAgICB0aGlzLnN0cm9rZURhc2hvZmZzZXQgKz0gKG9mZnNldFN0ZXAgKiBQRVJJTUVURVIpIC8gQ09FRkZJQ0lFTlQgLyBmcHM7XG4gICAgICAgIC8vIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQhLnN0eWxlLmFuaW1hdGlvbiA9ICdub25lJztcbiAgICB9XG59XG4iXX0=
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvbG9hZGVyLyIsInNvdXJjZXMiOlsibG9hZGVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUMsZUFBZSxFQUFFLFVBQVUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxlQUFlLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBQyxRQUFRLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDO0FBQ3RCLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQztBQUV4Qjs7R0FFRztBQUtILElBQWEsa0JBQWtCLEdBQS9CLE1BQWEsa0JBQWtCO0lBSzNCLFlBQzZCLGVBQW1DLEVBQzVDLE1BQWMsRUFDSCxRQUEwQixFQUNoQixVQUF3QyxFQUN6RCxTQUFpQjtRQURBLGVBQVUsR0FBVixVQUFVLENBQThCO1FBUnpFLG9CQUFlLEdBQUcsU0FBUyxDQUFDO1FBRTVCLHFCQUFnQixHQUFHLENBQUMsQ0FBQztRQVN6QixJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNyRCxPQUFPO1NBQ1Y7UUFFRCxlQUFlO2FBQ1YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDMUQsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFTyxPQUFPLENBQUMsS0FBYTtRQUN6QixJQUFJLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxHQUFHLENBQUMsQ0FBQztZQUNyQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO1NBQzdCO1FBRUQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxLQUFLLENBQUM7UUFDekIsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUMsQ0FBQztRQUNwRSxNQUFNLEVBQUMsS0FBSyxFQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFFOUMsS0FBSyxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN2RCxLQUFLLENBQUMsZUFBZSxHQUFHLFNBQVMsR0FBRyxlQUFlLEdBQUcsR0FBRyxHQUFHLGVBQWUsQ0FBQztRQUU1RSxJQUFJLENBQUMsZUFBZSxJQUFJLFNBQVMsR0FBRyxXQUFXLEdBQUcsR0FBRyxDQUFDO1FBQ3RELElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsR0FBRyxXQUFXLEdBQUcsR0FBRyxDQUFDO1FBQ3RFLHlFQUF5RTtJQUM3RSxDQUFDO0NBQ0osQ0FBQTs7WUFuQ2lELFVBQVUsdUJBQW5ELE1BQU0sU0FBQyxlQUFlO1lBQ0MsTUFBTSx1QkFBN0IsTUFBTSxTQUFDLE1BQU07WUFDdUIsVUFBVSx1QkFBOUMsTUFBTSxTQUFDLGlCQUFpQjtZQUN3QixVQUFVLHVCQUExRCxNQUFNLFNBQUMsVUFBVTt5Q0FDakIsTUFBTSxTQUFDLFVBQVU7O0FBVmIsa0JBQWtCO0lBSjlCLFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSxRQUFRO1FBQ2xCLFNBQVMsRUFBRSxDQUFDLGlCQUFpQixDQUFDO0tBQ2pDLENBQUM7SUFPTyxXQUFBLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUN2QixXQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNkLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFDekIsV0FBQSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDbEIsV0FBQSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7R0FWZCxrQkFBa0IsQ0F5QzlCO1NBekNZLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3QsIE5nWm9uZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FOSU1BVElPTl9GUkFNRSwgVVNFUl9BR0VOVH0gZnJvbSAnQG5nLXdlYi1hcGlzL2NvbW1vbic7XG5pbXBvcnQge2lzRWRnZU9sZGVyVGhhbiwgaXNJRSwgVHVpRGVzdHJveVNlcnZpY2UsIHR1aVpvbmVmcmVlfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3BhaXJ3aXNlLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuY29uc3QgUEVSSU1FVEVSID0gMzE0O1xuY29uc3QgQ09FRkZJQ0lFTlQgPSAxLjU7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdjaXJjbGUnLFxuICAgIHByb3ZpZGVyczogW1R1aURlc3Ryb3lTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpTG9hZGVyRGlyZWN0aXZlIHtcbiAgICBwcml2YXRlIHN0cm9rZURhc2hhcnJheSA9IFBFUklNRVRFUjtcblxuICAgIHByaXZhdGUgc3Ryb2tlRGFzaG9mZnNldCA9IDA7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChBTklNQVRJT05fRlJBTUUpIGFuaW1hdGlvbkZyYW1lJDogT2JzZXJ2YWJsZTxudW1iZXI+LFxuICAgICAgICBASW5qZWN0KE5nWm9uZSkgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIEBJbmplY3QoVHVpRGVzdHJveVNlcnZpY2UpIGRlc3Ryb3kkOiBPYnNlcnZhYmxlPHZvaWQ+LFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxTVkdDaXJjbGVFbGVtZW50PixcbiAgICAgICAgQEluamVjdChVU0VSX0FHRU5UKSB1c2VyQWdlbnQ6IHN0cmluZyxcbiAgICApIHtcbiAgICAgICAgaWYgKCFpc0VkZ2VPbGRlclRoYW4oMTcsIHVzZXJBZ2VudCkgJiYgIWlzSUUodXNlckFnZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgYW5pbWF0aW9uRnJhbWUkXG4gICAgICAgICAgICAucGlwZSh0dWlab25lZnJlZShuZ1pvbmUpLCBwYWlyd2lzZSgpLCB0YWtlVW50aWwoZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoW2N1ciwgcHJldl0pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGUocHJldiAtIGN1cik7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFuaW1hdGUoZGVsdGE6IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy5zdHJva2VEYXNoYXJyYXkgPCAwKSB7XG4gICAgICAgICAgICB0aGlzLnN0cm9rZURhc2hhcnJheSA9IFBFUklNRVRFUiAqIDI7XG4gICAgICAgICAgICB0aGlzLnN0cm9rZURhc2hvZmZzZXQgPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3Ryb2tlRGFzaGFycmF5ID0gTWF0aC5hYnModGhpcy5zdHJva2VEYXNoYXJyYXkgLSBQRVJJTUVURVIpO1xuICAgICAgICBjb25zdCBmcHMgPSAxMDAwIC8gZGVsdGE7XG4gICAgICAgIGNvbnN0IG9mZnNldFN0ZXAgPSAxICsgTWF0aC5mbG9vcih0aGlzLnN0cm9rZURhc2hhcnJheSAvIFBFUklNRVRFUik7XG4gICAgICAgIGNvbnN0IHtzdHlsZX0gPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgICAgICBzdHlsZS5zdHJva2VEYXNob2Zmc2V0ID0gU3RyaW5nKHRoaXMuc3Ryb2tlRGFzaG9mZnNldCk7XG4gICAgICAgIHN0eWxlLnN0cm9rZURhc2hhcnJheSA9IFBFUklNRVRFUiAtIHN0cm9rZURhc2hhcnJheSArICcgJyArIHN0cm9rZURhc2hhcnJheTtcblxuICAgICAgICB0aGlzLnN0cm9rZURhc2hhcnJheSAtPSBQRVJJTUVURVIgLyBDT0VGRklDSUVOVCAvIGZwcztcbiAgICAgICAgdGhpcy5zdHJva2VEYXNob2Zmc2V0ICs9IChvZmZzZXRTdGVwICogUEVSSU1FVEVSKSAvIENPRUZGSUNJRU5UIC8gZnBzO1xuICAgICAgICAvLyB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50IS5zdHlsZS5hbmltYXRpb24gPSAnbm9uZSc7XG4gICAgfVxufVxuIl19
@@ -1,6 +1,8 @@
1
1
  export * from './primitive-textfield.component';
2
+ export * from './primitive-textfield.directive';
2
3
  export * from './primitive-textfield.module';
3
4
  export * from './primitive-textfield.providers';
4
5
  export * from './primitive-textfield-options';
6
+ export * from './textfield/textfield.component';
5
7
  export * from './value-decoration/value-decoration.component';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3ByaW1pdGl2ZS10ZXh0ZmllbGQvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsK0NBQStDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3ByaW1pdGl2ZS10ZXh0ZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcHJpbWl0aXZlLXRleHRmaWVsZC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9wcmltaXRpdmUtdGV4dGZpZWxkLnByb3ZpZGVycyc7XG5leHBvcnQgKiBmcm9tICcuL3ByaW1pdGl2ZS10ZXh0ZmllbGQtb3B0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL3ZhbHVlLWRlY29yYXRpb24vdmFsdWUtZGVjb3JhdGlvbi5jb21wb25lbnQnO1xuIl19
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3ByaW1pdGl2ZS10ZXh0ZmllbGQvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLCtDQUErQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wcmltaXRpdmUtdGV4dGZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3ByaW1pdGl2ZS10ZXh0ZmllbGQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vcHJpbWl0aXZlLXRleHRmaWVsZC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9wcmltaXRpdmUtdGV4dGZpZWxkLnByb3ZpZGVycyc7XG5leHBvcnQgKiBmcm9tICcuL3ByaW1pdGl2ZS10ZXh0ZmllbGQtb3B0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL3RleHRmaWVsZC90ZXh0ZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdmFsdWUtZGVjb3JhdGlvbi92YWx1ZS1kZWNvcmF0aW9uLmNvbXBvbmVudCc7XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { __decorate, __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';
@@ -13,13 +13,14 @@ import { TUI_PRIMITIVE_TEXTFIELD_OPTIONS, } from './primitive-textfield-options'
13
13
  const ICON_PADDING = 1.75;
14
14
  const ICON_PADDING_S = 1.5;
15
15
  let TuiPrimitiveTextfieldComponent = class TuiPrimitiveTextfieldComponent extends AbstractTuiInteractive {
16
- constructor(mode$, appearance, controller, hintController, options) {
16
+ constructor(mode$, appearance, controller, hintController, options, elementRef) {
17
17
  super();
18
18
  this.mode$ = mode$;
19
19
  this.appearance = appearance;
20
20
  this.controller = controller;
21
21
  this.hintController = hintController;
22
22
  this.options = options;
23
+ this.elementRef = elementRef;
23
24
  this.editable = true;
24
25
  this.filler = '';
25
26
  this.iconAlign = this.options.iconAlign;
@@ -33,23 +34,27 @@ let TuiPrimitiveTextfieldComponent = class TuiPrimitiveTextfieldComponent extend
33
34
  this.postfix = '';
34
35
  this.value = '';
35
36
  this.valueChange = new EventEmitter();
37
+ /**
38
+ * @deprecated TODO: remove in 3.0
39
+ */
36
40
  this.autofilledChange = new EventEmitter();
37
41
  this.autofilled = false;
38
42
  }
39
43
  get nativeFocusableElement() {
40
- return this.computedDisabled || !this.focusableElement
41
- ? null
42
- : this.focusableElement.nativeElement;
44
+ if (this.computedDisabled || !this.focusableElement) {
45
+ return null;
46
+ }
47
+ // TODO: Refactor this after we drop built-in input element
48
+ return (this.focusableElement.nativeElement
49
+ .previousElementSibling ||
50
+ this.focusableElement.nativeElement);
43
51
  }
44
52
  get focused() {
45
- return isNativeFocused(this.nativeFocusableElement);
53
+ return isNativeFocusedIn(this.elementRef.nativeElement);
46
54
  }
47
55
  get size() {
48
56
  return this.controller.size;
49
57
  }
50
- get labelOutside() {
51
- return this.controller.labelOutside;
52
- }
53
58
  get computedInvalid() {
54
59
  return !this.readOnly && !this.disabled && this.invalid;
55
60
  }
@@ -71,7 +76,10 @@ let TuiPrimitiveTextfieldComponent = class TuiPrimitiveTextfieldComponent extend
71
76
  return !!this.controller.customContent;
72
77
  }
73
78
  get hasPlaceholder() {
74
- const hasDecor = this.controller.exampleText || this.prefix || this.postfix;
79
+ var _a;
80
+ const hasDecor = this.controller.exampleText ||
81
+ this.prefix ||
82
+ this.postfix || ((_a = this.nativeFocusableElement) === null || _a === void 0 ? void 0 : _a.placeholder);
75
83
  const showDecor = hasDecor && !this.readOnly && this.computedFocused;
76
84
  const placeholderVisible = !this.hasValue && !showDecor;
77
85
  return this.placeholderRaisable || placeholderVisible;
@@ -80,10 +88,10 @@ let TuiPrimitiveTextfieldComponent = class TuiPrimitiveTextfieldComponent extend
80
88
  return (this.placeholderRaisable &&
81
89
  ((this.computedFocused && !this.readOnly) || this.hasValue || this.autofilled));
82
90
  }
83
- get borderLeft() {
91
+ get borderStart() {
84
92
  return this.iconAlignLeft ? this.iconPaddingLeft : 0;
85
93
  }
86
- get borderRight() {
94
+ get borderEnd() {
87
95
  return getBorder(this.iconAlignRight, this.hasCleaner, this.hasTooltip, this.hasCustomContent);
88
96
  }
89
97
  get iconAlignLeft() {
@@ -98,6 +106,13 @@ let TuiPrimitiveTextfieldComponent = class TuiPrimitiveTextfieldComponent extend
98
106
  ? 'ccexpiryyear'
99
107
  : null;
100
108
  }
109
+ get computedId() {
110
+ var _a;
111
+ return ((_a = this.nativeFocusableElement) === null || _a === void 0 ? void 0 : _a.id) || '';
112
+ }
113
+ onFocused(focused) {
114
+ this.updateFocused(focused);
115
+ }
101
116
  getIndent$(element) {
102
117
  return fromEvent(element, 'scroll').pipe(map(() => -1 * element.scrollLeft));
103
118
  }
@@ -108,12 +123,12 @@ let TuiPrimitiveTextfieldComponent = class TuiPrimitiveTextfieldComponent extend
108
123
  this.updateValue('');
109
124
  }
110
125
  onMouseDown(event) {
111
- if (!this.focusableElement ||
112
- event.target === this.focusableElement.nativeElement) {
126
+ const { nativeFocusableElement } = this;
127
+ if (!nativeFocusableElement || event.target === nativeFocusableElement) {
113
128
  return;
114
129
  }
115
130
  event.preventDefault();
116
- setNativeFocused(this.focusableElement.nativeElement);
131
+ setNativeFocused(nativeFocusableElement);
117
132
  }
118
133
  onModelChange(value) {
119
134
  this.updateValue(value);
@@ -121,9 +136,6 @@ let TuiPrimitiveTextfieldComponent = class TuiPrimitiveTextfieldComponent extend
121
136
  onHovered(hovered) {
122
137
  this.updateHovered(hovered);
123
138
  }
124
- onFocused(focused) {
125
- this.updateFocused(focused);
126
- }
127
139
  onAutofilled(autofilled) {
128
140
  this.updateAutofilled(autofilled);
129
141
  }
@@ -131,7 +143,7 @@ let TuiPrimitiveTextfieldComponent = class TuiPrimitiveTextfieldComponent extend
131
143
  return this.size === 's' ? ICON_PADDING_S : ICON_PADDING;
132
144
  }
133
145
  get placeholderRaisable() {
134
- return this.size !== 's' && !this.labelOutside;
146
+ return this.size !== 's' && !this.controller.labelOutside;
135
147
  }
136
148
  get hasIcon() {
137
149
  return !!this.iconContent;
@@ -153,7 +165,8 @@ TuiPrimitiveTextfieldComponent.ctorParameters = () => [
153
165
  { type: String, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_APPEARANCE,] }] },
154
166
  { type: TuiTextfieldController, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_WATCHED_CONTROLLER,] }] },
155
167
  { type: TuiHintControllerDirective, decorators: [{ type: Inject, args: [TUI_HINT_WATCHED_CONTROLLER,] }] },
156
- { type: undefined, decorators: [{ type: Inject, args: [TUI_PRIMITIVE_TEXTFIELD_OPTIONS,] }] }
168
+ { type: undefined, decorators: [{ type: Inject, args: [TUI_PRIMITIVE_TEXTFIELD_OPTIONS,] }] },
169
+ { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] }
157
170
  ];
158
171
  __decorate([
159
172
  ViewChild('focusableElement')
@@ -213,34 +226,46 @@ __decorate([
213
226
  ContentChildren(PolymorpheusOutletComponent)
214
227
  ], TuiPrimitiveTextfieldComponent.prototype, "content", void 0);
215
228
  __decorate([
216
- HostBinding('attr.data-tui-host-size')
229
+ HostBinding('attr.data-size')
217
230
  ], TuiPrimitiveTextfieldComponent.prototype, "size", null);
218
- __decorate([
219
- HostBinding('class._label-outside')
220
- ], TuiPrimitiveTextfieldComponent.prototype, "labelOutside", null);
221
231
  __decorate([
222
232
  HostBinding('class._invalid')
223
233
  ], TuiPrimitiveTextfieldComponent.prototype, "computedInvalid", null);
234
+ __decorate([
235
+ HostBinding('class._hidden')
236
+ ], TuiPrimitiveTextfieldComponent.prototype, "inputHidden", null);
237
+ __decorate([
238
+ HostBinding('style.--border-start.rem')
239
+ ], TuiPrimitiveTextfieldComponent.prototype, "borderStart", null);
240
+ __decorate([
241
+ HostBinding('style.--border-end.rem')
242
+ ], TuiPrimitiveTextfieldComponent.prototype, "borderEnd", null);
243
+ __decorate([
244
+ HostListener('focusin', ['true']),
245
+ HostListener('focusout', ['false'])
246
+ ], TuiPrimitiveTextfieldComponent.prototype, "onFocused", null);
224
247
  __decorate([
225
248
  tuiPure
226
249
  ], TuiPrimitiveTextfieldComponent.prototype, "getIndent$", null);
227
250
  TuiPrimitiveTextfieldComponent = __decorate([
228
251
  Component({
229
252
  selector: 'tui-primitive-textfield',
230
- 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",
253
+ 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",
231
254
  changeDetection: ChangeDetectionStrategy.OnPush,
232
255
  providers: TUI_PRIMITIVE_TEXTFIELD_PROVIDERS,
233
256
  host: {
234
257
  '($.data-mode.attr)': 'mode$',
235
258
  '[class._autofilled]': 'autofilled',
259
+ '[class._label-outside]': 'controller.labelOutside',
236
260
  },
237
- 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}"]
261
+ 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}"]
238
262
  }),
239
263
  __param(0, Inject(TUI_MODE)),
240
264
  __param(1, Inject(TUI_TEXTFIELD_APPEARANCE)),
241
265
  __param(2, Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER)),
242
266
  __param(3, Inject(TUI_HINT_WATCHED_CONTROLLER)),
243
- __param(4, Inject(TUI_PRIMITIVE_TEXTFIELD_OPTIONS))
267
+ __param(4, Inject(TUI_PRIMITIVE_TEXTFIELD_OPTIONS)),
268
+ __param(5, Inject(ElementRef))
244
269
  ], TuiPrimitiveTextfieldComponent);
245
270
  export { TuiPrimitiveTextfieldComponent };
246
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlLXRleHRmaWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3ByaW1pdGl2ZS10ZXh0ZmllbGQvIiwic291cmNlcyI6WyJwcmltaXRpdmUtdGV4dGZpZWxkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUVmLFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxzQkFBc0IsRUFDdEIsZUFBZSxFQUNmLGdCQUFnQixFQUVoQixjQUFjLEVBRWQsT0FBTyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCwyQkFBMkIsRUFDM0IsMEJBQTBCLEdBQzdCLE1BQU0sMkNBQTJDLENBQUM7QUFDbkQsT0FBTyxFQUNILGdDQUFnQyxFQUNoQyxzQkFBc0IsR0FDekIsTUFBTSxnREFBZ0QsQ0FBQztBQUN4RCxPQUFPLEVBQUMsUUFBUSxFQUFFLHdCQUF3QixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFekUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzdELE9BQU8sRUFBc0IsMkJBQTJCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRixPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkMsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbEYsT0FBTyxFQUNILCtCQUErQixHQUVsQyxNQUFNLCtCQUErQixDQUFDO0FBRXZDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQztBQUMxQixNQUFNLGNBQWMsR0FB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QXZFbkMsOEJBQThCLENBeU8xQztTQXpPWSw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlJbnRlcmFjdGl2ZSxcbiAgICBpc05hdGl2ZUZvY3VzZWQsXG4gICAgc2V0TmF0aXZlRm9jdXNlZCxcbiAgICBUdWlDcmVkaXRDYXJkQXV0b2ZpbGxOYW1lLFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICB0dWlQdXJlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgVFVJX0hJTlRfV0FUQ0hFRF9DT05UUk9MTEVSLFxuICAgIFR1aUhpbnRDb250cm9sbGVyRGlyZWN0aXZlLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2hpbnQtY29udHJvbGxlcic7XG5pbXBvcnQge1xuICAgIFRVSV9URVhURklFTERfV0FUQ0hFRF9DT05UUk9MTEVSLFxuICAgIFR1aVRleHRmaWVsZENvbnRyb2xsZXIsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvdGV4dGZpZWxkLWNvbnRyb2xsZXInO1xuaW1wb3J0IHtUVUlfTU9ERSwgVFVJX1RFWFRGSUVMRF9BUFBFQVJBTkNFfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHtUdWlCcmlnaHRuZXNzLCBUdWlTaXplTCwgVHVpU2l6ZVN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcbmltcG9ydCB7Z2V0Qm9yZGVyfSBmcm9tICdAdGFpZ2EtdWkvY29yZS91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudCwgUG9seW1vcnBoZXVzT3V0bGV0Q29tcG9uZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtmcm9tRXZlbnQsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtUVUlfUFJJTUlUSVZFX1RFWFRGSUVMRF9QUk9WSURFUlN9IGZyb20gJy4vcHJpbWl0aXZlLXRleHRmaWVsZC5wcm92aWRlcnMnO1xuaW1wb3J0IHtcbiAgICBUVUlfUFJJTUlUSVZFX1RFWFRGSUVMRF9PUFRJT05TLFxuICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZE9wdGlvbnMsXG59IGZyb20gJy4vcHJpbWl0aXZlLXRleHRmaWVsZC1vcHRpb25zJztcblxuY29uc3QgSUNPTl9QQURESU5HID0gMS43NTtcbmNvbnN0IElDT05fUEFERElOR19TID0gMS41O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1wcmltaXRpdmUtdGV4dGZpZWxkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJpbWl0aXZlLXRleHRmaWVsZC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9wcmltaXRpdmUtdGV4dGZpZWxkLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFRVSV9QUklNSVRJVkVfVEVYVEZJRUxEX1BST1ZJREVSUyxcbiAgICBob3N0OiB7XG4gICAgICAgICcoJC5kYXRhLW1vZGUuYXR0ciknOiAnbW9kZSQnLFxuICAgICAgICAnW2NsYXNzLl9hdXRvZmlsbGVkXSc6ICdhdXRvZmlsbGVkJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpSW50ZXJhY3RpdmVcbiAgICBpbXBsZW1lbnRzIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBWaWV3Q2hpbGQoJ2ZvY3VzYWJsZUVsZW1lbnQnKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9jdXNhYmxlRWxlbWVudD86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZWRpdGFibGUgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGZpbGxlciA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGljb25BbGlnbjogVHVpUHJpbWl0aXZlVGV4dGZpZWxkT3B0aW9uc1snaWNvbkFsaWduJ10gPSB0aGlzLm9wdGlvbnMuaWNvbkFsaWduO1xuXG4gICAgLy8gVE9ETzogUmVtb3ZlIG51bGwgaW4gMy4wXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGljb25Db250ZW50OiBQb2x5bW9ycGhldXNDb250ZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaWNvbkNsZWFuZXI6IFR1aVByaW1pdGl2ZVRleHRmaWVsZE9wdGlvbnNbJ2ljb25DbGVhbmVyJ10gPSB0aGlzLm9wdGlvbnMuaWNvbkNsZWFuZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX3JlYWRvbmx5JylcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHJlYWRPbmx5ID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaW52YWxpZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgcHJlZml4ID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgcG9zdGZpeCA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHZhbHVlID0gJyc7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgYXV0b2ZpbGxlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oUG9seW1vcnBoZXVzT3V0bGV0Q29tcG9uZW50KVxuICAgIHJlYWRvbmx5IGNvbnRlbnQ/OiBRdWVyeUxpc3Q8dW5rbm93bj47XG5cbiAgICBhdXRvZmlsbGVkID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChUVUlfTU9ERSkgcmVhZG9ubHkgbW9kZSQ6IE9ic2VydmFibGU8VHVpQnJpZ2h0bmVzcyB8IG51bGw+LFxuICAgICAgICBASW5qZWN0KFRVSV9URVhURklFTERfQVBQRUFSQU5DRSkgcmVhZG9ubHkgYXBwZWFyYW5jZTogc3RyaW5nLFxuICAgICAgICBASW5qZWN0KFRVSV9URVhURklFTERfV0FUQ0hFRF9DT05UUk9MTEVSKVxuICAgICAgICByZWFkb25seSBjb250cm9sbGVyOiBUdWlUZXh0ZmllbGRDb250cm9sbGVyLFxuICAgICAgICBASW5qZWN0KFRVSV9ISU5UX1dBVENIRURfQ09OVFJPTExFUilcbiAgICAgICAgcmVhZG9ubHkgaGludENvbnRyb2xsZXI6IFR1aUhpbnRDb250cm9sbGVyRGlyZWN0aXZlLFxuICAgICAgICBASW5qZWN0KFRVSV9QUklNSVRJVkVfVEVYVEZJRUxEX09QVElPTlMpXG4gICAgICAgIHJlYWRvbmx5IG9wdGlvbnM6IFR1aVByaW1pdGl2ZVRleHRmaWVsZE9wdGlvbnMsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlZERpc2FibGVkIHx8ICF0aGlzLmZvY3VzYWJsZUVsZW1lbnRcbiAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgOiB0aGlzLmZvY3VzYWJsZUVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGlzTmF0aXZlRm9jdXNlZCh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXR1aS1ob3N0LXNpemUnKVxuICAgIGdldCBzaXplKCk6IFR1aVNpemVTIHwgVHVpU2l6ZUwge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyLnNpemU7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fbGFiZWwtb3V0c2lkZScpXG4gICAgZ2V0IGxhYmVsT3V0c2lkZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5sYWJlbE91dHNpZGU7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5faW52YWxpZCcpXG4gICAgZ2V0IGNvbXB1dGVkSW52YWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnJlYWRPbmx5ICYmICF0aGlzLmRpc2FibGVkICYmIHRoaXMuaW52YWxpZDtcbiAgICB9XG5cbiAgICBnZXQgaW5wdXRIaWRkZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuY29udGVudD8ubGVuZ3RoO1xuICAgIH1cblxuICAgIGdldCBoYXNWYWx1ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgaGFzQ2xlYW5lcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuY29udHJvbGxlci5jbGVhbmVyICYmIHRoaXMuaGFzVmFsdWUgJiYgIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMucmVhZE9ubHlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgaGFzVG9vbHRpcCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5oaW50Q29udHJvbGxlcj8uY29udGVudCAmJiAhdGhpcy5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBnZXQgaGFzQ3VzdG9tQ29udGVudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5jb250cm9sbGVyLmN1c3RvbUNvbnRlbnQ7XG4gICAgfVxuXG4gICAgZ2V0IGhhc1BsYWNlaG9sZGVyKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBoYXNEZWNvciA9IHRoaXMuY29udHJvbGxlci5leGFtcGxlVGV4dCB8fCB0aGlzLnByZWZpeCB8fCB0aGlzLnBvc3RmaXg7XG4gICAgICAgIGNvbnN0IHNob3dEZWNvciA9IGhhc0RlY29yICYmICF0aGlzLnJlYWRPbmx5ICYmIHRoaXMuY29tcHV0ZWRGb2N1c2VkO1xuICAgICAgICBjb25zdCBwbGFjZWhvbGRlclZpc2libGUgPSAhdGhpcy5oYXNWYWx1ZSAmJiAhc2hvd0RlY29yO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnBsYWNlaG9sZGVyUmFpc2FibGUgfHwgcGxhY2Vob2xkZXJWaXNpYmxlO1xuICAgIH1cblxuICAgIGdldCBwbGFjZWhvbGRlclJhaXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMucGxhY2Vob2xkZXJSYWlzYWJsZSAmJlxuICAgICAgICAgICAgKCh0aGlzLmNvbXB1dGVkRm9jdXNlZCAmJiAhdGhpcy5yZWFkT25seSkgfHwgdGhpcy5oYXNWYWx1ZSB8fCB0aGlzLmF1dG9maWxsZWQpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGJvcmRlckxlZnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaWNvbkFsaWduTGVmdCA/IHRoaXMuaWNvblBhZGRpbmdMZWZ0IDogMDtcbiAgICB9XG5cbiAgICBnZXQgYm9yZGVyUmlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGdldEJvcmRlcihcbiAgICAgICAgICAgIHRoaXMuaWNvbkFsaWduUmlnaHQsXG4gICAgICAgICAgICB0aGlzLmhhc0NsZWFuZXIsXG4gICAgICAgICAgICB0aGlzLmhhc1Rvb2x0aXAsXG4gICAgICAgICAgICB0aGlzLmhhc0N1c3RvbUNvbnRlbnQsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGljb25BbGlnbkxlZnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc0ljb24gJiYgdGhpcy5pY29uQWxpZ24gPT09ICdsZWZ0JztcbiAgICB9XG5cbiAgICBnZXQgaWNvbkFsaWduUmlnaHQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc0ljb24gJiYgdGhpcy5pY29uQWxpZ24gPT09ICdyaWdodCc7XG4gICAgfVxuXG4gICAgLy8gU2FmYXJpIGV4cGlyYXRpb24gZGF0ZSBhdXRvZmlsbCB3b3JrYXJvdW5kXG4gICAgZ2V0IG5hbWUoKTogJ2NjZXhwaXJ5eWVhcicgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5hdXRvY29tcGxldGUgPT09IFR1aUNyZWRpdENhcmRBdXRvZmlsbE5hbWUuQ2NFeHBcbiAgICAgICAgICAgID8gJ2NjZXhwaXJ5eWVhcidcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIGdldEluZGVudCQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgICAgICByZXR1cm4gZnJvbUV2ZW50KGVsZW1lbnQsICdzY3JvbGwnKS5waXBlKG1hcCgoKSA9PiAtMSAqIGVsZW1lbnQuc2Nyb2xsTGVmdCkpO1xuICAgIH1cblxuICAgIGNsZWFyKCkge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoJycpO1xuICAgIH1cblxuICAgIG9uTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICF0aGlzLmZvY3VzYWJsZUVsZW1lbnQgfHxcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldCA9PT0gdGhpcy5mb2N1c2FibGVFbGVtZW50Lm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBzZXROYXRpdmVGb2N1c2VkKHRoaXMuZm9jdXNhYmxlRWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBvbk1vZGVsQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgb25Ib3ZlcmVkKGhvdmVyZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVIb3ZlcmVkKGhvdmVyZWQpO1xuICAgIH1cblxuICAgIG9uRm9jdXNlZChmb2N1c2VkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChmb2N1c2VkKTtcbiAgICB9XG5cbiAgICBvbkF1dG9maWxsZWQoYXV0b2ZpbGxlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZUF1dG9maWxsZWQoYXV0b2ZpbGxlZCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaWNvblBhZGRpbmdMZWZ0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnNpemUgPT09ICdzJyA/IElDT05fUEFERElOR19TIDogSUNPTl9QQURESU5HO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IHBsYWNlaG9sZGVyUmFpc2FibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNpemUgIT09ICdzJyAmJiAhdGhpcy5sYWJlbE91dHNpZGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaGFzSWNvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5pY29uQ29udGVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUF1dG9maWxsZWQoYXV0b2ZpbGxlZDogYm9vbGVhbikge1xuICAgICAgICBpZiAodGhpcy5hdXRvZmlsbGVkID09PSBhdXRvZmlsbGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmF1dG9maWxsZWQgPSBhdXRvZmlsbGVkO1xuICAgICAgICB0aGlzLmF1dG9maWxsZWRDaGFuZ2UuZW1pdChhdXRvZmlsbGVkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgIH1cbn1cbiJdfQ==
271
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlLXRleHRmaWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3ByaW1pdGl2ZS10ZXh0ZmllbGQvIiwic291cmNlcyI6WyJwcmltaXRpdmUtdGV4dGZpZWxkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxzQkFBc0IsRUFDdEIsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUdoQixjQUFjLEVBRWQsT0FBTyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCwyQkFBMkIsRUFDM0IsMEJBQTBCLEdBQzdCLE1BQU0sMkNBQTJDLENBQUM7QUFDbkQsT0FBTyxFQUNILGdDQUFnQyxFQUNoQyxzQkFBc0IsR0FDekIsTUFBTSxnREFBZ0QsQ0FBQztBQUN4RCxPQUFPLEVBQUMsUUFBUSxFQUFFLHdCQUF3QixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFekUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzdELE9BQU8sRUFBc0IsMkJBQTJCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRixPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkMsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbEYsT0FBTyxFQUNILCtCQUErQixHQUVsQyxNQUFNLCtCQUErQixDQUFDO0FBRXZDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQztBQUMxQixNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUM7QUFjM0IsSUFBYSw4QkFBOEIsR0FBM0MsTUFBYSw4QkFDVCxTQUFRLHNCQUFzQjtJQW1FOUIsWUFDK0IsS0FBdUMsRUFDdkIsVUFBa0IsRUFFcEQsVUFBa0MsRUFFbEMsY0FBMEMsRUFFMUMsT0FBcUMsRUFDVCxVQUFtQztRQUV4RSxLQUFLLEVBQUUsQ0FBQztRQVZtQixVQUFLLEdBQUwsS0FBSyxDQUFrQztRQUN2QixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBRXBELGVBQVUsR0FBVixVQUFVLENBQXdCO1FBRWxDLG1CQUFjLEdBQWQsY0FBYyxDQUE0QjtRQUUxQyxZQUFPLEdBQVAsT0FBTyxDQUE4QjtRQUNULGVBQVUsR0FBVixVQUFVLENBQXlCO1FBcEU1RSxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBSWhCLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFJWixjQUFTLEdBQThDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBRTlFLDJCQUEyQjtRQUczQixnQkFBVyxHQUNQLElBQUksQ0FBQztRQUlULGdCQUFXLEdBQWdELElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBS3BGLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFJakIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUloQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBSWpCLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFJWixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBSWIsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUdGLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUVsRDs7V0FFRztRQUVNLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFLeEQsZUFBVSxHQUFHLEtBQUssQ0FBQztJQWNuQixDQUFDO0lBRUQsSUFBSSxzQkFBc0I7UUFDdEIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDakQsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELDJEQUEyRDtRQUMzRCxPQUFPLENBQ0YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWE7YUFDL0Isc0JBQWtEO1lBQ3ZELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQ3RDLENBQUM7SUFDTixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFHRCxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFHRCxJQUFJLGVBQWU7UUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUM1RCxDQUFDO0lBR0QsSUFBSSxXQUFXOztRQUNYLE9BQU8sQ0FBQyxRQUFDLElBQUksQ0FBQyxPQUFPLDBDQUFFLE1BQU0sQ0FBQSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDUixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDVixPQUFPLENBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUMvRSxDQUFDO0lBQ04sQ0FBQztJQUVELElBQUksVUFBVTs7UUFDVixPQUFPLENBQUMsUUFBQyxJQUFJLENBQUMsY0FBYywwQ0FBRSxPQUFPLENBQUEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2hCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJLGNBQWM7O1FBQ2QsTUFBTSxRQUFRLEdBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXO1lBQzNCLElBQUksQ0FBQyxNQUFNO1lBQ1gsSUFBSSxDQUFDLE9BQU8sV0FDWixJQUFJLENBQUMsc0JBQXNCLDBDQUFFLFdBQVcsQ0FBQSxDQUFDO1FBQzdDLE1BQU0sU0FBUyxHQUFHLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUNyRSxNQUFNLGtCQUFrQixHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUV4RCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxrQkFBa0IsQ0FBQztJQUMxRCxDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDakIsT0FBTyxDQUNILElBQUksQ0FBQyxtQkFBbUI7WUFDeEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQ2pGLENBQUM7SUFDTixDQUFDO0lBR0QsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUdELElBQUksU0FBUztRQUNULE9BQU8sU0FBUyxDQUNaLElBQUksQ0FBQyxjQUFjLEVBQ25CLElBQUksQ0FBQyxVQUFVLEVBQ2YsSUFBSSxDQUFDLFVBQVUsRUFDZixJQUFJLENBQUMsZ0JBQWdCLENBQ3hCLENBQUM7SUFDTixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssTUFBTSxDQUFDO0lBQ3JELENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDZCxPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxPQUFPLENBQUM7SUFDdEQsQ0FBQztJQUVELDZDQUE2QztJQUM3QyxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSx5QkFBb0M7WUFDbkUsQ0FBQyxDQUFDLGNBQWM7WUFDaEIsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNmLENBQUM7SUFFRCxJQUFJLFVBQVU7O1FBQ1YsT0FBTyxPQUFBLElBQUksQ0FBQyxzQkFBc0IsMENBQUUsRUFBRSxLQUFJLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBSUQsU0FBUyxDQUFDLE9BQWdCO1FBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUdELFVBQVUsQ0FBQyxPQUFvQjtRQUMzQixPQUFPLFNBQVMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQsS0FBSztRQUNELElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFO1lBQzdCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1NBQzFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWlCO1FBQ3pCLE1BQU0sRUFBQyxzQkFBc0IsRUFBQyxHQUFHLElBQUksQ0FBQztRQUV0QyxJQUFJLENBQUMsc0JBQXNCLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxzQkFBc0IsRUFBRTtZQUNwRSxPQUFPO1NBQ1Y7UUFFRCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsZ0JBQWdCLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQWE7UUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQWdCO1FBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFlBQVksQ0FBQyxVQUFtQjtRQUM1QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQVksZUFBZTtRQUN2QixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFBWSxtQkFBbUI7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDO0lBQzlELENBQUM7SUFFRCxJQUFZLE9BQU87UUFDZixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzlCLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUN4QyxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxFQUFFO1lBQ2hDLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVPLFdBQVcsQ0FBQyxLQUFhO1FBQzdCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7Q0FDSixDQUFBOztZQXZMeUMsVUFBVSx1QkFBM0MsTUFBTSxTQUFDLFFBQVE7eUNBQ2YsTUFBTSxTQUFDLHdCQUF3QjtZQUVYLHNCQUFzQix1QkFEMUMsTUFBTSxTQUFDLGdDQUFnQztZQUdmLDBCQUEwQix1QkFEbEQsTUFBTSxTQUFDLDJCQUEyQjs0Q0FFbEMsTUFBTSxTQUFDLCtCQUErQjtZQUVVLFVBQVUsdUJBQTFELE1BQU0sU0FBQyxVQUFVOztBQXhFdEI7SUFEQyxTQUFTLENBQUMsa0JBQWtCLENBQUM7d0VBQ21DO0FBSWpFO0lBRkMsS0FBSyxFQUFFO0lBQ1AsY0FBYyxFQUFFO2dFQUNEO0FBSWhCO0lBRkMsS0FBSyxFQUFFO0lBQ1AsY0FBYyxFQUFFOzhEQUNMO0FBSVo7SUFGQyxLQUFLLEVBQUU7SUFDUCxjQUFjLEVBQUU7aUVBQzZEO0FBSzlFO0lBRkMsS0FBSyxFQUFFO0lBQ1AsY0FBYyxFQUFFO21FQUVSO0FBSVQ7SUFGQyxLQUFLLEVBQUU7SUFDUCxjQUFjLEVBQUU7bUVBQ21FO0FBS3BGO0lBSEMsS0FBSyxFQUFFO0lBQ1AsV0FBVyxDQUFDLGlCQUFpQixDQUFDO0lBQzlCLGNBQWMsRUFBRTtnRUFDQTtBQUlqQjtJQUZDLEtBQUssRUFBRTtJQUNQLGNBQWMsRUFBRTsrREFDRDtBQUloQjtJQUZDLEtBQUssRUFBRTtJQUNQLGNBQWMsRUFBRTtnRUFDQTtBQUlqQjtJQUZDLEtBQUssRUFBRTtJQUNQLGNBQWMsRUFBRTs4REFDTDtBQUlaO0lBRkMsS0FBSyxFQUFFO0lBQ1AsY0FBYyxFQUFFOytEQUNKO0FBSWI7SUFGQyxLQUFLLEVBQUU7SUFDUCxjQUFjLEVBQUU7NkRBQ047QUFHWDtJQURDLE1BQU0sRUFBRTttRUFDeUM7QUFNbEQ7SUFEQyxNQUFNLEVBQUU7d0VBQytDO0FBR3hEO0lBREMsZUFBZSxDQUFDLDJCQUEyQixDQUFDOytEQUNQO0FBb0N0QztJQURDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQzswREFHN0I7QUFHRDtJQURDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQztxRUFHN0I7QUFHRDtJQURDLFdBQVcsQ0FBQyxlQUFlLENBQUM7aUVBRzVCO0FBd0NEO0lBREMsV0FBVyxDQUFDLDBCQUEwQixDQUFDO2lFQUd2QztBQUdEO0lBREMsV0FBVyxDQUFDLHdCQUF3QixDQUFDOytEQVFyQztBQXVCRDtJQUZDLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7K0RBR25DO0FBR0Q7SUFEQyxPQUFPO2dFQUdQO0FBbE1RLDhCQUE4QjtJQVoxQyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUseUJBQXlCO1FBQ25DLDJ6SUFBa0Q7UUFFbEQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07UUFDL0MsU0FBUyxFQUFFLGlDQUFpQztRQUM1QyxJQUFJLEVBQUU7WUFDRixvQkFBb0IsRUFBRSxPQUFPO1lBQzdCLHFCQUFxQixFQUFFLFlBQVk7WUFDbkMsd0JBQXdCLEVBQUUseUJBQXlCO1NBQ3REOztLQUNKLENBQUM7SUFzRU8sV0FBQSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDaEIsV0FBQSxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQTtJQUNoQyxXQUFBLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFBO0lBRXhDLFdBQUEsTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUE7SUFFbkMsV0FBQSxNQUFNLENBQUMsK0JBQStCLENBQUMsQ0FBQTtJQUV2QyxXQUFBLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtHQTdFZCw4QkFBOEIsQ0E0UDFDO1NBNVBZLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlJbnRlcmFjdGl2ZSxcbiAgICBpc05hdGl2ZUZvY3VzZWRJbixcbiAgICBzZXROYXRpdmVGb2N1c2VkLFxuICAgIFR1aUNvbnRleHRXaXRoSW1wbGljaXQsXG4gICAgVHVpQ3JlZGl0Q2FyZEF1dG9maWxsTmFtZSxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgdHVpUHVyZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIFRVSV9ISU5UX1dBVENIRURfQ09OVFJPTExFUixcbiAgICBUdWlIaW50Q29udHJvbGxlckRpcmVjdGl2ZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9oaW50LWNvbnRyb2xsZXInO1xuaW1wb3J0IHtcbiAgICBUVUlfVEVYVEZJRUxEX1dBVENIRURfQ09OVFJPTExFUixcbiAgICBUdWlUZXh0ZmllbGRDb250cm9sbGVyLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL3RleHRmaWVsZC1jb250cm9sbGVyJztcbmltcG9ydCB7VFVJX01PREUsIFRVSV9URVhURklFTERfQVBQRUFSQU5DRX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcbmltcG9ydCB7VHVpQnJpZ2h0bmVzcywgVHVpU2l6ZUwsIFR1aVNpemVTfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90eXBlcyc7XG5pbXBvcnQge2dldEJvcmRlcn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnQsIFBvbHltb3JwaGV1c091dGxldENvbXBvbmVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7ZnJvbUV2ZW50LCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7VFVJX1BSSU1JVElWRV9URVhURklFTERfUFJPVklERVJTfSBmcm9tICcuL3ByaW1pdGl2ZS10ZXh0ZmllbGQucHJvdmlkZXJzJztcbmltcG9ydCB7XG4gICAgVFVJX1BSSU1JVElWRV9URVhURklFTERfT1BUSU9OUyxcbiAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRPcHRpb25zLFxufSBmcm9tICcuL3ByaW1pdGl2ZS10ZXh0ZmllbGQtb3B0aW9ucyc7XG5cbmNvbnN0IElDT05fUEFERElORyA9IDEuNzU7XG5jb25zdCBJQ09OX1BBRERJTkdfUyA9IDEuNTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktcHJpbWl0aXZlLXRleHRmaWVsZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3ByaW1pdGl2ZS10ZXh0ZmllbGQudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcHJpbWl0aXZlLXRleHRmaWVsZC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBUVUlfUFJJTUlUSVZFX1RFWFRGSUVMRF9QUk9WSURFUlMsXG4gICAgaG9zdDoge1xuICAgICAgICAnKCQuZGF0YS1tb2RlLmF0dHIpJzogJ21vZGUkJyxcbiAgICAgICAgJ1tjbGFzcy5fYXV0b2ZpbGxlZF0nOiAnYXV0b2ZpbGxlZCcsXG4gICAgICAgICdbY2xhc3MuX2xhYmVsLW91dHNpZGVdJzogJ2NvbnRyb2xsZXIubGFiZWxPdXRzaWRlJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpSW50ZXJhY3RpdmVcbiAgICBpbXBsZW1lbnRzIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBWaWV3Q2hpbGQoJ2ZvY3VzYWJsZUVsZW1lbnQnKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9jdXNhYmxlRWxlbWVudD86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZWRpdGFibGUgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGZpbGxlciA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGljb25BbGlnbjogVHVpUHJpbWl0aXZlVGV4dGZpZWxkT3B0aW9uc1snaWNvbkFsaWduJ10gPSB0aGlzLm9wdGlvbnMuaWNvbkFsaWduO1xuXG4gICAgLy8gVE9ETzogUmVtb3ZlIG51bGwgaW4gMy4wXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGljb25Db250ZW50OiBQb2x5bW9ycGhldXNDb250ZW50PFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8VHVpU2l6ZVMgfCBUdWlTaXplTD4+IHwgbnVsbCA9XG4gICAgICAgIG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaWNvbkNsZWFuZXI6IFR1aVByaW1pdGl2ZVRleHRmaWVsZE9wdGlvbnNbJ2ljb25DbGVhbmVyJ10gPSB0aGlzLm9wdGlvbnMuaWNvbkNsZWFuZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX3JlYWRvbmx5JylcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHJlYWRPbmx5ID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaW52YWxpZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgcHJlZml4ID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgcG9zdGZpeCA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHZhbHVlID0gJyc7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgVE9ETzogcmVtb3ZlIGluIDMuMFxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGF1dG9maWxsZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFBvbHltb3JwaGV1c091dGxldENvbXBvbmVudClcbiAgICByZWFkb25seSBjb250ZW50PzogUXVlcnlMaXN0PHVua25vd24+O1xuXG4gICAgYXV0b2ZpbGxlZCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVFVJX01PREUpIHJlYWRvbmx5IG1vZGUkOiBPYnNlcnZhYmxlPFR1aUJyaWdodG5lc3MgfCBudWxsPixcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX0FQUEVBUkFOQ0UpIHJlYWRvbmx5IGFwcGVhcmFuY2U6IHN0cmluZyxcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX1dBVENIRURfQ09OVFJPTExFUilcbiAgICAgICAgcmVhZG9ubHkgY29udHJvbGxlcjogVHVpVGV4dGZpZWxkQ29udHJvbGxlcixcbiAgICAgICAgQEluamVjdChUVUlfSElOVF9XQVRDSEVEX0NPTlRST0xMRVIpXG4gICAgICAgIHJlYWRvbmx5IGhpbnRDb250cm9sbGVyOiBUdWlIaW50Q29udHJvbGxlckRpcmVjdGl2ZSxcbiAgICAgICAgQEluamVjdChUVUlfUFJJTUlUSVZFX1RFWFRGSUVMRF9PUFRJT05TKVxuICAgICAgICByZWFkb25seSBvcHRpb25zOiBUdWlQcmltaXRpdmVUZXh0ZmllbGRPcHRpb25zLFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICBpZiAodGhpcy5jb21wdXRlZERpc2FibGVkIHx8ICF0aGlzLmZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVE9ETzogUmVmYWN0b3IgdGhpcyBhZnRlciB3ZSBkcm9wIGJ1aWx0LWluIGlucHV0IGVsZW1lbnRcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICh0aGlzLmZvY3VzYWJsZUVsZW1lbnQubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgICAgIC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nIGFzIEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsKSB8fFxuICAgICAgICAgICAgdGhpcy5mb2N1c2FibGVFbGVtZW50Lm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGlzTmF0aXZlRm9jdXNlZEluKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1zaXplJylcbiAgICBnZXQgc2l6ZSgpOiBUdWlTaXplUyB8IFR1aVNpemVMIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5zaXplO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX2ludmFsaWQnKVxuICAgIGdldCBjb21wdXRlZEludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5yZWFkT25seSAmJiAhdGhpcy5kaXNhYmxlZCAmJiB0aGlzLmludmFsaWQ7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5faGlkZGVuJylcbiAgICBnZXQgaW5wdXRIaWRkZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuY29udGVudD8ubGVuZ3RoO1xuICAgIH1cblxuICAgIGdldCBoYXNWYWx1ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgaGFzQ2xlYW5lcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuY29udHJvbGxlci5jbGVhbmVyICYmIHRoaXMuaGFzVmFsdWUgJiYgIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMucmVhZE9ubHlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgaGFzVG9vbHRpcCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5oaW50Q29udHJvbGxlcj8uY29udGVudCAmJiAhdGhpcy5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBnZXQgaGFzQ3VzdG9tQ29udGVudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5jb250cm9sbGVyLmN1c3RvbUNvbnRlbnQ7XG4gICAgfVxuXG4gICAgZ2V0IGhhc1BsYWNlaG9sZGVyKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBoYXNEZWNvciA9XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2xsZXIuZXhhbXBsZVRleHQgfHxcbiAgICAgICAgICAgIHRoaXMucHJlZml4IHx8XG4gICAgICAgICAgICB0aGlzLnBvc3RmaXggfHxcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudD8ucGxhY2Vob2xkZXI7XG4gICAgICAgIGNvbnN0IHNob3dEZWNvciA9IGhhc0RlY29yICYmICF0aGlzLnJlYWRPbmx5ICYmIHRoaXMuY29tcHV0ZWRGb2N1c2VkO1xuICAgICAgICBjb25zdCBwbGFjZWhvbGRlclZpc2libGUgPSAhdGhpcy5oYXNWYWx1ZSAmJiAhc2hvd0RlY29yO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnBsYWNlaG9sZGVyUmFpc2FibGUgfHwgcGxhY2Vob2xkZXJWaXNpYmxlO1xuICAgIH1cblxuICAgIGdldCBwbGFjZWhvbGRlclJhaXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMucGxhY2Vob2xkZXJSYWlzYWJsZSAmJlxuICAgICAgICAgICAgKCh0aGlzLmNvbXB1dGVkRm9jdXNlZCAmJiAhdGhpcy5yZWFkT25seSkgfHwgdGhpcy5oYXNWYWx1ZSB8fCB0aGlzLmF1dG9maWxsZWQpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLWJvcmRlci1zdGFydC5yZW0nKVxuICAgIGdldCBib3JkZXJTdGFydCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5pY29uQWxpZ25MZWZ0ID8gdGhpcy5pY29uUGFkZGluZ0xlZnQgOiAwO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuLS1ib3JkZXItZW5kLnJlbScpXG4gICAgZ2V0IGJvcmRlckVuZCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gZ2V0Qm9yZGVyKFxuICAgICAgICAgICAgdGhpcy5pY29uQWxpZ25SaWdodCxcbiAgICAgICAgICAgIHRoaXMuaGFzQ2xlYW5lcixcbiAgICAgICAgICAgIHRoaXMuaGFzVG9vbHRpcCxcbiAgICAgICAgICAgIHRoaXMuaGFzQ3VzdG9tQ29udGVudCxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgaWNvbkFsaWduTGVmdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzSWNvbiAmJiB0aGlzLmljb25BbGlnbiA9PT0gJ2xlZnQnO1xuICAgIH1cblxuICAgIGdldCBpY29uQWxpZ25SaWdodCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzSWNvbiAmJiB0aGlzLmljb25BbGlnbiA9PT0gJ3JpZ2h0JztcbiAgICB9XG5cbiAgICAvLyBTYWZhcmkgZXhwaXJhdGlvbiBkYXRlIGF1dG9maWxsIHdvcmthcm91bmRcbiAgICBnZXQgbmFtZSgpOiAnY2NleHBpcnl5ZWFyJyB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyLmF1dG9jb21wbGV0ZSA9PT0gVHVpQ3JlZGl0Q2FyZEF1dG9maWxsTmFtZS5DY0V4cFxuICAgICAgICAgICAgPyAnY2NleHBpcnl5ZWFyJ1xuICAgICAgICAgICAgOiBudWxsO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZElkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ/LmlkIHx8ICcnO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzaW4nLCBbJ3RydWUnXSlcbiAgICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcsIFsnZmFsc2UnXSlcbiAgICBvbkZvY3VzZWQoZm9jdXNlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoZm9jdXNlZCk7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBnZXRJbmRlbnQkKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICAgICAgcmV0dXJuIGZyb21FdmVudChlbGVtZW50LCAnc2Nyb2xsJykucGlwZShtYXAoKCkgPT4gLTEgKiBlbGVtZW50LnNjcm9sbExlZnQpKTtcbiAgICB9XG5cbiAgICBjbGVhcigpIHtcbiAgICAgICAgaWYgKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKCcnKTtcbiAgICB9XG5cbiAgICBvbk1vdXNlRG93bihldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBjb25zdCB7bmF0aXZlRm9jdXNhYmxlRWxlbWVudH0gPSB0aGlzO1xuXG4gICAgICAgIGlmICghbmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8fCBldmVudC50YXJnZXQgPT09IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHNldE5hdGl2ZUZvY3VzZWQobmF0aXZlRm9jdXNhYmxlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgb25Nb2RlbENoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIG9uSG92ZXJlZChob3ZlcmVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlSG92ZXJlZChob3ZlcmVkKTtcbiAgICB9XG5cbiAgICBvbkF1dG9maWxsZWQoYXV0b2ZpbGxlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZUF1dG9maWxsZWQoYXV0b2ZpbGxlZCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaWNvblBhZGRpbmdMZWZ0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnNpemUgPT09ICdzJyA/IElDT05fUEFERElOR19TIDogSUNPTl9QQURESU5HO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IHBsYWNlaG9sZGVyUmFpc2FibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNpemUgIT09ICdzJyAmJiAhdGhpcy5jb250cm9sbGVyLmxhYmVsT3V0c2lkZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBoYXNJY29uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmljb25Db250ZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQXV0b2ZpbGxlZChhdXRvZmlsbGVkOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh0aGlzLmF1dG9maWxsZWQgPT09IGF1dG9maWxsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYXV0b2ZpbGxlZCA9IGF1dG9maWxsZWQ7XG4gICAgICAgIHRoaXMuYXV0b2ZpbGxlZENoYW5nZS5lbWl0KGF1dG9maWxsZWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,40 @@
1
+ var TuiPrimitiveTextfieldDirective_1;
2
+ import { __decorate, __param } from "tslib";
3
+ import { Directive, forwardRef, Inject } from '@angular/core';
4
+ import { TuiAbstractTextfieldHost } from '@taiga-ui/core/abstract';
5
+ import { TUI_TEXTFIELD_HOST } from '@taiga-ui/core/tokens';
6
+ import { TuiPrimitiveTextfieldComponent } from './primitive-textfield.component';
7
+ let TuiPrimitiveTextfieldDirective = TuiPrimitiveTextfieldDirective_1 = class TuiPrimitiveTextfieldDirective extends TuiAbstractTextfieldHost {
8
+ constructor(textfield) {
9
+ /**
10
+ * TuiPrimitiveTextfieldComponent satisfies all required parts of
11
+ * AbstractTuiControl interface. A new interface is not introduced
12
+ * so AbstractTuiControl is automatically injected for all other controls.
13
+ */
14
+ super(textfield);
15
+ this.textfield = textfield;
16
+ }
17
+ get readOnly() {
18
+ return this.textfield.readOnly || !this.textfield.editable;
19
+ }
20
+ onValueChange(value) {
21
+ this.textfield.onModelChange(value);
22
+ }
23
+ };
24
+ TuiPrimitiveTextfieldDirective.ctorParameters = () => [
25
+ { type: TuiPrimitiveTextfieldComponent, decorators: [{ type: Inject, args: [TuiPrimitiveTextfieldComponent,] }] }
26
+ ];
27
+ TuiPrimitiveTextfieldDirective = TuiPrimitiveTextfieldDirective_1 = __decorate([
28
+ Directive({
29
+ selector: 'tui-primitive-textfield',
30
+ providers: [
31
+ {
32
+ provide: TUI_TEXTFIELD_HOST,
33
+ useExisting: forwardRef(() => TuiPrimitiveTextfieldDirective_1),
34
+ },
35
+ ],
36
+ }),
37
+ __param(0, Inject(TuiPrimitiveTextfieldComponent))
38
+ ], TuiPrimitiveTextfieldDirective);
39
+ export { TuiPrimitiveTextfieldDirective };
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlLXRleHRmaWVsZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3ByaW1pdGl2ZS10ZXh0ZmllbGQvIiwic291cmNlcyI6WyJwcmltaXRpdmUtdGV4dGZpZWxkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU1RCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUV6RCxPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQVcvRSxJQUFhLDhCQUE4QixzQ0FBM0MsTUFBYSw4QkFBK0IsU0FBUSx3QkFBNkI7SUFDN0UsWUFFcUIsU0FBeUM7UUFFMUQ7Ozs7V0FJRztRQUNILEtBQUssQ0FBQyxTQUErQyxDQUFDLENBQUM7UUFQdEMsY0FBUyxHQUFULFNBQVMsQ0FBZ0M7SUFROUQsQ0FBQztJQUVELElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUMvRCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQWE7UUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQztDQUNKLENBQUE7O1lBakJtQyw4QkFBOEIsdUJBRHpELE1BQU0sU0FBQyw4QkFBOEI7O0FBRmpDLDhCQUE4QjtJQVQxQyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUseUJBQXlCO1FBQ25DLFNBQVMsRUFBRTtZQUNQO2dCQUNJLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZ0NBQThCLENBQUM7YUFDaEU7U0FDSjtLQUNKLENBQUM7SUFHTyxXQUFBLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFBO0dBRmxDLDhCQUE4QixDQW9CMUM7U0FwQlksOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIGZvcndhcmRSZWYsIEluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Fic3RyYWN0VHVpQ29udHJvbH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1R1aUFic3RyYWN0VGV4dGZpZWxkSG9zdH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvYWJzdHJhY3QnO1xuaW1wb3J0IHtUVUlfVEVYVEZJRUxEX0hPU1R9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5cbmltcG9ydCB7VHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50fSBmcm9tICcuL3ByaW1pdGl2ZS10ZXh0ZmllbGQuY29tcG9uZW50JztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICd0dWktcHJpbWl0aXZlLXRleHRmaWVsZCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9URVhURklFTERfSE9TVCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR1aVByaW1pdGl2ZVRleHRmaWVsZERpcmVjdGl2ZSksXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpUHJpbWl0aXZlVGV4dGZpZWxkRGlyZWN0aXZlIGV4dGVuZHMgVHVpQWJzdHJhY3RUZXh0ZmllbGRIb3N0PGFueT4ge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudClcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGQ6IFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudCxcbiAgICApIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudCBzYXRpc2ZpZXMgYWxsIHJlcXVpcmVkIHBhcnRzIG9mXG4gICAgICAgICAqIEFic3RyYWN0VHVpQ29udHJvbCBpbnRlcmZhY2UuIEEgbmV3IGludGVyZmFjZSBpcyBub3QgaW50cm9kdWNlZFxuICAgICAgICAgKiBzbyBBYnN0cmFjdFR1aUNvbnRyb2wgaXMgYXV0b21hdGljYWxseSBpbmplY3RlZCBmb3IgYWxsIG90aGVyIGNvbnRyb2xzLlxuICAgICAgICAgKi9cbiAgICAgICAgc3VwZXIodGV4dGZpZWxkIGFzIGFueSBhcyBBYnN0cmFjdFR1aUNvbnRyb2w8dW5rbm93bj4pO1xuICAgIH1cblxuICAgIGdldCByZWFkT25seSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dGZpZWxkLnJlYWRPbmx5IHx8ICF0aGlzLnRleHRmaWVsZC5lZGl0YWJsZTtcbiAgICB9XG5cbiAgICBvblZhbHVlQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy50ZXh0ZmllbGQub25Nb2RlbENoYW5nZSh2YWx1ZSk7XG4gICAgfVxufVxuIl19
@@ -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
  let TuiPrimitiveTextfieldModule = class TuiPrimitiveTextfieldModule {
17
18
  };
@@ -22,7 +23,6 @@ TuiPrimitiveTextfieldModule = __decorate([
22
23
  FormsModule,
23
24
  TuiMaskAccessorModule,
24
25
  TuiFocusableModule,
25
- TuiFocusedModule,
26
26
  TuiHoveredModule,
27
27
  TuiInputModeModule,
28
28
  PolymorpheusModule,
@@ -32,12 +32,20 @@ TuiPrimitiveTextfieldModule = __decorate([
32
32
  TuiAutofilledModule,
33
33
  TuiDescribedByModule,
34
34
  TuiPreventDefaultModule,
35
- TuiBorderModule,
36
35
  MutationObserverModule,
37
36
  ],
38
- declarations: [TuiPrimitiveTextfieldComponent, TuiValueDecorationComponent],
39
- exports: [TuiPrimitiveTextfieldComponent],
37
+ declarations: [
38
+ TuiPrimitiveTextfieldComponent,
39
+ TuiPrimitiveTextfieldDirective,
40
+ TuiTextfieldComponent,
41
+ TuiValueDecorationComponent,
42
+ ],
43
+ exports: [
44
+ TuiPrimitiveTextfieldComponent,
45
+ TuiPrimitiveTextfieldDirective,
46
+ TuiTextfieldComponent,
47
+ ],
40
48
  })
41
49
  ], TuiPrimitiveTextfieldModule);
42
50
  export { TuiPrimitiveTextfieldModule };
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlLXRleHRmaWVsZC5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3ByaW1pdGl2ZS10ZXh0ZmllbGQvIiwic291cmNlcyI6WyJwcmltaXRpdmUtdGV4dGZpZWxkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLHVCQUF1QixHQUMxQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRTVELE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQy9FLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBd0IxRixJQUFhLDJCQUEyQixHQUF4QyxNQUFhLDJCQUEyQjtDQUFHLENBQUE7QUFBOUIsMkJBQTJCO0lBdEJ2QyxRQUFRLENBQUM7UUFDTixPQUFPLEVBQUU7WUFDTCxZQUFZO1lBQ1osV0FBVztZQUNYLHFCQUFxQjtZQUNyQixrQkFBa0I7WUFDbEIsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQixrQkFBa0I7WUFDbEIsa0JBQWtCO1lBQ2xCLGdCQUFnQjtZQUNoQixZQUFZO1lBQ1osZ0JBQWdCO1lBQ2hCLG1CQUFtQjtZQUNuQixvQkFBb0I7WUFDcEIsdUJBQXVCO1lBQ3ZCLGVBQWU7WUFDZixzQkFBc0I7U0FDekI7UUFDRCxZQUFZLEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSwyQkFBMkIsQ0FBQztRQUMzRSxPQUFPLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQztLQUM1QyxDQUFDO0dBQ1csMkJBQTJCLENBQUc7U0FBOUIsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TXV0YXRpb25PYnNlcnZlck1vZHVsZX0gZnJvbSAnQG5nLXdlYi1hcGlzL211dGF0aW9uLW9ic2VydmVyJztcbmltcG9ydCB7XG4gICAgVHVpQXV0b2ZpbGxlZE1vZHVsZSxcbiAgICBUdWlGb2N1c2FibGVNb2R1bGUsXG4gICAgVHVpRm9jdXNlZE1vZHVsZSxcbiAgICBUdWlIb3ZlcmVkTW9kdWxlLFxuICAgIFR1aUlucHV0TW9kZU1vZHVsZSxcbiAgICBUdWlQcmV2ZW50RGVmYXVsdE1vZHVsZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1R1aVN2Z01vZHVsZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9zdmcnO1xuaW1wb3J0IHtUdWlUb29sdGlwTW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHtUdWlXcmFwcGVyTW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3dyYXBwZXInO1xuaW1wb3J0IHtUdWlCb3JkZXJNb2R1bGV9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvYm9yZGVyJztcbmltcG9ydCB7VHVpRGVzY3JpYmVkQnlNb2R1bGV9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvZGVzY3JpYmVkLWJ5JztcbmltcG9ydCB7VHVpTWFza0FjY2Vzc29yTW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL21hc2stYWNjZXNzb3InO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNNb2R1bGV9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5cbmltcG9ydCB7VHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50fSBmcm9tICcuL3ByaW1pdGl2ZS10ZXh0ZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7VHVpVmFsdWVEZWNvcmF0aW9uQ29tcG9uZW50fSBmcm9tICcuL3ZhbHVlLWRlY29yYXRpb24vdmFsdWUtZGVjb3JhdGlvbi5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgVHVpTWFza0FjY2Vzc29yTW9kdWxlLFxuICAgICAgICBUdWlGb2N1c2FibGVNb2R1bGUsXG4gICAgICAgIFR1aUZvY3VzZWRNb2R1bGUsXG4gICAgICAgIFR1aUhvdmVyZWRNb2R1bGUsXG4gICAgICAgIFR1aUlucHV0TW9kZU1vZHVsZSxcbiAgICAgICAgUG9seW1vcnBoZXVzTW9kdWxlLFxuICAgICAgICBUdWlXcmFwcGVyTW9kdWxlLFxuICAgICAgICBUdWlTdmdNb2R1bGUsXG4gICAgICAgIFR1aVRvb2x0aXBNb2R1bGUsXG4gICAgICAgIFR1aUF1dG9maWxsZWRNb2R1bGUsXG4gICAgICAgIFR1aURlc2NyaWJlZEJ5TW9kdWxlLFxuICAgICAgICBUdWlQcmV2ZW50RGVmYXVsdE1vZHVsZSxcbiAgICAgICAgVHVpQm9yZGVyTW9kdWxlLFxuICAgICAgICBNdXRhdGlvbk9ic2VydmVyTW9kdWxlLFxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50LCBUdWlWYWx1ZURlY29yYXRpb25Db21wb25lbnRdLFxuICAgIGV4cG9ydHM6IFtUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlQcmltaXRpdmVUZXh0ZmllbGRNb2R1bGUge31cbiJdfQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlLXRleHRmaWVsZC5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3ByaW1pdGl2ZS10ZXh0ZmllbGQvIiwic291cmNlcyI6WyJwcmltaXRpdmUtdGV4dGZpZWxkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsdUJBQXVCLEdBQzFCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1RSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUM5RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUU1RCxPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRSxPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQStCMUYsSUFBYSwyQkFBMkIsR0FBeEMsTUFBYSwyQkFBMkI7Q0FBRyxDQUFBO0FBQTlCLDJCQUEyQjtJQTdCdkMsUUFBUSxDQUFDO1FBQ04sT0FBTyxFQUFFO1lBQ0wsWUFBWTtZQUNaLFdBQVc7WUFDWCxxQkFBcUI7WUFDckIsa0JBQWtCO1lBQ2xCLGdCQUFnQjtZQUNoQixrQkFBa0I7WUFDbEIsa0JBQWtCO1lBQ2xCLGdCQUFnQjtZQUNoQixZQUFZO1lBQ1osZ0JBQWdCO1lBQ2hCLG1CQUFtQjtZQUNuQixvQkFBb0I7WUFDcEIsdUJBQXVCO1lBQ3ZCLHNCQUFzQjtTQUN6QjtRQUNELFlBQVksRUFBRTtZQUNWLDhCQUE4QjtZQUM5Qiw4QkFBOEI7WUFDOUIscUJBQXFCO1lBQ3JCLDJCQUEyQjtTQUM5QjtRQUNELE9BQU8sRUFBRTtZQUNMLDhCQUE4QjtZQUM5Qiw4QkFBOEI7WUFDOUIscUJBQXFCO1NBQ3hCO0tBQ0osQ0FBQztHQUNXLDJCQUEyQixDQUFHO1NBQTlCLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge011dGF0aW9uT2JzZXJ2ZXJNb2R1bGV9IGZyb20gJ0BuZy13ZWItYXBpcy9tdXRhdGlvbi1vYnNlcnZlcic7XG5pbXBvcnQge1xuICAgIFR1aUF1dG9maWxsZWRNb2R1bGUsXG4gICAgVHVpRm9jdXNhYmxlTW9kdWxlLFxuICAgIFR1aUhvdmVyZWRNb2R1bGUsXG4gICAgVHVpSW5wdXRNb2RlTW9kdWxlLFxuICAgIFR1aVByZXZlbnREZWZhdWx0TW9kdWxlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VHVpU3ZnTW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3N2Zyc7XG5pbXBvcnQge1R1aVRvb2x0aXBNb2R1bGV9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvdG9vbHRpcCc7XG5pbXBvcnQge1R1aVdyYXBwZXJNb2R1bGV9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvd3JhcHBlcic7XG5pbXBvcnQge1R1aURlc2NyaWJlZEJ5TW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2Rlc2NyaWJlZC1ieSc7XG5pbXBvcnQge1R1aU1hc2tBY2Nlc3Nvck1vZHVsZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9tYXNrLWFjY2Vzc29yJztcbmltcG9ydCB7UG9seW1vcnBoZXVzTW9kdWxlfSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuXG5pbXBvcnQge1R1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudH0gZnJvbSAnLi9wcmltaXRpdmUtdGV4dGZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQge1R1aVByaW1pdGl2ZVRleHRmaWVsZERpcmVjdGl2ZX0gZnJvbSAnLi9wcmltaXRpdmUtdGV4dGZpZWxkLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1R1aVRleHRmaWVsZENvbXBvbmVudH0gZnJvbSAnLi90ZXh0ZmllbGQvdGV4dGZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQge1R1aVZhbHVlRGVjb3JhdGlvbkNvbXBvbmVudH0gZnJvbSAnLi92YWx1ZS1kZWNvcmF0aW9uL3ZhbHVlLWRlY29yYXRpb24uY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFR1aU1hc2tBY2Nlc3Nvck1vZHVsZSxcbiAgICAgICAgVHVpRm9jdXNhYmxlTW9kdWxlLFxuICAgICAgICBUdWlIb3ZlcmVkTW9kdWxlLFxuICAgICAgICBUdWlJbnB1dE1vZGVNb2R1bGUsXG4gICAgICAgIFBvbHltb3JwaGV1c01vZHVsZSxcbiAgICAgICAgVHVpV3JhcHBlck1vZHVsZSxcbiAgICAgICAgVHVpU3ZnTW9kdWxlLFxuICAgICAgICBUdWlUb29sdGlwTW9kdWxlLFxuICAgICAgICBUdWlBdXRvZmlsbGVkTW9kdWxlLFxuICAgICAgICBUdWlEZXNjcmliZWRCeU1vZHVsZSxcbiAgICAgICAgVHVpUHJldmVudERlZmF1bHRNb2R1bGUsXG4gICAgICAgIE11dGF0aW9uT2JzZXJ2ZXJNb2R1bGUsXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgICAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGREaXJlY3RpdmUsXG4gICAgICAgIFR1aVRleHRmaWVsZENvbXBvbmVudCxcbiAgICAgICAgVHVpVmFsdWVEZWNvcmF0aW9uQ29tcG9uZW50LFxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQsXG4gICAgICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZERpcmVjdGl2ZSxcbiAgICAgICAgVHVpVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVByaW1pdGl2ZVRleHRmaWVsZE1vZHVsZSB7fVxuIl19
@@ -0,0 +1,68 @@
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
+ let TuiTextfieldComponent = class TuiTextfieldComponent {
8
+ constructor(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
+ get computedDescribedBy() {
17
+ return this.describedBy.computedDescribedBy;
18
+ }
19
+ get id() {
20
+ return this.elementRef.nativeElement.id || this.idService.generate();
21
+ }
22
+ ngDoCheck() {
23
+ this.describedBy.tuiDescribedBy = this.id;
24
+ }
25
+ };
26
+ TuiTextfieldComponent.ctorParameters = () => [
27
+ { type: undefined, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_HOST,] }] },
28
+ { type: TuiTextfieldController, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_WATCHED_CONTROLLER,] }] },
29
+ { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
30
+ { type: TuiDescribedByDirective, decorators: [{ type: Inject, args: [TuiDescribedByDirective,] }] },
31
+ { type: TuiIdService, decorators: [{ type: Inject, args: [TuiIdService,] }] }
32
+ ];
33
+ __decorate([
34
+ HostBinding('attr.aria-describedby')
35
+ ], TuiTextfieldComponent.prototype, "computedDescribedBy", null);
36
+ __decorate([
37
+ HostBinding('id')
38
+ ], TuiTextfieldComponent.prototype, "id", null);
39
+ TuiTextfieldComponent = __decorate([
40
+ Component({
41
+ selector: 'input[tuiTextfield]',
42
+ template: '',
43
+ providers: [
44
+ TuiDescribedByDirective,
45
+ TUI_DESCRIBED_BY_PROVIDERS,
46
+ TEXTFIELD_CONTROLLER_PROVIDER,
47
+ ],
48
+ host: {
49
+ type: 'text',
50
+ '[attr.aria-placeholder]': 'controller.exampleText',
51
+ '[attr.aria-invalid]': 'host.invalid',
52
+ '[attr.disabled]': 'host.disabled || null',
53
+ '[tabIndex]': 'host.focusable ? 0 : -1',
54
+ '[readOnly]': 'host.readOnly',
55
+ '[value]': 'host.value',
56
+ '(input)': 'host.onValueChange($event.target.value)',
57
+ },
58
+ changeDetection: ChangeDetectionStrategy.OnPush,
59
+ 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}"]
60
+ }),
61
+ __param(0, Inject(TUI_TEXTFIELD_HOST)),
62
+ __param(1, Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER)),
63
+ __param(2, Inject(ElementRef)),
64
+ __param(3, Inject(TuiDescribedByDirective)),
65
+ __param(4, Inject(TuiIdService))
66
+ ], TuiTextfieldComponent);
67
+ export { TuiTextfieldComponent };
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvcHJpbWl0aXZlLXRleHRmaWVsZC8iLCJzb3VyY2VzIjpbInRleHRmaWVsZC90ZXh0ZmllbGQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxPQUFPLEVBQ1AsVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQ0gsNkJBQTZCLEVBQzdCLDBCQUEwQixFQUMxQixnQ0FBZ0MsRUFDaEMsdUJBQXVCLEVBQ3ZCLHNCQUFzQixHQUN6QixNQUFNLDJCQUEyQixDQUFDO0FBRW5DLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRXpELFdBQVc7QUFzQlgsSUFBYSxxQkFBcUIsR0FBbEMsTUFBYSxxQkFBcUI7SUFDOUIsWUFDeUMsSUFBc0IsRUFFbEQsVUFBa0MsRUFDTixVQUF3QyxFQUU1RCxXQUFvQyxFQUVwQyxTQUF1QjtRQVBILFNBQUksR0FBSixJQUFJLENBQWtCO1FBRWxELGVBQVUsR0FBVixVQUFVLENBQXdCO1FBQ04sZUFBVSxHQUFWLFVBQVUsQ0FBOEI7UUFFNUQsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBRXBDLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFFeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBR0QsSUFBSSxtQkFBbUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDO0lBQ2hELENBQUM7SUFHRCxJQUFJLEVBQUU7UUFDRixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3pFLENBQUM7SUFFRCxTQUFTO1FBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0NBQ0osQ0FBQTs7NENBekJRLE1BQU0sU0FBQyxrQkFBa0I7WUFFTCxzQkFBc0IsdUJBRDFDLE1BQU0sU0FBQyxnQ0FBZ0M7WUFFUyxVQUFVLHVCQUExRCxNQUFNLFNBQUMsVUFBVTtZQUVZLHVCQUF1Qix1QkFEcEQsTUFBTSxTQUFDLHVCQUF1QjtZQUdILFlBQVksdUJBRHZDLE1BQU0sU0FBQyxZQUFZOztBQU94QjtJQURDLFdBQVcsQ0FBQyx1QkFBdUIsQ0FBQztnRUFHcEM7QUFHRDtJQURDLFdBQVcsQ0FBQyxJQUFJLENBQUM7K0NBR2pCO0FBdEJRLHFCQUFxQjtJQXJCakMsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLHFCQUFxQjtRQUMvQixRQUFRLEVBQUUsRUFBRTtRQUNaLFNBQVMsRUFBRTtZQUNQLHVCQUF1QjtZQUN2QiwwQkFBMEI7WUFDMUIsNkJBQTZCO1NBQ2hDO1FBQ0QsSUFBSSxFQUFFO1lBQ0YsSUFBSSxFQUFFLE1BQU07WUFDWix5QkFBeUIsRUFBRSx3QkFBd0I7WUFDbkQscUJBQXFCLEVBQUUsY0FBYztZQUNyQyxpQkFBaUIsRUFBRSx1QkFBdUI7WUFDMUMsWUFBWSxFQUFFLHlCQUF5QjtZQUN2QyxZQUFZLEVBQUUsZUFBZTtZQUM3QixTQUFTLEVBQUUsWUFBWTtZQUN2QixTQUFTLEVBQUUseUNBQXlDO1NBQ3ZEO1FBRUQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O0tBQ2xELENBQUM7SUFHTyxXQUFBLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO0lBQzFCLFdBQUEsTUFBTSxDQUFDLGdDQUFnQyxDQUFDLENBQUE7SUFFeEMsV0FBQSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDbEIsV0FBQSxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtJQUUvQixXQUFBLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQTtHQVJoQixxQkFBcUIsQ0EyQmpDO1NBM0JZLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIERvQ2hlY2ssXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUdWlJZFNlcnZpY2V9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBURVhURklFTERfQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICBUVUlfREVTQ1JJQkVEX0JZX1BST1ZJREVSUyxcbiAgICBUVUlfVEVYVEZJRUxEX1dBVENIRURfQ09OVFJPTExFUixcbiAgICBUdWlEZXNjcmliZWRCeURpcmVjdGl2ZSxcbiAgICBUdWlUZXh0ZmllbGRDb250cm9sbGVyLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzJztcbmltcG9ydCB7VHVpVGV4dGZpZWxkSG9zdH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvaW50ZXJmYWNlcyc7XG5pbXBvcnQge1RVSV9URVhURklFTERfSE9TVH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcblxuLy8gQGR5bmFtaWNcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnaW5wdXRbdHVpVGV4dGZpZWxkXScsXG4gICAgdGVtcGxhdGU6ICcnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBUdWlEZXNjcmliZWRCeURpcmVjdGl2ZSxcbiAgICAgICAgVFVJX0RFU0NSSUJFRF9CWV9QUk9WSURFUlMsXG4gICAgICAgIFRFWFRGSUVMRF9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICdbYXR0ci5hcmlhLXBsYWNlaG9sZGVyXSc6ICdjb250cm9sbGVyLmV4YW1wbGVUZXh0JyxcbiAgICAgICAgJ1thdHRyLmFyaWEtaW52YWxpZF0nOiAnaG9zdC5pbnZhbGlkJyxcbiAgICAgICAgJ1thdHRyLmRpc2FibGVkXSc6ICdob3N0LmRpc2FibGVkIHx8IG51bGwnLFxuICAgICAgICAnW3RhYkluZGV4XSc6ICdob3N0LmZvY3VzYWJsZSA/IDAgOiAtMScsXG4gICAgICAgICdbcmVhZE9ubHldJzogJ2hvc3QucmVhZE9ubHknLFxuICAgICAgICAnW3ZhbHVlXSc6ICdob3N0LnZhbHVlJyxcbiAgICAgICAgJyhpbnB1dCknOiAnaG9zdC5vblZhbHVlQ2hhbmdlKCRldmVudC50YXJnZXQudmFsdWUpJyxcbiAgICB9LFxuICAgIHN0eWxlVXJsczogWyd0ZXh0ZmllbGQuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlUZXh0ZmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBEb0NoZWNrIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX0hPU1QpIHJlYWRvbmx5IGhvc3Q6IFR1aVRleHRmaWVsZEhvc3QsXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9XQVRDSEVEX0NPTlRST0xMRVIpXG4gICAgICAgIHJlYWRvbmx5IGNvbnRyb2xsZXI6IFR1aVRleHRmaWVsZENvbnRyb2xsZXIsXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KFR1aURlc2NyaWJlZEJ5RGlyZWN0aXZlKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRlc2NyaWJlZEJ5OiBUdWlEZXNjcmliZWRCeURpcmVjdGl2ZSxcbiAgICAgICAgQEluamVjdChUdWlJZFNlcnZpY2UpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaWRTZXJ2aWNlOiBUdWlJZFNlcnZpY2UsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuaG9zdC5wcm9jZXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1kZXNjcmliZWRieScpXG4gICAgZ2V0IGNvbXB1dGVkRGVzY3JpYmVkQnkoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmRlc2NyaWJlZEJ5LmNvbXB1dGVkRGVzY3JpYmVkQnk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdpZCcpXG4gICAgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5pZCB8fCB0aGlzLmlkU2VydmljZS5nZW5lcmF0ZSgpO1xuICAgIH1cblxuICAgIG5nRG9DaGVjaygpIHtcbiAgICAgICAgdGhpcy5kZXNjcmliZWRCeS50dWlEZXNjcmliZWRCeSA9IHRoaXMuaWQ7XG4gICAgfVxufVxuIl19