@taiga-ui/core 2.55.0 → 2.58.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 (795) hide show
  1. package/bundles/taiga-ui-core-abstract.umd.js +15 -15
  2. package/bundles/taiga-ui-core-abstract.umd.js.map +1 -1
  3. package/bundles/taiga-ui-core-abstract.umd.min.js.map +1 -1
  4. package/bundles/taiga-ui-core-animations.umd.js +138 -138
  5. package/bundles/taiga-ui-core-animations.umd.js.map +1 -1
  6. package/bundles/taiga-ui-core-animations.umd.min.js.map +1 -1
  7. package/bundles/taiga-ui-core-components-alert.umd.js +13 -13
  8. package/bundles/taiga-ui-core-components-alert.umd.js.map +1 -1
  9. package/bundles/taiga-ui-core-components-alert.umd.min.js +1 -1
  10. package/bundles/taiga-ui-core-components-alert.umd.min.js.map +1 -1
  11. package/bundles/taiga-ui-core-components-button.umd.js +16 -16
  12. package/bundles/taiga-ui-core-components-button.umd.js.map +1 -1
  13. package/bundles/taiga-ui-core-components-button.umd.min.js.map +1 -1
  14. package/bundles/taiga-ui-core-components-calendar.umd.js +3 -3
  15. package/bundles/taiga-ui-core-components-calendar.umd.js.map +1 -1
  16. package/bundles/taiga-ui-core-components-calendar.umd.min.js +1 -1
  17. package/bundles/taiga-ui-core-components-calendar.umd.min.js.map +1 -1
  18. package/bundles/taiga-ui-core-components-data-list.umd.js +34 -34
  19. package/bundles/taiga-ui-core-components-data-list.umd.js.map +1 -1
  20. package/bundles/taiga-ui-core-components-data-list.umd.min.js.map +1 -1
  21. package/bundles/taiga-ui-core-components-dialog.umd.js +24 -24
  22. package/bundles/taiga-ui-core-components-dialog.umd.js.map +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 +40 -40
  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 +6 -6
  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 +14 -14
  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 +19 -19
  37. package/bundles/taiga-ui-core-components-group.umd.js.map +1 -1
  38. package/bundles/taiga-ui-core-components-group.umd.min.js +1 -1
  39. package/bundles/taiga-ui-core-components-group.umd.min.js.map +1 -1
  40. package/bundles/taiga-ui-core-components-hints-host.umd.js +47 -47
  41. package/bundles/taiga-ui-core-components-hints-host.umd.js.map +1 -1
  42. package/bundles/taiga-ui-core-components-hints-host.umd.min.js.map +1 -1
  43. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js +12 -12
  44. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js.map +1 -1
  45. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.min.js +1 -1
  46. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.min.js.map +1 -1
  47. package/bundles/taiga-ui-core-components-label.umd.js +6 -6
  48. package/bundles/taiga-ui-core-components-label.umd.js.map +1 -1
  49. package/bundles/taiga-ui-core-components-label.umd.min.js +1 -1
  50. package/bundles/taiga-ui-core-components-label.umd.min.js.map +1 -1
  51. package/bundles/taiga-ui-core-components-link.umd.js +11 -11
  52. package/bundles/taiga-ui-core-components-link.umd.js.map +1 -1
  53. package/bundles/taiga-ui-core-components-link.umd.min.js.map +1 -1
  54. package/bundles/taiga-ui-core-components-loader.umd.js +4 -4
  55. package/bundles/taiga-ui-core-components-loader.umd.js.map +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 +10 -10
  58. package/bundles/taiga-ui-core-components-notification.umd.js.map +1 -1
  59. package/bundles/taiga-ui-core-components-notification.umd.min.js +1 -1
  60. package/bundles/taiga-ui-core-components-notification.umd.min.js.map +1 -1
  61. package/bundles/taiga-ui-core-components-primitive-calendar.umd.js +2 -2
  62. package/bundles/taiga-ui-core-components-primitive-calendar.umd.js.map +1 -1
  63. package/bundles/taiga-ui-core-components-primitive-calendar.umd.min.js.map +1 -1
  64. package/bundles/taiga-ui-core-components-primitive-checkbox.umd.js +9 -9
  65. package/bundles/taiga-ui-core-components-primitive-checkbox.umd.js.map +1 -1
  66. package/bundles/taiga-ui-core-components-primitive-checkbox.umd.min.js +1 -1
  67. package/bundles/taiga-ui-core-components-primitive-checkbox.umd.min.js.map +1 -1
  68. package/bundles/taiga-ui-core-components-primitive-spin-button.umd.js +4 -4
  69. package/bundles/taiga-ui-core-components-primitive-spin-button.umd.js.map +1 -1
  70. package/bundles/taiga-ui-core-components-primitive-spin-button.umd.min.js +1 -1
  71. package/bundles/taiga-ui-core-components-primitive-spin-button.umd.min.js.map +1 -1
  72. package/bundles/taiga-ui-core-components-primitive-textfield.umd.js +57 -57
  73. package/bundles/taiga-ui-core-components-primitive-textfield.umd.js.map +1 -1
  74. package/bundles/taiga-ui-core-components-primitive-textfield.umd.min.js +1 -1
  75. package/bundles/taiga-ui-core-components-primitive-textfield.umd.min.js.map +1 -1
  76. package/bundles/taiga-ui-core-components-primitive-year-picker.umd.js +2 -2
  77. package/bundles/taiga-ui-core-components-primitive-year-picker.umd.js.map +1 -1
  78. package/bundles/taiga-ui-core-components-primitive-year-picker.umd.min.js.map +1 -1
  79. package/bundles/taiga-ui-core-components-root.umd.js +6 -6
  80. package/bundles/taiga-ui-core-components-root.umd.js.map +1 -1
  81. package/bundles/taiga-ui-core-components-root.umd.min.js +1 -1
  82. package/bundles/taiga-ui-core-components-root.umd.min.js.map +1 -1
  83. package/bundles/taiga-ui-core-components-scroll-controls.umd.js +28 -28
  84. package/bundles/taiga-ui-core-components-scroll-controls.umd.js.map +1 -1
  85. package/bundles/taiga-ui-core-components-scroll-controls.umd.min.js +1 -1
  86. package/bundles/taiga-ui-core-components-scroll-controls.umd.min.js.map +1 -1
  87. package/bundles/taiga-ui-core-components-scrollbar.umd.js +10 -10
  88. package/bundles/taiga-ui-core-components-scrollbar.umd.js.map +1 -1
  89. package/bundles/taiga-ui-core-components-scrollbar.umd.min.js +1 -1
  90. package/bundles/taiga-ui-core-components-scrollbar.umd.min.js.map +1 -1
  91. package/bundles/taiga-ui-core-components-svg.umd.js +17 -17
  92. package/bundles/taiga-ui-core-components-svg.umd.js.map +1 -1
  93. package/bundles/taiga-ui-core-components-svg.umd.min.js +1 -1
  94. package/bundles/taiga-ui-core-components-svg.umd.min.js.map +1 -1
  95. package/bundles/taiga-ui-core-components-theme-night.umd.js +2 -2
  96. package/bundles/taiga-ui-core-components-theme-night.umd.js.map +1 -1
  97. package/bundles/taiga-ui-core-components-theme-night.umd.min.js.map +1 -1
  98. package/bundles/taiga-ui-core-components-tooltip.umd.js +9 -9
  99. package/bundles/taiga-ui-core-components-tooltip.umd.js.map +1 -1
  100. package/bundles/taiga-ui-core-components-tooltip.umd.min.js +1 -1
  101. package/bundles/taiga-ui-core-components-tooltip.umd.min.js.map +1 -1
  102. package/bundles/taiga-ui-core-constants.umd.js +17 -17
  103. package/bundles/taiga-ui-core-constants.umd.js.map +1 -1
  104. package/bundles/taiga-ui-core-constants.umd.min.js +1 -1
  105. package/bundles/taiga-ui-core-constants.umd.min.js.map +1 -1
  106. package/bundles/taiga-ui-core-directives-color.umd.js +6 -6
  107. package/bundles/taiga-ui-core-directives-color.umd.js.map +1 -1
  108. package/bundles/taiga-ui-core-directives-color.umd.min.js.map +1 -1
  109. package/bundles/taiga-ui-core-directives-described-by.umd.js +8 -8
  110. package/bundles/taiga-ui-core-directives-described-by.umd.js.map +1 -1
  111. package/bundles/taiga-ui-core-directives-described-by.umd.min.js.map +1 -1
  112. package/bundles/taiga-ui-core-directives-dropdown-controller.umd.js +11 -11
  113. package/bundles/taiga-ui-core-directives-dropdown-controller.umd.js.map +1 -1
  114. package/bundles/taiga-ui-core-directives-dropdown-controller.umd.min.js.map +1 -1
  115. package/bundles/taiga-ui-core-directives-dropdown.umd.js +2 -2
  116. package/bundles/taiga-ui-core-directives-dropdown.umd.js.map +1 -1
  117. package/bundles/taiga-ui-core-directives-dropdown.umd.min.js.map +1 -1
  118. package/bundles/taiga-ui-core-directives-hint-controller.umd.js +8 -8
  119. package/bundles/taiga-ui-core-directives-hint-controller.umd.js.map +1 -1
  120. package/bundles/taiga-ui-core-directives-hint-controller.umd.min.js.map +1 -1
  121. package/bundles/taiga-ui-core-directives-hint.umd.js +7 -7
  122. package/bundles/taiga-ui-core-directives-hint.umd.js.map +1 -1
  123. package/bundles/taiga-ui-core-directives-hint.umd.min.js.map +1 -1
  124. package/bundles/taiga-ui-core-directives-manual-hint.umd.js +4 -4
  125. package/bundles/taiga-ui-core-directives-manual-hint.umd.js.map +1 -1
  126. package/bundles/taiga-ui-core-directives-manual-hint.umd.min.js.map +1 -1
  127. package/bundles/taiga-ui-core-directives-mask-accessor.umd.js +1 -1
  128. package/bundles/taiga-ui-core-directives-mask-accessor.umd.js.map +1 -1
  129. package/bundles/taiga-ui-core-directives-mask-accessor.umd.min.js.map +1 -1
  130. package/bundles/taiga-ui-core-directives-mode.umd.js +2 -2
  131. package/bundles/taiga-ui-core-directives-mode.umd.js.map +1 -1
  132. package/bundles/taiga-ui-core-directives-mode.umd.min.js.map +1 -1
  133. package/bundles/taiga-ui-core-directives-pointer-hint.umd.js +5 -5
  134. package/bundles/taiga-ui-core-directives-pointer-hint.umd.js.map +1 -1
  135. package/bundles/taiga-ui-core-directives-pointer-hint.umd.min.js.map +1 -1
  136. package/bundles/taiga-ui-core-directives-scroll-into-view.umd.js +1 -1
  137. package/bundles/taiga-ui-core-directives-scroll-into-view.umd.js.map +1 -1
  138. package/bundles/taiga-ui-core-directives-scroll-into-view.umd.min.js.map +1 -1
  139. package/bundles/taiga-ui-core-directives-table-mode.umd.js +2 -2
  140. package/bundles/taiga-ui-core-directives-table-mode.umd.js.map +1 -1
  141. package/bundles/taiga-ui-core-directives-table-mode.umd.min.js.map +1 -1
  142. package/bundles/taiga-ui-core-directives-textfield-controller.umd.js +35 -35
  143. package/bundles/taiga-ui-core-directives-textfield-controller.umd.js.map +1 -1
  144. package/bundles/taiga-ui-core-directives-textfield-controller.umd.min.js.map +1 -1
  145. package/bundles/taiga-ui-core-directives-wrapper.umd.js +9 -9
  146. package/bundles/taiga-ui-core-directives-wrapper.umd.js.map +1 -1
  147. package/bundles/taiga-ui-core-directives-wrapper.umd.min.js.map +1 -1
  148. package/bundles/taiga-ui-core-enums.umd.js +1 -0
  149. package/bundles/taiga-ui-core-enums.umd.js.map +1 -1
  150. package/bundles/taiga-ui-core-enums.umd.min.js +1 -1
  151. package/bundles/taiga-ui-core-enums.umd.min.js.map +1 -1
  152. package/bundles/taiga-ui-core-internal-primitive-year-month-pagination.umd.js +1 -1
  153. package/bundles/taiga-ui-core-internal-primitive-year-month-pagination.umd.js.map +1 -1
  154. package/bundles/taiga-ui-core-internal-primitive-year-month-pagination.umd.min.js.map +1 -1
  155. package/bundles/taiga-ui-core-internal-svg-defs-host.umd.js +1 -1
  156. package/bundles/taiga-ui-core-internal-svg-defs-host.umd.js.map +1 -1
  157. package/bundles/taiga-ui-core-internal-svg-defs-host.umd.min.js.map +1 -1
  158. package/bundles/taiga-ui-core-observables.umd.js +2 -2
  159. package/bundles/taiga-ui-core-observables.umd.js.map +1 -1
  160. package/bundles/taiga-ui-core-observables.umd.min.js.map +1 -1
  161. package/bundles/taiga-ui-core-pipes-calendar-sheet.umd.js +1 -1
  162. package/bundles/taiga-ui-core-pipes-calendar-sheet.umd.js.map +1 -1
  163. package/bundles/taiga-ui-core-pipes-calendar-sheet.umd.min.js.map +1 -1
  164. package/bundles/taiga-ui-core-pipes-format-number.umd.js +1 -1
  165. package/bundles/taiga-ui-core-pipes-format-number.umd.js.map +1 -1
  166. package/bundles/taiga-ui-core-pipes-format-number.umd.min.js.map +1 -1
  167. package/bundles/taiga-ui-core-pipes-format-phone.umd.js +3 -3
  168. package/bundles/taiga-ui-core-pipes-format-phone.umd.js.map +1 -1
  169. package/bundles/taiga-ui-core-pipes-format-phone.umd.min.js.map +1 -1
  170. package/bundles/taiga-ui-core-pipes-month.umd.js +1 -1
  171. package/bundles/taiga-ui-core-pipes-month.umd.js.map +1 -1
  172. package/bundles/taiga-ui-core-pipes-month.umd.min.js.map +1 -1
  173. package/bundles/taiga-ui-core-pipes-pluralize.umd.js +1 -1
  174. package/bundles/taiga-ui-core-pipes-pluralize.umd.js.map +1 -1
  175. package/bundles/taiga-ui-core-pipes-pluralize.umd.min.js.map +1 -1
  176. package/bundles/taiga-ui-core-providers.umd.js +2 -2
  177. package/bundles/taiga-ui-core-providers.umd.js.map +1 -1
  178. package/bundles/taiga-ui-core-providers.umd.min.js.map +1 -1
  179. package/bundles/taiga-ui-core-services.umd.js +7 -7
  180. package/bundles/taiga-ui-core-services.umd.js.map +1 -1
  181. package/bundles/taiga-ui-core-services.umd.min.js.map +1 -1
  182. package/bundles/taiga-ui-core-tokens.umd.js +40 -40
  183. package/bundles/taiga-ui-core-tokens.umd.js.map +1 -1
  184. package/bundles/taiga-ui-core-tokens.umd.min.js.map +1 -1
  185. package/bundles/taiga-ui-core-utils-dom.umd.js +16 -16
  186. package/bundles/taiga-ui-core-utils-dom.umd.js.map +1 -1
  187. package/bundles/taiga-ui-core-utils-dom.umd.min.js.map +1 -1
  188. package/bundles/taiga-ui-core-utils-format.umd.js +17 -17
  189. package/bundles/taiga-ui-core-utils-format.umd.js.map +1 -1
  190. package/bundles/taiga-ui-core-utils-format.umd.min.js.map +1 -1
  191. package/bundles/taiga-ui-core-utils-mask.umd.js +28 -28
  192. package/bundles/taiga-ui-core-utils-mask.umd.js.map +1 -1
  193. package/bundles/taiga-ui-core-utils-mask.umd.min.js.map +1 -1
  194. package/bundles/taiga-ui-core-utils-miscellaneous.umd.js +12 -12
  195. package/bundles/taiga-ui-core-utils-miscellaneous.umd.js.map +1 -1
  196. package/bundles/taiga-ui-core-utils-miscellaneous.umd.min.js.map +1 -1
  197. package/bundles/taiga-ui-core-utils-polyfills.umd.js +4 -4
  198. package/bundles/taiga-ui-core-utils-polyfills.umd.js.map +1 -1
  199. package/bundles/taiga-ui-core-utils-polyfills.umd.min.js.map +1 -1
  200. package/components/alert/taiga-ui-core-components-alert.metadata.json +1 -1
  201. package/components/calendar/taiga-ui-core-components-calendar.metadata.json +1 -1
  202. package/components/dropdown-box/taiga-ui-core-components-dropdown-box.metadata.json +1 -1
  203. package/components/error/taiga-ui-core-components-error.metadata.json +1 -1
  204. package/components/expand/taiga-ui-core-components-expand.metadata.json +1 -1
  205. package/components/group/taiga-ui-core-components-group.metadata.json +1 -1
  206. package/components/hosted-dropdown/taiga-ui-core-components-hosted-dropdown.metadata.json +1 -1
  207. package/components/label/taiga-ui-core-components-label.metadata.json +1 -1
  208. package/components/notification/taiga-ui-core-components-notification.metadata.json +1 -1
  209. package/components/primitive-checkbox/taiga-ui-core-components-primitive-checkbox.metadata.json +1 -1
  210. package/components/primitive-spin-button/taiga-ui-core-components-primitive-spin-button.metadata.json +1 -1
  211. package/components/primitive-textfield/taiga-ui-core-components-primitive-textfield.metadata.json +1 -1
  212. package/components/root/taiga-ui-core-components-root.metadata.json +1 -1
  213. package/components/scroll-controls/taiga-ui-core-components-scroll-controls.metadata.json +1 -1
  214. package/components/scrollbar/taiga-ui-core-components-scrollbar.metadata.json +1 -1
  215. package/components/svg/taiga-ui-core-components-svg.metadata.json +1 -1
  216. package/components/tooltip/taiga-ui-core-components-tooltip.metadata.json +1 -1
  217. package/constants/taiga-ui-core-constants.metadata.json +1 -1
  218. package/constants/version.d.ts +1 -1
  219. package/directives/dropdown-controller/taiga-ui-core-directives-dropdown-controller.metadata.json +1 -1
  220. package/enums/appearance.d.ts +1 -0
  221. package/enums/taiga-ui-core-enums.metadata.json +1 -1
  222. package/esm2015/abstract/abstract-dropdown.js +12 -12
  223. package/esm2015/abstract/abstract-hint-options.js +2 -2
  224. package/esm2015/abstract/abstract-hint.js +4 -4
  225. package/esm2015/animations/animations.js +140 -140
  226. package/esm2015/components/alert/alert.component.js +12 -12
  227. package/esm2015/components/alert/alert.service.js +3 -3
  228. package/esm2015/components/button/button-options.js +3 -3
  229. package/esm2015/components/button/button.component.js +15 -15
  230. package/esm2015/components/calendar/calendar.component.js +4 -4
  231. package/esm2015/components/data-list/data-list-dropdown-manager.directive.js +7 -7
  232. package/esm2015/components/data-list/data-list.component.js +12 -12
  233. package/esm2015/components/data-list/data-list.directive.js +2 -2
  234. package/esm2015/components/data-list/opt-group.directive.js +5 -5
  235. package/esm2015/components/data-list/option/option.component.js +12 -12
  236. package/esm2015/components/dialog/dialog.component.js +12 -12
  237. package/esm2015/components/dialog/dialog.directive.js +4 -4
  238. package/esm2015/components/dialog/dialog.providers.js +7 -7
  239. package/esm2015/components/dialog/dialog.service.js +5 -5
  240. package/esm2015/components/dropdown-box/dropdown-box.component.js +41 -41
  241. package/esm2015/components/error/error.component.js +7 -7
  242. package/esm2015/components/expand/expand-content.directive.js +2 -2
  243. package/esm2015/components/expand/expand.component.js +14 -14
  244. package/esm2015/components/group/group-styles.component.js +2 -2
  245. package/esm2015/components/group/group.component.js +7 -5
  246. package/esm2015/components/group/group.directive.js +15 -15
  247. package/esm2015/components/hints-host/hint-box/hint-box.component.js +46 -46
  248. package/esm2015/components/hints-host/hints-host.component.js +3 -3
  249. package/esm2015/components/hosted-dropdown/hosted-dropdown-connector.directive.js +2 -2
  250. package/esm2015/components/hosted-dropdown/hosted-dropdown.component.js +12 -12
  251. package/esm2015/components/label/label.component.js +7 -7
  252. package/esm2015/components/link/link.component.js +12 -12
  253. package/esm2015/components/loader/loader-options.js +3 -3
  254. package/esm2015/components/loader/loader.component.js +3 -3
  255. package/esm2015/components/notification/notification.component.js +11 -11
  256. package/esm2015/components/primitive-calendar/primitive-calendar.component.js +3 -3
  257. package/esm2015/components/primitive-checkbox/checkbox-options.js +5 -5
  258. package/esm2015/components/primitive-checkbox/primitive-checkbox.component.js +6 -6
  259. package/esm2015/components/primitive-spin-button/primitive-spin-button.component.js +5 -5
  260. package/esm2015/components/primitive-textfield/primitive-textfield-options.js +4 -4
  261. package/esm2015/components/primitive-textfield/primitive-textfield.component.js +30 -30
  262. package/esm2015/components/primitive-textfield/primitive-textfield.directive.js +2 -2
  263. package/esm2015/components/primitive-textfield/textfield/textfield.component.js +14 -14
  264. package/esm2015/components/primitive-textfield/value-decoration/value-decoration.component.js +12 -12
  265. package/esm2015/components/primitive-year-picker/primitive-year-picker.component.js +3 -3
  266. package/esm2015/components/root/root.component.js +7 -7
  267. package/esm2015/components/scroll-controls/scroll-controls.component.js +6 -6
  268. package/esm2015/components/scroll-controls/scrollbar-wrapper.directive.js +2 -2
  269. package/esm2015/components/scroll-controls/scrollbar.directive.js +23 -23
  270. package/esm2015/components/scrollbar/scroll-ref.directive.js +2 -2
  271. package/esm2015/components/scrollbar/scrollable.directive.js +2 -2
  272. package/esm2015/components/scrollbar/scrollbar.component.js +9 -9
  273. package/esm2015/components/svg/svg.component.js +18 -18
  274. package/esm2015/components/theme-night/theme-night.component.js +3 -3
  275. package/esm2015/components/tooltip/tooltip.component.js +10 -10
  276. package/esm2015/constants/decimal-symbols.js +2 -2
  277. package/esm2015/constants/default-icons-path.js +2 -2
  278. package/esm2015/constants/editing-keys.js +10 -10
  279. package/esm2015/constants/events.js +5 -5
  280. package/esm2015/constants/mask-caret-trap.js +2 -2
  281. package/esm2015/constants/version.js +2 -2
  282. package/esm2015/directives/color/color.directive.js +7 -7
  283. package/esm2015/directives/described-by/described-by.directive.js +5 -5
  284. package/esm2015/directives/described-by/described-by.providers.js +3 -3
  285. package/esm2015/directives/dropdown/dropdown.directive.js +3 -3
  286. package/esm2015/directives/dropdown-controller/dropdown-controller.directive.js +10 -10
  287. package/esm2015/directives/dropdown-controller/dropdown-controller.provider.js +2 -2
  288. package/esm2015/directives/dropdown-controller/dropdown-controller.token.js +2 -2
  289. package/esm2015/directives/hint/hint-options.js +3 -3
  290. package/esm2015/directives/hint/hint.directive.js +6 -6
  291. package/esm2015/directives/hint-controller/hint-controller.directive.js +7 -7
  292. package/esm2015/directives/hint-controller/hint-controller.provider.js +2 -2
  293. package/esm2015/directives/hint-controller/hint-controller.token.js +2 -2
  294. package/esm2015/directives/manual-hint/manual-hint-options.js +2 -2
  295. package/esm2015/directives/manual-hint/manual-hint.directive.js +4 -4
  296. package/esm2015/directives/mask-accessor/mask-accessor.directive.js +2 -2
  297. package/esm2015/directives/mode/mode.directive.js +3 -3
  298. package/esm2015/directives/pointer-hint/pointer-hint-options.js +2 -2
  299. package/esm2015/directives/pointer-hint/pointer-hint.directive.js +5 -5
  300. package/esm2015/directives/scroll-into-view/scroll-into-view.directive.js +2 -2
  301. package/esm2015/directives/table-mode/table-mode.directive.js +3 -3
  302. package/esm2015/directives/textfield-controller/textfield-autocomplete.directive.js +5 -5
  303. package/esm2015/directives/textfield-controller/textfield-cleaner.directive.js +4 -4
  304. package/esm2015/directives/textfield-controller/textfield-controller.provider.js +2 -2
  305. package/esm2015/directives/textfield-controller/textfield-custom-content.directive.js +5 -5
  306. package/esm2015/directives/textfield-controller/textfield-example-text.directive.js +5 -5
  307. package/esm2015/directives/textfield-controller/textfield-input-mode.directive.js +5 -5
  308. package/esm2015/directives/textfield-controller/textfield-label-outside.directive.js +4 -4
  309. package/esm2015/directives/textfield-controller/textfield-max-length.directive.js +4 -4
  310. package/esm2015/directives/textfield-controller/textfield-size.directive.js +5 -5
  311. package/esm2015/directives/textfield-controller/textfield-type.directive.js +5 -5
  312. package/esm2015/directives/textfield-controller/textfield.controller.js +2 -2
  313. package/esm2015/directives/wrapper/wrapper.directive.js +10 -10
  314. package/esm2015/enums/appearance.js +2 -1
  315. package/esm2015/enums/base-color.js +1 -1
  316. package/esm2015/enums/button-shape.js +1 -1
  317. package/esm2015/enums/decimal.js +1 -1
  318. package/esm2015/enums/dropdown-animation.js +1 -1
  319. package/esm2015/enums/dropdown-width.js +1 -1
  320. package/esm2015/enums/hint-mode.js +1 -1
  321. package/esm2015/enums/interactive-state.js +1 -1
  322. package/esm2015/enums/link-mode.js +1 -1
  323. package/esm2015/enums/notification.js +1 -1
  324. package/esm2015/enums/orientation.js +1 -1
  325. package/esm2015/enums/range-state.js +1 -1
  326. package/esm2015/enums/support-color.js +1 -1
  327. package/esm2015/internal/primitive-year-month-pagination/primitive-year-month-pagination.component.js +2 -2
  328. package/esm2015/internal/svg-defs-host/svg-defs-host.component.js +2 -2
  329. package/esm2015/observables/smart-search.js +3 -3
  330. package/esm2015/pipes/calendar-sheet/calendar-sheet.pipe.js +2 -2
  331. package/esm2015/pipes/format-number/format-number.pipe.js +2 -2
  332. package/esm2015/pipes/format-phone/format-phone.pipe.js +4 -4
  333. package/esm2015/pipes/month/month.pipe.js +2 -2
  334. package/esm2015/pipes/pluralize/pluralize.pipe.js +2 -2
  335. package/esm2015/providers/is-mobile-resolution.provider.js +2 -2
  336. package/esm2015/providers/mode.provider.js +2 -2
  337. package/esm2015/services/hint.service.js +2 -2
  338. package/esm2015/services/night-theme.service.js +4 -4
  339. package/esm2015/services/svg.service.js +4 -4
  340. package/esm2015/tokens/animation-options.js +2 -2
  341. package/esm2015/tokens/animations-duration.js +2 -2
  342. package/esm2015/tokens/assert-enabled.js +2 -2
  343. package/esm2015/tokens/data-list-accessor.js +2 -2
  344. package/esm2015/tokens/data-list-host.js +2 -2
  345. package/esm2015/tokens/document-or-shadow-root.js +2 -2
  346. package/esm2015/tokens/dropdown-directive.js +2 -2
  347. package/esm2015/tokens/element-ref.js +2 -2
  348. package/esm2015/tokens/first-day-of-week.js +2 -2
  349. package/esm2015/tokens/i18n.js +10 -10
  350. package/esm2015/tokens/icon-place.js +3 -3
  351. package/esm2015/tokens/icons-path.js +2 -2
  352. package/esm2015/tokens/icons.js +2 -2
  353. package/esm2015/tokens/is-mobile-resolution.js +3 -3
  354. package/esm2015/tokens/media.js +2 -2
  355. package/esm2015/tokens/mode.js +2 -2
  356. package/esm2015/tokens/notification-options.js +3 -3
  357. package/esm2015/tokens/number-format.js +3 -3
  358. package/esm2015/tokens/option-content.js +2 -2
  359. package/esm2015/tokens/ordered-short-week-days.js +2 -2
  360. package/esm2015/tokens/scroll-ref.js +2 -2
  361. package/esm2015/tokens/svg-content-processor.js +2 -2
  362. package/esm2015/tokens/svg-src-processor.js +2 -2
  363. package/esm2015/tokens/textfield-appearance.js +2 -2
  364. package/esm2015/tokens/textfield-host.js +2 -2
  365. package/esm2015/tokens/theme.js +3 -3
  366. package/esm2015/tokens/value-accessor.js +2 -2
  367. package/esm2015/utils/dom/are-css-vars-supported.js +2 -2
  368. package/esm2015/utils/dom/check-fixed-position.js +3 -3
  369. package/esm2015/utils/dom/get-safe-area-size.js +4 -4
  370. package/esm2015/utils/dom/process-icon.js +11 -11
  371. package/esm2015/utils/format/format-number.js +5 -5
  372. package/esm2015/utils/format/format-phone.js +9 -9
  373. package/esm2015/utils/format/get-fractional-part-padded.js +3 -3
  374. package/esm2015/utils/format/number-to-string-without-exp.js +3 -3
  375. package/esm2015/utils/format/other-decimal-symbol.js +2 -2
  376. package/esm2015/utils/mask/create-auto-corrected-money-pipe.js +11 -11
  377. package/esm2015/utils/mask/create-correction-mask.js +3 -3
  378. package/esm2015/utils/mask/create-number-mask.js +13 -13
  379. package/esm2015/utils/mask/masked-money-value-is-empty.js +3 -3
  380. package/esm2015/utils/mask/masked-number-string-to-number.js +2 -2
  381. package/esm2015/utils/miscellaneous/color-fallback.js +8 -8
  382. package/esm2015/utils/miscellaneous/icons-path-factory.js +3 -3
  383. package/esm2015/utils/miscellaneous/is-presumed-html-string.js +2 -2
  384. package/esm2015/utils/miscellaneous/size-bigger.js +3 -3
  385. package/esm2015/utils/polyfills/inner-html.js +5 -5
  386. package/esm5/abstract/abstract-dropdown.js +12 -12
  387. package/esm5/abstract/abstract-hint-options.js +2 -2
  388. package/esm5/abstract/abstract-hint.js +4 -4
  389. package/esm5/animations/animations.js +140 -140
  390. package/esm5/components/alert/alert.component.js +12 -12
  391. package/esm5/components/alert/alert.service.js +3 -3
  392. package/esm5/components/button/button-options.js +3 -3
  393. package/esm5/components/button/button.component.js +15 -15
  394. package/esm5/components/calendar/calendar.component.js +4 -4
  395. package/esm5/components/data-list/data-list-dropdown-manager.directive.js +8 -8
  396. package/esm5/components/data-list/data-list.component.js +12 -12
  397. package/esm5/components/data-list/data-list.directive.js +2 -2
  398. package/esm5/components/data-list/opt-group.directive.js +5 -5
  399. package/esm5/components/data-list/option/option.component.js +12 -12
  400. package/esm5/components/dialog/dialog.component.js +12 -12
  401. package/esm5/components/dialog/dialog.directive.js +4 -4
  402. package/esm5/components/dialog/dialog.providers.js +7 -7
  403. package/esm5/components/dialog/dialog.service.js +5 -5
  404. package/esm5/components/dropdown-box/dropdown-box.component.js +41 -41
  405. package/esm5/components/error/error.component.js +7 -7
  406. package/esm5/components/expand/expand-content.directive.js +2 -2
  407. package/esm5/components/expand/expand.component.js +14 -14
  408. package/esm5/components/group/group-styles.component.js +2 -2
  409. package/esm5/components/group/group.component.js +5 -5
  410. package/esm5/components/group/group.directive.js +15 -15
  411. package/esm5/components/hints-host/hint-box/hint-box.component.js +46 -46
  412. package/esm5/components/hints-host/hints-host.component.js +3 -3
  413. package/esm5/components/hosted-dropdown/hosted-dropdown-connector.directive.js +2 -2
  414. package/esm5/components/hosted-dropdown/hosted-dropdown.component.js +12 -12
  415. package/esm5/components/label/label.component.js +7 -7
  416. package/esm5/components/link/link.component.js +12 -12
  417. package/esm5/components/loader/loader-options.js +3 -3
  418. package/esm5/components/loader/loader.component.js +3 -3
  419. package/esm5/components/notification/notification.component.js +11 -11
  420. package/esm5/components/primitive-calendar/primitive-calendar.component.js +3 -3
  421. package/esm5/components/primitive-checkbox/checkbox-options.js +5 -5
  422. package/esm5/components/primitive-checkbox/primitive-checkbox.component.js +6 -6
  423. package/esm5/components/primitive-spin-button/primitive-spin-button.component.js +5 -5
  424. package/esm5/components/primitive-textfield/primitive-textfield-options.js +4 -4
  425. package/esm5/components/primitive-textfield/primitive-textfield.component.js +30 -30
  426. package/esm5/components/primitive-textfield/primitive-textfield.directive.js +2 -2
  427. package/esm5/components/primitive-textfield/textfield/textfield.component.js +14 -14
  428. package/esm5/components/primitive-textfield/value-decoration/value-decoration.component.js +12 -12
  429. package/esm5/components/primitive-year-picker/primitive-year-picker.component.js +3 -3
  430. package/esm5/components/root/root.component.js +7 -7
  431. package/esm5/components/scroll-controls/scroll-controls.component.js +6 -6
  432. package/esm5/components/scroll-controls/scrollbar-wrapper.directive.js +2 -2
  433. package/esm5/components/scroll-controls/scrollbar.directive.js +23 -23
  434. package/esm5/components/scrollbar/scroll-ref.directive.js +2 -2
  435. package/esm5/components/scrollbar/scrollable.directive.js +2 -2
  436. package/esm5/components/scrollbar/scrollbar.component.js +9 -9
  437. package/esm5/components/svg/svg.component.js +18 -18
  438. package/esm5/components/theme-night/theme-night.component.js +3 -3
  439. package/esm5/components/tooltip/tooltip.component.js +10 -10
  440. package/esm5/constants/decimal-symbols.js +2 -2
  441. package/esm5/constants/default-icons-path.js +2 -2
  442. package/esm5/constants/editing-keys.js +10 -10
  443. package/esm5/constants/events.js +5 -5
  444. package/esm5/constants/mask-caret-trap.js +2 -2
  445. package/esm5/constants/version.js +2 -2
  446. package/esm5/directives/color/color.directive.js +7 -7
  447. package/esm5/directives/described-by/described-by.directive.js +5 -5
  448. package/esm5/directives/described-by/described-by.providers.js +5 -5
  449. package/esm5/directives/dropdown/dropdown.directive.js +3 -3
  450. package/esm5/directives/dropdown-controller/dropdown-controller.directive.js +10 -10
  451. package/esm5/directives/dropdown-controller/dropdown-controller.provider.js +2 -2
  452. package/esm5/directives/dropdown-controller/dropdown-controller.token.js +2 -2
  453. package/esm5/directives/hint/hint-options.js +3 -3
  454. package/esm5/directives/hint/hint.directive.js +6 -6
  455. package/esm5/directives/hint-controller/hint-controller.directive.js +7 -7
  456. package/esm5/directives/hint-controller/hint-controller.provider.js +2 -2
  457. package/esm5/directives/hint-controller/hint-controller.token.js +2 -2
  458. package/esm5/directives/manual-hint/manual-hint-options.js +2 -2
  459. package/esm5/directives/manual-hint/manual-hint.directive.js +4 -4
  460. package/esm5/directives/mask-accessor/mask-accessor.directive.js +2 -2
  461. package/esm5/directives/mode/mode.directive.js +3 -3
  462. package/esm5/directives/pointer-hint/pointer-hint-options.js +2 -2
  463. package/esm5/directives/pointer-hint/pointer-hint.directive.js +5 -5
  464. package/esm5/directives/scroll-into-view/scroll-into-view.directive.js +2 -2
  465. package/esm5/directives/table-mode/table-mode.directive.js +3 -3
  466. package/esm5/directives/textfield-controller/textfield-autocomplete.directive.js +5 -5
  467. package/esm5/directives/textfield-controller/textfield-cleaner.directive.js +4 -4
  468. package/esm5/directives/textfield-controller/textfield-controller.provider.js +2 -2
  469. package/esm5/directives/textfield-controller/textfield-custom-content.directive.js +5 -5
  470. package/esm5/directives/textfield-controller/textfield-example-text.directive.js +5 -5
  471. package/esm5/directives/textfield-controller/textfield-input-mode.directive.js +5 -5
  472. package/esm5/directives/textfield-controller/textfield-label-outside.directive.js +4 -4
  473. package/esm5/directives/textfield-controller/textfield-max-length.directive.js +4 -4
  474. package/esm5/directives/textfield-controller/textfield-size.directive.js +5 -5
  475. package/esm5/directives/textfield-controller/textfield-type.directive.js +5 -5
  476. package/esm5/directives/textfield-controller/textfield.controller.js +2 -2
  477. package/esm5/directives/wrapper/wrapper.directive.js +10 -10
  478. package/esm5/enums/appearance.js +2 -1
  479. package/esm5/enums/base-color.js +1 -1
  480. package/esm5/enums/button-shape.js +1 -1
  481. package/esm5/enums/decimal.js +1 -1
  482. package/esm5/enums/dropdown-animation.js +1 -1
  483. package/esm5/enums/dropdown-width.js +1 -1
  484. package/esm5/enums/hint-mode.js +1 -1
  485. package/esm5/enums/interactive-state.js +1 -1
  486. package/esm5/enums/link-mode.js +1 -1
  487. package/esm5/enums/notification.js +1 -1
  488. package/esm5/enums/orientation.js +1 -1
  489. package/esm5/enums/range-state.js +1 -1
  490. package/esm5/enums/support-color.js +1 -1
  491. package/esm5/internal/primitive-year-month-pagination/primitive-year-month-pagination.component.js +2 -2
  492. package/esm5/internal/svg-defs-host/svg-defs-host.component.js +2 -2
  493. package/esm5/observables/smart-search.js +3 -3
  494. package/esm5/pipes/calendar-sheet/calendar-sheet.pipe.js +2 -2
  495. package/esm5/pipes/format-number/format-number.pipe.js +2 -2
  496. package/esm5/pipes/format-phone/format-phone.pipe.js +4 -4
  497. package/esm5/pipes/month/month.pipe.js +2 -2
  498. package/esm5/pipes/pluralize/pluralize.pipe.js +2 -2
  499. package/esm5/providers/is-mobile-resolution.provider.js +2 -2
  500. package/esm5/providers/mode.provider.js +2 -2
  501. package/esm5/services/hint.service.js +2 -2
  502. package/esm5/services/night-theme.service.js +4 -4
  503. package/esm5/services/svg.service.js +4 -4
  504. package/esm5/tokens/animation-options.js +2 -2
  505. package/esm5/tokens/animations-duration.js +2 -2
  506. package/esm5/tokens/assert-enabled.js +2 -2
  507. package/esm5/tokens/data-list-accessor.js +2 -2
  508. package/esm5/tokens/data-list-host.js +2 -2
  509. package/esm5/tokens/document-or-shadow-root.js +2 -2
  510. package/esm5/tokens/dropdown-directive.js +2 -2
  511. package/esm5/tokens/element-ref.js +2 -2
  512. package/esm5/tokens/first-day-of-week.js +2 -2
  513. package/esm5/tokens/i18n.js +10 -10
  514. package/esm5/tokens/icon-place.js +3 -3
  515. package/esm5/tokens/icons-path.js +2 -2
  516. package/esm5/tokens/icons.js +2 -2
  517. package/esm5/tokens/is-mobile-resolution.js +3 -3
  518. package/esm5/tokens/media.js +2 -2
  519. package/esm5/tokens/mode.js +2 -2
  520. package/esm5/tokens/notification-options.js +3 -3
  521. package/esm5/tokens/number-format.js +3 -3
  522. package/esm5/tokens/option-content.js +2 -2
  523. package/esm5/tokens/ordered-short-week-days.js +2 -2
  524. package/esm5/tokens/scroll-ref.js +2 -2
  525. package/esm5/tokens/svg-content-processor.js +2 -2
  526. package/esm5/tokens/svg-src-processor.js +2 -2
  527. package/esm5/tokens/textfield-appearance.js +2 -2
  528. package/esm5/tokens/textfield-host.js +2 -2
  529. package/esm5/tokens/theme.js +3 -3
  530. package/esm5/tokens/value-accessor.js +2 -2
  531. package/esm5/utils/dom/are-css-vars-supported.js +2 -2
  532. package/esm5/utils/dom/check-fixed-position.js +3 -3
  533. package/esm5/utils/dom/get-safe-area-size.js +4 -4
  534. package/esm5/utils/dom/process-icon.js +11 -11
  535. package/esm5/utils/format/format-number.js +5 -5
  536. package/esm5/utils/format/format-phone.js +9 -9
  537. package/esm5/utils/format/get-fractional-part-padded.js +3 -3
  538. package/esm5/utils/format/number-to-string-without-exp.js +3 -3
  539. package/esm5/utils/format/other-decimal-symbol.js +2 -2
  540. package/esm5/utils/mask/create-auto-corrected-money-pipe.js +12 -12
  541. package/esm5/utils/mask/create-correction-mask.js +3 -3
  542. package/esm5/utils/mask/create-number-mask.js +13 -13
  543. package/esm5/utils/mask/masked-money-value-is-empty.js +3 -3
  544. package/esm5/utils/mask/masked-number-string-to-number.js +2 -2
  545. package/esm5/utils/miscellaneous/color-fallback.js +8 -8
  546. package/esm5/utils/miscellaneous/icons-path-factory.js +3 -3
  547. package/esm5/utils/miscellaneous/is-presumed-html-string.js +2 -2
  548. package/esm5/utils/miscellaneous/size-bigger.js +3 -3
  549. package/esm5/utils/polyfills/inner-html.js +5 -5
  550. package/fesm2015/taiga-ui-core-abstract.js +15 -15
  551. package/fesm2015/taiga-ui-core-abstract.js.map +1 -1
  552. package/fesm2015/taiga-ui-core-animations.js +138 -138
  553. package/fesm2015/taiga-ui-core-animations.js.map +1 -1
  554. package/fesm2015/taiga-ui-core-components-alert.js +13 -13
  555. package/fesm2015/taiga-ui-core-components-alert.js.map +1 -1
  556. package/fesm2015/taiga-ui-core-components-button.js +16 -16
  557. package/fesm2015/taiga-ui-core-components-button.js.map +1 -1
  558. package/fesm2015/taiga-ui-core-components-calendar.js +3 -3
  559. package/fesm2015/taiga-ui-core-components-calendar.js.map +1 -1
  560. package/fesm2015/taiga-ui-core-components-data-list.js +33 -33
  561. package/fesm2015/taiga-ui-core-components-data-list.js.map +1 -1
  562. package/fesm2015/taiga-ui-core-components-dialog.js +24 -24
  563. package/fesm2015/taiga-ui-core-components-dialog.js.map +1 -1
  564. package/fesm2015/taiga-ui-core-components-dropdown-box.js +40 -40
  565. package/fesm2015/taiga-ui-core-components-dropdown-box.js.map +1 -1
  566. package/fesm2015/taiga-ui-core-components-error.js +6 -6
  567. package/fesm2015/taiga-ui-core-components-error.js.map +1 -1
  568. package/fesm2015/taiga-ui-core-components-expand.js +14 -14
  569. package/fesm2015/taiga-ui-core-components-expand.js.map +1 -1
  570. package/fesm2015/taiga-ui-core-components-group.js +21 -19
  571. package/fesm2015/taiga-ui-core-components-group.js.map +1 -1
  572. package/fesm2015/taiga-ui-core-components-hints-host.js +47 -47
  573. package/fesm2015/taiga-ui-core-components-hints-host.js.map +1 -1
  574. package/fesm2015/taiga-ui-core-components-hosted-dropdown.js +12 -12
  575. package/fesm2015/taiga-ui-core-components-hosted-dropdown.js.map +1 -1
  576. package/fesm2015/taiga-ui-core-components-label.js +6 -6
  577. package/fesm2015/taiga-ui-core-components-label.js.map +1 -1
  578. package/fesm2015/taiga-ui-core-components-link.js +11 -11
  579. package/fesm2015/taiga-ui-core-components-link.js.map +1 -1
  580. package/fesm2015/taiga-ui-core-components-loader.js +4 -4
  581. package/fesm2015/taiga-ui-core-components-loader.js.map +1 -1
  582. package/fesm2015/taiga-ui-core-components-notification.js +10 -10
  583. package/fesm2015/taiga-ui-core-components-notification.js.map +1 -1
  584. package/fesm2015/taiga-ui-core-components-primitive-calendar.js +2 -2
  585. package/fesm2015/taiga-ui-core-components-primitive-calendar.js.map +1 -1
  586. package/fesm2015/taiga-ui-core-components-primitive-checkbox.js +9 -9
  587. package/fesm2015/taiga-ui-core-components-primitive-checkbox.js.map +1 -1
  588. package/fesm2015/taiga-ui-core-components-primitive-spin-button.js +4 -4
  589. package/fesm2015/taiga-ui-core-components-primitive-spin-button.js.map +1 -1
  590. package/fesm2015/taiga-ui-core-components-primitive-textfield.js +57 -57
  591. package/fesm2015/taiga-ui-core-components-primitive-textfield.js.map +1 -1
  592. package/fesm2015/taiga-ui-core-components-primitive-year-picker.js +2 -2
  593. package/fesm2015/taiga-ui-core-components-primitive-year-picker.js.map +1 -1
  594. package/fesm2015/taiga-ui-core-components-root.js +6 -6
  595. package/fesm2015/taiga-ui-core-components-root.js.map +1 -1
  596. package/fesm2015/taiga-ui-core-components-scroll-controls.js +28 -28
  597. package/fesm2015/taiga-ui-core-components-scroll-controls.js.map +1 -1
  598. package/fesm2015/taiga-ui-core-components-scrollbar.js +10 -10
  599. package/fesm2015/taiga-ui-core-components-scrollbar.js.map +1 -1
  600. package/fesm2015/taiga-ui-core-components-svg.js +17 -17
  601. package/fesm2015/taiga-ui-core-components-svg.js.map +1 -1
  602. package/fesm2015/taiga-ui-core-components-theme-night.js +2 -2
  603. package/fesm2015/taiga-ui-core-components-theme-night.js.map +1 -1
  604. package/fesm2015/taiga-ui-core-components-tooltip.js +9 -9
  605. package/fesm2015/taiga-ui-core-components-tooltip.js.map +1 -1
  606. package/fesm2015/taiga-ui-core-constants.js +17 -17
  607. package/fesm2015/taiga-ui-core-constants.js.map +1 -1
  608. package/fesm2015/taiga-ui-core-directives-color.js +6 -6
  609. package/fesm2015/taiga-ui-core-directives-color.js.map +1 -1
  610. package/fesm2015/taiga-ui-core-directives-described-by.js +6 -6
  611. package/fesm2015/taiga-ui-core-directives-described-by.js.map +1 -1
  612. package/fesm2015/taiga-ui-core-directives-dropdown-controller.js +11 -11
  613. package/fesm2015/taiga-ui-core-directives-dropdown-controller.js.map +1 -1
  614. package/fesm2015/taiga-ui-core-directives-dropdown.js +2 -2
  615. package/fesm2015/taiga-ui-core-directives-dropdown.js.map +1 -1
  616. package/fesm2015/taiga-ui-core-directives-hint-controller.js +8 -8
  617. package/fesm2015/taiga-ui-core-directives-hint-controller.js.map +1 -1
  618. package/fesm2015/taiga-ui-core-directives-hint.js +7 -7
  619. package/fesm2015/taiga-ui-core-directives-hint.js.map +1 -1
  620. package/fesm2015/taiga-ui-core-directives-manual-hint.js +4 -4
  621. package/fesm2015/taiga-ui-core-directives-manual-hint.js.map +1 -1
  622. package/fesm2015/taiga-ui-core-directives-mask-accessor.js +1 -1
  623. package/fesm2015/taiga-ui-core-directives-mask-accessor.js.map +1 -1
  624. package/fesm2015/taiga-ui-core-directives-mode.js +2 -2
  625. package/fesm2015/taiga-ui-core-directives-mode.js.map +1 -1
  626. package/fesm2015/taiga-ui-core-directives-pointer-hint.js +5 -5
  627. package/fesm2015/taiga-ui-core-directives-pointer-hint.js.map +1 -1
  628. package/fesm2015/taiga-ui-core-directives-scroll-into-view.js +1 -1
  629. package/fesm2015/taiga-ui-core-directives-scroll-into-view.js.map +1 -1
  630. package/fesm2015/taiga-ui-core-directives-table-mode.js +2 -2
  631. package/fesm2015/taiga-ui-core-directives-table-mode.js.map +1 -1
  632. package/fesm2015/taiga-ui-core-directives-textfield-controller.js +35 -35
  633. package/fesm2015/taiga-ui-core-directives-textfield-controller.js.map +1 -1
  634. package/fesm2015/taiga-ui-core-directives-wrapper.js +9 -9
  635. package/fesm2015/taiga-ui-core-directives-wrapper.js.map +1 -1
  636. package/fesm2015/taiga-ui-core-enums.js +1 -0
  637. package/fesm2015/taiga-ui-core-enums.js.map +1 -1
  638. package/fesm2015/taiga-ui-core-internal-primitive-year-month-pagination.js +1 -1
  639. package/fesm2015/taiga-ui-core-internal-primitive-year-month-pagination.js.map +1 -1
  640. package/fesm2015/taiga-ui-core-internal-svg-defs-host.js +1 -1
  641. package/fesm2015/taiga-ui-core-internal-svg-defs-host.js.map +1 -1
  642. package/fesm2015/taiga-ui-core-observables.js +2 -2
  643. package/fesm2015/taiga-ui-core-observables.js.map +1 -1
  644. package/fesm2015/taiga-ui-core-pipes-calendar-sheet.js +1 -1
  645. package/fesm2015/taiga-ui-core-pipes-calendar-sheet.js.map +1 -1
  646. package/fesm2015/taiga-ui-core-pipes-format-number.js +1 -1
  647. package/fesm2015/taiga-ui-core-pipes-format-number.js.map +1 -1
  648. package/fesm2015/taiga-ui-core-pipes-format-phone.js +3 -3
  649. package/fesm2015/taiga-ui-core-pipes-format-phone.js.map +1 -1
  650. package/fesm2015/taiga-ui-core-pipes-month.js +1 -1
  651. package/fesm2015/taiga-ui-core-pipes-month.js.map +1 -1
  652. package/fesm2015/taiga-ui-core-pipes-pluralize.js +1 -1
  653. package/fesm2015/taiga-ui-core-pipes-pluralize.js.map +1 -1
  654. package/fesm2015/taiga-ui-core-providers.js +2 -2
  655. package/fesm2015/taiga-ui-core-providers.js.map +1 -1
  656. package/fesm2015/taiga-ui-core-services.js +7 -7
  657. package/fesm2015/taiga-ui-core-services.js.map +1 -1
  658. package/fesm2015/taiga-ui-core-tokens.js +40 -40
  659. package/fesm2015/taiga-ui-core-tokens.js.map +1 -1
  660. package/fesm2015/taiga-ui-core-utils-dom.js +16 -16
  661. package/fesm2015/taiga-ui-core-utils-dom.js.map +1 -1
  662. package/fesm2015/taiga-ui-core-utils-format.js +17 -17
  663. package/fesm2015/taiga-ui-core-utils-format.js.map +1 -1
  664. package/fesm2015/taiga-ui-core-utils-mask.js +27 -27
  665. package/fesm2015/taiga-ui-core-utils-mask.js.map +1 -1
  666. package/fesm2015/taiga-ui-core-utils-miscellaneous.js +12 -12
  667. package/fesm2015/taiga-ui-core-utils-miscellaneous.js.map +1 -1
  668. package/fesm2015/taiga-ui-core-utils-polyfills.js +4 -4
  669. package/fesm2015/taiga-ui-core-utils-polyfills.js.map +1 -1
  670. package/fesm5/taiga-ui-core-abstract.js +15 -15
  671. package/fesm5/taiga-ui-core-abstract.js.map +1 -1
  672. package/fesm5/taiga-ui-core-animations.js +138 -138
  673. package/fesm5/taiga-ui-core-animations.js.map +1 -1
  674. package/fesm5/taiga-ui-core-components-alert.js +13 -13
  675. package/fesm5/taiga-ui-core-components-alert.js.map +1 -1
  676. package/fesm5/taiga-ui-core-components-button.js +16 -16
  677. package/fesm5/taiga-ui-core-components-button.js.map +1 -1
  678. package/fesm5/taiga-ui-core-components-calendar.js +3 -3
  679. package/fesm5/taiga-ui-core-components-calendar.js.map +1 -1
  680. package/fesm5/taiga-ui-core-components-data-list.js +34 -34
  681. package/fesm5/taiga-ui-core-components-data-list.js.map +1 -1
  682. package/fesm5/taiga-ui-core-components-dialog.js +24 -24
  683. package/fesm5/taiga-ui-core-components-dialog.js.map +1 -1
  684. package/fesm5/taiga-ui-core-components-dropdown-box.js +40 -40
  685. package/fesm5/taiga-ui-core-components-dropdown-box.js.map +1 -1
  686. package/fesm5/taiga-ui-core-components-error.js +6 -6
  687. package/fesm5/taiga-ui-core-components-error.js.map +1 -1
  688. package/fesm5/taiga-ui-core-components-expand.js +14 -14
  689. package/fesm5/taiga-ui-core-components-expand.js.map +1 -1
  690. package/fesm5/taiga-ui-core-components-group.js +19 -19
  691. package/fesm5/taiga-ui-core-components-group.js.map +1 -1
  692. package/fesm5/taiga-ui-core-components-hints-host.js +47 -47
  693. package/fesm5/taiga-ui-core-components-hints-host.js.map +1 -1
  694. package/fesm5/taiga-ui-core-components-hosted-dropdown.js +12 -12
  695. package/fesm5/taiga-ui-core-components-hosted-dropdown.js.map +1 -1
  696. package/fesm5/taiga-ui-core-components-label.js +6 -6
  697. package/fesm5/taiga-ui-core-components-label.js.map +1 -1
  698. package/fesm5/taiga-ui-core-components-link.js +11 -11
  699. package/fesm5/taiga-ui-core-components-link.js.map +1 -1
  700. package/fesm5/taiga-ui-core-components-loader.js +4 -4
  701. package/fesm5/taiga-ui-core-components-loader.js.map +1 -1
  702. package/fesm5/taiga-ui-core-components-notification.js +10 -10
  703. package/fesm5/taiga-ui-core-components-notification.js.map +1 -1
  704. package/fesm5/taiga-ui-core-components-primitive-calendar.js +2 -2
  705. package/fesm5/taiga-ui-core-components-primitive-calendar.js.map +1 -1
  706. package/fesm5/taiga-ui-core-components-primitive-checkbox.js +9 -9
  707. package/fesm5/taiga-ui-core-components-primitive-checkbox.js.map +1 -1
  708. package/fesm5/taiga-ui-core-components-primitive-spin-button.js +4 -4
  709. package/fesm5/taiga-ui-core-components-primitive-spin-button.js.map +1 -1
  710. package/fesm5/taiga-ui-core-components-primitive-textfield.js +57 -57
  711. package/fesm5/taiga-ui-core-components-primitive-textfield.js.map +1 -1
  712. package/fesm5/taiga-ui-core-components-primitive-year-picker.js +2 -2
  713. package/fesm5/taiga-ui-core-components-primitive-year-picker.js.map +1 -1
  714. package/fesm5/taiga-ui-core-components-root.js +6 -6
  715. package/fesm5/taiga-ui-core-components-root.js.map +1 -1
  716. package/fesm5/taiga-ui-core-components-scroll-controls.js +28 -28
  717. package/fesm5/taiga-ui-core-components-scroll-controls.js.map +1 -1
  718. package/fesm5/taiga-ui-core-components-scrollbar.js +10 -10
  719. package/fesm5/taiga-ui-core-components-scrollbar.js.map +1 -1
  720. package/fesm5/taiga-ui-core-components-svg.js +17 -17
  721. package/fesm5/taiga-ui-core-components-svg.js.map +1 -1
  722. package/fesm5/taiga-ui-core-components-theme-night.js +2 -2
  723. package/fesm5/taiga-ui-core-components-theme-night.js.map +1 -1
  724. package/fesm5/taiga-ui-core-components-tooltip.js +9 -9
  725. package/fesm5/taiga-ui-core-components-tooltip.js.map +1 -1
  726. package/fesm5/taiga-ui-core-constants.js +17 -17
  727. package/fesm5/taiga-ui-core-constants.js.map +1 -1
  728. package/fesm5/taiga-ui-core-directives-color.js +6 -6
  729. package/fesm5/taiga-ui-core-directives-color.js.map +1 -1
  730. package/fesm5/taiga-ui-core-directives-described-by.js +8 -8
  731. package/fesm5/taiga-ui-core-directives-described-by.js.map +1 -1
  732. package/fesm5/taiga-ui-core-directives-dropdown-controller.js +11 -11
  733. package/fesm5/taiga-ui-core-directives-dropdown-controller.js.map +1 -1
  734. package/fesm5/taiga-ui-core-directives-dropdown.js +2 -2
  735. package/fesm5/taiga-ui-core-directives-dropdown.js.map +1 -1
  736. package/fesm5/taiga-ui-core-directives-hint-controller.js +8 -8
  737. package/fesm5/taiga-ui-core-directives-hint-controller.js.map +1 -1
  738. package/fesm5/taiga-ui-core-directives-hint.js +7 -7
  739. package/fesm5/taiga-ui-core-directives-hint.js.map +1 -1
  740. package/fesm5/taiga-ui-core-directives-manual-hint.js +4 -4
  741. package/fesm5/taiga-ui-core-directives-manual-hint.js.map +1 -1
  742. package/fesm5/taiga-ui-core-directives-mask-accessor.js +1 -1
  743. package/fesm5/taiga-ui-core-directives-mask-accessor.js.map +1 -1
  744. package/fesm5/taiga-ui-core-directives-mode.js +2 -2
  745. package/fesm5/taiga-ui-core-directives-mode.js.map +1 -1
  746. package/fesm5/taiga-ui-core-directives-pointer-hint.js +5 -5
  747. package/fesm5/taiga-ui-core-directives-pointer-hint.js.map +1 -1
  748. package/fesm5/taiga-ui-core-directives-scroll-into-view.js +1 -1
  749. package/fesm5/taiga-ui-core-directives-scroll-into-view.js.map +1 -1
  750. package/fesm5/taiga-ui-core-directives-table-mode.js +2 -2
  751. package/fesm5/taiga-ui-core-directives-table-mode.js.map +1 -1
  752. package/fesm5/taiga-ui-core-directives-textfield-controller.js +35 -35
  753. package/fesm5/taiga-ui-core-directives-textfield-controller.js.map +1 -1
  754. package/fesm5/taiga-ui-core-directives-wrapper.js +9 -9
  755. package/fesm5/taiga-ui-core-directives-wrapper.js.map +1 -1
  756. package/fesm5/taiga-ui-core-enums.js +1 -0
  757. package/fesm5/taiga-ui-core-enums.js.map +1 -1
  758. package/fesm5/taiga-ui-core-internal-primitive-year-month-pagination.js +1 -1
  759. package/fesm5/taiga-ui-core-internal-primitive-year-month-pagination.js.map +1 -1
  760. package/fesm5/taiga-ui-core-internal-svg-defs-host.js +1 -1
  761. package/fesm5/taiga-ui-core-internal-svg-defs-host.js.map +1 -1
  762. package/fesm5/taiga-ui-core-observables.js +2 -2
  763. package/fesm5/taiga-ui-core-observables.js.map +1 -1
  764. package/fesm5/taiga-ui-core-pipes-calendar-sheet.js +1 -1
  765. package/fesm5/taiga-ui-core-pipes-calendar-sheet.js.map +1 -1
  766. package/fesm5/taiga-ui-core-pipes-format-number.js +1 -1
  767. package/fesm5/taiga-ui-core-pipes-format-number.js.map +1 -1
  768. package/fesm5/taiga-ui-core-pipes-format-phone.js +3 -3
  769. package/fesm5/taiga-ui-core-pipes-format-phone.js.map +1 -1
  770. package/fesm5/taiga-ui-core-pipes-month.js +1 -1
  771. package/fesm5/taiga-ui-core-pipes-month.js.map +1 -1
  772. package/fesm5/taiga-ui-core-pipes-pluralize.js +1 -1
  773. package/fesm5/taiga-ui-core-pipes-pluralize.js.map +1 -1
  774. package/fesm5/taiga-ui-core-providers.js +2 -2
  775. package/fesm5/taiga-ui-core-providers.js.map +1 -1
  776. package/fesm5/taiga-ui-core-services.js +7 -7
  777. package/fesm5/taiga-ui-core-services.js.map +1 -1
  778. package/fesm5/taiga-ui-core-tokens.js +40 -40
  779. package/fesm5/taiga-ui-core-tokens.js.map +1 -1
  780. package/fesm5/taiga-ui-core-utils-dom.js +16 -16
  781. package/fesm5/taiga-ui-core-utils-dom.js.map +1 -1
  782. package/fesm5/taiga-ui-core-utils-format.js +17 -17
  783. package/fesm5/taiga-ui-core-utils-format.js.map +1 -1
  784. package/fesm5/taiga-ui-core-utils-mask.js +28 -28
  785. package/fesm5/taiga-ui-core-utils-mask.js.map +1 -1
  786. package/fesm5/taiga-ui-core-utils-miscellaneous.js +12 -12
  787. package/fesm5/taiga-ui-core-utils-miscellaneous.js.map +1 -1
  788. package/fesm5/taiga-ui-core-utils-polyfills.js +4 -4
  789. package/fesm5/taiga-ui-core-utils-polyfills.js.map +1 -1
  790. package/package.json +4 -4
  791. package/styles/markup/tui-table.less +33 -0
  792. package/styles/mixins/mixins.less +1 -2
  793. package/styles/mixins/textfield.less +2 -2
  794. package/styles/theme/wrapper/secondary-destructive.less +29 -0
  795. package/styles/theme/wrapper.less +1 -0
@@ -6,7 +6,7 @@ import { isEdgeOlderThan } from '@taiga-ui/cdk';
6
6
  */
7
7
  // eslint-disable-next-line @typescript-eslint/naming-convention
8
8
  function areCssVarsSupported(cssRef, userAgent) {
9
- return cssRef.supports('(--a: 0)') && !isEdgeOlderThan(17, userAgent);
9
+ return cssRef.supports(`(--a: 0)`) && !isEdgeOlderThan(17, userAgent);
10
10
  }
11
11
  const tuiAreCssVarsSupported = areCssVarsSupported;
12
12
 
@@ -15,11 +15,11 @@ const tuiAreCssVarsSupported = areCssVarsSupported;
15
15
  */
16
16
  // eslint-disable-next-line @typescript-eslint/naming-convention
17
17
  function checkFixedPosition(element) {
18
- if (!element || typeof getComputedStyle === 'undefined') {
18
+ if (!element || typeof getComputedStyle === `undefined`) {
19
19
  return false;
20
20
  }
21
21
  const style = getComputedStyle(element);
22
- return (style.getPropertyValue('position') === 'fixed' ||
22
+ return (style.getPropertyValue(`position`) === `fixed` ||
23
23
  checkFixedPosition(element.parentElement));
24
24
  }
25
25
  const tuiCheckFixedPosition = checkFixedPosition;
@@ -32,11 +32,11 @@ const tuiCheckFixedPosition = checkFixedPosition;
32
32
  */
33
33
  // eslint-disable-next-line @typescript-eslint/naming-convention
34
34
  function getSafeAreaSize() {
35
- if (!CSS.supports('padding-top: env(safe-area-inset-top)')) {
35
+ if (!CSS.supports(`padding-top: env(safe-area-inset-top)`)) {
36
36
  return 0;
37
37
  }
38
- const div = document.createElement('div');
39
- div.style.paddingTop = 'env(safe-area-inset-top)';
38
+ const div = document.createElement(`div`);
39
+ div.style.paddingTop = `env(safe-area-inset-top)`;
40
40
  document.body.appendChild(div);
41
41
  const safeAreaSize = parseInt(window.getComputedStyle(div).paddingTop, 10) || 0;
42
42
  document.body.removeChild(div);
@@ -95,9 +95,9 @@ function tuiGetViewportWidth({ document, innerWidth }) {
95
95
  return Math.max(document.documentElement.clientWidth || 0, innerWidth || 0);
96
96
  }
97
97
 
98
- const WIDTH_SEARCH = 'width="';
99
- const HEIGHT_SEARCH = 'height="';
100
- const START = '<svg';
98
+ const WIDTH_SEARCH = `width="`;
99
+ const HEIGHT_SEARCH = `height="`;
100
+ const START = `<svg`;
101
101
  /**
102
102
  * @deprecated: use {@link tuiProcessIcon} instead
103
103
  */
@@ -107,7 +107,7 @@ function processIcon(source, name) {
107
107
  return source;
108
108
  }
109
109
  const src = source.slice(Math.max(0, source.indexOf(START)));
110
- const attributes = src.slice(0, Math.max(0, src.indexOf('>')));
110
+ const attributes = src.slice(0, Math.max(0, src.indexOf(`>`)));
111
111
  if (!attributes ||
112
112
  !attributes.includes(WIDTH_SEARCH) ||
113
113
  !attributes.includes(HEIGHT_SEARCH)) {
@@ -117,14 +117,14 @@ function processIcon(source, name) {
117
117
  const indexOfHeight = attributes.indexOf(HEIGHT_SEARCH);
118
118
  const widthOffset = indexOfWidth + WIDTH_SEARCH.length;
119
119
  const heightOffset = indexOfHeight + HEIGHT_SEARCH.length;
120
- const widthString = attributes.slice(widthOffset, attributes.indexOf('"', widthOffset));
121
- const heightString = attributes.slice(heightOffset, attributes.indexOf('"', heightOffset));
120
+ const widthString = attributes.slice(widthOffset, attributes.indexOf(`"`, widthOffset));
121
+ const heightString = attributes.slice(heightOffset, attributes.indexOf(`"`, heightOffset));
122
122
  if (!heightString ||
123
123
  !widthString ||
124
- widthString.includes('%') ||
125
- heightString.includes('%') ||
126
- widthString.includes('em') ||
127
- heightString.includes('em')) {
124
+ widthString.includes(`%`) ||
125
+ heightString.includes(`%`) ||
126
+ widthString.includes(`em`) ||
127
+ heightString.includes(`em`)) {
128
128
  return src.replace(START, `<svg id="${name}"`);
129
129
  }
130
130
  const width = parseInt(widthString, 10);
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-utils-dom.js","sources":["ng://@taiga-ui/core/utils/dom/are-css-vars-supported.ts","ng://@taiga-ui/core/utils/dom/check-fixed-position.ts","ng://@taiga-ui/core/utils/dom/get-safe-area-size.ts","ng://@taiga-ui/core/utils/dom/get-screen-width.ts","ng://@taiga-ui/core/utils/dom/get-viewport-height.ts","ng://@taiga-ui/core/utils/dom/get-viewport-width.ts","ng://@taiga-ui/core/utils/dom/process-icon.ts","ng://@taiga-ui/core/utils/dom/taiga-ui-core-utils-dom.ts"],"sourcesContent":["import {isEdgeOlderThan} from '@taiga-ui/cdk';\n\n/**\n * @deprecated: use {@link tuiAreCssVarsSupported} instead\n * TODO: 3.0 remove this function\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function areCssVarsSupported(cssRef: typeof CSS, userAgent: string): boolean {\n return cssRef.supports('(--a: 0)') && !isEdgeOlderThan(17, userAgent);\n}\n\nexport const tuiAreCssVarsSupported = areCssVarsSupported;\n","/**\n * @deprecated: use {@link tuiCheckFixedPosition} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function checkFixedPosition(element: HTMLElement | null): boolean {\n if (!element || typeof getComputedStyle === 'undefined') {\n return false;\n }\n\n const style = getComputedStyle(element);\n\n return (\n style.getPropertyValue('position') === 'fixed' ||\n checkFixedPosition(element.parentElement)\n );\n}\n\nexport const tuiCheckFixedPosition = checkFixedPosition;\n","/**\n * @deprecated: use {@link tuiGetSafeAreaSize} instead\n * Calculates size of safe area on mobile devices (status bars)\n *\n * ATTENTION: Only use in browser environment\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getSafeAreaSize(): number {\n if (!CSS.supports('padding-top: env(safe-area-inset-top)')) {\n return 0;\n }\n\n const div = document.createElement('div');\n\n div.style.paddingTop = 'env(safe-area-inset-top)';\n document.body.appendChild(div);\n\n const safeAreaSize = parseInt(window.getComputedStyle(div).paddingTop!, 10) || 0;\n\n document.body.removeChild(div);\n\n return safeAreaSize;\n}\n\nexport const tuiGetSafeAreaSize = getSafeAreaSize;\n","/**\n * @deprecated: use {@link tuiGetScreenWidth} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getScreenWidth(documentRef: Document): number {\n return Math.max(\n documentRef.documentElement.clientWidth,\n documentRef.defaultView ? documentRef.defaultView.innerWidth : 0,\n );\n}\n\nexport const tuiGetScreenWidth = getScreenWidth;\n","/**\n * @description:\n * Cross-browser @media (height)\n *\n * 1. window.innerWidth\n * 1.1. gets CSS viewport @media (height) which include scrollbars\n * 1.2. initial-scale and zoom variations may cause mobile values to\n * wrongly scale down to what PPK calls the visual\n * viewport and be smaller than the @media values\n * 1.3. zoom may cause values to be 1px off due to native rounding\n *\n * 2. document.documentElement.clientHeight\n * 2.1. equals CSS viewport width minus scrollbar width\n * 2.2. matches @media (height) when there is no scrollbar\n * 2.3. available cross-browser\n * 2.4. inaccurate if doctype is missing\n */\nexport function tuiGetViewportHeight({document, innerHeight}: Window): number {\n return Math.max(document.documentElement.clientHeight || 0, innerHeight || 0);\n}\n","/**\n * @description:\n * Cross-browser @media (width)\n *\n * 1. window.innerWidth\n * 1.1. gets CSS viewport @media (width) which include scrollbars\n * 1.2. initial-scale and zoom variations may cause mobile values to\n * wrongly scale down to what PPK calls the visual\n * viewport and be smaller than the @media values\n * 1.3. zoom may cause values to be 1px off due to native rounding\n *\n * 2. document.documentElement.clientWidth\n * 2.1. equals CSS viewport width minus scrollbar width\n * 2.2. matches @media (width) when there is no scrollbar\n * 2.3. available cross-browser\n * 2.4. inaccurate if doctype is missing\n */\nexport function tuiGetViewportWidth({document, innerWidth}: Window): number {\n return Math.max(document.documentElement.clientWidth || 0, innerWidth || 0);\n}\n","const WIDTH_SEARCH = 'width=\"';\nconst HEIGHT_SEARCH = 'height=\"';\nconst START = '<svg';\n\n/**\n * @deprecated: use {@link tuiProcessIcon} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function processIcon(source: string, name: string): string {\n if (source.includes(`id=\"${name}\"`)) {\n return source;\n }\n\n const src = source.slice(Math.max(0, source.indexOf(START)));\n const attributes = src.slice(0, Math.max(0, src.indexOf('>')));\n\n if (\n !attributes ||\n !attributes.includes(WIDTH_SEARCH) ||\n !attributes.includes(HEIGHT_SEARCH)\n ) {\n return `${src.replace(\n START,\n `<svg xmlns=\"http://www.w3.org/2000/svg\"><g id=\"${name}\" xmlns=\"http://www.w3.org/2000/svg\"><svg`,\n )}</g></svg>`;\n }\n\n const indexOfWidth = attributes.indexOf(WIDTH_SEARCH);\n const indexOfHeight = attributes.indexOf(HEIGHT_SEARCH);\n const widthOffset = indexOfWidth + WIDTH_SEARCH.length;\n const heightOffset = indexOfHeight + HEIGHT_SEARCH.length;\n const widthString = attributes.slice(\n widthOffset,\n attributes.indexOf('\"', widthOffset),\n );\n const heightString = attributes.slice(\n heightOffset,\n attributes.indexOf('\"', heightOffset),\n );\n\n if (\n !heightString ||\n !widthString ||\n widthString.includes('%') ||\n heightString.includes('%') ||\n widthString.includes('em') ||\n heightString.includes('em')\n ) {\n return src.replace(START, `<svg id=\"${name}\"`);\n }\n\n const width = parseInt(widthString, 10);\n const height = parseInt(heightString, 10);\n\n return `<g id=\"${name}\" xmlns=\"http://www.w3.org/2000/svg\"><svg x=\"50%\" y=\"50%\" width=\"${\n width / 16\n }em\" height=\"${\n height / 16\n }em\" overflow=\"visible\" viewBox=\"0 0 ${width} ${height}\"><svg x=\"${-width / 2}\" y=\"${\n -height / 2\n }\">${src}</svg></svg></g>`;\n}\n\nexport const tuiProcessIcon = processIcon;\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-utils-dom.js","sources":["ng://@taiga-ui/core/utils/dom/are-css-vars-supported.ts","ng://@taiga-ui/core/utils/dom/check-fixed-position.ts","ng://@taiga-ui/core/utils/dom/get-safe-area-size.ts","ng://@taiga-ui/core/utils/dom/get-screen-width.ts","ng://@taiga-ui/core/utils/dom/get-viewport-height.ts","ng://@taiga-ui/core/utils/dom/get-viewport-width.ts","ng://@taiga-ui/core/utils/dom/process-icon.ts","ng://@taiga-ui/core/utils/dom/taiga-ui-core-utils-dom.ts"],"sourcesContent":["import {isEdgeOlderThan} from '@taiga-ui/cdk';\n\n/**\n * @deprecated: use {@link tuiAreCssVarsSupported} instead\n * TODO: 3.0 remove this function\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function areCssVarsSupported(cssRef: typeof CSS, userAgent: string): boolean {\n return cssRef.supports(`(--a: 0)`) && !isEdgeOlderThan(17, userAgent);\n}\n\nexport const tuiAreCssVarsSupported = areCssVarsSupported;\n","/**\n * @deprecated: use {@link tuiCheckFixedPosition} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function checkFixedPosition(element: HTMLElement | null): boolean {\n if (!element || typeof getComputedStyle === `undefined`) {\n return false;\n }\n\n const style = getComputedStyle(element);\n\n return (\n style.getPropertyValue(`position`) === `fixed` ||\n checkFixedPosition(element.parentElement)\n );\n}\n\nexport const tuiCheckFixedPosition = checkFixedPosition;\n","/**\n * @deprecated: use {@link tuiGetSafeAreaSize} instead\n * Calculates size of safe area on mobile devices (status bars)\n *\n * ATTENTION: Only use in browser environment\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getSafeAreaSize(): number {\n if (!CSS.supports(`padding-top: env(safe-area-inset-top)`)) {\n return 0;\n }\n\n const div = document.createElement(`div`);\n\n div.style.paddingTop = `env(safe-area-inset-top)`;\n document.body.appendChild(div);\n\n const safeAreaSize = parseInt(window.getComputedStyle(div).paddingTop!, 10) || 0;\n\n document.body.removeChild(div);\n\n return safeAreaSize;\n}\n\nexport const tuiGetSafeAreaSize = getSafeAreaSize;\n","/**\n * @deprecated: use {@link tuiGetScreenWidth} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getScreenWidth(documentRef: Document): number {\n return Math.max(\n documentRef.documentElement.clientWidth,\n documentRef.defaultView ? documentRef.defaultView.innerWidth : 0,\n );\n}\n\nexport const tuiGetScreenWidth = getScreenWidth;\n","/**\n * @description:\n * Cross-browser @media (height)\n *\n * 1. window.innerWidth\n * 1.1. gets CSS viewport @media (height) which include scrollbars\n * 1.2. initial-scale and zoom variations may cause mobile values to\n * wrongly scale down to what PPK calls the visual\n * viewport and be smaller than the @media values\n * 1.3. zoom may cause values to be 1px off due to native rounding\n *\n * 2. document.documentElement.clientHeight\n * 2.1. equals CSS viewport width minus scrollbar width\n * 2.2. matches @media (height) when there is no scrollbar\n * 2.3. available cross-browser\n * 2.4. inaccurate if doctype is missing\n */\nexport function tuiGetViewportHeight({document, innerHeight}: Window): number {\n return Math.max(document.documentElement.clientHeight || 0, innerHeight || 0);\n}\n","/**\n * @description:\n * Cross-browser @media (width)\n *\n * 1. window.innerWidth\n * 1.1. gets CSS viewport @media (width) which include scrollbars\n * 1.2. initial-scale and zoom variations may cause mobile values to\n * wrongly scale down to what PPK calls the visual\n * viewport and be smaller than the @media values\n * 1.3. zoom may cause values to be 1px off due to native rounding\n *\n * 2. document.documentElement.clientWidth\n * 2.1. equals CSS viewport width minus scrollbar width\n * 2.2. matches @media (width) when there is no scrollbar\n * 2.3. available cross-browser\n * 2.4. inaccurate if doctype is missing\n */\nexport function tuiGetViewportWidth({document, innerWidth}: Window): number {\n return Math.max(document.documentElement.clientWidth || 0, innerWidth || 0);\n}\n","const WIDTH_SEARCH = `width=\"`;\nconst HEIGHT_SEARCH = `height=\"`;\nconst START = `<svg`;\n\n/**\n * @deprecated: use {@link tuiProcessIcon} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function processIcon(source: string, name: string): string {\n if (source.includes(`id=\"${name}\"`)) {\n return source;\n }\n\n const src = source.slice(Math.max(0, source.indexOf(START)));\n const attributes = src.slice(0, Math.max(0, src.indexOf(`>`)));\n\n if (\n !attributes ||\n !attributes.includes(WIDTH_SEARCH) ||\n !attributes.includes(HEIGHT_SEARCH)\n ) {\n return `${src.replace(\n START,\n `<svg xmlns=\"http://www.w3.org/2000/svg\"><g id=\"${name}\" xmlns=\"http://www.w3.org/2000/svg\"><svg`,\n )}</g></svg>`;\n }\n\n const indexOfWidth = attributes.indexOf(WIDTH_SEARCH);\n const indexOfHeight = attributes.indexOf(HEIGHT_SEARCH);\n const widthOffset = indexOfWidth + WIDTH_SEARCH.length;\n const heightOffset = indexOfHeight + HEIGHT_SEARCH.length;\n const widthString = attributes.slice(\n widthOffset,\n attributes.indexOf(`\"`, widthOffset),\n );\n const heightString = attributes.slice(\n heightOffset,\n attributes.indexOf(`\"`, heightOffset),\n );\n\n if (\n !heightString ||\n !widthString ||\n widthString.includes(`%`) ||\n heightString.includes(`%`) ||\n widthString.includes(`em`) ||\n heightString.includes(`em`)\n ) {\n return src.replace(START, `<svg id=\"${name}\"`);\n }\n\n const width = parseInt(widthString, 10);\n const height = parseInt(heightString, 10);\n\n return `<g id=\"${name}\" xmlns=\"http://www.w3.org/2000/svg\"><svg x=\"50%\" y=\"50%\" width=\"${\n width / 16\n }em\" height=\"${\n height / 16\n }em\" overflow=\"visible\" viewBox=\"0 0 ${width} ${height}\"><svg x=\"${-width / 2}\" y=\"${\n -height / 2\n }\">${src}</svg></svg></g>`;\n}\n\nexport const tuiProcessIcon = processIcon;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -33,10 +33,10 @@ const tuiCapitalizeFirstLetter = capitalizeFirstLetter;
33
33
  // eslint-disable-next-line @typescript-eslint/naming-convention
34
34
  function numberToStringWithoutExp(value) {
35
35
  const valueAsString = String(value);
36
- const [numberPart, expPart] = valueAsString.split('e-');
36
+ const [numberPart, expPart] = valueAsString.split(`e-`);
37
37
  let valueWithoutExp = valueAsString;
38
38
  if (expPart) {
39
- const [, fractionalPart] = numberPart.split('.');
39
+ const [, fractionalPart] = numberPart.split(`.`);
40
40
  const decimalDigits = Number(expPart) + ((fractionalPart === null || fractionalPart === void 0 ? void 0 : fractionalPart.length) || 0);
41
41
  valueWithoutExp = value.toFixed(decimalDigits);
42
42
  }
@@ -54,8 +54,8 @@ const tuiNumberToStringWithoutExp = numberToStringWithoutExp;
54
54
  */
55
55
  // eslint-disable-next-line @typescript-eslint/naming-convention
56
56
  function getFractionPartPadded(value, precision) {
57
- const [, fractionPartPadded = ''] = numberToStringWithoutExp(value).split('.');
58
- return typeof precision === 'number'
57
+ const [, fractionPartPadded = ``] = numberToStringWithoutExp(value).split(`.`);
58
+ return typeof precision === `number`
59
59
  ? fractionPartPadded.slice(0, Math.max(0, precision))
60
60
  : fractionPartPadded;
61
61
  }
@@ -75,21 +75,21 @@ const tuiGetFractionPartPadded = getFractionPartPadded;
75
75
  * @return the formatted string
76
76
  */
77
77
  // eslint-disable-next-line @typescript-eslint/naming-convention
78
- function formatNumber(value, decimalLimit = null, decimalSeparator = ',', thousandSeparator = CHAR_NO_BREAK_SPACE, zeroPadding = true) {
78
+ function formatNumber(value, decimalLimit = null, decimalSeparator = `,`, thousandSeparator = CHAR_NO_BREAK_SPACE, zeroPadding = true) {
79
79
  const integerPartString = String(Math.floor(Math.abs(value)));
80
80
  let fractionPartPadded = getFractionPartPadded(value, decimalLimit);
81
81
  if (decimalLimit !== null) {
82
82
  if (zeroPadding) {
83
83
  const zeroPaddingSize = Math.max(decimalLimit - fractionPartPadded.length, 0);
84
- const zeroPartString = '0'.repeat(zeroPaddingSize);
84
+ const zeroPartString = `0`.repeat(zeroPaddingSize);
85
85
  fractionPartPadded = `${fractionPartPadded}${zeroPartString}`;
86
86
  }
87
87
  else {
88
- fractionPartPadded = fractionPartPadded.replace(/0*$/, '');
88
+ fractionPartPadded = fractionPartPadded.replace(/0*$/, ``);
89
89
  }
90
90
  }
91
91
  const remainder = integerPartString.length % 3;
92
- const sign = value < 0 ? CHAR_HYPHEN : '';
92
+ const sign = value < 0 ? CHAR_HYPHEN : ``;
93
93
  let result = sign + integerPartString.charAt(0);
94
94
  for (let i = 1; i < integerPartString.length; i++) {
95
95
  if (i % 3 === remainder && integerPartString.length > 3) {
@@ -114,16 +114,16 @@ const tuiFormatNumber = formatNumber;
114
114
  // eslint-disable-next-line @typescript-eslint/naming-convention
115
115
  function formatPhone(value, countryCode, phoneMask) {
116
116
  if (!value) {
117
- return '';
117
+ return ``;
118
118
  }
119
119
  let result = countryCode;
120
- countryCode = countryCode.replace(/[()]/g, '');
120
+ countryCode = countryCode.replace(/[()]/g, ``);
121
121
  if (!value.startsWith(countryCode)) {
122
- value = countryCode + value.replace(CHAR_PLUS, '');
122
+ value = countryCode + value.replace(CHAR_PLUS, ``);
123
123
  }
124
- const splitPhoneMask = phoneMask.split('');
125
- const splitValue = value.slice(countryCode.length).split('');
126
- result += ' ';
124
+ const splitPhoneMask = phoneMask.split(``);
125
+ const splitValue = value.slice(countryCode.length).split(``);
126
+ result += ` `;
127
127
  if (splitValue.length === 0) {
128
128
  return result;
129
129
  }
@@ -131,8 +131,8 @@ function formatPhone(value, countryCode, phoneMask) {
131
131
  if (splitValue.length === 0) {
132
132
  break;
133
133
  }
134
- if (splitPhoneMask[i] === '#') {
135
- result += splitValue[0] || '';
134
+ if (splitPhoneMask[i] === `#`) {
135
+ result += splitValue[0] || ``;
136
136
  splitValue.splice(0, 1);
137
137
  }
138
138
  else {
@@ -148,7 +148,7 @@ const tuiFormatPhone = formatPhone;
148
148
  */
149
149
  // eslint-disable-next-line @typescript-eslint/naming-convention
150
150
  function otherDecimalSymbol(symbol) {
151
- return symbol === '.' ? ',' : '.';
151
+ return symbol === `.` ? `,` : `.`;
152
152
  }
153
153
  const tuiOtherDecimalSymbol = otherDecimalSymbol;
154
154
 
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-utils-format.js","sources":["ng://@taiga-ui/core/utils/format/capitalize.ts","ng://@taiga-ui/core/utils/format/capitalize-first-letter.ts","ng://@taiga-ui/core/utils/format/number-to-string-without-exp.ts","ng://@taiga-ui/core/utils/format/get-fractional-part-padded.ts","ng://@taiga-ui/core/utils/format/format-number.ts","ng://@taiga-ui/core/utils/format/format-phone.ts","ng://@taiga-ui/core/utils/format/other-decimal-symbol.ts","ng://@taiga-ui/core/utils/format/pluralize.ts","ng://@taiga-ui/core/utils/format/pluralize-to-icu.ts","ng://@taiga-ui/core/utils/format/taiga-ui-core-utils-format.ts"],"sourcesContent":["/**\n * @deprecated: use {@link tuiCapitalize} instead\n * Capitalizes a given string, replacing it with a lowercase string and making\n * the first letter of each word uppercase.\n *\n * @param value the input string\n * @return the capitalized string\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function capitalize(value: string): string {\n return value.toLowerCase().replace(/(?:^|\\s)\\S/g, char => char.toUpperCase());\n}\n\nexport const tuiCapitalize = capitalize;\n","/**\n * @deprecated: use {@link tuiCapitalizeFirstLetter} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function capitalizeFirstLetter(value: string): string {\n return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;\n}\n\nexport const tuiCapitalizeFirstLetter = capitalizeFirstLetter;\n","/**\n * @deprecated: use {@link tuiNumberToStringWithoutExp} instead\n * Convert number to string with replacing exponent part on decimals\n *\n * @param value the number\n * @return string representation of a number\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function numberToStringWithoutExp(value: number): string {\n const valueAsString = String(value);\n const [numberPart, expPart] = valueAsString.split('e-');\n\n let valueWithoutExp = valueAsString;\n\n if (expPart) {\n const [, fractionalPart] = numberPart.split('.');\n const decimalDigits = Number(expPart) + (fractionalPart?.length || 0);\n\n valueWithoutExp = value.toFixed(decimalDigits);\n }\n\n return valueWithoutExp;\n}\n\nexport const tuiNumberToStringWithoutExp = numberToStringWithoutExp;\n","import {numberToStringWithoutExp} from './number-to-string-without-exp';\n\n/**\n * @deprecated: use {@link tuiGetFractionPartPadded} instead\n * Return fractional part of number\n *\n * @param value the number\n * @param precision number of digits of decimal part, null to keep untouched\n * @return the fractional part of number\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getFractionPartPadded(value: number, precision?: number | null): string {\n const [, fractionPartPadded = ''] = numberToStringWithoutExp(value).split('.');\n\n return typeof precision === 'number'\n ? fractionPartPadded.slice(0, Math.max(0, precision))\n : fractionPartPadded;\n}\n\nexport const tuiGetFractionPartPadded = getFractionPartPadded;\n","import {CHAR_HYPHEN, CHAR_NO_BREAK_SPACE} from '@taiga-ui/cdk';\n\nimport {getFractionPartPadded} from './get-fractional-part-padded';\n\n// TODO: refactor later to `formatNumber(value: number, options: Partial<AllTheStuff>)`\n/**\n * @deprecated: use {@link tuiFormatNumber} instead\n * Formats number adding a thousand separators and correct decimal separator\n * padding decimal part with zeroes to given length\n *\n * @param value the input number\n * @param decimalLimit number of digits of decimal part, null to keep untouched\n * @param decimalSeparator separator between the integer and the decimal part\n * @param thousandSeparator separator between thousands\n * @param zeroPadding enable zeros at the end of decimal part\n * @return the formatted string\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function formatNumber(\n value: number,\n decimalLimit: number | null = null,\n decimalSeparator: string = ',',\n thousandSeparator: string = CHAR_NO_BREAK_SPACE,\n zeroPadding: boolean = true,\n): string {\n const integerPartString = String(Math.floor(Math.abs(value)));\n\n let fractionPartPadded = getFractionPartPadded(value, decimalLimit);\n\n if (decimalLimit !== null) {\n if (zeroPadding) {\n const zeroPaddingSize: number = Math.max(\n decimalLimit - fractionPartPadded.length,\n 0,\n );\n const zeroPartString = '0'.repeat(zeroPaddingSize);\n\n fractionPartPadded = `${fractionPartPadded}${zeroPartString}`;\n } else {\n fractionPartPadded = fractionPartPadded.replace(/0*$/, '');\n }\n }\n\n const remainder = integerPartString.length % 3;\n const sign = value < 0 ? CHAR_HYPHEN : '';\n let result = sign + integerPartString.charAt(0);\n\n for (let i = 1; i < integerPartString.length; i++) {\n if (i % 3 === remainder && integerPartString.length > 3) {\n result += thousandSeparator;\n }\n\n result += integerPartString.charAt(i);\n }\n\n return fractionPartPadded ? result + decimalSeparator + fractionPartPadded : result;\n}\n\nexport const tuiFormatNumber = formatNumber;\n","import {CHAR_PLUS} from '@taiga-ui/cdk';\n\n/**\n * @deprecated: use {@link tuiFormatPhone} instead\n * Formats a string with the phone format +7XXXXXXXXXXXX or XXXXXXXXXXXX,\n * adding parentheses and hyphens.\n *\n * @param value the input string\n * @param countryCode a country code\n * @param phoneMask a phone number mask\n * @return the formatted phone string of the form +7 XXX XXX-XX-XX\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function formatPhone(\n value: string,\n countryCode: string,\n phoneMask: string,\n): string {\n if (!value) {\n return '';\n }\n\n let result = countryCode;\n\n countryCode = countryCode.replace(/[()]/g, '');\n\n if (!value.startsWith(countryCode)) {\n value = countryCode + value.replace(CHAR_PLUS, '');\n }\n\n const splitPhoneMask = phoneMask.split('');\n const splitValue = value.slice(countryCode.length).split('');\n\n result += ' ';\n\n if (splitValue.length === 0) {\n return result;\n }\n\n for (let i = 0; i < splitPhoneMask.length; i++) {\n if (splitValue.length === 0) {\n break;\n }\n\n if (splitPhoneMask[i] === '#') {\n result += splitValue[0] || '';\n splitValue.splice(0, 1);\n } else {\n result += splitPhoneMask[i];\n }\n }\n\n return result;\n}\n\nexport const tuiFormatPhone = formatPhone;\n","import {TuiDecimalSymbol} from '@taiga-ui/core/types';\n\n/**\n * @deprecated: use {@link tuiOtherDecimalSymbol} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function otherDecimalSymbol(symbol: TuiDecimalSymbol): TuiDecimalSymbol {\n return symbol === '.' ? ',' : '.';\n}\n\nexport const tuiOtherDecimalSymbol = otherDecimalSymbol;\n","import {TuiPluralize} from '@taiga-ui/core/types';\n\n/**\n * Selects the correct plural form to display.\n *\n * @param value the input number\n * @param args an array of three plural forms, e.g. ['год', 'года', 'лет']\n * @deprecated This implementation targets Russian.\n * Use https://angular.io/api/common/NgPlural for your implementations.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function pluralize(value: number, [one, few, many]: TuiPluralize): string {\n const ten = value % 10;\n const hundred = value % 100;\n\n // 1, 21, 101, 121, но не 11, 111, 211...\n if (ten === 1 && hundred !== 11) {\n return one;\n }\n\n // 2, 3, 4, 22, 33, 44, 152, 163, 174, но не 12, 13, 14, 112, 213, 314...\n if (ten >= 2 && ten <= 4 && (hundred < 10 || hundred >= 20)) {\n return few;\n }\n\n return many;\n}\n","import {TuiPluralize} from '@taiga-ui/core/types';\n\n// TODO: 3.0 remove in 3.0\n\n/**\n * Temporary util for mapping TuiPluralize array to ICU format\n */\nexport function tuiPluralizeToICU(pluralize: TuiPluralize): Record<string, string> {\n return {\n one: pluralize[0],\n few: pluralize[1],\n many: pluralize[2],\n other: pluralize[2],\n };\n}\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-utils-format.js","sources":["ng://@taiga-ui/core/utils/format/capitalize.ts","ng://@taiga-ui/core/utils/format/capitalize-first-letter.ts","ng://@taiga-ui/core/utils/format/number-to-string-without-exp.ts","ng://@taiga-ui/core/utils/format/get-fractional-part-padded.ts","ng://@taiga-ui/core/utils/format/format-number.ts","ng://@taiga-ui/core/utils/format/format-phone.ts","ng://@taiga-ui/core/utils/format/other-decimal-symbol.ts","ng://@taiga-ui/core/utils/format/pluralize.ts","ng://@taiga-ui/core/utils/format/pluralize-to-icu.ts","ng://@taiga-ui/core/utils/format/taiga-ui-core-utils-format.ts"],"sourcesContent":["/**\n * @deprecated: use {@link tuiCapitalize} instead\n * Capitalizes a given string, replacing it with a lowercase string and making\n * the first letter of each word uppercase.\n *\n * @param value the input string\n * @return the capitalized string\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function capitalize(value: string): string {\n return value.toLowerCase().replace(/(?:^|\\s)\\S/g, char => char.toUpperCase());\n}\n\nexport const tuiCapitalize = capitalize;\n","/**\n * @deprecated: use {@link tuiCapitalizeFirstLetter} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function capitalizeFirstLetter(value: string): string {\n return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;\n}\n\nexport const tuiCapitalizeFirstLetter = capitalizeFirstLetter;\n","/**\n * @deprecated: use {@link tuiNumberToStringWithoutExp} instead\n * Convert number to string with replacing exponent part on decimals\n *\n * @param value the number\n * @return string representation of a number\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function numberToStringWithoutExp(value: number): string {\n const valueAsString = String(value);\n const [numberPart, expPart] = valueAsString.split(`e-`);\n\n let valueWithoutExp = valueAsString;\n\n if (expPart) {\n const [, fractionalPart] = numberPart.split(`.`);\n const decimalDigits = Number(expPart) + (fractionalPart?.length || 0);\n\n valueWithoutExp = value.toFixed(decimalDigits);\n }\n\n return valueWithoutExp;\n}\n\nexport const tuiNumberToStringWithoutExp = numberToStringWithoutExp;\n","import {numberToStringWithoutExp} from './number-to-string-without-exp';\n\n/**\n * @deprecated: use {@link tuiGetFractionPartPadded} instead\n * Return fractional part of number\n *\n * @param value the number\n * @param precision number of digits of decimal part, null to keep untouched\n * @return the fractional part of number\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getFractionPartPadded(value: number, precision?: number | null): string {\n const [, fractionPartPadded = ``] = numberToStringWithoutExp(value).split(`.`);\n\n return typeof precision === `number`\n ? fractionPartPadded.slice(0, Math.max(0, precision))\n : fractionPartPadded;\n}\n\nexport const tuiGetFractionPartPadded = getFractionPartPadded;\n","import {CHAR_HYPHEN, CHAR_NO_BREAK_SPACE} from '@taiga-ui/cdk';\n\nimport {getFractionPartPadded} from './get-fractional-part-padded';\n\n// TODO: refactor later to `formatNumber(value: number, options: Partial<AllTheStuff>)`\n/**\n * @deprecated: use {@link tuiFormatNumber} instead\n * Formats number adding a thousand separators and correct decimal separator\n * padding decimal part with zeroes to given length\n *\n * @param value the input number\n * @param decimalLimit number of digits of decimal part, null to keep untouched\n * @param decimalSeparator separator between the integer and the decimal part\n * @param thousandSeparator separator between thousands\n * @param zeroPadding enable zeros at the end of decimal part\n * @return the formatted string\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function formatNumber(\n value: number,\n decimalLimit: number | null = null,\n decimalSeparator: string = `,`,\n thousandSeparator: string = CHAR_NO_BREAK_SPACE,\n zeroPadding: boolean = true,\n): string {\n const integerPartString = String(Math.floor(Math.abs(value)));\n\n let fractionPartPadded = getFractionPartPadded(value, decimalLimit);\n\n if (decimalLimit !== null) {\n if (zeroPadding) {\n const zeroPaddingSize: number = Math.max(\n decimalLimit - fractionPartPadded.length,\n 0,\n );\n const zeroPartString = `0`.repeat(zeroPaddingSize);\n\n fractionPartPadded = `${fractionPartPadded}${zeroPartString}`;\n } else {\n fractionPartPadded = fractionPartPadded.replace(/0*$/, ``);\n }\n }\n\n const remainder = integerPartString.length % 3;\n const sign = value < 0 ? CHAR_HYPHEN : ``;\n let result = sign + integerPartString.charAt(0);\n\n for (let i = 1; i < integerPartString.length; i++) {\n if (i % 3 === remainder && integerPartString.length > 3) {\n result += thousandSeparator;\n }\n\n result += integerPartString.charAt(i);\n }\n\n return fractionPartPadded ? result + decimalSeparator + fractionPartPadded : result;\n}\n\nexport const tuiFormatNumber = formatNumber;\n","import {CHAR_PLUS} from '@taiga-ui/cdk';\n\n/**\n * @deprecated: use {@link tuiFormatPhone} instead\n * Formats a string with the phone format +7XXXXXXXXXXXX or XXXXXXXXXXXX,\n * adding parentheses and hyphens.\n *\n * @param value the input string\n * @param countryCode a country code\n * @param phoneMask a phone number mask\n * @return the formatted phone string of the form +7 XXX XXX-XX-XX\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function formatPhone(\n value: string,\n countryCode: string,\n phoneMask: string,\n): string {\n if (!value) {\n return ``;\n }\n\n let result = countryCode;\n\n countryCode = countryCode.replace(/[()]/g, ``);\n\n if (!value.startsWith(countryCode)) {\n value = countryCode + value.replace(CHAR_PLUS, ``);\n }\n\n const splitPhoneMask = phoneMask.split(``);\n const splitValue = value.slice(countryCode.length).split(``);\n\n result += ` `;\n\n if (splitValue.length === 0) {\n return result;\n }\n\n for (let i = 0; i < splitPhoneMask.length; i++) {\n if (splitValue.length === 0) {\n break;\n }\n\n if (splitPhoneMask[i] === `#`) {\n result += splitValue[0] || ``;\n splitValue.splice(0, 1);\n } else {\n result += splitPhoneMask[i];\n }\n }\n\n return result;\n}\n\nexport const tuiFormatPhone = formatPhone;\n","import {TuiDecimalSymbol} from '@taiga-ui/core/types';\n\n/**\n * @deprecated: use {@link tuiOtherDecimalSymbol} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function otherDecimalSymbol(symbol: TuiDecimalSymbol): TuiDecimalSymbol {\n return symbol === `.` ? `,` : `.`;\n}\n\nexport const tuiOtherDecimalSymbol = otherDecimalSymbol;\n","import {TuiPluralize} from '@taiga-ui/core/types';\n\n/**\n * Selects the correct plural form to display.\n *\n * @param value the input number\n * @param args an array of three plural forms, e.g. ['год', 'года', 'лет']\n * @deprecated This implementation targets Russian.\n * Use https://angular.io/api/common/NgPlural for your implementations.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function pluralize(value: number, [one, few, many]: TuiPluralize): string {\n const ten = value % 10;\n const hundred = value % 100;\n\n // 1, 21, 101, 121, но не 11, 111, 211...\n if (ten === 1 && hundred !== 11) {\n return one;\n }\n\n // 2, 3, 4, 22, 33, 44, 152, 163, 174, но не 12, 13, 14, 112, 213, 314...\n if (ten >= 2 && ten <= 4 && (hundred < 10 || hundred >= 20)) {\n return few;\n }\n\n return many;\n}\n","import {TuiPluralize} from '@taiga-ui/core/types';\n\n// TODO: 3.0 remove in 3.0\n\n/**\n * Temporary util for mapping TuiPluralize array to ICU format\n */\nexport function tuiPluralizeToICU(pluralize: TuiPluralize): Record<string, string> {\n return {\n one: pluralize[0],\n few: pluralize[1],\n many: pluralize[2],\n other: pluralize[2],\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -5,14 +5,14 @@ import { otherDecimalSymbol } from '@taiga-ui/core/utils/format';
5
5
  /**
6
6
  * Used to finish a number with zeros to a given precision
7
7
  */
8
- function tuiCreateAutoCorrectedNumberPipe(decimalLimit = 0, decimalSymbol = ',', thousandSymbol = CHAR_NO_BREAK_SPACE, nativeInput, allowNegative, isIOS = false) {
8
+ function tuiCreateAutoCorrectedNumberPipe(decimalLimit = 0, decimalSymbol = `,`, thousandSymbol = CHAR_NO_BREAK_SPACE, nativeInput, allowNegative, isIOS = false) {
9
9
  tuiAssert.assert(Number.isInteger(decimalLimit));
10
10
  tuiAssert.assert(decimalLimit >= 0);
11
11
  // Guess for which browser I need this :)
12
12
  let previousCaret = -1;
13
13
  const unlucky = (!!nativeInput && isSafari(nativeInput)) || isIOS;
14
14
  if (nativeInput && unlucky) {
15
- nativeInput.addEventListener('beforeinput', () => {
15
+ nativeInput.addEventListener(`beforeinput`, () => {
16
16
  previousCaret = nativeInput.selectionStart || 0;
17
17
  });
18
18
  }
@@ -38,24 +38,24 @@ function tuiCreateAutoCorrectedNumberPipe(decimalLimit = 0, decimalSymbol = ',',
38
38
  nativeInput.setSelectionRange(realCaretPosition, realCaretPosition);
39
39
  });
40
40
  }
41
- if (conformedValue === '' || !decimalLimit) {
41
+ if (conformedValue === `` || !decimalLimit) {
42
42
  return { value: conformedValue };
43
43
  }
44
44
  const withDecimalSymbol = addDecimalSymbolIfNeeded(conformedValue, decimalSymbol);
45
45
  const decimalPart = withDecimalSymbol.split(decimalSymbol)[1];
46
46
  const zeroPaddingSize = decimalLimit - decimalPart.length;
47
47
  return {
48
- value: withDecimalSymbol + '0'.repeat(zeroPaddingSize),
48
+ value: withDecimalSymbol + `0`.repeat(zeroPaddingSize),
49
49
  };
50
50
  };
51
51
  }
52
- function addDecimalSymbolIfNeeded(value, decimalSymbol = ',') {
52
+ function addDecimalSymbolIfNeeded(value, decimalSymbol = `,`) {
53
53
  return !value.includes(decimalSymbol) ? value + decimalSymbol : value;
54
54
  }
55
- function calculateSafariCaret(previousValue = '', current, previousCaret, decimalSymbol = ',') {
55
+ function calculateSafariCaret(previousValue = ``, current, previousCaret, decimalSymbol = `,`) {
56
56
  const tailRegex = new RegExp(`${decimalSymbol}.+`);
57
- const previousWithoutTail = previousValue.replace(tailRegex, '');
58
- const currentWithoutTail = current.replace(tailRegex, '');
57
+ const previousWithoutTail = previousValue.replace(tailRegex, ``);
58
+ const currentWithoutTail = current.replace(tailRegex, ``);
59
59
  const pasteOrCutOperation = Math.abs(previousWithoutTail.length - currentWithoutTail.length) > 2;
60
60
  if (pasteOrCutOperation) {
61
61
  return current.length;
@@ -77,12 +77,12 @@ function calculateSafariCaret(previousValue = '', current, previousCaret, decima
77
77
  function calculateChangedTailIndex(previous, current) {
78
78
  for (let i = 0; i < current.length; i++) {
79
79
  if (previous[i] !== current[i]) {
80
- return current[i] === '0' ? i : i + 1;
80
+ return current[i] === `0` ? i : i + 1;
81
81
  }
82
82
  }
83
83
  return current.length;
84
84
  }
85
- function calculateCaretGap(previousValue = '', current, thousandSymbol) {
85
+ function calculateCaretGap(previousValue = ``, current, thousandSymbol) {
86
86
  const pasteOrCutOperation = Math.abs(previousValue.length - current.length) > 2;
87
87
  if (pasteOrCutOperation) {
88
88
  return 0;
@@ -92,10 +92,10 @@ function calculateCaretGap(previousValue = '', current, thousandSymbol) {
92
92
  return nowSpaces - wereSpaces;
93
93
  }
94
94
 
95
- const ASSERTION = 'Correction function must return single char or null';
95
+ const ASSERTION = `Correction function must return single char or null`;
96
96
  function tuiCreateCorrectionMask(allowed, correctionHandler) {
97
97
  return rawValue => {
98
- const mask = rawValue.split('').reduce((result, char, index) => {
98
+ const mask = rawValue.split(``).reduce((result, char, index) => {
99
99
  const corrected = correctionHandler(char, index);
100
100
  tuiAssert.assert(corrected === null || corrected.length === 1, ASSERTION);
101
101
  if (!allowed.test(char) && !corrected) {
@@ -121,19 +121,19 @@ const NON_ZERO_DIGIT = /[1-9]/;
121
121
  /**
122
122
  * Adaptation for {@link https://github.com/text-mask/text-mask/tree/master/addons#createnumbermask `createNumberMask`}
123
123
  */
124
- function tuiCreateNumberMask({ allowDecimal = false, decimalSymbol = ',', thousandSymbol = CHAR_NO_BREAK_SPACE, autoCorrectDecimalSymbol = true, decimalLimit = 2, requireDecimal = false, allowNegative = false, integerLimit = 0, } = {}) {
124
+ function tuiCreateNumberMask({ allowDecimal = false, decimalSymbol = `,`, thousandSymbol = CHAR_NO_BREAK_SPACE, autoCorrectDecimalSymbol = true, decimalLimit = 2, requireDecimal = false, allowNegative = false, integerLimit = 0, } = {}) {
125
125
  tuiAssert.assert(Number.isInteger(decimalLimit));
126
126
  tuiAssert.assert(decimalLimit >= 0);
127
127
  tuiAssert.assert(Number.isInteger(integerLimit));
128
128
  tuiAssert.assert(integerLimit >= 0);
129
129
  return (rawValue, { previousConformedValue }) => {
130
130
  if (previousConformedValue && requireDecimal) {
131
- const conformedWithoutSeparator = rawValue.split(thousandSymbol).join('');
131
+ const conformedWithoutSeparator = rawValue.split(thousandSymbol).join(``);
132
132
  const previousConformedValueWithoutDecimalSymbolAndSeparator = previousConformedValue
133
133
  .split(thousandSymbol)
134
- .join('')
134
+ .join(``)
135
135
  .split(decimalSymbol)
136
- .join('');
136
+ .join(``);
137
137
  // Forbid removal of decimal separator if decimal part is required
138
138
  if (conformedWithoutSeparator ===
139
139
  previousConformedValueWithoutDecimalSymbolAndSeparator) {
@@ -144,7 +144,7 @@ function tuiCreateNumberMask({ allowDecimal = false, decimalSymbol = ',', thousa
144
144
  allowNegative;
145
145
  if (isDecimalSymbol(rawValue, decimalSymbol, autoCorrectDecimalSymbol) &&
146
146
  allowDecimal) {
147
- return ['0', decimalSymbol, TUI_DIGIT_REGEXP];
147
+ return [`0`, decimalSymbol, TUI_DIGIT_REGEXP];
148
148
  }
149
149
  if (isNegative) {
150
150
  rawValue = rawValue.slice(1);
@@ -152,21 +152,21 @@ function tuiCreateNumberMask({ allowDecimal = false, decimalSymbol = ',', thousa
152
152
  const decimalIndex = getDecimalSymbolIndex(rawValue, decimalSymbol, autoCorrectDecimalSymbol);
153
153
  const hasDecimal = decimalIndex !== -1;
154
154
  const integer = hasDecimal ? rawValue.slice(0, decimalIndex) : rawValue;
155
- const thousandSeparators = integer.match(new RegExp(thousandSymbol, 'g')) || [];
155
+ const thousandSeparators = integer.match(new RegExp(thousandSymbol, `g`)) || [];
156
156
  const integerCapped = integerLimit
157
157
  ? integer.slice(0, integerLimit + thousandSeparators.length)
158
158
  : integer;
159
- const integerCappedClean = integerCapped.replace(TUI_NON_DIGITS_REGEXP, '');
160
- const [leadingZerosMatch] = integerCappedClean.match(TUI_LEADING_ZEROES_REGEXP) || [''];
159
+ const integerCappedClean = integerCapped.replace(TUI_NON_DIGITS_REGEXP, ``);
160
+ const [leadingZerosMatch] = integerCappedClean.match(TUI_LEADING_ZEROES_REGEXP) || [``];
161
161
  const leadingZerosAmount = leadingZerosMatch.length;
162
162
  const integerCappedZerosClean = integerCappedClean
163
- .replace(/^0+(?!\.|$)/, '')
163
+ .replace(/^0+(?!\.|$)/, ``)
164
164
  .trim();
165
165
  const withSeparator = addThousandsSeparator(integerCappedZerosClean, thousandSymbol);
166
166
  const mask = convertToMask(withSeparator);
167
167
  if ((hasDecimal && allowDecimal) || requireDecimal) {
168
168
  const fraction = hasDecimal
169
- ? convertToMask(rawValue.slice(decimalIndex + 1).replace(TUI_NON_DIGITS_REGEXP, ''))
169
+ ? convertToMask(rawValue.slice(decimalIndex + 1).replace(TUI_NON_DIGITS_REGEXP, ``))
170
170
  : [];
171
171
  const fractionCapped = decimalLimit
172
172
  ? fraction.slice(0, decimalLimit)
@@ -179,7 +179,7 @@ function tuiCreateNumberMask({ allowDecimal = false, decimalSymbol = ',', thousa
179
179
  mask.push(TUI_DIGIT_REGEXP);
180
180
  }
181
181
  }
182
- const isOnlyZeroDigit = mask.length === 1 && integerCappedZerosClean === '0';
182
+ const isOnlyZeroDigit = mask.length === 1 && integerCappedZerosClean === `0`;
183
183
  if (isNegative) {
184
184
  if (mask.length === 0) {
185
185
  mask.push(TUI_DIGIT_REGEXP);
@@ -223,7 +223,7 @@ function isDecimalSymbol(str, decimalSymbol, autoCorrectDecimalSymbol) {
223
223
  }
224
224
  function convertToMask(strNumber) {
225
225
  return strNumber
226
- .split('')
226
+ .split(``)
227
227
  .map(char => (TUI_DIGIT_REGEXP.test(char) ? TUI_DIGIT_REGEXP : char));
228
228
  }
229
229
  function addThousandsSeparator(strNumber, thousandSymbol) {
@@ -244,9 +244,9 @@ function tuiEnableAutoCorrectDecimalSymbol({ thousandSeparator, }) {
244
244
  // eslint-disable-next-line @typescript-eslint/naming-convention
245
245
  function maskedMoneyValueIsEmpty(value) {
246
246
  switch (value) {
247
- case '':
247
+ case ``:
248
248
  case CHAR_HYPHEN:
249
- case ',':
249
+ case `,`:
250
250
  case `${CHAR_HYPHEN},`:
251
251
  return true;
252
252
  default:
@@ -260,7 +260,7 @@ const tuiMaskedMoneyValueIsEmpty = maskedMoneyValueIsEmpty;
260
260
  */
261
261
  // eslint-disable-next-line @typescript-eslint/naming-convention
262
262
  function maskedNumberStringToNumber(value, decimalsSymbol, thousandSymbol) {
263
- return parseFloat(value.split(thousandSymbol).join('').split(decimalsSymbol).join('.'));
263
+ return parseFloat(value.split(thousandSymbol).join(``).split(decimalsSymbol).join(`.`));
264
264
  }
265
265
  const tuiMaskedNumberStringToNumber = maskedNumberStringToNumber;
266
266
 
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-utils-mask.js","sources":["ng://@taiga-ui/core/utils/mask/create-auto-corrected-money-pipe.ts","ng://@taiga-ui/core/utils/mask/create-correction-mask.ts","ng://@taiga-ui/core/utils/mask/create-number-mask.ts","ng://@taiga-ui/core/utils/mask/enable-auto-correct-decimal-symbol.ts","ng://@taiga-ui/core/utils/mask/masked-money-value-is-empty.ts","ng://@taiga-ui/core/utils/mask/masked-number-string-to-number.ts","ng://@taiga-ui/core/utils/mask/taiga-ui-core-utils-mask.ts"],"sourcesContent":["import {\n CHAR_HYPHEN,\n CHAR_NO_BREAK_SPACE,\n getDocumentOrShadowRoot,\n isNativeFocused,\n isSafari,\n tuiAssert,\n} from '@taiga-ui/cdk';\nimport {TuiTextMaskPipeHandler} from '@taiga-ui/core/mask';\nimport {TuiDecimalSymbol} from '@taiga-ui/core/types';\n\n/**\n * Used to finish a number with zeros to a given precision\n */\nexport function tuiCreateAutoCorrectedNumberPipe(\n decimalLimit: number = 0,\n decimalSymbol: TuiDecimalSymbol = ',',\n thousandSymbol: string = CHAR_NO_BREAK_SPACE,\n nativeInput?: HTMLInputElement | null,\n allowNegative?: boolean,\n isIOS = false,\n): TuiTextMaskPipeHandler {\n tuiAssert.assert(Number.isInteger(decimalLimit));\n tuiAssert.assert(decimalLimit >= 0);\n\n // Guess for which browser I need this :)\n let previousCaret = -1;\n const unlucky = (!!nativeInput && isSafari(nativeInput)) || isIOS;\n\n if (nativeInput && unlucky) {\n nativeInput.addEventListener('beforeinput', () => {\n previousCaret = nativeInput.selectionStart || 0;\n });\n }\n\n return (conformedValue, config) => {\n // Removing everything by selecting and pressing '-'\n if (!conformedValue && config.rawValue === CHAR_HYPHEN && allowNegative) {\n return CHAR_HYPHEN;\n }\n\n // remove these hacks after text mask library has changed\n if (nativeInput && unlucky && isNativeFocused(nativeInput)) {\n const caret = calculateSafariCaret(\n config.previousConformedValue,\n conformedValue,\n previousCaret,\n );\n\n setTimeout(() => {\n nativeInput.setSelectionRange(caret, caret);\n });\n }\n\n if (\n nativeInput &&\n nativeInput.ownerDocument !== getDocumentOrShadowRoot(nativeInput) &&\n isNativeFocused(nativeInput) &&\n config.currentCaretPosition\n ) {\n const realCaretPosition =\n config.currentCaretPosition +\n calculateCaretGap(\n config.previousConformedValue,\n conformedValue,\n thousandSymbol,\n );\n\n setTimeout(() => {\n nativeInput.setSelectionRange(realCaretPosition, realCaretPosition);\n });\n }\n\n if (conformedValue === '' || !decimalLimit) {\n return {value: conformedValue};\n }\n\n const withDecimalSymbol = addDecimalSymbolIfNeeded(conformedValue, decimalSymbol);\n const decimalPart = withDecimalSymbol.split(decimalSymbol)[1];\n const zeroPaddingSize = decimalLimit - decimalPart.length;\n\n return {\n value: withDecimalSymbol + '0'.repeat(zeroPaddingSize),\n };\n };\n}\n\nfunction addDecimalSymbolIfNeeded(\n value: string,\n decimalSymbol: TuiDecimalSymbol = ',',\n): string {\n return !value.includes(decimalSymbol) ? value + decimalSymbol : value;\n}\n\nfunction calculateSafariCaret(\n previousValue: string = '',\n current: string,\n previousCaret: number,\n decimalSymbol: string = ',',\n): number {\n const tailRegex = new RegExp(`${decimalSymbol}.+`);\n const previousWithoutTail = previousValue.replace(tailRegex, '');\n const currentWithoutTail = current.replace(tailRegex, '');\n\n const pasteOrCutOperation =\n Math.abs(previousWithoutTail.length - currentWithoutTail.length) > 2;\n\n if (pasteOrCutOperation) {\n return current.length;\n }\n\n if (previousValue.length === current.length) {\n if (previousValue.indexOf(decimalSymbol) <= previousCaret) {\n return calculateChangedTailIndex(previousValue, current);\n }\n\n return previousWithoutTail === currentWithoutTail\n ? previousCaret - 1\n : previousCaret + 1;\n }\n\n if (previousValue.length === 0) {\n return 1;\n }\n\n const changeLength = current.length - previousValue.length;\n\n return previousCaret + changeLength;\n}\n\nfunction calculateChangedTailIndex(previous: string, current: string): number {\n for (let i = 0; i < current.length; i++) {\n if (previous[i] !== current[i]) {\n return current[i] === '0' ? i : i + 1;\n }\n }\n\n return current.length;\n}\n\nfunction calculateCaretGap(\n previousValue: string = '',\n current: string,\n thousandSymbol: string,\n): number {\n const pasteOrCutOperation = Math.abs(previousValue.length - current.length) > 2;\n\n if (pasteOrCutOperation) {\n return 0;\n }\n\n const wereSpaces = previousValue.split(thousandSymbol).length;\n const nowSpaces = current.split(thousandSymbol).length;\n\n return nowSpaces - wereSpaces;\n}\n","import {tuiAssert} from '@taiga-ui/cdk';\nimport {MASK_CARET_TRAP} from '@taiga-ui/core/constants';\nimport {\n TuiTextMaskCorrectionHandler,\n TuiTextMaskList,\n TuiTextMaskListHandler,\n} from '@taiga-ui/core/mask';\n\nconst ASSERTION = 'Correction function must return single char or null';\n\nexport function tuiCreateCorrectionMask(\n allowed: RegExp,\n correctionHandler: TuiTextMaskCorrectionHandler,\n): TuiTextMaskListHandler {\n return rawValue => {\n const mask = rawValue.split('').reduce<TuiTextMaskList>((result, char, index) => {\n const corrected = correctionHandler(char, index);\n\n tuiAssert.assert(corrected === null || corrected.length === 1, ASSERTION);\n\n if (!allowed.test(char) && !corrected) {\n return result;\n }\n\n if (allowed.test(char)) {\n return [...result, allowed];\n }\n\n if (corrected) {\n return [...result, corrected, MASK_CARET_TRAP];\n }\n\n return result;\n }, []);\n const lastIndex = mask.lastIndexOf(MASK_CARET_TRAP);\n const filtered = mask.filter(\n (item, index) => item !== MASK_CARET_TRAP || index === lastIndex,\n );\n\n return filtered.some(item => item !== allowed)\n ? [...filtered, allowed]\n : filtered;\n };\n}\n","import {CHAR_EN_DASH, CHAR_HYPHEN, CHAR_NO_BREAK_SPACE, tuiAssert} from '@taiga-ui/cdk';\nimport {\n MASK_CARET_TRAP,\n TUI_DIGIT_REGEXP,\n TUI_LEADING_ZEROES_REGEXP,\n TUI_NON_DIGITS_REGEXP,\n} from '@taiga-ui/core/constants';\nimport {TuiNumberMaskOptions, TuiTextMaskListHandler} from '@taiga-ui/core/mask';\nimport {TuiDecimalSymbol} from '@taiga-ui/core/types';\nimport {otherDecimalSymbol} from '@taiga-ui/core/utils/format';\n\nconst NON_ZERO_DIGIT = /[1-9]/;\n\n/**\n * Adaptation for {@link https://github.com/text-mask/text-mask/tree/master/addons#createnumbermask `createNumberMask`}\n */\nexport function tuiCreateNumberMask({\n allowDecimal = false,\n decimalSymbol = ',',\n thousandSymbol = CHAR_NO_BREAK_SPACE,\n autoCorrectDecimalSymbol = true,\n decimalLimit = 2,\n requireDecimal = false,\n allowNegative = false,\n integerLimit = 0,\n}: TuiNumberMaskOptions = {}): TuiTextMaskListHandler {\n tuiAssert.assert(Number.isInteger(decimalLimit));\n tuiAssert.assert(decimalLimit >= 0);\n tuiAssert.assert(Number.isInteger(integerLimit));\n tuiAssert.assert(integerLimit >= 0);\n\n return (rawValue, {previousConformedValue}) => {\n if (previousConformedValue && requireDecimal) {\n const conformedWithoutSeparator = rawValue.split(thousandSymbol).join('');\n const previousConformedValueWithoutDecimalSymbolAndSeparator =\n previousConformedValue\n .split(thousandSymbol)\n .join('')\n .split(decimalSymbol)\n .join('');\n\n // Forbid removal of decimal separator if decimal part is required\n if (\n conformedWithoutSeparator ===\n previousConformedValueWithoutDecimalSymbolAndSeparator\n ) {\n rawValue = previousConformedValue;\n }\n }\n\n const isNegative =\n (rawValue[0] === CHAR_HYPHEN || rawValue[0] === CHAR_EN_DASH) &&\n allowNegative;\n\n if (\n isDecimalSymbol(rawValue, decimalSymbol, autoCorrectDecimalSymbol) &&\n allowDecimal\n ) {\n return ['0', decimalSymbol, TUI_DIGIT_REGEXP];\n }\n\n if (isNegative) {\n rawValue = rawValue.slice(1);\n }\n\n const decimalIndex = getDecimalSymbolIndex(\n rawValue,\n decimalSymbol,\n autoCorrectDecimalSymbol,\n );\n const hasDecimal = decimalIndex !== -1;\n const integer = hasDecimal ? rawValue.slice(0, decimalIndex) : rawValue;\n const thousandSeparators = integer.match(new RegExp(thousandSymbol, 'g')) || [];\n const integerCapped = integerLimit\n ? integer.slice(0, integerLimit + thousandSeparators.length)\n : integer;\n const integerCappedClean = integerCapped.replace(TUI_NON_DIGITS_REGEXP, '');\n const [leadingZerosMatch] = integerCappedClean.match(\n TUI_LEADING_ZEROES_REGEXP,\n ) || [''];\n const leadingZerosAmount = leadingZerosMatch.length;\n const integerCappedZerosClean = integerCappedClean\n .replace(/^0+(?!\\.|$)/, '')\n .trim();\n const withSeparator = addThousandsSeparator(\n integerCappedZerosClean,\n thousandSymbol,\n );\n const mask = convertToMask(withSeparator);\n\n if ((hasDecimal && allowDecimal) || requireDecimal) {\n const fraction = hasDecimal\n ? convertToMask(\n rawValue.slice(decimalIndex + 1).replace(TUI_NON_DIGITS_REGEXP, ''),\n )\n : [];\n const fractionCapped = decimalLimit\n ? fraction.slice(0, decimalLimit)\n : fraction;\n\n if (rawValue[decimalIndex] !== otherDecimalSymbol(decimalSymbol)) {\n mask.push(MASK_CARET_TRAP);\n }\n\n mask.push(decimalSymbol, MASK_CARET_TRAP, ...fractionCapped);\n\n for (let i = 0; i < decimalLimit - fractionCapped.length; i++) {\n mask.push(TUI_DIGIT_REGEXP);\n }\n }\n\n const isOnlyZeroDigit = mask.length === 1 && integerCappedZerosClean === '0';\n\n if (isNegative) {\n if (mask.length === 0) {\n mask.push(TUI_DIGIT_REGEXP);\n }\n\n mask.unshift(CHAR_HYPHEN);\n }\n\n return preventLeadingZeroes(mask, isOnlyZeroDigit, leadingZerosAmount);\n };\n}\n\nfunction preventLeadingZeroes(\n mask: Array<string | RegExp>,\n isOnlyZeroDigit: boolean = false,\n leadingZerosAmount: number = 0,\n): Array<string | RegExp> {\n if (isOnlyZeroDigit || leadingZerosAmount === 0) {\n return mask;\n }\n\n const firstDigitIndex = mask.indexOf(TUI_DIGIT_REGEXP);\n\n if (firstDigitIndex === -1) {\n return mask;\n }\n\n const secondMaskDigit = mask[firstDigitIndex + 1];\n const isCaretTrap = secondMaskDigit === MASK_CARET_TRAP;\n\n if (isCaretTrap && leadingZerosAmount === 1) {\n return mask;\n } else if (isCaretTrap) {\n mask.unshift(NON_ZERO_DIGIT);\n\n return mask;\n }\n\n mask[firstDigitIndex] = NON_ZERO_DIGIT;\n\n return mask;\n}\n\nfunction getDecimalSymbolIndex(\n str: string,\n decimalSymbol: TuiDecimalSymbol,\n autoCorrectDecimalSymbol: boolean,\n): number {\n if (!autoCorrectDecimalSymbol) {\n return str.lastIndexOf(decimalSymbol);\n }\n\n return Math.max(\n str.lastIndexOf(decimalSymbol),\n str.lastIndexOf(otherDecimalSymbol(decimalSymbol)),\n );\n}\n\nfunction isDecimalSymbol(\n str: string,\n decimalSymbol: TuiDecimalSymbol,\n autoCorrectDecimalSymbol: boolean,\n): boolean {\n if (autoCorrectDecimalSymbol) {\n return /^[,.]$/.test(str);\n }\n\n return str === decimalSymbol;\n}\n\nfunction convertToMask(strNumber: string): Array<string | RegExp> {\n return strNumber\n .split('')\n .map(char => (TUI_DIGIT_REGEXP.test(char) ? TUI_DIGIT_REGEXP : char));\n}\n\nfunction addThousandsSeparator(strNumber: string, thousandSymbol: string): string {\n return strNumber.length > 3\n ? // TODO: investigate to disallow potentially catastrophic exponential-time regular expressions.\n // eslint-disable-next-line unicorn/no-unsafe-regex\n strNumber.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSymbol)\n : strNumber;\n}\n","import {TUI_DECIMAL_SYMBOLS} from '@taiga-ui/core/constants';\nimport {TuiNumberFormatSettings} from '@taiga-ui/core/interfaces';\n\nexport function tuiEnableAutoCorrectDecimalSymbol({\n thousandSeparator,\n}: TuiNumberFormatSettings): boolean {\n return !TUI_DECIMAL_SYMBOLS.includes(thousandSeparator);\n}\n","import {CHAR_HYPHEN} from '@taiga-ui/cdk';\n\n/**\n * @deprecated: use {@link tuiMaskedMoneyValueIsEmpty} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function maskedMoneyValueIsEmpty(value: string): boolean {\n switch (value) {\n case '':\n case CHAR_HYPHEN:\n case ',':\n case `${CHAR_HYPHEN},`:\n return true;\n default:\n return false;\n }\n}\n\nexport const tuiMaskedMoneyValueIsEmpty = maskedMoneyValueIsEmpty;\n","import {TuiDecimalSymbol} from '@taiga-ui/core/types';\n\n/**\n * @deprecated: use {@link tuiMaskedNumberStringToNumber} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function maskedNumberStringToNumber(\n value: string,\n decimalsSymbol: TuiDecimalSymbol,\n thousandSymbol: string,\n): number {\n return parseFloat(\n value.split(thousandSymbol).join('').split(decimalsSymbol).join('.'),\n );\n}\n\nexport const tuiMaskedNumberStringToNumber = maskedNumberStringToNumber;\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-utils-mask.js","sources":["ng://@taiga-ui/core/utils/mask/create-auto-corrected-money-pipe.ts","ng://@taiga-ui/core/utils/mask/create-correction-mask.ts","ng://@taiga-ui/core/utils/mask/create-number-mask.ts","ng://@taiga-ui/core/utils/mask/enable-auto-correct-decimal-symbol.ts","ng://@taiga-ui/core/utils/mask/masked-money-value-is-empty.ts","ng://@taiga-ui/core/utils/mask/masked-number-string-to-number.ts","ng://@taiga-ui/core/utils/mask/taiga-ui-core-utils-mask.ts"],"sourcesContent":["import {\n CHAR_HYPHEN,\n CHAR_NO_BREAK_SPACE,\n getDocumentOrShadowRoot,\n isNativeFocused,\n isSafari,\n tuiAssert,\n} from '@taiga-ui/cdk';\nimport {TuiTextMaskPipeHandler} from '@taiga-ui/core/mask';\nimport {TuiDecimalSymbol} from '@taiga-ui/core/types';\n\n/**\n * Used to finish a number with zeros to a given precision\n */\nexport function tuiCreateAutoCorrectedNumberPipe(\n decimalLimit: number = 0,\n decimalSymbol: TuiDecimalSymbol = `,`,\n thousandSymbol: string = CHAR_NO_BREAK_SPACE,\n nativeInput?: HTMLInputElement | null,\n allowNegative?: boolean,\n isIOS = false,\n): TuiTextMaskPipeHandler {\n tuiAssert.assert(Number.isInteger(decimalLimit));\n tuiAssert.assert(decimalLimit >= 0);\n\n // Guess for which browser I need this :)\n let previousCaret = -1;\n const unlucky = (!!nativeInput && isSafari(nativeInput)) || isIOS;\n\n if (nativeInput && unlucky) {\n nativeInput.addEventListener(`beforeinput`, () => {\n previousCaret = nativeInput.selectionStart || 0;\n });\n }\n\n return (conformedValue, config) => {\n // Removing everything by selecting and pressing '-'\n if (!conformedValue && config.rawValue === CHAR_HYPHEN && allowNegative) {\n return CHAR_HYPHEN;\n }\n\n // remove these hacks after text mask library has changed\n if (nativeInput && unlucky && isNativeFocused(nativeInput)) {\n const caret = calculateSafariCaret(\n config.previousConformedValue,\n conformedValue,\n previousCaret,\n );\n\n setTimeout(() => {\n nativeInput.setSelectionRange(caret, caret);\n });\n }\n\n if (\n nativeInput &&\n nativeInput.ownerDocument !== getDocumentOrShadowRoot(nativeInput) &&\n isNativeFocused(nativeInput) &&\n config.currentCaretPosition\n ) {\n const realCaretPosition =\n config.currentCaretPosition +\n calculateCaretGap(\n config.previousConformedValue,\n conformedValue,\n thousandSymbol,\n );\n\n setTimeout(() => {\n nativeInput.setSelectionRange(realCaretPosition, realCaretPosition);\n });\n }\n\n if (conformedValue === `` || !decimalLimit) {\n return {value: conformedValue};\n }\n\n const withDecimalSymbol = addDecimalSymbolIfNeeded(conformedValue, decimalSymbol);\n const decimalPart = withDecimalSymbol.split(decimalSymbol)[1];\n const zeroPaddingSize = decimalLimit - decimalPart.length;\n\n return {\n value: withDecimalSymbol + `0`.repeat(zeroPaddingSize),\n };\n };\n}\n\nfunction addDecimalSymbolIfNeeded(\n value: string,\n decimalSymbol: TuiDecimalSymbol = `,`,\n): string {\n return !value.includes(decimalSymbol) ? value + decimalSymbol : value;\n}\n\nfunction calculateSafariCaret(\n previousValue: string = ``,\n current: string,\n previousCaret: number,\n decimalSymbol: string = `,`,\n): number {\n const tailRegex = new RegExp(`${decimalSymbol}.+`);\n const previousWithoutTail = previousValue.replace(tailRegex, ``);\n const currentWithoutTail = current.replace(tailRegex, ``);\n\n const pasteOrCutOperation =\n Math.abs(previousWithoutTail.length - currentWithoutTail.length) > 2;\n\n if (pasteOrCutOperation) {\n return current.length;\n }\n\n if (previousValue.length === current.length) {\n if (previousValue.indexOf(decimalSymbol) <= previousCaret) {\n return calculateChangedTailIndex(previousValue, current);\n }\n\n return previousWithoutTail === currentWithoutTail\n ? previousCaret - 1\n : previousCaret + 1;\n }\n\n if (previousValue.length === 0) {\n return 1;\n }\n\n const changeLength = current.length - previousValue.length;\n\n return previousCaret + changeLength;\n}\n\nfunction calculateChangedTailIndex(previous: string, current: string): number {\n for (let i = 0; i < current.length; i++) {\n if (previous[i] !== current[i]) {\n return current[i] === `0` ? i : i + 1;\n }\n }\n\n return current.length;\n}\n\nfunction calculateCaretGap(\n previousValue: string = ``,\n current: string,\n thousandSymbol: string,\n): number {\n const pasteOrCutOperation = Math.abs(previousValue.length - current.length) > 2;\n\n if (pasteOrCutOperation) {\n return 0;\n }\n\n const wereSpaces = previousValue.split(thousandSymbol).length;\n const nowSpaces = current.split(thousandSymbol).length;\n\n return nowSpaces - wereSpaces;\n}\n","import {tuiAssert} from '@taiga-ui/cdk';\nimport {MASK_CARET_TRAP} from '@taiga-ui/core/constants';\nimport {\n TuiTextMaskCorrectionHandler,\n TuiTextMaskList,\n TuiTextMaskListHandler,\n} from '@taiga-ui/core/mask';\n\nconst ASSERTION = `Correction function must return single char or null`;\n\nexport function tuiCreateCorrectionMask(\n allowed: RegExp,\n correctionHandler: TuiTextMaskCorrectionHandler,\n): TuiTextMaskListHandler {\n return rawValue => {\n const mask = rawValue.split(``).reduce<TuiTextMaskList>((result, char, index) => {\n const corrected = correctionHandler(char, index);\n\n tuiAssert.assert(corrected === null || corrected.length === 1, ASSERTION);\n\n if (!allowed.test(char) && !corrected) {\n return result;\n }\n\n if (allowed.test(char)) {\n return [...result, allowed];\n }\n\n if (corrected) {\n return [...result, corrected, MASK_CARET_TRAP];\n }\n\n return result;\n }, []);\n const lastIndex = mask.lastIndexOf(MASK_CARET_TRAP);\n const filtered = mask.filter(\n (item, index) => item !== MASK_CARET_TRAP || index === lastIndex,\n );\n\n return filtered.some(item => item !== allowed)\n ? [...filtered, allowed]\n : filtered;\n };\n}\n","import {CHAR_EN_DASH, CHAR_HYPHEN, CHAR_NO_BREAK_SPACE, tuiAssert} from '@taiga-ui/cdk';\nimport {\n MASK_CARET_TRAP,\n TUI_DIGIT_REGEXP,\n TUI_LEADING_ZEROES_REGEXP,\n TUI_NON_DIGITS_REGEXP,\n} from '@taiga-ui/core/constants';\nimport {TuiNumberMaskOptions, TuiTextMaskListHandler} from '@taiga-ui/core/mask';\nimport {TuiDecimalSymbol} from '@taiga-ui/core/types';\nimport {otherDecimalSymbol} from '@taiga-ui/core/utils/format';\n\nconst NON_ZERO_DIGIT = /[1-9]/;\n\n/**\n * Adaptation for {@link https://github.com/text-mask/text-mask/tree/master/addons#createnumbermask `createNumberMask`}\n */\nexport function tuiCreateNumberMask({\n allowDecimal = false,\n decimalSymbol = `,`,\n thousandSymbol = CHAR_NO_BREAK_SPACE,\n autoCorrectDecimalSymbol = true,\n decimalLimit = 2,\n requireDecimal = false,\n allowNegative = false,\n integerLimit = 0,\n}: TuiNumberMaskOptions = {}): TuiTextMaskListHandler {\n tuiAssert.assert(Number.isInteger(decimalLimit));\n tuiAssert.assert(decimalLimit >= 0);\n tuiAssert.assert(Number.isInteger(integerLimit));\n tuiAssert.assert(integerLimit >= 0);\n\n return (rawValue, {previousConformedValue}) => {\n if (previousConformedValue && requireDecimal) {\n const conformedWithoutSeparator = rawValue.split(thousandSymbol).join(``);\n const previousConformedValueWithoutDecimalSymbolAndSeparator =\n previousConformedValue\n .split(thousandSymbol)\n .join(``)\n .split(decimalSymbol)\n .join(``);\n\n // Forbid removal of decimal separator if decimal part is required\n if (\n conformedWithoutSeparator ===\n previousConformedValueWithoutDecimalSymbolAndSeparator\n ) {\n rawValue = previousConformedValue;\n }\n }\n\n const isNegative =\n (rawValue[0] === CHAR_HYPHEN || rawValue[0] === CHAR_EN_DASH) &&\n allowNegative;\n\n if (\n isDecimalSymbol(rawValue, decimalSymbol, autoCorrectDecimalSymbol) &&\n allowDecimal\n ) {\n return [`0`, decimalSymbol, TUI_DIGIT_REGEXP];\n }\n\n if (isNegative) {\n rawValue = rawValue.slice(1);\n }\n\n const decimalIndex = getDecimalSymbolIndex(\n rawValue,\n decimalSymbol,\n autoCorrectDecimalSymbol,\n );\n const hasDecimal = decimalIndex !== -1;\n const integer = hasDecimal ? rawValue.slice(0, decimalIndex) : rawValue;\n const thousandSeparators = integer.match(new RegExp(thousandSymbol, `g`)) || [];\n const integerCapped = integerLimit\n ? integer.slice(0, integerLimit + thousandSeparators.length)\n : integer;\n const integerCappedClean = integerCapped.replace(TUI_NON_DIGITS_REGEXP, ``);\n const [leadingZerosMatch] = integerCappedClean.match(\n TUI_LEADING_ZEROES_REGEXP,\n ) || [``];\n const leadingZerosAmount = leadingZerosMatch.length;\n const integerCappedZerosClean = integerCappedClean\n .replace(/^0+(?!\\.|$)/, ``)\n .trim();\n const withSeparator = addThousandsSeparator(\n integerCappedZerosClean,\n thousandSymbol,\n );\n const mask = convertToMask(withSeparator);\n\n if ((hasDecimal && allowDecimal) || requireDecimal) {\n const fraction = hasDecimal\n ? convertToMask(\n rawValue.slice(decimalIndex + 1).replace(TUI_NON_DIGITS_REGEXP, ``),\n )\n : [];\n const fractionCapped = decimalLimit\n ? fraction.slice(0, decimalLimit)\n : fraction;\n\n if (rawValue[decimalIndex] !== otherDecimalSymbol(decimalSymbol)) {\n mask.push(MASK_CARET_TRAP);\n }\n\n mask.push(decimalSymbol, MASK_CARET_TRAP, ...fractionCapped);\n\n for (let i = 0; i < decimalLimit - fractionCapped.length; i++) {\n mask.push(TUI_DIGIT_REGEXP);\n }\n }\n\n const isOnlyZeroDigit = mask.length === 1 && integerCappedZerosClean === `0`;\n\n if (isNegative) {\n if (mask.length === 0) {\n mask.push(TUI_DIGIT_REGEXP);\n }\n\n mask.unshift(CHAR_HYPHEN);\n }\n\n return preventLeadingZeroes(mask, isOnlyZeroDigit, leadingZerosAmount);\n };\n}\n\nfunction preventLeadingZeroes(\n mask: Array<string | RegExp>,\n isOnlyZeroDigit: boolean = false,\n leadingZerosAmount: number = 0,\n): Array<string | RegExp> {\n if (isOnlyZeroDigit || leadingZerosAmount === 0) {\n return mask;\n }\n\n const firstDigitIndex = mask.indexOf(TUI_DIGIT_REGEXP);\n\n if (firstDigitIndex === -1) {\n return mask;\n }\n\n const secondMaskDigit = mask[firstDigitIndex + 1];\n const isCaretTrap = secondMaskDigit === MASK_CARET_TRAP;\n\n if (isCaretTrap && leadingZerosAmount === 1) {\n return mask;\n } else if (isCaretTrap) {\n mask.unshift(NON_ZERO_DIGIT);\n\n return mask;\n }\n\n mask[firstDigitIndex] = NON_ZERO_DIGIT;\n\n return mask;\n}\n\nfunction getDecimalSymbolIndex(\n str: string,\n decimalSymbol: TuiDecimalSymbol,\n autoCorrectDecimalSymbol: boolean,\n): number {\n if (!autoCorrectDecimalSymbol) {\n return str.lastIndexOf(decimalSymbol);\n }\n\n return Math.max(\n str.lastIndexOf(decimalSymbol),\n str.lastIndexOf(otherDecimalSymbol(decimalSymbol)),\n );\n}\n\nfunction isDecimalSymbol(\n str: string,\n decimalSymbol: TuiDecimalSymbol,\n autoCorrectDecimalSymbol: boolean,\n): boolean {\n if (autoCorrectDecimalSymbol) {\n return /^[,.]$/.test(str);\n }\n\n return str === decimalSymbol;\n}\n\nfunction convertToMask(strNumber: string): Array<string | RegExp> {\n return strNumber\n .split(``)\n .map(char => (TUI_DIGIT_REGEXP.test(char) ? TUI_DIGIT_REGEXP : char));\n}\n\nfunction addThousandsSeparator(strNumber: string, thousandSymbol: string): string {\n return strNumber.length > 3\n ? // TODO: investigate to disallow potentially catastrophic exponential-time regular expressions.\n // eslint-disable-next-line unicorn/no-unsafe-regex\n strNumber.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSymbol)\n : strNumber;\n}\n","import {TUI_DECIMAL_SYMBOLS} from '@taiga-ui/core/constants';\nimport {TuiNumberFormatSettings} from '@taiga-ui/core/interfaces';\n\nexport function tuiEnableAutoCorrectDecimalSymbol({\n thousandSeparator,\n}: TuiNumberFormatSettings): boolean {\n return !TUI_DECIMAL_SYMBOLS.includes(thousandSeparator);\n}\n","import {CHAR_HYPHEN} from '@taiga-ui/cdk';\n\n/**\n * @deprecated: use {@link tuiMaskedMoneyValueIsEmpty} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function maskedMoneyValueIsEmpty(value: string): boolean {\n switch (value) {\n case ``:\n case CHAR_HYPHEN:\n case `,`:\n case `${CHAR_HYPHEN},`:\n return true;\n default:\n return false;\n }\n}\n\nexport const tuiMaskedMoneyValueIsEmpty = maskedMoneyValueIsEmpty;\n","import {TuiDecimalSymbol} from '@taiga-ui/core/types';\n\n/**\n * @deprecated: use {@link tuiMaskedNumberStringToNumber} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function maskedNumberStringToNumber(\n value: string,\n decimalsSymbol: TuiDecimalSymbol,\n thousandSymbol: string,\n): number {\n return parseFloat(\n value.split(thousandSymbol).join(``).split(decimalsSymbol).join(`.`),\n );\n}\n\nexport const tuiMaskedNumberStringToNumber = maskedNumberStringToNumber;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}