@taiga-ui/cdk 2.51.0 → 2.53.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (384) hide show
  1. package/bundles/taiga-ui-cdk-components-alert-host.umd.js +1 -1
  2. package/bundles/taiga-ui-cdk-components-alert-host.umd.js.map +1 -1
  3. package/bundles/taiga-ui-cdk-components-alert-host.umd.min.js +1 -1
  4. package/bundles/taiga-ui-cdk-components-alert-host.umd.min.js.map +1 -1
  5. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.js +5 -13
  6. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.js.map +1 -1
  7. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.min.js +1 -1
  8. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.min.js.map +1 -1
  9. package/bundles/taiga-ui-cdk-constants.umd.js +9 -0
  10. package/bundles/taiga-ui-cdk-constants.umd.js.map +1 -1
  11. package/bundles/taiga-ui-cdk-constants.umd.min.js +1 -1
  12. package/bundles/taiga-ui-cdk-constants.umd.min.js.map +1 -1
  13. package/bundles/taiga-ui-cdk-directives-hovered.umd.js +29 -14
  14. package/bundles/taiga-ui-cdk-directives-hovered.umd.js.map +1 -1
  15. package/bundles/taiga-ui-cdk-directives-hovered.umd.min.js +1 -1
  16. package/bundles/taiga-ui-cdk-directives-hovered.umd.min.js.map +1 -1
  17. package/bundles/taiga-ui-cdk-directives-media.umd.js +2 -0
  18. package/bundles/taiga-ui-cdk-directives-media.umd.js.map +1 -1
  19. package/bundles/taiga-ui-cdk-directives-media.umd.min.js.map +1 -1
  20. package/bundles/taiga-ui-cdk-observables.umd.js +56 -0
  21. package/bundles/taiga-ui-cdk-observables.umd.js.map +1 -1
  22. package/bundles/taiga-ui-cdk-observables.umd.min.js +1 -1
  23. package/bundles/taiga-ui-cdk-observables.umd.min.js.map +1 -1
  24. package/bundles/taiga-ui-cdk-services.umd.js +1 -0
  25. package/bundles/taiga-ui-cdk-services.umd.js.map +1 -1
  26. package/bundles/taiga-ui-cdk-services.umd.min.js.map +1 -1
  27. package/bundles/taiga-ui-cdk-tokens.umd.js +1 -1
  28. package/bundles/taiga-ui-cdk-tokens.umd.js.map +1 -1
  29. package/bundles/taiga-ui-cdk-tokens.umd.min.js +1 -1
  30. package/bundles/taiga-ui-cdk-tokens.umd.min.js.map +1 -1
  31. package/bundles/taiga-ui-cdk-utils-browser.umd.js +30 -0
  32. package/bundles/taiga-ui-cdk-utils-browser.umd.js.map +1 -1
  33. package/bundles/taiga-ui-cdk-utils-browser.umd.min.js +1 -1
  34. package/bundles/taiga-ui-cdk-utils-browser.umd.min.js.map +1 -1
  35. package/bundles/taiga-ui-cdk-utils-dom.umd.js +69 -2
  36. package/bundles/taiga-ui-cdk-utils-dom.umd.js.map +1 -1
  37. package/bundles/taiga-ui-cdk-utils-dom.umd.min.js +1 -1
  38. package/bundles/taiga-ui-cdk-utils-dom.umd.min.js.map +1 -1
  39. package/bundles/taiga-ui-cdk-utils-focus.umd.js +42 -1
  40. package/bundles/taiga-ui-cdk-utils-focus.umd.js.map +1 -1
  41. package/bundles/taiga-ui-cdk-utils-focus.umd.min.js +1 -1
  42. package/bundles/taiga-ui-cdk-utils-focus.umd.min.js.map +1 -1
  43. package/bundles/taiga-ui-cdk-utils-format.umd.js +6 -2
  44. package/bundles/taiga-ui-cdk-utils-format.umd.js.map +1 -1
  45. package/bundles/taiga-ui-cdk-utils-format.umd.min.js +1 -1
  46. package/bundles/taiga-ui-cdk-utils-format.umd.min.js.map +1 -1
  47. package/bundles/taiga-ui-cdk-utils-math.umd.js +48 -0
  48. package/bundles/taiga-ui-cdk-utils-math.umd.js.map +1 -1
  49. package/bundles/taiga-ui-cdk-utils-math.umd.min.js +1 -1
  50. package/bundles/taiga-ui-cdk-utils-math.umd.min.js.map +1 -1
  51. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js +64 -2
  52. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js.map +1 -1
  53. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.min.js +1 -1
  54. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.min.js.map +1 -1
  55. package/bundles/taiga-ui-cdk-utils-os.umd.js +17 -1
  56. package/bundles/taiga-ui-cdk-utils-os.umd.js.map +1 -1
  57. package/bundles/taiga-ui-cdk-utils-os.umd.min.js +1 -1
  58. package/bundles/taiga-ui-cdk-utils-os.umd.min.js.map +1 -1
  59. package/bundles/taiga-ui-cdk-utils-svg.umd.js +5 -1
  60. package/bundles/taiga-ui-cdk-utils-svg.umd.js.map +1 -1
  61. package/bundles/taiga-ui-cdk-utils-svg.umd.min.js +1 -1
  62. package/bundles/taiga-ui-cdk-utils-svg.umd.min.js.map +1 -1
  63. package/components/alert-host/taiga-ui-cdk-components-alert-host.metadata.json +1 -1
  64. package/components/dropdown-host/taiga-ui-cdk-components-dropdown-host.metadata.json +1 -1
  65. package/constants/empty.d.ts +1 -0
  66. package/constants/taiga-ui-cdk-constants.metadata.json +1 -1
  67. package/directives/hovered/hovered.directive.d.ts +5 -5
  68. package/directives/hovered/taiga-ui-cdk-directives-hovered.metadata.json +1 -1
  69. package/directives/media/taiga-ui-cdk-directives-media.metadata.json +1 -1
  70. package/esm2015/components/alert-host/alert-host.component.js +2 -2
  71. package/esm2015/components/dropdown-host/dropdown-host.component.js +3 -10
  72. package/esm2015/constants/empty.js +9 -1
  73. package/esm2015/directives/hovered/hovered.directive.js +28 -13
  74. package/esm2015/directives/media/media.directive.js +3 -1
  75. package/esm2015/observables/drag-and-drop-from.js +6 -1
  76. package/esm2015/observables/focus-visible-observable.js +6 -1
  77. package/esm2015/observables/items-query-list-observable.js +4 -1
  78. package/esm2015/observables/mouse-drag-finish-from.js +4 -1
  79. package/esm2015/observables/must-be-present.js +6 -1
  80. package/esm2015/observables/pressed-observable.js +6 -1
  81. package/esm2015/observables/prevent-default.js +6 -1
  82. package/esm2015/observables/stop-propagation.js +6 -1
  83. package/esm2015/observables/typed-from-event.js +6 -1
  84. package/esm2015/observables/watch.js +6 -1
  85. package/esm2015/services/hovered.service.js +2 -1
  86. package/esm2015/tokens/is-firefox.js +2 -2
  87. package/esm2015/utils/browser/is-edge-older-than.js +6 -1
  88. package/esm2015/utils/browser/is-edge.js +6 -1
  89. package/esm2015/utils/browser/is-firefox.js +6 -1
  90. package/esm2015/utils/browser/is-ie.js +6 -1
  91. package/esm2015/utils/browser/is-safari.js +6 -1
  92. package/esm2015/utils/dom/can-scroll.js +6 -1
  93. package/esm2015/utils/dom/contains-or-after.js +6 -1
  94. package/esm2015/utils/dom/get-actual-target.js +4 -1
  95. package/esm2015/utils/dom/get-clipboard-data-text.js +4 -1
  96. package/esm2015/utils/dom/get-closest-element.js +3 -2
  97. package/esm2015/utils/dom/get-document-or-shadow-root.js +6 -1
  98. package/esm2015/utils/dom/get-element-obscurers.js +4 -1
  99. package/esm2015/utils/dom/get-element-offset.js +4 -1
  100. package/esm2015/utils/dom/get-scroll-parent.js +5 -2
  101. package/esm2015/utils/dom/index.js +2 -1
  102. package/esm2015/utils/dom/is-current-target.js +6 -1
  103. package/esm2015/utils/dom/is-inside-iframe.js +4 -1
  104. package/esm2015/utils/dom/is-node-in.js +4 -1
  105. package/esm2015/utils/dom/point-to-client-rect.js +11 -0
  106. package/esm2015/utils/focus/blur-native-focused.js +4 -1
  107. package/esm2015/utils/focus/get-closest-keyboard-focusable.js +7 -2
  108. package/esm2015/utils/focus/get-native-focused.js +4 -1
  109. package/esm2015/utils/focus/is-native-focused-in.js +4 -1
  110. package/esm2015/utils/focus/is-native-focused.js +4 -1
  111. package/esm2015/utils/focus/is-native-keyboard-focusable.js +4 -1
  112. package/esm2015/utils/focus/is-native-mouse-focusable.js +6 -1
  113. package/esm2015/utils/focus/move-focus.js +4 -1
  114. package/esm2015/utils/focus/set-native-focused.js +2 -1
  115. package/esm2015/utils/focus/set-native-mouse-focused.js +4 -1
  116. package/esm2015/utils/format/pad-start.js +3 -3
  117. package/esm2015/utils/format/px.js +4 -1
  118. package/esm2015/utils/math/clamp.js +4 -1
  119. package/esm2015/utils/math/in-range.js +4 -1
  120. package/esm2015/utils/math/normalize-to-int-number.js +4 -1
  121. package/esm2015/utils/math/quantize.js +4 -1
  122. package/esm2015/utils/math/round.js +16 -1
  123. package/esm2015/utils/math/sum.js +4 -1
  124. package/esm2015/utils/math/to-int.js +6 -1
  125. package/esm2015/utils/math/to-radians.js +4 -1
  126. package/esm2015/utils/miscellaneous/distance-between-touches.js +6 -1
  127. package/esm2015/utils/miscellaneous/ease-in-out-quad.js +6 -1
  128. package/esm2015/utils/miscellaneous/fallback-value.js +3 -2
  129. package/esm2015/utils/miscellaneous/flat-length.js +5 -2
  130. package/esm2015/utils/miscellaneous/get-original-array-from-query-list.js +4 -1
  131. package/esm2015/utils/miscellaneous/get-swipe-direction.js +6 -1
  132. package/esm2015/utils/miscellaneous/identity.js +2 -1
  133. package/esm2015/utils/miscellaneous/is-element-editable.js +6 -1
  134. package/esm2015/utils/miscellaneous/is-number.js +6 -1
  135. package/esm2015/utils/miscellaneous/is-present.js +6 -1
  136. package/esm2015/utils/miscellaneous/mark-control-as-touched-and-validate.js +6 -1
  137. package/esm2015/utils/miscellaneous/nullable-same.js +4 -1
  138. package/esm2015/utils/miscellaneous/uniq-by.js +6 -1
  139. package/esm2015/utils/os/is-apple-platform.js +5 -2
  140. package/esm2015/utils/os/is-apple.js +6 -1
  141. package/esm2015/utils/os/is-ios.js +6 -1
  142. package/esm2015/utils/svg/svg-linear-gradient-processor.js +5 -2
  143. package/esm5/components/alert-host/alert-host.component.js +2 -2
  144. package/esm5/components/dropdown-host/dropdown-host.component.js +3 -10
  145. package/esm5/constants/empty.js +9 -1
  146. package/esm5/directives/hovered/hovered.directive.js +29 -14
  147. package/esm5/directives/media/media.directive.js +3 -1
  148. package/esm5/observables/drag-and-drop-from.js +6 -1
  149. package/esm5/observables/focus-visible-observable.js +6 -1
  150. package/esm5/observables/items-query-list-observable.js +4 -1
  151. package/esm5/observables/mouse-drag-finish-from.js +4 -1
  152. package/esm5/observables/must-be-present.js +6 -1
  153. package/esm5/observables/pressed-observable.js +6 -1
  154. package/esm5/observables/prevent-default.js +6 -1
  155. package/esm5/observables/stop-propagation.js +6 -1
  156. package/esm5/observables/typed-from-event.js +6 -1
  157. package/esm5/observables/watch.js +6 -1
  158. package/esm5/services/hovered.service.js +2 -1
  159. package/esm5/tokens/is-firefox.js +2 -2
  160. package/esm5/utils/browser/is-edge-older-than.js +6 -1
  161. package/esm5/utils/browser/is-edge.js +6 -1
  162. package/esm5/utils/browser/is-firefox.js +6 -1
  163. package/esm5/utils/browser/is-ie.js +6 -1
  164. package/esm5/utils/browser/is-safari.js +6 -1
  165. package/esm5/utils/dom/can-scroll.js +6 -1
  166. package/esm5/utils/dom/contains-or-after.js +6 -1
  167. package/esm5/utils/dom/get-actual-target.js +4 -1
  168. package/esm5/utils/dom/get-clipboard-data-text.js +4 -1
  169. package/esm5/utils/dom/get-closest-element.js +3 -2
  170. package/esm5/utils/dom/get-document-or-shadow-root.js +6 -1
  171. package/esm5/utils/dom/get-element-obscurers.js +4 -1
  172. package/esm5/utils/dom/get-element-offset.js +4 -1
  173. package/esm5/utils/dom/get-scroll-parent.js +5 -2
  174. package/esm5/utils/dom/index.js +2 -1
  175. package/esm5/utils/dom/is-current-target.js +6 -1
  176. package/esm5/utils/dom/is-inside-iframe.js +4 -1
  177. package/esm5/utils/dom/is-node-in.js +4 -1
  178. package/esm5/utils/dom/point-to-client-rect.js +13 -0
  179. package/esm5/utils/focus/blur-native-focused.js +4 -1
  180. package/esm5/utils/focus/get-closest-keyboard-focusable.js +7 -2
  181. package/esm5/utils/focus/get-native-focused.js +4 -1
  182. package/esm5/utils/focus/is-native-focused-in.js +4 -1
  183. package/esm5/utils/focus/is-native-focused.js +4 -1
  184. package/esm5/utils/focus/is-native-keyboard-focusable.js +4 -1
  185. package/esm5/utils/focus/is-native-mouse-focusable.js +6 -1
  186. package/esm5/utils/focus/move-focus.js +4 -1
  187. package/esm5/utils/focus/set-native-focused.js +2 -1
  188. package/esm5/utils/focus/set-native-mouse-focused.js +4 -1
  189. package/esm5/utils/format/pad-start.js +3 -3
  190. package/esm5/utils/format/px.js +4 -1
  191. package/esm5/utils/math/clamp.js +4 -1
  192. package/esm5/utils/math/in-range.js +4 -1
  193. package/esm5/utils/math/normalize-to-int-number.js +4 -1
  194. package/esm5/utils/math/quantize.js +4 -1
  195. package/esm5/utils/math/round.js +16 -1
  196. package/esm5/utils/math/sum.js +4 -1
  197. package/esm5/utils/math/to-int.js +6 -1
  198. package/esm5/utils/math/to-radians.js +4 -1
  199. package/esm5/utils/miscellaneous/distance-between-touches.js +6 -1
  200. package/esm5/utils/miscellaneous/ease-in-out-quad.js +6 -1
  201. package/esm5/utils/miscellaneous/fallback-value.js +3 -2
  202. package/esm5/utils/miscellaneous/flat-length.js +5 -2
  203. package/esm5/utils/miscellaneous/get-original-array-from-query-list.js +4 -1
  204. package/esm5/utils/miscellaneous/get-swipe-direction.js +6 -1
  205. package/esm5/utils/miscellaneous/identity.js +2 -1
  206. package/esm5/utils/miscellaneous/is-element-editable.js +6 -1
  207. package/esm5/utils/miscellaneous/is-number.js +6 -1
  208. package/esm5/utils/miscellaneous/is-present.js +6 -1
  209. package/esm5/utils/miscellaneous/mark-control-as-touched-and-validate.js +6 -1
  210. package/esm5/utils/miscellaneous/nullable-same.js +4 -1
  211. package/esm5/utils/miscellaneous/uniq-by.js +6 -1
  212. package/esm5/utils/os/is-apple-platform.js +5 -2
  213. package/esm5/utils/os/is-apple.js +6 -1
  214. package/esm5/utils/os/is-ios.js +6 -1
  215. package/esm5/utils/svg/svg-linear-gradient-processor.js +5 -2
  216. package/fesm2015/taiga-ui-cdk-components-alert-host.js +1 -1
  217. package/fesm2015/taiga-ui-cdk-components-alert-host.js.map +1 -1
  218. package/fesm2015/taiga-ui-cdk-components-dropdown-host.js +2 -9
  219. package/fesm2015/taiga-ui-cdk-components-dropdown-host.js.map +1 -1
  220. package/fesm2015/taiga-ui-cdk-constants.js +9 -1
  221. package/fesm2015/taiga-ui-cdk-constants.js.map +1 -1
  222. package/fesm2015/taiga-ui-cdk-directives-hovered.js +28 -13
  223. package/fesm2015/taiga-ui-cdk-directives-hovered.js.map +1 -1
  224. package/fesm2015/taiga-ui-cdk-directives-media.js +2 -0
  225. package/fesm2015/taiga-ui-cdk-directives-media.js.map +1 -1
  226. package/fesm2015/taiga-ui-cdk-observables.js +47 -1
  227. package/fesm2015/taiga-ui-cdk-observables.js.map +1 -1
  228. package/fesm2015/taiga-ui-cdk-services.js +1 -0
  229. package/fesm2015/taiga-ui-cdk-services.js.map +1 -1
  230. package/fesm2015/taiga-ui-cdk-tokens.js +1 -1
  231. package/fesm2015/taiga-ui-cdk-tokens.js.map +1 -1
  232. package/fesm2015/taiga-ui-cdk-utils-browser.js +26 -1
  233. package/fesm2015/taiga-ui-cdk-utils-browser.js.map +1 -1
  234. package/fesm2015/taiga-ui-cdk-utils-dom.js +56 -3
  235. package/fesm2015/taiga-ui-cdk-utils-dom.js.map +1 -1
  236. package/fesm2015/taiga-ui-cdk-utils-focus.js +34 -2
  237. package/fesm2015/taiga-ui-cdk-utils-focus.js.map +1 -1
  238. package/fesm2015/taiga-ui-cdk-utils-format.js +6 -3
  239. package/fesm2015/taiga-ui-cdk-utils-format.js.map +1 -1
  240. package/fesm2015/taiga-ui-cdk-utils-math.js +39 -1
  241. package/fesm2015/taiga-ui-cdk-utils-math.js.map +1 -1
  242. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js +54 -3
  243. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
  244. package/fesm2015/taiga-ui-cdk-utils-os.js +15 -2
  245. package/fesm2015/taiga-ui-cdk-utils-os.js.map +1 -1
  246. package/fesm2015/taiga-ui-cdk-utils-svg.js +5 -2
  247. package/fesm2015/taiga-ui-cdk-utils-svg.js.map +1 -1
  248. package/fesm5/taiga-ui-cdk-components-alert-host.js +1 -1
  249. package/fesm5/taiga-ui-cdk-components-alert-host.js.map +1 -1
  250. package/fesm5/taiga-ui-cdk-components-dropdown-host.js +2 -9
  251. package/fesm5/taiga-ui-cdk-components-dropdown-host.js.map +1 -1
  252. package/fesm5/taiga-ui-cdk-constants.js +9 -1
  253. package/fesm5/taiga-ui-cdk-constants.js.map +1 -1
  254. package/fesm5/taiga-ui-cdk-directives-hovered.js +29 -14
  255. package/fesm5/taiga-ui-cdk-directives-hovered.js.map +1 -1
  256. package/fesm5/taiga-ui-cdk-directives-media.js +2 -0
  257. package/fesm5/taiga-ui-cdk-directives-media.js.map +1 -1
  258. package/fesm5/taiga-ui-cdk-observables.js +47 -1
  259. package/fesm5/taiga-ui-cdk-observables.js.map +1 -1
  260. package/fesm5/taiga-ui-cdk-services.js +1 -0
  261. package/fesm5/taiga-ui-cdk-services.js.map +1 -1
  262. package/fesm5/taiga-ui-cdk-tokens.js +1 -1
  263. package/fesm5/taiga-ui-cdk-tokens.js.map +1 -1
  264. package/fesm5/taiga-ui-cdk-utils-browser.js +26 -1
  265. package/fesm5/taiga-ui-cdk-utils-browser.js.map +1 -1
  266. package/fesm5/taiga-ui-cdk-utils-dom.js +58 -3
  267. package/fesm5/taiga-ui-cdk-utils-dom.js.map +1 -1
  268. package/fesm5/taiga-ui-cdk-utils-focus.js +34 -2
  269. package/fesm5/taiga-ui-cdk-utils-focus.js.map +1 -1
  270. package/fesm5/taiga-ui-cdk-utils-format.js +6 -3
  271. package/fesm5/taiga-ui-cdk-utils-format.js.map +1 -1
  272. package/fesm5/taiga-ui-cdk-utils-math.js +39 -1
  273. package/fesm5/taiga-ui-cdk-utils-math.js.map +1 -1
  274. package/fesm5/taiga-ui-cdk-utils-miscellaneous.js +54 -3
  275. package/fesm5/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
  276. package/fesm5/taiga-ui-cdk-utils-os.js +15 -2
  277. package/fesm5/taiga-ui-cdk-utils-os.js.map +1 -1
  278. package/fesm5/taiga-ui-cdk-utils-svg.js +5 -2
  279. package/fesm5/taiga-ui-cdk-utils-svg.js.map +1 -1
  280. package/observables/drag-and-drop-from.d.ts +4 -0
  281. package/observables/focus-visible-observable.d.ts +4 -0
  282. package/observables/items-query-list-observable.d.ts +2 -0
  283. package/observables/mouse-drag-finish-from.d.ts +2 -0
  284. package/observables/must-be-present.d.ts +4 -0
  285. package/observables/pressed-observable.d.ts +4 -0
  286. package/observables/prevent-default.d.ts +4 -0
  287. package/observables/stop-propagation.d.ts +4 -0
  288. package/observables/taiga-ui-cdk-observables.metadata.json +1 -1
  289. package/observables/typed-from-event.d.ts +16 -0
  290. package/observables/watch.d.ts +4 -0
  291. package/package.json +1 -1
  292. package/schematics/ng-update/constants/deprecated-functions.d.ts +2 -0
  293. package/schematics/ng-update/constants/deprecated-functions.js +714 -0
  294. package/schematics/ng-update/constants/templates.d.ts +8 -0
  295. package/schematics/ng-update/constants/templates.js +76 -0
  296. package/schematics/ng-update/constants/types.d.ts +1 -2
  297. package/schematics/ng-update/index.js +38 -5
  298. package/schematics/ng-update/steps/migrate-date-time.d.ts +1 -0
  299. package/schematics/ng-update/steps/migrate-date-time.js +152 -0
  300. package/schematics/ng-update/steps/migrate-progress.d.ts +2 -2
  301. package/schematics/ng-update/steps/migrate-progress.js +1 -3
  302. package/schematics/ng-update/steps/migrate-sliders/index.d.ts +2 -2
  303. package/schematics/ng-update/steps/migrate-sliders/index.js +3 -3
  304. package/schematics/ng-update/steps/migrate-sliders/migrate-input-range.d.ts +2 -2
  305. package/schematics/ng-update/steps/migrate-sliders/migrate-input-range.js +1 -3
  306. package/schematics/ng-update/steps/migrate-sliders/migrate-input-slider.d.ts +2 -2
  307. package/schematics/ng-update/steps/migrate-sliders/migrate-input-slider.js +1 -3
  308. package/schematics/ng-update/steps/migrate-templates.d.ts +2 -2
  309. package/schematics/ng-update/steps/migrate-templates.js +63 -24
  310. package/schematics/ng-update/steps/miscellaneous.js +2 -6
  311. package/schematics/ng-update/steps/replace-functions.js +12 -0
  312. package/schematics/ng-update/steps/replace-services.js +5 -1
  313. package/schematics/utils/colored-log.d.ts +2 -0
  314. package/schematics/utils/colored-log.js +10 -0
  315. package/schematics/utils/insert-todo.d.ts +2 -0
  316. package/schematics/utils/insert-todo.js +8 -0
  317. package/schematics/utils/templates/elements.d.ts +1 -0
  318. package/schematics/utils/templates/elements.js +7 -18
  319. package/schematics/utils/templates/ng-component-input-manipulations.d.ts +2 -1
  320. package/schematics/utils/templates/ng-component-input-manipulations.js +2 -1
  321. package/services/hovered.service.d.ts +1 -0
  322. package/services/taiga-ui-cdk-services.metadata.json +1 -1
  323. package/utils/browser/is-edge-older-than.d.ts +4 -0
  324. package/utils/browser/is-edge.d.ts +4 -0
  325. package/utils/browser/is-firefox.d.ts +4 -0
  326. package/utils/browser/is-ie.d.ts +4 -0
  327. package/utils/browser/is-safari.d.ts +4 -0
  328. package/utils/browser/taiga-ui-cdk-utils-browser.metadata.json +1 -1
  329. package/utils/dom/can-scroll.d.ts +4 -0
  330. package/utils/dom/contains-or-after.d.ts +4 -0
  331. package/utils/dom/get-actual-target.d.ts +2 -0
  332. package/utils/dom/get-clipboard-data-text.d.ts +2 -0
  333. package/utils/dom/get-closest-element.d.ts +1 -1
  334. package/utils/dom/get-document-or-shadow-root.d.ts +4 -0
  335. package/utils/dom/get-element-obscurers.d.ts +2 -0
  336. package/utils/dom/get-element-offset.d.ts +2 -0
  337. package/utils/dom/get-scroll-parent.d.ts +3 -1
  338. package/utils/dom/index.d.ts +1 -0
  339. package/utils/dom/is-current-target.d.ts +4 -0
  340. package/utils/dom/is-inside-iframe.d.ts +2 -0
  341. package/utils/dom/is-node-in.d.ts +2 -0
  342. package/utils/dom/point-to-client-rect.d.ts +1 -0
  343. package/utils/dom/taiga-ui-cdk-utils-dom.metadata.json +1 -1
  344. package/utils/focus/blur-native-focused.d.ts +2 -0
  345. package/utils/focus/get-closest-keyboard-focusable.d.ts +5 -1
  346. package/utils/focus/get-native-focused.d.ts +2 -0
  347. package/utils/focus/is-native-focused-in.d.ts +2 -0
  348. package/utils/focus/is-native-focused.d.ts +2 -0
  349. package/utils/focus/is-native-keyboard-focusable.d.ts +2 -0
  350. package/utils/focus/is-native-mouse-focusable.d.ts +4 -0
  351. package/utils/focus/move-focus.d.ts +2 -0
  352. package/utils/focus/set-native-mouse-focused.d.ts +2 -0
  353. package/utils/focus/taiga-ui-cdk-utils-focus.metadata.json +1 -1
  354. package/utils/format/pad-start.d.ts +1 -2
  355. package/utils/format/px.d.ts +2 -0
  356. package/utils/format/taiga-ui-cdk-utils-format.metadata.json +1 -1
  357. package/utils/math/clamp.d.ts +2 -0
  358. package/utils/math/in-range.d.ts +2 -0
  359. package/utils/math/normalize-to-int-number.d.ts +2 -0
  360. package/utils/math/quantize.d.ts +2 -0
  361. package/utils/math/round.d.ts +12 -0
  362. package/utils/math/sum.d.ts +2 -0
  363. package/utils/math/taiga-ui-cdk-utils-math.metadata.json +1 -1
  364. package/utils/math/to-int.d.ts +4 -0
  365. package/utils/math/to-radians.d.ts +2 -0
  366. package/utils/miscellaneous/distance-between-touches.d.ts +4 -0
  367. package/utils/miscellaneous/ease-in-out-quad.d.ts +4 -0
  368. package/utils/miscellaneous/fallback-value.d.ts +1 -1
  369. package/utils/miscellaneous/flat-length.d.ts +3 -1
  370. package/utils/miscellaneous/get-original-array-from-query-list.d.ts +2 -0
  371. package/utils/miscellaneous/get-swipe-direction.d.ts +4 -0
  372. package/utils/miscellaneous/is-element-editable.d.ts +4 -0
  373. package/utils/miscellaneous/is-number.d.ts +4 -0
  374. package/utils/miscellaneous/is-present.d.ts +4 -0
  375. package/utils/miscellaneous/mark-control-as-touched-and-validate.d.ts +4 -0
  376. package/utils/miscellaneous/nullable-same.d.ts +2 -0
  377. package/utils/miscellaneous/taiga-ui-cdk-utils-miscellaneous.metadata.json +1 -1
  378. package/utils/miscellaneous/uniq-by.d.ts +4 -0
  379. package/utils/os/is-apple-platform.d.ts +3 -1
  380. package/utils/os/is-apple.d.ts +4 -0
  381. package/utils/os/is-ios.d.ts +4 -0
  382. package/utils/os/taiga-ui-cdk-utils-os.metadata.json +1 -1
  383. package/utils/svg/svg-linear-gradient-processor.d.ts +3 -1
  384. package/utils/svg/taiga-ui-cdk-utils-svg.metadata.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-dom.js","sources":["ng://@taiga-ui/cdk/utils/dom/can-scroll.ts","ng://@taiga-ui/cdk/utils/dom/contains-or-after.ts","ng://@taiga-ui/cdk/utils/dom/custom-event.ts","ng://@taiga-ui/cdk/utils/dom/get-actual-target.ts","ng://@taiga-ui/cdk/utils/dom/get-clipboard-data-text.ts","ng://@taiga-ui/cdk/utils/dom/get-closest-element.ts","ng://@taiga-ui/cdk/utils/dom/get-document-or-shadow-root.ts","ng://@taiga-ui/cdk/utils/dom/get-element-obscurers.ts","ng://@taiga-ui/cdk/utils/dom/get-element-offset.ts","ng://@taiga-ui/cdk/utils/dom/get-scroll-parent.ts","ng://@taiga-ui/cdk/utils/dom/is-form-field.ts","ng://@taiga-ui/cdk/utils/dom/get-selected-text.ts","ng://@taiga-ui/cdk/utils/dom/is-current-target.ts","ng://@taiga-ui/cdk/utils/dom/is-inside-iframe.ts","ng://@taiga-ui/cdk/utils/dom/is-node-in.ts","ng://@taiga-ui/cdk/utils/dom/taiga-ui-cdk-utils-dom.ts"],"sourcesContent":["export function canScroll(\n element: Element,\n rootElement: Element,\n vertical: boolean,\n scrollEnd: boolean,\n): boolean {\n return vertical\n ? canScrollVertical(element, rootElement, scrollEnd)\n : canScrollHorizontal(element, rootElement, scrollEnd);\n}\n\nfunction canScrollVertical(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollTop) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollTop + currentElement.clientHeight) <\n currentElement.scrollHeight &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n\nfunction canScrollHorizontal(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollLeft) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollLeft + currentElement.clientWidth) <\n currentElement.scrollWidth &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n","export function containsOrAfter(current: Node, node: Node): boolean {\n return (\n current.contains(node) ||\n !!(node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING)\n );\n}\n","/** @deprecated only needed for IE, remove in 3.0 */\nexport function tuiCustomEvent<T = null>(\n name: string,\n {bubbles = false, cancelable = false, detail = null}: CustomEventInit<T | null> = {},\n documentRef: Document,\n): CustomEvent {\n if (typeof CustomEvent === 'function') {\n return new CustomEvent(name, {bubbles, cancelable, detail});\n }\n\n const customEvent = documentRef.createEvent('CustomEvent');\n\n customEvent.initCustomEvent(name, bubbles, cancelable, detail);\n\n return customEvent;\n}\n","/**\n * Gets actual target from open Shadow DOM if event happened within it\n */\nexport function getActualTarget(event: Event): Node {\n if ('composedPath' in event) {\n return (event as any).composedPath()[0];\n }\n\n return (event as any).target;\n}\n","const DEFAULT_FORMAT = 'text/plain';\n\n/**\n * Gets text from data of clipboardEvent, it also works in IE and Edge browsers\n */\nexport function getClipboardDataText(\n event: ClipboardEvent,\n format: string = DEFAULT_FORMAT,\n): string {\n return 'clipboardData' in event && event.clipboardData !== null\n ? event.clipboardData.getData(format) ||\n event.clipboardData.getData(DEFAULT_FORMAT)\n : (event as any).target.ownerDocument.defaultView.clipboardData.getData('text');\n}\n","/**\n * Gets closest element by selector i.e. {@link Element.closest}\n * @deprecated only needed for IE, remove in 3.0\n */\nexport function getClosestElement(element: Element, selector: string): Element | null {\n const closest = Element.prototype.closest;\n\n if (closest) {\n return closest.call(element, selector);\n }\n\n const matchesSelector =\n Element.prototype.matches || (Element.prototype as any).msMatchesSelector;\n\n do {\n if (matchesSelector.call(element, selector)) {\n return element;\n }\n\n (element as Element | null) = element.parentElement;\n } while (element !== null);\n\n return null;\n}\n","export function getDocumentOrShadowRoot(node: Node): DocumentOrShadowRoot {\n return 'getRootNode' in node && node.isConnected\n ? (node.getRootNode() as Document)\n : node.ownerDocument!;\n}\n","import {clamp} from '@taiga-ui/cdk/utils/math';\nimport {isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {getDocumentOrShadowRoot} from './get-document-or-shadow-root';\n\n/**\n * Returns array of Elements covering edges of given element or null if at least one edge middle point is visible\n *\n * CAUTION: Empty array means element if offscreen i.e. covered by no elements, rather than not covered\n */\nexport function getElementObscurers(element: Element): readonly Element[] | null {\n const {ownerDocument} = element;\n\n if (!ownerDocument || !ownerDocument.defaultView) {\n return null;\n }\n\n const {innerWidth, innerHeight} = ownerDocument.defaultView;\n const documentRef = getDocumentOrShadowRoot(element);\n const rect = element.getBoundingClientRect();\n const left = clamp(Math.round(rect.left) + 2, 0, innerWidth);\n const top = clamp(Math.round(rect.top) + 2, 0, innerHeight);\n const right = clamp(Math.round(rect.right) - 2, 0, innerWidth);\n const bottom = clamp(Math.round(rect.bottom) - 2, 0, innerHeight);\n const horizontalMiddle = clamp(Math.round(rect.left + rect.width / 2), 0, innerWidth);\n const verticalMiddle = clamp(Math.round(rect.top + rect.height / 2), 0, innerHeight);\n const elements = [\n documentRef.elementFromPoint(horizontalMiddle, top),\n documentRef.elementFromPoint(horizontalMiddle, bottom),\n documentRef.elementFromPoint(left, verticalMiddle),\n documentRef.elementFromPoint(right, verticalMiddle),\n ];\n const nonNull = elements.filter(isPresent);\n\n if (!nonNull.length) {\n return nonNull;\n }\n\n const filtered = nonNull.filter(el => !element.contains(el));\n\n return filtered.length === 4 ? filtered : null;\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * Calculates offset for an element relative to it's parent several levels above\n *\n * @param host parent element\n * @param element\n * @return object with offsetTop and offsetLeft number properties\n */\nexport function getElementOffset(\n host: Element,\n element: HTMLElement,\n): {offsetTop: number; offsetLeft: number} {\n tuiAssert.assert(host.contains(element), 'Host must contain element');\n\n let {offsetTop, offsetLeft, offsetParent} = element;\n\n // TODO: iframe warning\n while (offsetParent && offsetParent instanceof HTMLElement && offsetParent !== host) {\n offsetTop += offsetParent.offsetTop;\n offsetLeft += offsetParent.offsetLeft;\n offsetParent = offsetParent.offsetParent;\n }\n\n return {offsetTop, offsetLeft};\n}\n","/**\n * Finds nearest parent with scroll in it\n *\n * @param element initial element\n * @param vertical flag for orientation of scroll\n */\nexport function getScrollParent(\n element: Element | null,\n vertical: boolean = true,\n): Element | null {\n if (element === null) {\n return null;\n }\n\n if (vertical && element.scrollHeight > element.clientHeight) {\n return element;\n }\n\n if (!vertical && element.scrollWidth > element.clientWidth) {\n return element;\n }\n\n return getScrollParent(element.parentElement, vertical);\n}\n","export function tuiIsFormFieldElement(\n element: unknown | null,\n): element is HTMLInputElement | HTMLTextAreaElement {\n const textfield = element as Record<string, unknown> | null;\n\n return (\n !!textfield &&\n 'value' in textfield &&\n 'selectionStart' in textfield &&\n 'selectionEnd' in textfield\n );\n}\n","import {tuiIsFormFieldElement} from './is-form-field';\n\n/**\n * @description:\n * cross browser way to get selected text\n *\n * History:\n * BUG - window.getSelection() fails when text selected in a form field\n * https://bugzilla.mozilla.org/show_bug.cgi?id=85686\n */\nexport function tuiGetSelectedText({getSelection, document}: Window): string | null {\n return tuiIsFormFieldElement(document.activeElement)\n ? document.activeElement.value.slice(\n document.activeElement.selectionStart || 0,\n document.activeElement.selectionEnd || 0,\n )\n : getSelection()?.toString() || null;\n}\n","export function isCurrentTarget({target, currentTarget}: Event): boolean {\n return target === currentTarget;\n}\n","/**\n * Checks if an app is running inside <iframe /> tag\n */\nexport function isInsideIframe(windowRef: Window): boolean {\n return windowRef.parent !== windowRef;\n}\n","import {getClosestElement} from './get-closest-element';\n\n/**\n * Checks if node is inside a specific selector\n *\n * @param node\n * @param selector\n * @return true if node is inside a particular selector\n */\nexport function isNodeIn(node: Node, selector: string): boolean {\n return node.nodeType === Node.TEXT_NODE\n ? !!node.parentElement && !!getClosestElement(node.parentElement, selector)\n : node.nodeType === Node.ELEMENT_NODE &&\n !!getClosestElement(node as Element, selector);\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-dom.js","sources":["ng://@taiga-ui/cdk/utils/dom/can-scroll.ts","ng://@taiga-ui/cdk/utils/dom/contains-or-after.ts","ng://@taiga-ui/cdk/utils/dom/custom-event.ts","ng://@taiga-ui/cdk/utils/dom/get-actual-target.ts","ng://@taiga-ui/cdk/utils/dom/get-clipboard-data-text.ts","ng://@taiga-ui/cdk/utils/dom/get-closest-element.ts","ng://@taiga-ui/cdk/utils/dom/get-document-or-shadow-root.ts","ng://@taiga-ui/cdk/utils/dom/get-element-obscurers.ts","ng://@taiga-ui/cdk/utils/dom/get-element-offset.ts","ng://@taiga-ui/cdk/utils/dom/get-scroll-parent.ts","ng://@taiga-ui/cdk/utils/dom/is-form-field.ts","ng://@taiga-ui/cdk/utils/dom/get-selected-text.ts","ng://@taiga-ui/cdk/utils/dom/is-current-target.ts","ng://@taiga-ui/cdk/utils/dom/is-inside-iframe.ts","ng://@taiga-ui/cdk/utils/dom/is-node-in.ts","ng://@taiga-ui/cdk/utils/dom/point-to-client-rect.ts","ng://@taiga-ui/cdk/utils/dom/taiga-ui-cdk-utils-dom.ts"],"sourcesContent":["/**\n * @deprecated: use {@link tuiCanScroll} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function canScroll(\n element: Element,\n rootElement: Element,\n vertical: boolean,\n scrollEnd: boolean,\n): boolean {\n return vertical\n ? canScrollVertical(element, rootElement, scrollEnd)\n : canScrollHorizontal(element, rootElement, scrollEnd);\n}\n\nexport const tuiCanScroll = canScroll;\n\nfunction canScrollVertical(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollTop) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollTop + currentElement.clientHeight) <\n currentElement.scrollHeight &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n\nfunction canScrollHorizontal(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollLeft) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollLeft + currentElement.clientWidth) <\n currentElement.scrollWidth &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n","/**\n * @deprecated: use {@link tuiContainsOrAfter} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function containsOrAfter(current: Node, node: Node): boolean {\n return (\n current.contains(node) ||\n !!(node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING)\n );\n}\n\nexport const tuiContainsOrAfter = containsOrAfter;\n","/** @deprecated only needed for IE, remove in 3.0 */\nexport function tuiCustomEvent<T = null>(\n name: string,\n {bubbles = false, cancelable = false, detail = null}: CustomEventInit<T | null> = {},\n documentRef: Document,\n): CustomEvent {\n if (typeof CustomEvent === 'function') {\n return new CustomEvent(name, {bubbles, cancelable, detail});\n }\n\n const customEvent = documentRef.createEvent('CustomEvent');\n\n customEvent.initCustomEvent(name, bubbles, cancelable, detail);\n\n return customEvent;\n}\n","/**\n * @deprecated: use {@link tuiGetActualTarget} instead\n * Gets actual target from open Shadow DOM if event happened within it\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getActualTarget(event: Event): Node {\n if ('composedPath' in event) {\n return (event as any).composedPath()[0];\n }\n\n return (event as any).target;\n}\n\nexport const tuiGetActualTarget = getActualTarget;\n","const DEFAULT_FORMAT = 'text/plain';\n\n/**\n * @deprecated: use {@link tuiGetClipboardDataText} instead\n * Gets text from data of clipboardEvent, it also works in IE and Edge browsers\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getClipboardDataText(\n event: ClipboardEvent,\n format: string = DEFAULT_FORMAT,\n): string {\n return 'clipboardData' in event && event.clipboardData !== null\n ? event.clipboardData.getData(format) ||\n event.clipboardData.getData(DEFAULT_FORMAT)\n : (event as any).target.ownerDocument.defaultView.clipboardData.getData('text');\n}\n\nexport const tuiGetClipboardDataText = getClipboardDataText;\n","/**\n * @deprecated only needed for IE, remove in 3.0\n * Gets the closest element by selector i.e. {@link Element.closest}\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getClosestElement(element: Element, selector: string): Element | null {\n const closest = Element.prototype.closest;\n\n if (closest) {\n return closest.call(element, selector);\n }\n\n const matchesSelector =\n Element.prototype.matches || (Element.prototype as any).msMatchesSelector;\n\n do {\n if (matchesSelector.call(element, selector)) {\n return element;\n }\n\n (element as Element | null) = element.parentElement;\n } while (element !== null);\n\n return null;\n}\n","/**\n * @deprecated: use {@link tuiGetDocumentOrShadowRoot} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getDocumentOrShadowRoot(node: Node): DocumentOrShadowRoot {\n return 'getRootNode' in node && node.isConnected\n ? (node.getRootNode() as Document)\n : node.ownerDocument!;\n}\n\nexport const tuiGetDocumentOrShadowRoot = getDocumentOrShadowRoot;\n","import {clamp} from '@taiga-ui/cdk/utils/math';\nimport {isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {getDocumentOrShadowRoot} from './get-document-or-shadow-root';\n\n/**\n * @deprecated: use {@link tuiGetElementObscures} instead\n * Returns array of Elements covering edges of given element or null if at least one edge middle point is visible\n *\n * CAUTION: Empty array means element if offscreen i.e. covered by no elements, rather than not covered\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getElementObscurers(element: Element): readonly Element[] | null {\n const {ownerDocument} = element;\n\n if (!ownerDocument || !ownerDocument.defaultView) {\n return null;\n }\n\n const {innerWidth, innerHeight} = ownerDocument.defaultView;\n const documentRef = getDocumentOrShadowRoot(element);\n const rect = element.getBoundingClientRect();\n const left = clamp(Math.round(rect.left) + 2, 0, innerWidth);\n const top = clamp(Math.round(rect.top) + 2, 0, innerHeight);\n const right = clamp(Math.round(rect.right) - 2, 0, innerWidth);\n const bottom = clamp(Math.round(rect.bottom) - 2, 0, innerHeight);\n const horizontalMiddle = clamp(Math.round(rect.left + rect.width / 2), 0, innerWidth);\n const verticalMiddle = clamp(Math.round(rect.top + rect.height / 2), 0, innerHeight);\n const elements = [\n documentRef.elementFromPoint(horizontalMiddle, top),\n documentRef.elementFromPoint(horizontalMiddle, bottom),\n documentRef.elementFromPoint(left, verticalMiddle),\n documentRef.elementFromPoint(right, verticalMiddle),\n ];\n const nonNull = elements.filter(isPresent);\n\n if (!nonNull.length) {\n return nonNull;\n }\n\n const filtered = nonNull.filter(el => !element.contains(el));\n\n return filtered.length === 4 ? filtered : null;\n}\n\nexport const tuiGetElementObscures = getElementObscurers;\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * @deprecated: use {@link tuiGetElementOffset} instead\n * Calculates offset for an element relative to it's parent several levels above\n *\n * @param host parent element\n * @param element\n * @return object with offsetTop and offsetLeft number properties\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getElementOffset(\n host: Element,\n element: HTMLElement,\n): {offsetTop: number; offsetLeft: number} {\n tuiAssert.assert(host.contains(element), 'Host must contain element');\n\n let {offsetTop, offsetLeft, offsetParent} = element;\n\n // TODO: iframe warning\n while (offsetParent && offsetParent instanceof HTMLElement && offsetParent !== host) {\n offsetTop += offsetParent.offsetTop;\n offsetLeft += offsetParent.offsetLeft;\n offsetParent = offsetParent.offsetParent;\n }\n\n return {offsetTop, offsetLeft};\n}\n\nexport const tuiGetElementOffset = getElementOffset;\n","/**\n * @deprecated: use {@link tuiGetScrollParent} instead\n * Finds the nearest parent with scroll in it\n *\n * @param element initial element\n * @param vertical flag for orientation of scroll\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getScrollParent(\n element: Element | null,\n vertical: boolean = true,\n): Element | null {\n if (element === null) {\n return null;\n }\n\n if (vertical && element.scrollHeight > element.clientHeight) {\n return element;\n }\n\n if (!vertical && element.scrollWidth > element.clientWidth) {\n return element;\n }\n\n return getScrollParent(element.parentElement, vertical);\n}\n\nexport const tuiGetScrollParent = getScrollParent;\n","export function tuiIsFormFieldElement(\n element: unknown | null,\n): element is HTMLInputElement | HTMLTextAreaElement {\n const textfield = element as Record<string, unknown> | null;\n\n return (\n !!textfield &&\n 'value' in textfield &&\n 'selectionStart' in textfield &&\n 'selectionEnd' in textfield\n );\n}\n","import {tuiIsFormFieldElement} from './is-form-field';\n\n/**\n * @description:\n * cross browser way to get selected text\n *\n * History:\n * BUG - window.getSelection() fails when text selected in a form field\n * https://bugzilla.mozilla.org/show_bug.cgi?id=85686\n */\nexport function tuiGetSelectedText({getSelection, document}: Window): string | null {\n return tuiIsFormFieldElement(document.activeElement)\n ? document.activeElement.value.slice(\n document.activeElement.selectionStart || 0,\n document.activeElement.selectionEnd || 0,\n )\n : getSelection()?.toString() || null;\n}\n","/**\n * @deprecated: use {@link tuiIsCurrentTarget} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isCurrentTarget({target, currentTarget}: Event): boolean {\n return target === currentTarget;\n}\n\nexport const tuiIsCurrentTarget = isCurrentTarget;\n","/**\n * @deprecated: use {@link tuiIsInsideIframe} instead\n * Checks if an app is running inside <iframe /> tag\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isInsideIframe(windowRef: Window): boolean {\n return windowRef.parent !== windowRef;\n}\n\nexport const tuiIsInsideIframe = isInsideIframe;\n","import {getClosestElement} from './get-closest-element';\n\n/**\n * @deprecated: use {@link tuiIsNodeIn} instead\n * Checks if node is inside a specific selector\n *\n * @param node\n * @param selector\n * @return true if node is inside a particular selector\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isNodeIn(node: Node, selector: string): boolean {\n return node.nodeType === Node.TEXT_NODE\n ? !!node.parentElement && !!getClosestElement(node.parentElement, selector)\n : node.nodeType === Node.ELEMENT_NODE &&\n !!getClosestElement(node as Element, selector);\n}\n\nexport const tuiIsNodeIn = isNodeIn;\n","export function tuiPointToClientRect(x: number = 0, y: number = 0): ClientRect {\n return {\n left: x,\n right: x,\n top: y,\n bottom: y,\n width: 0,\n height: 0,\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
1
  import { svgNodeFilter } from '@taiga-ui/cdk/constants';
2
2
 
3
3
  /**
4
+ * @deprecated: use {@link tuiGetNativeFocused} instead
4
5
  * Returns current active element, including shadow dom
5
6
  *
6
7
  * @return element or null
7
8
  */
9
+ // eslint-disable-next-line @typescript-eslint/naming-convention
8
10
  function getNativeFocused(documentRef) {
9
11
  if (!documentRef.activeElement || !documentRef.activeElement.shadowRoot) {
10
12
  return documentRef.activeElement;
@@ -15,6 +17,7 @@ function getNativeFocused(documentRef) {
15
17
  }
16
18
  return element;
17
19
  }
20
+ const tuiGetNativeFocused = getNativeFocused;
18
21
 
19
22
  /**
20
23
  * @deprecated: use native element.focus()
@@ -25,6 +28,7 @@ function getNativeFocused(documentRef) {
25
28
  * @param focused boolean focused state
26
29
  * @param preventScroll optional flag to prevent native scroll to the element
27
30
  */
31
+ // eslint-disable-next-line @typescript-eslint/naming-convention
28
32
  function setNativeFocused(element, focused = true, preventScroll = false) {
29
33
  if (focused) {
30
34
  element.focus({ preventScroll });
@@ -35,8 +39,10 @@ function setNativeFocused(element, focused = true, preventScroll = false) {
35
39
  }
36
40
 
37
41
  /**
42
+ * @deprecated: use {@link tuiBlurNativeFocused} instead
38
43
  * Finds and blurs current active element, including shadow DOM
39
44
  */
45
+ // eslint-disable-next-line @typescript-eslint/naming-convention
40
46
  function blurNativeFocused(documentRef) {
41
47
  const activeElement = getNativeFocused(documentRef);
42
48
  // TODO: iframe warning
@@ -44,13 +50,16 @@ function blurNativeFocused(documentRef) {
44
50
  setNativeFocused(activeElement, false);
45
51
  }
46
52
  }
53
+ const tuiBlurNativeFocused = blurNativeFocused;
47
54
 
48
55
  /**
56
+ * @deprecated: use {@link tuiIsNativeKeyboardFocusable} instead
49
57
  * Checks for signs that element can be focused with keyboard. tabIndex above 0 is ignored to
50
58
  * only target natural focus order. Not checking the possibility of an element to
51
59
  * be focused, for example element can have display: none applied to it or any other
52
60
  * circumstances could prevent actual focus.
53
61
  */
62
+ // eslint-disable-next-line @typescript-eslint/naming-convention
54
63
  function isNativeKeyboardFocusable(element) {
55
64
  if (element.hasAttribute('disabled') || element.getAttribute('tabIndex') === '-1') {
56
65
  return false;
@@ -77,13 +86,20 @@ function isNativeKeyboardFocusable(element) {
77
86
  return false;
78
87
  }
79
88
  }
89
+ const tuiIsNativeKeyboardFocusable = isNativeKeyboardFocusable;
80
90
 
91
+ /**
92
+ * @deprecated: use {@link tuiIsNativeMouseFocusable} instead
93
+ */
94
+ // eslint-disable-next-line @typescript-eslint/naming-convention
81
95
  function isNativeMouseFocusable(element) {
82
96
  return (!element.hasAttribute('disabled') &&
83
97
  (element.getAttribute('tabIndex') === '-1' || isNativeKeyboardFocusable(element)));
84
98
  }
99
+ const tuiIsNativeMouseFocusable = isNativeMouseFocusable;
85
100
 
86
101
  /**
102
+ * @deprecated: use {@link tuiGetClosestFocusable} instead
87
103
  * Finds the closest element that can be focused with a keyboard or mouse in theory
88
104
  *
89
105
  * @param initial current HTML element
@@ -92,6 +108,7 @@ function isNativeMouseFocusable(element) {
92
108
  * @param keyboard determine if only keyboard focus is of interest
93
109
  *
94
110
  */
111
+ // eslint-disable-next-line @typescript-eslint/naming-convention
95
112
  function getClosestFocusable(initial, prev = false, root, keyboard = true) {
96
113
  if (!root.ownerDocument) {
97
114
  return null;
@@ -112,10 +129,14 @@ function getClosestFocusable(initial, prev = false, root, keyboard = true) {
112
129
  }
113
130
  return null;
114
131
  }
115
- /** @deprecated use getClosestFocusable */
132
+ /**
133
+ * @deprecated: use {@link tuiGetClosestFocusable} instead
134
+ */
116
135
  const getClosestKeyboardFocusable = getClosestFocusable;
136
+ const tuiGetClosestFocusable = getClosestFocusable;
117
137
 
118
138
  /**
139
+ * @deprecated: use {@link tuiIsNativeFocused} instead
119
140
  * Checks if element is focused.
120
141
  *
121
142
  * Could return true even after blur since element remains focused if you switch away from a browser tab.
@@ -123,16 +144,20 @@ const getClosestKeyboardFocusable = getClosestFocusable;
123
144
  * @param node or null (as a common return value of DOM nodes walking)
124
145
  * @return true if focused
125
146
  */
147
+ // eslint-disable-next-line @typescript-eslint/naming-convention
126
148
  function isNativeFocused(node) {
127
149
  return (!!node && !!node.ownerDocument && getNativeFocused(node.ownerDocument) === node);
128
150
  }
151
+ const tuiIsNativeFocused = isNativeFocused;
129
152
 
130
153
  /**
154
+ * @deprecated: use {@link tuiIsNativeFocusedIn} instead
131
155
  * Checks if focused element is within given element.
132
156
  *
133
157
  * @param node
134
158
  * @return true if focused node is contained within element
135
159
  */
160
+ // eslint-disable-next-line @typescript-eslint/naming-convention
136
161
  function isNativeFocusedIn(node) {
137
162
  // !node.contains - check for IE11
138
163
  if (!node.ownerDocument || !node.contains) {
@@ -141,14 +166,17 @@ function isNativeFocusedIn(node) {
141
166
  const nativeFocused = getNativeFocused(node.ownerDocument);
142
167
  return nativeFocused !== null && node.contains(nativeFocused);
143
168
  }
169
+ const tuiIsNativeFocusedIn = isNativeFocusedIn;
144
170
 
145
171
  /**
172
+ * @deprecated: use {@link tuiMoveFocus} instead
146
173
  * Utility method for moving focus in a list of elements
147
174
  *
148
175
  * @param currentIndex currently focused index
149
176
  * @param elements array of focusable elements
150
177
  * @param step a step to move focus by, typically -1 or 1
151
178
  */
179
+ // eslint-disable-next-line @typescript-eslint/naming-convention
152
180
  function moveFocus(currentIndex, elements, step) {
153
181
  currentIndex += step;
154
182
  while (currentIndex >= 0 && currentIndex < elements.length) {
@@ -159,14 +187,17 @@ function moveFocus(currentIndex, elements, step) {
159
187
  currentIndex += step;
160
188
  }
161
189
  }
190
+ const tuiMoveFocus = moveFocus;
162
191
 
163
192
  /**
193
+ * @deprecated: use {@link tuiSetNativeMouseFocused} instead
164
194
  * Focuses or blurs element with mouse action imitation (to spoof {@link TuiFocusVisibleService})
165
195
  *
166
196
  * @param element
167
197
  * @param focused desired focused state
168
198
  * @param preventScroll optionally prevent native browser scroll after focus
169
199
  */
200
+ // eslint-disable-next-line @typescript-eslint/naming-convention
170
201
  function setNativeMouseFocused(element, focused = true, preventScroll = false) {
171
202
  if (!element.ownerDocument) {
172
203
  return;
@@ -181,10 +212,11 @@ function setNativeMouseFocused(element, focused = true, preventScroll = false) {
181
212
  }
182
213
  setNativeFocused(element, focused, preventScroll);
183
214
  }
215
+ const tuiSetNativeMouseFocused = setNativeMouseFocused;
184
216
 
185
217
  /**
186
218
  * Generated bundle index. Do not edit.
187
219
  */
188
220
 
189
- export { blurNativeFocused, getClosestFocusable, getClosestKeyboardFocusable, getNativeFocused, isNativeFocused, isNativeFocusedIn, isNativeKeyboardFocusable, isNativeMouseFocusable, moveFocus, setNativeFocused, setNativeMouseFocused };
221
+ export { blurNativeFocused, getClosestFocusable, getClosestKeyboardFocusable, getNativeFocused, isNativeFocused, isNativeFocusedIn, isNativeKeyboardFocusable, isNativeMouseFocusable, moveFocus, setNativeFocused, setNativeMouseFocused, tuiBlurNativeFocused, tuiGetClosestFocusable, tuiGetNativeFocused, tuiIsNativeFocused, tuiIsNativeFocusedIn, tuiIsNativeKeyboardFocusable, tuiIsNativeMouseFocusable, tuiMoveFocus, tuiSetNativeMouseFocused };
190
222
  //# sourceMappingURL=taiga-ui-cdk-utils-focus.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-focus.js","sources":["ng://@taiga-ui/cdk/utils/focus/get-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/set-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/blur-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/is-native-keyboard-focusable.ts","ng://@taiga-ui/cdk/utils/focus/is-native-mouse-focusable.ts","ng://@taiga-ui/cdk/utils/focus/get-closest-keyboard-focusable.ts","ng://@taiga-ui/cdk/utils/focus/is-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/is-native-focused-in.ts","ng://@taiga-ui/cdk/utils/focus/move-focus.ts","ng://@taiga-ui/cdk/utils/focus/set-native-mouse-focused.ts","ng://@taiga-ui/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 getNativeFocused(documentRef: Document): Element | null {\n if (!documentRef.activeElement || !documentRef.activeElement.shadowRoot) {\n return documentRef.activeElement;\n }\n\n let element = documentRef.activeElement.shadowRoot.activeElement;\n\n while (element?.shadowRoot) {\n element = element.shadowRoot.activeElement;\n }\n\n return element;\n}\n","/**\n * @deprecated: use native element.focus()\n * TODO: remove in v3.0\n * Focuses or blurs and element\n *\n * @param element native element\n * @param focused boolean focused state\n * @param preventScroll optional flag to prevent native scroll to the element\n */\nexport function setNativeFocused(\n element: HTMLOrSVGElement,\n focused: boolean = true,\n preventScroll: boolean = false,\n): void {\n if (focused) {\n element.focus({preventScroll});\n } else {\n element.blur();\n }\n}\n","import {getNativeFocused} from './get-native-focused';\nimport {setNativeFocused} from './set-native-focused';\n\n/**\n * Finds and blurs current active element, including shadow DOM\n */\nexport function blurNativeFocused(documentRef: Document): void {\n const activeElement = getNativeFocused(documentRef);\n\n // TODO: iframe warning\n if (activeElement instanceof HTMLElement) {\n setNativeFocused(activeElement, false);\n }\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 isNativeKeyboardFocusable(element: Element): boolean {\n if (element.hasAttribute('disabled') || element.getAttribute('tabIndex') === '-1') {\n return false;\n }\n\n // TODO: iframe warning\n if (\n (element instanceof HTMLElement && element.isContentEditable) ||\n element.getAttribute('tabIndex') === '0'\n ) {\n return true;\n }\n\n switch (element.tagName) {\n case 'BUTTON':\n case 'SELECT':\n case 'TEXTAREA':\n return true;\n case 'VIDEO':\n case 'AUDIO':\n return element.hasAttribute('controls');\n case 'INPUT':\n return element.getAttribute('type') !== 'hidden';\n case 'A':\n case 'LINK':\n return element.hasAttribute('href');\n default:\n return false;\n }\n}\n","import {isNativeKeyboardFocusable} from './is-native-keyboard-focusable';\n\nexport function isNativeMouseFocusable(element: Element): boolean {\n return (\n !element.hasAttribute('disabled') &&\n (element.getAttribute('tabIndex') === '-1' || isNativeKeyboardFocusable(element))\n );\n}\n","import {svgNodeFilter} from '@taiga-ui/cdk/constants';\n\nimport {isNativeKeyboardFocusable} from './is-native-keyboard-focusable';\nimport {isNativeMouseFocusable} from './is-native-mouse-focusable';\n\n/**\n * Finds the closest element that can be focused with a keyboard or mouse in theory\n *\n * @param initial current HTML element\n * @param prev should it look backwards instead (find item that will be focused with Shift + Tab)\n * @param root top Node limiting the search area\n * @param keyboard determine if only keyboard focus is of interest\n *\n */\nexport function getClosestFocusable(\n initial: HTMLElement,\n prev: boolean = false,\n root: Node,\n keyboard: boolean = true,\n): HTMLElement | null {\n if (!root.ownerDocument) {\n return null;\n }\n\n const check = keyboard ? isNativeKeyboardFocusable : isNativeMouseFocusable;\n\n // Deprecated but ony this overload works in IE\n // Filter must be a function in IE, other modern browsers are compliant to this format\n const treeWalker = root.ownerDocument.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n svgNodeFilter,\n false,\n );\n\n treeWalker.currentNode = initial;\n\n while (prev ? treeWalker.previousNode() : treeWalker.nextNode()) {\n // TODO: iframe warning\n if (treeWalker.currentNode instanceof HTMLElement) {\n initial = treeWalker.currentNode;\n }\n\n if (check(initial)) {\n return initial;\n }\n }\n\n return null;\n}\n\n/** @deprecated use getClosestFocusable */\nexport const getClosestKeyboardFocusable = getClosestFocusable;\n","import {getNativeFocused} 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 isNativeFocused(node: Node | null): boolean {\n return (\n !!node && !!node.ownerDocument && getNativeFocused(node.ownerDocument) === node\n );\n}\n","import {getNativeFocused} 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 isNativeFocusedIn(node: Node): boolean {\n // !node.contains - check for IE11\n if (!node.ownerDocument || !node.contains) {\n return false;\n }\n\n const nativeFocused = getNativeFocused(node.ownerDocument);\n\n return nativeFocused !== null && node.contains(nativeFocused);\n}\n","import {isNativeFocused} from './is-native-focused';\nimport {setNativeFocused} from './set-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 moveFocus(\n currentIndex: number,\n elements: readonly HTMLElement[],\n step: number,\n): void {\n currentIndex += step;\n\n while (currentIndex >= 0 && currentIndex < elements.length) {\n setNativeFocused(elements[currentIndex]);\n\n if (isNativeFocused(elements[currentIndex])) {\n return;\n }\n\n currentIndex += step;\n }\n}\n","import {setNativeFocused} from './set-native-focused';\n\n/**\n * Focuses or blurs element with mouse action imitation (to spoof {@link TuiFocusVisibleService})\n *\n * @param element\n * @param focused desired focused state\n * @param preventScroll optionally prevent native browser scroll after focus\n */\nexport function setNativeMouseFocused(\n element: HTMLOrSVGElement & Element,\n focused: boolean = true,\n preventScroll: boolean = false,\n): void {\n if (!element.ownerDocument) {\n return;\n }\n\n if (typeof Event === 'function') {\n element.dispatchEvent(new Event('mousedown', {bubbles: true, cancelable: true}));\n } else {\n const event = element.ownerDocument.createEvent('Event');\n\n event.initEvent('mousedown', true, true);\n element.dispatchEvent(event);\n }\n\n setNativeFocused(element, focused, preventScroll);\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.js","sources":["ng://@taiga-ui/cdk/utils/focus/get-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/set-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/blur-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/is-native-keyboard-focusable.ts","ng://@taiga-ui/cdk/utils/focus/is-native-mouse-focusable.ts","ng://@taiga-ui/cdk/utils/focus/get-closest-keyboard-focusable.ts","ng://@taiga-ui/cdk/utils/focus/is-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/is-native-focused-in.ts","ng://@taiga-ui/cdk/utils/focus/move-focus.ts","ng://@taiga-ui/cdk/utils/focus/set-native-mouse-focused.ts","ng://@taiga-ui/cdk/utils/focus/taiga-ui-cdk-utils-focus.ts"],"sourcesContent":["/**\n * @deprecated: use {@link tuiGetNativeFocused} instead\n * Returns current active element, including shadow dom\n *\n * @return element or null\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getNativeFocused(documentRef: Document): Element | null {\n if (!documentRef.activeElement || !documentRef.activeElement.shadowRoot) {\n return documentRef.activeElement;\n }\n\n let element = documentRef.activeElement.shadowRoot.activeElement;\n\n while (element?.shadowRoot) {\n element = element.shadowRoot.activeElement;\n }\n\n return element;\n}\n\nexport const tuiGetNativeFocused = getNativeFocused;\n","/**\n * @deprecated: use native element.focus()\n * TODO: remove in v3.0\n * Focuses or blurs and element\n *\n * @param element native element\n * @param focused boolean focused state\n * @param preventScroll optional flag to prevent native scroll to the element\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function setNativeFocused(\n element: HTMLOrSVGElement,\n focused: boolean = true,\n preventScroll: boolean = false,\n): void {\n if (focused) {\n element.focus({preventScroll});\n } else {\n element.blur();\n }\n}\n","import {getNativeFocused} from './get-native-focused';\nimport {setNativeFocused} from './set-native-focused';\n\n/**\n * @deprecated: use {@link tuiBlurNativeFocused} instead\n * Finds and blurs current active element, including shadow DOM\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function blurNativeFocused(documentRef: Document): void {\n const activeElement = getNativeFocused(documentRef);\n\n // TODO: iframe warning\n if (activeElement instanceof HTMLElement) {\n setNativeFocused(activeElement, false);\n }\n}\n\nexport const tuiBlurNativeFocused = blurNativeFocused;\n","/**\n * @deprecated: use {@link tuiIsNativeKeyboardFocusable} instead\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 */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isNativeKeyboardFocusable(element: Element): boolean {\n if (element.hasAttribute('disabled') || element.getAttribute('tabIndex') === '-1') {\n return false;\n }\n\n // TODO: iframe warning\n if (\n (element instanceof HTMLElement && element.isContentEditable) ||\n element.getAttribute('tabIndex') === '0'\n ) {\n return true;\n }\n\n switch (element.tagName) {\n case 'BUTTON':\n case 'SELECT':\n case 'TEXTAREA':\n return true;\n case 'VIDEO':\n case 'AUDIO':\n return element.hasAttribute('controls');\n case 'INPUT':\n return element.getAttribute('type') !== 'hidden';\n case 'A':\n case 'LINK':\n return element.hasAttribute('href');\n default:\n return false;\n }\n}\n\nexport const tuiIsNativeKeyboardFocusable = isNativeKeyboardFocusable;\n","import {isNativeKeyboardFocusable} from './is-native-keyboard-focusable';\n\n/**\n * @deprecated: use {@link tuiIsNativeMouseFocusable} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isNativeMouseFocusable(element: Element): boolean {\n return (\n !element.hasAttribute('disabled') &&\n (element.getAttribute('tabIndex') === '-1' || isNativeKeyboardFocusable(element))\n );\n}\n\nexport const tuiIsNativeMouseFocusable = isNativeMouseFocusable;\n","import {svgNodeFilter} from '@taiga-ui/cdk/constants';\n\nimport {isNativeKeyboardFocusable} from './is-native-keyboard-focusable';\nimport {isNativeMouseFocusable} from './is-native-mouse-focusable';\n\n/**\n * @deprecated: use {@link tuiGetClosestFocusable} instead\n * Finds the closest element that can be focused with a keyboard or mouse in theory\n *\n * @param initial current HTML element\n * @param prev should it look backwards instead (find item that will be focused with Shift + Tab)\n * @param root top Node limiting the search area\n * @param keyboard determine if only keyboard focus is of interest\n *\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getClosestFocusable(\n initial: HTMLElement,\n prev: boolean = false,\n root: Node,\n keyboard: boolean = true,\n): HTMLElement | null {\n if (!root.ownerDocument) {\n return null;\n }\n\n const check = keyboard ? isNativeKeyboardFocusable : isNativeMouseFocusable;\n\n // Deprecated but ony this overload works in IE\n // Filter must be a function in IE, other modern browsers are compliant to this format\n const treeWalker = root.ownerDocument.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n svgNodeFilter,\n false,\n );\n\n treeWalker.currentNode = initial;\n\n while (prev ? treeWalker.previousNode() : treeWalker.nextNode()) {\n // TODO: iframe warning\n if (treeWalker.currentNode instanceof HTMLElement) {\n initial = treeWalker.currentNode;\n }\n\n if (check(initial)) {\n return initial;\n }\n }\n\n return null;\n}\n\n/**\n * @deprecated: use {@link tuiGetClosestFocusable} instead\n */\nexport const getClosestKeyboardFocusable = getClosestFocusable;\n\nexport const tuiGetClosestFocusable = getClosestFocusable;\n","import {getNativeFocused} from './get-native-focused';\n\n/**\n * @deprecated: use {@link tuiIsNativeFocused} instead\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 */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isNativeFocused(node: Node | null): boolean {\n return (\n !!node && !!node.ownerDocument && getNativeFocused(node.ownerDocument) === node\n );\n}\n\nexport const tuiIsNativeFocused = isNativeFocused;\n","import {getNativeFocused} from './get-native-focused';\n\n/**\n * @deprecated: use {@link tuiIsNativeFocusedIn} instead\n * Checks if focused element is within given element.\n *\n * @param node\n * @return true if focused node is contained within element\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isNativeFocusedIn(node: Node): boolean {\n // !node.contains - check for IE11\n if (!node.ownerDocument || !node.contains) {\n return false;\n }\n\n const nativeFocused = getNativeFocused(node.ownerDocument);\n\n return nativeFocused !== null && node.contains(nativeFocused);\n}\n\nexport const tuiIsNativeFocusedIn = isNativeFocusedIn;\n","import {isNativeFocused} from './is-native-focused';\nimport {setNativeFocused} from './set-native-focused';\n\n/**\n * @deprecated: use {@link tuiMoveFocus} instead\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 */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function moveFocus(\n currentIndex: number,\n elements: readonly HTMLElement[],\n step: number,\n): void {\n currentIndex += step;\n\n while (currentIndex >= 0 && currentIndex < elements.length) {\n setNativeFocused(elements[currentIndex]);\n\n if (isNativeFocused(elements[currentIndex])) {\n return;\n }\n\n currentIndex += step;\n }\n}\n\nexport const tuiMoveFocus = moveFocus;\n","import {setNativeFocused} from './set-native-focused';\n\n/**\n * @deprecated: use {@link tuiSetNativeMouseFocused} instead\n * Focuses or blurs element with mouse action imitation (to spoof {@link TuiFocusVisibleService})\n *\n * @param element\n * @param focused desired focused state\n * @param preventScroll optionally prevent native browser scroll after focus\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function setNativeMouseFocused(\n element: HTMLOrSVGElement & Element,\n focused: boolean = true,\n preventScroll: boolean = false,\n): void {\n if (!element.ownerDocument) {\n return;\n }\n\n if (typeof Event === 'function') {\n element.dispatchEvent(new Event('mousedown', {bubbles: true, cancelable: true}));\n } else {\n const event = element.ownerDocument.createEvent('Event');\n\n event.initEvent('mousedown', true, true);\n element.dispatchEvent(event);\n }\n\n setNativeFocused(element, focused, preventScroll);\n}\n\nexport const tuiSetNativeMouseFocused = setNativeMouseFocused;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,14 +1,14 @@
1
1
  import { tuiAssert } from '@taiga-ui/cdk/classes';
2
2
 
3
3
  /**
4
+ * @deprecated use String.prototype.padStart in 3.0 (after Chrome 49 support is dropped)
4
5
  * Pads a string with symbols in the beginning
5
6
  *
6
7
  * @param sourceString
7
8
  * @param minResultLength
8
9
  * @param padString string to pad with
9
- *
10
- * @deprecated use String.prototype.padStart in 3.0 (after Chrome 49 support is dropped)
11
10
  */
11
+ // eslint-disable-next-line @typescript-eslint/naming-convention
12
12
  function padStart(sourceString, minResultLength, padString = ' ') {
13
13
  const padSize = minResultLength - sourceString.length;
14
14
  if (padSize <= 0) {
@@ -18,16 +18,19 @@ function padStart(sourceString, minResultLength, padString = ' ') {
18
18
  }
19
19
 
20
20
  /**
21
+ * @deprecated: use {@link tuiPx} instead
21
22
  * Adds 'px' to the number and turns it into a string
22
23
  */
24
+ // eslint-disable-next-line @typescript-eslint/naming-convention
23
25
  function px(value) {
24
26
  tuiAssert.assert(Number.isFinite(value), 'Value must be finite number');
25
27
  return `${value}px`;
26
28
  }
29
+ const tuiPx = px;
27
30
 
28
31
  /**
29
32
  * Generated bundle index. Do not edit.
30
33
  */
31
34
 
32
- export { padStart, px };
35
+ export { padStart, px, tuiPx };
33
36
  //# sourceMappingURL=taiga-ui-cdk-utils-format.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-format.js","sources":["ng://@taiga-ui/cdk/utils/format/pad-start.ts","ng://@taiga-ui/cdk/utils/format/px.ts","ng://@taiga-ui/cdk/utils/format/taiga-ui-cdk-utils-format.ts"],"sourcesContent":["/**\n * Pads a string with symbols in the beginning\n *\n * @param sourceString\n * @param minResultLength\n * @param padString string to pad with\n *\n * @deprecated use String.prototype.padStart in 3.0 (after Chrome 49 support is dropped)\n */\nexport function padStart(\n sourceString: string,\n minResultLength: number,\n padString: string = ' ',\n): string {\n const padSize = minResultLength - sourceString.length;\n\n if (padSize <= 0) {\n return sourceString;\n }\n\n return padString.repeat(padSize / padString.length).slice(0, padSize) + sourceString;\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * Adds 'px' to the number and turns it into a string\n */\nexport function px(value: number): string {\n tuiAssert.assert(Number.isFinite(value), 'Value must be finite number');\n\n return `${value}px`;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAAA;;;;;;;;;SASgB,QAAQ,CACpB,YAAoB,EACpB,eAAuB,EACvB,YAAoB,GAAG;IAEvB,MAAM,OAAO,GAAG,eAAe,GAAG,YAAY,CAAC,MAAM,CAAC;IAEtD,IAAI,OAAO,IAAI,CAAC,EAAE;QACd,OAAO,YAAY,CAAC;KACvB;IAED,OAAO,SAAS,CAAC,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,YAAY,CAAC;AACzF;;ACnBA;;;SAGgB,EAAE,CAAC,KAAa;IAC5B,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,6BAA6B,CAAC,CAAC;IAExE,OAAO,GAAG,KAAK,IAAI,CAAC;AACxB;;ACTA;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-utils-format.js","sources":["ng://@taiga-ui/cdk/utils/format/pad-start.ts","ng://@taiga-ui/cdk/utils/format/px.ts","ng://@taiga-ui/cdk/utils/format/taiga-ui-cdk-utils-format.ts"],"sourcesContent":["/**\n * @deprecated use String.prototype.padStart in 3.0 (after Chrome 49 support is dropped)\n * Pads a string with symbols in the beginning\n *\n * @param sourceString\n * @param minResultLength\n * @param padString string to pad with\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function padStart(\n sourceString: string,\n minResultLength: number,\n padString: string = ' ',\n): string {\n const padSize = minResultLength - sourceString.length;\n\n if (padSize <= 0) {\n return sourceString;\n }\n\n return padString.repeat(padSize / padString.length).slice(0, padSize) + sourceString;\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * @deprecated: use {@link tuiPx} instead\n * Adds 'px' to the number and turns it into a string\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function px(value: number): string {\n tuiAssert.assert(Number.isFinite(value), 'Value must be finite number');\n\n return `${value}px`;\n}\n\nexport const tuiPx = px;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAAA;;;;;;;;AAQA;SACgB,QAAQ,CACpB,YAAoB,EACpB,eAAuB,EACvB,YAAoB,GAAG;IAEvB,MAAM,OAAO,GAAG,eAAe,GAAG,YAAY,CAAC,MAAM,CAAC;IAEtD,IAAI,OAAO,IAAI,CAAC,EAAE;QACd,OAAO,YAAY,CAAC;KACvB;IAED,OAAO,SAAS,CAAC,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,YAAY,CAAC;AACzF;;ACnBA;;;;AAIA;SACgB,EAAE,CAAC,KAAa;IAC5B,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,6BAA6B,CAAC,CAAC;IAExE,OAAO,GAAG,KAAK,IAAI,CAAC;AACxB,CAAC;MAEY,KAAK,GAAG;;ACbrB;;;;;;"}
@@ -1,12 +1,14 @@
1
1
  import { tuiAssert } from '@taiga-ui/cdk/classes';
2
2
 
3
3
  /**
4
+ * @deprecated: use {@link tuiClamp} instead
4
5
  * Clamps a value between two inclusive limits
5
6
  *
6
7
  * @param value
7
8
  * @param min lower limit
8
9
  * @param max upper limit
9
10
  */
11
+ // eslint-disable-next-line @typescript-eslint/naming-convention
10
12
  function clamp(value, min, max) {
11
13
  tuiAssert.assert(!isNaN(value));
12
14
  tuiAssert.assert(!isNaN(min));
@@ -14,14 +16,17 @@ function clamp(value, min, max) {
14
16
  tuiAssert.assert(max >= min);
15
17
  return Math.min(max, Math.max(min, value));
16
18
  }
19
+ const tuiClamp = clamp;
17
20
 
18
21
  /**
22
+ * @deprecated: use {@link tuiInRange} instead
19
23
  * Checks if the value is in range
20
24
  *
21
25
  * @param value
22
26
  * @param fromInclude lower inclusive limit
23
27
  * @param toExclude upper exclusive limit
24
28
  */
29
+ // eslint-disable-next-line @typescript-eslint/naming-convention
25
30
  function inRange(value, fromInclude, toExclude) {
26
31
  tuiAssert.assert(!isNaN(value));
27
32
  tuiAssert.assert(!isNaN(fromInclude));
@@ -29,8 +34,10 @@ function inRange(value, fromInclude, toExclude) {
29
34
  tuiAssert.assert(fromInclude < toExclude);
30
35
  return value >= fromInclude && value < toExclude;
31
36
  }
37
+ const tuiInRange = inRange;
32
38
 
33
39
  /**
40
+ * @deprecated: use {@link tuiNormalizeToIntNumber} instead
34
41
  * Normalizes any number to an integer within inclusive range
35
42
  *
36
43
  * @param value
@@ -38,6 +45,7 @@ function inRange(value, fromInclude, toExclude) {
38
45
  * @param max upper inclusive integer
39
46
  * @return an integer between min and max inclusive
40
47
  */
48
+ // eslint-disable-next-line @typescript-eslint/naming-convention
41
49
  function normalizeToIntNumber(value, min, max) {
42
50
  tuiAssert.assert(Number.isInteger(min));
43
51
  tuiAssert.assert(Number.isInteger(max));
@@ -50,13 +58,16 @@ function normalizeToIntNumber(value, min, max) {
50
58
  }
51
59
  return Math.round(value);
52
60
  }
61
+ const tuiNormalizeToIntNumber = normalizeToIntNumber;
53
62
 
54
63
  /**
64
+ * @deprecated: use {@link tuiQuantize} instead
55
65
  * Rounds a number to the closest value in a fixed discrete series
56
66
  *
57
67
  * @param value
58
68
  * @param quantum series step
59
69
  */
70
+ // eslint-disable-next-line @typescript-eslint/naming-convention
60
71
  function quantize(value, quantum) {
61
72
  tuiAssert.assert(Number.isFinite(value));
62
73
  tuiAssert.assert(Number.isFinite(quantum));
@@ -64,17 +75,33 @@ function quantize(value, quantum) {
64
75
  const remainder = value % quantum;
65
76
  return remainder < quantum / 2 ? value - remainder : value + quantum - remainder;
66
77
  }
78
+ const tuiQuantize = quantize;
67
79
 
68
80
  const MAX_PRECISION = 292;
81
+ /**
82
+ * @deprecated: use {@link tuiRound} instead
83
+ */
84
+ // eslint-disable-next-line @typescript-eslint/naming-convention
69
85
  function round(value, precision = 0) {
70
86
  return calculate(value, precision, Math.round);
71
87
  }
88
+ /**
89
+ * @deprecated: use {@link tuiCeil} instead
90
+ */
91
+ // eslint-disable-next-line @typescript-eslint/naming-convention
72
92
  function ceil(value, precision = 0) {
73
93
  return calculate(value, precision, Math.ceil);
74
94
  }
95
+ /**
96
+ * @deprecated: use {@link tuiFloor} instead
97
+ */
98
+ // eslint-disable-next-line @typescript-eslint/naming-convention
75
99
  function floor(value, precision = 0) {
76
100
  return calculate(value, precision, Math.floor);
77
101
  }
102
+ const tuiRound = round;
103
+ const tuiCeil = ceil;
104
+ const tuiFloor = floor;
78
105
  /**
79
106
  * Rounding number to the set precision
80
107
  *
@@ -96,26 +123,37 @@ function calculate(value, precision, func) {
96
123
  }
97
124
 
98
125
  /**
126
+ * @deprecated: use {@link tuiSum} instead
99
127
  * Calculates sum of any number of passed arguments
100
128
  */
129
+ // eslint-disable-next-line @typescript-eslint/naming-convention
101
130
  function sum(...args) {
102
131
  return args.reduce((a, b) => a + b, 0);
103
132
  }
133
+ const tuiSum = sum;
104
134
 
135
+ /**
136
+ * @deprecated: use {@link tuiToInt} instead
137
+ */
138
+ // eslint-disable-next-line @typescript-eslint/naming-convention
105
139
  function toInt(bool) {
106
140
  return bool ? 1 : 0;
107
141
  }
142
+ const tuiToInt = toInt;
108
143
 
109
144
  /**
145
+ * @deprecated: use {@link tuiToRadians} instead
110
146
  * Converts angle in degrees to radians
111
147
  */
148
+ // eslint-disable-next-line @typescript-eslint/naming-convention
112
149
  function toRadians(deg) {
113
150
  return (deg * Math.PI) / 180;
114
151
  }
152
+ const tuiToRadians = toRadians;
115
153
 
116
154
  /**
117
155
  * Generated bundle index. Do not edit.
118
156
  */
119
157
 
120
- export { ceil, clamp, floor, inRange, normalizeToIntNumber, quantize, round, sum, toInt, toRadians };
158
+ export { ceil, clamp, floor, inRange, normalizeToIntNumber, quantize, round, sum, toInt, toRadians, tuiCeil, tuiClamp, tuiFloor, tuiInRange, tuiNormalizeToIntNumber, tuiQuantize, tuiRound, tuiSum, tuiToInt, tuiToRadians };
121
159
  //# sourceMappingURL=taiga-ui-cdk-utils-math.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-math.js","sources":["ng://@taiga-ui/cdk/utils/math/clamp.ts","ng://@taiga-ui/cdk/utils/math/in-range.ts","ng://@taiga-ui/cdk/utils/math/normalize-to-int-number.ts","ng://@taiga-ui/cdk/utils/math/quantize.ts","ng://@taiga-ui/cdk/utils/math/round.ts","ng://@taiga-ui/cdk/utils/math/sum.ts","ng://@taiga-ui/cdk/utils/math/to-int.ts","ng://@taiga-ui/cdk/utils/math/to-radians.ts","ng://@taiga-ui/cdk/utils/math/taiga-ui-cdk-utils-math.ts"],"sourcesContent":["import {tuiAssert} from '@taiga-ui/cdk/classes';\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 clamp(value: number, min: number, max: number): number {\n tuiAssert.assert(!isNaN(value));\n tuiAssert.assert(!isNaN(min));\n tuiAssert.assert(!isNaN(max));\n tuiAssert.assert(max >= min);\n\n return Math.min(max, Math.max(min, value));\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * Checks if the value is in range\n *\n * @param value\n * @param fromInclude lower inclusive limit\n * @param toExclude upper exclusive limit\n */\nexport function inRange(value: number, fromInclude: number, toExclude: number): boolean {\n tuiAssert.assert(!isNaN(value));\n tuiAssert.assert(!isNaN(fromInclude));\n tuiAssert.assert(!isNaN(toExclude));\n tuiAssert.assert(fromInclude < toExclude);\n\n return value >= fromInclude && value < toExclude;\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\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 normalizeToIntNumber(value: number, min: number, max: number): number {\n tuiAssert.assert(Number.isInteger(min));\n tuiAssert.assert(Number.isInteger(max));\n tuiAssert.assert(min <= max);\n\n if (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","import {tuiAssert} from '@taiga-ui/cdk/classes';\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 quantize(value: number, quantum: number): number {\n tuiAssert.assert(Number.isFinite(value));\n tuiAssert.assert(Number.isFinite(quantum));\n tuiAssert.assert(quantum > 0);\n\n const remainder = value % quantum;\n\n return remainder < quantum / 2 ? value - remainder : value + quantum - remainder;\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\nconst MAX_PRECISION = 292;\n\nexport function round(value: number, precision: number = 0): number {\n return calculate(value, precision, Math.round);\n}\n\nexport function ceil(value: number, precision: number = 0): number {\n return calculate(value, precision, Math.ceil);\n}\n\nexport function floor(value: number, precision: number = 0): number {\n return calculate(value, precision, Math.floor);\n}\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 tuiAssert.assert(!isNaN(value), 'Value must be number');\n tuiAssert.assert(Number.isInteger(precision), 'Precision must be integer');\n\n precision = Math.min(precision, MAX_PRECISION);\n\n const pair = `${value}e`.split('e');\n const tempValue = func(Number(`${pair[0]}e${Number(pair[1]) + precision}`));\n const processedPair = `${tempValue}e`.split('e');\n\n return Number(`${processedPair[0]}e${Number(processedPair[1]) - precision}`);\n}\n","/**\n * Calculates sum of any number of passed arguments\n */\nexport function sum(...args: number[]): number {\n return args.reduce((a, b) => a + b, 0);\n}\n","export function toInt(bool: boolean): 1 | 0 {\n return bool ? 1 : 0;\n}\n","/**\n * Converts angle in degrees to radians\n */\nexport function toRadians(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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"}
1
+ {"version":3,"file":"taiga-ui-cdk-utils-math.js","sources":["ng://@taiga-ui/cdk/utils/math/clamp.ts","ng://@taiga-ui/cdk/utils/math/in-range.ts","ng://@taiga-ui/cdk/utils/math/normalize-to-int-number.ts","ng://@taiga-ui/cdk/utils/math/quantize.ts","ng://@taiga-ui/cdk/utils/math/round.ts","ng://@taiga-ui/cdk/utils/math/sum.ts","ng://@taiga-ui/cdk/utils/math/to-int.ts","ng://@taiga-ui/cdk/utils/math/to-radians.ts","ng://@taiga-ui/cdk/utils/math/taiga-ui-cdk-utils-math.ts"],"sourcesContent":["import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * @deprecated: use {@link tuiClamp} instead\n * Clamps a value between two inclusive limits\n *\n * @param value\n * @param min lower limit\n * @param max upper limit\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function clamp(value: number, min: number, max: number): number {\n tuiAssert.assert(!isNaN(value));\n tuiAssert.assert(!isNaN(min));\n tuiAssert.assert(!isNaN(max));\n tuiAssert.assert(max >= min);\n\n return Math.min(max, Math.max(min, value));\n}\n\nexport const tuiClamp = clamp;\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * @deprecated: use {@link tuiInRange} instead\n * Checks if the value is in range\n *\n * @param value\n * @param fromInclude lower inclusive limit\n * @param toExclude upper exclusive limit\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function inRange(value: number, fromInclude: number, toExclude: number): boolean {\n tuiAssert.assert(!isNaN(value));\n tuiAssert.assert(!isNaN(fromInclude));\n tuiAssert.assert(!isNaN(toExclude));\n tuiAssert.assert(fromInclude < toExclude);\n\n return value >= fromInclude && value < toExclude;\n}\n\nexport const tuiInRange = inRange;\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * @deprecated: use {@link tuiNormalizeToIntNumber} instead\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 */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function normalizeToIntNumber(value: number, min: number, max: number): number {\n tuiAssert.assert(Number.isInteger(min));\n tuiAssert.assert(Number.isInteger(max));\n tuiAssert.assert(min <= max);\n\n if (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\nexport const tuiNormalizeToIntNumber = normalizeToIntNumber;\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * @deprecated: use {@link tuiQuantize} instead\n * Rounds a number to the closest value in a fixed discrete series\n *\n * @param value\n * @param quantum series step\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function quantize(value: number, quantum: number): number {\n tuiAssert.assert(Number.isFinite(value));\n tuiAssert.assert(Number.isFinite(quantum));\n tuiAssert.assert(quantum > 0);\n\n const remainder = value % quantum;\n\n return remainder < quantum / 2 ? value - remainder : value + quantum - remainder;\n}\n\nexport const tuiQuantize = quantize;\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\nconst MAX_PRECISION = 292;\n\n/**\n * @deprecated: use {@link tuiRound} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function round(value: number, precision: number = 0): number {\n return calculate(value, precision, Math.round);\n}\n\n/**\n * @deprecated: use {@link tuiCeil} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function ceil(value: number, precision: number = 0): number {\n return calculate(value, precision, Math.ceil);\n}\n\n/**\n * @deprecated: use {@link tuiFloor} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function floor(value: number, precision: number = 0): number {\n return calculate(value, precision, Math.floor);\n}\n\nexport const tuiRound = round;\nexport const tuiCeil = ceil;\nexport const tuiFloor = floor;\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 tuiAssert.assert(!isNaN(value), 'Value must be number');\n tuiAssert.assert(Number.isInteger(precision), 'Precision must be integer');\n\n precision = Math.min(precision, MAX_PRECISION);\n\n const pair = `${value}e`.split('e');\n const tempValue = func(Number(`${pair[0]}e${Number(pair[1]) + precision}`));\n const processedPair = `${tempValue}e`.split('e');\n\n return Number(`${processedPair[0]}e${Number(processedPair[1]) - precision}`);\n}\n","/**\n * @deprecated: use {@link tuiSum} instead\n * Calculates sum of any number of passed arguments\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function sum(...args: number[]): number {\n return args.reduce((a, b) => a + b, 0);\n}\n\nexport const tuiSum = sum;\n","/**\n * @deprecated: use {@link tuiToInt} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function toInt(bool: boolean): 1 | 0 {\n return bool ? 1 : 0;\n}\n\nexport const tuiToInt = toInt;\n","/**\n * @deprecated: use {@link tuiToRadians} instead\n * Converts angle in degrees to radians\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function toRadians(deg: number): number {\n return (deg * Math.PI) / 180;\n}\n\nexport const tuiToRadians = toRadians;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}