@taiga-ui/core 2.21.0 → 2.25.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 (724) hide show
  1. package/README.md +7 -3
  2. package/abstract/abstract-hint.d.ts +3 -1
  3. package/abstract/taiga-ui-core-abstract.metadata.json +1 -1
  4. package/bundles/taiga-ui-core-abstract.umd.js +4 -2
  5. package/bundles/taiga-ui-core-abstract.umd.js.map +1 -1
  6. package/bundles/taiga-ui-core-abstract.umd.min.js +1 -1
  7. package/bundles/taiga-ui-core-abstract.umd.min.js.map +1 -1
  8. package/bundles/taiga-ui-core-components-button.umd.js +21 -7
  9. package/bundles/taiga-ui-core-components-button.umd.js.map +1 -1
  10. package/bundles/taiga-ui-core-components-button.umd.min.js +1 -1
  11. package/bundles/taiga-ui-core-components-button.umd.min.js.map +1 -1
  12. package/bundles/taiga-ui-core-components-calendar.umd.js +1 -1
  13. package/bundles/taiga-ui-core-components-calendar.umd.js.map +1 -1
  14. package/bundles/taiga-ui-core-components-calendar.umd.min.js +1 -1
  15. package/bundles/taiga-ui-core-components-calendar.umd.min.js.map +1 -1
  16. package/bundles/taiga-ui-core-components-data-list.umd.js +6 -5
  17. package/bundles/taiga-ui-core-components-data-list.umd.js.map +1 -1
  18. package/bundles/taiga-ui-core-components-data-list.umd.min.js +2 -2
  19. package/bundles/taiga-ui-core-components-data-list.umd.min.js.map +1 -1
  20. package/bundles/taiga-ui-core-components-dialog.umd.js +16 -40
  21. package/bundles/taiga-ui-core-components-dialog.umd.js.map +1 -1
  22. package/bundles/taiga-ui-core-components-dialog.umd.min.js +1 -1
  23. package/bundles/taiga-ui-core-components-dialog.umd.min.js.map +1 -1
  24. package/bundles/taiga-ui-core-components-dropdown-box.umd.js +1 -1
  25. package/bundles/taiga-ui-core-components-dropdown-box.umd.js.map +1 -1
  26. package/bundles/taiga-ui-core-components-dropdown-box.umd.min.js +1 -1
  27. package/bundles/taiga-ui-core-components-dropdown-box.umd.min.js.map +1 -1
  28. package/bundles/taiga-ui-core-components-error.umd.js +1 -1
  29. package/bundles/taiga-ui-core-components-error.umd.js.map +1 -1
  30. package/bundles/taiga-ui-core-components-error.umd.min.js +1 -1
  31. package/bundles/taiga-ui-core-components-error.umd.min.js.map +1 -1
  32. package/bundles/taiga-ui-core-components-expand.umd.js +3 -2
  33. package/bundles/taiga-ui-core-components-expand.umd.js.map +1 -1
  34. package/bundles/taiga-ui-core-components-expand.umd.min.js +1 -1
  35. package/bundles/taiga-ui-core-components-expand.umd.min.js.map +1 -1
  36. package/bundles/taiga-ui-core-components-group.umd.js.map +1 -1
  37. package/bundles/taiga-ui-core-components-group.umd.min.js.map +1 -1
  38. package/bundles/taiga-ui-core-components-hints-host.umd.js +20 -14
  39. package/bundles/taiga-ui-core-components-hints-host.umd.js.map +1 -1
  40. package/bundles/taiga-ui-core-components-hints-host.umd.min.js +2 -2
  41. package/bundles/taiga-ui-core-components-hints-host.umd.min.js.map +1 -1
  42. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js +2 -15
  43. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js.map +1 -1
  44. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.min.js +1 -1
  45. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.min.js.map +1 -1
  46. package/bundles/taiga-ui-core-components-label.umd.js +1 -1
  47. package/bundles/taiga-ui-core-components-label.umd.js.map +1 -1
  48. package/bundles/taiga-ui-core-components-label.umd.min.js +1 -1
  49. package/bundles/taiga-ui-core-components-label.umd.min.js.map +1 -1
  50. package/bundles/taiga-ui-core-components-link.umd.js +1 -1
  51. package/bundles/taiga-ui-core-components-link.umd.min.js +1 -1
  52. package/bundles/taiga-ui-core-components-link.umd.min.js.map +1 -1
  53. package/bundles/taiga-ui-core-components-loader.umd.js +2 -2
  54. package/bundles/taiga-ui-core-components-loader.umd.js.map +1 -1
  55. package/bundles/taiga-ui-core-components-loader.umd.min.js +1 -1
  56. package/bundles/taiga-ui-core-components-loader.umd.min.js.map +1 -1
  57. package/bundles/taiga-ui-core-components-notification.umd.js +1 -1
  58. package/bundles/taiga-ui-core-components-notification.umd.min.js +1 -1
  59. package/bundles/taiga-ui-core-components-primitive-calendar.umd.js +2 -2
  60. package/bundles/taiga-ui-core-components-primitive-calendar.umd.js.map +1 -1
  61. package/bundles/taiga-ui-core-components-primitive-calendar.umd.min.js +1 -1
  62. package/bundles/taiga-ui-core-components-primitive-calendar.umd.min.js.map +1 -1
  63. package/bundles/taiga-ui-core-components-primitive-checkbox.umd.js.map +1 -1
  64. package/bundles/taiga-ui-core-components-primitive-checkbox.umd.min.js.map +1 -1
  65. package/bundles/taiga-ui-core-components-primitive-spin-button.umd.js +2 -2
  66. package/bundles/taiga-ui-core-components-primitive-spin-button.umd.min.js +1 -1
  67. package/bundles/taiga-ui-core-components-primitive-textfield.umd.js +138 -106
  68. package/bundles/taiga-ui-core-components-primitive-textfield.umd.js.map +1 -1
  69. package/bundles/taiga-ui-core-components-primitive-textfield.umd.min.js +2 -2
  70. package/bundles/taiga-ui-core-components-primitive-textfield.umd.min.js.map +1 -1
  71. package/bundles/taiga-ui-core-components-primitive-year-picker.umd.js +2 -2
  72. package/bundles/taiga-ui-core-components-primitive-year-picker.umd.js.map +1 -1
  73. package/bundles/taiga-ui-core-components-primitive-year-picker.umd.min.js +1 -1
  74. package/bundles/taiga-ui-core-components-primitive-year-picker.umd.min.js.map +1 -1
  75. package/bundles/taiga-ui-core-components-root.umd.js.map +1 -1
  76. package/bundles/taiga-ui-core-components-root.umd.min.js.map +1 -1
  77. package/bundles/taiga-ui-core-components-scroll-controls.umd.js +61 -61
  78. package/bundles/taiga-ui-core-components-scroll-controls.umd.js.map +1 -1
  79. package/bundles/taiga-ui-core-components-scroll-controls.umd.min.js +2 -2
  80. package/bundles/taiga-ui-core-components-scroll-controls.umd.min.js.map +1 -1
  81. package/bundles/taiga-ui-core-components-scrollbar.umd.js +52 -42
  82. package/bundles/taiga-ui-core-components-scrollbar.umd.js.map +1 -1
  83. package/bundles/taiga-ui-core-components-scrollbar.umd.min.js +2 -2
  84. package/bundles/taiga-ui-core-components-scrollbar.umd.min.js.map +1 -1
  85. package/bundles/taiga-ui-core-components-svg.umd.js.map +1 -1
  86. package/bundles/taiga-ui-core-components-svg.umd.min.js.map +1 -1
  87. package/bundles/taiga-ui-core-components-theme-night.umd.js.map +1 -1
  88. package/bundles/taiga-ui-core-components-theme-night.umd.min.js.map +1 -1
  89. package/bundles/taiga-ui-core-components-tooltip.umd.js +1 -1
  90. package/bundles/taiga-ui-core-components-tooltip.umd.min.js +1 -1
  91. package/bundles/taiga-ui-core-components-wrapper.umd.js +1 -1
  92. package/bundles/taiga-ui-core-components-wrapper.umd.js.map +1 -1
  93. package/bundles/taiga-ui-core-components-wrapper.umd.min.js +1 -1
  94. package/bundles/taiga-ui-core-components-wrapper.umd.min.js.map +1 -1
  95. package/bundles/taiga-ui-core-components.umd.js +8 -8
  96. package/bundles/taiga-ui-core-components.umd.min.js +1 -1
  97. package/bundles/taiga-ui-core-constants.umd.js +12 -3
  98. package/bundles/taiga-ui-core-constants.umd.js.map +1 -1
  99. package/bundles/taiga-ui-core-constants.umd.min.js +1 -1
  100. package/bundles/taiga-ui-core-constants.umd.min.js.map +1 -1
  101. package/bundles/taiga-ui-core-directives-border.umd.js +291 -0
  102. package/bundles/taiga-ui-core-directives-border.umd.js.map +1 -0
  103. package/bundles/taiga-ui-core-directives-border.umd.min.js +16 -0
  104. package/bundles/taiga-ui-core-directives-border.umd.min.js.map +1 -0
  105. package/bundles/taiga-ui-core-directives-color.umd.js.map +1 -1
  106. package/bundles/taiga-ui-core-directives-color.umd.min.js.map +1 -1
  107. package/bundles/taiga-ui-core-directives-described-by.umd.js.map +1 -1
  108. package/bundles/taiga-ui-core-directives-described-by.umd.min.js.map +1 -1
  109. package/bundles/taiga-ui-core-directives-dropdown-controller.umd.js.map +1 -1
  110. package/bundles/taiga-ui-core-directives-dropdown-controller.umd.min.js.map +1 -1
  111. package/bundles/taiga-ui-core-directives-hint-controller.umd.js.map +1 -1
  112. package/bundles/taiga-ui-core-directives-hint-controller.umd.min.js.map +1 -1
  113. package/bundles/taiga-ui-core-directives-hint.umd.js +7 -4
  114. package/bundles/taiga-ui-core-directives-hint.umd.js.map +1 -1
  115. package/bundles/taiga-ui-core-directives-hint.umd.min.js +1 -1
  116. package/bundles/taiga-ui-core-directives-hint.umd.min.js.map +1 -1
  117. package/bundles/taiga-ui-core-directives-manual-hint.umd.js +7 -4
  118. package/bundles/taiga-ui-core-directives-manual-hint.umd.js.map +1 -1
  119. package/bundles/taiga-ui-core-directives-manual-hint.umd.min.js +1 -1
  120. package/bundles/taiga-ui-core-directives-manual-hint.umd.min.js.map +1 -1
  121. package/bundles/taiga-ui-core-directives-mask-accessor.umd.js.map +1 -1
  122. package/bundles/taiga-ui-core-directives-mask-accessor.umd.min.js.map +1 -1
  123. package/bundles/taiga-ui-core-directives-mode.umd.js.map +1 -1
  124. package/bundles/taiga-ui-core-directives-mode.umd.min.js.map +1 -1
  125. package/bundles/taiga-ui-core-directives-pointer-hint.umd.js +1 -1
  126. package/bundles/taiga-ui-core-directives-pointer-hint.umd.js.map +1 -1
  127. package/bundles/taiga-ui-core-directives-pointer-hint.umd.min.js +1 -1
  128. package/bundles/taiga-ui-core-directives-pointer-hint.umd.min.js.map +1 -1
  129. package/bundles/taiga-ui-core-directives-scroll-into-view.umd.js.map +1 -1
  130. package/bundles/taiga-ui-core-directives-scroll-into-view.umd.min.js.map +1 -1
  131. package/bundles/taiga-ui-core-directives-table-mode.umd.js.map +1 -1
  132. package/bundles/taiga-ui-core-directives-table-mode.umd.min.js.map +1 -1
  133. package/bundles/taiga-ui-core-directives-textfield-controller.umd.js +9 -3
  134. package/bundles/taiga-ui-core-directives-textfield-controller.umd.js.map +1 -1
  135. package/bundles/taiga-ui-core-directives-textfield-controller.umd.min.js.map +1 -1
  136. package/bundles/taiga-ui-core-directives.umd.js +16 -8
  137. package/bundles/taiga-ui-core-directives.umd.js.map +1 -1
  138. package/bundles/taiga-ui-core-directives.umd.min.js +1 -1
  139. package/bundles/taiga-ui-core-internal-primitive-year-month-pagination.umd.js +1 -1
  140. package/bundles/taiga-ui-core-internal-primitive-year-month-pagination.umd.js.map +1 -1
  141. package/bundles/taiga-ui-core-internal-primitive-year-month-pagination.umd.min.js +1 -1
  142. package/bundles/taiga-ui-core-internal-primitive-year-month-pagination.umd.min.js.map +1 -1
  143. package/bundles/taiga-ui-core-internal-svg-defs-host.umd.js.map +1 -1
  144. package/bundles/taiga-ui-core-internal-svg-defs-host.umd.min.js.map +1 -1
  145. package/bundles/taiga-ui-core-modules-notifications.umd.js +25 -25
  146. package/bundles/taiga-ui-core-modules-notifications.umd.js.map +1 -1
  147. package/bundles/taiga-ui-core-modules-notifications.umd.min.js +1 -1
  148. package/bundles/taiga-ui-core-modules-notifications.umd.min.js.map +1 -1
  149. package/bundles/taiga-ui-core-pipes-calendar-sheet.umd.js.map +1 -1
  150. package/bundles/taiga-ui-core-pipes-calendar-sheet.umd.min.js.map +1 -1
  151. package/bundles/taiga-ui-core-pipes-format-number.umd.js.map +1 -1
  152. package/bundles/taiga-ui-core-pipes-format-number.umd.min.js.map +1 -1
  153. package/bundles/taiga-ui-core-pipes-month.umd.js.map +1 -1
  154. package/bundles/taiga-ui-core-pipes-month.umd.min.js.map +1 -1
  155. package/bundles/taiga-ui-core-pipes-pluralize.umd.js.map +1 -1
  156. package/bundles/taiga-ui-core-pipes-pluralize.umd.min.js.map +1 -1
  157. package/bundles/taiga-ui-core-pipes.umd.js +12 -12
  158. package/bundles/taiga-ui-core-pipes.umd.min.js +1 -1
  159. package/bundles/taiga-ui-core-providers.umd.js +9 -9
  160. package/bundles/taiga-ui-core-providers.umd.js.map +1 -1
  161. package/bundles/taiga-ui-core-providers.umd.min.js +1 -1
  162. package/bundles/taiga-ui-core-services.umd.js.map +1 -1
  163. package/bundles/taiga-ui-core-services.umd.min.js.map +1 -1
  164. package/bundles/taiga-ui-core-tokens.umd.js +28 -19
  165. package/bundles/taiga-ui-core-tokens.umd.js.map +1 -1
  166. package/bundles/taiga-ui-core-tokens.umd.min.js +1 -1
  167. package/bundles/taiga-ui-core-tokens.umd.min.js.map +1 -1
  168. package/bundles/taiga-ui-core-utils-dom.umd.js +3 -1
  169. package/bundles/taiga-ui-core-utils-dom.umd.js.map +1 -1
  170. package/bundles/taiga-ui-core-utils-dom.umd.min.js +1 -1
  171. package/bundles/taiga-ui-core-utils-dom.umd.min.js.map +1 -1
  172. package/bundles/taiga-ui-core-utils-mask.umd.js +28 -8
  173. package/bundles/taiga-ui-core-utils-mask.umd.js.map +1 -1
  174. package/bundles/taiga-ui-core-utils-mask.umd.min.js +1 -1
  175. package/bundles/taiga-ui-core-utils-mask.umd.min.js.map +1 -1
  176. package/bundles/taiga-ui-core-utils-miscellaneous.umd.js +2 -4
  177. package/bundles/taiga-ui-core-utils-miscellaneous.umd.js.map +1 -1
  178. package/bundles/taiga-ui-core-utils-miscellaneous.umd.min.js +1 -1
  179. package/bundles/taiga-ui-core-utils-miscellaneous.umd.min.js.map +1 -1
  180. package/components/button/button-options.d.ts +10 -0
  181. package/components/button/button.component.d.ts +8 -7
  182. package/components/button/index.d.ts +1 -0
  183. package/components/button/taiga-ui-core-components-button.metadata.json +1 -1
  184. package/components/calendar/taiga-ui-core-components-calendar.metadata.json +1 -1
  185. package/components/data-list/index.d.ts +1 -1
  186. package/components/data-list/taiga-ui-core-components-data-list.metadata.json +1 -1
  187. package/components/dialog/dialog.directive.d.ts +2 -11
  188. package/components/dialog/taiga-ui-core-components-dialog.metadata.json +1 -1
  189. package/components/dropdown-box/taiga-ui-core-components-dropdown-box.metadata.json +1 -1
  190. package/components/error/taiga-ui-core-components-error.metadata.json +1 -1
  191. package/components/expand/taiga-ui-core-components-expand.metadata.json +1 -1
  192. package/components/group/taiga-ui-core-components-group.metadata.json +1 -1
  193. package/components/hints-host/index.d.ts +2 -2
  194. package/components/hints-host/taiga-ui-core-components-hints-host.metadata.json +1 -1
  195. package/components/hosted-dropdown/hosted-dropdown.component.d.ts +1 -3
  196. package/components/hosted-dropdown/taiga-ui-core-components-hosted-dropdown.metadata.json +1 -1
  197. package/components/index.d.ts +1 -1
  198. package/components/label/taiga-ui-core-components-label.metadata.json +1 -1
  199. package/components/link/taiga-ui-core-components-link.metadata.json +1 -1
  200. package/components/loader/taiga-ui-core-components-loader.metadata.json +1 -1
  201. package/components/notification/taiga-ui-core-components-notification.metadata.json +1 -1
  202. package/components/primitive-calendar/taiga-ui-core-components-primitive-calendar.metadata.json +1 -1
  203. package/components/primitive-checkbox/taiga-ui-core-components-primitive-checkbox.metadata.json +1 -1
  204. package/components/primitive-spin-button/taiga-ui-core-components-primitive-spin-button.metadata.json +1 -1
  205. package/components/primitive-textfield/index.d.ts +1 -0
  206. package/components/primitive-textfield/primitive-textfield.component.d.ts +9 -16
  207. package/components/primitive-textfield/taiga-ui-core-components-primitive-textfield.metadata.json +1 -1
  208. package/components/primitive-textfield/value-decoration/value-decoration.component.d.ts +18 -0
  209. package/components/primitive-year-picker/taiga-ui-core-components-primitive-year-picker.metadata.json +1 -1
  210. package/components/root/taiga-ui-core-components-root.metadata.json +1 -1
  211. package/components/scroll-controls/index.d.ts +1 -1
  212. package/components/scroll-controls/taiga-ui-core-components-scroll-controls.metadata.json +1 -1
  213. package/components/scrollbar/index.d.ts +1 -1
  214. package/components/scrollbar/scrollable.directive.d.ts +5 -1
  215. package/components/scrollbar/scrollbar.component.d.ts +4 -3
  216. package/components/scrollbar/taiga-ui-core-components-scrollbar.metadata.json +1 -1
  217. package/components/svg/taiga-ui-core-components-svg.metadata.json +1 -1
  218. package/components/taiga-ui-core-components.metadata.json +1 -1
  219. package/components/theme-night/taiga-ui-core-components-theme-night.metadata.json +1 -1
  220. package/components/tooltip/taiga-ui-core-components-tooltip.metadata.json +1 -1
  221. package/components/wrapper/taiga-ui-core-components-wrapper.metadata.json +1 -1
  222. package/constants/events.d.ts +5 -0
  223. package/constants/index.d.ts +1 -1
  224. package/constants/media.d.ts +1 -0
  225. package/constants/regexp.d.ts +1 -0
  226. package/constants/taiga-ui-core-constants.metadata.json +1 -1
  227. package/constants/version.d.ts +1 -1
  228. package/directives/border/border.directive.d.ts +9 -0
  229. package/directives/border/border.module.d.ts +2 -0
  230. package/directives/border/index.d.ts +2 -0
  231. package/directives/border/package.json +13 -0
  232. package/directives/border/taiga-ui-core-directives-border.d.ts +4 -0
  233. package/directives/border/taiga-ui-core-directives-border.metadata.json +1 -0
  234. package/directives/color/index.d.ts +1 -1
  235. package/directives/color/taiga-ui-core-directives-color.metadata.json +1 -1
  236. package/directives/described-by/taiga-ui-core-directives-described-by.metadata.json +1 -1
  237. package/directives/dropdown-controller/taiga-ui-core-directives-dropdown-controller.metadata.json +1 -1
  238. package/directives/hint/hint.directive.d.ts +2 -2
  239. package/directives/hint/taiga-ui-core-directives-hint.metadata.json +1 -1
  240. package/directives/hint-controller/taiga-ui-core-directives-hint-controller.metadata.json +1 -1
  241. package/directives/index.d.ts +2 -1
  242. package/directives/manual-hint/manual-hint.directive.d.ts +2 -1
  243. package/directives/manual-hint/taiga-ui-core-directives-manual-hint.metadata.json +1 -1
  244. package/directives/mask-accessor/taiga-ui-core-directives-mask-accessor.metadata.json +1 -1
  245. package/directives/mode/taiga-ui-core-directives-mode.metadata.json +1 -1
  246. package/directives/pointer-hint/taiga-ui-core-directives-pointer-hint.metadata.json +1 -1
  247. package/directives/scroll-into-view/taiga-ui-core-directives-scroll-into-view.metadata.json +1 -1
  248. package/directives/table-mode/taiga-ui-core-directives-table-mode.metadata.json +1 -1
  249. package/directives/taiga-ui-core-directives.metadata.json +1 -1
  250. package/directives/textfield-controller/index.d.ts +2 -2
  251. package/directives/textfield-controller/taiga-ui-core-directives-textfield-controller.metadata.json +1 -1
  252. package/directives/textfield-controller/textfield-controller.provider.d.ts +1 -1
  253. package/esm2015/abstract/abstract-hint.js +6 -4
  254. package/esm2015/components/button/button-options.js +10 -0
  255. package/esm2015/components/button/button.component.js +12 -8
  256. package/esm2015/components/button/button.module.js +1 -1
  257. package/esm2015/components/button/index.js +2 -1
  258. package/esm2015/components/calendar/calendar.component.js +2 -2
  259. package/esm2015/components/data-list/data-list.component.js +4 -3
  260. package/esm2015/components/data-list/data-list.module.js +2 -2
  261. package/esm2015/components/data-list/index.js +2 -2
  262. package/esm2015/components/data-list/option/option.component.js +4 -4
  263. package/esm2015/components/dialog/dialog.component.js +3 -3
  264. package/esm2015/components/dialog/dialog.directive.js +14 -36
  265. package/esm2015/components/dialog/dialog.module.js +1 -1
  266. package/esm2015/components/dialog/dialog.service.js +1 -1
  267. package/esm2015/components/dropdown-box/dropdown-box.component.js +1 -1
  268. package/esm2015/components/dropdown-box/dropdown-box.module.js +1 -1
  269. package/esm2015/components/error/error.component.js +1 -1
  270. package/esm2015/components/error/error.module.js +1 -1
  271. package/esm2015/components/expand/expand.component.js +4 -3
  272. package/esm2015/components/expand/expand.module.js +2 -2
  273. package/esm2015/components/group/group.component.js +1 -1
  274. package/esm2015/components/group/group.module.js +1 -1
  275. package/esm2015/components/hints-host/hint-box/hint-box.component.js +3 -3
  276. package/esm2015/components/hints-host/hint-box/hint-box.module.js +1 -1
  277. package/esm2015/components/hints-host/hints-host.component.js +3 -3
  278. package/esm2015/components/hints-host/hints-host.module.js +9 -3
  279. package/esm2015/components/hints-host/index.js +3 -3
  280. package/esm2015/components/hosted-dropdown/hosted-dropdown.component.js +4 -13
  281. package/esm2015/components/hosted-dropdown/hosted-dropdown.module.js +2 -2
  282. package/esm2015/components/index.js +2 -2
  283. package/esm2015/components/label/label.component.js +2 -2
  284. package/esm2015/components/label/label.module.js +1 -1
  285. package/esm2015/components/link/link.component.js +1 -1
  286. package/esm2015/components/loader/loader.component.js +3 -3
  287. package/esm2015/components/loader/loader.module.js +1 -1
  288. package/esm2015/components/notification/notification.component.js +1 -1
  289. package/esm2015/components/primitive-calendar/primitive-calendar.component.js +3 -3
  290. package/esm2015/components/primitive-calendar/primitive-calendar.module.js +1 -1
  291. package/esm2015/components/primitive-checkbox/primitive-checkbox.component.js +1 -1
  292. package/esm2015/components/primitive-spin-button/primitive-spin-button.component.js +2 -2
  293. package/esm2015/components/primitive-textfield/index.js +2 -1
  294. package/esm2015/components/primitive-textfield/primitive-textfield.component.js +38 -67
  295. package/esm2015/components/primitive-textfield/primitive-textfield.module.js +7 -2
  296. package/esm2015/components/primitive-textfield/primitive-textfield.providers.js +1 -1
  297. package/esm2015/components/primitive-textfield/value-decoration/value-decoration.component.js +65 -0
  298. package/esm2015/components/primitive-year-picker/primitive-year-picker.component.js +3 -3
  299. package/esm2015/components/root/root.module.js +1 -1
  300. package/esm2015/components/scroll-controls/index.js +2 -2
  301. package/esm2015/components/scroll-controls/scroll-controls.component.js +2 -2
  302. package/esm2015/components/scroll-controls/scroll-controls.module.js +2 -2
  303. package/esm2015/components/scrollbar/index.js +2 -2
  304. package/esm2015/components/scrollbar/scrollable.directive.js +18 -4
  305. package/esm2015/components/scrollbar/scrollbar.component.js +20 -18
  306. package/esm2015/components/scrollbar/scrollbar.module.js +1 -1
  307. package/esm2015/components/svg/svg.module.js +1 -1
  308. package/esm2015/components/theme-night/theme-night.module.js +1 -1
  309. package/esm2015/components/tooltip/tooltip.component.js +1 -1
  310. package/esm2015/components/wrapper/wrapper.component.js +1 -1
  311. package/esm2015/components/wrapper/wrapper.module.js +1 -1
  312. package/esm2015/constants/events.js +6 -1
  313. package/esm2015/constants/index.js +2 -2
  314. package/esm2015/constants/media.js +2 -1
  315. package/esm2015/constants/regexp.js +2 -1
  316. package/esm2015/constants/version.js +2 -2
  317. package/esm2015/directives/border/border.directive.js +42 -0
  318. package/esm2015/directives/border/border.module.js +13 -0
  319. package/esm2015/directives/border/index.js +3 -0
  320. package/esm2015/directives/border/taiga-ui-core-directives-border.js +5 -0
  321. package/esm2015/directives/color/color.module.js +1 -1
  322. package/esm2015/directives/color/index.js +2 -2
  323. package/esm2015/directives/described-by/described-by.module.js +1 -1
  324. package/esm2015/directives/dropdown-controller/dropdown-controller.directive.js +1 -1
  325. package/esm2015/directives/dropdown-controller/dropdown-controller.module.js +1 -1
  326. package/esm2015/directives/dropdown-controller/dropdown-controller.provider.js +1 -1
  327. package/esm2015/directives/dropdown-controller/dropdown-controller.token.js +1 -1
  328. package/esm2015/directives/hint/hint.directive.js +10 -7
  329. package/esm2015/directives/hint/hint.module.js +1 -1
  330. package/esm2015/directives/hint-controller/hint-controller.directive.js +1 -1
  331. package/esm2015/directives/hint-controller/hint-controller.module.js +1 -1
  332. package/esm2015/directives/hint-controller/hint-controller.provider.js +1 -1
  333. package/esm2015/directives/hint-controller/hint-controller.token.js +1 -1
  334. package/esm2015/directives/index.js +3 -2
  335. package/esm2015/directives/manual-hint/manual-hint.directive.js +10 -7
  336. package/esm2015/directives/manual-hint/manual-hint.module.js +1 -1
  337. package/esm2015/directives/mask-accessor/mask-accessor.module.js +1 -1
  338. package/esm2015/directives/mode/mode.module.js +1 -1
  339. package/esm2015/directives/pointer-hint/pointer-hint.directive.js +2 -2
  340. package/esm2015/directives/pointer-hint/pointer-hint.module.js +1 -1
  341. package/esm2015/directives/scroll-into-view/scroll-into-view.module.js +1 -1
  342. package/esm2015/directives/table-mode/table-mode.module.js +1 -1
  343. package/esm2015/directives/textfield-controller/index.js +3 -3
  344. package/esm2015/directives/textfield-controller/textfield-cleaner.directive.js +4 -2
  345. package/esm2015/directives/textfield-controller/textfield-controller.module.js +1 -1
  346. package/esm2015/directives/textfield-controller/textfield-controller.provider.js +2 -2
  347. package/esm2015/directives/textfield-controller/textfield-size.directive.js +4 -2
  348. package/esm2015/directives/textfield-controller/textfield-type.directive.js +4 -2
  349. package/esm2015/directives/textfield-controller/textfield.controller.js +1 -1
  350. package/esm2015/interfaces/dialog-context.js +1 -1
  351. package/esm2015/interfaces/index.js +1 -1
  352. package/esm2015/interfaces/media.js +1 -0
  353. package/esm2015/internal/primitive-year-month-pagination/primitive-year-month-pagination.component.js +2 -2
  354. package/esm2015/internal/svg-defs-host/svg-defs-host.module.js +1 -1
  355. package/esm2015/mask/index.js +1 -1
  356. package/esm2015/modules/notifications/index.js +3 -3
  357. package/esm2015/modules/notifications/notification-alert/Notification-alert.js +1 -1
  358. package/esm2015/modules/notifications/notification-alert/notification-alert.component.js +2 -2
  359. package/esm2015/modules/notifications/notifications-host/notifications-host.component.js +2 -2
  360. package/esm2015/modules/notifications/notifications.module.js +1 -1
  361. package/esm2015/modules/notifications/notifications.service.js +1 -1
  362. package/esm2015/pipes/calendar-sheet/calendar-sheet.module.js +1 -1
  363. package/esm2015/pipes/calendar-sheet/calendar-sheet.pipe.js +1 -1
  364. package/esm2015/pipes/calendar-sheet/index.js +2 -2
  365. package/esm2015/pipes/format-number/format-number.pipe.js +1 -1
  366. package/esm2015/pipes/index.js +2 -2
  367. package/esm2015/pipes/month/month.module.js +1 -1
  368. package/esm2015/pipes/pluralize/pluralize.module.js +1 -1
  369. package/esm2015/providers/index.js +2 -2
  370. package/esm2015/services/hint.service.js +1 -1
  371. package/esm2015/tokens/animation-options.js +1 -1
  372. package/esm2015/tokens/index.js +5 -4
  373. package/esm2015/tokens/media.js +9 -0
  374. package/esm2015/tokens/ordered-short-week-days.js +1 -1
  375. package/esm2015/types/marker-handler.js +1 -1
  376. package/esm2015/utils/dom/process-icon.js +4 -2
  377. package/esm2015/utils/mask/create-number-mask.js +28 -10
  378. package/esm2015/utils/miscellaneous/get-border.js +3 -5
  379. package/esm5/abstract/abstract-hint.js +6 -4
  380. package/esm5/components/button/button-options.js +10 -0
  381. package/esm5/components/button/button.component.js +12 -8
  382. package/esm5/components/button/button.module.js +1 -1
  383. package/esm5/components/button/index.js +2 -1
  384. package/esm5/components/calendar/calendar.component.js +2 -2
  385. package/esm5/components/data-list/data-list.component.js +4 -3
  386. package/esm5/components/data-list/data-list.module.js +2 -2
  387. package/esm5/components/data-list/index.js +2 -2
  388. package/esm5/components/data-list/option/option.component.js +4 -4
  389. package/esm5/components/dialog/dialog.component.js +3 -3
  390. package/esm5/components/dialog/dialog.directive.js +18 -43
  391. package/esm5/components/dialog/dialog.module.js +1 -1
  392. package/esm5/components/dialog/dialog.service.js +1 -1
  393. package/esm5/components/dropdown-box/dropdown-box.component.js +1 -1
  394. package/esm5/components/dropdown-box/dropdown-box.module.js +1 -1
  395. package/esm5/components/error/error.component.js +1 -1
  396. package/esm5/components/error/error.module.js +1 -1
  397. package/esm5/components/expand/expand.component.js +4 -3
  398. package/esm5/components/expand/expand.module.js +2 -2
  399. package/esm5/components/group/group.component.js +1 -1
  400. package/esm5/components/group/group.module.js +1 -1
  401. package/esm5/components/hints-host/hint-box/hint-box.component.js +3 -3
  402. package/esm5/components/hints-host/hint-box/hint-box.module.js +1 -1
  403. package/esm5/components/hints-host/hints-host.component.js +3 -3
  404. package/esm5/components/hints-host/hints-host.module.js +9 -3
  405. package/esm5/components/hints-host/index.js +3 -3
  406. package/esm5/components/hosted-dropdown/hosted-dropdown.component.js +4 -17
  407. package/esm5/components/hosted-dropdown/hosted-dropdown.module.js +2 -2
  408. package/esm5/components/index.js +2 -2
  409. package/esm5/components/label/label.component.js +2 -2
  410. package/esm5/components/label/label.module.js +1 -1
  411. package/esm5/components/link/link.component.js +1 -1
  412. package/esm5/components/loader/loader.component.js +3 -3
  413. package/esm5/components/loader/loader.module.js +1 -1
  414. package/esm5/components/notification/notification.component.js +1 -1
  415. package/esm5/components/primitive-calendar/primitive-calendar.component.js +3 -3
  416. package/esm5/components/primitive-calendar/primitive-calendar.module.js +1 -1
  417. package/esm5/components/primitive-checkbox/primitive-checkbox.component.js +1 -1
  418. package/esm5/components/primitive-spin-button/primitive-spin-button.component.js +2 -2
  419. package/esm5/components/primitive-textfield/index.js +2 -1
  420. package/esm5/components/primitive-textfield/primitive-textfield.component.js +43 -104
  421. package/esm5/components/primitive-textfield/primitive-textfield.module.js +7 -2
  422. package/esm5/components/primitive-textfield/primitive-textfield.providers.js +1 -1
  423. package/esm5/components/primitive-textfield/value-decoration/value-decoration.component.js +99 -0
  424. package/esm5/components/primitive-year-picker/primitive-year-picker.component.js +3 -3
  425. package/esm5/components/root/root.module.js +1 -1
  426. package/esm5/components/scroll-controls/index.js +2 -2
  427. package/esm5/components/scroll-controls/scroll-controls.component.js +2 -2
  428. package/esm5/components/scroll-controls/scroll-controls.module.js +2 -2
  429. package/esm5/components/scrollbar/index.js +2 -2
  430. package/esm5/components/scrollbar/scrollable.directive.js +17 -5
  431. package/esm5/components/scrollbar/scrollbar.component.js +20 -22
  432. package/esm5/components/scrollbar/scrollbar.module.js +1 -1
  433. package/esm5/components/svg/svg.module.js +1 -1
  434. package/esm5/components/theme-night/theme-night.module.js +1 -1
  435. package/esm5/components/tooltip/tooltip.component.js +1 -1
  436. package/esm5/components/wrapper/wrapper.component.js +1 -1
  437. package/esm5/components/wrapper/wrapper.module.js +1 -1
  438. package/esm5/constants/events.js +6 -1
  439. package/esm5/constants/index.js +2 -2
  440. package/esm5/constants/media.js +2 -1
  441. package/esm5/constants/regexp.js +2 -1
  442. package/esm5/constants/version.js +2 -2
  443. package/esm5/directives/border/border.directive.js +51 -0
  444. package/esm5/directives/border/border.module.js +16 -0
  445. package/esm5/directives/border/index.js +3 -0
  446. package/esm5/directives/border/taiga-ui-core-directives-border.js +5 -0
  447. package/esm5/directives/color/color.module.js +1 -1
  448. package/esm5/directives/color/index.js +2 -2
  449. package/esm5/directives/described-by/described-by.module.js +1 -1
  450. package/esm5/directives/dropdown-controller/dropdown-controller.directive.js +1 -1
  451. package/esm5/directives/dropdown-controller/dropdown-controller.module.js +1 -1
  452. package/esm5/directives/dropdown-controller/dropdown-controller.provider.js +1 -1
  453. package/esm5/directives/dropdown-controller/dropdown-controller.token.js +1 -1
  454. package/esm5/directives/hint/hint.directive.js +10 -7
  455. package/esm5/directives/hint/hint.module.js +1 -1
  456. package/esm5/directives/hint-controller/hint-controller.directive.js +1 -1
  457. package/esm5/directives/hint-controller/hint-controller.module.js +1 -1
  458. package/esm5/directives/hint-controller/hint-controller.provider.js +1 -1
  459. package/esm5/directives/hint-controller/hint-controller.token.js +1 -1
  460. package/esm5/directives/index.js +3 -2
  461. package/esm5/directives/manual-hint/manual-hint.directive.js +10 -7
  462. package/esm5/directives/manual-hint/manual-hint.module.js +1 -1
  463. package/esm5/directives/mask-accessor/mask-accessor.module.js +1 -1
  464. package/esm5/directives/mode/mode.module.js +1 -1
  465. package/esm5/directives/pointer-hint/pointer-hint.directive.js +2 -2
  466. package/esm5/directives/pointer-hint/pointer-hint.module.js +1 -1
  467. package/esm5/directives/scroll-into-view/scroll-into-view.module.js +1 -1
  468. package/esm5/directives/table-mode/table-mode.module.js +1 -1
  469. package/esm5/directives/textfield-controller/index.js +3 -3
  470. package/esm5/directives/textfield-controller/textfield-cleaner.directive.js +4 -2
  471. package/esm5/directives/textfield-controller/textfield-controller.module.js +1 -1
  472. package/esm5/directives/textfield-controller/textfield-controller.provider.js +2 -2
  473. package/esm5/directives/textfield-controller/textfield-size.directive.js +4 -2
  474. package/esm5/directives/textfield-controller/textfield-type.directive.js +4 -2
  475. package/esm5/directives/textfield-controller/textfield.controller.js +1 -1
  476. package/esm5/interfaces/dialog-context.js +1 -1
  477. package/esm5/interfaces/index.js +1 -1
  478. package/esm5/interfaces/media.js +1 -0
  479. package/esm5/internal/primitive-year-month-pagination/primitive-year-month-pagination.component.js +2 -2
  480. package/esm5/internal/svg-defs-host/svg-defs-host.module.js +1 -1
  481. package/esm5/mask/index.js +1 -1
  482. package/esm5/modules/notifications/index.js +3 -3
  483. package/esm5/modules/notifications/notification-alert/Notification-alert.js +1 -1
  484. package/esm5/modules/notifications/notification-alert/notification-alert.component.js +2 -2
  485. package/esm5/modules/notifications/notifications-host/notifications-host.component.js +2 -2
  486. package/esm5/modules/notifications/notifications.module.js +1 -1
  487. package/esm5/modules/notifications/notifications.service.js +1 -1
  488. package/esm5/pipes/calendar-sheet/calendar-sheet.module.js +1 -1
  489. package/esm5/pipes/calendar-sheet/calendar-sheet.pipe.js +1 -1
  490. package/esm5/pipes/calendar-sheet/index.js +2 -2
  491. package/esm5/pipes/format-number/format-number.pipe.js +1 -1
  492. package/esm5/pipes/index.js +2 -2
  493. package/esm5/pipes/month/month.module.js +1 -1
  494. package/esm5/pipes/pluralize/pluralize.module.js +1 -1
  495. package/esm5/providers/index.js +2 -2
  496. package/esm5/services/hint.service.js +1 -1
  497. package/esm5/tokens/animation-options.js +1 -1
  498. package/esm5/tokens/index.js +5 -4
  499. package/esm5/tokens/media.js +9 -0
  500. package/esm5/tokens/ordered-short-week-days.js +1 -1
  501. package/esm5/types/marker-handler.js +1 -1
  502. package/esm5/utils/dom/process-icon.js +4 -2
  503. package/esm5/utils/mask/create-number-mask.js +30 -10
  504. package/esm5/utils/miscellaneous/get-border.js +3 -5
  505. package/fesm2015/taiga-ui-core-abstract.js +4 -2
  506. package/fesm2015/taiga-ui-core-abstract.js.map +1 -1
  507. package/fesm2015/taiga-ui-core-components-button.js +21 -9
  508. package/fesm2015/taiga-ui-core-components-button.js.map +1 -1
  509. package/fesm2015/taiga-ui-core-components-calendar.js +1 -1
  510. package/fesm2015/taiga-ui-core-components-calendar.js.map +1 -1
  511. package/fesm2015/taiga-ui-core-components-data-list.js +6 -5
  512. package/fesm2015/taiga-ui-core-components-data-list.js.map +1 -1
  513. package/fesm2015/taiga-ui-core-components-dialog.js +16 -37
  514. package/fesm2015/taiga-ui-core-components-dialog.js.map +1 -1
  515. package/fesm2015/taiga-ui-core-components-dropdown-box.js +1 -1
  516. package/fesm2015/taiga-ui-core-components-dropdown-box.js.map +1 -1
  517. package/fesm2015/taiga-ui-core-components-error.js +1 -1
  518. package/fesm2015/taiga-ui-core-components-error.js.map +1 -1
  519. package/fesm2015/taiga-ui-core-components-expand.js +3 -2
  520. package/fesm2015/taiga-ui-core-components-expand.js.map +1 -1
  521. package/fesm2015/taiga-ui-core-components-group.js.map +1 -1
  522. package/fesm2015/taiga-ui-core-components-hints-host.js +16 -10
  523. package/fesm2015/taiga-ui-core-components-hints-host.js.map +1 -1
  524. package/fesm2015/taiga-ui-core-components-hosted-dropdown.js +3 -12
  525. package/fesm2015/taiga-ui-core-components-hosted-dropdown.js.map +1 -1
  526. package/fesm2015/taiga-ui-core-components-label.js +1 -1
  527. package/fesm2015/taiga-ui-core-components-label.js.map +1 -1
  528. package/fesm2015/taiga-ui-core-components-link.js +1 -1
  529. package/fesm2015/taiga-ui-core-components-loader.js +2 -2
  530. package/fesm2015/taiga-ui-core-components-loader.js.map +1 -1
  531. package/fesm2015/taiga-ui-core-components-notification.js +1 -1
  532. package/fesm2015/taiga-ui-core-components-primitive-calendar.js +2 -2
  533. package/fesm2015/taiga-ui-core-components-primitive-calendar.js.map +1 -1
  534. package/fesm2015/taiga-ui-core-components-primitive-checkbox.js.map +1 -1
  535. package/fesm2015/taiga-ui-core-components-primitive-spin-button.js +2 -2
  536. package/fesm2015/taiga-ui-core-components-primitive-textfield.js +102 -69
  537. package/fesm2015/taiga-ui-core-components-primitive-textfield.js.map +1 -1
  538. package/fesm2015/taiga-ui-core-components-primitive-year-picker.js +2 -2
  539. package/fesm2015/taiga-ui-core-components-primitive-year-picker.js.map +1 -1
  540. package/fesm2015/taiga-ui-core-components-root.js.map +1 -1
  541. package/fesm2015/taiga-ui-core-components-scroll-controls.js +56 -56
  542. package/fesm2015/taiga-ui-core-components-scroll-controls.js.map +1 -1
  543. package/fesm2015/taiga-ui-core-components-scrollbar.js +49 -33
  544. package/fesm2015/taiga-ui-core-components-scrollbar.js.map +1 -1
  545. package/fesm2015/taiga-ui-core-components-svg.js.map +1 -1
  546. package/fesm2015/taiga-ui-core-components-theme-night.js.map +1 -1
  547. package/fesm2015/taiga-ui-core-components-tooltip.js +1 -1
  548. package/fesm2015/taiga-ui-core-components-wrapper.js +1 -1
  549. package/fesm2015/taiga-ui-core-components-wrapper.js.map +1 -1
  550. package/fesm2015/taiga-ui-core-components.js +1 -1
  551. package/fesm2015/taiga-ui-core-constants.js +11 -4
  552. package/fesm2015/taiga-ui-core-constants.js.map +1 -1
  553. package/fesm2015/taiga-ui-core-directives-border.js +57 -0
  554. package/fesm2015/taiga-ui-core-directives-border.js.map +1 -0
  555. package/fesm2015/taiga-ui-core-directives-color.js.map +1 -1
  556. package/fesm2015/taiga-ui-core-directives-described-by.js.map +1 -1
  557. package/fesm2015/taiga-ui-core-directives-dropdown-controller.js.map +1 -1
  558. package/fesm2015/taiga-ui-core-directives-hint-controller.js.map +1 -1
  559. package/fesm2015/taiga-ui-core-directives-hint.js +9 -6
  560. package/fesm2015/taiga-ui-core-directives-hint.js.map +1 -1
  561. package/fesm2015/taiga-ui-core-directives-manual-hint.js +9 -6
  562. package/fesm2015/taiga-ui-core-directives-manual-hint.js.map +1 -1
  563. package/fesm2015/taiga-ui-core-directives-mask-accessor.js.map +1 -1
  564. package/fesm2015/taiga-ui-core-directives-mode.js.map +1 -1
  565. package/fesm2015/taiga-ui-core-directives-pointer-hint.js +1 -1
  566. package/fesm2015/taiga-ui-core-directives-pointer-hint.js.map +1 -1
  567. package/fesm2015/taiga-ui-core-directives-scroll-into-view.js.map +1 -1
  568. package/fesm2015/taiga-ui-core-directives-table-mode.js.map +1 -1
  569. package/fesm2015/taiga-ui-core-directives-textfield-controller.js +9 -3
  570. package/fesm2015/taiga-ui-core-directives-textfield-controller.js.map +1 -1
  571. package/fesm2015/taiga-ui-core-directives.js +2 -1
  572. package/fesm2015/taiga-ui-core-directives.js.map +1 -1
  573. package/fesm2015/taiga-ui-core-internal-primitive-year-month-pagination.js +1 -1
  574. package/fesm2015/taiga-ui-core-internal-primitive-year-month-pagination.js.map +1 -1
  575. package/fesm2015/taiga-ui-core-internal-svg-defs-host.js.map +1 -1
  576. package/fesm2015/taiga-ui-core-modules-notifications.js +24 -24
  577. package/fesm2015/taiga-ui-core-modules-notifications.js.map +1 -1
  578. package/fesm2015/taiga-ui-core-pipes-calendar-sheet.js.map +1 -1
  579. package/fesm2015/taiga-ui-core-pipes-format-number.js.map +1 -1
  580. package/fesm2015/taiga-ui-core-pipes-month.js.map +1 -1
  581. package/fesm2015/taiga-ui-core-pipes-pluralize.js.map +1 -1
  582. package/fesm2015/taiga-ui-core-pipes.js +1 -1
  583. package/fesm2015/taiga-ui-core-providers.js +7 -7
  584. package/fesm2015/taiga-ui-core-providers.js.map +1 -1
  585. package/fesm2015/taiga-ui-core-services.js.map +1 -1
  586. package/fesm2015/taiga-ui-core-tokens.js +28 -20
  587. package/fesm2015/taiga-ui-core-tokens.js.map +1 -1
  588. package/fesm2015/taiga-ui-core-utils-dom.js +3 -1
  589. package/fesm2015/taiga-ui-core-utils-dom.js.map +1 -1
  590. package/fesm2015/taiga-ui-core-utils-mask.js +27 -9
  591. package/fesm2015/taiga-ui-core-utils-mask.js.map +1 -1
  592. package/fesm2015/taiga-ui-core-utils-miscellaneous.js +2 -4
  593. package/fesm2015/taiga-ui-core-utils-miscellaneous.js.map +1 -1
  594. package/fesm5/taiga-ui-core-abstract.js +4 -2
  595. package/fesm5/taiga-ui-core-abstract.js.map +1 -1
  596. package/fesm5/taiga-ui-core-components-button.js +21 -9
  597. package/fesm5/taiga-ui-core-components-button.js.map +1 -1
  598. package/fesm5/taiga-ui-core-components-calendar.js +1 -1
  599. package/fesm5/taiga-ui-core-components-calendar.js.map +1 -1
  600. package/fesm5/taiga-ui-core-components-data-list.js +6 -5
  601. package/fesm5/taiga-ui-core-components-data-list.js.map +1 -1
  602. package/fesm5/taiga-ui-core-components-dialog.js +20 -44
  603. package/fesm5/taiga-ui-core-components-dialog.js.map +1 -1
  604. package/fesm5/taiga-ui-core-components-dropdown-box.js +1 -1
  605. package/fesm5/taiga-ui-core-components-dropdown-box.js.map +1 -1
  606. package/fesm5/taiga-ui-core-components-error.js +1 -1
  607. package/fesm5/taiga-ui-core-components-error.js.map +1 -1
  608. package/fesm5/taiga-ui-core-components-expand.js +3 -2
  609. package/fesm5/taiga-ui-core-components-expand.js.map +1 -1
  610. package/fesm5/taiga-ui-core-components-group.js.map +1 -1
  611. package/fesm5/taiga-ui-core-components-hints-host.js +16 -10
  612. package/fesm5/taiga-ui-core-components-hints-host.js.map +1 -1
  613. package/fesm5/taiga-ui-core-components-hosted-dropdown.js +3 -16
  614. package/fesm5/taiga-ui-core-components-hosted-dropdown.js.map +1 -1
  615. package/fesm5/taiga-ui-core-components-label.js +1 -1
  616. package/fesm5/taiga-ui-core-components-label.js.map +1 -1
  617. package/fesm5/taiga-ui-core-components-link.js +1 -1
  618. package/fesm5/taiga-ui-core-components-loader.js +2 -2
  619. package/fesm5/taiga-ui-core-components-loader.js.map +1 -1
  620. package/fesm5/taiga-ui-core-components-notification.js +1 -1
  621. package/fesm5/taiga-ui-core-components-primitive-calendar.js +2 -2
  622. package/fesm5/taiga-ui-core-components-primitive-calendar.js.map +1 -1
  623. package/fesm5/taiga-ui-core-components-primitive-checkbox.js.map +1 -1
  624. package/fesm5/taiga-ui-core-components-primitive-spin-button.js +2 -2
  625. package/fesm5/taiga-ui-core-components-primitive-textfield.js +141 -106
  626. package/fesm5/taiga-ui-core-components-primitive-textfield.js.map +1 -1
  627. package/fesm5/taiga-ui-core-components-primitive-year-picker.js +2 -2
  628. package/fesm5/taiga-ui-core-components-primitive-year-picker.js.map +1 -1
  629. package/fesm5/taiga-ui-core-components-root.js.map +1 -1
  630. package/fesm5/taiga-ui-core-components-scroll-controls.js +63 -63
  631. package/fesm5/taiga-ui-core-components-scroll-controls.js.map +1 -1
  632. package/fesm5/taiga-ui-core-components-scrollbar.js +51 -41
  633. package/fesm5/taiga-ui-core-components-scrollbar.js.map +1 -1
  634. package/fesm5/taiga-ui-core-components-svg.js.map +1 -1
  635. package/fesm5/taiga-ui-core-components-theme-night.js.map +1 -1
  636. package/fesm5/taiga-ui-core-components-tooltip.js +1 -1
  637. package/fesm5/taiga-ui-core-components-wrapper.js +1 -1
  638. package/fesm5/taiga-ui-core-components-wrapper.js.map +1 -1
  639. package/fesm5/taiga-ui-core-components.js +1 -1
  640. package/fesm5/taiga-ui-core-constants.js +11 -4
  641. package/fesm5/taiga-ui-core-constants.js.map +1 -1
  642. package/fesm5/taiga-ui-core-directives-border.js +69 -0
  643. package/fesm5/taiga-ui-core-directives-border.js.map +1 -0
  644. package/fesm5/taiga-ui-core-directives-color.js.map +1 -1
  645. package/fesm5/taiga-ui-core-directives-described-by.js.map +1 -1
  646. package/fesm5/taiga-ui-core-directives-dropdown-controller.js.map +1 -1
  647. package/fesm5/taiga-ui-core-directives-hint-controller.js.map +1 -1
  648. package/fesm5/taiga-ui-core-directives-hint.js +9 -6
  649. package/fesm5/taiga-ui-core-directives-hint.js.map +1 -1
  650. package/fesm5/taiga-ui-core-directives-manual-hint.js +9 -6
  651. package/fesm5/taiga-ui-core-directives-manual-hint.js.map +1 -1
  652. package/fesm5/taiga-ui-core-directives-mask-accessor.js.map +1 -1
  653. package/fesm5/taiga-ui-core-directives-mode.js.map +1 -1
  654. package/fesm5/taiga-ui-core-directives-pointer-hint.js +1 -1
  655. package/fesm5/taiga-ui-core-directives-pointer-hint.js.map +1 -1
  656. package/fesm5/taiga-ui-core-directives-scroll-into-view.js.map +1 -1
  657. package/fesm5/taiga-ui-core-directives-table-mode.js.map +1 -1
  658. package/fesm5/taiga-ui-core-directives-textfield-controller.js +9 -3
  659. package/fesm5/taiga-ui-core-directives-textfield-controller.js.map +1 -1
  660. package/fesm5/taiga-ui-core-directives.js +2 -1
  661. package/fesm5/taiga-ui-core-directives.js.map +1 -1
  662. package/fesm5/taiga-ui-core-internal-primitive-year-month-pagination.js +1 -1
  663. package/fesm5/taiga-ui-core-internal-primitive-year-month-pagination.js.map +1 -1
  664. package/fesm5/taiga-ui-core-internal-svg-defs-host.js.map +1 -1
  665. package/fesm5/taiga-ui-core-modules-notifications.js +25 -25
  666. package/fesm5/taiga-ui-core-modules-notifications.js.map +1 -1
  667. package/fesm5/taiga-ui-core-pipes-calendar-sheet.js.map +1 -1
  668. package/fesm5/taiga-ui-core-pipes-format-number.js.map +1 -1
  669. package/fesm5/taiga-ui-core-pipes-month.js.map +1 -1
  670. package/fesm5/taiga-ui-core-pipes-pluralize.js.map +1 -1
  671. package/fesm5/taiga-ui-core-pipes.js +1 -1
  672. package/fesm5/taiga-ui-core-providers.js +7 -7
  673. package/fesm5/taiga-ui-core-providers.js.map +1 -1
  674. package/fesm5/taiga-ui-core-services.js.map +1 -1
  675. package/fesm5/taiga-ui-core-tokens.js +28 -20
  676. package/fesm5/taiga-ui-core-tokens.js.map +1 -1
  677. package/fesm5/taiga-ui-core-utils-dom.js +3 -1
  678. package/fesm5/taiga-ui-core-utils-dom.js.map +1 -1
  679. package/fesm5/taiga-ui-core-utils-mask.js +30 -10
  680. package/fesm5/taiga-ui-core-utils-mask.js.map +1 -1
  681. package/fesm5/taiga-ui-core-utils-miscellaneous.js +2 -4
  682. package/fesm5/taiga-ui-core-utils-miscellaneous.js.map +1 -1
  683. package/interfaces/index.d.ts +2 -1
  684. package/interfaces/media.d.ts +6 -0
  685. package/interfaces/taiga-ui-core-interfaces.metadata.json +1 -1
  686. package/internal/primitive-year-month-pagination/taiga-ui-core-internal-primitive-year-month-pagination.metadata.json +1 -1
  687. package/internal/svg-defs-host/taiga-ui-core-internal-svg-defs-host.metadata.json +1 -1
  688. package/mask/index.d.ts +1 -1
  689. package/mask/taiga-ui-core-mask.metadata.json +1 -1
  690. package/modules/notifications/index.d.ts +2 -2
  691. package/modules/notifications/taiga-ui-core-modules-notifications.metadata.json +1 -1
  692. package/package.json +5 -5
  693. package/pipes/calendar-sheet/index.d.ts +1 -1
  694. package/pipes/calendar-sheet/taiga-ui-core-pipes-calendar-sheet.metadata.json +1 -1
  695. package/pipes/index.d.ts +1 -1
  696. package/pipes/month/taiga-ui-core-pipes-month.metadata.json +1 -1
  697. package/pipes/pluralize/taiga-ui-core-pipes-pluralize.metadata.json +1 -1
  698. package/pipes/taiga-ui-core-pipes.metadata.json +1 -1
  699. package/providers/index.d.ts +1 -1
  700. package/providers/taiga-ui-core-providers.metadata.json +1 -1
  701. package/services/taiga-ui-core-services.metadata.json +1 -1
  702. package/styles/basic/main.less +2 -4
  703. package/styles/markup/tui-autofill.less +2 -0
  704. package/styles/markup/tui-container-old.less +69 -0
  705. package/styles/markup/tui-form-old.less +141 -0
  706. package/styles/markup/tui-form.less +12 -12
  707. package/styles/markup/tui-group-old.less +322 -0
  708. package/styles/markup/tui-group.less +2 -2
  709. package/styles/markup/tui-row-old.less +157 -0
  710. package/styles/markup/tui-table.less +2 -2
  711. package/styles/mixins/mixins.less +8 -3
  712. package/styles/mixins/picker.less +1 -1
  713. package/styles/mixins/textfield.less +37 -78
  714. package/styles/taiga-ui-global-old.less +18 -0
  715. package/styles/taiga-ui-local-old.less +7 -0
  716. package/styles/theme/variables.less +4 -0
  717. package/styles/theme/wrapper/table.less +4 -0
  718. package/styles/variables/media-old.less +48 -0
  719. package/styles/variables/media.less +4 -4
  720. package/tokens/index.d.ts +4 -3
  721. package/tokens/media.d.ts +3 -0
  722. package/tokens/taiga-ui-core-tokens.metadata.json +1 -1
  723. package/utils/mask/create-number-mask.d.ts +1 -0
  724. package/utils/miscellaneous/get-border.d.ts +1 -1
@@ -1,20 +1,24 @@
1
1
  import { __extends, __decorate, __param } from 'tslib';
2
- import { forwardRef, EventEmitter, Inject, Input, HostBinding, Output, ViewChild, ContentChildren, Component, ChangeDetectionStrategy, NgModule } from '@angular/core';
2
+ import { forwardRef, EventEmitter, Inject, Input, HostBinding, Output, ViewChild, ContentChildren, Component, ChangeDetectionStrategy, ElementRef, NgModule } from '@angular/core';
3
3
  import { TUI_FOCUSABLE_ITEM_ACCESSOR, isNativeFocused, setNativeFocused, tuiDefaultProp, tuiPure, AbstractTuiInteractive, TuiFocusableModule, TuiFocusedModule, TuiHoveredModule, TuiInputModeModule, TuiAutofilledModule, TuiPreventDefaultModule } from '@taiga-ui/cdk';
4
4
  import { HINT_CONTROLLER_PROVIDER, TuiHintControllerDirective, TUI_HINT_WATCHED_CONTROLLER } from '@taiga-ui/core/directives/hint-controller';
5
5
  import { TEXTFIELD_CONTROLLER_PROVIDER, TuiTextfieldController, TUI_TEXTFIELD_WATCHED_CONTROLLER } from '@taiga-ui/core/directives/textfield-controller';
6
6
  import { TUI_MODE, TUI_TEXTFIELD_APPEARANCE } from '@taiga-ui/core/tokens';
7
- import { getBorder, sizeBigger } from '@taiga-ui/core/utils/miscellaneous';
7
+ import { getBorder } from '@taiga-ui/core/utils/miscellaneous';
8
8
  import { PolymorpheusOutletComponent, PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
9
- import { Observable } from 'rxjs';
9
+ import { fromEvent, Observable, defer, EMPTY } from 'rxjs';
10
+ import { map, startWith, distinctUntilChanged } from 'rxjs/operators';
10
11
  import { MODE_PROVIDER } from '@taiga-ui/core/providers';
11
12
  import { CommonModule } from '@angular/common';
12
13
  import { FormsModule } from '@angular/forms';
14
+ import { MutationObserverDirective, MutationObserverModule } from '@ng-web-apis/mutation-observer';
13
15
  import { TuiSvgModule } from '@taiga-ui/core/components/svg';
14
16
  import { TuiTooltipModule } from '@taiga-ui/core/components/tooltip';
15
17
  import { TuiWrapperModule } from '@taiga-ui/core/components/wrapper';
18
+ import { TuiBorderModule } from '@taiga-ui/core/directives/border';
16
19
  import { TuiDescribedByModule } from '@taiga-ui/core/directives/described-by';
17
20
  import { TuiMaskAccessorModule } from '@taiga-ui/core/directives/mask-accessor';
21
+ import { TuiTextfieldController as TuiTextfieldController$1, TUI_TEXTFIELD_WATCHED_CONTROLLER as TUI_TEXTFIELD_WATCHED_CONTROLLER$1 } from '@taiga-ui/core/directives';
18
22
 
19
23
  var TUI_PRIMITIVE_TEXTFIELD_PROVIDERS = [
20
24
  {
@@ -44,6 +48,7 @@ var TuiPrimitiveTextfieldComponent = /** @class */ (function (_super) {
44
48
  _this.readOnly = false;
45
49
  _this.invalid = false;
46
50
  _this.disabled = false;
51
+ _this.prefix = '';
47
52
  _this.postfix = '';
48
53
  _this.value = '';
49
54
  _this.valueChange = new EventEmitter();
@@ -103,131 +108,77 @@ var TuiPrimitiveTextfieldComponent = /** @class */ (function (_super) {
103
108
  enumerable: true,
104
109
  configurable: true
105
110
  });
106
- Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "hasTooltip", {
107
- get: function () {
108
- return !!this.hintController && !!this.hintController.content && !this.disabled;
109
- },
110
- enumerable: true,
111
- configurable: true
112
- });
113
- Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "hasCustomContent", {
111
+ Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "hasValue", {
114
112
  get: function () {
115
- return !!this.controller.customContent;
113
+ return !!this.value;
116
114
  },
117
115
  enumerable: true,
118
116
  configurable: true
119
117
  });
120
- Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "iconPaddingLeft", {
118
+ Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "hasCleaner", {
121
119
  get: function () {
122
- return this.size === 's' ? ICON_PADDING_S : ICON_PADDING;
120
+ return (this.controller.cleaner && this.hasValue && !this.disabled && !this.readOnly);
123
121
  },
124
122
  enumerable: true,
125
123
  configurable: true
126
124
  });
127
- Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "borderLeft", {
125
+ Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "hasTooltip", {
128
126
  get: function () {
129
- return ((this.iconAlignLeft ? this.iconPaddingLeft : 0) +
130
- getBorder(sizeBigger(this.size, 'm'), false));
127
+ var _a;
128
+ return !!((_a = this.hintController) === null || _a === void 0 ? void 0 : _a.content) && !this.disabled;
131
129
  },
132
130
  enumerable: true,
133
131
  configurable: true
134
132
  });
135
- Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "borderRight", {
133
+ Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "hasCustomContent", {
136
134
  get: function () {
137
- return getBorder(sizeBigger(this.size, 'm'), this.iconAlignRight, this.hasCleaner, this.hasTooltip, this.hasCustomContent);
135
+ return !!this.controller.customContent;
138
136
  },
139
137
  enumerable: true,
140
138
  configurable: true
141
139
  });
142
140
  Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "hasPlaceholder", {
143
141
  get: function () {
144
- return ((this.big && !this.labelOutside) ||
145
- (!this.hasValue && !this.hasExampleText && !this.hasPostfix));
142
+ var hasDecor = this.controller.exampleText || this.prefix || this.postfix;
143
+ var showDecor = hasDecor && !this.readOnly && this.computedFocused;
144
+ var placeholderVisible = !this.hasValue && !showDecor;
145
+ return this.placeholderRaisable || placeholderVisible;
146
146
  },
147
147
  enumerable: true,
148
148
  configurable: true
149
149
  });
150
150
  Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "placeholderRaised", {
151
151
  get: function () {
152
- return (this.big &&
153
- !this.labelOutside &&
152
+ return (this.placeholderRaisable &&
154
153
  ((this.computedFocused && !this.readOnly) || this.hasValue || this.autofilled));
155
154
  },
156
155
  enumerable: true,
157
156
  configurable: true
158
157
  });
159
- Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "iconAlignLeft", {
160
- get: function () {
161
- return this.hasIcon && this.iconAlign === 'left';
162
- },
163
- enumerable: true,
164
- configurable: true
165
- });
166
- Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "iconAlignRight", {
167
- get: function () {
168
- return this.hasIcon && this.iconAlign === 'right';
169
- },
170
- enumerable: true,
171
- configurable: true
172
- });
173
- Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "hasValue", {
174
- get: function () {
175
- return !!this.value;
176
- },
177
- enumerable: true,
178
- configurable: true
179
- });
180
- Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "hasCleaner", {
181
- get: function () {
182
- return (this.controller.cleaner && this.hasValue && !this.disabled && !this.readOnly);
183
- },
184
- enumerable: true,
185
- configurable: true
186
- });
187
- Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "rightAligned", {
188
- get: function () {
189
- return (this.appearance === "table" /* Table */ &&
190
- (this.controller.inputMode === 'numeric' ||
191
- this.controller.inputMode === 'decimal'));
192
- },
193
- enumerable: true,
194
- configurable: true
195
- });
196
- Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "hasValueDecoration", {
197
- get: function () {
198
- var fillerOrExampleShown = this.computedFocused && !this.readOnly && this.hasFillerOrExampleText;
199
- return fillerOrExampleShown || this.hasPostfix;
200
- },
201
- enumerable: true,
202
- configurable: true
203
- });
204
- Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "hasPostfix", {
158
+ Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "borderLeft", {
205
159
  get: function () {
206
- var isPostfixAllowed = this.hasValue || (this.computedFocused && !this.readOnly);
207
- return isPostfixAllowed && !!this.postfix;
160
+ return this.iconAlignLeft ? this.iconPaddingLeft : 0;
208
161
  },
209
162
  enumerable: true,
210
163
  configurable: true
211
164
  });
212
- Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "hasFillerOrExampleText", {
165
+ Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "borderRight", {
213
166
  get: function () {
214
- return this.hasValue ? !!this.computedFiller : !!this.controller.exampleText;
167
+ return getBorder(this.iconAlignRight, this.hasCleaner, this.hasTooltip, this.hasCustomContent);
215
168
  },
216
169
  enumerable: true,
217
170
  configurable: true
218
171
  });
219
- Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "postfixShifted", {
172
+ Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "iconAlignLeft", {
220
173
  get: function () {
221
- return this.postfix !== '%' && (this.hasFillerOrExampleText || this.hasValue);
174
+ return this.hasIcon && this.iconAlign === 'left';
222
175
  },
223
176
  enumerable: true,
224
177
  configurable: true
225
178
  });
226
- Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "computedFiller", {
179
+ Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "iconAlignRight", {
227
180
  get: function () {
228
- return this.hasExampleText
229
- ? this.controller.exampleText
230
- : this.filler.slice(this.value.length);
181
+ return this.hasIcon && this.iconAlign === 'right';
231
182
  },
232
183
  enumerable: true,
233
184
  configurable: true
@@ -242,13 +193,9 @@ var TuiPrimitiveTextfieldComponent = /** @class */ (function (_super) {
242
193
  enumerable: true,
243
194
  configurable: true
244
195
  });
245
- Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "context", {
246
- get: function () {
247
- return this.getContext(this.size);
248
- },
249
- enumerable: true,
250
- configurable: true
251
- });
196
+ TuiPrimitiveTextfieldComponent.prototype.getIndent$ = function (element) {
197
+ return fromEvent(element, 'scroll').pipe(map(function () { return -1 * element.scrollLeft; }));
198
+ };
252
199
  TuiPrimitiveTextfieldComponent.prototype.clear = function () {
253
200
  if (this.nativeFocusableElement) {
254
201
  this.nativeFocusableElement.value = '';
@@ -275,33 +222,27 @@ var TuiPrimitiveTextfieldComponent = /** @class */ (function (_super) {
275
222
  TuiPrimitiveTextfieldComponent.prototype.onAutofilled = function (autofilled) {
276
223
  this.updateAutofilled(autofilled);
277
224
  };
278
- Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "big", {
225
+ Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "iconPaddingLeft", {
279
226
  get: function () {
280
- return this.size !== 's';
227
+ return this.size === 's' ? ICON_PADDING_S : ICON_PADDING;
281
228
  },
282
229
  enumerable: true,
283
230
  configurable: true
284
231
  });
285
- Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "hasIcon", {
232
+ Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "placeholderRaisable", {
286
233
  get: function () {
287
- return !!this.iconContent;
234
+ return this.size !== 's' && !this.labelOutside;
288
235
  },
289
236
  enumerable: true,
290
237
  configurable: true
291
238
  });
292
- Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "hasExampleText", {
239
+ Object.defineProperty(TuiPrimitiveTextfieldComponent.prototype, "hasIcon", {
293
240
  get: function () {
294
- return (!!this.controller.exampleText &&
295
- this.computedFocused &&
296
- !this.hasValue &&
297
- !this.readOnly);
241
+ return !!this.iconContent;
298
242
  },
299
243
  enumerable: true,
300
244
  configurable: true
301
245
  });
302
- TuiPrimitiveTextfieldComponent.prototype.getContext = function ($implicit) {
303
- return { $implicit: $implicit };
304
- };
305
246
  TuiPrimitiveTextfieldComponent.prototype.updateAutofilled = function (autofilled) {
306
247
  if (this.autofilled === autofilled) {
307
248
  return;
@@ -348,6 +289,10 @@ var TuiPrimitiveTextfieldComponent = /** @class */ (function (_super) {
348
289
  Input(),
349
290
  tuiDefaultProp()
350
291
  ], TuiPrimitiveTextfieldComponent.prototype, "disabled", void 0);
292
+ __decorate([
293
+ Input(),
294
+ tuiDefaultProp()
295
+ ], TuiPrimitiveTextfieldComponent.prototype, "prefix", void 0);
351
296
  __decorate([
352
297
  Input(),
353
298
  tuiDefaultProp()
@@ -377,22 +322,19 @@ var TuiPrimitiveTextfieldComponent = /** @class */ (function (_super) {
377
322
  __decorate([
378
323
  HostBinding('class._invalid')
379
324
  ], TuiPrimitiveTextfieldComponent.prototype, "computedInvalid", null);
380
- __decorate([
381
- HostBinding('class._right-aligned')
382
- ], TuiPrimitiveTextfieldComponent.prototype, "rightAligned", null);
383
325
  __decorate([
384
326
  tuiPure
385
- ], TuiPrimitiveTextfieldComponent.prototype, "getContext", null);
327
+ ], TuiPrimitiveTextfieldComponent.prototype, "getIndent$", null);
386
328
  TuiPrimitiveTextfieldComponent = __decorate([
387
329
  Component({
388
330
  selector: 'tui-primitive-textfield',
389
- 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.borderLeftWidth.rem]=\"borderLeft\"\n [style.borderRightWidth.rem]=\"borderRight\"\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 (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 [style.paddingLeft.rem]=\"borderLeft\"\n [style.borderRightWidth.rem]=\"borderRight\"\n >\n <ng-content select=\"[polymorpheus-outlet]\"></ng-content>\n </div>\n <div class=\"content\">\n <div\n polymorpheus-outlet\n *ngIf=\"iconAlignLeft\"\n class=\"icon icon_left\"\n [content]=\"iconContent\"\n [context]=\"context\"\n >\n <ng-template let-iconSrc>\n <tui-svg [src]=\"iconSrc\"></tui-svg>\n </ng-template>\n </div>\n <div class=\"wrapper\">\n <span\n [class.value_visible]=\"isContextTable\"\n aria-hidden=\"true\"\n class=\"value\"\n >\n {{value}}\n </span>\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 <div\n *ngIf=\"hasValueDecoration\"\n class=\"value-decoration\"\n automation-id=\"tui-primitive-textfield__value-decoration\"\n aria-hidden=\"true\"\n >\n <span class=\"value-decoration-inner\">\n <span class=\"ghost\">{{value}}</span>\n <span automation-id=\"tui-primitive-textfield__example-text\"\n >{{computedFiller}}</span\n >\n <span\n *ngIf=\"hasPostfix\"\n class=\"postfix\"\n [class.postfix_shifted]=\"postfixShifted\"\n >{{postfix}}</span\n >\n </span>\n </div>\n </div>\n <div\n polymorpheus-outlet\n *ngIf=\"hasCustomContent\"\n class=\"custom-content\"\n automation-id=\"tui-primitive-textfield__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 <tui-svg\n *ngIf=\"hasCleaner\"\n class=\"cleaner\"\n automation-id=\"tui-primitive-textfield__cleaner\"\n src=\"tuiIconCloseLarge\"\n (click.stop)=\"clear()\"\n ></tui-svg>\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 polymorpheus-outlet\n *ngIf=\"iconAlignRight\"\n class=\"icon\"\n [content]=\"iconContent\"\n [context]=\"context\"\n >\n <ng-template let-iconSrc>\n <tui-svg [src]=\"iconSrc\"></tui-svg>\n </ng-template>\n </div>\n </div>\n</tui-wrapper>\n",
331
+ 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 <span\n aria-hidden=\"true\"\n class=\"value\"\n [class.value_visible]=\"isContextTable\"\n >\n {{ value }}\n </span>\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 [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 <tui-svg\n *ngIf=\"hasCleaner\"\n automation-id=\"tui-primitive-textfield__cleaner\"\n src=\"tuiIconCloseLarge\"\n class=\"cleaner\"\n (click.stop)=\"clear()\"\n ></tui-svg>\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",
390
332
  changeDetection: ChangeDetectionStrategy.OnPush,
391
333
  providers: TUI_PRIMITIVE_TEXTFIELD_PROVIDERS,
392
334
  host: {
393
335
  '($.data-mode.attr)': 'mode$',
394
336
  },
395
- styles: [":host{font:var(--tui-font-text-s);color:var(--tui-text-01);position:relative;display:block;border-radius:var(--tui-radius-m)}: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);border:0;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;border:solid transparent;border-width:0 .75rem;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{border-width:0 5rem 0 .75rem}:host[data-tui-host-size='l'] .input{border-width:0 1rem}: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{width:114%;transform:translateY(-.625rem) scale(.87)}: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{width:118%;transform:translateY(-.5rem) scale(.85)}.ghost{visibility:hidden;white-space:pre;text-overflow:clip}.filler{vertical-align:middle}.content{display:flex;height:100%;width:100%;padding:0 .75rem;box-sizing:border-box;align-items:center;overflow:hidden}:host[data-tui-host-size='s'] .content{padding-right:.5rem}:host[data-tui-host-size='l'] .content{padding-left:1rem}.wrapper{flex:1;min-width:0;padding-right:.25rem}.value-decoration{display:flex;align-items:center;height:1.25rem;margin:-1.25rem 0;padding:.625rem 0;box-sizing:content-box;color:var(--tui-text-03);letter-spacing:normal;text-transform:none}:host._right-aligned .value-decoration{flex-direction:row-reverse;margin-right:-.25rem}:host[data-tui-host-size='m']._label-outside .value-decoration{margin-top:-1.1875rem}:host[data-mode=onDark] .value-decoration{color:var(--tui-text-03-night)}.value-decoration-inner{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.postfix{transition-property:color;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;color:var(--tui-text-01)}.postfix_shifted{margin-left:.5ch}:host[data-mode=onDark] .postfix{color:var(--tui-text-01-night)}.placeholder{transition-property:transform,min-width,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%;height:1.25rem;font-size:.8125rem;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;color:var(--tui-text-02);transform-origin:left;letter-spacing:normal;text-transform:none}.placeholder_raised{width:114%;transform:translateY(-.625rem) scale(.87)}:host[data-tui-host-size='m'] .placeholder_raised{width:118%;transform:translateY(-.5rem) scale(.85);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']._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)}.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}:host[data-tui-host-size='s'] .icon_left{margin-right:.25rem}.value{height:0;display:none;visibility:hidden;white-space:pre}.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;padding-right:0;border:0 solid transparent;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)}.text-template{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]
337
+ 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)}.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}.value{display:none;height:0;visibility:hidden;white-space:pre}.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)}.text-template{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]
396
338
  }),
397
339
  __param(0, Inject(TUI_MODE)),
398
340
  __param(1, Inject(TUI_TEXTFIELD_APPEARANCE)),
@@ -402,6 +344,97 @@ var TuiPrimitiveTextfieldComponent = /** @class */ (function (_super) {
402
344
  return TuiPrimitiveTextfieldComponent;
403
345
  }(AbstractTuiInteractive));
404
346
 
347
+ var TuiValueDecorationComponent = /** @class */ (function () {
348
+ function TuiValueDecorationComponent(textfield, controller) {
349
+ var _this = this;
350
+ this.textfield = textfield;
351
+ this.controller = controller;
352
+ this.pre$ = defer(function () { var _a, _b; return (_b = (_a = _this.directive) === null || _a === void 0 ? void 0 : _a.waMutationObserver) !== null && _b !== void 0 ? _b : EMPTY; }).pipe(map(function () { var _a, _b; return (_b = (_a = _this.pre) === null || _a === void 0 ? void 0 : _a.nativeElement.offsetWidth) !== null && _b !== void 0 ? _b : 0; }), startWith(0), distinctUntilChanged());
353
+ }
354
+ Object.defineProperty(TuiValueDecorationComponent.prototype, "value", {
355
+ get: function () {
356
+ return this.textfield.value;
357
+ },
358
+ enumerable: true,
359
+ configurable: true
360
+ });
361
+ Object.defineProperty(TuiValueDecorationComponent.prototype, "filler", {
362
+ get: function () {
363
+ return this.focused
364
+ ? this.exampleText || this.textfield.filler.slice(this.value.length)
365
+ : '';
366
+ },
367
+ enumerable: true,
368
+ configurable: true
369
+ });
370
+ Object.defineProperty(TuiValueDecorationComponent.prototype, "prefix", {
371
+ get: function () {
372
+ return this.decorationsVisible ? this.textfield.prefix : '';
373
+ },
374
+ enumerable: true,
375
+ configurable: true
376
+ });
377
+ Object.defineProperty(TuiValueDecorationComponent.prototype, "postfix", {
378
+ get: function () {
379
+ return this.decorationsVisible ? this.computedPostfix : '';
380
+ },
381
+ enumerable: true,
382
+ configurable: true
383
+ });
384
+ Object.defineProperty(TuiValueDecorationComponent.prototype, "exampleText", {
385
+ get: function () {
386
+ return !this.value && this.focused ? this.controller.exampleText : '';
387
+ },
388
+ enumerable: true,
389
+ configurable: true
390
+ });
391
+ Object.defineProperty(TuiValueDecorationComponent.prototype, "decorationsVisible", {
392
+ get: function () {
393
+ return !!this.value || this.focused;
394
+ },
395
+ enumerable: true,
396
+ configurable: true
397
+ });
398
+ Object.defineProperty(TuiValueDecorationComponent.prototype, "focused", {
399
+ get: function () {
400
+ return this.textfield.computedFocused && !this.textfield.readOnly;
401
+ },
402
+ enumerable: true,
403
+ configurable: true
404
+ });
405
+ Object.defineProperty(TuiValueDecorationComponent.prototype, "computedPostfix", {
406
+ get: function () {
407
+ return this.textfield.postfix && (this.filler || this.value)
408
+ ? " " + this.textfield.postfix
409
+ : this.textfield.postfix;
410
+ },
411
+ enumerable: true,
412
+ configurable: true
413
+ });
414
+ TuiValueDecorationComponent.ctorParameters = function () { return [
415
+ { type: TuiPrimitiveTextfieldComponent, decorators: [{ type: Inject, args: [TuiPrimitiveTextfieldComponent,] }] },
416
+ { type: TuiTextfieldController$1, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_WATCHED_CONTROLLER$1,] }] }
417
+ ]; };
418
+ __decorate([
419
+ ViewChild('pre', { read: ElementRef, static: true })
420
+ ], TuiValueDecorationComponent.prototype, "pre", void 0);
421
+ __decorate([
422
+ ViewChild(MutationObserverDirective, { static: true })
423
+ ], TuiValueDecorationComponent.prototype, "directive", void 0);
424
+ TuiValueDecorationComponent = __decorate([
425
+ Component({
426
+ selector: 'tui-value-decoration',
427
+ template: "<span #pre subtree characterData waMutationObserver>{{ prefix }}</span>\n<span class=\"t-ghost\">{{ value }}</span>\n<span class=\"t-filler\">{{ filler }}</span>\n{{ postfix }}\n",
428
+ // It follows Change Detection of PrimitiveTextfield
429
+ changeDetection: ChangeDetectionStrategy.Default,
430
+ styles: [":host{display:block;height:1.25rem;margin:-1.25rem 0;padding:.625rem 0;box-sizing:content-box;color:var(--tui-text-01);white-space:nowrap;overflow:hidden}:host-context(tui-textfield[data-mode=onDark]) :host{color:var(--tui-text-01-night)}.t-ghost{visibility:hidden;white-space:pre;text-overflow:clip}.t-filler{color:var(--tui-text-03)}:host-context(tui-textfield[data-mode=onDark]) .t-filler{color:var(--tui-text-03-night)}"]
431
+ }),
432
+ __param(0, Inject(TuiPrimitiveTextfieldComponent)),
433
+ __param(1, Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER$1))
434
+ ], TuiValueDecorationComponent);
435
+ return TuiValueDecorationComponent;
436
+ }());
437
+
405
438
  var TuiPrimitiveTextfieldModule = /** @class */ (function () {
406
439
  function TuiPrimitiveTextfieldModule() {
407
440
  }
@@ -422,8 +455,10 @@ var TuiPrimitiveTextfieldModule = /** @class */ (function () {
422
455
  TuiAutofilledModule,
423
456
  TuiDescribedByModule,
424
457
  TuiPreventDefaultModule,
458
+ TuiBorderModule,
459
+ MutationObserverModule,
425
460
  ],
426
- declarations: [TuiPrimitiveTextfieldComponent],
461
+ declarations: [TuiPrimitiveTextfieldComponent, TuiValueDecorationComponent],
427
462
  exports: [TuiPrimitiveTextfieldComponent],
428
463
  })
429
464
  ], TuiPrimitiveTextfieldModule);
@@ -434,5 +469,5 @@ var TuiPrimitiveTextfieldModule = /** @class */ (function () {
434
469
  * Generated bundle index. Do not edit.
435
470
  */
436
471
 
437
- export { TUI_PRIMITIVE_TEXTFIELD_PROVIDERS, TuiPrimitiveTextfieldComponent, TuiPrimitiveTextfieldModule };
472
+ export { TUI_PRIMITIVE_TEXTFIELD_PROVIDERS, TuiPrimitiveTextfieldComponent, TuiPrimitiveTextfieldModule, TuiValueDecorationComponent };
438
473
  //# sourceMappingURL=taiga-ui-core-components-primitive-textfield.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-primitive-textfield.js","sources":["ng://@taiga-ui/core/components/primitive-textfield/primitive-textfield.providers.ts","ng://@taiga-ui/core/components/primitive-textfield/primitive-textfield.component.ts","ng://@taiga-ui/core/components/primitive-textfield/primitive-textfield.module.ts","ng://@taiga-ui/core/components/primitive-textfield/taiga-ui-core-components-primitive-textfield.ts"],"sourcesContent":["import {forwardRef} from '@angular/core';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR} from '@taiga-ui/cdk';\nimport {HINT_CONTROLLER_PROVIDER} from '@taiga-ui/core/directives/hint-controller';\nimport {TEXTFIELD_CONTROLLER_PROVIDER} from '@taiga-ui/core/directives/textfield-controller';\nimport {MODE_PROVIDER} from '@taiga-ui/core/providers';\nimport {TuiPrimitiveTextfieldComponent} from './primitive-textfield.component';\n\nexport const TUI_PRIMITIVE_TEXTFIELD_PROVIDERS = [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiPrimitiveTextfieldComponent),\n },\n TEXTFIELD_CONTROLLER_PROVIDER,\n HINT_CONTROLLER_PROVIDER,\n MODE_PROVIDER,\n];\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n Output,\n QueryList,\n ViewChild,\n} from '@angular/core';\nimport {\n AbstractTuiInteractive,\n isNativeFocused,\n setNativeFocused,\n TuiContextWithImplicit,\n TuiCreditCardAutofillName,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n tuiPure,\n} from '@taiga-ui/cdk';\nimport {\n TUI_HINT_WATCHED_CONTROLLER,\n TuiHintControllerDirective,\n} from '@taiga-ui/core/directives/hint-controller';\nimport {\n TUI_TEXTFIELD_WATCHED_CONTROLLER,\n TuiTextfieldController,\n} from '@taiga-ui/core/directives/textfield-controller';\nimport {TuiAppearance} from '@taiga-ui/core/enums';\nimport {TUI_MODE, TUI_TEXTFIELD_APPEARANCE} from '@taiga-ui/core/tokens';\nimport {\n TuiBrightness,\n TuiHorizontalDirection,\n TuiSizeL,\n TuiSizeS,\n} from '@taiga-ui/core/types';\nimport {getBorder, sizeBigger} from '@taiga-ui/core/utils/miscellaneous';\nimport {PolymorpheusContent, PolymorpheusOutletComponent} from '@tinkoff/ng-polymorpheus';\nimport {Observable} from 'rxjs';\nimport {TUI_PRIMITIVE_TEXTFIELD_PROVIDERS} from './primitive-textfield.providers';\n\nconst ICON_PADDING = 1.75;\nconst ICON_PADDING_S = 1.5;\n\n@Component({\n selector: 'tui-primitive-textfield',\n templateUrl: './primitive-textfield.template.html',\n styleUrls: ['./primitive-textfield.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: TUI_PRIMITIVE_TEXTFIELD_PROVIDERS,\n host: {\n '($.data-mode.attr)': 'mode$',\n },\n})\nexport class TuiPrimitiveTextfieldComponent\n extends AbstractTuiInteractive\n implements TuiFocusableElementAccessor\n{\n @Input()\n @tuiDefaultProp()\n editable = true;\n\n @Input()\n @tuiDefaultProp()\n filler = '';\n\n @Input()\n @tuiDefaultProp()\n iconAlign: TuiHorizontalDirection = 'right';\n\n // TODO: Remove null in 3.0\n @Input()\n @tuiDefaultProp()\n iconContent: PolymorpheusContent | null = null;\n\n @Input()\n @HostBinding('class._readonly')\n @tuiDefaultProp()\n readOnly = false;\n\n @Input()\n @tuiDefaultProp()\n invalid = false;\n\n @Input()\n @tuiDefaultProp()\n disabled = false;\n\n @Input()\n @tuiDefaultProp()\n postfix = '';\n\n @Input()\n @tuiDefaultProp()\n value = '';\n\n @Output()\n readonly valueChange = new EventEmitter<string>();\n\n @Output()\n readonly autofilledChange = new EventEmitter<boolean>();\n\n @ViewChild('focusableElement')\n private readonly focusableElement?: ElementRef<HTMLInputElement>;\n\n @ContentChildren(PolymorpheusOutletComponent)\n readonly content?: QueryList<unknown>;\n\n private autofilled = false;\n\n constructor(\n @Inject(TUI_MODE) readonly mode$: Observable<TuiBrightness | null>,\n @Inject(TUI_TEXTFIELD_APPEARANCE) readonly appearance: string,\n @Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER)\n readonly controller: TuiTextfieldController,\n @Inject(TUI_HINT_WATCHED_CONTROLLER)\n readonly hintController: TuiHintControllerDirective,\n ) {\n super();\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.computedDisabled || !this.focusableElement\n ? null\n : this.focusableElement.nativeElement;\n }\n\n get focused(): boolean {\n return isNativeFocused(this.nativeFocusableElement);\n }\n\n @HostBinding('attr.data-tui-host-size')\n get size(): TuiSizeS | TuiSizeL {\n return this.controller.size;\n }\n\n @HostBinding('class._label-outside')\n get labelOutside(): boolean {\n return this.controller.labelOutside;\n }\n\n @HostBinding('class._invalid')\n get computedInvalid(): boolean {\n return !this.readOnly && !this.disabled && this.invalid;\n }\n\n get inputHidden(): boolean {\n return !!this.content?.length;\n }\n\n get isContextTable(): boolean {\n return this.appearance === TuiAppearance.Table;\n }\n\n get hasTooltip(): boolean {\n return !!this.hintController && !!this.hintController.content && !this.disabled;\n }\n\n get hasCustomContent(): boolean {\n return !!this.controller.customContent;\n }\n\n get iconPaddingLeft(): number {\n return this.size === 's' ? ICON_PADDING_S : ICON_PADDING;\n }\n\n get borderLeft(): number {\n return (\n (this.iconAlignLeft ? this.iconPaddingLeft : 0) +\n getBorder(sizeBigger(this.size, 'm'), false)\n );\n }\n\n get borderRight(): number {\n return getBorder(\n sizeBigger(this.size, 'm'),\n this.iconAlignRight,\n this.hasCleaner,\n this.hasTooltip,\n this.hasCustomContent,\n );\n }\n\n get hasPlaceholder(): boolean {\n return (\n (this.big && !this.labelOutside) ||\n (!this.hasValue && !this.hasExampleText && !this.hasPostfix)\n );\n }\n\n get placeholderRaised(): boolean {\n return (\n this.big &&\n !this.labelOutside &&\n ((this.computedFocused && !this.readOnly) || this.hasValue || this.autofilled)\n );\n }\n\n get iconAlignLeft(): boolean {\n return this.hasIcon && this.iconAlign === 'left';\n }\n\n get iconAlignRight(): boolean {\n return this.hasIcon && this.iconAlign === 'right';\n }\n\n get hasValue(): boolean {\n return !!this.value;\n }\n\n get hasCleaner(): boolean {\n return (\n this.controller.cleaner && this.hasValue && !this.disabled && !this.readOnly\n );\n }\n\n @HostBinding('class._right-aligned')\n get rightAligned(): boolean {\n return (\n this.appearance === TuiAppearance.Table &&\n (this.controller.inputMode === 'numeric' ||\n this.controller.inputMode === 'decimal')\n );\n }\n\n get hasValueDecoration(): boolean {\n const fillerOrExampleShown =\n this.computedFocused && !this.readOnly && this.hasFillerOrExampleText;\n\n return fillerOrExampleShown || this.hasPostfix;\n }\n\n get hasPostfix(): boolean {\n const isPostfixAllowed =\n this.hasValue || (this.computedFocused && !this.readOnly);\n\n return isPostfixAllowed && !!this.postfix;\n }\n\n get hasFillerOrExampleText(): boolean {\n return this.hasValue ? !!this.computedFiller : !!this.controller.exampleText;\n }\n\n get postfixShifted(): boolean {\n return this.postfix !== '%' && (this.hasFillerOrExampleText || this.hasValue);\n }\n\n get computedFiller(): string {\n return this.hasExampleText\n ? this.controller.exampleText\n : this.filler.slice(this.value.length);\n }\n\n // Safari expiration date autofill workaround\n get name(): 'ccexpiryyear' | null {\n return this.controller.autocomplete === TuiCreditCardAutofillName.CcExp\n ? 'ccexpiryyear'\n : null;\n }\n\n get context(): TuiContextWithImplicit<TuiSizeS | TuiSizeL> {\n return this.getContext(this.size);\n }\n\n clear() {\n if (this.nativeFocusableElement) {\n this.nativeFocusableElement.value = '';\n }\n\n this.updateValue('');\n }\n\n onMouseDown(event: MouseEvent) {\n if (\n !this.focusableElement ||\n event.target === this.focusableElement.nativeElement\n ) {\n return;\n }\n\n event.preventDefault();\n setNativeFocused(this.focusableElement.nativeElement);\n }\n\n onModelChange(value: string) {\n this.updateValue(value);\n }\n\n onHovered(hovered: boolean) {\n this.updateHovered(hovered);\n }\n\n onFocused(focused: boolean) {\n this.updateFocused(focused);\n }\n\n onAutofilled(autofilled: boolean) {\n this.updateAutofilled(autofilled);\n }\n\n private get big(): boolean {\n return this.size !== 's';\n }\n\n private get hasIcon(): boolean {\n return !!this.iconContent;\n }\n\n private get hasExampleText(): boolean {\n return (\n !!this.controller.exampleText &&\n this.computedFocused &&\n !this.hasValue &&\n !this.readOnly\n );\n }\n\n @tuiPure\n private getContext(\n $implicit: TuiSizeS | TuiSizeL,\n ): TuiContextWithImplicit<TuiSizeS | TuiSizeL> {\n return {$implicit};\n }\n\n private updateAutofilled(autofilled: boolean) {\n if (this.autofilled === autofilled) {\n return;\n }\n\n this.autofilled = autofilled;\n this.autofilledChange.emit(autofilled);\n }\n\n private updateValue(value: string) {\n this.value = value;\n this.valueChange.emit(value);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {\n TuiAutofilledModule,\n TuiFocusableModule,\n TuiFocusedModule,\n TuiHoveredModule,\n TuiInputModeModule,\n TuiPreventDefaultModule,\n} from '@taiga-ui/cdk';\nimport {TuiSvgModule} from '@taiga-ui/core/components/svg';\nimport {TuiTooltipModule} from '@taiga-ui/core/components/tooltip';\nimport {TuiWrapperModule} from '@taiga-ui/core/components/wrapper';\nimport {TuiDescribedByModule} from '@taiga-ui/core/directives/described-by';\nimport {TuiMaskAccessorModule} from '@taiga-ui/core/directives/mask-accessor';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\nimport {TuiPrimitiveTextfieldComponent} from './primitive-textfield.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n TuiMaskAccessorModule,\n TuiFocusableModule,\n TuiFocusedModule,\n TuiHoveredModule,\n TuiInputModeModule,\n PolymorpheusModule,\n TuiWrapperModule,\n TuiSvgModule,\n TuiTooltipModule,\n TuiAutofilledModule,\n TuiDescribedByModule,\n TuiPreventDefaultModule,\n ],\n declarations: [TuiPrimitiveTextfieldComponent],\n exports: [TuiPrimitiveTextfieldComponent],\n})\nexport class TuiPrimitiveTextfieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-core-components-primitive-textfield.js","sources":["ng://@taiga-ui/core/components/primitive-textfield/primitive-textfield.providers.ts","ng://@taiga-ui/core/components/primitive-textfield/primitive-textfield.component.ts","ng://@taiga-ui/core/components/primitive-textfield/value-decoration/value-decoration.component.ts","ng://@taiga-ui/core/components/primitive-textfield/primitive-textfield.module.ts","ng://@taiga-ui/core/components/primitive-textfield/taiga-ui-core-components-primitive-textfield.ts"],"sourcesContent":["import {forwardRef} from '@angular/core';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR} from '@taiga-ui/cdk';\nimport {HINT_CONTROLLER_PROVIDER} from '@taiga-ui/core/directives/hint-controller';\nimport {TEXTFIELD_CONTROLLER_PROVIDER} from '@taiga-ui/core/directives/textfield-controller';\nimport {MODE_PROVIDER} from '@taiga-ui/core/providers';\n\nimport {TuiPrimitiveTextfieldComponent} from './primitive-textfield.component';\n\nexport const TUI_PRIMITIVE_TEXTFIELD_PROVIDERS = [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiPrimitiveTextfieldComponent),\n },\n TEXTFIELD_CONTROLLER_PROVIDER,\n HINT_CONTROLLER_PROVIDER,\n MODE_PROVIDER,\n];\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n Output,\n QueryList,\n ViewChild,\n} from '@angular/core';\nimport {\n AbstractTuiInteractive,\n isNativeFocused,\n setNativeFocused,\n TuiCreditCardAutofillName,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n tuiPure,\n} from '@taiga-ui/cdk';\nimport {\n TUI_HINT_WATCHED_CONTROLLER,\n TuiHintControllerDirective,\n} from '@taiga-ui/core/directives/hint-controller';\nimport {\n TUI_TEXTFIELD_WATCHED_CONTROLLER,\n TuiTextfieldController,\n} from '@taiga-ui/core/directives/textfield-controller';\nimport {TuiAppearance} from '@taiga-ui/core/enums';\nimport {TUI_MODE, TUI_TEXTFIELD_APPEARANCE} from '@taiga-ui/core/tokens';\nimport {\n TuiBrightness,\n TuiHorizontalDirection,\n TuiSizeL,\n TuiSizeS,\n} from '@taiga-ui/core/types';\nimport {getBorder} from '@taiga-ui/core/utils/miscellaneous';\nimport {PolymorpheusContent, PolymorpheusOutletComponent} from '@tinkoff/ng-polymorpheus';\nimport {fromEvent, Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {TUI_PRIMITIVE_TEXTFIELD_PROVIDERS} from './primitive-textfield.providers';\n\nconst ICON_PADDING = 1.75;\nconst ICON_PADDING_S = 1.5;\n\n@Component({\n selector: 'tui-primitive-textfield',\n templateUrl: './primitive-textfield.template.html',\n styleUrls: ['./primitive-textfield.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: TUI_PRIMITIVE_TEXTFIELD_PROVIDERS,\n host: {\n '($.data-mode.attr)': 'mode$',\n },\n})\nexport class TuiPrimitiveTextfieldComponent\n extends AbstractTuiInteractive\n implements TuiFocusableElementAccessor\n{\n @Input()\n @tuiDefaultProp()\n editable = true;\n\n @Input()\n @tuiDefaultProp()\n filler = '';\n\n @Input()\n @tuiDefaultProp()\n iconAlign: TuiHorizontalDirection = 'right';\n\n // TODO: Remove null in 3.0\n @Input()\n @tuiDefaultProp()\n iconContent: PolymorpheusContent | null = null;\n\n @Input()\n @HostBinding('class._readonly')\n @tuiDefaultProp()\n readOnly = false;\n\n @Input()\n @tuiDefaultProp()\n invalid = false;\n\n @Input()\n @tuiDefaultProp()\n disabled = false;\n\n @Input()\n @tuiDefaultProp()\n prefix = '';\n\n @Input()\n @tuiDefaultProp()\n postfix = '';\n\n @Input()\n @tuiDefaultProp()\n value = '';\n\n @Output()\n readonly valueChange = new EventEmitter<string>();\n\n @Output()\n readonly autofilledChange = new EventEmitter<boolean>();\n\n @ViewChild('focusableElement')\n private readonly focusableElement?: ElementRef<HTMLInputElement>;\n\n @ContentChildren(PolymorpheusOutletComponent)\n readonly content?: QueryList<unknown>;\n\n private autofilled = false;\n\n constructor(\n @Inject(TUI_MODE) readonly mode$: Observable<TuiBrightness | null>,\n @Inject(TUI_TEXTFIELD_APPEARANCE) readonly appearance: string,\n @Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER)\n readonly controller: TuiTextfieldController,\n @Inject(TUI_HINT_WATCHED_CONTROLLER)\n readonly hintController: TuiHintControllerDirective,\n ) {\n super();\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.computedDisabled || !this.focusableElement\n ? null\n : this.focusableElement.nativeElement;\n }\n\n get focused(): boolean {\n return isNativeFocused(this.nativeFocusableElement);\n }\n\n @HostBinding('attr.data-tui-host-size')\n get size(): TuiSizeS | TuiSizeL {\n return this.controller.size;\n }\n\n @HostBinding('class._label-outside')\n get labelOutside(): boolean {\n return this.controller.labelOutside;\n }\n\n @HostBinding('class._invalid')\n get computedInvalid(): boolean {\n return !this.readOnly && !this.disabled && this.invalid;\n }\n\n get inputHidden(): boolean {\n return !!this.content?.length;\n }\n\n get isContextTable(): boolean {\n return this.appearance === TuiAppearance.Table;\n }\n\n get hasValue(): boolean {\n return !!this.value;\n }\n\n get hasCleaner(): boolean {\n return (\n this.controller.cleaner && this.hasValue && !this.disabled && !this.readOnly\n );\n }\n\n get hasTooltip(): boolean {\n return !!this.hintController?.content && !this.disabled;\n }\n\n get hasCustomContent(): boolean {\n return !!this.controller.customContent;\n }\n\n get hasPlaceholder(): boolean {\n const hasDecor = this.controller.exampleText || this.prefix || this.postfix;\n const showDecor = hasDecor && !this.readOnly && this.computedFocused;\n const placeholderVisible = !this.hasValue && !showDecor;\n\n return this.placeholderRaisable || placeholderVisible;\n }\n\n get placeholderRaised(): boolean {\n return (\n this.placeholderRaisable &&\n ((this.computedFocused && !this.readOnly) || this.hasValue || this.autofilled)\n );\n }\n\n get borderLeft(): number {\n return this.iconAlignLeft ? this.iconPaddingLeft : 0;\n }\n\n get borderRight(): number {\n return getBorder(\n this.iconAlignRight,\n this.hasCleaner,\n this.hasTooltip,\n this.hasCustomContent,\n );\n }\n\n get iconAlignLeft(): boolean {\n return this.hasIcon && this.iconAlign === 'left';\n }\n\n get iconAlignRight(): boolean {\n return this.hasIcon && this.iconAlign === 'right';\n }\n\n // Safari expiration date autofill workaround\n get name(): 'ccexpiryyear' | null {\n return this.controller.autocomplete === TuiCreditCardAutofillName.CcExp\n ? 'ccexpiryyear'\n : null;\n }\n\n @tuiPure\n getIndent$(element: HTMLElement): Observable<number> {\n return fromEvent(element, 'scroll').pipe(map(() => -1 * element.scrollLeft));\n }\n\n clear() {\n if (this.nativeFocusableElement) {\n this.nativeFocusableElement.value = '';\n }\n\n this.updateValue('');\n }\n\n onMouseDown(event: MouseEvent) {\n if (\n !this.focusableElement ||\n event.target === this.focusableElement.nativeElement\n ) {\n return;\n }\n\n event.preventDefault();\n setNativeFocused(this.focusableElement.nativeElement);\n }\n\n onModelChange(value: string) {\n this.updateValue(value);\n }\n\n onHovered(hovered: boolean) {\n this.updateHovered(hovered);\n }\n\n onFocused(focused: boolean) {\n this.updateFocused(focused);\n }\n\n onAutofilled(autofilled: boolean) {\n this.updateAutofilled(autofilled);\n }\n\n private get iconPaddingLeft(): number {\n return this.size === 's' ? ICON_PADDING_S : ICON_PADDING;\n }\n\n private get placeholderRaisable(): boolean {\n return this.size !== 's' && !this.labelOutside;\n }\n\n private get hasIcon(): boolean {\n return !!this.iconContent;\n }\n\n private updateAutofilled(autofilled: boolean) {\n if (this.autofilled === autofilled) {\n return;\n }\n\n this.autofilled = autofilled;\n this.autofilledChange.emit(autofilled);\n }\n\n private updateValue(value: string) {\n this.value = value;\n this.valueChange.emit(value);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n ViewChild,\n} from '@angular/core';\nimport {MutationObserverDirective} from '@ng-web-apis/mutation-observer';\nimport {\n TUI_TEXTFIELD_WATCHED_CONTROLLER,\n TuiTextfieldController,\n} from '@taiga-ui/core/directives';\nimport {defer, EMPTY} from 'rxjs';\nimport {distinctUntilChanged, map, startWith} from 'rxjs/operators';\n\nimport {TuiPrimitiveTextfieldComponent} from '../primitive-textfield.component';\n\n@Component({\n selector: 'tui-value-decoration',\n templateUrl: 'value-decoration.template.html',\n styleUrls: ['value-decoration.style.less'],\n // It follows Change Detection of PrimitiveTextfield\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class TuiValueDecorationComponent {\n readonly pre$ = defer(() => this.directive?.waMutationObserver ?? EMPTY).pipe(\n map(() => this.pre?.nativeElement.offsetWidth ?? 0),\n startWith(0),\n distinctUntilChanged(),\n );\n\n @ViewChild('pre', {read: ElementRef, static: true})\n private readonly pre?: ElementRef<HTMLElement>;\n\n @ViewChild(MutationObserverDirective, {static: true})\n private readonly directive?: MutationObserverDirective;\n\n constructor(\n @Inject(TuiPrimitiveTextfieldComponent)\n private readonly textfield: TuiPrimitiveTextfieldComponent,\n @Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER)\n private readonly controller: TuiTextfieldController,\n ) {}\n\n get value(): string {\n return this.textfield.value;\n }\n\n get filler(): string {\n return this.focused\n ? this.exampleText || this.textfield.filler.slice(this.value.length)\n : '';\n }\n\n get prefix(): string {\n return this.decorationsVisible ? this.textfield.prefix : '';\n }\n\n get postfix(): string {\n return this.decorationsVisible ? this.computedPostfix : '';\n }\n\n private get exampleText(): string {\n return !this.value && this.focused ? this.controller.exampleText : '';\n }\n\n private get decorationsVisible(): boolean {\n return !!this.value || this.focused;\n }\n\n private get focused(): boolean {\n return this.textfield.computedFocused && !this.textfield.readOnly;\n }\n\n private get computedPostfix(): string {\n return this.textfield.postfix && (this.filler || this.value)\n ? ` ${this.textfield.postfix}`\n : this.textfield.postfix;\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {MutationObserverModule} from '@ng-web-apis/mutation-observer';\nimport {\n TuiAutofilledModule,\n TuiFocusableModule,\n TuiFocusedModule,\n TuiHoveredModule,\n TuiInputModeModule,\n TuiPreventDefaultModule,\n} from '@taiga-ui/cdk';\nimport {TuiSvgModule} from '@taiga-ui/core/components/svg';\nimport {TuiTooltipModule} from '@taiga-ui/core/components/tooltip';\nimport {TuiWrapperModule} from '@taiga-ui/core/components/wrapper';\nimport {TuiBorderModule} from '@taiga-ui/core/directives/border';\nimport {TuiDescribedByModule} from '@taiga-ui/core/directives/described-by';\nimport {TuiMaskAccessorModule} from '@taiga-ui/core/directives/mask-accessor';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiPrimitiveTextfieldComponent} from './primitive-textfield.component';\nimport {TuiValueDecorationComponent} from './value-decoration/value-decoration.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n TuiMaskAccessorModule,\n TuiFocusableModule,\n TuiFocusedModule,\n TuiHoveredModule,\n TuiInputModeModule,\n PolymorpheusModule,\n TuiWrapperModule,\n TuiSvgModule,\n TuiTooltipModule,\n TuiAutofilledModule,\n TuiDescribedByModule,\n TuiPreventDefaultModule,\n TuiBorderModule,\n MutationObserverModule,\n ],\n declarations: [TuiPrimitiveTextfieldComponent, TuiValueDecorationComponent],\n exports: [TuiPrimitiveTextfieldComponent],\n})\nexport class TuiPrimitiveTextfieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["TuiTextfieldController","TUI_TEXTFIELD_WATCHED_CONTROLLER"],"mappings":"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"}
@@ -165,9 +165,9 @@ var TuiPrimitiveYearPickerComponent = /** @class */ (function () {
165
165
  TuiPrimitiveYearPickerComponent = __decorate([
166
166
  Component({
167
167
  selector: 'tui-primitive-year-picker',
168
- template: "<div\n *tuiRepeatTimes=\"let rowIndex of rows\"\n automation-id=\"tui-primitive-year-picker__row\"\n class=\"t-row\"\n>\n <ng-container *tuiRepeatTimes=\"let colIndex of 4\">\n <div\n *tuiLet=\"getItem(rowIndex, colIndex) as item\"\n automation-id=\"tui-primitive-year-picker__cell\"\n class=\"t-cell\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [class.t-cell_interval]=\"itemIsInterval(item)\"\n [attr.data-tui-element-range]=\"getItemRange(item)\"\n [attr.data-tui-element-state]=\"getItemState(item)\"\n [tuiScrollIntoView]=\"scrollItemIntoView(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n (tuiPressedChange)=\"onItemPressed($event, item)\"\n (click)=\"onItemClick(item)\"\n >\n <div class=\"t-item\">{{item}}</div>\n </div>\n </ng-container>\n</div>\n",
168
+ template: "<div\n *tuiRepeatTimes=\"let rowIndex of rows\"\n automation-id=\"tui-primitive-year-picker__row\"\n class=\"t-row\"\n>\n <ng-container *tuiRepeatTimes=\"let colIndex of 4\">\n <div\n *tuiLet=\"getItem(rowIndex, colIndex) as item\"\n automation-id=\"tui-primitive-year-picker__cell\"\n class=\"t-cell\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [class.t-cell_interval]=\"itemIsInterval(item)\"\n [attr.data-tui-element-range]=\"getItemRange(item)\"\n [attr.data-tui-element-state]=\"getItemState(item)\"\n [tuiScrollIntoView]=\"scrollItemIntoView(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n (tuiPressedChange)=\"onItemPressed($event, item)\"\n (click)=\"onItemClick(item)\"\n >\n <div class=\"t-item\">{{ item }}</div>\n </div>\n </ng-container>\n</div>\n",
169
169
  changeDetection: ChangeDetectionStrategy.OnPush,
170
- styles: [":host{font:var(--tui-font-text-m);display:block}.t-row{position:relative;z-index:0;display:flex;justify-content:space-between;height:2.25rem;margin:.875rem 0}.t-item{position:relative;flex:1;line-height:2rem;border-radius:var(--tui-radius-m)}.t-item:after,.t-item:before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;border-radius:var(--tui-radius-m)}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;width:3.9375rem;text-align:center;outline:0;cursor:pointer;background-clip:content-box;box-sizing:border-box;border:2px solid transparent}.t-cell:before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;border-radius:var(--tui-radius-m)}.t-cell_today:after{position:absolute;left:50%;transform:translate(-50%,0);content:'';bottom:.3125rem;height:.125rem;width:.75rem;border-radius:.375rem;background-color:var(--tui-text-02)}.t-cell_interval:before{background:var(--tui-base-02)}:host._single .t-cell_interval:before{background:var(--tui-secondary-hover)}.t-cell_interval:not(:last-child):before{right:-3.9375rem}.t-cell_interval:last-child:first-child:before{right:0}.t-cell_interval:first-child>.t-item{border-top-left-radius:var(--tui-radius-m);border-bottom-left-radius:var(--tui-radius-m)}.t-cell_interval:last-child>.t-item{border-top-right-radius:var(--tui-radius-m);border-bottom-right-radius:var(--tui-radius-m)}.t-cell_interval>.t-item{border-radius:0}.t-cell[data-tui-element-range]:after{background-color:var(--tui-primary-text)}.t-cell[data-tui-element-range]>.t-item{color:var(--tui-primary-text)}.t-cell[data-tui-element-range]>.t-item:after,.t-cell[data-tui-element-range]>.t-item:before{background-color:var(--tui-primary)}.t-cell[data-tui-element-range][data-tui-element-state=hovered]>.t-item:after,.t-cell[data-tui-element-range][data-tui-element-state=hovered]>.t-item:before{background-color:var(--tui-primary-hover)}.t-cell[data-tui-element-range][data-tui-element-state=pressed]>.t-item:after,.t-cell[data-tui-element-range][data-tui-element-state=pressed]>.t-item:before{background-color:var(--tui-primary-active)}.t-cell[data-tui-element-range=end]>.t-item:before{left:.25rem}.t-cell[data-tui-element-range=end]>.t-item:after{left:-2rem;right:100%;transform:translateX(1.4375rem) scaleY(.6) scaleX(.4) rotate(45deg)}.t-cell[data-tui-element-range=start]>.t-item:before{right:.25rem}.t-cell[data-tui-element-range=start]>.t-item:after{left:100%;right:-2rem;transform:translateX(-1.4375rem) scaleY(.6) scaleX(.4) rotate(45deg)}.t-cell[data-tui-element-state=disabled]{pointer-events:none}.t-cell[data-tui-element-state=disabled]>.t-item{opacity:.36}.t-cell[data-tui-element-state=hovered]:hover:not([data-tui-element-range])>.t-item{background-color:var(--tui-secondary-hover)}.t-cell[data-tui-element-state=pressed]:hover:not([data-tui-element-range])>.t-item{background-color:var(--tui-secondary-active)}:host{width:15.75rem}.t-row:first-child{margin-top:0}.t-row:last-child{margin-bottom:0}"]
170
+ styles: [":host{display:block;font:var(--tui-font-text-m)}.t-row{position:relative;z-index:0;display:flex;justify-content:space-between;height:2.25rem;margin:.875rem 0}.t-item{position:relative;flex:1;line-height:2rem;border-radius:var(--tui-radius-m)}.t-item:after,.t-item:before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;border-radius:var(--tui-radius-m)}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;width:3.9375rem;text-align:center;outline:0;cursor:pointer;background-clip:content-box;box-sizing:border-box;border:2px solid transparent}.t-cell:before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;border-radius:var(--tui-radius-m)}.t-cell_today:after{position:absolute;left:50%;transform:translate(-50%,0);content:'';bottom:.3125rem;height:.125rem;width:.75rem;border-radius:.375rem;background-color:var(--tui-text-02)}.t-cell_interval:before{background:var(--tui-base-02)}:host._single .t-cell_interval:before{background:var(--tui-secondary-hover)}.t-cell_interval:not(:last-child):before{right:-3.9375rem}.t-cell_interval:last-child:first-child:before{right:0}.t-cell_interval:first-child>.t-item{border-top-left-radius:var(--tui-radius-m);border-bottom-left-radius:var(--tui-radius-m)}.t-cell_interval:last-child>.t-item{border-top-right-radius:var(--tui-radius-m);border-bottom-right-radius:var(--tui-radius-m)}.t-cell_interval>.t-item{border-radius:0}.t-cell[data-tui-element-range]:after{background-color:var(--tui-primary-text)}.t-cell[data-tui-element-range]>.t-item{color:var(--tui-primary-text)}.t-cell[data-tui-element-range]>.t-item:after,.t-cell[data-tui-element-range]>.t-item:before{background-color:var(--tui-primary)}.t-cell[data-tui-element-range][data-tui-element-state=hovered]>.t-item:after,.t-cell[data-tui-element-range][data-tui-element-state=hovered]>.t-item:before{background-color:var(--tui-primary-hover)}.t-cell[data-tui-element-range][data-tui-element-state=pressed]>.t-item:after,.t-cell[data-tui-element-range][data-tui-element-state=pressed]>.t-item:before{background-color:var(--tui-primary-active)}.t-cell[data-tui-element-range=end]>.t-item:before{left:.25rem}.t-cell[data-tui-element-range=end]>.t-item:after{left:-2rem;right:100%;transform:translateX(1.4375rem) scaleY(.6) scaleX(.4) rotate(45deg)}.t-cell[data-tui-element-range=start]>.t-item:before{right:.25rem}.t-cell[data-tui-element-range=start]>.t-item:after{left:100%;right:-2rem;transform:translateX(-1.4375rem) scaleY(.6) scaleX(.4) rotate(45deg)}.t-cell[data-tui-element-state=disabled]{pointer-events:none}.t-cell[data-tui-element-state=disabled]>.t-item{opacity:.36}.t-cell[data-tui-element-state=hovered]:hover:not([data-tui-element-range])>.t-item{background-color:var(--tui-secondary-hover)}.t-cell[data-tui-element-state=pressed]:hover:not([data-tui-element-range])>.t-item{background-color:var(--tui-secondary-active)}:host{width:15.75rem}.t-row:first-child{margin-top:0}.t-row:last-child{margin-bottom:0}"]
171
171
  })
172
172
  ], TuiPrimitiveYearPickerComponent);
173
173
  return TuiPrimitiveYearPickerComponent;