@taiga-ui/cdk 4.51.0 → 4.52.0-canary.1ea42f6

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 (771) hide show
  1. package/classes/control.d.ts +2 -2
  2. package/classes/portals.d.ts +1 -1
  3. package/constants/used-icons.d.ts +1 -1
  4. package/constants/version.d.ts +1 -1
  5. package/constants/version.js +2 -1
  6. package/constants/version.js.map +1 -0
  7. package/date-time/date-time.d.ts +1 -1
  8. package/date-time/day.d.ts +1 -1
  9. package/directives/active-zone/active-zone.directive.d.ts +1 -1
  10. package/directives/animated/animated.directive.d.ts +0 -1
  11. package/directives/auto-focus/autofocus.options.d.ts +2 -2
  12. package/directives/index.d.ts +1 -1
  13. package/directives/let/let.directive.d.ts +1 -2
  14. package/directives/popover/popover.directive.d.ts +1 -1
  15. package/directives/with-styles/index.d.ts +1 -0
  16. package/directives/with-styles/with-styles.directive.d.ts +10 -0
  17. package/fesm2022/taiga-ui-cdk-classes.mjs +11 -12
  18. package/fesm2022/taiga-ui-cdk-classes.mjs.map +1 -1
  19. package/fesm2022/taiga-ui-cdk-constants.mjs +1 -12
  20. package/fesm2022/taiga-ui-cdk-constants.mjs.map +1 -1
  21. package/fesm2022/taiga-ui-cdk-date-time.mjs +1 -1
  22. package/fesm2022/taiga-ui-cdk-date-time.mjs.map +1 -1
  23. package/fesm2022/taiga-ui-cdk-directives-active-zone.mjs +9 -10
  24. package/fesm2022/taiga-ui-cdk-directives-active-zone.mjs.map +1 -1
  25. package/fesm2022/taiga-ui-cdk-directives-animated.mjs +48 -45
  26. package/fesm2022/taiga-ui-cdk-directives-animated.mjs.map +1 -1
  27. package/fesm2022/taiga-ui-cdk-directives-auto-focus.mjs +5 -5
  28. package/fesm2022/taiga-ui-cdk-directives-auto-focus.mjs.map +1 -1
  29. package/fesm2022/taiga-ui-cdk-directives-click-outside.mjs +4 -4
  30. package/fesm2022/taiga-ui-cdk-directives-click-outside.mjs.map +1 -1
  31. package/fesm2022/taiga-ui-cdk-directives-control.mjs +3 -3
  32. package/fesm2022/taiga-ui-cdk-directives-control.mjs.map +1 -1
  33. package/fesm2022/taiga-ui-cdk-directives-copy-processor.mjs +4 -4
  34. package/fesm2022/taiga-ui-cdk-directives-copy-processor.mjs.map +1 -1
  35. package/fesm2022/taiga-ui-cdk-directives-droppable.mjs +4 -4
  36. package/fesm2022/taiga-ui-cdk-directives-droppable.mjs.map +1 -1
  37. package/fesm2022/taiga-ui-cdk-directives-element.mjs +4 -4
  38. package/fesm2022/taiga-ui-cdk-directives-element.mjs.map +1 -1
  39. package/fesm2022/taiga-ui-cdk-directives-focus-trap.mjs +11 -19
  40. package/fesm2022/taiga-ui-cdk-directives-focus-trap.mjs.map +1 -1
  41. package/fesm2022/taiga-ui-cdk-directives-font-size.mjs +3 -3
  42. package/fesm2022/taiga-ui-cdk-directives-font-size.mjs.map +1 -1
  43. package/fesm2022/taiga-ui-cdk-directives-high-dpi.mjs +3 -3
  44. package/fesm2022/taiga-ui-cdk-directives-high-dpi.mjs.map +1 -1
  45. package/fesm2022/taiga-ui-cdk-directives-hovered.mjs +8 -8
  46. package/fesm2022/taiga-ui-cdk-directives-hovered.mjs.map +1 -1
  47. package/fesm2022/taiga-ui-cdk-directives-item.mjs +3 -3
  48. package/fesm2022/taiga-ui-cdk-directives-item.mjs.map +1 -1
  49. package/fesm2022/taiga-ui-cdk-directives-let.mjs +6 -7
  50. package/fesm2022/taiga-ui-cdk-directives-let.mjs.map +1 -1
  51. package/fesm2022/taiga-ui-cdk-directives-media.mjs +4 -4
  52. package/fesm2022/taiga-ui-cdk-directives-media.mjs.map +1 -1
  53. package/fesm2022/taiga-ui-cdk-directives-native-validator.mjs +4 -4
  54. package/fesm2022/taiga-ui-cdk-directives-native-validator.mjs.map +1 -1
  55. package/fesm2022/taiga-ui-cdk-directives-obscured.mjs +11 -9
  56. package/fesm2022/taiga-ui-cdk-directives-obscured.mjs.map +1 -1
  57. package/fesm2022/taiga-ui-cdk-directives-pan.mjs +8 -8
  58. package/fesm2022/taiga-ui-cdk-directives-pan.mjs.map +1 -1
  59. package/fesm2022/taiga-ui-cdk-directives-platform.mjs +4 -4
  60. package/fesm2022/taiga-ui-cdk-directives-platform.mjs.map +1 -1
  61. package/fesm2022/taiga-ui-cdk-directives-popover.mjs +3 -3
  62. package/fesm2022/taiga-ui-cdk-directives-popover.mjs.map +1 -1
  63. package/fesm2022/taiga-ui-cdk-directives-repeat-times.mjs +4 -4
  64. package/fesm2022/taiga-ui-cdk-directives-repeat-times.mjs.map +1 -1
  65. package/fesm2022/taiga-ui-cdk-directives-resizer.mjs +7 -7
  66. package/fesm2022/taiga-ui-cdk-directives-resizer.mjs.map +1 -1
  67. package/fesm2022/taiga-ui-cdk-directives-swipe.mjs +8 -8
  68. package/fesm2022/taiga-ui-cdk-directives-swipe.mjs.map +1 -1
  69. package/fesm2022/taiga-ui-cdk-directives-transitioned.mjs +4 -4
  70. package/fesm2022/taiga-ui-cdk-directives-transitioned.mjs.map +1 -1
  71. package/fesm2022/taiga-ui-cdk-directives-validator.mjs +3 -3
  72. package/fesm2022/taiga-ui-cdk-directives-validator.mjs.map +1 -1
  73. package/fesm2022/taiga-ui-cdk-directives-value-changes.mjs +4 -4
  74. package/fesm2022/taiga-ui-cdk-directives-value-changes.mjs.map +1 -1
  75. package/fesm2022/taiga-ui-cdk-directives-visual-viewport.mjs +3 -3
  76. package/fesm2022/taiga-ui-cdk-directives-visual-viewport.mjs.map +1 -1
  77. package/fesm2022/taiga-ui-cdk-directives-with-styles.mjs +29 -0
  78. package/fesm2022/taiga-ui-cdk-directives-with-styles.mjs.map +1 -0
  79. package/fesm2022/taiga-ui-cdk-directives-zoom.mjs +7 -7
  80. package/fesm2022/taiga-ui-cdk-directives-zoom.mjs.map +1 -1
  81. package/fesm2022/taiga-ui-cdk-directives.mjs +1 -1
  82. package/fesm2022/taiga-ui-cdk-observables.mjs.map +1 -1
  83. package/fesm2022/taiga-ui-cdk-pipes-animation.mjs +3 -3
  84. package/fesm2022/taiga-ui-cdk-pipes-animation.mjs.map +1 -1
  85. package/fesm2022/taiga-ui-cdk-pipes-filter.mjs +3 -3
  86. package/fesm2022/taiga-ui-cdk-pipes-filter.mjs.map +1 -1
  87. package/fesm2022/taiga-ui-cdk-pipes-is-present.mjs +3 -3
  88. package/fesm2022/taiga-ui-cdk-pipes-is-present.mjs.map +1 -1
  89. package/fesm2022/taiga-ui-cdk-pipes-keys.mjs +3 -3
  90. package/fesm2022/taiga-ui-cdk-pipes-keys.mjs.map +1 -1
  91. package/fesm2022/taiga-ui-cdk-pipes-mapper.mjs +3 -3
  92. package/fesm2022/taiga-ui-cdk-pipes-mapper.mjs.map +1 -1
  93. package/fesm2022/taiga-ui-cdk-pipes-obfuscate.mjs +3 -3
  94. package/fesm2022/taiga-ui-cdk-pipes-obfuscate.mjs.map +1 -1
  95. package/fesm2022/taiga-ui-cdk-pipes-repeat-times.mjs +3 -3
  96. package/fesm2022/taiga-ui-cdk-pipes-repeat-times.mjs.map +1 -1
  97. package/fesm2022/taiga-ui-cdk-pipes-replace.mjs +3 -3
  98. package/fesm2022/taiga-ui-cdk-pipes-replace.mjs.map +1 -1
  99. package/fesm2022/taiga-ui-cdk-pipes-to-array.mjs +3 -3
  100. package/fesm2022/taiga-ui-cdk-pipes-to-array.mjs.map +1 -1
  101. package/fesm2022/taiga-ui-cdk-services.mjs +17 -15
  102. package/fesm2022/taiga-ui-cdk-services.mjs.map +1 -1
  103. package/fesm2022/taiga-ui-cdk-tokens.mjs +13 -12
  104. package/fesm2022/taiga-ui-cdk-tokens.mjs.map +1 -1
  105. package/fesm2022/taiga-ui-cdk-utils-browser.mjs.map +1 -1
  106. package/fesm2022/taiga-ui-cdk-utils-color.mjs +1 -1
  107. package/fesm2022/taiga-ui-cdk-utils-color.mjs.map +1 -1
  108. package/fesm2022/taiga-ui-cdk-utils-di.mjs +1 -1
  109. package/fesm2022/taiga-ui-cdk-utils-di.mjs.map +1 -1
  110. package/fesm2022/taiga-ui-cdk-utils-dom.mjs.map +1 -1
  111. package/fesm2022/taiga-ui-cdk-utils-focus.mjs +8 -8
  112. package/fesm2022/taiga-ui-cdk-utils-focus.mjs.map +1 -1
  113. package/fesm2022/taiga-ui-cdk-utils-math.mjs.map +1 -1
  114. package/fesm2022/taiga-ui-cdk-utils-miscellaneous.mjs +23 -5
  115. package/fesm2022/taiga-ui-cdk-utils-miscellaneous.mjs.map +1 -1
  116. package/package.json +23 -135
  117. package/pipes/obfuscate/obfuscate.options.d.ts +1 -1
  118. package/schematics/constants/file-globs.js +2 -1
  119. package/schematics/constants/file-globs.js.map +1 -0
  120. package/schematics/constants/index.js +1 -0
  121. package/schematics/constants/index.js.map +1 -0
  122. package/schematics/constants/taiga-styles.js +1 -0
  123. package/schematics/constants/taiga-styles.js.map +1 -0
  124. package/schematics/index.js +1 -0
  125. package/schematics/index.js.map +1 -0
  126. package/schematics/migrate-tui-let/index.js +2 -1
  127. package/schematics/migrate-tui-let/index.js.map +1 -0
  128. package/schematics/ng-add/constants/modules.js +1 -0
  129. package/schematics/ng-add/constants/modules.js.map +1 -0
  130. package/schematics/ng-add/constants/packages.js +1 -0
  131. package/schematics/ng-add/constants/packages.js.map +1 -0
  132. package/schematics/ng-add/constants/versions.d.ts +1 -1
  133. package/schematics/ng-add/constants/versions.js +1 -0
  134. package/schematics/ng-add/constants/versions.js.map +1 -0
  135. package/schematics/ng-add/index.js +2 -2
  136. package/schematics/ng-add/index.js.map +1 -0
  137. package/schematics/ng-add/schema.js +1 -0
  138. package/schematics/ng-add/schema.js.map +1 -0
  139. package/schematics/ng-add/setup-project.js +2 -1
  140. package/schematics/ng-add/setup-project.js.map +1 -0
  141. package/schematics/ng-add/steps/add-taiga-icons.js +3 -3
  142. package/schematics/ng-add/steps/add-taiga-icons.js.map +1 -0
  143. package/schematics/ng-add/steps/add-taiga-modules.js +2 -2
  144. package/schematics/ng-add/steps/add-taiga-modules.js.map +1 -0
  145. package/schematics/ng-add/steps/add-taiga-styles.js +2 -2
  146. package/schematics/ng-add/steps/add-taiga-styles.js.map +1 -0
  147. package/schematics/ng-add/steps/wrap-with-tui-root.js +2 -2
  148. package/schematics/ng-add/steps/wrap-with-tui-root.js.map +1 -0
  149. package/schematics/ng-update/interfaces/asset.js +1 -0
  150. package/schematics/ng-update/interfaces/asset.js.map +1 -0
  151. package/schematics/ng-update/interfaces/html-comment.js +1 -0
  152. package/schematics/ng-update/interfaces/html-comment.js.map +1 -0
  153. package/schematics/ng-update/interfaces/index.js +1 -0
  154. package/schematics/ng-update/interfaces/index.js.map +1 -0
  155. package/schematics/ng-update/interfaces/migration-warning.js +1 -0
  156. package/schematics/ng-update/interfaces/migration-warning.js.map +1 -0
  157. package/schematics/ng-update/interfaces/removable-input.js +1 -0
  158. package/schematics/ng-update/interfaces/removable-input.js.map +1 -0
  159. package/schematics/ng-update/interfaces/removed-module.js +1 -0
  160. package/schematics/ng-update/interfaces/removed-module.js.map +1 -0
  161. package/schematics/ng-update/interfaces/replacement-attribute-to-directive.js +1 -0
  162. package/schematics/ng-update/interfaces/replacement-attribute-to-directive.js.map +1 -0
  163. package/schematics/ng-update/interfaces/replacement-attribute-value.js +1 -0
  164. package/schematics/ng-update/interfaces/replacement-attribute-value.js.map +1 -0
  165. package/schematics/ng-update/interfaces/replacement-attribute.js +1 -0
  166. package/schematics/ng-update/interfaces/replacement-attribute.js.map +1 -0
  167. package/schematics/ng-update/interfaces/replacement-enum.js +1 -0
  168. package/schematics/ng-update/interfaces/replacement-enum.js.map +1 -0
  169. package/schematics/ng-update/interfaces/replacement-identifier.js +1 -0
  170. package/schematics/ng-update/interfaces/replacement-identifier.js.map +1 -0
  171. package/schematics/ng-update/interfaces/replacement-service.js +1 -0
  172. package/schematics/ng-update/interfaces/replacement-service.js.map +1 -0
  173. package/schematics/ng-update/interfaces/replacement-tag.js +1 -0
  174. package/schematics/ng-update/interfaces/replacement-tag.js.map +1 -0
  175. package/schematics/ng-update/interfaces/replacement-type.js +1 -0
  176. package/schematics/ng-update/interfaces/replacement-type.js.map +1 -0
  177. package/schematics/ng-update/interfaces/template-resource.js +1 -0
  178. package/schematics/ng-update/interfaces/template-resource.js.map +1 -0
  179. package/schematics/ng-update/steps/icons/replace-imports.js +2 -2
  180. package/schematics/ng-update/steps/icons/replace-imports.js.map +1 -0
  181. package/schematics/ng-update/steps/index.js +1 -0
  182. package/schematics/ng-update/steps/index.js.map +1 -0
  183. package/schematics/ng-update/steps/rename-types.js +2 -2
  184. package/schematics/ng-update/steps/rename-types.js.map +1 -0
  185. package/schematics/ng-update/steps/replace-deep-import.js +2 -2
  186. package/schematics/ng-update/steps/replace-deep-import.js.map +1 -0
  187. package/schematics/ng-update/steps/replace-enums.js +2 -2
  188. package/schematics/ng-update/steps/replace-enums.js.map +1 -0
  189. package/schematics/ng-update/steps/replace-identifier.js +3 -3
  190. package/schematics/ng-update/steps/replace-identifier.js.map +1 -0
  191. package/schematics/ng-update/steps/replace-package-name.js +2 -2
  192. package/schematics/ng-update/steps/replace-package-name.js.map +1 -0
  193. package/schematics/ng-update/steps/replace-services.js +2 -2
  194. package/schematics/ng-update/steps/replace-services.js.map +1 -0
  195. package/schematics/ng-update/steps/show-warnings.js +2 -2
  196. package/schematics/ng-update/steps/show-warnings.js.map +1 -0
  197. package/schematics/ng-update/utils/get-file-system.js +2 -2
  198. package/schematics/ng-update/utils/get-file-system.js.map +1 -0
  199. package/schematics/ng-update/{v4/steps → utils}/replace-functions.d.ts +1 -1
  200. package/schematics/ng-update/{v4/steps → utils}/replace-functions.js +3 -3
  201. package/schematics/ng-update/utils/replace-functions.js.map +1 -0
  202. package/schematics/ng-update/utils/replace-text.js +2 -2
  203. package/schematics/ng-update/utils/replace-text.js.map +1 -0
  204. package/schematics/ng-update/utils/templates/index.js +1 -0
  205. package/schematics/ng-update/utils/templates/index.js.map +1 -0
  206. package/schematics/ng-update/utils/templates/remove-inputs.js +2 -2
  207. package/schematics/ng-update/utils/templates/remove-inputs.js.map +1 -0
  208. package/schematics/ng-update/utils/templates/replace-attr-values.js +2 -2
  209. package/schematics/ng-update/utils/templates/replace-attr-values.js.map +1 -0
  210. package/schematics/ng-update/utils/templates/replace-attrs-by-directives.js +2 -2
  211. package/schematics/ng-update/utils/templates/replace-attrs-by-directives.js.map +1 -0
  212. package/schematics/ng-update/utils/templates/replace-attrs.js +2 -2
  213. package/schematics/ng-update/utils/templates/replace-attrs.js.map +1 -0
  214. package/schematics/ng-update/utils/templates/replace-tag.js +2 -2
  215. package/schematics/ng-update/utils/templates/replace-tag.js.map +1 -0
  216. package/schematics/ng-update/utils/templates/replace-tags.js +2 -2
  217. package/schematics/ng-update/utils/templates/replace-tags.js.map +1 -0
  218. package/schematics/ng-update/utils/templates/template-comments.js +2 -2
  219. package/schematics/ng-update/utils/templates/template-comments.js.map +1 -0
  220. package/schematics/ng-update/v4/index.js +3 -3
  221. package/schematics/ng-update/v4/index.js.map +1 -0
  222. package/schematics/ng-update/v4/migrate-addon-doc/index.js +2 -2
  223. package/schematics/ng-update/v4/migrate-addon-doc/index.js.map +1 -0
  224. package/schematics/ng-update/v4/migrate-addon-doc/replace-symbols.js +1 -0
  225. package/schematics/ng-update/v4/migrate-addon-doc/replace-symbols.js.map +1 -0
  226. package/schematics/ng-update/v4/migrate-css-vars/index.js +2 -2
  227. package/schematics/ng-update/v4/migrate-css-vars/index.js.map +1 -0
  228. package/schematics/ng-update/v4/migrate-css-vars/palette.js +1 -0
  229. package/schematics/ng-update/v4/migrate-css-vars/palette.js.map +1 -0
  230. package/schematics/ng-update/v4/migrate-css-vars/rename-css-vars.d.ts +0 -1
  231. package/schematics/ng-update/v4/migrate-css-vars/rename-css-vars.js +2 -2
  232. package/schematics/ng-update/v4/migrate-css-vars/rename-css-vars.js.map +1 -0
  233. package/schematics/ng-update/v4/migrate-icons/index.js +2 -2
  234. package/schematics/ng-update/v4/migrate-icons/index.js.map +1 -0
  235. package/schematics/ng-update/v4/migrate-icons/rename-icons.d.ts +0 -1
  236. package/schematics/ng-update/v4/migrate-icons/rename-icons.js +2 -2
  237. package/schematics/ng-update/v4/migrate-icons/rename-icons.js.map +1 -0
  238. package/schematics/ng-update/v4/migrate-icons/rename-proprietary-icons.d.ts +0 -1
  239. package/schematics/ng-update/v4/migrate-icons/rename-proprietary-icons.js +2 -2
  240. package/schematics/ng-update/v4/migrate-icons/rename-proprietary-icons.js.map +1 -0
  241. package/schematics/ng-update/v4/steps/constants/attr-to-directive-replace.js +1 -0
  242. package/schematics/ng-update/v4/steps/constants/attr-to-directive-replace.js.map +1 -0
  243. package/schematics/ng-update/v4/steps/constants/attr-with-values-to-replace.js +1 -0
  244. package/schematics/ng-update/v4/steps/constants/attr-with-values-to-replace.js.map +1 -0
  245. package/schematics/ng-update/v4/steps/constants/attrs-to-replace.js +1 -0
  246. package/schematics/ng-update/v4/steps/constants/attrs-to-replace.js.map +1 -0
  247. package/schematics/ng-update/v4/steps/constants/enums.js +1 -0
  248. package/schematics/ng-update/v4/steps/constants/enums.js.map +1 -0
  249. package/schematics/ng-update/v4/steps/constants/functions.js +1 -0
  250. package/schematics/ng-update/v4/steps/constants/functions.js.map +1 -0
  251. package/schematics/ng-update/v4/steps/constants/html-comments.js +1 -0
  252. package/schematics/ng-update/v4/steps/constants/html-comments.js.map +1 -0
  253. package/schematics/ng-update/v4/steps/constants/identifiers-to-replace.js +1 -0
  254. package/schematics/ng-update/v4/steps/constants/identifiers-to-replace.js.map +1 -0
  255. package/schematics/ng-update/v4/steps/constants/index.js +1 -0
  256. package/schematics/ng-update/v4/steps/constants/index.js.map +1 -0
  257. package/schematics/ng-update/v4/steps/constants/inputs-to-remove.js +1 -0
  258. package/schematics/ng-update/v4/steps/constants/inputs-to-remove.js.map +1 -0
  259. package/schematics/ng-update/v4/steps/constants/migration-warnings.js +1 -0
  260. package/schematics/ng-update/v4/steps/constants/migration-warnings.js.map +1 -0
  261. package/schematics/ng-update/v4/steps/constants/modules-to-remove.js +1 -0
  262. package/schematics/ng-update/v4/steps/constants/modules-to-remove.js.map +1 -0
  263. package/schematics/ng-update/v4/steps/constants/modules-to-replace.js +1 -0
  264. package/schematics/ng-update/v4/steps/constants/modules-to-replace.js.map +1 -0
  265. package/schematics/ng-update/v4/steps/constants/services.js +1 -0
  266. package/schematics/ng-update/v4/steps/constants/services.js.map +1 -0
  267. package/schematics/ng-update/v4/steps/constants/tags-to-replace.js +1 -0
  268. package/schematics/ng-update/v4/steps/constants/tags-to-replace.js.map +1 -0
  269. package/schematics/ng-update/v4/steps/constants/types.js +1 -0
  270. package/schematics/ng-update/v4/steps/constants/types.js.map +1 -0
  271. package/schematics/ng-update/v4/steps/drop-universal-mock.js +2 -2
  272. package/schematics/ng-update/v4/steps/drop-universal-mock.js.map +1 -0
  273. package/schematics/ng-update/v4/steps/index.js +1 -0
  274. package/schematics/ng-update/v4/steps/index.js.map +1 -0
  275. package/schematics/ng-update/v4/steps/migrate-alert-service.js +2 -2
  276. package/schematics/ng-update/v4/steps/migrate-alert-service.js.map +1 -0
  277. package/schematics/ng-update/v4/steps/migrate-all-country-iso-codes.js +2 -2
  278. package/schematics/ng-update/v4/steps/migrate-all-country-iso-codes.js.map +1 -0
  279. package/schematics/ng-update/v4/steps/migrate-destroy-service.js +2 -2
  280. package/schematics/ng-update/v4/steps/migrate-destroy-service.js.map +1 -0
  281. package/schematics/ng-update/v4/steps/migrate-editor.d.ts +0 -1
  282. package/schematics/ng-update/v4/steps/migrate-editor.js +3 -2
  283. package/schematics/ng-update/v4/steps/migrate-editor.js.map +1 -0
  284. package/schematics/ng-update/v4/steps/migrate-legacy-mask.js +2 -2
  285. package/schematics/ng-update/v4/steps/migrate-legacy-mask.js.map +1 -0
  286. package/schematics/ng-update/v4/steps/migrate-month-context.js +2 -2
  287. package/schematics/ng-update/v4/steps/migrate-month-context.js.map +1 -0
  288. package/schematics/ng-update/v4/steps/migrate-number-format-settings.js +2 -2
  289. package/schematics/ng-update/v4/steps/migrate-number-format-settings.js.map +1 -0
  290. package/schematics/ng-update/v4/steps/migrate-option-providers.js +2 -2
  291. package/schematics/ng-update/v4/steps/migrate-option-providers.js.map +1 -0
  292. package/schematics/ng-update/v4/steps/migrate-proprietary.d.ts +0 -1
  293. package/schematics/ng-update/v4/steps/migrate-proprietary.js +3 -3
  294. package/schematics/ng-update/v4/steps/migrate-proprietary.js.map +1 -0
  295. package/schematics/ng-update/v4/steps/migrate-providers-from.js +2 -2
  296. package/schematics/ng-update/v4/steps/migrate-providers-from.js.map +1 -0
  297. package/schematics/ng-update/v4/steps/migrate-root.js +2 -2
  298. package/schematics/ng-update/v4/steps/migrate-root.js.map +1 -0
  299. package/schematics/ng-update/v4/steps/migrate-templates.js +3 -3
  300. package/schematics/ng-update/v4/steps/migrate-templates.js.map +1 -0
  301. package/schematics/ng-update/v4/steps/remove-duplicates.js +2 -2
  302. package/schematics/ng-update/v4/steps/remove-duplicates.js.map +1 -0
  303. package/schematics/ng-update/v4/steps/restore-tui-mapper.js +2 -2
  304. package/schematics/ng-update/v4/steps/restore-tui-mapper.js.map +1 -0
  305. package/schematics/ng-update/v4/steps/restore-tui-matcher.js +2 -2
  306. package/schematics/ng-update/v4/steps/restore-tui-matcher.js.map +1 -0
  307. package/schematics/ng-update/v4/steps/styles/index.d.ts +0 -1
  308. package/schematics/ng-update/v4/steps/styles/index.js +3 -2
  309. package/schematics/ng-update/v4/steps/styles/index.js.map +1 -0
  310. package/schematics/ng-update/v4/steps/styles/migrate-legacy-mixins.js +2 -2
  311. package/schematics/ng-update/v4/steps/styles/migrate-legacy-mixins.js.map +1 -0
  312. package/schematics/ng-update/v4/steps/styles/migrate-less-scss-constants.js +2 -2
  313. package/schematics/ng-update/v4/steps/styles/migrate-less-scss-constants.js.map +1 -0
  314. package/schematics/ng-update/v4/steps/styles/migrate-mixins.js +2 -2
  315. package/schematics/ng-update/v4/steps/styles/migrate-mixins.js.map +1 -0
  316. package/schematics/ng-update/v4/steps/styles/migrate-shadow-mixins.js +2 -2
  317. package/schematics/ng-update/v4/steps/styles/migrate-shadow-mixins.js.map +1 -0
  318. package/schematics/ng-update/v4/steps/styles/migrate-space-mixins.js +2 -2
  319. package/schematics/ng-update/v4/steps/styles/migrate-space-mixins.js.map +1 -0
  320. package/schematics/ng-update/v4/steps/styles/migrate-text-mixins.js +2 -2
  321. package/schematics/ng-update/v4/steps/styles/migrate-text-mixins.js.map +1 -0
  322. package/schematics/ng-update/v4/steps/templates/dropdown-ref-comment.js +2 -2
  323. package/schematics/ng-update/v4/steps/templates/dropdown-ref-comment.js.map +1 -0
  324. package/schematics/ng-update/v4/steps/templates/index.js +1 -0
  325. package/schematics/ng-update/v4/steps/templates/index.js.map +1 -0
  326. package/schematics/ng-update/v4/steps/templates/migrate-active-zone.js +2 -2
  327. package/schematics/ng-update/v4/steps/templates/migrate-active-zone.js.map +1 -0
  328. package/schematics/ng-update/v4/steps/templates/migrate-avatar.js +2 -2
  329. package/schematics/ng-update/v4/steps/templates/migrate-avatar.js.map +1 -0
  330. package/schematics/ng-update/v4/steps/templates/migrate-axes.js +2 -2
  331. package/schematics/ng-update/v4/steps/templates/migrate-axes.js.map +1 -0
  332. package/schematics/ng-update/v4/steps/templates/migrate-badge.js +2 -2
  333. package/schematics/ng-update/v4/steps/templates/migrate-badge.js.map +1 -0
  334. package/schematics/ng-update/v4/steps/templates/migrate-badged-content.js +2 -2
  335. package/schematics/ng-update/v4/steps/templates/migrate-badged-content.js.map +1 -0
  336. package/schematics/ng-update/v4/steps/templates/migrate-blocked.js +2 -2
  337. package/schematics/ng-update/v4/steps/templates/migrate-blocked.js.map +1 -0
  338. package/schematics/ng-update/v4/steps/templates/migrate-button-appearance.js +2 -2
  339. package/schematics/ng-update/v4/steps/templates/migrate-button-appearance.js.map +1 -0
  340. package/schematics/ng-update/v4/steps/templates/migrate-expandable.js +2 -2
  341. package/schematics/ng-update/v4/steps/templates/migrate-expandable.js.map +1 -0
  342. package/schematics/ng-update/v4/steps/templates/migrate-filter-pipe.js +2 -2
  343. package/schematics/ng-update/v4/steps/templates/migrate-filter-pipe.js.map +1 -0
  344. package/schematics/ng-update/v4/steps/templates/migrate-focusable.js +2 -2
  345. package/schematics/ng-update/v4/steps/templates/migrate-focusable.js.map +1 -0
  346. package/schematics/ng-update/v4/steps/templates/migrate-label.js +2 -2
  347. package/schematics/ng-update/v4/steps/templates/migrate-label.js.map +1 -0
  348. package/schematics/ng-update/v4/steps/templates/migrate-labeled.js +2 -2
  349. package/schematics/ng-update/v4/steps/templates/migrate-labeled.js.map +1 -0
  350. package/schematics/ng-update/v4/steps/templates/migrate-mobile-tabs.js +2 -2
  351. package/schematics/ng-update/v4/steps/templates/migrate-mobile-tabs.js.map +1 -0
  352. package/schematics/ng-update/v4/steps/templates/migrate-money.js +2 -2
  353. package/schematics/ng-update/v4/steps/templates/migrate-money.js.map +1 -0
  354. package/schematics/ng-update/v4/steps/templates/migrate-notification.js +2 -2
  355. package/schematics/ng-update/v4/steps/templates/migrate-notification.js.map +1 -0
  356. package/schematics/ng-update/v4/steps/templates/migrate-number-precision.js +2 -2
  357. package/schematics/ng-update/v4/steps/templates/migrate-number-precision.js.map +1 -0
  358. package/schematics/ng-update/v4/steps/templates/migrate-overscroll.js +2 -2
  359. package/schematics/ng-update/v4/steps/templates/migrate-overscroll.js.map +1 -0
  360. package/schematics/ng-update/v4/steps/templates/migrate-prevent-default.js +2 -2
  361. package/schematics/ng-update/v4/steps/templates/migrate-prevent-default.js.map +1 -0
  362. package/schematics/ng-update/v4/steps/templates/migrate-progress-segmented.js +2 -2
  363. package/schematics/ng-update/v4/steps/templates/migrate-progress-segmented.js.map +1 -0
  364. package/schematics/ng-update/v4/steps/templates/migrate-thumbnail-card.js +2 -2
  365. package/schematics/ng-update/v4/steps/templates/migrate-thumbnail-card.js.map +1 -0
  366. package/schematics/ng-update/v4/steps/templates/toggles/common.js +5 -5
  367. package/schematics/ng-update/v4/steps/templates/toggles/common.js.map +1 -0
  368. package/schematics/ng-update/v4/steps/templates/toggles/index.js +1 -0
  369. package/schematics/ng-update/v4/steps/templates/toggles/index.js.map +1 -0
  370. package/schematics/ng-update/v4/steps/templates/toggles/migrate-checkbox.js +2 -2
  371. package/schematics/ng-update/v4/steps/templates/toggles/migrate-checkbox.js.map +1 -0
  372. package/schematics/ng-update/v4/steps/templates/toggles/migrate-radio.js +2 -2
  373. package/schematics/ng-update/v4/steps/templates/toggles/migrate-radio.js.map +1 -0
  374. package/schematics/ng-update/v4/steps/templates/toggles/migrate-toggle.js +2 -2
  375. package/schematics/ng-update/v4/steps/templates/toggles/migrate-toggle.js.map +1 -0
  376. package/schematics/ng-update/v4/steps/update-packages.d.ts +0 -1
  377. package/schematics/ng-update/v4/steps/update-packages.js +3 -2
  378. package/schematics/ng-update/v4/steps/update-packages.js.map +1 -0
  379. package/schematics/ng-update/v4/steps/utils/clean-object.js +2 -2
  380. package/schematics/ng-update/v4/steps/utils/clean-object.js.map +1 -0
  381. package/schematics/ng-update/v4/steps/utils/normalize-attr-value.js +2 -2
  382. package/schematics/ng-update/v4/steps/utils/normalize-attr-value.js.map +1 -0
  383. package/schematics/ng-update/v4/steps/utils/remove-attrs.js +2 -2
  384. package/schematics/ng-update/v4/steps/utils/remove-attrs.js.map +1 -0
  385. package/schematics/ng-update/v4/steps/utils/replace-modules-with-providers.js +1 -0
  386. package/schematics/ng-update/v4/steps/utils/replace-modules-with-providers.js.map +1 -0
  387. package/schematics/ng-update/v4/steps/utils/replace-substrings.js +2 -2
  388. package/schematics/ng-update/v4/steps/utils/replace-substrings.js.map +1 -0
  389. package/schematics/ng-update/v4/tests/migrate-destroy-service/utils.js +2 -2
  390. package/schematics/ng-update/v4/tests/migrate-destroy-service/utils.js.map +1 -0
  391. package/schematics/ng-update/v5/index.js +9 -2
  392. package/schematics/ng-update/v5/index.js.map +1 -0
  393. package/schematics/ng-update/v5/steps/constants/functions.d.ts +2 -0
  394. package/schematics/ng-update/v5/steps/constants/functions.js +21 -0
  395. package/schematics/ng-update/v5/steps/constants/functions.js.map +1 -0
  396. package/schematics/ng-update/v5/steps/migrate-tokens/migrate-tokens.js +2 -2
  397. package/schematics/ng-update/v5/steps/migrate-tokens/migrate-tokens.js.map +1 -0
  398. package/schematics/ng-update/v5/steps/migrate-tokens/update-tsconfig.js +2 -2
  399. package/schematics/ng-update/v5/steps/migrate-tokens/update-tsconfig.js.map +1 -0
  400. package/schematics/ng-update/v5/tests/migrate-tokens/utils.js +2 -2
  401. package/schematics/ng-update/v5/tests/migrate-tokens/utils.js.map +1 -0
  402. package/schematics/utils/add-import-to-closest-module.js +3 -3
  403. package/schematics/utils/add-import-to-closest-module.js.map +1 -0
  404. package/schematics/utils/add-unique-import.js +2 -2
  405. package/schematics/utils/add-unique-import.js.map +1 -0
  406. package/schematics/utils/angular-json-manipulations.js +3 -3
  407. package/schematics/utils/angular-json-manipulations.js.map +1 -0
  408. package/schematics/utils/create-angular-json.js +2 -2
  409. package/schematics/utils/create-angular-json.js.map +1 -0
  410. package/schematics/utils/get-component-from-identifier.js +2 -2
  411. package/schematics/utils/get-component-from-identifier.js.map +1 -0
  412. package/schematics/utils/get-execution-time.js +2 -2
  413. package/schematics/utils/get-execution-time.js.map +1 -0
  414. package/schematics/utils/get-named-import-references.js +2 -2
  415. package/schematics/utils/get-named-import-references.js.map +1 -0
  416. package/schematics/utils/get-project-target-options.js +2 -2
  417. package/schematics/utils/get-project-target-options.js.map +1 -0
  418. package/schematics/utils/get-projects.js +2 -2
  419. package/schematics/utils/get-projects.js.map +1 -0
  420. package/schematics/utils/get-standalone-bootstrap-function.d.ts +1 -1
  421. package/schematics/utils/get-standalone-bootstrap-function.js +3 -5
  422. package/schematics/utils/get-standalone-bootstrap-function.js.map +1 -0
  423. package/schematics/utils/import-manipulations.js +3 -3
  424. package/schematics/utils/import-manipulations.js.map +1 -0
  425. package/schematics/utils/insert-todo.js +3 -2
  426. package/schematics/utils/insert-todo.js.map +1 -0
  427. package/schematics/utils/is-ci.js +2 -2
  428. package/schematics/utils/is-ci.js.map +1 -0
  429. package/schematics/utils/make-angular-json-with-assets.js +2 -2
  430. package/schematics/utils/make-angular-json-with-assets.js.map +1 -0
  431. package/schematics/utils/progress.js +2 -2
  432. package/schematics/utils/progress.js.map +1 -0
  433. package/schematics/utils/project-root.js +1 -0
  434. package/schematics/utils/project-root.js.map +1 -0
  435. package/schematics/utils/push-to-array-property.js +2 -2
  436. package/schematics/utils/push-to-array-property.js.map +1 -0
  437. package/schematics/utils/remove-module.js +3 -3
  438. package/schematics/utils/remove-module.js.map +1 -0
  439. package/schematics/utils/templates/elements.js +12 -12
  440. package/schematics/utils/templates/elements.js.map +1 -0
  441. package/schematics/utils/templates/get-component-templates.js +2 -2
  442. package/schematics/utils/templates/get-component-templates.js.map +1 -0
  443. package/schematics/utils/templates/inputs.js +3 -3
  444. package/schematics/utils/templates/inputs.js.map +1 -0
  445. package/schematics/utils/templates/ng-component-input-manipulations.js +6 -6
  446. package/schematics/utils/templates/ng-component-input-manipulations.js.map +1 -0
  447. package/schematics/utils/templates/template-resource.js +4 -4
  448. package/schematics/utils/templates/template-resource.js.map +1 -0
  449. package/services/scroll.service.d.ts +3 -0
  450. package/tokens/environment.d.ts +5 -0
  451. package/utils/di/create-options.d.ts +2 -2
  452. package/utils/focus/get-native-focused.d.ts +1 -1
  453. package/utils/focus/is-native-focused-in.d.ts +1 -1
  454. package/utils/focus/is-native-focused.d.ts +1 -1
  455. package/utils/miscellaneous/index.d.ts +1 -0
  456. package/utils/miscellaneous/is-string.js +2 -2
  457. package/utils/miscellaneous/is-string.js.map +1 -0
  458. package/utils/miscellaneous/provide-options.d.ts +2 -2
  459. package/utils/miscellaneous/set-signal.d.ts +2 -0
  460. package/directives/for/for.directive.d.ts +0 -12
  461. package/directives/for/index.d.ts +0 -1
  462. package/esm2022/classes/control.mjs +0 -96
  463. package/esm2022/classes/index.mjs +0 -5
  464. package/esm2022/classes/portals.mjs +0 -77
  465. package/esm2022/classes/taiga-ui-cdk-classes.mjs +0 -5
  466. package/esm2022/classes/validation-error.mjs +0 -7
  467. package/esm2022/classes/value-transformer.mjs +0 -25
  468. package/esm2022/constants/allow-signal-writes.mjs +0 -3
  469. package/esm2022/constants/empty.mjs +0 -25
  470. package/esm2022/constants/handlers.mjs +0 -11
  471. package/esm2022/constants/index.mjs +0 -10
  472. package/esm2022/constants/matchers.mjs +0 -26
  473. package/esm2022/constants/regexp.mjs +0 -4
  474. package/esm2022/constants/svg-node-filter.mjs +0 -8
  475. package/esm2022/constants/taiga-ui-cdk-constants.mjs +0 -5
  476. package/esm2022/constants/unicode-chars.mjs +0 -64
  477. package/esm2022/constants/used-icons.mjs +0 -76
  478. package/esm2022/constants/version.mjs +0 -2
  479. package/esm2022/date-time/date-clamp.mjs +0 -10
  480. package/esm2022/date-time/date-fillers.mjs +0 -15
  481. package/esm2022/date-time/date-time.mjs +0 -20
  482. package/esm2022/date-time/day-of-week.mjs +0 -10
  483. package/esm2022/date-time/day-range.mjs +0 -84
  484. package/esm2022/date-time/day.mjs +0 -294
  485. package/esm2022/date-time/days.const.mjs +0 -6
  486. package/esm2022/date-time/index.mjs +0 -13
  487. package/esm2022/date-time/month-number.mjs +0 -15
  488. package/esm2022/date-time/month-range.mjs +0 -27
  489. package/esm2022/date-time/month.mjs +0 -152
  490. package/esm2022/date-time/taiga-ui-cdk-date-time.mjs +0 -5
  491. package/esm2022/date-time/time.mjs +0 -161
  492. package/esm2022/date-time/types.mjs +0 -2
  493. package/esm2022/date-time/year.mjs +0 -111
  494. package/esm2022/directives/active-zone/active-zone.directive.mjs +0 -74
  495. package/esm2022/directives/active-zone/index.mjs +0 -2
  496. package/esm2022/directives/active-zone/taiga-ui-cdk-directives-active-zone.mjs +0 -5
  497. package/esm2022/directives/animated/animated-parent.directive.mjs +0 -39
  498. package/esm2022/directives/animated/animated.directive.mjs +0 -81
  499. package/esm2022/directives/animated/index.mjs +0 -3
  500. package/esm2022/directives/animated/taiga-ui-cdk-directives-animated.mjs +0 -5
  501. package/esm2022/directives/auto-focus/autofocus.directive.mjs +0 -46
  502. package/esm2022/directives/auto-focus/autofocus.options.mjs +0 -31
  503. package/esm2022/directives/auto-focus/handlers/abstract.handler.mjs +0 -17
  504. package/esm2022/directives/auto-focus/handlers/default.handler.mjs +0 -21
  505. package/esm2022/directives/auto-focus/handlers/ios.handler.mjs +0 -125
  506. package/esm2022/directives/auto-focus/handlers/sync.handler.mjs +0 -7
  507. package/esm2022/directives/auto-focus/index.mjs +0 -7
  508. package/esm2022/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.mjs +0 -5
  509. package/esm2022/directives/click-outside/click-outside.directive.mjs +0 -33
  510. package/esm2022/directives/click-outside/index.mjs +0 -2
  511. package/esm2022/directives/click-outside/taiga-ui-cdk-directives-click-outside.mjs +0 -5
  512. package/esm2022/directives/control/control.directive.mjs +0 -23
  513. package/esm2022/directives/control/index.mjs +0 -2
  514. package/esm2022/directives/control/taiga-ui-cdk-directives-control.mjs +0 -5
  515. package/esm2022/directives/copy-processor/copy-processor.directive.mjs +0 -33
  516. package/esm2022/directives/copy-processor/index.mjs +0 -2
  517. package/esm2022/directives/copy-processor/taiga-ui-cdk-directives-copy-processor.mjs +0 -5
  518. package/esm2022/directives/droppable/droppable.directive.mjs +0 -31
  519. package/esm2022/directives/droppable/index.mjs +0 -2
  520. package/esm2022/directives/droppable/taiga-ui-cdk-directives-droppable.mjs +0 -5
  521. package/esm2022/directives/element/element.directive.mjs +0 -35
  522. package/esm2022/directives/element/index.mjs +0 -2
  523. package/esm2022/directives/element/taiga-ui-cdk-directives-element.mjs +0 -5
  524. package/esm2022/directives/focus-trap/focus-trap.directive.mjs +0 -67
  525. package/esm2022/directives/focus-trap/index.mjs +0 -2
  526. package/esm2022/directives/focus-trap/taiga-ui-cdk-directives-focus-trap.mjs +0 -5
  527. package/esm2022/directives/font-size/font-size.directive.mjs +0 -27
  528. package/esm2022/directives/font-size/index.mjs +0 -2
  529. package/esm2022/directives/font-size/taiga-ui-cdk-directives-font-size.mjs +0 -5
  530. package/esm2022/directives/for/for.directive.mjs +0 -34
  531. package/esm2022/directives/for/index.mjs +0 -2
  532. package/esm2022/directives/for/taiga-ui-cdk-directives-for.mjs +0 -5
  533. package/esm2022/directives/high-dpi/high-dpi.directive.mjs +0 -23
  534. package/esm2022/directives/high-dpi/index.mjs +0 -2
  535. package/esm2022/directives/high-dpi/taiga-ui-cdk-directives-high-dpi.mjs +0 -5
  536. package/esm2022/directives/hovered/hovered.directive.mjs +0 -22
  537. package/esm2022/directives/hovered/hovered.service.mjs +0 -35
  538. package/esm2022/directives/hovered/index.mjs +0 -3
  539. package/esm2022/directives/hovered/taiga-ui-cdk-directives-hovered.mjs +0 -5
  540. package/esm2022/directives/index.mjs +0 -30
  541. package/esm2022/directives/item/index.mjs +0 -2
  542. package/esm2022/directives/item/item.directive.mjs +0 -18
  543. package/esm2022/directives/item/taiga-ui-cdk-directives-item.mjs +0 -5
  544. package/esm2022/directives/let/index.mjs +0 -3
  545. package/esm2022/directives/let/let-context.mjs +0 -15
  546. package/esm2022/directives/let/let.directive.mjs +0 -34
  547. package/esm2022/directives/let/taiga-ui-cdk-directives-let.mjs +0 -5
  548. package/esm2022/directives/media/index.mjs +0 -2
  549. package/esm2022/directives/media/media.directive.mjs +0 -89
  550. package/esm2022/directives/media/taiga-ui-cdk-directives-media.mjs +0 -5
  551. package/esm2022/directives/native-validator/index.mjs +0 -2
  552. package/esm2022/directives/native-validator/native-validator.directive.mjs +0 -43
  553. package/esm2022/directives/native-validator/taiga-ui-cdk-directives-native-validator.mjs +0 -5
  554. package/esm2022/directives/obscured/index.mjs +0 -3
  555. package/esm2022/directives/obscured/obscured.directive.mjs +0 -36
  556. package/esm2022/directives/obscured/obscured.service.mjs +0 -24
  557. package/esm2022/directives/obscured/taiga-ui-cdk-directives-obscured.mjs +0 -5
  558. package/esm2022/directives/pan/index.mjs +0 -3
  559. package/esm2022/directives/pan/pan.directive.mjs +0 -22
  560. package/esm2022/directives/pan/pan.service.mjs +0 -28
  561. package/esm2022/directives/pan/taiga-ui-cdk-directives-pan.mjs +0 -5
  562. package/esm2022/directives/platform/index.mjs +0 -2
  563. package/esm2022/directives/platform/platform.directive.mjs +0 -35
  564. package/esm2022/directives/platform/taiga-ui-cdk-directives-platform.mjs +0 -5
  565. package/esm2022/directives/popover/index.mjs +0 -2
  566. package/esm2022/directives/popover/popover.directive.mjs +0 -26
  567. package/esm2022/directives/popover/taiga-ui-cdk-directives-popover.mjs +0 -5
  568. package/esm2022/directives/repeat-times/index.mjs +0 -2
  569. package/esm2022/directives/repeat-times/repeat-times.directive.mjs +0 -55
  570. package/esm2022/directives/repeat-times/taiga-ui-cdk-directives-repeat-times.mjs +0 -5
  571. package/esm2022/directives/resizer/index.mjs +0 -3
  572. package/esm2022/directives/resizer/resizable.directive.mjs +0 -16
  573. package/esm2022/directives/resizer/resizer.directive.mjs +0 -83
  574. package/esm2022/directives/resizer/taiga-ui-cdk-directives-resizer.mjs +0 -5
  575. package/esm2022/directives/swipe/index.mjs +0 -4
  576. package/esm2022/directives/swipe/swipe.directive.mjs +0 -22
  577. package/esm2022/directives/swipe/swipe.options.mjs +0 -8
  578. package/esm2022/directives/swipe/swipe.service.mjs +0 -50
  579. package/esm2022/directives/swipe/swipe.types.mjs +0 -2
  580. package/esm2022/directives/swipe/taiga-ui-cdk-directives-swipe.mjs +0 -5
  581. package/esm2022/directives/taiga-ui-cdk-directives.mjs +0 -5
  582. package/esm2022/directives/transitioned/index.mjs +0 -2
  583. package/esm2022/directives/transitioned/taiga-ui-cdk-directives-transitioned.mjs +0 -5
  584. package/esm2022/directives/transitioned/transitioned.directive.mjs +0 -27
  585. package/esm2022/directives/validator/index.mjs +0 -2
  586. package/esm2022/directives/validator/taiga-ui-cdk-directives-validator.mjs +0 -5
  587. package/esm2022/directives/validator/validator.directive.mjs +0 -30
  588. package/esm2022/directives/value-changes/index.mjs +0 -2
  589. package/esm2022/directives/value-changes/taiga-ui-cdk-directives-value-changes.mjs +0 -5
  590. package/esm2022/directives/value-changes/value-changes.directive.mjs +0 -28
  591. package/esm2022/directives/visual-viewport/index.mjs +0 -2
  592. package/esm2022/directives/visual-viewport/taiga-ui-cdk-directives-visual-viewport.mjs +0 -5
  593. package/esm2022/directives/visual-viewport/visual-viewport.directive.mjs +0 -34
  594. package/esm2022/directives/zoom/index.mjs +0 -4
  595. package/esm2022/directives/zoom/taiga-ui-cdk-directives-zoom.mjs +0 -5
  596. package/esm2022/directives/zoom/zoom.directive.mjs +0 -24
  597. package/esm2022/directives/zoom/zoom.options.mjs +0 -10
  598. package/esm2022/directives/zoom/zoom.service.mjs +0 -46
  599. package/esm2022/directives/zoom/zoom.types.mjs +0 -2
  600. package/esm2022/index.mjs +0 -10
  601. package/esm2022/observables/close-watcher.mjs +0 -22
  602. package/esm2022/observables/control-value.mjs +0 -8
  603. package/esm2022/observables/drag-and-drop-from.mjs +0 -14
  604. package/esm2022/observables/events.mjs +0 -8
  605. package/esm2022/observables/if-map.mjs +0 -5
  606. package/esm2022/observables/index.mjs +0 -14
  607. package/esm2022/observables/must-be-present.mjs +0 -17
  608. package/esm2022/observables/query-list-observable.mjs +0 -9
  609. package/esm2022/observables/scroll-from.mjs +0 -10
  610. package/esm2022/observables/taiga-ui-cdk-observables.mjs +0 -5
  611. package/esm2022/observables/take-until-destroyed.mjs +0 -9
  612. package/esm2022/observables/typed-from-event.mjs +0 -9
  613. package/esm2022/observables/untracked-scheduler.mjs +0 -11
  614. package/esm2022/observables/watch.mjs +0 -6
  615. package/esm2022/observables/zone.mjs +0 -34
  616. package/esm2022/pipes/animation/animation.pipe.mjs +0 -27
  617. package/esm2022/pipes/animation/index.mjs +0 -2
  618. package/esm2022/pipes/animation/taiga-ui-cdk-pipes-animation.mjs +0 -5
  619. package/esm2022/pipes/filter/filter.pipe.mjs +0 -25
  620. package/esm2022/pipes/filter/index.mjs +0 -2
  621. package/esm2022/pipes/filter/taiga-ui-cdk-pipes-filter.mjs +0 -5
  622. package/esm2022/pipes/index.mjs +0 -10
  623. package/esm2022/pipes/is-present/index.mjs +0 -2
  624. package/esm2022/pipes/is-present/is-present.pipe.mjs +0 -19
  625. package/esm2022/pipes/is-present/taiga-ui-cdk-pipes-is-present.mjs +0 -5
  626. package/esm2022/pipes/keys/index.mjs +0 -2
  627. package/esm2022/pipes/keys/keys.pipe.mjs +0 -18
  628. package/esm2022/pipes/keys/taiga-ui-cdk-pipes-keys.mjs +0 -5
  629. package/esm2022/pipes/mapper/index.mjs +0 -2
  630. package/esm2022/pipes/mapper/mapper.pipe.mjs +0 -25
  631. package/esm2022/pipes/mapper/taiga-ui-cdk-pipes-mapper.mjs +0 -5
  632. package/esm2022/pipes/obfuscate/index.mjs +0 -3
  633. package/esm2022/pipes/obfuscate/obfuscate.options.mjs +0 -10
  634. package/esm2022/pipes/obfuscate/obfuscate.pipe.mjs +0 -44
  635. package/esm2022/pipes/obfuscate/taiga-ui-cdk-pipes-obfuscate.mjs +0 -5
  636. package/esm2022/pipes/repeat-times/index.mjs +0 -19
  637. package/esm2022/pipes/repeat-times/taiga-ui-cdk-pipes-repeat-times.mjs +0 -5
  638. package/esm2022/pipes/replace/index.mjs +0 -2
  639. package/esm2022/pipes/replace/replace.pipe.mjs +0 -20
  640. package/esm2022/pipes/replace/taiga-ui-cdk-pipes-replace.mjs +0 -5
  641. package/esm2022/pipes/taiga-ui-cdk-pipes.mjs +0 -5
  642. package/esm2022/pipes/to-array/index.mjs +0 -2
  643. package/esm2022/pipes/to-array/taiga-ui-cdk-pipes-to-array.mjs +0 -5
  644. package/esm2022/pipes/to-array/to-array.pipe.mjs +0 -18
  645. package/esm2022/services/id.service.mjs +0 -21
  646. package/esm2022/services/index.mjs +0 -5
  647. package/esm2022/services/popover.service.mjs +0 -45
  648. package/esm2022/services/scroll.service.mjs +0 -55
  649. package/esm2022/services/taiga-ui-cdk-services.mjs +0 -5
  650. package/esm2022/services/theme-color.service.mjs +0 -33
  651. package/esm2022/taiga-ui-cdk.mjs +0 -5
  652. package/esm2022/tokens/active-element.mjs +0 -56
  653. package/esm2022/tokens/base-href.mjs +0 -6
  654. package/esm2022/tokens/environment.mjs +0 -64
  655. package/esm2022/tokens/fallback-value.mjs +0 -11
  656. package/esm2022/tokens/index.mjs +0 -8
  657. package/esm2022/tokens/range.mjs +0 -9
  658. package/esm2022/tokens/removed-element.mjs +0 -20
  659. package/esm2022/tokens/taiga-ui-cdk-tokens.mjs +0 -5
  660. package/esm2022/tokens/window-size.mjs +0 -28
  661. package/esm2022/types/context.mjs +0 -2
  662. package/esm2022/types/handler.mjs +0 -2
  663. package/esm2022/types/index.mjs +0 -2
  664. package/esm2022/types/loose-union.mjs +0 -2
  665. package/esm2022/types/mapper.mjs +0 -2
  666. package/esm2022/types/matcher.mjs +0 -2
  667. package/esm2022/types/rounding.mjs +0 -2
  668. package/esm2022/types/safe-html.mjs +0 -2
  669. package/esm2022/types/taiga-ui-cdk-types.mjs +0 -5
  670. package/esm2022/types/values-of.mjs +0 -2
  671. package/esm2022/utils/browser/index.mjs +0 -6
  672. package/esm2022/utils/browser/is-apple.mjs +0 -14
  673. package/esm2022/utils/browser/is-edge.mjs +0 -4
  674. package/esm2022/utils/browser/is-firefox.mjs +0 -4
  675. package/esm2022/utils/browser/is-ios.mjs +0 -7
  676. package/esm2022/utils/browser/is-safari.mjs +0 -12
  677. package/esm2022/utils/browser/taiga-ui-cdk-utils-browser.mjs +0 -5
  678. package/esm2022/utils/color/get-gradient-data.mjs +0 -6
  679. package/esm2022/utils/color/hex-to-rgb.mjs +0 -12
  680. package/esm2022/utils/color/hex-to-rgba.mjs +0 -29
  681. package/esm2022/utils/color/hsv-to-rgb.mjs +0 -11
  682. package/esm2022/utils/color/index.mjs +0 -10
  683. package/esm2022/utils/color/parse-color.mjs +0 -27
  684. package/esm2022/utils/color/parse-gradient.mjs +0 -70
  685. package/esm2022/utils/color/rgb-to-hex.mjs +0 -4
  686. package/esm2022/utils/color/rgb-to-hsv.mjs +0 -8
  687. package/esm2022/utils/color/rgba-to-hex.mjs +0 -23
  688. package/esm2022/utils/color/taiga-ui-cdk-utils-color.mjs +0 -5
  689. package/esm2022/utils/di/create-options.mjs +0 -9
  690. package/esm2022/utils/di/index.mjs +0 -3
  691. package/esm2022/utils/di/taiga-ui-cdk-utils-di.mjs +0 -5
  692. package/esm2022/utils/dom/contains-or-after.mjs +0 -10
  693. package/esm2022/utils/dom/element-checks.mjs +0 -20
  694. package/esm2022/utils/dom/event-checks.mjs +0 -4
  695. package/esm2022/utils/dom/get-actual-target.mjs +0 -7
  696. package/esm2022/utils/dom/get-clipboard-data-text.mjs +0 -11
  697. package/esm2022/utils/dom/get-document-or-shadow-root.mjs +0 -6
  698. package/esm2022/utils/dom/get-element-obscurers.mjs +0 -44
  699. package/esm2022/utils/dom/get-element-offset.mjs +0 -20
  700. package/esm2022/utils/dom/get-element-point.mjs +0 -6
  701. package/esm2022/utils/dom/get-selected-text.mjs +0 -15
  702. package/esm2022/utils/dom/index.mjs +0 -20
  703. package/esm2022/utils/dom/inject-element.mjs +0 -5
  704. package/esm2022/utils/dom/is-current-target.mjs +0 -4
  705. package/esm2022/utils/dom/is-element-editable.mjs +0 -6
  706. package/esm2022/utils/dom/is-inside-iframe.mjs +0 -7
  707. package/esm2022/utils/dom/is-node-in.mjs +0 -14
  708. package/esm2022/utils/dom/point-to-client-rect.mjs +0 -17
  709. package/esm2022/utils/dom/retarget-boundary-crossing.mjs +0 -16
  710. package/esm2022/utils/dom/taiga-ui-cdk-utils-dom.mjs +0 -5
  711. package/esm2022/utils/dom/value-binding.mjs +0 -29
  712. package/esm2022/utils/dom/value.mjs +0 -78
  713. package/esm2022/utils/focus/blur-native-focused.mjs +0 -12
  714. package/esm2022/utils/focus/focused-in.mjs +0 -8
  715. package/esm2022/utils/focus/get-closest-focusable.mjs +0 -26
  716. package/esm2022/utils/focus/get-native-focused.mjs +0 -16
  717. package/esm2022/utils/focus/index.mjs +0 -10
  718. package/esm2022/utils/focus/is-native-focused-in.mjs +0 -12
  719. package/esm2022/utils/focus/is-native-focused.mjs +0 -15
  720. package/esm2022/utils/focus/is-native-keyboard-focusable.mjs +0 -33
  721. package/esm2022/utils/focus/is-native-mouse-focusable.mjs +0 -7
  722. package/esm2022/utils/focus/move-focus.mjs +0 -19
  723. package/esm2022/utils/focus/taiga-ui-cdk-utils-focus.mjs +0 -5
  724. package/esm2022/utils/index.mjs +0 -8
  725. package/esm2022/utils/math/clamp.mjs +0 -16
  726. package/esm2022/utils/math/in-range.mjs +0 -9
  727. package/esm2022/utils/math/index.mjs +0 -11
  728. package/esm2022/utils/math/normalize-to-int-number.mjs +0 -22
  729. package/esm2022/utils/math/quantize.mjs +0 -15
  730. package/esm2022/utils/math/round-with.mjs +0 -14
  731. package/esm2022/utils/math/round.mjs +0 -42
  732. package/esm2022/utils/math/sum.mjs +0 -7
  733. package/esm2022/utils/math/taiga-ui-cdk-utils-math.mjs +0 -5
  734. package/esm2022/utils/math/to-int.mjs +0 -4
  735. package/esm2022/utils/math/to-integer.mjs +0 -4
  736. package/esm2022/utils/math/to-radians.mjs +0 -7
  737. package/esm2022/utils/miscellaneous/array-remove.mjs +0 -4
  738. package/esm2022/utils/miscellaneous/array-shallow-equals.mjs +0 -4
  739. package/esm2022/utils/miscellaneous/array-toggle.mjs +0 -8
  740. package/esm2022/utils/miscellaneous/change-date-separator.mjs +0 -3
  741. package/esm2022/utils/miscellaneous/count-filled-controls.mjs +0 -13
  742. package/esm2022/utils/miscellaneous/create-token.mjs +0 -16
  743. package/esm2022/utils/miscellaneous/default-sort.mjs +0 -11
  744. package/esm2022/utils/miscellaneous/directive-binding.mjs +0 -26
  745. package/esm2022/utils/miscellaneous/directive-listener.mjs +0 -8
  746. package/esm2022/utils/miscellaneous/distance-between-touches.mjs +0 -4
  747. package/esm2022/utils/miscellaneous/ease-in-out-quad.mjs +0 -7
  748. package/esm2022/utils/miscellaneous/flat-length.mjs +0 -9
  749. package/esm2022/utils/miscellaneous/font-size-watcher.mjs +0 -30
  750. package/esm2022/utils/miscellaneous/get-original-array-from-query-list.mjs +0 -15
  751. package/esm2022/utils/miscellaneous/index.mjs +0 -31
  752. package/esm2022/utils/miscellaneous/is-control-empty.mjs +0 -4
  753. package/esm2022/utils/miscellaneous/is-falsy.mjs +0 -4
  754. package/esm2022/utils/miscellaneous/is-number.mjs +0 -4
  755. package/esm2022/utils/miscellaneous/is-object.mjs +0 -4
  756. package/esm2022/utils/miscellaneous/is-present.mjs +0 -4
  757. package/esm2022/utils/miscellaneous/is-string.mjs +0 -4
  758. package/esm2022/utils/miscellaneous/is-valid-url.mjs +0 -13
  759. package/esm2022/utils/miscellaneous/mark-control-as-touched-and-validate.mjs +0 -16
  760. package/esm2022/utils/miscellaneous/nullable-same.mjs +0 -18
  761. package/esm2022/utils/miscellaneous/obfuscate.mjs +0 -53
  762. package/esm2022/utils/miscellaneous/provide-options.mjs +0 -11
  763. package/esm2022/utils/miscellaneous/provide.mjs +0 -4
  764. package/esm2022/utils/miscellaneous/pure.mjs +0 -83
  765. package/esm2022/utils/miscellaneous/px.mjs +0 -9
  766. package/esm2022/utils/miscellaneous/taiga-ui-cdk-utils-miscellaneous.mjs +0 -5
  767. package/esm2022/utils/miscellaneous/uniq-by.mjs +0 -6
  768. package/esm2022/utils/miscellaneous/with-styles.mjs +0 -17
  769. package/esm2022/utils/taiga-ui-cdk-utils.mjs +0 -5
  770. package/fesm2022/taiga-ui-cdk-directives-for.mjs +0 -40
  771. package/fesm2022/taiga-ui-cdk-directives-for.mjs.map +0 -1
@@ -9,7 +9,7 @@ import { merge, fromEvent, map, observeOn } from 'rxjs';
9
9
  *
10
10
  * @return element or null
11
11
  */
12
- function tuiGetNativeFocused({ activeElement }) {
12
+ function tuiGetFocused({ activeElement }) {
13
13
  if (!activeElement?.shadowRoot) {
14
14
  return activeElement;
15
15
  }
@@ -24,7 +24,7 @@ function tuiGetNativeFocused({ activeElement }) {
24
24
  * Finds and blurs current active element, including shadow DOM
25
25
  */
26
26
  function tuiBlurNativeFocused(doc) {
27
- const activeElement = tuiGetNativeFocused(doc);
27
+ const activeElement = tuiGetFocused(doc);
28
28
  if (tuiIsHTMLElement(activeElement)) {
29
29
  activeElement.blur();
30
30
  }
@@ -102,9 +102,9 @@ function tuiGetClosestFocusable({ initial, root, previous = false, keyboard = tr
102
102
  * @param node or null (as a common return value of DOM nodes walking)
103
103
  * @return true if focused
104
104
  */
105
- function tuiIsNativeFocused(node) {
105
+ function tuiIsFocused(node) {
106
106
  return (!!node?.ownerDocument &&
107
- tuiGetNativeFocused(node.ownerDocument) === node &&
107
+ tuiGetFocused(node.ownerDocument) === node &&
108
108
  node.ownerDocument.hasFocus());
109
109
  }
110
110
 
@@ -114,8 +114,8 @@ function tuiIsNativeFocused(node) {
114
114
  * @param node
115
115
  * @return true if focused node is contained within element
116
116
  */
117
- function tuiIsNativeFocusedIn(node) {
118
- const focused = node?.ownerDocument && tuiGetNativeFocused(node.ownerDocument);
117
+ function tuiIsFocusedIn(node) {
118
+ const focused = node?.ownerDocument && tuiGetFocused(node.ownerDocument);
119
119
  return !!focused && node.contains(focused) && node.ownerDocument?.hasFocus();
120
120
  }
121
121
 
@@ -130,7 +130,7 @@ function tuiMoveFocus(currentIndex, elements, step) {
130
130
  currentIndex += step;
131
131
  while (currentIndex >= 0 && currentIndex < elements.length) {
132
132
  elements[currentIndex]?.focus();
133
- if (tuiIsNativeFocused(elements[currentIndex])) {
133
+ if (tuiIsFocused(elements[currentIndex])) {
134
134
  return;
135
135
  }
136
136
  currentIndex += step;
@@ -141,5 +141,5 @@ function tuiMoveFocus(currentIndex, elements, step) {
141
141
  * Generated bundle index. Do not edit.
142
142
  */
143
143
 
144
- export { tuiBlurNativeFocused, tuiFocusedIn, tuiGetClosestFocusable, tuiGetNativeFocused, tuiIsNativeFocused, tuiIsNativeFocusedIn, tuiIsNativeKeyboardFocusable, tuiIsNativeMouseFocusable, tuiMoveFocus };
144
+ export { tuiBlurNativeFocused, tuiFocusedIn, tuiGetClosestFocusable, tuiGetFocused, tuiIsFocused, tuiIsFocusedIn, tuiIsNativeKeyboardFocusable, tuiIsNativeMouseFocusable, tuiMoveFocus };
145
145
  //# sourceMappingURL=taiga-ui-cdk-utils-focus.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-focus.mjs","sources":["../../../projects/cdk/utils/focus/get-native-focused.ts","../../../projects/cdk/utils/focus/blur-native-focused.ts","../../../projects/cdk/utils/focus/focused-in.ts","../../../projects/cdk/utils/focus/is-native-keyboard-focusable.ts","../../../projects/cdk/utils/focus/is-native-mouse-focusable.ts","../../../projects/cdk/utils/focus/get-closest-focusable.ts","../../../projects/cdk/utils/focus/is-native-focused.ts","../../../projects/cdk/utils/focus/is-native-focused-in.ts","../../../projects/cdk/utils/focus/move-focus.ts","../../../projects/cdk/utils/focus/taiga-ui-cdk-utils-focus.ts"],"sourcesContent":["/**\n * Returns current active element, including shadow dom\n *\n * @return element or null\n */\nexport function tuiGetNativeFocused({activeElement}: Document): Element | null {\n if (!activeElement?.shadowRoot) {\n return activeElement;\n }\n\n let element = activeElement.shadowRoot.activeElement;\n\n while (element?.shadowRoot) {\n element = element.shadowRoot.activeElement;\n }\n\n return element;\n}\n","import {tuiIsHTMLElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {tuiGetNativeFocused} from './get-native-focused';\n\n/**\n * Finds and blurs current active element, including shadow DOM\n */\nexport function tuiBlurNativeFocused(doc: Document): void {\n const activeElement = tuiGetNativeFocused(doc);\n\n if (tuiIsHTMLElement(activeElement)) {\n activeElement.blur();\n }\n}\n","import {type Signal} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {TUI_FALSE_HANDLER, TUI_TRUE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {tuiUntrackedScheduler} from '@taiga-ui/cdk/observables';\nimport {fromEvent, map, merge, observeOn} from 'rxjs';\n\nexport function tuiFocusedIn(node: Node): Signal<boolean> {\n return toSignal(\n merge(\n fromEvent(node, 'focus', {capture: true}).pipe(map(TUI_TRUE_HANDLER)),\n fromEvent(node, 'blur', {capture: true}).pipe(map(TUI_FALSE_HANDLER)),\n ).pipe(observeOn(tuiUntrackedScheduler)),\n {initialValue: false},\n );\n}\n","import {tuiIsHTMLElement} from '@taiga-ui/cdk/utils/dom';\n\n/**\n * Checks for signs that element can be focused with keyboard. tabIndex above 0 is ignored to\n * only target natural focus order. Not checking the possibility of an element to\n * be focused, for example element can have display: none applied to it or any other\n * circumstances could prevent actual focus.\n */\nexport function tuiIsNativeKeyboardFocusable(element: Element): boolean {\n if (element.hasAttribute('disabled') || element.getAttribute('tabIndex') === '-1') {\n return false;\n }\n\n if (\n (tuiIsHTMLElement(element) && element.isContentEditable) ||\n element.getAttribute('tabIndex') === '0'\n ) {\n return true;\n }\n\n switch (element.tagName) {\n case 'A':\n case 'LINK':\n return element.hasAttribute('href');\n case 'AUDIO':\n case 'VIDEO':\n return element.hasAttribute('controls');\n case 'BUTTON':\n case 'SELECT':\n case 'TEXTAREA':\n return true;\n case 'INPUT':\n return element.getAttribute('type') !== 'hidden';\n default:\n return false;\n }\n}\n","import {tuiIsNativeKeyboardFocusable} from './is-native-keyboard-focusable';\n\nexport function tuiIsNativeMouseFocusable(element: Element): boolean {\n return (\n !element.hasAttribute('disabled') &&\n (element.getAttribute('tabIndex') === '-1' ||\n tuiIsNativeKeyboardFocusable(element))\n );\n}\n","import {svgNodeFilter} from '@taiga-ui/cdk/constants';\nimport {tuiIsHTMLElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {tuiIsNativeKeyboardFocusable} from './is-native-keyboard-focusable';\nimport {tuiIsNativeMouseFocusable} from './is-native-mouse-focusable';\n\nexport interface TuiGetClosestFocusableOptions {\n /**\n * @description:\n * current HTML element\n */\n initial: Element;\n\n /**\n * @description:\n * determine if only keyboard focus is of interest\n */\n keyboard?: boolean;\n\n /**\n * @description:\n * should it look backwards instead (find item that will be focused with Shift + Tab)\n */\n previous?: boolean;\n\n /**\n * @description:\n * top Node limiting the search area\n */\n root: Node;\n}\n\n/**\n * @description:\n * Finds the closest element that can be focused with a keyboard or mouse in theory\n */\nexport function tuiGetClosestFocusable({\n initial,\n root,\n previous = false,\n keyboard = true,\n}: TuiGetClosestFocusableOptions): HTMLElement | null {\n if (!root.ownerDocument) {\n return null;\n }\n\n const check = keyboard ? tuiIsNativeKeyboardFocusable : tuiIsNativeMouseFocusable;\n const treeWalker = root.ownerDocument.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n svgNodeFilter,\n );\n\n treeWalker.currentNode = initial;\n\n do {\n if (tuiIsHTMLElement(treeWalker.currentNode)) {\n initial = treeWalker.currentNode;\n }\n\n if (tuiIsHTMLElement(initial) && check(initial)) {\n return initial;\n }\n } while (previous ? treeWalker.previousNode() : treeWalker.nextNode());\n\n return null;\n}\n","import {tuiGetNativeFocused} from './get-native-focused';\n\n/**\n * Checks if element is focused.\n *\n * Could return true even after blur since element remains focused if you switch away from a browser tab.\n *\n * @param node or null (as a common return value of DOM nodes walking)\n * @return true if focused\n */\nexport function tuiIsNativeFocused(node?: Node | null): boolean {\n return (\n !!node?.ownerDocument &&\n tuiGetNativeFocused(node.ownerDocument) === node &&\n node.ownerDocument.hasFocus()\n );\n}\n","import {tuiGetNativeFocused} from './get-native-focused';\n\n/**\n * Checks if focused element is within given element.\n *\n * @param node\n * @return true if focused node is contained within element\n */\nexport function tuiIsNativeFocusedIn(node?: Node | null): boolean {\n const focused = node?.ownerDocument && tuiGetNativeFocused(node.ownerDocument);\n\n return !!focused && node.contains(focused) && node.ownerDocument?.hasFocus();\n}\n","import {tuiIsNativeFocused} from './is-native-focused';\n\n/**\n * Utility method for moving focus in a list of elements\n *\n * @param currentIndex currently focused index\n * @param elements array of focusable elements\n * @param step a step to move focus by, typically -1 or 1\n */\nexport function tuiMoveFocus(\n currentIndex: number,\n elements: readonly HTMLElement[],\n step: number,\n): void {\n currentIndex += step;\n\n while (currentIndex >= 0 && currentIndex < elements.length) {\n elements[currentIndex]?.focus();\n\n if (tuiIsNativeFocused(elements[currentIndex])) {\n return;\n }\n\n currentIndex += step;\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-cdk-utils-focus.mjs","sources":["../../../projects/cdk/utils/focus/get-native-focused.ts","../../../projects/cdk/utils/focus/blur-native-focused.ts","../../../projects/cdk/utils/focus/focused-in.ts","../../../projects/cdk/utils/focus/is-native-keyboard-focusable.ts","../../../projects/cdk/utils/focus/is-native-mouse-focusable.ts","../../../projects/cdk/utils/focus/get-closest-focusable.ts","../../../projects/cdk/utils/focus/is-native-focused.ts","../../../projects/cdk/utils/focus/is-native-focused-in.ts","../../../projects/cdk/utils/focus/move-focus.ts","../../../projects/cdk/utils/focus/taiga-ui-cdk-utils-focus.ts"],"sourcesContent":["/**\n * Returns current active element, including shadow dom\n *\n * @return element or null\n */\nexport function tuiGetFocused({activeElement}: Document): Element | null {\n if (!activeElement?.shadowRoot) {\n return activeElement;\n }\n\n let element = activeElement.shadowRoot.activeElement;\n\n while (element?.shadowRoot) {\n element = element.shadowRoot.activeElement;\n }\n\n return element;\n}\n","import {tuiIsHTMLElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {tuiGetFocused} from './get-native-focused';\n\n/**\n * Finds and blurs current active element, including shadow DOM\n */\nexport function tuiBlurNativeFocused(doc: Document): void {\n const activeElement = tuiGetFocused(doc);\n\n if (tuiIsHTMLElement(activeElement)) {\n activeElement.blur();\n }\n}\n","import {type Signal} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {TUI_FALSE_HANDLER, TUI_TRUE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {tuiUntrackedScheduler} from '@taiga-ui/cdk/observables';\nimport {fromEvent, map, merge, observeOn} from 'rxjs';\n\nexport function tuiFocusedIn(node: Node): Signal<boolean> {\n return toSignal(\n merge(\n fromEvent(node, 'focus', {capture: true}).pipe(map(TUI_TRUE_HANDLER)),\n fromEvent(node, 'blur', {capture: true}).pipe(map(TUI_FALSE_HANDLER)),\n ).pipe(observeOn(tuiUntrackedScheduler)),\n {initialValue: false},\n );\n}\n","import {tuiIsHTMLElement} from '@taiga-ui/cdk/utils/dom';\n\n/**\n * Checks for signs that element can be focused with keyboard. tabIndex above 0 is ignored to\n * only target natural focus order. Not checking the possibility of an element to\n * be focused, for example element can have display: none applied to it or any other\n * circumstances could prevent actual focus.\n */\nexport function tuiIsNativeKeyboardFocusable(element: Element): boolean {\n if (element.hasAttribute('disabled') || element.getAttribute('tabIndex') === '-1') {\n return false;\n }\n\n if (\n (tuiIsHTMLElement(element) && element.isContentEditable) ||\n element.getAttribute('tabIndex') === '0'\n ) {\n return true;\n }\n\n switch (element.tagName) {\n case 'A':\n case 'LINK':\n return element.hasAttribute('href');\n case 'AUDIO':\n case 'VIDEO':\n return element.hasAttribute('controls');\n case 'BUTTON':\n case 'SELECT':\n case 'TEXTAREA':\n return true;\n case 'INPUT':\n return element.getAttribute('type') !== 'hidden';\n default:\n return false;\n }\n}\n","import {tuiIsNativeKeyboardFocusable} from './is-native-keyboard-focusable';\n\nexport function tuiIsNativeMouseFocusable(element: Element): boolean {\n return (\n !element.hasAttribute('disabled') &&\n (element.getAttribute('tabIndex') === '-1' ||\n tuiIsNativeKeyboardFocusable(element))\n );\n}\n","import {svgNodeFilter} from '@taiga-ui/cdk/constants';\nimport {tuiIsHTMLElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {tuiIsNativeKeyboardFocusable} from './is-native-keyboard-focusable';\nimport {tuiIsNativeMouseFocusable} from './is-native-mouse-focusable';\n\nexport interface TuiGetClosestFocusableOptions {\n /**\n * @description:\n * current HTML element\n */\n initial: Element;\n\n /**\n * @description:\n * determine if only keyboard focus is of interest\n */\n keyboard?: boolean;\n\n /**\n * @description:\n * should it look backwards instead (find item that will be focused with Shift + Tab)\n */\n previous?: boolean;\n\n /**\n * @description:\n * top Node limiting the search area\n */\n root: Node;\n}\n\n/**\n * @description:\n * Finds the closest element that can be focused with a keyboard or mouse in theory\n */\nexport function tuiGetClosestFocusable({\n initial,\n root,\n previous = false,\n keyboard = true,\n}: TuiGetClosestFocusableOptions): HTMLElement | null {\n if (!root.ownerDocument) {\n return null;\n }\n\n const check = keyboard ? tuiIsNativeKeyboardFocusable : tuiIsNativeMouseFocusable;\n const treeWalker = root.ownerDocument.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n svgNodeFilter,\n );\n\n treeWalker.currentNode = initial;\n\n do {\n if (tuiIsHTMLElement(treeWalker.currentNode)) {\n initial = treeWalker.currentNode;\n }\n\n if (tuiIsHTMLElement(initial) && check(initial)) {\n return initial;\n }\n } while (previous ? treeWalker.previousNode() : treeWalker.nextNode());\n\n return null;\n}\n","import {tuiGetFocused} from './get-native-focused';\n\n/**\n * Checks if element is focused.\n *\n * Could return true even after blur since element remains focused if you switch away from a browser tab.\n *\n * @param node or null (as a common return value of DOM nodes walking)\n * @return true if focused\n */\nexport function tuiIsFocused(node?: Node | null): boolean {\n return (\n !!node?.ownerDocument &&\n tuiGetFocused(node.ownerDocument) === node &&\n node.ownerDocument.hasFocus()\n );\n}\n","import {tuiGetFocused} from './get-native-focused';\n\n/**\n * Checks if focused element is within given element.\n *\n * @param node\n * @return true if focused node is contained within element\n */\nexport function tuiIsFocusedIn(node?: Node | null): boolean {\n const focused = node?.ownerDocument && tuiGetFocused(node.ownerDocument);\n\n return !!focused && node.contains(focused) && node.ownerDocument?.hasFocus();\n}\n","import {tuiIsFocused} from './is-native-focused';\n\n/**\n * Utility method for moving focus in a list of elements\n *\n * @param currentIndex currently focused index\n * @param elements array of focusable elements\n * @param step a step to move focus by, typically -1 or 1\n */\nexport function tuiMoveFocus(\n currentIndex: number,\n elements: readonly HTMLElement[],\n step: number,\n): void {\n currentIndex += step;\n\n while (currentIndex >= 0 && currentIndex < elements.length) {\n elements[currentIndex]?.focus();\n\n if (tuiIsFocused(elements[currentIndex])) {\n return;\n }\n\n currentIndex += step;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-math.mjs","sources":["../../../projects/cdk/utils/math/clamp.ts","../../../projects/cdk/utils/math/in-range.ts","../../../projects/cdk/utils/math/normalize-to-int-number.ts","../../../projects/cdk/utils/math/quantize.ts","../../../projects/cdk/utils/math/round.ts","../../../projects/cdk/utils/math/round-with.ts","../../../projects/cdk/utils/math/sum.ts","../../../projects/cdk/utils/math/to-int.ts","../../../projects/cdk/utils/math/to-integer.ts","../../../projects/cdk/utils/math/to-radians.ts","../../../projects/cdk/utils/math/taiga-ui-cdk-utils-math.ts"],"sourcesContent":["/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\n\n/**\n * Clamps a value between two inclusive limits\n *\n * @param value\n * @param min lower limit\n * @param max upper limit\n */\nexport function tuiClamp(value: number, min: number, max: number): number {\n ngDevMode && console.assert(!Number.isNaN(value));\n ngDevMode && console.assert(!Number.isNaN(min));\n ngDevMode && console.assert(!Number.isNaN(max));\n ngDevMode && console.assert(max >= min);\n\n return Math.min(max, Math.max(min, value));\n}\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\n\nexport function tuiInRange(\n value: number,\n fromInclude: number,\n toExclude: number,\n): boolean {\n ngDevMode && console.assert(!Number.isNaN(value));\n ngDevMode && console.assert(!Number.isNaN(fromInclude));\n ngDevMode && console.assert(!Number.isNaN(toExclude));\n ngDevMode && console.assert(fromInclude < toExclude);\n\n return value >= fromInclude && value < toExclude;\n}\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\n\n/**\n * Normalizes any number to an integer within inclusive range\n *\n * @param value\n * @param min lower inclusive integer\n * @param max upper inclusive integer\n * @return an integer between min and max inclusive\n */\nexport function tuiNormalizeToIntNumber(value: number, min: number, max: number): number {\n ngDevMode && console.assert(Number.isInteger(min));\n ngDevMode && console.assert(Number.isInteger(max));\n ngDevMode && console.assert(min <= max);\n\n if (Number.isNaN(value) || value <= min) {\n return min;\n }\n\n if (value >= max) {\n return max;\n }\n\n return Math.round(value);\n}\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\n\n/**\n * Rounds a number to the closest value in a fixed discrete series\n *\n * @param value\n * @param quantum series step\n */\nexport function tuiQuantize(value: number, quantum: number): number {\n ngDevMode && console.assert(Number.isFinite(value));\n ngDevMode && console.assert(Number.isFinite(quantum));\n ngDevMode && console.assert(quantum > 0);\n\n const remainder = value % quantum;\n\n return remainder < quantum / 2 ? value - remainder : value + quantum - remainder;\n}\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\n\nconst MAX_PRECISION = 292;\n\n/**\n * Rounding number to the set precision\n *\n * @param value\n * @param precision number of digits in a float part\n * @param func rounding function (round, floor, ceil)\n */\nfunction calculate(\n value: number,\n precision: number,\n func: (x: number) => number,\n): number {\n if (value === Infinity) {\n return value;\n }\n\n ngDevMode && console.assert(!Number.isNaN(value), 'Value must be number');\n ngDevMode && console.assert(Number.isInteger(precision), 'Precision must be integer');\n\n precision = Math.min(precision, MAX_PRECISION);\n\n const [significand, exponent = ''] = `${value}`.split('e');\n const roundedInt = func(Number(`${significand}e${Number(exponent) + precision}`));\n\n /**\n * TODO: use BigInt after bumping Safari to 14+\n */\n ngDevMode &&\n console.assert(\n Number.isSafeInteger(roundedInt),\n 'Impossible to correctly round such a large number',\n );\n\n const processedPair = `${roundedInt}e`.split('e');\n\n return Number(`${processedPair[0]}e${Number(processedPair[1]) - precision}`);\n}\n\nexport function tuiRound(value: number, precision = 0): number {\n return calculate(value, precision, Math.round);\n}\n\nexport function tuiCeil(value: number, precision = 0): number {\n return calculate(value, precision, Math.ceil);\n}\n\nexport function tuiFloor(value: number, precision = 0): number {\n return calculate(value, precision, Math.floor);\n}\n\nexport function tuiTrunc(value: number, precision = 0): number {\n return calculate(value, precision, Math.trunc);\n}\n\nexport function tuiIsSafeToRound(value: number, precision = 0): boolean {\n return Number.isSafeInteger(Math.trunc(value * 10 ** precision));\n}\n","import {type TuiRounding} from '@taiga-ui/cdk/types';\n\nimport {tuiCeil, tuiFloor, tuiRound, tuiTrunc} from './round';\n\nexport function tuiRoundWith({\n value,\n precision,\n method,\n}: {\n method: TuiRounding;\n precision: number;\n value: number;\n}): number {\n switch (method) {\n case 'ceil':\n return tuiCeil(value, precision);\n case 'floor':\n return tuiFloor(value, precision);\n case 'round':\n return tuiRound(value, precision);\n default:\n return tuiTrunc(value, precision);\n }\n}\n","/**\n * Calculates sum of any number of passed arguments\n */\nexport function tuiSum(...args: number[]): number {\n return args.reduce((a, b) => a + b, 0);\n}\n","export function tuiToInt(bool: boolean): 0 | 1 {\n return bool ? 1 : 0;\n}\n","export function tuiToInteger(value: number | string): number {\n return parseInt(value as unknown as string, 10);\n}\n","/**\n * Converts angle in degrees to radians\n */\nexport function tuiToRadians(deg: number): number {\n return (deg * Math.PI) / 180;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAAA;AAEA;;;;;;AAMG;SACa,QAAQ,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW,EAAA;AAC5D,IAAA,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAClD,IAAA,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAChD,IAAA,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAChD,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;AAExC,IAAA,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/C;;AChBA;SAEgB,UAAU,CACtB,KAAa,EACb,WAAmB,EACnB,SAAiB,EAAA;AAEjB,IAAA,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAClD,IAAA,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;AACxD,IAAA,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IACtD,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;AAErD,IAAA,OAAO,KAAK,IAAI,WAAW,IAAI,KAAK,GAAG,SAAS,CAAC;AACrD;;ACbA;AAEA;;;;;;;AAOG;SACa,uBAAuB,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW,EAAA;AAC3E,IAAA,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACnD,IAAA,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACnD,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;IAExC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,GAAG,EAAE;AACrC,QAAA,OAAO,GAAG,CAAC;AACd,KAAA;IAED,IAAI,KAAK,IAAI,GAAG,EAAE;AACd,QAAA,OAAO,GAAG,CAAC;AACd,KAAA;AAED,IAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC7B;;ACxBA;AAEA;;;;;AAKG;AACa,SAAA,WAAW,CAAC,KAAa,EAAE,OAAe,EAAA;AACtD,IAAA,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACpD,IAAA,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACtD,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;AAEzC,IAAA,MAAM,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC;AAElC,IAAA,OAAO,SAAS,GAAG,OAAO,GAAG,CAAC,GAAG,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS,CAAC;AACrF;;AChBA;AAEA,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B;;;;;;AAMG;AACH,SAAS,SAAS,CACd,KAAa,EACb,SAAiB,EACjB,IAA2B,EAAA;IAE3B,IAAI,KAAK,KAAK,QAAQ,EAAE;AACpB,QAAA,OAAO,KAAK,CAAC;AAChB,KAAA;AAED,IAAA,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,sBAAsB,CAAC,CAAC;AAC1E,IAAA,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,2BAA2B,CAAC,CAAC;IAEtF,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAE/C,IAAA,MAAM,CAAC,WAAW,EAAE,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAG,EAAA,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC3D,IAAA,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,WAAW,CAAA,CAAA,EAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAE,CAAA,CAAC,CAAC,CAAC;AAElF;;AAEG;IACH,SAAS;AACL,QAAA,OAAO,CAAC,MAAM,CACV,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,EAChC,mDAAmD,CACtD,CAAC;IAEN,MAAM,aAAa,GAAG,CAAA,EAAG,UAAU,CAAA,CAAA,CAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAElD,IAAA,OAAO,MAAM,CAAC,CAAA,EAAG,aAAa,CAAC,CAAC,CAAC,CAAI,CAAA,EAAA,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA,CAAE,CAAC,CAAC;AACjF,CAAC;SAEe,QAAQ,CAAC,KAAa,EAAE,SAAS,GAAG,CAAC,EAAA;IACjD,OAAO,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACnD,CAAC;SAEe,OAAO,CAAC,KAAa,EAAE,SAAS,GAAG,CAAC,EAAA;IAChD,OAAO,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAClD,CAAC;SAEe,QAAQ,CAAC,KAAa,EAAE,SAAS,GAAG,CAAC,EAAA;IACjD,OAAO,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACnD,CAAC;SAEe,QAAQ,CAAC,KAAa,EAAE,SAAS,GAAG,CAAC,EAAA;IACjD,OAAO,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACnD,CAAC;SAEe,gBAAgB,CAAC,KAAa,EAAE,SAAS,GAAG,CAAC,EAAA;AACzD,IAAA,OAAO,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC;AACrE;;ACxDM,SAAU,YAAY,CAAC,EACzB,KAAK,EACL,SAAS,EACT,MAAM,GAKT,EAAA;AACG,IAAA,QAAQ,MAAM;AACV,QAAA,KAAK,MAAM;AACP,YAAA,OAAO,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACrC,QAAA,KAAK,OAAO;AACR,YAAA,OAAO,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACtC,QAAA,KAAK,OAAO;AACR,YAAA,OAAO,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACtC,QAAA;AACI,YAAA,OAAO,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACzC,KAAA;AACL;;ACvBA;;AAEG;AACa,SAAA,MAAM,CAAC,GAAG,IAAc,EAAA;AACpC,IAAA,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3C;;ACLM,SAAU,QAAQ,CAAC,IAAa,EAAA;IAClC,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;AACxB;;ACFM,SAAU,YAAY,CAAC,KAAsB,EAAA;AAC/C,IAAA,OAAO,QAAQ,CAAC,KAA0B,EAAE,EAAE,CAAC,CAAC;AACpD;;ACFA;;AAEG;AACG,SAAU,YAAY,CAAC,GAAW,EAAA;IACpC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC;AACjC;;ACLA;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-utils-math.mjs","sources":["../../../projects/cdk/utils/math/clamp.ts","../../../projects/cdk/utils/math/in-range.ts","../../../projects/cdk/utils/math/normalize-to-int-number.ts","../../../projects/cdk/utils/math/quantize.ts","../../../projects/cdk/utils/math/round.ts","../../../projects/cdk/utils/math/round-with.ts","../../../projects/cdk/utils/math/sum.ts","../../../projects/cdk/utils/math/to-int.ts","../../../projects/cdk/utils/math/to-integer.ts","../../../projects/cdk/utils/math/to-radians.ts","../../../projects/cdk/utils/math/taiga-ui-cdk-utils-math.ts"],"sourcesContent":["/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\n\n/**\n * Clamps a value between two inclusive limits\n *\n * @param value\n * @param min lower limit\n * @param max upper limit\n */\nexport function tuiClamp(value: number, min: number, max: number): number {\n ngDevMode && console.assert(!Number.isNaN(value));\n ngDevMode && console.assert(!Number.isNaN(min));\n ngDevMode && console.assert(!Number.isNaN(max));\n ngDevMode && console.assert(max >= min);\n\n return Math.min(max, Math.max(min, value));\n}\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\n\nexport function tuiInRange(\n value: number,\n fromInclude: number,\n toExclude: number,\n): boolean {\n ngDevMode && console.assert(!Number.isNaN(value));\n ngDevMode && console.assert(!Number.isNaN(fromInclude));\n ngDevMode && console.assert(!Number.isNaN(toExclude));\n ngDevMode && console.assert(fromInclude < toExclude);\n\n return value >= fromInclude && value < toExclude;\n}\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\n\n/**\n * Normalizes any number to an integer within inclusive range\n *\n * @param value\n * @param min lower inclusive integer\n * @param max upper inclusive integer\n * @return an integer between min and max inclusive\n */\nexport function tuiNormalizeToIntNumber(value: number, min: number, max: number): number {\n ngDevMode && console.assert(Number.isInteger(min));\n ngDevMode && console.assert(Number.isInteger(max));\n ngDevMode && console.assert(min <= max);\n\n if (Number.isNaN(value) || value <= min) {\n return min;\n }\n\n if (value >= max) {\n return max;\n }\n\n return Math.round(value);\n}\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\n\n/**\n * Rounds a number to the closest value in a fixed discrete series\n *\n * @param value\n * @param quantum series step\n */\nexport function tuiQuantize(value: number, quantum: number): number {\n ngDevMode && console.assert(Number.isFinite(value));\n ngDevMode && console.assert(Number.isFinite(quantum));\n ngDevMode && console.assert(quantum > 0);\n\n const remainder = value % quantum;\n\n return remainder < quantum / 2 ? value - remainder : value + quantum - remainder;\n}\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\n\nconst MAX_PRECISION = 292;\n\n/**\n * Rounding number to the set precision\n *\n * @param value\n * @param precision number of digits in a float part\n * @param func rounding function (round, floor, ceil)\n */\nfunction calculate(\n value: number,\n precision: number,\n func: (x: number) => number,\n): number {\n if (value === Infinity) {\n return value;\n }\n\n ngDevMode && console.assert(!Number.isNaN(value), 'Value must be number');\n ngDevMode && console.assert(Number.isInteger(precision), 'Precision must be integer');\n\n precision = Math.min(precision, MAX_PRECISION);\n\n const [significand, exponent = ''] = `${value}`.split('e');\n const roundedInt = func(Number(`${significand}e${Number(exponent) + precision}`));\n\n /**\n * TODO: use BigInt after bumping Safari to 14+\n */\n ngDevMode &&\n console.assert(\n Number.isSafeInteger(roundedInt),\n 'Impossible to correctly round such a large number',\n );\n\n const processedPair = `${roundedInt}e`.split('e');\n\n return Number(`${processedPair[0]}e${Number(processedPair[1]) - precision}`);\n}\n\nexport function tuiRound(value: number, precision = 0): number {\n return calculate(value, precision, Math.round);\n}\n\nexport function tuiCeil(value: number, precision = 0): number {\n return calculate(value, precision, Math.ceil);\n}\n\nexport function tuiFloor(value: number, precision = 0): number {\n return calculate(value, precision, Math.floor);\n}\n\nexport function tuiTrunc(value: number, precision = 0): number {\n return calculate(value, precision, Math.trunc);\n}\n\nexport function tuiIsSafeToRound(value: number, precision = 0): boolean {\n return Number.isSafeInteger(Math.trunc(value * 10 ** precision));\n}\n","import {type TuiRounding} from '@taiga-ui/cdk/types';\n\nimport {tuiCeil, tuiFloor, tuiRound, tuiTrunc} from './round';\n\nexport function tuiRoundWith({\n value,\n precision,\n method,\n}: {\n method: TuiRounding;\n precision: number;\n value: number;\n}): number {\n switch (method) {\n case 'ceil':\n return tuiCeil(value, precision);\n case 'floor':\n return tuiFloor(value, precision);\n case 'round':\n return tuiRound(value, precision);\n default:\n return tuiTrunc(value, precision);\n }\n}\n","/**\n * Calculates sum of any number of passed arguments\n */\nexport function tuiSum(...args: number[]): number {\n return args.reduce((a, b) => a + b, 0);\n}\n","export function tuiToInt(bool: boolean): 0 | 1 {\n return bool ? 1 : 0;\n}\n","export function tuiToInteger(value: number | string): number {\n return parseInt(value as unknown as string, 10);\n}\n","/**\n * Converts angle in degrees to radians\n */\nexport function tuiToRadians(deg: number): number {\n return (deg * Math.PI) / 180;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { FormArray, FormGroup } from '@angular/forms';
2
2
  import { tuiToInt } from '@taiga-ui/cdk/utils/math';
3
3
  import { InjectionToken, isSignal, signal, inject, effect, DestroyRef, EnvironmentInjector, createComponent } from '@angular/core';
4
4
  import { TUI_ALLOW_SIGNAL_WRITES } from '@taiga-ui/cdk/constants';
5
+ import { SIGNAL } from '@angular/core/primitives/signals';
5
6
  import { toSignal } from '@angular/core/rxjs-interop';
6
7
 
7
8
  function tuiArrayRemove(array, index) {
@@ -65,10 +66,25 @@ function tuiDefaultSort(x, y) {
65
66
  return x > y ? 1 : -1;
66
67
  }
67
68
 
69
+ function tuiSetSignal(signal, value) {
70
+ if ('set' in signal) {
71
+ signal.set(value);
72
+ }
73
+ else if ('applyValueToInputSignal' in signal[SIGNAL]) {
74
+ signal[SIGNAL].applyValueToInputSignal(signal[SIGNAL], value);
75
+ }
76
+ else {
77
+ ngDevMode && console.assert(false, 'tuiSetSignal was called on read-only signal');
78
+ }
79
+ }
80
+
68
81
  function tuiDirectiveBinding(token, key, initial, options = { self: true }) {
69
82
  const result = isSignal(initial) ? initial : signal(initial);
70
83
  const directive = inject(token, options);
71
- const output = directive[`${key.toString()}Change`];
84
+ const output = directive?.[`${key.toString()}Change`];
85
+ if (!directive) {
86
+ return result;
87
+ }
72
88
  // TODO: Figure out why effects are executed all the time and not just when result changes (check with Angular 18)
73
89
  let previous;
74
90
  effect(() => {
@@ -77,7 +93,7 @@ function tuiDirectiveBinding(token, key, initial, options = { self: true }) {
77
93
  return;
78
94
  }
79
95
  if (isSignal(directive[key])) {
80
- directive[key].set(value);
96
+ tuiSetSignal(directive[key], value);
81
97
  }
82
98
  else {
83
99
  directive[key] = value;
@@ -249,7 +265,7 @@ function tuiObfuscate(value, symbol) {
249
265
  visible = 1;
250
266
  }
251
267
  obfuscateIndexes = obfuscateIndexes.slice(visible, obfuscateIndexes.length);
252
- const lastIndex = (obfuscateIndexes.length) - visible;
268
+ const lastIndex = obfuscateIndexes.length - visible;
253
269
  obfuscateIndexes = obfuscateIndexes.slice(0, lastIndex < 0 ? 0 : lastIndex);
254
270
  const result = value.split('');
255
271
  obfuscateIndexes.forEach((index) => {
@@ -284,7 +300,9 @@ function tuiProvideOptions(provide, options, fallback) {
284
300
  provide,
285
301
  useFactory: () => ({
286
302
  ...(inject(provide, { optional: true, skipSelf: true }) || fallback),
287
- ...(inject(options, { optional: true }) || options),
303
+ ...(inject(options, { optional: true }) ||
304
+ // @ts-ignore
305
+ (typeof options === 'function' ? options() : options)),
288
306
  }),
289
307
  };
290
308
  }
@@ -407,5 +425,5 @@ function tuiWithStyles(component) {
407
425
  * Generated bundle index. Do not edit.
408
426
  */
409
427
 
410
- export { TuiPureException, changeDateSeparator, tuiArrayRemove, tuiArrayShallowEquals, tuiArrayToggle, tuiCountFilledControls, tuiCreateToken, tuiCreateTokenFromFactory, tuiDefaultSort, tuiDirectiveBinding, tuiDirectiveListener, tuiDistanceBetweenTouches, tuiEaseInOutQuad, tuiFlatLength, tuiFontSizeWatcher, tuiGetOriginalArrayFromQueryList, tuiIsControlEmpty, tuiIsFalsy, tuiIsNumber, tuiIsObject, tuiIsPresent, tuiIsString, tuiIsValidUrl, tuiMarkControlAsTouchedAndValidate, tuiNullableSame, tuiObfuscate, tuiProvide, tuiProvideOptions, tuiPure, tuiPx, tuiUniqBy, tuiWithStyles };
428
+ export { TuiPureException, changeDateSeparator, tuiArrayRemove, tuiArrayShallowEquals, tuiArrayToggle, tuiCountFilledControls, tuiCreateToken, tuiCreateTokenFromFactory, tuiDefaultSort, tuiDirectiveBinding, tuiDirectiveListener, tuiDistanceBetweenTouches, tuiEaseInOutQuad, tuiFlatLength, tuiFontSizeWatcher, tuiGetOriginalArrayFromQueryList, tuiIsControlEmpty, tuiIsFalsy, tuiIsNumber, tuiIsObject, tuiIsPresent, tuiIsString, tuiIsValidUrl, tuiMarkControlAsTouchedAndValidate, tuiNullableSame, tuiObfuscate, tuiProvide, tuiProvideOptions, tuiPure, tuiPx, tuiSetSignal, tuiUniqBy, tuiWithStyles };
411
429
  //# sourceMappingURL=taiga-ui-cdk-utils-miscellaneous.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-miscellaneous.mjs","sources":["../../../projects/cdk/utils/miscellaneous/array-remove.ts","../../../projects/cdk/utils/miscellaneous/array-shallow-equals.ts","../../../projects/cdk/utils/miscellaneous/array-toggle.ts","../../../projects/cdk/utils/miscellaneous/change-date-separator.ts","../../../projects/cdk/utils/miscellaneous/is-control-empty.ts","../../../projects/cdk/utils/miscellaneous/count-filled-controls.ts","../../../projects/cdk/utils/miscellaneous/create-token.ts","../../../projects/cdk/utils/miscellaneous/is-string.ts","../../../projects/cdk/utils/miscellaneous/default-sort.ts","../../../projects/cdk/utils/miscellaneous/directive-binding.ts","../../../projects/cdk/utils/miscellaneous/directive-listener.ts","../../../projects/cdk/utils/miscellaneous/distance-between-touches.ts","../../../projects/cdk/utils/miscellaneous/ease-in-out-quad.ts","../../../projects/cdk/utils/miscellaneous/flat-length.ts","../../../projects/cdk/utils/miscellaneous/font-size-watcher.ts","../../../projects/cdk/utils/miscellaneous/get-original-array-from-query-list.ts","../../../projects/cdk/utils/miscellaneous/is-falsy.ts","../../../projects/cdk/utils/miscellaneous/is-number.ts","../../../projects/cdk/utils/miscellaneous/is-object.ts","../../../projects/cdk/utils/miscellaneous/is-present.ts","../../../projects/cdk/utils/miscellaneous/is-valid-url.ts","../../../projects/cdk/utils/miscellaneous/mark-control-as-touched-and-validate.ts","../../../projects/cdk/utils/miscellaneous/nullable-same.ts","../../../projects/cdk/utils/miscellaneous/obfuscate.ts","../../../projects/cdk/utils/miscellaneous/provide.ts","../../../projects/cdk/utils/miscellaneous/provide-options.ts","../../../projects/cdk/utils/miscellaneous/pure.ts","../../../projects/cdk/utils/miscellaneous/px.ts","../../../projects/cdk/utils/miscellaneous/uniq-by.ts","../../../projects/cdk/utils/miscellaneous/with-styles.ts","../../../projects/cdk/utils/miscellaneous/taiga-ui-cdk-utils-miscellaneous.ts"],"sourcesContent":["export function tuiArrayRemove<T>(array: readonly T[], index: number): T[] {\n return array.slice(0, Math.max(index, 0)).concat(array.slice(Math.max(index + 1, 0)));\n}\n","export function tuiArrayShallowEquals<T>(a: readonly T[], b: readonly T[]): boolean {\n return a.length === b.length && a.every((item, index) => item === b[index]);\n}\n","import {type TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\nimport {tuiArrayRemove} from './array-remove';\n\nexport function tuiArrayToggle<T>(\n array: readonly T[],\n item: T,\n identity?: TuiIdentityMatcher<T>,\n): T[] {\n const index = identity\n ? array.findIndex((it) => identity(it, item))\n : array.indexOf(item);\n\n return index === -1 ? [...array, item] : tuiArrayRemove(array, index);\n}\n","/* internal */\nexport const changeDateSeparator = (\n dateString: string,\n newDateSeparator: string,\n): string => dateString.replaceAll(/[^0-9A-Za-zА-Яа-я]/gi, newDateSeparator);\n","import {type AbstractControl} from '@angular/forms';\n\nexport function tuiIsControlEmpty({value = null}: AbstractControl): boolean {\n return value === null || value === '' || (Array.isArray(value) && !value.length);\n}\n","import {type AbstractControl, FormArray, FormGroup} from '@angular/forms';\nimport {tuiToInt} from '@taiga-ui/cdk/utils/math';\n\nimport {tuiIsControlEmpty} from './is-control-empty';\n\nexport function tuiCountFilledControls(control: AbstractControl): number {\n if (control instanceof FormArray) {\n return control.controls.reduce(\n (acc, nestedControl) => acc + tuiCountFilledControls(nestedControl),\n 0,\n );\n }\n\n if (control instanceof FormGroup) {\n return Object.values(control.controls).reduce(\n (acc, nestedControl) => acc + tuiCountFilledControls(nestedControl),\n 0,\n );\n }\n\n return tuiToInt(!tuiIsControlEmpty(control));\n}\n","import {InjectionToken} from '@angular/core';\n\n/**\n * @deprecated: drop in v5.0\n */\nexport function tuiCreateToken<T>(defaults?: T): InjectionToken<T> {\n return defaults === undefined\n ? new InjectionToken('')\n : tuiCreateTokenFromFactory(() => defaults);\n}\n\n/**\n * @deprecated: drop in v5.0\n */\nexport function tuiCreateTokenFromFactory<T>(factory?: () => T): InjectionToken<T> {\n return factory ? new InjectionToken<T>('', {factory}) : new InjectionToken<T>('');\n}\n","export function tuiIsString(value: unknown): value is string {\n return typeof value === 'string';\n}\n","import {tuiIsString} from './is-string';\n\nexport function tuiDefaultSort<T>(x: T, y: T): number {\n if (x === y) {\n return 0;\n }\n\n if (tuiIsString(x) && tuiIsString(y)) {\n return x.localeCompare(y);\n }\n\n return x > y ? 1 : -1;\n}\n","import {\n effect,\n inject,\n type InjectOptions,\n isSignal,\n type ProviderToken,\n type Signal,\n signal,\n type WritableSignal,\n} from '@angular/core';\nimport {TUI_ALLOW_SIGNAL_WRITES} from '@taiga-ui/cdk/constants';\n\ntype SignalLikeTypeOf<T> = T extends Signal<infer R> ? R : T;\n\ntype SignalLike<T> = Signal<T> | T;\n\nexport function tuiDirectiveBinding<\n T,\n G extends keyof T,\n I extends SignalLike<SignalLikeTypeOf<T[G]>>,\n>(\n token: ProviderToken<T>,\n key: G,\n initial: I,\n options: InjectOptions = {self: true},\n): I extends Signal<any> ? I : WritableSignal<I> {\n const result: any = isSignal(initial) ? initial : signal(initial);\n const directive: any = inject(token, options);\n const output = directive[`${key.toString()}Change`];\n\n // TODO: Figure out why effects are executed all the time and not just when result changes (check with Angular 18)\n let previous: any;\n\n effect(() => {\n const value: any = result();\n\n if (previous === value) {\n return;\n }\n\n if (isSignal(directive[key])) {\n directive[key].set(value);\n } else {\n directive[key] = value;\n }\n\n directive.ngOnChanges?.({});\n output?.emit?.(value);\n previous = value;\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n return result;\n}\n","import {\n inject,\n type InjectOptions,\n isSignal,\n type ProviderToken,\n type Signal,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {type Observable} from 'rxjs';\n\ntype OutputKeysOf<T> = {\n [K in keyof T]: T[K] extends Observable<any> | Signal<any> ? K : never;\n}[keyof T];\n\ntype OutputTypeOf<T> =\n T extends Signal<infer R> ? R : T extends Observable<infer O> ? O : never;\n\n/** @deprecated remove in v5 */\nexport function tuiDirectiveListener<T, K extends OutputKeysOf<T>>(\n token: ProviderToken<T>,\n key: K,\n options: InjectOptions = {self: true},\n): Signal<OutputTypeOf<T[K]>> {\n const prop: any = inject(token, options)?.[key];\n\n return isSignal(prop) ? prop : toSignal<any>(prop);\n}\n","export function tuiDistanceBetweenTouches({touches}: TouchEvent): number {\n return Math.hypot(\n (touches[0]?.clientX ?? 0) - (touches[1]?.clientX ?? 0),\n (touches[0]?.clientY ?? 0) - (touches[1]?.clientY ?? 0),\n );\n}\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\n\nexport function tuiEaseInOutQuad(t: number): number {\n ngDevMode &&\n console.assert(\n t >= 0 && t <= 1,\n 'Input must be between 0 and 1 inclusive but received ',\n t,\n );\n\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n}\n","/**\n * Flattens two-dimensional array and calculates resulting length\n *\n * @param array twi dimensional array\n */\nexport function tuiFlatLength(array: ReadonlyArray<readonly unknown[]>): number {\n return array.reduce((count, section) => count + section.length, 0);\n}\n","const IFRAME = 'position: fixed; visibility: hidden; pointer-events: none';\nconst BODY = 'height: fit-content; line-height: 1em;';\nconst CLASS = 'tui-font-size-watcher';\n\nexport function tuiFontSizeWatcher(\n callback: (fontSize: number) => void,\n win: Window = window,\n): () => void {\n if (win.document.querySelector(`.${CLASS}`)) {\n return () => {};\n }\n\n const iframe = win.document.createElement('iframe');\n const resize = (): void => {\n const {innerWidth, outerWidth, devicePixelRatio} = win;\n\n iframe.width = `${innerWidth === outerWidth ? innerWidth : innerWidth / devicePixelRatio}`;\n };\n\n win.document.body.append(iframe);\n win.addEventListener('resize', resize);\n\n const doc = iframe.contentWindow?.document;\n const observer = new ResizeObserver(() => callback(doc?.body.offsetHeight || 0));\n\n iframe.setAttribute('class', CLASS);\n iframe.setAttribute('style', IFRAME);\n doc?.documentElement.style.setProperty('font', '-apple-system-body');\n doc?.body.setAttribute('style', BODY);\n doc?.body.insertAdjacentText('beforeend', '.'.repeat(1000));\n observer.observe(doc?.body || iframe);\n resize();\n\n return () => {\n observer.disconnect();\n iframe.remove();\n win.removeEventListener('resize', resize);\n };\n}\n","import {type QueryList} from '@angular/core';\n\n/**\n * Extracts original array from {@link QueryList} rather than\n * creating a copy like {@link QueryList.toArray} does.\n * @param queryList\n * @returns original array from {@link QueryList}.\n */\nexport function tuiGetOriginalArrayFromQueryList<T>(\n queryList: QueryList<T>,\n): readonly T[] {\n let array: readonly T[] = [];\n\n queryList.find((_item, _index, originalArray) => {\n array = originalArray;\n\n return true;\n });\n\n return array;\n}\n","export function tuiIsFalsy(value: unknown): boolean {\n return !value;\n}\n","export function tuiIsNumber(value: unknown): value is number {\n return typeof value === 'number';\n}\n","export function tuiIsObject<T extends Record<string, any>>(\n value: unknown,\n): value is NonNullable<T> {\n return typeof value === 'object' && !!value;\n}\n","export function tuiIsPresent<T>(value?: T | null): value is T {\n return value !== null && value !== undefined;\n}\n","/**\n * @deprecated: drop in v5.0\n */\nexport function tuiIsValidUrl(url: string): boolean {\n return new RegExp(\n String.raw`^([a-zA-Z]+:\\/\\/)?` + // protocol\n String.raw`((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|localhost|` + // domain name\n String.raw`((\\d{1,3}\\.){3}\\d{1,3}))` + // OR IP (v4) address\n String.raw`(\\:\\d+)?(\\/[-a-z\\d%_.~+\\:]*)*` + // port and path\n String.raw`(\\?[)(;&a-z\\d%_.~+=-]*)?` + // query string\n String.raw`(\\#[-a-z\\d_]*)?$`, // fragment locator\n 'i',\n ).test(url);\n}\n","import {type AbstractControl, FormArray, FormGroup} from '@angular/forms';\n\nexport function tuiMarkControlAsTouchedAndValidate(control: AbstractControl): void {\n if (control instanceof FormArray) {\n control.controls.forEach((nestedControl) => {\n tuiMarkControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n if (control instanceof FormGroup) {\n Object.values(control.controls).forEach((nestedControl) => {\n tuiMarkControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n control.markAsTouched();\n control.updateValueAndValidity();\n}\n","import {type TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\n/**\n * Checks identity for nullable elements.\n *\n * @param a element a\n * @param b element b\n * @param handler called if both elements are not null\n * @return true if either both are null or they pass identity handler\n */\nexport function tuiNullableSame<T>(\n a: T | null,\n b: T | null,\n handler: TuiIdentityMatcher<T>,\n): boolean {\n if (a === null) {\n return b === null;\n }\n\n if (b === null) {\n return false;\n }\n\n return handler(a, b);\n}\n","/**\n * Obfuscates a string by replacing certain characters with a symbol.\n *\n * @param value the input string to obfuscate\n * @param symbol the symbol for obfuscation\n * @return the obfuscated string\n *\n * The function determines which characters to obfuscate using a regular expression and the string's length:\n * - 8 or more: show first 2 and last 2 characters\n * - 4 to 7: show first and last character\n * - less than 4: obfuscate all characters\n * - obfuscates only alphanumeric characters\n */\nexport function tuiObfuscate(value: string, symbol: string): string {\n if (!value) {\n return value;\n }\n\n const match = /[\\p{L}\\p{N}]/gu;\n\n let visible = 0;\n let obfuscateIndexes: number[] = getObfuscateIndexes(value, match);\n\n if (obfuscateIndexes.length >= 8) {\n visible = 2;\n } else if (obfuscateIndexes.length >= 4) {\n visible = 1;\n }\n\n obfuscateIndexes = obfuscateIndexes.slice(visible, obfuscateIndexes.length);\n\n const lastIndex = (obfuscateIndexes.length satisfies number) - visible;\n\n obfuscateIndexes = obfuscateIndexes.slice(0, lastIndex < 0 ? 0 : lastIndex);\n\n const result = value.split('');\n\n obfuscateIndexes.forEach((index) => {\n result[index] = symbol;\n });\n\n return result.join('');\n}\n\nfunction getObfuscateIndexes(value: string, match?: RegExp): number[] {\n if (!match) {\n return Array.from({length: value.length}).map((_, index) => index);\n }\n\n const obfuscateIndexes: number[] = [];\n let matchResult;\n let count = 0;\n\n while ((matchResult = match.exec(value)) !== null && count < value.length) {\n const start = matchResult.index;\n const end = match.lastIndex - 1;\n\n for (let i = start; i <= end; i++) {\n obfuscateIndexes.push(i);\n }\n\n count++;\n }\n\n return obfuscateIndexes;\n}\n","import {type ExistingProvider, type ProviderToken} from '@angular/core';\n\nexport function tuiProvide<T>(\n provide: ProviderToken<T>,\n useExisting: ProviderToken<T>,\n): ExistingProvider;\nexport function tuiProvide<T>(\n provide: ProviderToken<T | T[]>,\n useExisting: ProviderToken<T>,\n multi: boolean,\n): ExistingProvider;\nexport function tuiProvide<T>(\n provide: ProviderToken<T>,\n useExisting: ProviderToken<T>,\n multi = false,\n): ExistingProvider {\n return {provide, useExisting, multi};\n}\n","import {\n type FactoryProvider,\n inject,\n type InjectionToken,\n type ProviderToken,\n} from '@angular/core';\n\nexport function tuiProvideOptions<T>(\n provide: InjectionToken<T>,\n options: Partial<T> | ProviderToken<Partial<T>>,\n fallback: T,\n): FactoryProvider {\n return {\n provide,\n useFactory: (): T => ({\n ...(inject(provide, {optional: true, skipSelf: true}) || fallback),\n ...(inject(options as any, {optional: true}) || options),\n }),\n };\n}\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\n\nfunction decorateMethod(\n originalMethod: (...args: unknown[]) => unknown,\n): (this: object, ...args: unknown[]) => unknown {\n let previousArgs: readonly unknown[] = [];\n let originalFnWasCalledLeastAtOnce = false;\n let pureValue: unknown;\n\n return function tuiPureMethodPatched(this: object, ...args: unknown[]): unknown {\n const isPure =\n originalFnWasCalledLeastAtOnce &&\n previousArgs.length === args.length &&\n args.every((arg, index) => arg === previousArgs[index]);\n\n if (isPure) {\n return pureValue;\n }\n\n previousArgs = args;\n pureValue = originalMethod.apply(this, args);\n originalFnWasCalledLeastAtOnce = true;\n\n return pureValue;\n };\n}\n\nfunction decorateGetter(\n originalGetter: () => unknown,\n propertyKey: string | symbol,\n enumerable = true,\n): (this: object) => unknown {\n return function tuiPureGetterPatched(this: object): unknown {\n const value = originalGetter.call(this);\n\n Object.defineProperty(this, propertyKey, {enumerable, value});\n\n return value;\n };\n}\n\n/**\n * Implements lazy initialization for getter or memoization of a function call similar to pure {@link: Pipe}.\n * Replaces getter with its calculated value upon first call or keeps track of last call arguments and returned\n * value for function, skipping calculation when arguments are strictly the same.\n *\n * @throws error if used not on getter or function\n *\n * CAUTION: they must be pure.\n * TODO(v5): drop compatibility for legacy \"experimentalDecorators\": true\n */\nexport function tuiPure<T>(\n target: object,\n propertyKey: string,\n {get, enumerable, value}: TypedPropertyDescriptor<T>,\n): TypedPropertyDescriptor<T>;\n\n/**\n * Implements lazy initialization for getter or memoization of a function call similar to pure {@link: Pipe}.\n * Replaces getter with its calculated value upon first call or keeps track of last call arguments and returned\n * value for function, skipping calculation when arguments are strictly the same.\n *\n * CAUTION: they must be pure.\n */\nexport function tuiPure<A extends unknown[], R>(\n target: (...args: A) => R,\n context: ClassGetterDecoratorContext | ClassMethodDecoratorContext,\n): (...args: A) => R;\n\nexport function tuiPure(\n target: object | ((...args: unknown[]) => unknown),\n propertyKeyOrContext:\n | ClassGetterDecoratorContext\n | ClassMethodDecoratorContext\n | string,\n descriptor?: TypedPropertyDescriptor<(...args: unknown[]) => unknown>,\n): TypedPropertyDescriptor<unknown> | ((...args: unknown[]) => unknown) {\n if (typeof target === 'function') {\n const context = propertyKeyOrContext as\n | ClassGetterDecoratorContext\n | ClassMethodDecoratorContext;\n\n if (context.kind === 'getter') {\n return decorateGetter(target as () => unknown, context.name);\n }\n\n if (context.kind === 'method') {\n return decorateMethod(target as (...args: unknown[]) => unknown);\n }\n\n throw new TuiPureException();\n }\n\n // TODO(v5): drop compatibility for legacy \"experimentalDecorators\": true\n const {get, enumerable, value} = descriptor!;\n const propertyKey = propertyKeyOrContext as string;\n\n if (get) {\n return {\n configurable: true,\n enumerable,\n get: decorateGetter(get, propertyKey, enumerable),\n };\n }\n\n if (typeof value !== 'function') {\n throw new TuiPureException();\n }\n\n const original = value;\n\n return {\n configurable: true,\n enumerable,\n get(): unknown {\n let previousArgs: readonly unknown[] = [];\n let originalFnWasCalledLeastAtOnce = false;\n let pureValue: unknown;\n\n const patched = (...args: unknown[]): unknown => {\n const isPure =\n originalFnWasCalledLeastAtOnce &&\n previousArgs.length === args.length &&\n args.every((arg, index) => arg === previousArgs[index]);\n\n if (isPure) {\n return pureValue;\n }\n\n previousArgs = args;\n pureValue = original.apply(this, args);\n originalFnWasCalledLeastAtOnce = true;\n\n return pureValue;\n };\n\n Object.defineProperty(this, propertyKey, {\n configurable: true,\n value: patched,\n });\n\n return patched as unknown;\n },\n };\n}\n\nexport class TuiPureException extends Error {\n constructor() {\n super(ngDevMode ? 'tuiPure can only be used with functions or getters' : '');\n }\n}\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\n\n/**\n * Adds 'px' to the number and turns it into a string\n */\nexport function tuiPx(value: number): string {\n ngDevMode && console.assert(Number.isFinite(value), 'Value must be finite number');\n\n return `${value}px`;\n}\n","import {type TuiValuesOf} from '@taiga-ui/cdk/types';\n\nexport function tuiUniqBy<T extends Record<string, any>>(\n array: readonly T[],\n key: keyof T,\n): readonly T[] {\n return Array.from(\n array\n .reduce(\n (map, item) => (map.has(item[key]) ? map : map.set(item[key], item)),\n new Map<TuiValuesOf<T>, T>(),\n )\n .values(),\n );\n}\n","import {\n createComponent,\n DestroyRef,\n EnvironmentInjector,\n inject,\n InjectionToken,\n type Type,\n} from '@angular/core';\n\nconst MAP = new InjectionToken(ngDevMode ? 'MAP' : '', {\n factory: () => {\n const map = new Map();\n\n inject(DestroyRef).onDestroy(() =>\n map.forEach((component) => component.destroy()),\n );\n\n return map;\n },\n});\n\nexport function tuiWithStyles(component: Type<unknown>): undefined {\n const map = inject(MAP);\n const environmentInjector = inject(EnvironmentInjector);\n\n if (!map.has(component)) {\n map.set(component, createComponent(component, {environmentInjector}));\n }\n\n return undefined;\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-cdk-utils-miscellaneous.mjs","sources":["../../../projects/cdk/utils/miscellaneous/array-remove.ts","../../../projects/cdk/utils/miscellaneous/array-shallow-equals.ts","../../../projects/cdk/utils/miscellaneous/array-toggle.ts","../../../projects/cdk/utils/miscellaneous/change-date-separator.ts","../../../projects/cdk/utils/miscellaneous/is-control-empty.ts","../../../projects/cdk/utils/miscellaneous/count-filled-controls.ts","../../../projects/cdk/utils/miscellaneous/create-token.ts","../../../projects/cdk/utils/miscellaneous/is-string.ts","../../../projects/cdk/utils/miscellaneous/default-sort.ts","../../../projects/cdk/utils/miscellaneous/set-signal.ts","../../../projects/cdk/utils/miscellaneous/directive-binding.ts","../../../projects/cdk/utils/miscellaneous/directive-listener.ts","../../../projects/cdk/utils/miscellaneous/distance-between-touches.ts","../../../projects/cdk/utils/miscellaneous/ease-in-out-quad.ts","../../../projects/cdk/utils/miscellaneous/flat-length.ts","../../../projects/cdk/utils/miscellaneous/font-size-watcher.ts","../../../projects/cdk/utils/miscellaneous/get-original-array-from-query-list.ts","../../../projects/cdk/utils/miscellaneous/is-falsy.ts","../../../projects/cdk/utils/miscellaneous/is-number.ts","../../../projects/cdk/utils/miscellaneous/is-object.ts","../../../projects/cdk/utils/miscellaneous/is-present.ts","../../../projects/cdk/utils/miscellaneous/is-valid-url.ts","../../../projects/cdk/utils/miscellaneous/mark-control-as-touched-and-validate.ts","../../../projects/cdk/utils/miscellaneous/nullable-same.ts","../../../projects/cdk/utils/miscellaneous/obfuscate.ts","../../../projects/cdk/utils/miscellaneous/provide.ts","../../../projects/cdk/utils/miscellaneous/provide-options.ts","../../../projects/cdk/utils/miscellaneous/pure.ts","../../../projects/cdk/utils/miscellaneous/px.ts","../../../projects/cdk/utils/miscellaneous/uniq-by.ts","../../../projects/cdk/utils/miscellaneous/with-styles.ts","../../../projects/cdk/utils/miscellaneous/taiga-ui-cdk-utils-miscellaneous.ts"],"sourcesContent":["export function tuiArrayRemove<T>(array: readonly T[], index: number): T[] {\n return array.slice(0, Math.max(index, 0)).concat(array.slice(Math.max(index + 1, 0)));\n}\n","export function tuiArrayShallowEquals<T>(a: readonly T[], b: readonly T[]): boolean {\n return a.length === b.length && a.every((item, index) => item === b[index]);\n}\n","import {type TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\nimport {tuiArrayRemove} from './array-remove';\n\nexport function tuiArrayToggle<T>(\n array: readonly T[],\n item: T,\n identity?: TuiIdentityMatcher<T>,\n): T[] {\n const index = identity\n ? array.findIndex((it) => identity(it, item))\n : array.indexOf(item);\n\n return index === -1 ? [...array, item] : tuiArrayRemove(array, index);\n}\n","/* internal */\nexport const changeDateSeparator = (\n dateString: string,\n newDateSeparator: string,\n): string => dateString.replaceAll(/[^0-9A-Za-zА-Яа-я]/gi, newDateSeparator);\n","import {type AbstractControl} from '@angular/forms';\n\nexport function tuiIsControlEmpty({value = null}: AbstractControl): boolean {\n return value === null || value === '' || (Array.isArray(value) && !value.length);\n}\n","import {type AbstractControl, FormArray, FormGroup} from '@angular/forms';\nimport {tuiToInt} from '@taiga-ui/cdk/utils/math';\n\nimport {tuiIsControlEmpty} from './is-control-empty';\n\nexport function tuiCountFilledControls(control: AbstractControl): number {\n if (control instanceof FormArray) {\n return control.controls.reduce(\n (acc, nestedControl) => acc + tuiCountFilledControls(nestedControl),\n 0,\n );\n }\n\n if (control instanceof FormGroup) {\n return Object.values(control.controls).reduce(\n (acc, nestedControl) => acc + tuiCountFilledControls(nestedControl),\n 0,\n );\n }\n\n return tuiToInt(!tuiIsControlEmpty(control));\n}\n","import {InjectionToken} from '@angular/core';\n\n/**\n * @deprecated: drop in v5.0\n */\nexport function tuiCreateToken<T>(defaults?: T): InjectionToken<T> {\n return defaults === undefined\n ? new InjectionToken('')\n : tuiCreateTokenFromFactory(() => defaults);\n}\n\n/**\n * @deprecated: drop in v5.0\n */\nexport function tuiCreateTokenFromFactory<T>(factory?: () => T): InjectionToken<T> {\n return factory ? new InjectionToken<T>('', {factory}) : new InjectionToken<T>('');\n}\n","export function tuiIsString(value: unknown): value is string {\n return typeof value === 'string';\n}\n","import {tuiIsString} from './is-string';\n\nexport function tuiDefaultSort<T>(x: T, y: T): number {\n if (x === y) {\n return 0;\n }\n\n if (tuiIsString(x) && tuiIsString(y)) {\n return x.localeCompare(y);\n }\n\n return x > y ? 1 : -1;\n}\n","import {type InputSignal, type WritableSignal} from '@angular/core';\nimport {SIGNAL} from '@angular/core/primitives/signals';\n\nexport function tuiSetSignal<T>(\n signal: InputSignal<T> | WritableSignal<T>,\n value: T,\n): void {\n if ('set' in signal) {\n signal.set(value);\n } else if ('applyValueToInputSignal' in signal[SIGNAL]) {\n signal[SIGNAL].applyValueToInputSignal(signal[SIGNAL], value);\n } else {\n ngDevMode && console.assert(false, 'tuiSetSignal was called on read-only signal');\n }\n}\n","import {\n effect,\n inject,\n type InjectOptions,\n isSignal,\n type ProviderToken,\n type Signal,\n signal,\n type WritableSignal,\n} from '@angular/core';\nimport {TUI_ALLOW_SIGNAL_WRITES} from '@taiga-ui/cdk/constants';\n\nimport {tuiSetSignal} from './set-signal';\n\ntype SignalLikeTypeOf<T> = T extends Signal<infer R> ? R : T;\n\ntype SignalLike<T> = Signal<T> | T;\n\nexport function tuiDirectiveBinding<\n T,\n G extends keyof T,\n I extends SignalLike<SignalLikeTypeOf<T[G]>>,\n>(\n token: ProviderToken<T>,\n key: G,\n initial: I,\n options: InjectOptions = {self: true},\n): I extends Signal<any> ? I : WritableSignal<I> {\n const result: any = isSignal(initial) ? initial : signal(initial);\n const directive: any = inject(token, options);\n const output = directive?.[`${key.toString()}Change`];\n\n if (!directive) {\n return result;\n }\n\n // TODO: Figure out why effects are executed all the time and not just when result changes (check with Angular 18)\n let previous: any;\n\n effect(() => {\n const value: any = result();\n\n if (previous === value) {\n return;\n }\n\n if (isSignal(directive[key])) {\n tuiSetSignal(directive[key] as any, value);\n } else {\n directive[key] = value;\n }\n\n directive.ngOnChanges?.({});\n output?.emit?.(value);\n previous = value;\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n return result;\n}\n","import {\n inject,\n type InjectOptions,\n isSignal,\n type ProviderToken,\n type Signal,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {type Observable} from 'rxjs';\n\ntype OutputKeysOf<T> = {\n [K in keyof T]: T[K] extends Observable<any> | Signal<any> ? K : never;\n}[keyof T];\n\ntype OutputTypeOf<T> =\n T extends Signal<infer R> ? R : T extends Observable<infer O> ? O : never;\n\n/** @deprecated remove in v5 */\nexport function tuiDirectiveListener<T, K extends OutputKeysOf<T>>(\n token: ProviderToken<T>,\n key: K,\n options: InjectOptions = {self: true},\n): Signal<OutputTypeOf<T[K]>> {\n const prop: any = inject(token, options)?.[key];\n\n return isSignal(prop) ? prop : toSignal<any>(prop);\n}\n","export function tuiDistanceBetweenTouches({touches}: TouchEvent): number {\n return Math.hypot(\n (touches[0]?.clientX ?? 0) - (touches[1]?.clientX ?? 0),\n (touches[0]?.clientY ?? 0) - (touches[1]?.clientY ?? 0),\n );\n}\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\n\nexport function tuiEaseInOutQuad(t: number): number {\n ngDevMode &&\n console.assert(\n t >= 0 && t <= 1,\n 'Input must be between 0 and 1 inclusive but received ',\n t,\n );\n\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n}\n","/**\n * Flattens two-dimensional array and calculates resulting length\n *\n * @param array twi dimensional array\n */\nexport function tuiFlatLength(array: ReadonlyArray<readonly unknown[]>): number {\n return array.reduce((count, section) => count + section.length, 0);\n}\n","const IFRAME = 'position: fixed; visibility: hidden; pointer-events: none';\nconst BODY = 'height: fit-content; line-height: 1em;';\nconst CLASS = 'tui-font-size-watcher';\n\nexport function tuiFontSizeWatcher(\n callback: (fontSize: number) => void,\n win: Window = window,\n): () => void {\n if (win.document.querySelector(`.${CLASS}`)) {\n return () => {};\n }\n\n const iframe = win.document.createElement('iframe');\n const resize = (): void => {\n const {innerWidth, outerWidth, devicePixelRatio} = win;\n\n iframe.width = `${innerWidth === outerWidth ? innerWidth : innerWidth / devicePixelRatio}`;\n };\n\n win.document.body.append(iframe);\n win.addEventListener('resize', resize);\n\n const doc = iframe.contentWindow?.document;\n const observer = new ResizeObserver(() => callback(doc?.body.offsetHeight || 0));\n\n iframe.setAttribute('class', CLASS);\n iframe.setAttribute('style', IFRAME);\n doc?.documentElement.style.setProperty('font', '-apple-system-body');\n doc?.body.setAttribute('style', BODY);\n doc?.body.insertAdjacentText('beforeend', '.'.repeat(1000));\n observer.observe(doc?.body || iframe);\n resize();\n\n return () => {\n observer.disconnect();\n iframe.remove();\n win.removeEventListener('resize', resize);\n };\n}\n","import {type QueryList} from '@angular/core';\n\n/**\n * Extracts original array from {@link QueryList} rather than\n * creating a copy like {@link QueryList.toArray} does.\n * @param queryList\n * @returns original array from {@link QueryList}.\n */\nexport function tuiGetOriginalArrayFromQueryList<T>(\n queryList: QueryList<T>,\n): readonly T[] {\n let array: readonly T[] = [];\n\n queryList.find((_item, _index, originalArray) => {\n array = originalArray;\n\n return true;\n });\n\n return array;\n}\n","export function tuiIsFalsy(value: unknown): boolean {\n return !value;\n}\n","export function tuiIsNumber(value: unknown): value is number {\n return typeof value === 'number';\n}\n","export function tuiIsObject<T extends Record<string, any>>(\n value: unknown,\n): value is NonNullable<T> {\n return typeof value === 'object' && !!value;\n}\n","export function tuiIsPresent<T>(value?: T | null): value is T {\n return value !== null && value !== undefined;\n}\n","/**\n * @deprecated: drop in v5.0\n */\nexport function tuiIsValidUrl(url: string): boolean {\n return new RegExp(\n String.raw`^([a-zA-Z]+:\\/\\/)?` + // protocol\n String.raw`((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|localhost|` + // domain name\n String.raw`((\\d{1,3}\\.){3}\\d{1,3}))` + // OR IP (v4) address\n String.raw`(\\:\\d+)?(\\/[-a-z\\d%_.~+\\:]*)*` + // port and path\n String.raw`(\\?[)(;&a-z\\d%_.~+=-]*)?` + // query string\n String.raw`(\\#[-a-z\\d_]*)?$`, // fragment locator\n 'i',\n ).test(url);\n}\n","import {type AbstractControl, FormArray, FormGroup} from '@angular/forms';\n\nexport function tuiMarkControlAsTouchedAndValidate(control: AbstractControl): void {\n if (control instanceof FormArray) {\n control.controls.forEach((nestedControl) => {\n tuiMarkControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n if (control instanceof FormGroup) {\n Object.values(control.controls).forEach((nestedControl) => {\n tuiMarkControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n control.markAsTouched();\n control.updateValueAndValidity();\n}\n","import {type TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\n/**\n * Checks identity for nullable elements.\n *\n * @param a element a\n * @param b element b\n * @param handler called if both elements are not null\n * @return true if either both are null or they pass identity handler\n */\nexport function tuiNullableSame<T>(\n a: T | null,\n b: T | null,\n handler: TuiIdentityMatcher<T>,\n): boolean {\n if (a === null) {\n return b === null;\n }\n\n if (b === null) {\n return false;\n }\n\n return handler(a, b);\n}\n","/**\n * Obfuscates a string by replacing certain characters with a symbol.\n *\n * @param value the input string to obfuscate\n * @param symbol the symbol for obfuscation\n * @return the obfuscated string\n *\n * The function determines which characters to obfuscate using a regular expression and the string's length:\n * - 8 or more: show first 2 and last 2 characters\n * - 4 to 7: show first and last character\n * - less than 4: obfuscate all characters\n * - obfuscates only alphanumeric characters\n */\nexport function tuiObfuscate(value: string, symbol: string): string {\n if (!value) {\n return value;\n }\n\n const match = /[\\p{L}\\p{N}]/gu;\n\n let visible = 0;\n let obfuscateIndexes: number[] = getObfuscateIndexes(value, match);\n\n if (obfuscateIndexes.length >= 8) {\n visible = 2;\n } else if (obfuscateIndexes.length >= 4) {\n visible = 1;\n }\n\n obfuscateIndexes = obfuscateIndexes.slice(visible, obfuscateIndexes.length);\n\n const lastIndex = (obfuscateIndexes.length satisfies number) - visible;\n\n obfuscateIndexes = obfuscateIndexes.slice(0, lastIndex < 0 ? 0 : lastIndex);\n\n const result = value.split('');\n\n obfuscateIndexes.forEach((index) => {\n result[index] = symbol;\n });\n\n return result.join('');\n}\n\nfunction getObfuscateIndexes(value: string, match?: RegExp): number[] {\n if (!match) {\n return Array.from({length: value.length}).map((_, index) => index);\n }\n\n const obfuscateIndexes: number[] = [];\n let matchResult;\n let count = 0;\n\n while ((matchResult = match.exec(value)) !== null && count < value.length) {\n const start = matchResult.index;\n const end = match.lastIndex - 1;\n\n for (let i = start; i <= end; i++) {\n obfuscateIndexes.push(i);\n }\n\n count++;\n }\n\n return obfuscateIndexes;\n}\n","import {type ExistingProvider, type ProviderToken} from '@angular/core';\n\nexport function tuiProvide<T>(\n provide: ProviderToken<T>,\n useExisting: ProviderToken<T>,\n): ExistingProvider;\nexport function tuiProvide<T>(\n provide: ProviderToken<T | T[]>,\n useExisting: ProviderToken<T>,\n multi: boolean,\n): ExistingProvider;\nexport function tuiProvide<T>(\n provide: ProviderToken<T>,\n useExisting: ProviderToken<T>,\n multi = false,\n): ExistingProvider {\n return {provide, useExisting, multi};\n}\n","import {type FactoryProvider, inject, type InjectionToken} from '@angular/core';\n\nexport function tuiProvideOptions<T>(\n provide: InjectionToken<T>,\n options: Partial<T> | (() => Partial<T>),\n fallback: T,\n): FactoryProvider {\n return {\n provide,\n useFactory: (): T => ({\n ...(inject(provide, {optional: true, skipSelf: true}) || fallback),\n ...(inject(options as any, {optional: true}) ||\n // @ts-ignore\n (typeof options === 'function' ? options() : options)),\n }),\n };\n}\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\n\nfunction decorateMethod(\n originalMethod: (...args: unknown[]) => unknown,\n): (this: object, ...args: unknown[]) => unknown {\n let previousArgs: readonly unknown[] = [];\n let originalFnWasCalledLeastAtOnce = false;\n let pureValue: unknown;\n\n return function tuiPureMethodPatched(this: object, ...args: unknown[]): unknown {\n const isPure =\n originalFnWasCalledLeastAtOnce &&\n previousArgs.length === args.length &&\n args.every((arg, index) => arg === previousArgs[index]);\n\n if (isPure) {\n return pureValue;\n }\n\n previousArgs = args;\n pureValue = originalMethod.apply(this, args);\n originalFnWasCalledLeastAtOnce = true;\n\n return pureValue;\n };\n}\n\nfunction decorateGetter(\n originalGetter: () => unknown,\n propertyKey: string | symbol,\n enumerable = true,\n): (this: object) => unknown {\n return function tuiPureGetterPatched(this: object): unknown {\n const value = originalGetter.call(this);\n\n Object.defineProperty(this, propertyKey, {enumerable, value});\n\n return value;\n };\n}\n\n/**\n * Implements lazy initialization for getter or memoization of a function call similar to pure {@link: Pipe}.\n * Replaces getter with its calculated value upon first call or keeps track of last call arguments and returned\n * value for function, skipping calculation when arguments are strictly the same.\n *\n * @throws error if used not on getter or function\n *\n * CAUTION: they must be pure.\n * TODO(v5): drop compatibility for legacy \"experimentalDecorators\": true\n */\nexport function tuiPure<T>(\n target: object,\n propertyKey: string,\n {get, enumerable, value}: TypedPropertyDescriptor<T>,\n): TypedPropertyDescriptor<T>;\n\n/**\n * Implements lazy initialization for getter or memoization of a function call similar to pure {@link: Pipe}.\n * Replaces getter with its calculated value upon first call or keeps track of last call arguments and returned\n * value for function, skipping calculation when arguments are strictly the same.\n *\n * CAUTION: they must be pure.\n */\nexport function tuiPure<A extends unknown[], R>(\n target: (...args: A) => R,\n context: ClassGetterDecoratorContext | ClassMethodDecoratorContext,\n): (...args: A) => R;\n\nexport function tuiPure(\n target: object | ((...args: unknown[]) => unknown),\n propertyKeyOrContext:\n | ClassGetterDecoratorContext\n | ClassMethodDecoratorContext\n | string,\n descriptor?: TypedPropertyDescriptor<(...args: unknown[]) => unknown>,\n): TypedPropertyDescriptor<unknown> | ((...args: unknown[]) => unknown) {\n if (typeof target === 'function') {\n const context = propertyKeyOrContext as\n | ClassGetterDecoratorContext\n | ClassMethodDecoratorContext;\n\n if (context.kind === 'getter') {\n return decorateGetter(target as () => unknown, context.name);\n }\n\n if (context.kind === 'method') {\n return decorateMethod(target as (...args: unknown[]) => unknown);\n }\n\n throw new TuiPureException();\n }\n\n // TODO(v5): drop compatibility for legacy \"experimentalDecorators\": true\n const {get, enumerable, value} = descriptor!;\n const propertyKey = propertyKeyOrContext as string;\n\n if (get) {\n return {\n configurable: true,\n enumerable,\n get: decorateGetter(get, propertyKey, enumerable),\n };\n }\n\n if (typeof value !== 'function') {\n throw new TuiPureException();\n }\n\n const original = value;\n\n return {\n configurable: true,\n enumerable,\n get(): unknown {\n let previousArgs: readonly unknown[] = [];\n let originalFnWasCalledLeastAtOnce = false;\n let pureValue: unknown;\n\n const patched = (...args: unknown[]): unknown => {\n const isPure =\n originalFnWasCalledLeastAtOnce &&\n previousArgs.length === args.length &&\n args.every((arg, index) => arg === previousArgs[index]);\n\n if (isPure) {\n return pureValue;\n }\n\n previousArgs = args;\n pureValue = original.apply(this, args);\n originalFnWasCalledLeastAtOnce = true;\n\n return pureValue;\n };\n\n Object.defineProperty(this, propertyKey, {\n configurable: true,\n value: patched,\n });\n\n return patched as unknown;\n },\n };\n}\n\nexport class TuiPureException extends Error {\n constructor() {\n super(ngDevMode ? 'tuiPure can only be used with functions or getters' : '');\n }\n}\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\n\n/**\n * Adds 'px' to the number and turns it into a string\n */\nexport function tuiPx(value: number): string {\n ngDevMode && console.assert(Number.isFinite(value), 'Value must be finite number');\n\n return `${value}px`;\n}\n","import {type TuiValuesOf} from '@taiga-ui/cdk/types';\n\nexport function tuiUniqBy<T extends Record<string, any>>(\n array: readonly T[],\n key: keyof T,\n): readonly T[] {\n return Array.from(\n array\n .reduce(\n (map, item) => (map.has(item[key]) ? map : map.set(item[key], item)),\n new Map<TuiValuesOf<T>, T>(),\n )\n .values(),\n );\n}\n","import {\n createComponent,\n DestroyRef,\n EnvironmentInjector,\n inject,\n InjectionToken,\n type Type,\n} from '@angular/core';\n\nconst MAP = new InjectionToken(ngDevMode ? 'MAP' : '', {\n factory: () => {\n const map = new Map();\n\n inject(DestroyRef).onDestroy(() =>\n map.forEach((component) => component.destroy()),\n );\n\n return map;\n },\n});\n\nexport function tuiWithStyles(component: Type<unknown>): undefined {\n const map = inject(MAP);\n const environmentInjector = inject(EnvironmentInjector);\n\n if (!map.has(component)) {\n map.set(component, createComponent(component, {environmentInjector}));\n }\n\n return undefined;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}