@taiga-ui/core 2.20.0 → 2.24.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 (456) 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 +2 -2
  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.min.js +1 -1
  26. package/bundles/taiga-ui-core-components-error.umd.js +1 -1
  27. package/bundles/taiga-ui-core-components-error.umd.min.js +1 -1
  28. package/bundles/taiga-ui-core-components-expand.umd.js +3 -2
  29. package/bundles/taiga-ui-core-components-expand.umd.js.map +1 -1
  30. package/bundles/taiga-ui-core-components-expand.umd.min.js +1 -1
  31. package/bundles/taiga-ui-core-components-expand.umd.min.js.map +1 -1
  32. package/bundles/taiga-ui-core-components-hints-host.umd.js +11 -5
  33. package/bundles/taiga-ui-core-components-hints-host.umd.js.map +1 -1
  34. package/bundles/taiga-ui-core-components-hints-host.umd.min.js +1 -1
  35. package/bundles/taiga-ui-core-components-hints-host.umd.min.js.map +1 -1
  36. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js +2 -15
  37. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js.map +1 -1
  38. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.min.js +1 -1
  39. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.min.js.map +1 -1
  40. package/bundles/taiga-ui-core-components-label.umd.js +1 -1
  41. package/bundles/taiga-ui-core-components-label.umd.js.map +1 -1
  42. package/bundles/taiga-ui-core-components-label.umd.min.js +1 -1
  43. package/bundles/taiga-ui-core-components-label.umd.min.js.map +1 -1
  44. package/bundles/taiga-ui-core-components-link.umd.js +1 -1
  45. package/bundles/taiga-ui-core-components-link.umd.min.js +1 -1
  46. package/bundles/taiga-ui-core-components-link.umd.min.js.map +1 -1
  47. package/bundles/taiga-ui-core-components-loader.umd.js +2 -2
  48. package/bundles/taiga-ui-core-components-loader.umd.js.map +1 -1
  49. package/bundles/taiga-ui-core-components-loader.umd.min.js +1 -1
  50. package/bundles/taiga-ui-core-components-loader.umd.min.js.map +1 -1
  51. package/bundles/taiga-ui-core-components-notification.umd.js +1 -1
  52. package/bundles/taiga-ui-core-components-notification.umd.min.js +1 -1
  53. package/bundles/taiga-ui-core-components-primitive-calendar.umd.js +2 -2
  54. package/bundles/taiga-ui-core-components-primitive-calendar.umd.js.map +1 -1
  55. package/bundles/taiga-ui-core-components-primitive-calendar.umd.min.js +1 -1
  56. package/bundles/taiga-ui-core-components-primitive-calendar.umd.min.js.map +1 -1
  57. package/bundles/taiga-ui-core-components-primitive-spin-button.umd.js +2 -2
  58. package/bundles/taiga-ui-core-components-primitive-spin-button.umd.min.js +1 -1
  59. package/bundles/taiga-ui-core-components-primitive-textfield.umd.js +138 -106
  60. package/bundles/taiga-ui-core-components-primitive-textfield.umd.js.map +1 -1
  61. package/bundles/taiga-ui-core-components-primitive-textfield.umd.min.js +2 -2
  62. package/bundles/taiga-ui-core-components-primitive-textfield.umd.min.js.map +1 -1
  63. package/bundles/taiga-ui-core-components-primitive-year-picker.umd.js +2 -2
  64. package/bundles/taiga-ui-core-components-primitive-year-picker.umd.js.map +1 -1
  65. package/bundles/taiga-ui-core-components-primitive-year-picker.umd.min.js +1 -1
  66. package/bundles/taiga-ui-core-components-primitive-year-picker.umd.min.js.map +1 -1
  67. package/bundles/taiga-ui-core-components-scroll-controls.umd.js +2 -2
  68. package/bundles/taiga-ui-core-components-scroll-controls.umd.min.js +1 -1
  69. package/bundles/taiga-ui-core-components-scroll-controls.umd.min.js.map +1 -1
  70. package/bundles/taiga-ui-core-components-scrollbar.umd.js +34 -24
  71. package/bundles/taiga-ui-core-components-scrollbar.umd.js.map +1 -1
  72. package/bundles/taiga-ui-core-components-scrollbar.umd.min.js +2 -2
  73. package/bundles/taiga-ui-core-components-scrollbar.umd.min.js.map +1 -1
  74. package/bundles/taiga-ui-core-components-theme-night.umd.js +7 -11
  75. package/bundles/taiga-ui-core-components-theme-night.umd.js.map +1 -1
  76. package/bundles/taiga-ui-core-components-theme-night.umd.min.js +2 -2
  77. package/bundles/taiga-ui-core-components-theme-night.umd.min.js.map +1 -1
  78. package/bundles/taiga-ui-core-components-tooltip.umd.js +1 -1
  79. package/bundles/taiga-ui-core-components-tooltip.umd.min.js +1 -1
  80. package/bundles/taiga-ui-core-components-wrapper.umd.js +1 -1
  81. package/bundles/taiga-ui-core-components-wrapper.umd.min.js +1 -1
  82. package/bundles/taiga-ui-core-components-wrapper.umd.min.js.map +1 -1
  83. package/bundles/taiga-ui-core-constants.umd.js +10 -1
  84. package/bundles/taiga-ui-core-constants.umd.js.map +1 -1
  85. package/bundles/taiga-ui-core-constants.umd.min.js +1 -1
  86. package/bundles/taiga-ui-core-constants.umd.min.js.map +1 -1
  87. package/bundles/taiga-ui-core-directives-border.umd.js +291 -0
  88. package/bundles/taiga-ui-core-directives-border.umd.js.map +1 -0
  89. package/bundles/taiga-ui-core-directives-border.umd.min.js +16 -0
  90. package/bundles/taiga-ui-core-directives-border.umd.min.js.map +1 -0
  91. package/bundles/taiga-ui-core-directives-hint.umd.js +7 -4
  92. package/bundles/taiga-ui-core-directives-hint.umd.js.map +1 -1
  93. package/bundles/taiga-ui-core-directives-hint.umd.min.js +1 -1
  94. package/bundles/taiga-ui-core-directives-hint.umd.min.js.map +1 -1
  95. package/bundles/taiga-ui-core-directives-manual-hint.umd.js +7 -4
  96. package/bundles/taiga-ui-core-directives-manual-hint.umd.js.map +1 -1
  97. package/bundles/taiga-ui-core-directives-manual-hint.umd.min.js +1 -1
  98. package/bundles/taiga-ui-core-directives-manual-hint.umd.min.js.map +1 -1
  99. package/bundles/taiga-ui-core-directives-pointer-hint.umd.js +1 -1
  100. package/bundles/taiga-ui-core-directives-pointer-hint.umd.js.map +1 -1
  101. package/bundles/taiga-ui-core-directives-pointer-hint.umd.min.js +1 -1
  102. package/bundles/taiga-ui-core-directives-pointer-hint.umd.min.js.map +1 -1
  103. package/bundles/taiga-ui-core-directives-textfield-controller.umd.js +9 -3
  104. package/bundles/taiga-ui-core-directives-textfield-controller.umd.js.map +1 -1
  105. package/bundles/taiga-ui-core-directives-textfield-controller.umd.min.js.map +1 -1
  106. package/bundles/taiga-ui-core-directives.umd.js +12 -4
  107. package/bundles/taiga-ui-core-directives.umd.js.map +1 -1
  108. package/bundles/taiga-ui-core-directives.umd.min.js +1 -1
  109. package/bundles/taiga-ui-core-internal-primitive-year-month-pagination.umd.js +1 -1
  110. package/bundles/taiga-ui-core-internal-primitive-year-month-pagination.umd.js.map +1 -1
  111. package/bundles/taiga-ui-core-internal-primitive-year-month-pagination.umd.min.js +1 -1
  112. package/bundles/taiga-ui-core-internal-primitive-year-month-pagination.umd.min.js.map +1 -1
  113. package/bundles/taiga-ui-core-modules-notifications.umd.js +2 -2
  114. package/bundles/taiga-ui-core-modules-notifications.umd.js.map +1 -1
  115. package/bundles/taiga-ui-core-modules-notifications.umd.min.js +1 -1
  116. package/bundles/taiga-ui-core-modules-notifications.umd.min.js.map +1 -1
  117. package/bundles/taiga-ui-core-tokens.umd.js +9 -0
  118. package/bundles/taiga-ui-core-tokens.umd.js.map +1 -1
  119. package/bundles/taiga-ui-core-tokens.umd.min.js +1 -1
  120. package/bundles/taiga-ui-core-tokens.umd.min.js.map +1 -1
  121. package/bundles/taiga-ui-core-utils-dom.umd.js +3 -1
  122. package/bundles/taiga-ui-core-utils-dom.umd.js.map +1 -1
  123. package/bundles/taiga-ui-core-utils-dom.umd.min.js +1 -1
  124. package/bundles/taiga-ui-core-utils-dom.umd.min.js.map +1 -1
  125. package/bundles/taiga-ui-core-utils-mask.umd.js +28 -8
  126. package/bundles/taiga-ui-core-utils-mask.umd.js.map +1 -1
  127. package/bundles/taiga-ui-core-utils-mask.umd.min.js +1 -1
  128. package/bundles/taiga-ui-core-utils-mask.umd.min.js.map +1 -1
  129. package/bundles/taiga-ui-core-utils-miscellaneous.umd.js +2 -4
  130. package/bundles/taiga-ui-core-utils-miscellaneous.umd.js.map +1 -1
  131. package/bundles/taiga-ui-core-utils-miscellaneous.umd.min.js +1 -1
  132. package/bundles/taiga-ui-core-utils-miscellaneous.umd.min.js.map +1 -1
  133. package/components/button/button-options.d.ts +10 -0
  134. package/components/button/button.component.d.ts +8 -7
  135. package/components/button/index.d.ts +1 -0
  136. package/components/button/taiga-ui-core-components-button.metadata.json +1 -1
  137. package/components/calendar/taiga-ui-core-components-calendar.metadata.json +1 -1
  138. package/components/data-list/taiga-ui-core-components-data-list.metadata.json +1 -1
  139. package/components/dialog/taiga-ui-core-components-dialog.metadata.json +1 -1
  140. package/components/dropdown-box/taiga-ui-core-components-dropdown-box.metadata.json +1 -1
  141. package/components/error/taiga-ui-core-components-error.metadata.json +1 -1
  142. package/components/expand/taiga-ui-core-components-expand.metadata.json +1 -1
  143. package/components/hints-host/taiga-ui-core-components-hints-host.metadata.json +1 -1
  144. package/components/hosted-dropdown/hosted-dropdown.component.d.ts +1 -3
  145. package/components/hosted-dropdown/taiga-ui-core-components-hosted-dropdown.metadata.json +1 -1
  146. package/components/label/taiga-ui-core-components-label.metadata.json +1 -1
  147. package/components/link/taiga-ui-core-components-link.metadata.json +1 -1
  148. package/components/loader/taiga-ui-core-components-loader.metadata.json +1 -1
  149. package/components/notification/taiga-ui-core-components-notification.metadata.json +1 -1
  150. package/components/primitive-calendar/primitive-calendar.component.d.ts +1 -1
  151. package/components/primitive-calendar/taiga-ui-core-components-primitive-calendar.metadata.json +1 -1
  152. package/components/primitive-spin-button/taiga-ui-core-components-primitive-spin-button.metadata.json +1 -1
  153. package/components/primitive-textfield/index.d.ts +1 -0
  154. package/components/primitive-textfield/primitive-textfield.component.d.ts +9 -16
  155. package/components/primitive-textfield/taiga-ui-core-components-primitive-textfield.metadata.json +1 -1
  156. package/components/primitive-textfield/value-decoration/value-decoration.component.d.ts +18 -0
  157. package/components/primitive-year-picker/taiga-ui-core-components-primitive-year-picker.metadata.json +1 -1
  158. package/components/scroll-controls/scroll-controls.component.d.ts +1 -1
  159. package/components/scroll-controls/taiga-ui-core-components-scroll-controls.metadata.json +1 -1
  160. package/components/scrollbar/scrollable.directive.d.ts +5 -1
  161. package/components/scrollbar/scrollbar.component.d.ts +4 -3
  162. package/components/scrollbar/taiga-ui-core-components-scrollbar.metadata.json +1 -1
  163. package/components/theme-night/taiga-ui-core-components-theme-night.metadata.json +1 -1
  164. package/components/theme-night/theme-night.component.d.ts +0 -1
  165. package/components/tooltip/taiga-ui-core-components-tooltip.metadata.json +1 -1
  166. package/components/wrapper/taiga-ui-core-components-wrapper.metadata.json +1 -1
  167. package/constants/events.d.ts +5 -0
  168. package/constants/media.d.ts +1 -0
  169. package/constants/regexp.d.ts +1 -0
  170. package/constants/taiga-ui-core-constants.metadata.json +1 -1
  171. package/constants/version.d.ts +1 -1
  172. package/directives/border/border.directive.d.ts +9 -0
  173. package/directives/border/border.module.d.ts +2 -0
  174. package/directives/border/index.d.ts +2 -0
  175. package/directives/border/package.json +13 -0
  176. package/directives/border/taiga-ui-core-directives-border.d.ts +4 -0
  177. package/directives/border/taiga-ui-core-directives-border.metadata.json +1 -0
  178. package/directives/hint/hint.directive.d.ts +2 -2
  179. package/directives/hint/taiga-ui-core-directives-hint.metadata.json +1 -1
  180. package/directives/index.d.ts +1 -0
  181. package/directives/manual-hint/manual-hint.directive.d.ts +2 -1
  182. package/directives/manual-hint/taiga-ui-core-directives-manual-hint.metadata.json +1 -1
  183. package/directives/taiga-ui-core-directives.metadata.json +1 -1
  184. package/directives/textfield-controller/taiga-ui-core-directives-textfield-controller.metadata.json +1 -1
  185. package/esm2015/abstract/abstract-hint.js +6 -4
  186. package/esm2015/components/button/button-options.js +10 -0
  187. package/esm2015/components/button/button.component.js +12 -8
  188. package/esm2015/components/button/index.js +2 -1
  189. package/esm2015/components/calendar/calendar.component.js +2 -2
  190. package/esm2015/components/data-list/data-list.component.js +4 -3
  191. package/esm2015/components/data-list/option/option.component.js +4 -4
  192. package/esm2015/components/dialog/dialog.component.js +3 -3
  193. package/esm2015/components/dropdown-box/dropdown-box.component.js +1 -1
  194. package/esm2015/components/error/error.component.js +1 -1
  195. package/esm2015/components/expand/expand.component.js +4 -3
  196. package/esm2015/components/hints-host/hint-box/hint-box.component.js +3 -3
  197. package/esm2015/components/hints-host/hints-host.component.js +3 -3
  198. package/esm2015/components/hints-host/hints-host.module.js +9 -3
  199. package/esm2015/components/hosted-dropdown/hosted-dropdown.component.js +4 -13
  200. package/esm2015/components/label/label.component.js +2 -2
  201. package/esm2015/components/link/link.component.js +1 -1
  202. package/esm2015/components/loader/loader.component.js +3 -3
  203. package/esm2015/components/notification/notification.component.js +1 -1
  204. package/esm2015/components/primitive-calendar/primitive-calendar.component.js +3 -3
  205. package/esm2015/components/primitive-spin-button/primitive-spin-button.component.js +2 -2
  206. package/esm2015/components/primitive-textfield/index.js +2 -1
  207. package/esm2015/components/primitive-textfield/primitive-textfield.component.js +38 -67
  208. package/esm2015/components/primitive-textfield/primitive-textfield.module.js +7 -2
  209. package/esm2015/components/primitive-textfield/value-decoration/value-decoration.component.js +65 -0
  210. package/esm2015/components/primitive-year-picker/primitive-year-picker.component.js +3 -3
  211. package/esm2015/components/scroll-controls/scroll-controls.component.js +2 -2
  212. package/esm2015/components/scrollbar/scrollable.directive.js +18 -4
  213. package/esm2015/components/scrollbar/scrollbar.component.js +20 -18
  214. package/esm2015/components/theme-night/theme-night.component.js +4 -12
  215. package/esm2015/components/tooltip/tooltip.component.js +1 -1
  216. package/esm2015/components/wrapper/wrapper.component.js +1 -1
  217. package/esm2015/constants/events.js +6 -1
  218. package/esm2015/constants/media.js +2 -1
  219. package/esm2015/constants/regexp.js +2 -1
  220. package/esm2015/constants/version.js +2 -2
  221. package/esm2015/directives/border/border.directive.js +42 -0
  222. package/esm2015/directives/border/border.module.js +13 -0
  223. package/esm2015/directives/border/index.js +3 -0
  224. package/esm2015/directives/border/taiga-ui-core-directives-border.js +5 -0
  225. package/esm2015/directives/hint/hint.directive.js +10 -7
  226. package/esm2015/directives/index.js +2 -1
  227. package/esm2015/directives/manual-hint/manual-hint.directive.js +10 -7
  228. package/esm2015/directives/pointer-hint/pointer-hint.directive.js +2 -2
  229. package/esm2015/directives/textfield-controller/textfield-cleaner.directive.js +4 -2
  230. package/esm2015/directives/textfield-controller/textfield-size.directive.js +4 -2
  231. package/esm2015/directives/textfield-controller/textfield-type.directive.js +4 -2
  232. package/esm2015/interfaces/index.js +1 -1
  233. package/esm2015/interfaces/media.js +1 -0
  234. package/esm2015/internal/primitive-year-month-pagination/primitive-year-month-pagination.component.js +2 -2
  235. package/esm2015/modules/notifications/notification-alert/notification-alert.component.js +2 -2
  236. package/esm2015/modules/notifications/notifications-host/notifications-host.component.js +1 -1
  237. package/esm2015/tokens/index.js +2 -1
  238. package/esm2015/tokens/media.js +9 -0
  239. package/esm2015/utils/dom/process-icon.js +4 -2
  240. package/esm2015/utils/mask/create-number-mask.js +28 -10
  241. package/esm2015/utils/miscellaneous/get-border.js +3 -5
  242. package/esm5/abstract/abstract-hint.js +6 -4
  243. package/esm5/components/button/button-options.js +10 -0
  244. package/esm5/components/button/button.component.js +12 -8
  245. package/esm5/components/button/index.js +2 -1
  246. package/esm5/components/calendar/calendar.component.js +2 -2
  247. package/esm5/components/data-list/data-list.component.js +4 -3
  248. package/esm5/components/data-list/option/option.component.js +4 -4
  249. package/esm5/components/dialog/dialog.component.js +3 -3
  250. package/esm5/components/dropdown-box/dropdown-box.component.js +1 -1
  251. package/esm5/components/error/error.component.js +1 -1
  252. package/esm5/components/expand/expand.component.js +4 -3
  253. package/esm5/components/hints-host/hint-box/hint-box.component.js +3 -3
  254. package/esm5/components/hints-host/hints-host.component.js +3 -3
  255. package/esm5/components/hints-host/hints-host.module.js +9 -3
  256. package/esm5/components/hosted-dropdown/hosted-dropdown.component.js +4 -17
  257. package/esm5/components/label/label.component.js +2 -2
  258. package/esm5/components/link/link.component.js +1 -1
  259. package/esm5/components/loader/loader.component.js +3 -3
  260. package/esm5/components/notification/notification.component.js +1 -1
  261. package/esm5/components/primitive-calendar/primitive-calendar.component.js +3 -3
  262. package/esm5/components/primitive-spin-button/primitive-spin-button.component.js +2 -2
  263. package/esm5/components/primitive-textfield/index.js +2 -1
  264. package/esm5/components/primitive-textfield/primitive-textfield.component.js +43 -104
  265. package/esm5/components/primitive-textfield/primitive-textfield.module.js +7 -2
  266. package/esm5/components/primitive-textfield/value-decoration/value-decoration.component.js +99 -0
  267. package/esm5/components/primitive-year-picker/primitive-year-picker.component.js +3 -3
  268. package/esm5/components/scroll-controls/scroll-controls.component.js +2 -2
  269. package/esm5/components/scrollbar/scrollable.directive.js +17 -5
  270. package/esm5/components/scrollbar/scrollbar.component.js +20 -22
  271. package/esm5/components/theme-night/theme-night.component.js +6 -11
  272. package/esm5/components/tooltip/tooltip.component.js +1 -1
  273. package/esm5/components/wrapper/wrapper.component.js +1 -1
  274. package/esm5/constants/events.js +6 -1
  275. package/esm5/constants/media.js +2 -1
  276. package/esm5/constants/regexp.js +2 -1
  277. package/esm5/constants/version.js +2 -2
  278. package/esm5/directives/border/border.directive.js +51 -0
  279. package/esm5/directives/border/border.module.js +16 -0
  280. package/esm5/directives/border/index.js +3 -0
  281. package/esm5/directives/border/taiga-ui-core-directives-border.js +5 -0
  282. package/esm5/directives/hint/hint.directive.js +10 -7
  283. package/esm5/directives/index.js +2 -1
  284. package/esm5/directives/manual-hint/manual-hint.directive.js +10 -7
  285. package/esm5/directives/pointer-hint/pointer-hint.directive.js +2 -2
  286. package/esm5/directives/textfield-controller/textfield-cleaner.directive.js +4 -2
  287. package/esm5/directives/textfield-controller/textfield-size.directive.js +4 -2
  288. package/esm5/directives/textfield-controller/textfield-type.directive.js +4 -2
  289. package/esm5/interfaces/index.js +1 -1
  290. package/esm5/interfaces/media.js +1 -0
  291. package/esm5/internal/primitive-year-month-pagination/primitive-year-month-pagination.component.js +2 -2
  292. package/esm5/modules/notifications/notification-alert/notification-alert.component.js +2 -2
  293. package/esm5/modules/notifications/notifications-host/notifications-host.component.js +1 -1
  294. package/esm5/tokens/index.js +2 -1
  295. package/esm5/tokens/media.js +9 -0
  296. package/esm5/utils/dom/process-icon.js +4 -2
  297. package/esm5/utils/mask/create-number-mask.js +30 -10
  298. package/esm5/utils/miscellaneous/get-border.js +3 -5
  299. package/fesm2015/taiga-ui-core-abstract.js +4 -2
  300. package/fesm2015/taiga-ui-core-abstract.js.map +1 -1
  301. package/fesm2015/taiga-ui-core-components-button.js +21 -9
  302. package/fesm2015/taiga-ui-core-components-button.js.map +1 -1
  303. package/fesm2015/taiga-ui-core-components-calendar.js +1 -1
  304. package/fesm2015/taiga-ui-core-components-calendar.js.map +1 -1
  305. package/fesm2015/taiga-ui-core-components-data-list.js +6 -5
  306. package/fesm2015/taiga-ui-core-components-data-list.js.map +1 -1
  307. package/fesm2015/taiga-ui-core-components-dialog.js +2 -2
  308. package/fesm2015/taiga-ui-core-components-dialog.js.map +1 -1
  309. package/fesm2015/taiga-ui-core-components-dropdown-box.js +1 -1
  310. package/fesm2015/taiga-ui-core-components-error.js +1 -1
  311. package/fesm2015/taiga-ui-core-components-expand.js +3 -2
  312. package/fesm2015/taiga-ui-core-components-expand.js.map +1 -1
  313. package/fesm2015/taiga-ui-core-components-hints-host.js +12 -6
  314. package/fesm2015/taiga-ui-core-components-hints-host.js.map +1 -1
  315. package/fesm2015/taiga-ui-core-components-hosted-dropdown.js +3 -12
  316. package/fesm2015/taiga-ui-core-components-hosted-dropdown.js.map +1 -1
  317. package/fesm2015/taiga-ui-core-components-label.js +1 -1
  318. package/fesm2015/taiga-ui-core-components-label.js.map +1 -1
  319. package/fesm2015/taiga-ui-core-components-link.js +1 -1
  320. package/fesm2015/taiga-ui-core-components-loader.js +2 -2
  321. package/fesm2015/taiga-ui-core-components-loader.js.map +1 -1
  322. package/fesm2015/taiga-ui-core-components-notification.js +1 -1
  323. package/fesm2015/taiga-ui-core-components-primitive-calendar.js +2 -2
  324. package/fesm2015/taiga-ui-core-components-primitive-calendar.js.map +1 -1
  325. package/fesm2015/taiga-ui-core-components-primitive-spin-button.js +2 -2
  326. package/fesm2015/taiga-ui-core-components-primitive-textfield.js +102 -69
  327. package/fesm2015/taiga-ui-core-components-primitive-textfield.js.map +1 -1
  328. package/fesm2015/taiga-ui-core-components-primitive-year-picker.js +2 -2
  329. package/fesm2015/taiga-ui-core-components-primitive-year-picker.js.map +1 -1
  330. package/fesm2015/taiga-ui-core-components-scroll-controls.js +2 -2
  331. package/fesm2015/taiga-ui-core-components-scrollbar.js +33 -17
  332. package/fesm2015/taiga-ui-core-components-scrollbar.js.map +1 -1
  333. package/fesm2015/taiga-ui-core-components-theme-night.js +3 -11
  334. package/fesm2015/taiga-ui-core-components-theme-night.js.map +1 -1
  335. package/fesm2015/taiga-ui-core-components-tooltip.js +1 -1
  336. package/fesm2015/taiga-ui-core-components-wrapper.js +1 -1
  337. package/fesm2015/taiga-ui-core-constants.js +9 -2
  338. package/fesm2015/taiga-ui-core-constants.js.map +1 -1
  339. package/fesm2015/taiga-ui-core-directives-border.js +57 -0
  340. package/fesm2015/taiga-ui-core-directives-border.js.map +1 -0
  341. package/fesm2015/taiga-ui-core-directives-hint.js +9 -6
  342. package/fesm2015/taiga-ui-core-directives-hint.js.map +1 -1
  343. package/fesm2015/taiga-ui-core-directives-manual-hint.js +9 -6
  344. package/fesm2015/taiga-ui-core-directives-manual-hint.js.map +1 -1
  345. package/fesm2015/taiga-ui-core-directives-pointer-hint.js +1 -1
  346. package/fesm2015/taiga-ui-core-directives-pointer-hint.js.map +1 -1
  347. package/fesm2015/taiga-ui-core-directives-textfield-controller.js +9 -3
  348. package/fesm2015/taiga-ui-core-directives-textfield-controller.js.map +1 -1
  349. package/fesm2015/taiga-ui-core-directives.js +1 -0
  350. package/fesm2015/taiga-ui-core-directives.js.map +1 -1
  351. package/fesm2015/taiga-ui-core-internal-primitive-year-month-pagination.js +1 -1
  352. package/fesm2015/taiga-ui-core-internal-primitive-year-month-pagination.js.map +1 -1
  353. package/fesm2015/taiga-ui-core-modules-notifications.js +2 -2
  354. package/fesm2015/taiga-ui-core-modules-notifications.js.map +1 -1
  355. package/fesm2015/taiga-ui-core-tokens.js +9 -1
  356. package/fesm2015/taiga-ui-core-tokens.js.map +1 -1
  357. package/fesm2015/taiga-ui-core-utils-dom.js +3 -1
  358. package/fesm2015/taiga-ui-core-utils-dom.js.map +1 -1
  359. package/fesm2015/taiga-ui-core-utils-mask.js +27 -9
  360. package/fesm2015/taiga-ui-core-utils-mask.js.map +1 -1
  361. package/fesm2015/taiga-ui-core-utils-miscellaneous.js +2 -4
  362. package/fesm2015/taiga-ui-core-utils-miscellaneous.js.map +1 -1
  363. package/fesm5/taiga-ui-core-abstract.js +4 -2
  364. package/fesm5/taiga-ui-core-abstract.js.map +1 -1
  365. package/fesm5/taiga-ui-core-components-button.js +21 -9
  366. package/fesm5/taiga-ui-core-components-button.js.map +1 -1
  367. package/fesm5/taiga-ui-core-components-calendar.js +1 -1
  368. package/fesm5/taiga-ui-core-components-calendar.js.map +1 -1
  369. package/fesm5/taiga-ui-core-components-data-list.js +6 -5
  370. package/fesm5/taiga-ui-core-components-data-list.js.map +1 -1
  371. package/fesm5/taiga-ui-core-components-dialog.js +2 -2
  372. package/fesm5/taiga-ui-core-components-dialog.js.map +1 -1
  373. package/fesm5/taiga-ui-core-components-dropdown-box.js +1 -1
  374. package/fesm5/taiga-ui-core-components-error.js +1 -1
  375. package/fesm5/taiga-ui-core-components-expand.js +3 -2
  376. package/fesm5/taiga-ui-core-components-expand.js.map +1 -1
  377. package/fesm5/taiga-ui-core-components-hints-host.js +12 -6
  378. package/fesm5/taiga-ui-core-components-hints-host.js.map +1 -1
  379. package/fesm5/taiga-ui-core-components-hosted-dropdown.js +3 -16
  380. package/fesm5/taiga-ui-core-components-hosted-dropdown.js.map +1 -1
  381. package/fesm5/taiga-ui-core-components-label.js +1 -1
  382. package/fesm5/taiga-ui-core-components-label.js.map +1 -1
  383. package/fesm5/taiga-ui-core-components-link.js +1 -1
  384. package/fesm5/taiga-ui-core-components-loader.js +2 -2
  385. package/fesm5/taiga-ui-core-components-loader.js.map +1 -1
  386. package/fesm5/taiga-ui-core-components-notification.js +1 -1
  387. package/fesm5/taiga-ui-core-components-primitive-calendar.js +2 -2
  388. package/fesm5/taiga-ui-core-components-primitive-calendar.js.map +1 -1
  389. package/fesm5/taiga-ui-core-components-primitive-spin-button.js +2 -2
  390. package/fesm5/taiga-ui-core-components-primitive-textfield.js +141 -106
  391. package/fesm5/taiga-ui-core-components-primitive-textfield.js.map +1 -1
  392. package/fesm5/taiga-ui-core-components-primitive-year-picker.js +2 -2
  393. package/fesm5/taiga-ui-core-components-primitive-year-picker.js.map +1 -1
  394. package/fesm5/taiga-ui-core-components-scroll-controls.js +2 -2
  395. package/fesm5/taiga-ui-core-components-scrollbar.js +32 -22
  396. package/fesm5/taiga-ui-core-components-scrollbar.js.map +1 -1
  397. package/fesm5/taiga-ui-core-components-theme-night.js +5 -10
  398. package/fesm5/taiga-ui-core-components-theme-night.js.map +1 -1
  399. package/fesm5/taiga-ui-core-components-tooltip.js +1 -1
  400. package/fesm5/taiga-ui-core-components-wrapper.js +1 -1
  401. package/fesm5/taiga-ui-core-constants.js +9 -2
  402. package/fesm5/taiga-ui-core-constants.js.map +1 -1
  403. package/fesm5/taiga-ui-core-directives-border.js +69 -0
  404. package/fesm5/taiga-ui-core-directives-border.js.map +1 -0
  405. package/fesm5/taiga-ui-core-directives-hint.js +9 -6
  406. package/fesm5/taiga-ui-core-directives-hint.js.map +1 -1
  407. package/fesm5/taiga-ui-core-directives-manual-hint.js +9 -6
  408. package/fesm5/taiga-ui-core-directives-manual-hint.js.map +1 -1
  409. package/fesm5/taiga-ui-core-directives-pointer-hint.js +1 -1
  410. package/fesm5/taiga-ui-core-directives-pointer-hint.js.map +1 -1
  411. package/fesm5/taiga-ui-core-directives-textfield-controller.js +9 -3
  412. package/fesm5/taiga-ui-core-directives-textfield-controller.js.map +1 -1
  413. package/fesm5/taiga-ui-core-directives.js +1 -0
  414. package/fesm5/taiga-ui-core-directives.js.map +1 -1
  415. package/fesm5/taiga-ui-core-internal-primitive-year-month-pagination.js +1 -1
  416. package/fesm5/taiga-ui-core-internal-primitive-year-month-pagination.js.map +1 -1
  417. package/fesm5/taiga-ui-core-modules-notifications.js +2 -2
  418. package/fesm5/taiga-ui-core-modules-notifications.js.map +1 -1
  419. package/fesm5/taiga-ui-core-tokens.js +9 -1
  420. package/fesm5/taiga-ui-core-tokens.js.map +1 -1
  421. package/fesm5/taiga-ui-core-utils-dom.js +3 -1
  422. package/fesm5/taiga-ui-core-utils-dom.js.map +1 -1
  423. package/fesm5/taiga-ui-core-utils-mask.js +30 -10
  424. package/fesm5/taiga-ui-core-utils-mask.js.map +1 -1
  425. package/fesm5/taiga-ui-core-utils-miscellaneous.js +2 -4
  426. package/fesm5/taiga-ui-core-utils-miscellaneous.js.map +1 -1
  427. package/interfaces/index.d.ts +1 -0
  428. package/interfaces/media.d.ts +6 -0
  429. package/interfaces/taiga-ui-core-interfaces.metadata.json +1 -1
  430. package/internal/primitive-year-month-pagination/taiga-ui-core-internal-primitive-year-month-pagination.metadata.json +1 -1
  431. package/modules/notifications/taiga-ui-core-modules-notifications.metadata.json +1 -1
  432. package/package.json +5 -5
  433. package/styles/basic/main.less +2 -4
  434. package/styles/markup/tui-autofill.less +2 -0
  435. package/styles/markup/tui-container-old.less +69 -0
  436. package/styles/markup/tui-form-old.less +141 -0
  437. package/styles/markup/tui-form.less +12 -12
  438. package/styles/markup/tui-group-old.less +322 -0
  439. package/styles/markup/tui-group.less +2 -2
  440. package/styles/markup/tui-mobile-only.less +1 -1
  441. package/styles/markup/tui-row-old.less +157 -0
  442. package/styles/markup/tui-table.less +2 -2
  443. package/styles/mixins/mixins.less +8 -3
  444. package/styles/mixins/picker.less +1 -1
  445. package/styles/mixins/textfield.less +37 -78
  446. package/styles/taiga-ui-global-old.less +18 -0
  447. package/styles/taiga-ui-local-old.less +7 -0
  448. package/styles/theme/variables.less +4 -0
  449. package/styles/theme/wrapper/table.less +4 -0
  450. package/styles/variables/media-old.less +48 -0
  451. package/styles/variables/media.less +4 -4
  452. package/tokens/index.d.ts +1 -0
  453. package/tokens/media.d.ts +3 -0
  454. package/tokens/taiga-ui-core-tokens.metadata.json +1 -1
  455. package/utils/mask/create-number-mask.d.ts +1 -0
  456. package/utils/miscellaneous/get-border.d.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-primitive-calendar.js","sources":["ng://@taiga-ui/core/components/primitive-calendar/primitive-calendar.component.ts","ng://@taiga-ui/core/components/primitive-calendar/primitive-calendar.module.ts","ng://@taiga-ui/core/components/primitive-calendar/taiga-ui-core-components-primitive-calendar.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n Output,\n} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n nullableSame,\n TuiBooleanHandler,\n TuiDay,\n TuiDayRange,\n tuiDefaultProp,\n TuiMonth,\n} from '@taiga-ui/cdk';\nimport {TUI_DEFAULT_MARKER_HANDLER} from '@taiga-ui/core/constants';\nimport {TuiInteractiveState, TuiRangeState} from '@taiga-ui/core/enums';\nimport {TUI_ORDERED_SHORT_WEEK_DAYS, WEEK_DAYS_NAMES} from '@taiga-ui/core/tokens';\nimport {TuiColor, TuiMarkerHandler} from '@taiga-ui/core/types';\nimport {Observable} from 'rxjs';\n\n// @dynamic\n@Component({\n selector: 'tui-primitive-calendar',\n templateUrl: './primitive-calendar.template.html',\n styleUrls: ['./primitive-calendar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPrimitiveCalendarComponent {\n @Input()\n @tuiDefaultProp()\n month: TuiMonth = TuiMonth.currentLocal();\n\n @Input()\n @tuiDefaultProp()\n disabledItemHandler: TuiBooleanHandler<TuiDay> = ALWAYS_FALSE_HANDLER;\n\n @Input()\n @tuiDefaultProp()\n markerHandler: TuiMarkerHandler = TUI_DEFAULT_MARKER_HANDLER;\n\n @Input()\n @tuiDefaultProp()\n value: TuiDayRange | TuiDay | null = null;\n\n @Input()\n @tuiDefaultProp()\n hoveredItem: TuiDay | null = null;\n\n @Input()\n @tuiDefaultProp()\n showAdjacent = true;\n\n @Output()\n readonly hoveredItemChange = new EventEmitter<TuiDay | null>();\n\n @Output()\n readonly dayClick = new EventEmitter<TuiDay>();\n\n private pressedItem: TuiDay | null = null;\n\n private today = TuiDay.currentLocal();\n\n readonly toMarkers = (\n day: TuiDay,\n today: boolean,\n inRange: boolean,\n ): null | [TuiColor | string] | [TuiColor | string, TuiColor | string] => {\n if (today || inRange) {\n return null;\n }\n\n const markers = this.markerHandler(day);\n\n return markers.length === 0 ? null : markers;\n };\n\n constructor(\n @Inject(TUI_ORDERED_SHORT_WEEK_DAYS)\n readonly weekDays$: Observable<WEEK_DAYS_NAMES>,\n ) {}\n\n @HostBinding('class._single')\n get isSingle(): boolean {\n return (\n this.value !== null &&\n (this.value instanceof TuiDay || this.value.isSingleDay)\n );\n }\n\n getItemState(item: TuiDay): TuiInteractiveState | null {\n const {disabledItemHandler, pressedItem, hoveredItem} = this;\n\n if (disabledItemHandler(item)) {\n return TuiInteractiveState.Disabled;\n }\n\n if (pressedItem && pressedItem.daySame(item)) {\n return TuiInteractiveState.Pressed;\n }\n\n if (hoveredItem && hoveredItem.daySame(item)) {\n return TuiInteractiveState.Hovered;\n }\n\n return null;\n }\n\n getItemRange(item: TuiDay): TuiRangeState | null {\n const {value, hoveredItem} = this;\n\n if (!value) {\n return null;\n }\n\n if (value instanceof TuiDay) {\n return value.daySame(item) ? TuiRangeState.Single : null;\n }\n\n if (\n (value.from.daySame(item) && !value.isSingleDay) ||\n (hoveredItem &&\n hoveredItem.dayAfter(value.from) &&\n value.from.daySame(item) &&\n value.isSingleDay) ||\n (hoveredItem &&\n hoveredItem.daySame(item) &&\n hoveredItem.dayBefore(value.from) &&\n value.isSingleDay)\n ) {\n return TuiRangeState.Start;\n }\n\n if (\n (value.to.daySame(item) && !value.isSingleDay) ||\n (hoveredItem &&\n hoveredItem.dayBefore(value.from) &&\n value.from.daySame(item) &&\n value.isSingleDay) ||\n (hoveredItem &&\n hoveredItem.daySame(item) &&\n hoveredItem.dayAfter(value.from) &&\n value.isSingleDay)\n ) {\n return TuiRangeState.End;\n }\n\n return value.isSingleDay && value.from.daySame(item)\n ? TuiRangeState.Single\n : null;\n }\n\n itemIsDisabled(day: TuiDay): boolean {\n const {disabledItemHandler} = this;\n\n return disabledItemHandler(day);\n }\n\n itemIsToday(item: TuiDay): boolean {\n return this.today.daySame(item);\n }\n\n itemIsUnavailable(item: TuiDay): boolean {\n return !this.month.monthSame(item);\n }\n\n itemIsInterval(day: TuiDay): boolean {\n const {value, hoveredItem} = this;\n\n if (value === null || value instanceof TuiDay) {\n return false;\n }\n\n if (!value.isSingleDay) {\n return value.from.daySameOrBefore(day) && value.to.dayAfter(day);\n }\n\n if (hoveredItem === null) {\n return false;\n }\n\n const range = TuiDayRange.sort(value.from, hoveredItem);\n\n return range.from.daySameOrBefore(day) && range.to.dayAfter(day);\n }\n\n onItemHovered(item: TuiDay | false) {\n this.updateHoveredItem(item || null);\n }\n\n onItemPressed(item: TuiDay | false) {\n this.pressedItem = item || null;\n }\n\n onItemClick(item: TuiDay) {\n this.dayClick.emit(item);\n }\n\n private updateHoveredItem(day: TuiDay | null) {\n if (nullableSame(this.hoveredItem, day, (a, b) => a.daySame(b))) {\n return;\n }\n\n this.hoveredItem = day;\n this.hoveredItemChange.emit(day);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiHoveredModule,\n TuiLetModule,\n TuiMapperPipeModule,\n TuiPressedModule,\n TuiRepeatTimesModule,\n} from '@taiga-ui/cdk';\nimport {TuiColorModule} from '@taiga-ui/core/directives/color';\nimport {TuiCalendarSheetPipeModule} from '@taiga-ui/core/pipes';\nimport {TuiPrimitiveCalendarComponent} from './primitive-calendar.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiLetModule,\n TuiMapperPipeModule,\n TuiRepeatTimesModule,\n TuiHoveredModule,\n TuiPressedModule,\n TuiColorModule,\n TuiCalendarSheetPipeModule,\n ],\n declarations: [TuiPrimitiveCalendarComponent],\n exports: [TuiPrimitiveCalendarComponent],\n})\nexport class TuiPrimitiveCalendarModule {}\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-calendar.js","sources":["ng://@taiga-ui/core/components/primitive-calendar/primitive-calendar.component.ts","ng://@taiga-ui/core/components/primitive-calendar/primitive-calendar.module.ts","ng://@taiga-ui/core/components/primitive-calendar/taiga-ui-core-components-primitive-calendar.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n Output,\n} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n nullableSame,\n TuiBooleanHandler,\n TuiDay,\n TuiDayRange,\n tuiDefaultProp,\n TuiMonth,\n} from '@taiga-ui/cdk';\nimport {TUI_DEFAULT_MARKER_HANDLER} from '@taiga-ui/core/constants';\nimport {TuiInteractiveState, TuiRangeState} from '@taiga-ui/core/enums';\nimport {TUI_ORDERED_SHORT_WEEK_DAYS, WEEK_DAYS_NAMES} from '@taiga-ui/core/tokens';\nimport {TuiColor, TuiMarkerHandler} from '@taiga-ui/core/types';\nimport {Observable} from 'rxjs';\n\n// @dynamic\n@Component({\n selector: 'tui-primitive-calendar',\n templateUrl: './primitive-calendar.template.html',\n styleUrls: ['./primitive-calendar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPrimitiveCalendarComponent {\n @Input()\n @tuiDefaultProp()\n month: TuiMonth = TuiMonth.currentLocal();\n\n @Input()\n @tuiDefaultProp()\n disabledItemHandler: TuiBooleanHandler<TuiDay> = ALWAYS_FALSE_HANDLER;\n\n @Input()\n @tuiDefaultProp()\n markerHandler: TuiMarkerHandler = TUI_DEFAULT_MARKER_HANDLER;\n\n @Input()\n @tuiDefaultProp()\n value: TuiDayRange | TuiDay | null = null;\n\n @Input()\n @tuiDefaultProp()\n hoveredItem: TuiDay | null = null;\n\n @Input()\n @tuiDefaultProp()\n showAdjacent = true;\n\n @Output()\n readonly hoveredItemChange = new EventEmitter<TuiDay | null>();\n\n @Output()\n readonly dayClick = new EventEmitter<TuiDay>();\n\n private pressedItem: TuiDay | null = null;\n\n private today = TuiDay.currentLocal();\n\n readonly toMarkers = (\n day: TuiDay,\n today: boolean,\n inRange: boolean,\n ): null | [TuiColor | string] | [TuiColor | string, TuiColor | string] => {\n if (today || inRange) {\n return null;\n }\n\n const markers = this.markerHandler(day);\n\n return markers.length === 0 ? null : markers;\n };\n\n constructor(\n @Inject(TUI_ORDERED_SHORT_WEEK_DAYS)\n readonly weekDays$: Observable<WEEK_DAYS_NAMES>,\n ) {}\n\n @HostBinding('class._single')\n get isSingle(): boolean {\n return (\n this.value !== null &&\n (this.value instanceof TuiDay || this.value.isSingleDay)\n );\n }\n\n getItemState(item: TuiDay): TuiInteractiveState | null {\n const {disabledItemHandler, pressedItem, hoveredItem} = this;\n\n if (disabledItemHandler(item)) {\n return TuiInteractiveState.Disabled;\n }\n\n if (pressedItem && pressedItem.daySame(item)) {\n return TuiInteractiveState.Pressed;\n }\n\n if (hoveredItem && hoveredItem.daySame(item)) {\n return TuiInteractiveState.Hovered;\n }\n\n return null;\n }\n\n getItemRange(item: TuiDay): TuiRangeState | null {\n const {value, hoveredItem} = this;\n\n if (!value) {\n return null;\n }\n\n if (value instanceof TuiDay) {\n return value.daySame(item) ? TuiRangeState.Single : null;\n }\n\n if (\n (value.from.daySame(item) && !value.isSingleDay) ||\n (hoveredItem &&\n hoveredItem.dayAfter(value.from) &&\n value.from.daySame(item) &&\n value.isSingleDay) ||\n (hoveredItem &&\n hoveredItem.daySame(item) &&\n hoveredItem.dayBefore(value.from) &&\n value.isSingleDay)\n ) {\n return TuiRangeState.Start;\n }\n\n if (\n (value.to.daySame(item) && !value.isSingleDay) ||\n (hoveredItem &&\n hoveredItem.dayBefore(value.from) &&\n value.from.daySame(item) &&\n value.isSingleDay) ||\n (hoveredItem &&\n hoveredItem.daySame(item) &&\n hoveredItem.dayAfter(value.from) &&\n value.isSingleDay)\n ) {\n return TuiRangeState.End;\n }\n\n return value.isSingleDay && value.from.daySame(item)\n ? TuiRangeState.Single\n : null;\n }\n\n itemIsDisabled(day: TuiDay): boolean {\n const {disabledItemHandler} = this;\n\n return disabledItemHandler(day);\n }\n\n itemIsToday(item: TuiDay): boolean {\n return this.today.daySame(item);\n }\n\n itemIsUnavailable(item: TuiDay): boolean {\n return !this.month.monthSame(item);\n }\n\n itemIsInterval(day: TuiDay): boolean {\n const {value, hoveredItem} = this;\n\n if (value === null || value instanceof TuiDay) {\n return false;\n }\n\n if (!value.isSingleDay) {\n return value.from.daySameOrBefore(day) && value.to.dayAfter(day);\n }\n\n if (hoveredItem === null) {\n return false;\n }\n\n const range = TuiDayRange.sort(value.from, hoveredItem);\n\n return range.from.daySameOrBefore(day) && range.to.dayAfter(day);\n }\n\n onItemHovered(item: TuiDay | false) {\n this.updateHoveredItem(item || null);\n }\n\n onItemPressed(item: TuiDay | false) {\n this.pressedItem = item || null;\n }\n\n onItemClick(item: TuiDay) {\n this.dayClick.emit(item);\n }\n\n private updateHoveredItem(day: TuiDay | null) {\n if (nullableSame(this.hoveredItem, day, (a, b) => a.daySame(b))) {\n return;\n }\n\n this.hoveredItem = day;\n this.hoveredItemChange.emit(day);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiHoveredModule,\n TuiLetModule,\n TuiMapperPipeModule,\n TuiPressedModule,\n TuiRepeatTimesModule,\n} from '@taiga-ui/cdk';\nimport {TuiColorModule} from '@taiga-ui/core/directives/color';\nimport {TuiCalendarSheetPipeModule} from '@taiga-ui/core/pipes';\nimport {TuiPrimitiveCalendarComponent} from './primitive-calendar.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiLetModule,\n TuiMapperPipeModule,\n TuiRepeatTimesModule,\n TuiHoveredModule,\n TuiPressedModule,\n TuiColorModule,\n TuiCalendarSheetPipeModule,\n ],\n declarations: [TuiPrimitiveCalendarComponent],\n exports: [TuiPrimitiveCalendarComponent],\n})\nexport class TuiPrimitiveCalendarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -89,8 +89,8 @@ var TuiPrimitiveSpinButtonComponent = /** @class */ (function (_super) {
89
89
  Component({
90
90
  selector: 'tui-primitive-spin-button',
91
91
  changeDetection: ChangeDetectionStrategy.OnPush,
92
- template: "<div\n *ngIf=\"spinTexts$ | async as texts\"\n class=\"wrapper\"\n tuiPreventDefault=\"mousedown\"\n #wrapper\n [tuiFocusable]=\"computedFocusable\"\n (tuiFocusedChange)=\"onFocused($event)\"\n (tuiFocusVisibleChange)=\"onFocusVisible($event)\"\n (keydown.arrowLeft)=\"onLeftClick()\"\n (keydown.arrowRight)=\"onRightClick()\"\n>\n <button\n tuiIconButton\n type=\"button\"\n size=\"xs\"\n appearance=\"\"\n automation-id=\"tui-primitive-spin-button__left\"\n icon=\"tuiIconChevronLeftLarge\"\n class=\"arrow\"\n [class.arrow_hidden]=\"leftComputedDisabled\"\n [title]=\"texts[0]\"\n [focusable]=\"false\"\n (click)=\"onLeftClick()\"\n ></button>\n <span class=\"content\">\n <ng-content></ng-content>\n </span>\n <button\n tuiIconButton\n type=\"button\"\n size=\"xs\"\n appearance=\"\"\n automation-id=\"tui-primitive-spin-button__right\"\n icon=\"tuiIconChevronRightLarge\"\n class=\"arrow\"\n [class.arrow_hidden]=\"rightComputedDisabled\"\n [title]=\"texts[1]\"\n [focusable]=\"false\"\n (click)=\"onRightClick()\"\n ></button>\n</div>\n",
93
- styles: [":host{font:var(--tui-font-text-l);display:block;text-align:center;font-weight:700}.wrapper{display:flex;align-items:center;justify-content:space-between;outline:0}.arrow{margin:0 .25rem}.arrow_hidden{visibility:hidden}.content{padding:0 .5rem}:host._focus-visible .content{box-shadow:0 0 0 1px var(--tui-focus)}"]
92
+ template: "<div\n *ngIf=\"spinTexts$ | async as texts\"\n #wrapper\n tuiPreventDefault=\"mousedown\"\n class=\"wrapper\"\n [tuiFocusable]=\"computedFocusable\"\n (tuiFocusedChange)=\"onFocused($event)\"\n (tuiFocusVisibleChange)=\"onFocusVisible($event)\"\n (keydown.arrowLeft)=\"onLeftClick()\"\n (keydown.arrowRight)=\"onRightClick()\"\n>\n <button\n tuiIconButton\n type=\"button\"\n size=\"xs\"\n appearance=\"\"\n automation-id=\"tui-primitive-spin-button__left\"\n icon=\"tuiIconChevronLeftLarge\"\n class=\"arrow\"\n [class.arrow_hidden]=\"leftComputedDisabled\"\n [title]=\"texts[0]\"\n [focusable]=\"false\"\n (click)=\"onLeftClick()\"\n ></button>\n <span class=\"content\">\n <ng-content></ng-content>\n </span>\n <button\n tuiIconButton\n type=\"button\"\n size=\"xs\"\n appearance=\"\"\n automation-id=\"tui-primitive-spin-button__right\"\n icon=\"tuiIconChevronRightLarge\"\n class=\"arrow\"\n [class.arrow_hidden]=\"rightComputedDisabled\"\n [title]=\"texts[1]\"\n [focusable]=\"false\"\n (click)=\"onRightClick()\"\n ></button>\n</div>\n",
93
+ styles: [":host{display:block;font:var(--tui-font-text-l);text-align:center;font-weight:700}.wrapper{display:flex;align-items:center;justify-content:space-between;outline:0}.arrow{margin:0 .25rem}.arrow_hidden{visibility:hidden}.content{padding:0 .5rem}:host._focus-visible .content{box-shadow:0 0 0 1px var(--tui-focus)}"]
94
94
  }),
95
95
  __param(0, Inject(TUI_SPIN_TEXTS))
96
96
  ], TuiPrimitiveSpinButtonComponent);
@@ -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