@taiga-ui/cdk 2.52.0 → 2.54.1

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 (386) 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-dialog-host.umd.js +1 -1
  6. package/bundles/taiga-ui-cdk-components-dialog-host.umd.min.js +1 -1
  7. package/bundles/taiga-ui-cdk-components-dialog-host.umd.min.js.map +1 -1
  8. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.js +5 -13
  9. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.js.map +1 -1
  10. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.min.js +1 -1
  11. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.min.js.map +1 -1
  12. package/bundles/taiga-ui-cdk-constants.umd.js +9 -0
  13. package/bundles/taiga-ui-cdk-constants.umd.js.map +1 -1
  14. package/bundles/taiga-ui-cdk-constants.umd.min.js +1 -1
  15. package/bundles/taiga-ui-cdk-constants.umd.min.js.map +1 -1
  16. package/bundles/taiga-ui-cdk-directives-hovered.umd.js +29 -14
  17. package/bundles/taiga-ui-cdk-directives-hovered.umd.js.map +1 -1
  18. package/bundles/taiga-ui-cdk-directives-hovered.umd.min.js +1 -1
  19. package/bundles/taiga-ui-cdk-directives-hovered.umd.min.js.map +1 -1
  20. package/bundles/taiga-ui-cdk-directives-media.umd.js +2 -0
  21. package/bundles/taiga-ui-cdk-directives-media.umd.js.map +1 -1
  22. package/bundles/taiga-ui-cdk-directives-media.umd.min.js.map +1 -1
  23. package/bundles/taiga-ui-cdk-observables.umd.js +56 -0
  24. package/bundles/taiga-ui-cdk-observables.umd.js.map +1 -1
  25. package/bundles/taiga-ui-cdk-observables.umd.min.js +1 -1
  26. package/bundles/taiga-ui-cdk-observables.umd.min.js.map +1 -1
  27. package/bundles/taiga-ui-cdk-services.umd.js +1 -0
  28. package/bundles/taiga-ui-cdk-services.umd.js.map +1 -1
  29. package/bundles/taiga-ui-cdk-services.umd.min.js.map +1 -1
  30. package/bundles/taiga-ui-cdk-tokens.umd.js +1 -1
  31. package/bundles/taiga-ui-cdk-tokens.umd.js.map +1 -1
  32. package/bundles/taiga-ui-cdk-tokens.umd.min.js +1 -1
  33. package/bundles/taiga-ui-cdk-tokens.umd.min.js.map +1 -1
  34. package/bundles/taiga-ui-cdk-utils-browser.umd.js +30 -0
  35. package/bundles/taiga-ui-cdk-utils-browser.umd.js.map +1 -1
  36. package/bundles/taiga-ui-cdk-utils-browser.umd.min.js +1 -1
  37. package/bundles/taiga-ui-cdk-utils-browser.umd.min.js.map +1 -1
  38. package/bundles/taiga-ui-cdk-utils-dom.umd.js +69 -2
  39. package/bundles/taiga-ui-cdk-utils-dom.umd.js.map +1 -1
  40. package/bundles/taiga-ui-cdk-utils-dom.umd.min.js +1 -1
  41. package/bundles/taiga-ui-cdk-utils-dom.umd.min.js.map +1 -1
  42. package/bundles/taiga-ui-cdk-utils-focus.umd.js +42 -1
  43. package/bundles/taiga-ui-cdk-utils-focus.umd.js.map +1 -1
  44. package/bundles/taiga-ui-cdk-utils-focus.umd.min.js +1 -1
  45. package/bundles/taiga-ui-cdk-utils-focus.umd.min.js.map +1 -1
  46. package/bundles/taiga-ui-cdk-utils-format.umd.js +6 -2
  47. package/bundles/taiga-ui-cdk-utils-format.umd.js.map +1 -1
  48. package/bundles/taiga-ui-cdk-utils-format.umd.min.js +1 -1
  49. package/bundles/taiga-ui-cdk-utils-format.umd.min.js.map +1 -1
  50. package/bundles/taiga-ui-cdk-utils-math.umd.js +48 -0
  51. package/bundles/taiga-ui-cdk-utils-math.umd.js.map +1 -1
  52. package/bundles/taiga-ui-cdk-utils-math.umd.min.js +1 -1
  53. package/bundles/taiga-ui-cdk-utils-math.umd.min.js.map +1 -1
  54. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js +64 -2
  55. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js.map +1 -1
  56. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.min.js +1 -1
  57. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.min.js.map +1 -1
  58. package/bundles/taiga-ui-cdk-utils-os.umd.js +17 -1
  59. package/bundles/taiga-ui-cdk-utils-os.umd.js.map +1 -1
  60. package/bundles/taiga-ui-cdk-utils-os.umd.min.js +1 -1
  61. package/bundles/taiga-ui-cdk-utils-os.umd.min.js.map +1 -1
  62. package/bundles/taiga-ui-cdk-utils-svg.umd.js +5 -1
  63. package/bundles/taiga-ui-cdk-utils-svg.umd.js.map +1 -1
  64. package/bundles/taiga-ui-cdk-utils-svg.umd.min.js +1 -1
  65. package/bundles/taiga-ui-cdk-utils-svg.umd.min.js.map +1 -1
  66. package/components/alert-host/taiga-ui-cdk-components-alert-host.metadata.json +1 -1
  67. package/components/dialog-host/taiga-ui-cdk-components-dialog-host.metadata.json +1 -1
  68. package/components/dropdown-host/taiga-ui-cdk-components-dropdown-host.metadata.json +1 -1
  69. package/constants/empty.d.ts +1 -0
  70. package/constants/taiga-ui-cdk-constants.metadata.json +1 -1
  71. package/directives/hovered/hovered.directive.d.ts +5 -5
  72. package/directives/hovered/taiga-ui-cdk-directives-hovered.metadata.json +1 -1
  73. package/directives/media/taiga-ui-cdk-directives-media.metadata.json +1 -1
  74. package/esm2015/components/alert-host/alert-host.component.js +2 -2
  75. package/esm2015/components/dialog-host/dialog-host.component.js +1 -1
  76. package/esm2015/components/dropdown-host/dropdown-host.component.js +3 -10
  77. package/esm2015/constants/empty.js +9 -1
  78. package/esm2015/directives/hovered/hovered.directive.js +28 -13
  79. package/esm2015/directives/media/media.directive.js +3 -1
  80. package/esm2015/observables/drag-and-drop-from.js +6 -1
  81. package/esm2015/observables/focus-visible-observable.js +6 -1
  82. package/esm2015/observables/items-query-list-observable.js +4 -1
  83. package/esm2015/observables/mouse-drag-finish-from.js +4 -1
  84. package/esm2015/observables/must-be-present.js +6 -1
  85. package/esm2015/observables/pressed-observable.js +6 -1
  86. package/esm2015/observables/prevent-default.js +6 -1
  87. package/esm2015/observables/stop-propagation.js +6 -1
  88. package/esm2015/observables/typed-from-event.js +6 -1
  89. package/esm2015/observables/watch.js +6 -1
  90. package/esm2015/services/hovered.service.js +2 -1
  91. package/esm2015/tokens/is-firefox.js +2 -2
  92. package/esm2015/utils/browser/is-edge-older-than.js +6 -1
  93. package/esm2015/utils/browser/is-edge.js +6 -1
  94. package/esm2015/utils/browser/is-firefox.js +6 -1
  95. package/esm2015/utils/browser/is-ie.js +6 -1
  96. package/esm2015/utils/browser/is-safari.js +6 -1
  97. package/esm2015/utils/dom/can-scroll.js +6 -1
  98. package/esm2015/utils/dom/contains-or-after.js +6 -1
  99. package/esm2015/utils/dom/get-actual-target.js +4 -1
  100. package/esm2015/utils/dom/get-clipboard-data-text.js +4 -1
  101. package/esm2015/utils/dom/get-closest-element.js +3 -2
  102. package/esm2015/utils/dom/get-document-or-shadow-root.js +6 -1
  103. package/esm2015/utils/dom/get-element-obscurers.js +4 -1
  104. package/esm2015/utils/dom/get-element-offset.js +4 -1
  105. package/esm2015/utils/dom/get-scroll-parent.js +5 -2
  106. package/esm2015/utils/dom/index.js +2 -1
  107. package/esm2015/utils/dom/is-current-target.js +6 -1
  108. package/esm2015/utils/dom/is-inside-iframe.js +4 -1
  109. package/esm2015/utils/dom/is-node-in.js +4 -1
  110. package/esm2015/utils/dom/point-to-client-rect.js +11 -0
  111. package/esm2015/utils/focus/blur-native-focused.js +4 -1
  112. package/esm2015/utils/focus/get-closest-keyboard-focusable.js +7 -2
  113. package/esm2015/utils/focus/get-native-focused.js +4 -1
  114. package/esm2015/utils/focus/is-native-focused-in.js +4 -1
  115. package/esm2015/utils/focus/is-native-focused.js +4 -1
  116. package/esm2015/utils/focus/is-native-keyboard-focusable.js +4 -1
  117. package/esm2015/utils/focus/is-native-mouse-focusable.js +6 -1
  118. package/esm2015/utils/focus/move-focus.js +4 -1
  119. package/esm2015/utils/focus/set-native-focused.js +2 -1
  120. package/esm2015/utils/focus/set-native-mouse-focused.js +4 -1
  121. package/esm2015/utils/format/pad-start.js +3 -3
  122. package/esm2015/utils/format/px.js +4 -1
  123. package/esm2015/utils/math/clamp.js +4 -1
  124. package/esm2015/utils/math/in-range.js +4 -1
  125. package/esm2015/utils/math/normalize-to-int-number.js +4 -1
  126. package/esm2015/utils/math/quantize.js +4 -1
  127. package/esm2015/utils/math/round.js +16 -1
  128. package/esm2015/utils/math/sum.js +4 -1
  129. package/esm2015/utils/math/to-int.js +6 -1
  130. package/esm2015/utils/math/to-radians.js +4 -1
  131. package/esm2015/utils/miscellaneous/distance-between-touches.js +6 -1
  132. package/esm2015/utils/miscellaneous/ease-in-out-quad.js +6 -1
  133. package/esm2015/utils/miscellaneous/fallback-value.js +3 -2
  134. package/esm2015/utils/miscellaneous/flat-length.js +5 -2
  135. package/esm2015/utils/miscellaneous/get-original-array-from-query-list.js +4 -1
  136. package/esm2015/utils/miscellaneous/get-swipe-direction.js +6 -1
  137. package/esm2015/utils/miscellaneous/identity.js +2 -1
  138. package/esm2015/utils/miscellaneous/is-element-editable.js +6 -1
  139. package/esm2015/utils/miscellaneous/is-number.js +6 -1
  140. package/esm2015/utils/miscellaneous/is-present.js +6 -1
  141. package/esm2015/utils/miscellaneous/mark-control-as-touched-and-validate.js +6 -1
  142. package/esm2015/utils/miscellaneous/nullable-same.js +4 -1
  143. package/esm2015/utils/miscellaneous/uniq-by.js +6 -1
  144. package/esm2015/utils/os/is-apple-platform.js +5 -2
  145. package/esm2015/utils/os/is-apple.js +6 -1
  146. package/esm2015/utils/os/is-ios.js +6 -1
  147. package/esm2015/utils/svg/svg-linear-gradient-processor.js +5 -2
  148. package/esm5/components/alert-host/alert-host.component.js +2 -2
  149. package/esm5/components/dialog-host/dialog-host.component.js +1 -1
  150. package/esm5/components/dropdown-host/dropdown-host.component.js +3 -10
  151. package/esm5/constants/empty.js +9 -1
  152. package/esm5/directives/hovered/hovered.directive.js +29 -14
  153. package/esm5/directives/media/media.directive.js +3 -1
  154. package/esm5/observables/drag-and-drop-from.js +6 -1
  155. package/esm5/observables/focus-visible-observable.js +6 -1
  156. package/esm5/observables/items-query-list-observable.js +4 -1
  157. package/esm5/observables/mouse-drag-finish-from.js +4 -1
  158. package/esm5/observables/must-be-present.js +6 -1
  159. package/esm5/observables/pressed-observable.js +6 -1
  160. package/esm5/observables/prevent-default.js +6 -1
  161. package/esm5/observables/stop-propagation.js +6 -1
  162. package/esm5/observables/typed-from-event.js +6 -1
  163. package/esm5/observables/watch.js +6 -1
  164. package/esm5/services/hovered.service.js +2 -1
  165. package/esm5/tokens/is-firefox.js +2 -2
  166. package/esm5/utils/browser/is-edge-older-than.js +6 -1
  167. package/esm5/utils/browser/is-edge.js +6 -1
  168. package/esm5/utils/browser/is-firefox.js +6 -1
  169. package/esm5/utils/browser/is-ie.js +6 -1
  170. package/esm5/utils/browser/is-safari.js +6 -1
  171. package/esm5/utils/dom/can-scroll.js +6 -1
  172. package/esm5/utils/dom/contains-or-after.js +6 -1
  173. package/esm5/utils/dom/get-actual-target.js +4 -1
  174. package/esm5/utils/dom/get-clipboard-data-text.js +4 -1
  175. package/esm5/utils/dom/get-closest-element.js +3 -2
  176. package/esm5/utils/dom/get-document-or-shadow-root.js +6 -1
  177. package/esm5/utils/dom/get-element-obscurers.js +4 -1
  178. package/esm5/utils/dom/get-element-offset.js +4 -1
  179. package/esm5/utils/dom/get-scroll-parent.js +5 -2
  180. package/esm5/utils/dom/index.js +2 -1
  181. package/esm5/utils/dom/is-current-target.js +6 -1
  182. package/esm5/utils/dom/is-inside-iframe.js +4 -1
  183. package/esm5/utils/dom/is-node-in.js +4 -1
  184. package/esm5/utils/dom/point-to-client-rect.js +13 -0
  185. package/esm5/utils/focus/blur-native-focused.js +4 -1
  186. package/esm5/utils/focus/get-closest-keyboard-focusable.js +7 -2
  187. package/esm5/utils/focus/get-native-focused.js +4 -1
  188. package/esm5/utils/focus/is-native-focused-in.js +4 -1
  189. package/esm5/utils/focus/is-native-focused.js +4 -1
  190. package/esm5/utils/focus/is-native-keyboard-focusable.js +4 -1
  191. package/esm5/utils/focus/is-native-mouse-focusable.js +6 -1
  192. package/esm5/utils/focus/move-focus.js +4 -1
  193. package/esm5/utils/focus/set-native-focused.js +2 -1
  194. package/esm5/utils/focus/set-native-mouse-focused.js +4 -1
  195. package/esm5/utils/format/pad-start.js +3 -3
  196. package/esm5/utils/format/px.js +4 -1
  197. package/esm5/utils/math/clamp.js +4 -1
  198. package/esm5/utils/math/in-range.js +4 -1
  199. package/esm5/utils/math/normalize-to-int-number.js +4 -1
  200. package/esm5/utils/math/quantize.js +4 -1
  201. package/esm5/utils/math/round.js +16 -1
  202. package/esm5/utils/math/sum.js +4 -1
  203. package/esm5/utils/math/to-int.js +6 -1
  204. package/esm5/utils/math/to-radians.js +4 -1
  205. package/esm5/utils/miscellaneous/distance-between-touches.js +6 -1
  206. package/esm5/utils/miscellaneous/ease-in-out-quad.js +6 -1
  207. package/esm5/utils/miscellaneous/fallback-value.js +3 -2
  208. package/esm5/utils/miscellaneous/flat-length.js +5 -2
  209. package/esm5/utils/miscellaneous/get-original-array-from-query-list.js +4 -1
  210. package/esm5/utils/miscellaneous/get-swipe-direction.js +6 -1
  211. package/esm5/utils/miscellaneous/identity.js +2 -1
  212. package/esm5/utils/miscellaneous/is-element-editable.js +6 -1
  213. package/esm5/utils/miscellaneous/is-number.js +6 -1
  214. package/esm5/utils/miscellaneous/is-present.js +6 -1
  215. package/esm5/utils/miscellaneous/mark-control-as-touched-and-validate.js +6 -1
  216. package/esm5/utils/miscellaneous/nullable-same.js +4 -1
  217. package/esm5/utils/miscellaneous/uniq-by.js +6 -1
  218. package/esm5/utils/os/is-apple-platform.js +5 -2
  219. package/esm5/utils/os/is-apple.js +6 -1
  220. package/esm5/utils/os/is-ios.js +6 -1
  221. package/esm5/utils/svg/svg-linear-gradient-processor.js +5 -2
  222. package/fesm2015/taiga-ui-cdk-components-alert-host.js +1 -1
  223. package/fesm2015/taiga-ui-cdk-components-alert-host.js.map +1 -1
  224. package/fesm2015/taiga-ui-cdk-components-dialog-host.js +1 -1
  225. package/fesm2015/taiga-ui-cdk-components-dropdown-host.js +2 -9
  226. package/fesm2015/taiga-ui-cdk-components-dropdown-host.js.map +1 -1
  227. package/fesm2015/taiga-ui-cdk-constants.js +9 -1
  228. package/fesm2015/taiga-ui-cdk-constants.js.map +1 -1
  229. package/fesm2015/taiga-ui-cdk-directives-hovered.js +28 -13
  230. package/fesm2015/taiga-ui-cdk-directives-hovered.js.map +1 -1
  231. package/fesm2015/taiga-ui-cdk-directives-media.js +2 -0
  232. package/fesm2015/taiga-ui-cdk-directives-media.js.map +1 -1
  233. package/fesm2015/taiga-ui-cdk-observables.js +47 -1
  234. package/fesm2015/taiga-ui-cdk-observables.js.map +1 -1
  235. package/fesm2015/taiga-ui-cdk-services.js +1 -0
  236. package/fesm2015/taiga-ui-cdk-services.js.map +1 -1
  237. package/fesm2015/taiga-ui-cdk-tokens.js +1 -1
  238. package/fesm2015/taiga-ui-cdk-tokens.js.map +1 -1
  239. package/fesm2015/taiga-ui-cdk-utils-browser.js +26 -1
  240. package/fesm2015/taiga-ui-cdk-utils-browser.js.map +1 -1
  241. package/fesm2015/taiga-ui-cdk-utils-dom.js +56 -3
  242. package/fesm2015/taiga-ui-cdk-utils-dom.js.map +1 -1
  243. package/fesm2015/taiga-ui-cdk-utils-focus.js +34 -2
  244. package/fesm2015/taiga-ui-cdk-utils-focus.js.map +1 -1
  245. package/fesm2015/taiga-ui-cdk-utils-format.js +6 -3
  246. package/fesm2015/taiga-ui-cdk-utils-format.js.map +1 -1
  247. package/fesm2015/taiga-ui-cdk-utils-math.js +39 -1
  248. package/fesm2015/taiga-ui-cdk-utils-math.js.map +1 -1
  249. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js +54 -3
  250. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
  251. package/fesm2015/taiga-ui-cdk-utils-os.js +15 -2
  252. package/fesm2015/taiga-ui-cdk-utils-os.js.map +1 -1
  253. package/fesm2015/taiga-ui-cdk-utils-svg.js +5 -2
  254. package/fesm2015/taiga-ui-cdk-utils-svg.js.map +1 -1
  255. package/fesm5/taiga-ui-cdk-components-alert-host.js +1 -1
  256. package/fesm5/taiga-ui-cdk-components-alert-host.js.map +1 -1
  257. package/fesm5/taiga-ui-cdk-components-dialog-host.js +1 -1
  258. package/fesm5/taiga-ui-cdk-components-dropdown-host.js +2 -9
  259. package/fesm5/taiga-ui-cdk-components-dropdown-host.js.map +1 -1
  260. package/fesm5/taiga-ui-cdk-constants.js +9 -1
  261. package/fesm5/taiga-ui-cdk-constants.js.map +1 -1
  262. package/fesm5/taiga-ui-cdk-directives-hovered.js +29 -14
  263. package/fesm5/taiga-ui-cdk-directives-hovered.js.map +1 -1
  264. package/fesm5/taiga-ui-cdk-directives-media.js +2 -0
  265. package/fesm5/taiga-ui-cdk-directives-media.js.map +1 -1
  266. package/fesm5/taiga-ui-cdk-observables.js +47 -1
  267. package/fesm5/taiga-ui-cdk-observables.js.map +1 -1
  268. package/fesm5/taiga-ui-cdk-services.js +1 -0
  269. package/fesm5/taiga-ui-cdk-services.js.map +1 -1
  270. package/fesm5/taiga-ui-cdk-tokens.js +1 -1
  271. package/fesm5/taiga-ui-cdk-tokens.js.map +1 -1
  272. package/fesm5/taiga-ui-cdk-utils-browser.js +26 -1
  273. package/fesm5/taiga-ui-cdk-utils-browser.js.map +1 -1
  274. package/fesm5/taiga-ui-cdk-utils-dom.js +58 -3
  275. package/fesm5/taiga-ui-cdk-utils-dom.js.map +1 -1
  276. package/fesm5/taiga-ui-cdk-utils-focus.js +34 -2
  277. package/fesm5/taiga-ui-cdk-utils-focus.js.map +1 -1
  278. package/fesm5/taiga-ui-cdk-utils-format.js +6 -3
  279. package/fesm5/taiga-ui-cdk-utils-format.js.map +1 -1
  280. package/fesm5/taiga-ui-cdk-utils-math.js +39 -1
  281. package/fesm5/taiga-ui-cdk-utils-math.js.map +1 -1
  282. package/fesm5/taiga-ui-cdk-utils-miscellaneous.js +54 -3
  283. package/fesm5/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
  284. package/fesm5/taiga-ui-cdk-utils-os.js +15 -2
  285. package/fesm5/taiga-ui-cdk-utils-os.js.map +1 -1
  286. package/fesm5/taiga-ui-cdk-utils-svg.js +5 -2
  287. package/fesm5/taiga-ui-cdk-utils-svg.js.map +1 -1
  288. package/observables/drag-and-drop-from.d.ts +4 -0
  289. package/observables/focus-visible-observable.d.ts +4 -0
  290. package/observables/items-query-list-observable.d.ts +2 -0
  291. package/observables/mouse-drag-finish-from.d.ts +2 -0
  292. package/observables/must-be-present.d.ts +4 -0
  293. package/observables/pressed-observable.d.ts +4 -0
  294. package/observables/prevent-default.d.ts +4 -0
  295. package/observables/stop-propagation.d.ts +4 -0
  296. package/observables/taiga-ui-cdk-observables.metadata.json +1 -1
  297. package/observables/typed-from-event.d.ts +16 -0
  298. package/observables/watch.d.ts +4 -0
  299. package/package.json +1 -1
  300. package/schematics/ng-update/constants/deprecated-functions.d.ts +2 -0
  301. package/schematics/ng-update/constants/deprecated-functions.js +714 -0
  302. package/schematics/ng-update/constants/templates.d.ts +8 -0
  303. package/schematics/ng-update/constants/templates.js +75 -0
  304. package/schematics/ng-update/constants/types.d.ts +1 -2
  305. package/schematics/ng-update/index.js +7 -24
  306. package/schematics/ng-update/steps/migrate-date-time.js +3 -0
  307. package/schematics/ng-update/steps/migrate-progress.js +3 -0
  308. package/schematics/ng-update/steps/migrate-sliders/index.js +3 -0
  309. package/schematics/ng-update/steps/migrate-templates.js +21 -3
  310. package/schematics/ng-update/steps/miscellaneous.js +3 -0
  311. package/schematics/ng-update/steps/remove-module.js +3 -0
  312. package/schematics/ng-update/steps/rename-types.js +4 -3
  313. package/schematics/ng-update/steps/replace-const.d.ts +1 -1
  314. package/schematics/ng-update/steps/replace-const.js +5 -2
  315. package/schematics/ng-update/steps/replace-deep-import.js +3 -0
  316. package/schematics/ng-update/steps/replace-enums.js +4 -3
  317. package/schematics/ng-update/steps/replace-functions.js +15 -0
  318. package/schematics/ng-update/steps/replace-services.js +4 -4
  319. package/schematics/utils/colored-log.d.ts +8 -0
  320. package/schematics/utils/colored-log.js +15 -1
  321. package/schematics/utils/templates/ng-component-input-manipulations.d.ts +2 -1
  322. package/schematics/utils/templates/ng-component-input-manipulations.js +2 -1
  323. package/services/hovered.service.d.ts +1 -0
  324. package/services/taiga-ui-cdk-services.metadata.json +1 -1
  325. package/utils/browser/is-edge-older-than.d.ts +4 -0
  326. package/utils/browser/is-edge.d.ts +4 -0
  327. package/utils/browser/is-firefox.d.ts +4 -0
  328. package/utils/browser/is-ie.d.ts +4 -0
  329. package/utils/browser/is-safari.d.ts +4 -0
  330. package/utils/browser/taiga-ui-cdk-utils-browser.metadata.json +1 -1
  331. package/utils/dom/can-scroll.d.ts +4 -0
  332. package/utils/dom/contains-or-after.d.ts +4 -0
  333. package/utils/dom/get-actual-target.d.ts +2 -0
  334. package/utils/dom/get-clipboard-data-text.d.ts +2 -0
  335. package/utils/dom/get-closest-element.d.ts +1 -1
  336. package/utils/dom/get-document-or-shadow-root.d.ts +4 -0
  337. package/utils/dom/get-element-obscurers.d.ts +2 -0
  338. package/utils/dom/get-element-offset.d.ts +2 -0
  339. package/utils/dom/get-scroll-parent.d.ts +3 -1
  340. package/utils/dom/index.d.ts +1 -0
  341. package/utils/dom/is-current-target.d.ts +4 -0
  342. package/utils/dom/is-inside-iframe.d.ts +2 -0
  343. package/utils/dom/is-node-in.d.ts +2 -0
  344. package/utils/dom/point-to-client-rect.d.ts +1 -0
  345. package/utils/dom/taiga-ui-cdk-utils-dom.metadata.json +1 -1
  346. package/utils/focus/blur-native-focused.d.ts +2 -0
  347. package/utils/focus/get-closest-keyboard-focusable.d.ts +5 -1
  348. package/utils/focus/get-native-focused.d.ts +2 -0
  349. package/utils/focus/is-native-focused-in.d.ts +2 -0
  350. package/utils/focus/is-native-focused.d.ts +2 -0
  351. package/utils/focus/is-native-keyboard-focusable.d.ts +2 -0
  352. package/utils/focus/is-native-mouse-focusable.d.ts +4 -0
  353. package/utils/focus/move-focus.d.ts +2 -0
  354. package/utils/focus/set-native-mouse-focused.d.ts +2 -0
  355. package/utils/focus/taiga-ui-cdk-utils-focus.metadata.json +1 -1
  356. package/utils/format/pad-start.d.ts +1 -2
  357. package/utils/format/px.d.ts +2 -0
  358. package/utils/format/taiga-ui-cdk-utils-format.metadata.json +1 -1
  359. package/utils/math/clamp.d.ts +2 -0
  360. package/utils/math/in-range.d.ts +2 -0
  361. package/utils/math/normalize-to-int-number.d.ts +2 -0
  362. package/utils/math/quantize.d.ts +2 -0
  363. package/utils/math/round.d.ts +12 -0
  364. package/utils/math/sum.d.ts +2 -0
  365. package/utils/math/taiga-ui-cdk-utils-math.metadata.json +1 -1
  366. package/utils/math/to-int.d.ts +4 -0
  367. package/utils/math/to-radians.d.ts +2 -0
  368. package/utils/miscellaneous/distance-between-touches.d.ts +4 -0
  369. package/utils/miscellaneous/ease-in-out-quad.d.ts +4 -0
  370. package/utils/miscellaneous/fallback-value.d.ts +1 -1
  371. package/utils/miscellaneous/flat-length.d.ts +3 -1
  372. package/utils/miscellaneous/get-original-array-from-query-list.d.ts +2 -0
  373. package/utils/miscellaneous/get-swipe-direction.d.ts +4 -0
  374. package/utils/miscellaneous/is-element-editable.d.ts +4 -0
  375. package/utils/miscellaneous/is-number.d.ts +4 -0
  376. package/utils/miscellaneous/is-present.d.ts +4 -0
  377. package/utils/miscellaneous/mark-control-as-touched-and-validate.d.ts +4 -0
  378. package/utils/miscellaneous/nullable-same.d.ts +2 -0
  379. package/utils/miscellaneous/taiga-ui-cdk-utils-miscellaneous.metadata.json +1 -1
  380. package/utils/miscellaneous/uniq-by.d.ts +4 -0
  381. package/utils/os/is-apple-platform.d.ts +3 -1
  382. package/utils/os/is-apple.d.ts +4 -0
  383. package/utils/os/is-ios.d.ts +4 -0
  384. package/utils/os/taiga-ui-cdk-utils-os.metadata.json +1 -1
  385. package/utils/svg/svg-linear-gradient-processor.d.ts +3 -1
  386. package/utils/svg/taiga-ui-cdk-utils-svg.metadata.json +1 -1
@@ -2,11 +2,16 @@ import { clamp } from '@taiga-ui/cdk/utils/math';
2
2
  import { isPresent } from '@taiga-ui/cdk/utils/miscellaneous';
3
3
  import { tuiAssert } from '@taiga-ui/cdk/classes';
4
4
 
5
+ /**
6
+ * @deprecated: use {@link tuiCanScroll} instead
7
+ */
8
+ // eslint-disable-next-line @typescript-eslint/naming-convention
5
9
  function canScroll(element, rootElement, vertical, scrollEnd) {
6
10
  return vertical
7
11
  ? canScrollVertical(element, rootElement, scrollEnd)
8
12
  : canScrollHorizontal(element, rootElement, scrollEnd);
9
13
  }
14
+ var tuiCanScroll = canScroll;
10
15
  function canScrollVertical(element, rootElement, scrollEnd) {
11
16
  var currentElement = element;
12
17
  while (currentElement !== rootElement.parentElement) {
@@ -44,10 +49,15 @@ function canScrollHorizontal(element, rootElement, scrollEnd) {
44
49
  return false;
45
50
  }
46
51
 
52
+ /**
53
+ * @deprecated: use {@link tuiContainsOrAfter} instead
54
+ */
55
+ // eslint-disable-next-line @typescript-eslint/naming-convention
47
56
  function containsOrAfter(current, node) {
48
57
  return (current.contains(node) ||
49
58
  !!(node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING));
50
59
  }
60
+ var tuiContainsOrAfter = containsOrAfter;
51
61
 
52
62
  /** @deprecated only needed for IE, remove in 3.0 */
53
63
  function tuiCustomEvent(name, _a, documentRef) {
@@ -61,19 +71,24 @@ function tuiCustomEvent(name, _a, documentRef) {
61
71
  }
62
72
 
63
73
  /**
74
+ * @deprecated: use {@link tuiGetActualTarget} instead
64
75
  * Gets actual target from open Shadow DOM if event happened within it
65
76
  */
77
+ // eslint-disable-next-line @typescript-eslint/naming-convention
66
78
  function getActualTarget(event) {
67
79
  if ('composedPath' in event) {
68
80
  return event.composedPath()[0];
69
81
  }
70
82
  return event.target;
71
83
  }
84
+ var tuiGetActualTarget = getActualTarget;
72
85
 
73
86
  var DEFAULT_FORMAT = 'text/plain';
74
87
  /**
88
+ * @deprecated: use {@link tuiGetClipboardDataText} instead
75
89
  * Gets text from data of clipboardEvent, it also works in IE and Edge browsers
76
90
  */
91
+ // eslint-disable-next-line @typescript-eslint/naming-convention
77
92
  function getClipboardDataText(event, format) {
78
93
  if (format === void 0) { format = DEFAULT_FORMAT; }
79
94
  return 'clipboardData' in event && event.clipboardData !== null
@@ -81,11 +96,13 @@ function getClipboardDataText(event, format) {
81
96
  event.clipboardData.getData(DEFAULT_FORMAT)
82
97
  : event.target.ownerDocument.defaultView.clipboardData.getData('text');
83
98
  }
99
+ var tuiGetClipboardDataText = getClipboardDataText;
84
100
 
85
101
  /**
86
- * Gets closest element by selector i.e. {@link Element.closest}
87
102
  * @deprecated only needed for IE, remove in 3.0
103
+ * Gets the closest element by selector i.e. {@link Element.closest}
88
104
  */
105
+ // eslint-disable-next-line @typescript-eslint/naming-convention
89
106
  function getClosestElement(element, selector) {
90
107
  var closest = Element.prototype.closest;
91
108
  if (closest) {
@@ -101,17 +118,24 @@ function getClosestElement(element, selector) {
101
118
  return null;
102
119
  }
103
120
 
121
+ /**
122
+ * @deprecated: use {@link tuiGetDocumentOrShadowRoot} instead
123
+ */
124
+ // eslint-disable-next-line @typescript-eslint/naming-convention
104
125
  function getDocumentOrShadowRoot(node) {
105
126
  return 'getRootNode' in node && node.isConnected
106
127
  ? node.getRootNode()
107
128
  : node.ownerDocument;
108
129
  }
130
+ var tuiGetDocumentOrShadowRoot = getDocumentOrShadowRoot;
109
131
 
110
132
  /**
133
+ * @deprecated: use {@link tuiGetElementObscures} instead
111
134
  * Returns array of Elements covering edges of given element or null if at least one edge middle point is visible
112
135
  *
113
136
  * CAUTION: Empty array means element if offscreen i.e. covered by no elements, rather than not covered
114
137
  */
138
+ // eslint-disable-next-line @typescript-eslint/naming-convention
115
139
  function getElementObscurers(element) {
116
140
  var ownerDocument = element.ownerDocument;
117
141
  if (!ownerDocument || !ownerDocument.defaultView) {
@@ -139,14 +163,17 @@ function getElementObscurers(element) {
139
163
  var filtered = nonNull.filter(function (el) { return !element.contains(el); });
140
164
  return filtered.length === 4 ? filtered : null;
141
165
  }
166
+ var tuiGetElementObscures = getElementObscurers;
142
167
 
143
168
  /**
169
+ * @deprecated: use {@link tuiGetElementOffset} instead
144
170
  * Calculates offset for an element relative to it's parent several levels above
145
171
  *
146
172
  * @param host parent element
147
173
  * @param element
148
174
  * @return object with offsetTop and offsetLeft number properties
149
175
  */
176
+ // eslint-disable-next-line @typescript-eslint/naming-convention
150
177
  function getElementOffset(host, element) {
151
178
  tuiAssert.assert(host.contains(element), 'Host must contain element');
152
179
  var offsetTop = element.offsetTop, offsetLeft = element.offsetLeft, offsetParent = element.offsetParent;
@@ -158,13 +185,16 @@ function getElementOffset(host, element) {
158
185
  }
159
186
  return { offsetTop: offsetTop, offsetLeft: offsetLeft };
160
187
  }
188
+ var tuiGetElementOffset = getElementOffset;
161
189
 
162
190
  /**
163
- * Finds nearest parent with scroll in it
191
+ * @deprecated: use {@link tuiGetScrollParent} instead
192
+ * Finds the nearest parent with scroll in it
164
193
  *
165
194
  * @param element initial element
166
195
  * @param vertical flag for orientation of scroll
167
196
  */
197
+ // eslint-disable-next-line @typescript-eslint/naming-convention
168
198
  function getScrollParent(element, vertical) {
169
199
  if (vertical === void 0) { vertical = true; }
170
200
  if (element === null) {
@@ -178,6 +208,7 @@ function getScrollParent(element, vertical) {
178
208
  }
179
209
  return getScrollParent(element.parentElement, vertical);
180
210
  }
211
+ var tuiGetScrollParent = getScrollParent;
181
212
 
182
213
  function tuiIsFormFieldElement(element) {
183
214
  var textfield = element;
@@ -203,35 +234,59 @@ function tuiGetSelectedText(_a) {
203
234
  : ((_b = getSelection()) === null || _b === void 0 ? void 0 : _b.toString()) || null;
204
235
  }
205
236
 
237
+ /**
238
+ * @deprecated: use {@link tuiIsCurrentTarget} instead
239
+ */
240
+ // eslint-disable-next-line @typescript-eslint/naming-convention
206
241
  function isCurrentTarget(_a) {
207
242
  var target = _a.target, currentTarget = _a.currentTarget;
208
243
  return target === currentTarget;
209
244
  }
245
+ var tuiIsCurrentTarget = isCurrentTarget;
210
246
 
211
247
  /**
248
+ * @deprecated: use {@link tuiIsInsideIframe} instead
212
249
  * Checks if an app is running inside <iframe /> tag
213
250
  */
251
+ // eslint-disable-next-line @typescript-eslint/naming-convention
214
252
  function isInsideIframe(windowRef) {
215
253
  return windowRef.parent !== windowRef;
216
254
  }
255
+ var tuiIsInsideIframe = isInsideIframe;
217
256
 
218
257
  /**
258
+ * @deprecated: use {@link tuiIsNodeIn} instead
219
259
  * Checks if node is inside a specific selector
220
260
  *
221
261
  * @param node
222
262
  * @param selector
223
263
  * @return true if node is inside a particular selector
224
264
  */
265
+ // eslint-disable-next-line @typescript-eslint/naming-convention
225
266
  function isNodeIn(node, selector) {
226
267
  return node.nodeType === Node.TEXT_NODE
227
268
  ? !!node.parentElement && !!getClosestElement(node.parentElement, selector)
228
269
  : node.nodeType === Node.ELEMENT_NODE &&
229
270
  !!getClosestElement(node, selector);
230
271
  }
272
+ var tuiIsNodeIn = isNodeIn;
273
+
274
+ function tuiPointToClientRect(x, y) {
275
+ if (x === void 0) { x = 0; }
276
+ if (y === void 0) { y = 0; }
277
+ return {
278
+ left: x,
279
+ right: x,
280
+ top: y,
281
+ bottom: y,
282
+ width: 0,
283
+ height: 0,
284
+ };
285
+ }
231
286
 
232
287
  /**
233
288
  * Generated bundle index. Do not edit.
234
289
  */
235
290
 
236
- export { canScroll, containsOrAfter, getActualTarget, getClipboardDataText, getClosestElement, getDocumentOrShadowRoot, getElementObscurers, getElementOffset, getScrollParent, isCurrentTarget, isInsideIframe, isNodeIn, tuiCustomEvent, tuiGetSelectedText, tuiIsFormFieldElement };
291
+ export { canScroll, containsOrAfter, getActualTarget, getClipboardDataText, getClosestElement, getDocumentOrShadowRoot, getElementObscurers, getElementOffset, getScrollParent, isCurrentTarget, isInsideIframe, isNodeIn, tuiCanScroll, tuiContainsOrAfter, tuiCustomEvent, tuiGetActualTarget, tuiGetClipboardDataText, tuiGetDocumentOrShadowRoot, tuiGetElementObscures, tuiGetElementOffset, tuiGetScrollParent, tuiGetSelectedText, tuiIsCurrentTarget, tuiIsFormFieldElement, tuiIsInsideIframe, tuiIsNodeIn, tuiPointToClientRect };
237
292
  //# sourceMappingURL=taiga-ui-cdk-utils-dom.js.map
@@ -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
+ var 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, preventScroll) {
29
33
  if (focused === void 0) { focused = true; }
30
34
  if (preventScroll === void 0) { preventScroll = false; }
@@ -37,8 +41,10 @@ function setNativeFocused(element, focused, preventScroll) {
37
41
  }
38
42
 
39
43
  /**
44
+ * @deprecated: use {@link tuiBlurNativeFocused} instead
40
45
  * Finds and blurs current active element, including shadow DOM
41
46
  */
47
+ // eslint-disable-next-line @typescript-eslint/naming-convention
42
48
  function blurNativeFocused(documentRef) {
43
49
  var activeElement = getNativeFocused(documentRef);
44
50
  // TODO: iframe warning
@@ -46,13 +52,16 @@ function blurNativeFocused(documentRef) {
46
52
  setNativeFocused(activeElement, false);
47
53
  }
48
54
  }
55
+ var tuiBlurNativeFocused = blurNativeFocused;
49
56
 
50
57
  /**
58
+ * @deprecated: use {@link tuiIsNativeKeyboardFocusable} instead
51
59
  * Checks for signs that element can be focused with keyboard. tabIndex above 0 is ignored to
52
60
  * only target natural focus order. Not checking the possibility of an element to
53
61
  * be focused, for example element can have display: none applied to it or any other
54
62
  * circumstances could prevent actual focus.
55
63
  */
64
+ // eslint-disable-next-line @typescript-eslint/naming-convention
56
65
  function isNativeKeyboardFocusable(element) {
57
66
  if (element.hasAttribute('disabled') || element.getAttribute('tabIndex') === '-1') {
58
67
  return false;
@@ -79,13 +88,20 @@ function isNativeKeyboardFocusable(element) {
79
88
  return false;
80
89
  }
81
90
  }
91
+ var tuiIsNativeKeyboardFocusable = isNativeKeyboardFocusable;
82
92
 
93
+ /**
94
+ * @deprecated: use {@link tuiIsNativeMouseFocusable} instead
95
+ */
96
+ // eslint-disable-next-line @typescript-eslint/naming-convention
83
97
  function isNativeMouseFocusable(element) {
84
98
  return (!element.hasAttribute('disabled') &&
85
99
  (element.getAttribute('tabIndex') === '-1' || isNativeKeyboardFocusable(element)));
86
100
  }
101
+ var tuiIsNativeMouseFocusable = isNativeMouseFocusable;
87
102
 
88
103
  /**
104
+ * @deprecated: use {@link tuiGetClosestFocusable} instead
89
105
  * Finds the closest element that can be focused with a keyboard or mouse in theory
90
106
  *
91
107
  * @param initial current HTML element
@@ -94,6 +110,7 @@ function isNativeMouseFocusable(element) {
94
110
  * @param keyboard determine if only keyboard focus is of interest
95
111
  *
96
112
  */
113
+ // eslint-disable-next-line @typescript-eslint/naming-convention
97
114
  function getClosestFocusable(initial, prev, root, keyboard) {
98
115
  if (prev === void 0) { prev = false; }
99
116
  if (keyboard === void 0) { keyboard = true; }
@@ -116,10 +133,14 @@ function getClosestFocusable(initial, prev, root, keyboard) {
116
133
  }
117
134
  return null;
118
135
  }
119
- /** @deprecated use getClosestFocusable */
136
+ /**
137
+ * @deprecated: use {@link tuiGetClosestFocusable} instead
138
+ */
120
139
  var getClosestKeyboardFocusable = getClosestFocusable;
140
+ var tuiGetClosestFocusable = getClosestFocusable;
121
141
 
122
142
  /**
143
+ * @deprecated: use {@link tuiIsNativeFocused} instead
123
144
  * Checks if element is focused.
124
145
  *
125
146
  * Could return true even after blur since element remains focused if you switch away from a browser tab.
@@ -127,16 +148,20 @@ var getClosestKeyboardFocusable = getClosestFocusable;
127
148
  * @param node or null (as a common return value of DOM nodes walking)
128
149
  * @return true if focused
129
150
  */
151
+ // eslint-disable-next-line @typescript-eslint/naming-convention
130
152
  function isNativeFocused(node) {
131
153
  return (!!node && !!node.ownerDocument && getNativeFocused(node.ownerDocument) === node);
132
154
  }
155
+ var tuiIsNativeFocused = isNativeFocused;
133
156
 
134
157
  /**
158
+ * @deprecated: use {@link tuiIsNativeFocusedIn} instead
135
159
  * Checks if focused element is within given element.
136
160
  *
137
161
  * @param node
138
162
  * @return true if focused node is contained within element
139
163
  */
164
+ // eslint-disable-next-line @typescript-eslint/naming-convention
140
165
  function isNativeFocusedIn(node) {
141
166
  // !node.contains - check for IE11
142
167
  if (!node.ownerDocument || !node.contains) {
@@ -145,14 +170,17 @@ function isNativeFocusedIn(node) {
145
170
  var nativeFocused = getNativeFocused(node.ownerDocument);
146
171
  return nativeFocused !== null && node.contains(nativeFocused);
147
172
  }
173
+ var tuiIsNativeFocusedIn = isNativeFocusedIn;
148
174
 
149
175
  /**
176
+ * @deprecated: use {@link tuiMoveFocus} instead
150
177
  * Utility method for moving focus in a list of elements
151
178
  *
152
179
  * @param currentIndex currently focused index
153
180
  * @param elements array of focusable elements
154
181
  * @param step a step to move focus by, typically -1 or 1
155
182
  */
183
+ // eslint-disable-next-line @typescript-eslint/naming-convention
156
184
  function moveFocus(currentIndex, elements, step) {
157
185
  currentIndex += step;
158
186
  while (currentIndex >= 0 && currentIndex < elements.length) {
@@ -163,14 +191,17 @@ function moveFocus(currentIndex, elements, step) {
163
191
  currentIndex += step;
164
192
  }
165
193
  }
194
+ var tuiMoveFocus = moveFocus;
166
195
 
167
196
  /**
197
+ * @deprecated: use {@link tuiSetNativeMouseFocused} instead
168
198
  * Focuses or blurs element with mouse action imitation (to spoof {@link TuiFocusVisibleService})
169
199
  *
170
200
  * @param element
171
201
  * @param focused desired focused state
172
202
  * @param preventScroll optionally prevent native browser scroll after focus
173
203
  */
204
+ // eslint-disable-next-line @typescript-eslint/naming-convention
174
205
  function setNativeMouseFocused(element, focused, preventScroll) {
175
206
  if (focused === void 0) { focused = true; }
176
207
  if (preventScroll === void 0) { preventScroll = false; }
@@ -187,10 +218,11 @@ function setNativeMouseFocused(element, focused, preventScroll) {
187
218
  }
188
219
  setNativeFocused(element, focused, preventScroll);
189
220
  }
221
+ var tuiSetNativeMouseFocused = setNativeMouseFocused;
190
222
 
191
223
  /**
192
224
  * Generated bundle index. Do not edit.
193
225
  */
194
226
 
195
- export { blurNativeFocused, getClosestFocusable, getClosestKeyboardFocusable, getNativeFocused, isNativeFocused, isNativeFocusedIn, isNativeKeyboardFocusable, isNativeMouseFocusable, moveFocus, setNativeFocused, setNativeMouseFocused };
227
+ export { blurNativeFocused, getClosestFocusable, getClosestKeyboardFocusable, getNativeFocused, isNativeFocused, isNativeFocusedIn, isNativeKeyboardFocusable, isNativeMouseFocusable, moveFocus, setNativeFocused, setNativeMouseFocused, tuiBlurNativeFocused, tuiGetClosestFocusable, tuiGetNativeFocused, tuiIsNativeFocused, tuiIsNativeFocusedIn, tuiIsNativeKeyboardFocusable, tuiIsNativeMouseFocusable, tuiMoveFocus, tuiSetNativeMouseFocused };
196
228
  //# 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
  if (padString === void 0) { padString = ' '; }
14
14
  var padSize = minResultLength - sourceString.length;
@@ -19,16 +19,19 @@ function padStart(sourceString, minResultLength, padString) {
19
19
  }
20
20
 
21
21
  /**
22
+ * @deprecated: use {@link tuiPx} instead
22
23
  * Adds 'px' to the number and turns it into a string
23
24
  */
25
+ // eslint-disable-next-line @typescript-eslint/naming-convention
24
26
  function px(value) {
25
27
  tuiAssert.assert(Number.isFinite(value), 'Value must be finite number');
26
28
  return value + "px";
27
29
  }
30
+ var tuiPx = px;
28
31
 
29
32
  /**
30
33
  * Generated bundle index. Do not edit.
31
34
  */
32
35
 
33
- export { padStart, px };
36
+ export { padStart, px, tuiPx };
34
37
  //# 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,SAAuB;IAAvB,0BAAA,EAAA,eAAuB;IAEvB,IAAM,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,OAAU,KAAK,OAAI,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,SAAuB;IAAvB,0BAAA,EAAA,eAAuB;IAEvB,IAAM,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,OAAU,KAAK,OAAI,CAAC;AACxB,CAAC;IAEY,KAAK,GAAG;;ACbrB;;;;;;"}