@taiga-ui/cdk 3.51.0-canary.4016f4d → 3.51.0-canary.8873fad

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 (772) hide show
  1. package/abstract/control.d.ts +6 -0
  2. package/abstract/interactive.d.ts +9 -0
  3. package/abstract/portal-host.d.ts +4 -0
  4. package/abstract/portal-service.d.ts +3 -0
  5. package/abstract/taiga-ui-cdk-abstract.d.ts +3 -0
  6. package/abstract/theme-switcher.d.ts +6 -0
  7. package/bundles/taiga-ui-cdk-abstract.umd.js +34 -0
  8. package/bundles/taiga-ui-cdk-abstract.umd.js.map +1 -1
  9. package/bundles/taiga-ui-cdk-classes.umd.js +9 -0
  10. package/bundles/taiga-ui-cdk-classes.umd.js.map +1 -1
  11. package/bundles/taiga-ui-cdk-coercion.umd.js +10 -0
  12. package/bundles/taiga-ui-cdk-coercion.umd.js.map +1 -1
  13. package/bundles/taiga-ui-cdk-components-alert-host.umd.js +8 -0
  14. package/bundles/taiga-ui-cdk-components-alert-host.umd.js.map +1 -1
  15. package/bundles/taiga-ui-cdk-components-dialog-host.umd.js +11 -0
  16. package/bundles/taiga-ui-cdk-components-dialog-host.umd.js.map +1 -1
  17. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.js +12 -0
  18. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.js.map +1 -1
  19. package/bundles/taiga-ui-cdk-components-scroll-controls.umd.js +4 -0
  20. package/bundles/taiga-ui-cdk-components-scroll-controls.umd.js.map +1 -1
  21. package/bundles/taiga-ui-cdk-components.umd.js +4 -0
  22. package/bundles/taiga-ui-cdk-components.umd.js.map +1 -1
  23. package/bundles/taiga-ui-cdk-constants.umd.js +110 -2
  24. package/bundles/taiga-ui-cdk-constants.umd.js.map +1 -1
  25. package/bundles/taiga-ui-cdk-date-time.umd.js +284 -0
  26. package/bundles/taiga-ui-cdk-date-time.umd.js.map +1 -1
  27. package/bundles/taiga-ui-cdk-decorators.umd.js +26 -0
  28. package/bundles/taiga-ui-cdk-decorators.umd.js.map +1 -1
  29. package/bundles/taiga-ui-cdk-directives-active-zone.umd.js +4 -0
  30. package/bundles/taiga-ui-cdk-directives-active-zone.umd.js.map +1 -1
  31. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js +44 -1
  32. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js.map +1 -1
  33. package/bundles/taiga-ui-cdk-directives-autofilled.umd.js +4 -0
  34. package/bundles/taiga-ui-cdk-directives-autofilled.umd.js.map +1 -1
  35. package/bundles/taiga-ui-cdk-directives-checked.umd.js +4 -0
  36. package/bundles/taiga-ui-cdk-directives-checked.umd.js.map +1 -1
  37. package/bundles/taiga-ui-cdk-directives-click-outside.umd.js +4 -0
  38. package/bundles/taiga-ui-cdk-directives-click-outside.umd.js.map +1 -1
  39. package/bundles/taiga-ui-cdk-directives-control.umd.js +4 -0
  40. package/bundles/taiga-ui-cdk-directives-control.umd.js.map +1 -1
  41. package/bundles/taiga-ui-cdk-directives-copy-processor.umd.js +4 -0
  42. package/bundles/taiga-ui-cdk-directives-copy-processor.umd.js.map +1 -1
  43. package/bundles/taiga-ui-cdk-directives-drag.umd.js +10 -0
  44. package/bundles/taiga-ui-cdk-directives-drag.umd.js.map +1 -1
  45. package/bundles/taiga-ui-cdk-directives-droppable.umd.js +5 -0
  46. package/bundles/taiga-ui-cdk-directives-droppable.umd.js.map +1 -1
  47. package/bundles/taiga-ui-cdk-directives-element.umd.js +18 -0
  48. package/bundles/taiga-ui-cdk-directives-element.umd.js.map +1 -1
  49. package/bundles/taiga-ui-cdk-directives-focus-trap.umd.js +17 -0
  50. package/bundles/taiga-ui-cdk-directives-focus-trap.umd.js.map +1 -1
  51. package/bundles/taiga-ui-cdk-directives-focus-visible.umd.js +9 -0
  52. package/bundles/taiga-ui-cdk-directives-focus-visible.umd.js.map +1 -1
  53. package/bundles/taiga-ui-cdk-directives-focusable.umd.js +10 -0
  54. package/bundles/taiga-ui-cdk-directives-focusable.umd.js.map +1 -1
  55. package/bundles/taiga-ui-cdk-directives-focused.umd.js +9 -0
  56. package/bundles/taiga-ui-cdk-directives-focused.umd.js.map +1 -1
  57. package/bundles/taiga-ui-cdk-directives-for-async.umd.js +7 -0
  58. package/bundles/taiga-ui-cdk-directives-for-async.umd.js.map +1 -1
  59. package/bundles/taiga-ui-cdk-directives-for.umd.js +4 -0
  60. package/bundles/taiga-ui-cdk-directives-for.umd.js.map +1 -1
  61. package/bundles/taiga-ui-cdk-directives-high-dpi.umd.js +7 -0
  62. package/bundles/taiga-ui-cdk-directives-high-dpi.umd.js.map +1 -1
  63. package/bundles/taiga-ui-cdk-directives-hovered.umd.js +7 -1
  64. package/bundles/taiga-ui-cdk-directives-hovered.umd.js.map +1 -1
  65. package/bundles/taiga-ui-cdk-directives-item.umd.js +7 -0
  66. package/bundles/taiga-ui-cdk-directives-item.umd.js.map +1 -1
  67. package/bundles/taiga-ui-cdk-directives-let.umd.js +17 -0
  68. package/bundles/taiga-ui-cdk-directives-let.umd.js.map +1 -1
  69. package/bundles/taiga-ui-cdk-directives-media.umd.js +7 -0
  70. package/bundles/taiga-ui-cdk-directives-media.umd.js.map +1 -1
  71. package/bundles/taiga-ui-cdk-directives-obscured.umd.js +7 -0
  72. package/bundles/taiga-ui-cdk-directives-obscured.umd.js.map +1 -1
  73. package/bundles/taiga-ui-cdk-directives-overscroll.umd.js +10 -0
  74. package/bundles/taiga-ui-cdk-directives-overscroll.umd.js.map +1 -1
  75. package/bundles/taiga-ui-cdk-directives-pan.umd.js +7 -0
  76. package/bundles/taiga-ui-cdk-directives-pan.umd.js.map +1 -1
  77. package/bundles/taiga-ui-cdk-directives-platform.umd.js +4 -0
  78. package/bundles/taiga-ui-cdk-directives-platform.umd.js.map +1 -1
  79. package/bundles/taiga-ui-cdk-directives-portal.umd.js +4 -0
  80. package/bundles/taiga-ui-cdk-directives-portal.umd.js.map +1 -1
  81. package/bundles/taiga-ui-cdk-directives-pressed.umd.js +4 -0
  82. package/bundles/taiga-ui-cdk-directives-pressed.umd.js.map +1 -1
  83. package/bundles/taiga-ui-cdk-directives-prevent-default.umd.js +12 -0
  84. package/bundles/taiga-ui-cdk-directives-prevent-default.umd.js.map +1 -1
  85. package/bundles/taiga-ui-cdk-directives-repeat-times.umd.js +11 -0
  86. package/bundles/taiga-ui-cdk-directives-repeat-times.umd.js.map +1 -1
  87. package/bundles/taiga-ui-cdk-directives-resize.umd.js +7 -0
  88. package/bundles/taiga-ui-cdk-directives-resize.umd.js.map +1 -1
  89. package/bundles/taiga-ui-cdk-directives-resizer.umd.js +5 -0
  90. package/bundles/taiga-ui-cdk-directives-resizer.umd.js.map +1 -1
  91. package/bundles/taiga-ui-cdk-directives-swipe.umd.js +7 -0
  92. package/bundles/taiga-ui-cdk-directives-swipe.umd.js.map +1 -1
  93. package/bundles/taiga-ui-cdk-directives-validator.umd.js +4 -0
  94. package/bundles/taiga-ui-cdk-directives-validator.umd.js.map +1 -1
  95. package/bundles/taiga-ui-cdk-directives-value-changes.umd.js +4 -0
  96. package/bundles/taiga-ui-cdk-directives-value-changes.umd.js.map +1 -1
  97. package/bundles/taiga-ui-cdk-directives-zoom.umd.js +7 -0
  98. package/bundles/taiga-ui-cdk-directives-zoom.umd.js.map +1 -1
  99. package/bundles/taiga-ui-cdk-directives.umd.js +4 -0
  100. package/bundles/taiga-ui-cdk-directives.umd.js.map +1 -1
  101. package/bundles/taiga-ui-cdk-enums.umd.js +8 -0
  102. package/bundles/taiga-ui-cdk-enums.umd.js.map +1 -1
  103. package/bundles/taiga-ui-cdk-exceptions.umd.js +4 -0
  104. package/bundles/taiga-ui-cdk-exceptions.umd.js.map +1 -1
  105. package/bundles/taiga-ui-cdk-interfaces.umd.js +3 -1
  106. package/bundles/taiga-ui-cdk-interfaces.umd.js.map +1 -1
  107. package/bundles/taiga-ui-cdk-observables.umd.js +34 -1
  108. package/bundles/taiga-ui-cdk-observables.umd.js.map +1 -1
  109. package/bundles/taiga-ui-cdk-pipes-filter.umd.js +4 -0
  110. package/bundles/taiga-ui-cdk-pipes-filter.umd.js.map +1 -1
  111. package/bundles/taiga-ui-cdk-pipes-is-present.umd.js +4 -0
  112. package/bundles/taiga-ui-cdk-pipes-is-present.umd.js.map +1 -1
  113. package/bundles/taiga-ui-cdk-pipes-keys.umd.js +4 -0
  114. package/bundles/taiga-ui-cdk-pipes-keys.umd.js.map +1 -1
  115. package/bundles/taiga-ui-cdk-pipes-mapper.umd.js +4 -0
  116. package/bundles/taiga-ui-cdk-pipes-mapper.umd.js.map +1 -1
  117. package/bundles/taiga-ui-cdk-pipes-replace.umd.js +7 -1
  118. package/bundles/taiga-ui-cdk-pipes-replace.umd.js.map +1 -1
  119. package/bundles/taiga-ui-cdk-pipes.umd.js +4 -0
  120. package/bundles/taiga-ui-cdk-pipes.umd.js.map +1 -1
  121. package/bundles/taiga-ui-cdk-services.umd.js +53 -5
  122. package/bundles/taiga-ui-cdk-services.umd.js.map +1 -1
  123. package/bundles/taiga-ui-cdk-tokens.umd.js +109 -5
  124. package/bundles/taiga-ui-cdk-tokens.umd.js.map +1 -1
  125. package/bundles/taiga-ui-cdk-types.umd.js +3 -1
  126. package/bundles/taiga-ui-cdk-types.umd.js.map +1 -1
  127. package/bundles/taiga-ui-cdk-utils-browser.umd.js +4 -0
  128. package/bundles/taiga-ui-cdk-utils-browser.umd.js.map +1 -1
  129. package/bundles/taiga-ui-cdk-utils-color.umd.js +10 -0
  130. package/bundles/taiga-ui-cdk-utils-color.umd.js.map +1 -1
  131. package/bundles/taiga-ui-cdk-utils-dom.umd.js +59 -3
  132. package/bundles/taiga-ui-cdk-utils-dom.umd.js.map +1 -1
  133. package/bundles/taiga-ui-cdk-utils-focus.umd.js +51 -0
  134. package/bundles/taiga-ui-cdk-utils-focus.umd.js.map +1 -1
  135. package/bundles/taiga-ui-cdk-utils-format.umd.js +7 -0
  136. package/bundles/taiga-ui-cdk-utils-format.umd.js.map +1 -1
  137. package/bundles/taiga-ui-cdk-utils-math.umd.js +38 -0
  138. package/bundles/taiga-ui-cdk-utils-math.umd.js.map +1 -1
  139. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js +42 -6
  140. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js.map +1 -1
  141. package/bundles/taiga-ui-cdk-utils-os.umd.js +14 -0
  142. package/bundles/taiga-ui-cdk-utils-os.umd.js.map +1 -1
  143. package/bundles/taiga-ui-cdk-utils-svg.umd.js +19 -1
  144. package/bundles/taiga-ui-cdk-utils-svg.umd.js.map +1 -1
  145. package/bundles/taiga-ui-cdk-utils.umd.js +4 -0
  146. package/bundles/taiga-ui-cdk-utils.umd.js.map +1 -1
  147. package/bundles/taiga-ui-cdk.umd.js +4 -0
  148. package/bundles/taiga-ui-cdk.umd.js.map +1 -1
  149. package/classes/assert.d.ts +5 -0
  150. package/classes/taiga-ui-cdk-classes.d.ts +3 -0
  151. package/coercion/coerce-boolean-property.d.ts +4 -0
  152. package/coercion/taiga-ui-cdk-coercion.d.ts +3 -0
  153. package/components/alert-host/alert-host.component.d.ts +2 -2
  154. package/components/alert-host/taiga-ui-cdk-components-alert-host.d.ts +3 -0
  155. package/components/dialog-host/dialog-host.component.d.ts +3 -0
  156. package/components/dialog-host/taiga-ui-cdk-components-dialog-host.d.ts +3 -0
  157. package/components/dropdown-host/dropdown-host.component.d.ts +3 -0
  158. package/components/dropdown-host/dropdown-portal.service.d.ts +3 -0
  159. package/components/dropdown-host/taiga-ui-cdk-components-dropdown-host.d.ts +3 -0
  160. package/components/scroll-controls/taiga-ui-cdk-components-scroll-controls.d.ts +3 -0
  161. package/components/taiga-ui-cdk-components.d.ts +3 -0
  162. package/constants/always-false-handler.d.ts +3 -0
  163. package/constants/always-true-handler.d.ts +3 -0
  164. package/constants/browser.d.ts +4 -0
  165. package/constants/empty.d.ts +5 -0
  166. package/constants/matcher.d.ts +19 -0
  167. package/constants/parent-animation.d.ts +6 -0
  168. package/constants/stringify.d.ts +3 -0
  169. package/constants/taiga-ui-cdk-constants.d.ts +3 -0
  170. package/constants/unicode-chars.d.ts +51 -0
  171. package/constants/used-icons.d.ts +7 -1
  172. package/constants/version.d.ts +1 -1
  173. package/constants/version.js +1 -1
  174. package/date-time/date-fillers.d.ts +11 -0
  175. package/date-time/date-format.d.ts +3 -0
  176. package/date-time/date-separator.d.ts +3 -0
  177. package/date-time/day-range.d.ts +33 -0
  178. package/date-time/day.d.ts +91 -0
  179. package/date-time/month-range.d.ts +3 -0
  180. package/date-time/month.d.ts +56 -0
  181. package/date-time/taiga-ui-cdk-date-time.d.ts +3 -0
  182. package/date-time/time.d.ts +36 -0
  183. package/date-time/year.d.ts +42 -0
  184. package/decorators/debounce.d.ts +4 -0
  185. package/decorators/default-prop.d.ts +9 -0
  186. package/decorators/pure.d.ts +18 -0
  187. package/decorators/required-setter.d.ts +9 -0
  188. package/decorators/taiga-ui-cdk-decorators.d.ts +3 -0
  189. package/directives/active-zone/taiga-ui-cdk-directives-active-zone.d.ts +3 -0
  190. package/directives/auto-focus/handlers/ios.handler.d.ts +39 -0
  191. package/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.d.ts +3 -0
  192. package/directives/autofilled/taiga-ui-cdk-directives-autofilled.d.ts +3 -0
  193. package/directives/checked/taiga-ui-cdk-directives-checked.d.ts +3 -0
  194. package/directives/click-outside/taiga-ui-cdk-directives-click-outside.d.ts +3 -0
  195. package/directives/control/taiga-ui-cdk-directives-control.d.ts +3 -0
  196. package/directives/copy-processor/taiga-ui-cdk-directives-copy-processor.d.ts +3 -0
  197. package/directives/drag/drag.directive.d.ts +3 -0
  198. package/directives/drag/drag.module.d.ts +3 -0
  199. package/directives/drag/taiga-ui-cdk-directives-drag.d.ts +3 -0
  200. package/directives/droppable/taiga-ui-cdk-directives-droppable.d.ts +3 -0
  201. package/directives/element/taiga-ui-cdk-directives-element.d.ts +3 -0
  202. package/directives/focus-trap/taiga-ui-cdk-directives-focus-trap.d.ts +3 -0
  203. package/directives/focus-visible/focus-visible.directive.d.ts +5 -0
  204. package/directives/focus-visible/taiga-ui-cdk-directives-focus-visible.d.ts +3 -0
  205. package/directives/focusable/focusable.directive.d.ts +6 -0
  206. package/directives/focusable/taiga-ui-cdk-directives-focusable.d.ts +3 -0
  207. package/directives/focused/focused.directive.d.ts +5 -0
  208. package/directives/focused/taiga-ui-cdk-directives-focused.d.ts +3 -0
  209. package/directives/for/taiga-ui-cdk-directives-for.d.ts +3 -0
  210. package/directives/for-async/for-async.module.d.ts +3 -0
  211. package/directives/for-async/taiga-ui-cdk-directives-for-async.d.ts +3 -0
  212. package/directives/high-dpi/high-dpi.directive.d.ts +3 -0
  213. package/directives/high-dpi/taiga-ui-cdk-directives-high-dpi.d.ts +3 -0
  214. package/directives/hovered/taiga-ui-cdk-directives-hovered.d.ts +3 -0
  215. package/directives/item/item.directive.d.ts +3 -0
  216. package/directives/item/taiga-ui-cdk-directives-item.d.ts +3 -0
  217. package/directives/let/let-context.d.ts +3 -0
  218. package/directives/let/let.directive.d.ts +10 -0
  219. package/directives/let/taiga-ui-cdk-directives-let.d.ts +3 -0
  220. package/directives/media/taiga-ui-cdk-directives-media.d.ts +3 -0
  221. package/directives/obscured/obscured.directive.d.ts +3 -0
  222. package/directives/obscured/taiga-ui-cdk-directives-obscured.d.ts +3 -0
  223. package/directives/overscroll/overscroll.directive.d.ts +3 -0
  224. package/directives/overscroll/taiga-ui-cdk-directives-overscroll.d.ts +3 -0
  225. package/directives/pan/pan.module.d.ts +3 -0
  226. package/directives/pan/taiga-ui-cdk-directives-pan.d.ts +3 -0
  227. package/directives/platform/taiga-ui-cdk-directives-platform.d.ts +3 -0
  228. package/directives/portal/taiga-ui-cdk-directives-portal.d.ts +3 -0
  229. package/directives/pressed/taiga-ui-cdk-directives-pressed.d.ts +3 -0
  230. package/directives/prevent-default/prevent-default.directive.d.ts +5 -0
  231. package/directives/prevent-default/prevent-default.module.d.ts +3 -0
  232. package/directives/prevent-default/taiga-ui-cdk-directives-prevent-default.d.ts +3 -0
  233. package/directives/repeat-times/repeat-times.directive.d.ts +7 -0
  234. package/directives/repeat-times/taiga-ui-cdk-directives-repeat-times.d.ts +3 -0
  235. package/directives/resize/resize.module.d.ts +3 -0
  236. package/directives/resize/taiga-ui-cdk-directives-resize.d.ts +3 -0
  237. package/directives/resizer/taiga-ui-cdk-directives-resizer.d.ts +3 -0
  238. package/directives/swipe/swipe.module.d.ts +3 -0
  239. package/directives/swipe/taiga-ui-cdk-directives-swipe.d.ts +3 -0
  240. package/directives/taiga-ui-cdk-directives.d.ts +3 -0
  241. package/directives/validator/taiga-ui-cdk-directives-validator.d.ts +3 -0
  242. package/directives/value-changes/taiga-ui-cdk-directives-value-changes.d.ts +3 -0
  243. package/directives/zoom/taiga-ui-cdk-directives-zoom.d.ts +3 -0
  244. package/directives/zoom/zoom.module.d.ts +3 -0
  245. package/enums/taiga-ui-cdk-enums.d.ts +3 -0
  246. package/esm2015/abstract/control.js +7 -1
  247. package/esm2015/abstract/interactive.js +11 -1
  248. package/esm2015/abstract/portal-host.js +6 -1
  249. package/esm2015/abstract/portal-service.js +4 -1
  250. package/esm2015/abstract/taiga-ui-cdk-abstract.js +4 -1
  251. package/esm2015/abstract/theme-switcher.js +7 -1
  252. package/esm2015/classes/assert.js +6 -1
  253. package/esm2015/classes/taiga-ui-cdk-classes.js +4 -1
  254. package/esm2015/coercion/coerce-boolean-property.js +7 -1
  255. package/esm2015/coercion/taiga-ui-cdk-coercion.js +4 -1
  256. package/esm2015/components/alert-host/alert-host.component.js +5 -1
  257. package/esm2015/components/alert-host/taiga-ui-cdk-components-alert-host.js +4 -1
  258. package/esm2015/components/dialog-host/dialog-host.component.js +8 -1
  259. package/esm2015/components/dialog-host/taiga-ui-cdk-components-dialog-host.js +4 -1
  260. package/esm2015/components/dropdown-host/dropdown-host.component.js +6 -1
  261. package/esm2015/components/dropdown-host/dropdown-portal.service.js +4 -1
  262. package/esm2015/components/dropdown-host/taiga-ui-cdk-components-dropdown-host.js +4 -1
  263. package/esm2015/components/scroll-controls/taiga-ui-cdk-components-scroll-controls.js +4 -1
  264. package/esm2015/components/taiga-ui-cdk-components.js +4 -1
  265. package/esm2015/constants/always-false-handler.js +5 -1
  266. package/esm2015/constants/always-true-handler.js +5 -1
  267. package/esm2015/constants/browser.js +5 -1
  268. package/esm2015/constants/empty.js +6 -1
  269. package/esm2015/constants/matcher.js +20 -1
  270. package/esm2015/constants/parent-animation.js +7 -1
  271. package/esm2015/constants/stringify.js +4 -1
  272. package/esm2015/constants/svg-node-filter.js +3 -1
  273. package/esm2015/constants/taiga-ui-cdk-constants.js +4 -1
  274. package/esm2015/constants/unicode-chars.js +52 -1
  275. package/esm2015/constants/used-icons.js +8 -2
  276. package/esm2015/constants/version.js +2 -2
  277. package/esm2015/date-time/date-fillers.js +12 -1
  278. package/esm2015/date-time/date-format.js +4 -1
  279. package/esm2015/date-time/date-separator.js +4 -1
  280. package/esm2015/date-time/day-range.js +34 -1
  281. package/esm2015/date-time/day.js +94 -1
  282. package/esm2015/date-time/month-range.js +4 -1
  283. package/esm2015/date-time/month.js +57 -1
  284. package/esm2015/date-time/taiga-ui-cdk-date-time.js +4 -1
  285. package/esm2015/date-time/time.js +37 -1
  286. package/esm2015/date-time/year.js +43 -1
  287. package/esm2015/decorators/debounce.js +5 -1
  288. package/esm2015/decorators/default-prop.js +10 -1
  289. package/esm2015/decorators/required-setter.js +10 -1
  290. package/esm2015/decorators/taiga-ui-cdk-decorators.js +4 -1
  291. package/esm2015/directives/active-zone/taiga-ui-cdk-directives-active-zone.js +4 -1
  292. package/esm2015/directives/auto-focus/autofocus.options.js +3 -2
  293. package/esm2015/directives/auto-focus/handlers/ios.handler.js +40 -1
  294. package/esm2015/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.js +4 -1
  295. package/esm2015/directives/autofilled/taiga-ui-cdk-directives-autofilled.js +4 -1
  296. package/esm2015/directives/checked/taiga-ui-cdk-directives-checked.js +4 -1
  297. package/esm2015/directives/click-outside/taiga-ui-cdk-directives-click-outside.js +4 -1
  298. package/esm2015/directives/control/taiga-ui-cdk-directives-control.js +4 -1
  299. package/esm2015/directives/copy-processor/taiga-ui-cdk-directives-copy-processor.js +4 -1
  300. package/esm2015/directives/drag/drag.directive.js +4 -1
  301. package/esm2015/directives/drag/drag.module.js +4 -1
  302. package/esm2015/directives/drag/taiga-ui-cdk-directives-drag.js +4 -1
  303. package/esm2015/directives/droppable/droppable.directive.js +2 -1
  304. package/esm2015/directives/droppable/taiga-ui-cdk-directives-droppable.js +4 -1
  305. package/esm2015/directives/element/element.directive.js +15 -1
  306. package/esm2015/directives/element/taiga-ui-cdk-directives-element.js +4 -1
  307. package/esm2015/directives/focus-trap/focus-trap.directive.js +14 -1
  308. package/esm2015/directives/focus-trap/taiga-ui-cdk-directives-focus-trap.js +4 -1
  309. package/esm2015/directives/focus-visible/focus-visible.directive.js +6 -1
  310. package/esm2015/directives/focus-visible/taiga-ui-cdk-directives-focus-visible.js +4 -1
  311. package/esm2015/directives/focusable/focusable.directive.js +7 -1
  312. package/esm2015/directives/focusable/taiga-ui-cdk-directives-focusable.js +4 -1
  313. package/esm2015/directives/focused/focused.directive.js +6 -1
  314. package/esm2015/directives/focused/taiga-ui-cdk-directives-focused.js +4 -1
  315. package/esm2015/directives/for/taiga-ui-cdk-directives-for.js +4 -1
  316. package/esm2015/directives/for-async/for-async.module.js +4 -1
  317. package/esm2015/directives/for-async/taiga-ui-cdk-directives-for-async.js +4 -1
  318. package/esm2015/directives/high-dpi/high-dpi.directive.js +4 -1
  319. package/esm2015/directives/high-dpi/taiga-ui-cdk-directives-high-dpi.js +4 -1
  320. package/esm2015/directives/hovered/hovered.service.js +4 -2
  321. package/esm2015/directives/hovered/taiga-ui-cdk-directives-hovered.js +4 -1
  322. package/esm2015/directives/item/item.directive.js +4 -1
  323. package/esm2015/directives/item/taiga-ui-cdk-directives-item.js +4 -1
  324. package/esm2015/directives/let/let-context.js +4 -1
  325. package/esm2015/directives/let/let.directive.js +11 -1
  326. package/esm2015/directives/let/taiga-ui-cdk-directives-let.js +4 -1
  327. package/esm2015/directives/media/media.directive.js +4 -1
  328. package/esm2015/directives/media/taiga-ui-cdk-directives-media.js +4 -1
  329. package/esm2015/directives/obscured/obscured.directive.js +4 -1
  330. package/esm2015/directives/obscured/taiga-ui-cdk-directives-obscured.js +4 -1
  331. package/esm2015/directives/overscroll/overscroll.directive.js +7 -1
  332. package/esm2015/directives/overscroll/taiga-ui-cdk-directives-overscroll.js +4 -1
  333. package/esm2015/directives/pan/pan.module.js +4 -1
  334. package/esm2015/directives/pan/taiga-ui-cdk-directives-pan.js +4 -1
  335. package/esm2015/directives/platform/taiga-ui-cdk-directives-platform.js +4 -1
  336. package/esm2015/directives/portal/taiga-ui-cdk-directives-portal.js +4 -1
  337. package/esm2015/directives/pressed/taiga-ui-cdk-directives-pressed.js +4 -1
  338. package/esm2015/directives/prevent-default/prevent-default.directive.js +6 -1
  339. package/esm2015/directives/prevent-default/prevent-default.module.js +4 -1
  340. package/esm2015/directives/prevent-default/taiga-ui-cdk-directives-prevent-default.js +4 -1
  341. package/esm2015/directives/repeat-times/repeat-times.directive.js +8 -1
  342. package/esm2015/directives/repeat-times/taiga-ui-cdk-directives-repeat-times.js +4 -1
  343. package/esm2015/directives/resize/resize.module.js +4 -1
  344. package/esm2015/directives/resize/taiga-ui-cdk-directives-resize.js +4 -1
  345. package/esm2015/directives/resizer/resizer.directive.js +2 -1
  346. package/esm2015/directives/resizer/taiga-ui-cdk-directives-resizer.js +4 -1
  347. package/esm2015/directives/swipe/swipe.module.js +4 -1
  348. package/esm2015/directives/swipe/taiga-ui-cdk-directives-swipe.js +4 -1
  349. package/esm2015/directives/taiga-ui-cdk-directives.js +4 -1
  350. package/esm2015/directives/validator/taiga-ui-cdk-directives-validator.js +4 -1
  351. package/esm2015/directives/value-changes/taiga-ui-cdk-directives-value-changes.js +4 -1
  352. package/esm2015/directives/zoom/taiga-ui-cdk-directives-zoom.js +4 -1
  353. package/esm2015/directives/zoom/zoom.module.js +4 -1
  354. package/esm2015/enums/day-of-week.js +3 -1
  355. package/esm2015/enums/month-number.js +3 -1
  356. package/esm2015/enums/taiga-ui-cdk-enums.js +4 -1
  357. package/esm2015/exceptions/taiga-ui-cdk-exceptions.js +4 -1
  358. package/esm2015/interfaces/taiga-ui-cdk-interfaces.js +4 -1
  359. package/esm2015/observables/control-value.js +4 -1
  360. package/esm2015/observables/drag-and-drop-from.js +3 -1
  361. package/esm2015/observables/focus-visible-observable.js +6 -2
  362. package/esm2015/observables/is-alive.js +4 -1
  363. package/esm2015/observables/items-query-list-observable.js +7 -1
  364. package/esm2015/observables/mouse-drag-finish-from.js +5 -1
  365. package/esm2015/observables/scroll-from.js +4 -1
  366. package/esm2015/observables/taiga-ui-cdk-observables.js +4 -1
  367. package/esm2015/observables/typed-from-event.js +5 -1
  368. package/esm2015/pipes/filter/filter.pipe.js +1 -1
  369. package/esm2015/pipes/filter/taiga-ui-cdk-pipes-filter.js +4 -1
  370. package/esm2015/pipes/is-present/taiga-ui-cdk-pipes-is-present.js +4 -1
  371. package/esm2015/pipes/keys/taiga-ui-cdk-pipes-keys.js +4 -1
  372. package/esm2015/pipes/mapper/mapper.pipe.js +1 -1
  373. package/esm2015/pipes/mapper/taiga-ui-cdk-pipes-mapper.js +4 -1
  374. package/esm2015/pipes/replace/replace.pipe.js +4 -2
  375. package/esm2015/pipes/replace/taiga-ui-cdk-pipes-replace.js +4 -1
  376. package/esm2015/pipes/taiga-ui-cdk-pipes.js +4 -1
  377. package/esm2015/services/destroy.service.js +9 -1
  378. package/esm2015/services/directive-styles.service.js +4 -1
  379. package/esm2015/services/focus-visible.service.js +6 -1
  380. package/esm2015/services/id.service.js +4 -1
  381. package/esm2015/services/obscured.service.js +10 -2
  382. package/esm2015/services/pan.service.js +4 -2
  383. package/esm2015/services/parents-scroll.service.js +7 -2
  384. package/esm2015/services/resize.service.js +8 -2
  385. package/esm2015/services/static-request.service.js +5 -2
  386. package/esm2015/services/taiga-ui-cdk-services.js +4 -1
  387. package/esm2015/taiga-ui-cdk.js +4 -1
  388. package/esm2015/tokens/active-element.js +26 -4
  389. package/esm2015/tokens/alerts.js +4 -1
  390. package/esm2015/tokens/default-renderer.js +10 -2
  391. package/esm2015/tokens/dialogs.js +5 -1
  392. package/esm2015/tokens/ensure-base-href.js +4 -1
  393. package/esm2015/tokens/focusable-item-accessor.js +4 -1
  394. package/esm2015/tokens/is-android.js +4 -1
  395. package/esm2015/tokens/is-apple.js +4 -1
  396. package/esm2015/tokens/is-chromium.js +4 -1
  397. package/esm2015/tokens/is-cypress.js +5 -1
  398. package/esm2015/tokens/is-e2e.js +4 -1
  399. package/esm2015/tokens/is-firefox.js +4 -1
  400. package/esm2015/tokens/is-ios.js +4 -1
  401. package/esm2015/tokens/is-mobile.js +5 -1
  402. package/esm2015/tokens/is-playwright.js +4 -1
  403. package/esm2015/tokens/is-webkit.js +4 -1
  404. package/esm2015/tokens/platform.js +2 -1
  405. package/esm2015/tokens/range.js +4 -1
  406. package/esm2015/tokens/removed-element.js +4 -1
  407. package/esm2015/tokens/scroll-ref.js +4 -1
  408. package/esm2015/tokens/swipe-options.js +4 -1
  409. package/esm2015/tokens/taiga-ui-cdk-tokens.js +4 -1
  410. package/esm2015/tokens/take-only-trusted-events.js +7 -1
  411. package/esm2015/tokens/window-height.js +4 -1
  412. package/esm2015/tokens/zoom-options.js +4 -1
  413. package/esm2015/types/mapper.js +1 -1
  414. package/esm2015/types/matcher.js +1 -1
  415. package/esm2015/types/taiga-ui-cdk-types.js +4 -1
  416. package/esm2015/utils/browser/taiga-ui-cdk-utils-browser.js +4 -1
  417. package/esm2015/utils/color/hex-to-rgba.js +2 -1
  418. package/esm2015/utils/color/hsv-to-rgb.js +4 -1
  419. package/esm2015/utils/color/rgb-to-hsv.js +2 -1
  420. package/esm2015/utils/color/rgba-to-hex.js +2 -1
  421. package/esm2015/utils/color/taiga-ui-cdk-utils-color.js +4 -1
  422. package/esm2015/utils/dom/element-checks.js +2 -1
  423. package/esm2015/utils/dom/get-actual-target.js +4 -1
  424. package/esm2015/utils/dom/get-clipboard-data-text.js +4 -1
  425. package/esm2015/utils/dom/get-element-obscurers.js +10 -1
  426. package/esm2015/utils/dom/get-element-offset.js +8 -1
  427. package/esm2015/utils/dom/get-scroll-parent.js +7 -1
  428. package/esm2015/utils/dom/get-selected-text.js +9 -1
  429. package/esm2015/utils/dom/is-inside-iframe.js +4 -1
  430. package/esm2015/utils/dom/is-node-in.js +8 -1
  431. package/esm2015/utils/dom/retarget-boundary-crossing.js +9 -4
  432. package/esm2015/utils/dom/taiga-ui-cdk-utils-dom.js +4 -1
  433. package/esm2015/utils/focus/blur-native-focused.js +4 -1
  434. package/esm2015/utils/focus/get-closest-focusable.js +5 -1
  435. package/esm2015/utils/focus/get-native-focused.js +6 -1
  436. package/esm2015/utils/focus/is-native-focused-in.js +8 -1
  437. package/esm2015/utils/focus/is-native-focused.js +9 -1
  438. package/esm2015/utils/focus/is-native-keyboard-focusable.js +7 -1
  439. package/esm2015/utils/focus/move-focus.js +8 -1
  440. package/esm2015/utils/focus/set-native-mouse-focused.js +8 -1
  441. package/esm2015/utils/focus/taiga-ui-cdk-utils-focus.js +4 -1
  442. package/esm2015/utils/format/px.js +4 -1
  443. package/esm2015/utils/format/taiga-ui-cdk-utils-format.js +4 -1
  444. package/esm2015/utils/math/clamp.js +8 -1
  445. package/esm2015/utils/math/normalize-to-int-number.js +9 -1
  446. package/esm2015/utils/math/quantize.js +7 -1
  447. package/esm2015/utils/math/round.js +8 -1
  448. package/esm2015/utils/math/sum.js +4 -1
  449. package/esm2015/utils/math/taiga-ui-cdk-utils-math.js +4 -1
  450. package/esm2015/utils/math/to-radians.js +4 -1
  451. package/esm2015/utils/miscellaneous/create-options.js +2 -1
  452. package/esm2015/utils/miscellaneous/flat-length.js +6 -1
  453. package/esm2015/utils/miscellaneous/get-original-array-from-query-list.js +7 -1
  454. package/esm2015/utils/miscellaneous/is-number.js +2 -1
  455. package/esm2015/utils/miscellaneous/is-object.js +2 -1
  456. package/esm2015/utils/miscellaneous/is-string.js +2 -1
  457. package/esm2015/utils/miscellaneous/is-valid-url.js +8 -7
  458. package/esm2015/utils/miscellaneous/nullable-same.js +9 -1
  459. package/esm2015/utils/miscellaneous/object-from-entries.js +9 -1
  460. package/esm2015/utils/miscellaneous/taiga-ui-cdk-utils-miscellaneous.js +4 -1
  461. package/esm2015/utils/os/is-apple-platform.js +11 -1
  462. package/esm2015/utils/os/taiga-ui-cdk-utils-os.js +4 -1
  463. package/esm2015/utils/svg/svg-linear-gradient-processor.js +16 -2
  464. package/esm2015/utils/svg/taiga-ui-cdk-utils-svg.js +4 -1
  465. package/esm2015/utils/taiga-ui-cdk-utils.js +4 -1
  466. package/exceptions/taiga-ui-cdk-exceptions.d.ts +3 -0
  467. package/fesm2015/taiga-ui-cdk-abstract.js +34 -0
  468. package/fesm2015/taiga-ui-cdk-abstract.js.map +1 -1
  469. package/fesm2015/taiga-ui-cdk-classes.js +9 -0
  470. package/fesm2015/taiga-ui-cdk-classes.js.map +1 -1
  471. package/fesm2015/taiga-ui-cdk-coercion.js +10 -0
  472. package/fesm2015/taiga-ui-cdk-coercion.js.map +1 -1
  473. package/fesm2015/taiga-ui-cdk-components-alert-host.js +8 -0
  474. package/fesm2015/taiga-ui-cdk-components-alert-host.js.map +1 -1
  475. package/fesm2015/taiga-ui-cdk-components-dialog-host.js +11 -0
  476. package/fesm2015/taiga-ui-cdk-components-dialog-host.js.map +1 -1
  477. package/fesm2015/taiga-ui-cdk-components-dropdown-host.js +12 -0
  478. package/fesm2015/taiga-ui-cdk-components-dropdown-host.js.map +1 -1
  479. package/fesm2015/taiga-ui-cdk-components-scroll-controls.js +4 -0
  480. package/fesm2015/taiga-ui-cdk-components-scroll-controls.js.map +1 -1
  481. package/fesm2015/taiga-ui-cdk-components.js +4 -0
  482. package/fesm2015/taiga-ui-cdk-components.js.map +1 -1
  483. package/fesm2015/taiga-ui-cdk-constants.js +110 -2
  484. package/fesm2015/taiga-ui-cdk-constants.js.map +1 -1
  485. package/fesm2015/taiga-ui-cdk-date-time.js +284 -0
  486. package/fesm2015/taiga-ui-cdk-date-time.js.map +1 -1
  487. package/fesm2015/taiga-ui-cdk-decorators.js +26 -0
  488. package/fesm2015/taiga-ui-cdk-decorators.js.map +1 -1
  489. package/fesm2015/taiga-ui-cdk-directives-active-zone.js +4 -0
  490. package/fesm2015/taiga-ui-cdk-directives-active-zone.js.map +1 -1
  491. package/fesm2015/taiga-ui-cdk-directives-auto-focus.js +44 -1
  492. package/fesm2015/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
  493. package/fesm2015/taiga-ui-cdk-directives-autofilled.js +4 -0
  494. package/fesm2015/taiga-ui-cdk-directives-autofilled.js.map +1 -1
  495. package/fesm2015/taiga-ui-cdk-directives-checked.js +4 -0
  496. package/fesm2015/taiga-ui-cdk-directives-checked.js.map +1 -1
  497. package/fesm2015/taiga-ui-cdk-directives-click-outside.js +4 -0
  498. package/fesm2015/taiga-ui-cdk-directives-click-outside.js.map +1 -1
  499. package/fesm2015/taiga-ui-cdk-directives-control.js +4 -0
  500. package/fesm2015/taiga-ui-cdk-directives-control.js.map +1 -1
  501. package/fesm2015/taiga-ui-cdk-directives-copy-processor.js +4 -0
  502. package/fesm2015/taiga-ui-cdk-directives-copy-processor.js.map +1 -1
  503. package/fesm2015/taiga-ui-cdk-directives-drag.js +10 -0
  504. package/fesm2015/taiga-ui-cdk-directives-drag.js.map +1 -1
  505. package/fesm2015/taiga-ui-cdk-directives-droppable.js +5 -0
  506. package/fesm2015/taiga-ui-cdk-directives-droppable.js.map +1 -1
  507. package/fesm2015/taiga-ui-cdk-directives-element.js +18 -0
  508. package/fesm2015/taiga-ui-cdk-directives-element.js.map +1 -1
  509. package/fesm2015/taiga-ui-cdk-directives-focus-trap.js +17 -0
  510. package/fesm2015/taiga-ui-cdk-directives-focus-trap.js.map +1 -1
  511. package/fesm2015/taiga-ui-cdk-directives-focus-visible.js +9 -0
  512. package/fesm2015/taiga-ui-cdk-directives-focus-visible.js.map +1 -1
  513. package/fesm2015/taiga-ui-cdk-directives-focusable.js +10 -0
  514. package/fesm2015/taiga-ui-cdk-directives-focusable.js.map +1 -1
  515. package/fesm2015/taiga-ui-cdk-directives-focused.js +9 -0
  516. package/fesm2015/taiga-ui-cdk-directives-focused.js.map +1 -1
  517. package/fesm2015/taiga-ui-cdk-directives-for-async.js +7 -0
  518. package/fesm2015/taiga-ui-cdk-directives-for-async.js.map +1 -1
  519. package/fesm2015/taiga-ui-cdk-directives-for.js +4 -0
  520. package/fesm2015/taiga-ui-cdk-directives-for.js.map +1 -1
  521. package/fesm2015/taiga-ui-cdk-directives-high-dpi.js +7 -0
  522. package/fesm2015/taiga-ui-cdk-directives-high-dpi.js.map +1 -1
  523. package/fesm2015/taiga-ui-cdk-directives-hovered.js +7 -1
  524. package/fesm2015/taiga-ui-cdk-directives-hovered.js.map +1 -1
  525. package/fesm2015/taiga-ui-cdk-directives-item.js +7 -0
  526. package/fesm2015/taiga-ui-cdk-directives-item.js.map +1 -1
  527. package/fesm2015/taiga-ui-cdk-directives-let.js +17 -0
  528. package/fesm2015/taiga-ui-cdk-directives-let.js.map +1 -1
  529. package/fesm2015/taiga-ui-cdk-directives-media.js +7 -0
  530. package/fesm2015/taiga-ui-cdk-directives-media.js.map +1 -1
  531. package/fesm2015/taiga-ui-cdk-directives-obscured.js +7 -0
  532. package/fesm2015/taiga-ui-cdk-directives-obscured.js.map +1 -1
  533. package/fesm2015/taiga-ui-cdk-directives-overscroll.js +10 -0
  534. package/fesm2015/taiga-ui-cdk-directives-overscroll.js.map +1 -1
  535. package/fesm2015/taiga-ui-cdk-directives-pan.js +7 -0
  536. package/fesm2015/taiga-ui-cdk-directives-pan.js.map +1 -1
  537. package/fesm2015/taiga-ui-cdk-directives-platform.js +4 -0
  538. package/fesm2015/taiga-ui-cdk-directives-platform.js.map +1 -1
  539. package/fesm2015/taiga-ui-cdk-directives-portal.js +4 -0
  540. package/fesm2015/taiga-ui-cdk-directives-portal.js.map +1 -1
  541. package/fesm2015/taiga-ui-cdk-directives-pressed.js +4 -0
  542. package/fesm2015/taiga-ui-cdk-directives-pressed.js.map +1 -1
  543. package/fesm2015/taiga-ui-cdk-directives-prevent-default.js +12 -0
  544. package/fesm2015/taiga-ui-cdk-directives-prevent-default.js.map +1 -1
  545. package/fesm2015/taiga-ui-cdk-directives-repeat-times.js +11 -0
  546. package/fesm2015/taiga-ui-cdk-directives-repeat-times.js.map +1 -1
  547. package/fesm2015/taiga-ui-cdk-directives-resize.js +7 -0
  548. package/fesm2015/taiga-ui-cdk-directives-resize.js.map +1 -1
  549. package/fesm2015/taiga-ui-cdk-directives-resizer.js +5 -0
  550. package/fesm2015/taiga-ui-cdk-directives-resizer.js.map +1 -1
  551. package/fesm2015/taiga-ui-cdk-directives-swipe.js +7 -0
  552. package/fesm2015/taiga-ui-cdk-directives-swipe.js.map +1 -1
  553. package/fesm2015/taiga-ui-cdk-directives-validator.js +4 -0
  554. package/fesm2015/taiga-ui-cdk-directives-validator.js.map +1 -1
  555. package/fesm2015/taiga-ui-cdk-directives-value-changes.js +4 -0
  556. package/fesm2015/taiga-ui-cdk-directives-value-changes.js.map +1 -1
  557. package/fesm2015/taiga-ui-cdk-directives-zoom.js +7 -0
  558. package/fesm2015/taiga-ui-cdk-directives-zoom.js.map +1 -1
  559. package/fesm2015/taiga-ui-cdk-directives.js +4 -0
  560. package/fesm2015/taiga-ui-cdk-directives.js.map +1 -1
  561. package/fesm2015/taiga-ui-cdk-enums.js +8 -0
  562. package/fesm2015/taiga-ui-cdk-enums.js.map +1 -1
  563. package/fesm2015/taiga-ui-cdk-exceptions.js +4 -0
  564. package/fesm2015/taiga-ui-cdk-exceptions.js.map +1 -1
  565. package/fesm2015/taiga-ui-cdk-interfaces.js +3 -1
  566. package/fesm2015/taiga-ui-cdk-interfaces.js.map +1 -1
  567. package/fesm2015/taiga-ui-cdk-observables.js +34 -1
  568. package/fesm2015/taiga-ui-cdk-observables.js.map +1 -1
  569. package/fesm2015/taiga-ui-cdk-pipes-filter.js +4 -0
  570. package/fesm2015/taiga-ui-cdk-pipes-filter.js.map +1 -1
  571. package/fesm2015/taiga-ui-cdk-pipes-is-present.js +4 -0
  572. package/fesm2015/taiga-ui-cdk-pipes-is-present.js.map +1 -1
  573. package/fesm2015/taiga-ui-cdk-pipes-keys.js +4 -0
  574. package/fesm2015/taiga-ui-cdk-pipes-keys.js.map +1 -1
  575. package/fesm2015/taiga-ui-cdk-pipes-mapper.js +4 -0
  576. package/fesm2015/taiga-ui-cdk-pipes-mapper.js.map +1 -1
  577. package/fesm2015/taiga-ui-cdk-pipes-replace.js +7 -1
  578. package/fesm2015/taiga-ui-cdk-pipes-replace.js.map +1 -1
  579. package/fesm2015/taiga-ui-cdk-pipes.js +4 -0
  580. package/fesm2015/taiga-ui-cdk-pipes.js.map +1 -1
  581. package/fesm2015/taiga-ui-cdk-services.js +52 -5
  582. package/fesm2015/taiga-ui-cdk-services.js.map +1 -1
  583. package/fesm2015/taiga-ui-cdk-tokens.js +108 -4
  584. package/fesm2015/taiga-ui-cdk-tokens.js.map +1 -1
  585. package/fesm2015/taiga-ui-cdk-types.js +3 -1
  586. package/fesm2015/taiga-ui-cdk-types.js.map +1 -1
  587. package/fesm2015/taiga-ui-cdk-utils-browser.js +4 -0
  588. package/fesm2015/taiga-ui-cdk-utils-browser.js.map +1 -1
  589. package/fesm2015/taiga-ui-cdk-utils-color.js +10 -0
  590. package/fesm2015/taiga-ui-cdk-utils-color.js.map +1 -1
  591. package/fesm2015/taiga-ui-cdk-utils-dom.js +59 -3
  592. package/fesm2015/taiga-ui-cdk-utils-dom.js.map +1 -1
  593. package/fesm2015/taiga-ui-cdk-utils-focus.js +51 -0
  594. package/fesm2015/taiga-ui-cdk-utils-focus.js.map +1 -1
  595. package/fesm2015/taiga-ui-cdk-utils-format.js +7 -0
  596. package/fesm2015/taiga-ui-cdk-utils-format.js.map +1 -1
  597. package/fesm2015/taiga-ui-cdk-utils-math.js +38 -0
  598. package/fesm2015/taiga-ui-cdk-utils-math.js.map +1 -1
  599. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js +42 -6
  600. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
  601. package/fesm2015/taiga-ui-cdk-utils-os.js +14 -0
  602. package/fesm2015/taiga-ui-cdk-utils-os.js.map +1 -1
  603. package/fesm2015/taiga-ui-cdk-utils-svg.js +19 -1
  604. package/fesm2015/taiga-ui-cdk-utils-svg.js.map +1 -1
  605. package/fesm2015/taiga-ui-cdk-utils.js +4 -0
  606. package/fesm2015/taiga-ui-cdk-utils.js.map +1 -1
  607. package/fesm2015/taiga-ui-cdk.js +4 -0
  608. package/fesm2015/taiga-ui-cdk.js.map +1 -1
  609. package/interfaces/control-value-transformer.d.ts +3 -0
  610. package/interfaces/day-like.d.ts +3 -0
  611. package/interfaces/focusable-element-accessor.d.ts +4 -0
  612. package/interfaces/month-like.d.ts +3 -0
  613. package/interfaces/taiga-ui-cdk-interfaces.d.ts +3 -0
  614. package/interfaces/year-like.d.ts +3 -0
  615. package/observables/control-value.d.ts +3 -0
  616. package/observables/is-alive.d.ts +3 -0
  617. package/observables/items-query-list-observable.d.ts +6 -0
  618. package/observables/mouse-drag-finish-from.d.ts +4 -0
  619. package/observables/scroll-from.d.ts +3 -0
  620. package/observables/taiga-ui-cdk-observables.d.ts +3 -0
  621. package/package.json +5 -5
  622. package/pipes/filter/filter.pipe.d.ts +8 -1
  623. package/pipes/filter/taiga-ui-cdk-pipes-filter.d.ts +3 -0
  624. package/pipes/is-present/taiga-ui-cdk-pipes-is-present.d.ts +3 -0
  625. package/pipes/keys/taiga-ui-cdk-pipes-keys.d.ts +3 -0
  626. package/pipes/mapper/mapper.pipe.d.ts +8 -1
  627. package/pipes/mapper/taiga-ui-cdk-pipes-mapper.d.ts +3 -0
  628. package/pipes/replace/taiga-ui-cdk-pipes-replace.d.ts +3 -0
  629. package/pipes/taiga-ui-cdk-pipes.d.ts +3 -0
  630. package/schematics/constants/file-globs.js +3 -1
  631. package/schematics/index.d.ts +0 -1
  632. package/schematics/index.js +0 -1
  633. package/schematics/ng-add/index.js +1 -0
  634. package/schematics/ng-add/schema.d.ts +12 -0
  635. package/schematics/ng-update/{v3/interfaces → interfaces}/replaceable-tag.d.ts +1 -1
  636. package/schematics/ng-update/steps/rename-types.js +1 -1
  637. package/schematics/ng-update/steps/replace-enums.js +2 -2
  638. package/schematics/ng-update/steps/{replace-const.d.ts → replace-identifier.d.ts} +1 -1
  639. package/schematics/ng-update/steps/{replace-const.js → replace-identifier.js} +4 -4
  640. package/schematics/ng-update/steps/replace-services.js +1 -1
  641. package/schematics/ng-update/steps/show-warnings.js +5 -0
  642. package/schematics/ng-update/utils/templates/remove-inputs.d.ts +10 -0
  643. package/schematics/ng-update/utils/templates/remove-inputs.js +19 -0
  644. package/schematics/ng-update/utils/templates/replace-attr-values.d.ts +1 -1
  645. package/schematics/ng-update/utils/templates/replace-tags.d.ts +10 -0
  646. package/schematics/ng-update/utils/templates/replace-tags.js +19 -0
  647. package/schematics/ng-update/v3/constants/breakpoints.js +2 -0
  648. package/schematics/ng-update/v3/constants/enums.js +4 -0
  649. package/schematics/ng-update/v3/constants/templates.d.ts +8 -3
  650. package/schematics/ng-update/v3/constants/templates.js +5 -0
  651. package/schematics/ng-update/v3/index.d.ts +0 -1
  652. package/schematics/ng-update/v3/index.js +7 -16
  653. package/schematics/ng-update/v3/steps/migrate-date-time.js +18 -0
  654. package/schematics/ng-update/v3/steps/migrate-polymorpheus.js +1 -1
  655. package/schematics/ng-update/v3/steps/migrate-progress.js +3 -1
  656. package/schematics/ng-update/v3/steps/migrate-sliders/migrate-input-range.js +6 -0
  657. package/schematics/ng-update/v3/steps/migrate-sliders/migrate-input-slider.js +5 -0
  658. package/schematics/ng-update/v3/steps/migrate-taiga-proprietary-icons.js +1 -0
  659. package/schematics/ng-update/v3/steps/migrate-templates.js +10 -26
  660. package/schematics/ng-update/v3/steps/miscellaneous.js +5 -1
  661. package/schematics/ng-update/v3/steps/replace-functions.js +1 -1
  662. package/schematics/ng-update/v3-30/index.js +1 -0
  663. package/schematics/ng-update/v3-35/index.js +1 -0
  664. package/schematics/ng-update/v3-36/index.js +1 -0
  665. package/schematics/ng-update/v3-40/index.js +2 -1
  666. package/schematics/ng-update/v3-5/index.js +1 -0
  667. package/schematics/ng-update/v4/index.js +15 -3
  668. package/schematics/ng-update/v4/steps/replace-thumbnail-card.d.ts +3 -2
  669. package/schematics/ng-update/v4/steps/replace-thumbnail-card.js +62 -34
  670. package/schematics/ng-update/v4/steps/restore-tui-mapper.d.ts +1 -2
  671. package/schematics/ng-update/v4/steps/restore-tui-mapper.js +23 -67
  672. package/schematics/ng-update/v4/steps/restore-tui-matcher.d.ts +1 -2
  673. package/schematics/ng-update/v4/steps/restore-tui-matcher.js +23 -67
  674. package/schematics/utils/add-import-to-component.js +3 -2
  675. package/schematics/utils/angular/ng-module.d.ts +3 -0
  676. package/schematics/utils/angular/ng-module.js +3 -0
  677. package/schematics/utils/angular-json-manipulations.js +7 -0
  678. package/schematics/utils/colored-log.js +1 -1
  679. package/schematics/utils/get-projects.js +3 -1
  680. package/schematics/utils/is-ci.js +13 -11
  681. package/schematics/utils/progress.js +1 -0
  682. package/schematics/utils/push-to-array-property.js +1 -0
  683. package/schematics/utils/templates/elements.d.ts +19 -0
  684. package/schematics/utils/templates/elements.js +26 -2
  685. package/schematics/utils/templates/ng-component-input-manipulations.d.ts +44 -0
  686. package/schematics/utils/templates/ng-component-input-manipulations.js +47 -1
  687. package/services/destroy.service.d.ts +8 -0
  688. package/services/directive-styles.service.d.ts +3 -0
  689. package/services/focus-visible.service.d.ts +5 -0
  690. package/services/id.service.d.ts +3 -0
  691. package/services/obscured.service.d.ts +5 -0
  692. package/services/parents-scroll.service.d.ts +3 -0
  693. package/services/taiga-ui-cdk-services.d.ts +3 -0
  694. package/taiga-ui-cdk.d.ts +3 -0
  695. package/tokens/active-element.d.ts +3 -0
  696. package/tokens/alerts.d.ts +3 -0
  697. package/tokens/default-renderer.d.ts +6 -0
  698. package/tokens/dialogs.d.ts +3 -0
  699. package/tokens/ensure-base-href.d.ts +3 -0
  700. package/tokens/focusable-item-accessor.d.ts +3 -0
  701. package/tokens/is-android.d.ts +3 -0
  702. package/tokens/is-apple.d.ts +3 -0
  703. package/tokens/is-chromium.d.ts +3 -0
  704. package/tokens/is-cypress.d.ts +4 -0
  705. package/tokens/is-e2e.d.ts +3 -0
  706. package/tokens/is-firefox.d.ts +3 -0
  707. package/tokens/is-ios.d.ts +3 -0
  708. package/tokens/is-mobile.d.ts +3 -0
  709. package/tokens/is-playwright.d.ts +3 -0
  710. package/tokens/is-webkit.d.ts +3 -0
  711. package/tokens/range.d.ts +3 -0
  712. package/tokens/removed-element.d.ts +3 -0
  713. package/tokens/scroll-ref.d.ts +3 -0
  714. package/tokens/swipe-options.d.ts +3 -0
  715. package/tokens/taiga-ui-cdk-tokens.d.ts +3 -0
  716. package/tokens/take-only-trusted-events.d.ts +6 -0
  717. package/tokens/window-height.d.ts +3 -0
  718. package/tokens/zoom-options.d.ts +3 -0
  719. package/types/autocomplete.d.ts +1 -0
  720. package/types/date-mode.d.ts +5 -0
  721. package/types/event-with.d.ts +3 -0
  722. package/types/mapper.d.ts +11 -1
  723. package/types/matcher.d.ts +11 -2
  724. package/types/taiga-ui-cdk-types.d.ts +3 -0
  725. package/utils/browser/taiga-ui-cdk-utils-browser.d.ts +3 -0
  726. package/utils/color/hsv-to-rgb.d.ts +3 -0
  727. package/utils/color/taiga-ui-cdk-utils-color.d.ts +3 -0
  728. package/utils/dom/get-actual-target.d.ts +3 -0
  729. package/utils/dom/get-clipboard-data-text.d.ts +3 -0
  730. package/utils/dom/get-element-obscurers.d.ts +9 -0
  731. package/utils/dom/get-element-offset.d.ts +7 -0
  732. package/utils/dom/get-scroll-parent.d.ts +6 -0
  733. package/utils/dom/get-selected-text.d.ts +8 -0
  734. package/utils/dom/is-inside-iframe.d.ts +3 -0
  735. package/utils/dom/is-node-in.d.ts +7 -0
  736. package/utils/dom/taiga-ui-cdk-utils-dom.d.ts +3 -0
  737. package/utils/focus/blur-native-focused.d.ts +3 -0
  738. package/utils/focus/get-closest-focusable.d.ts +20 -0
  739. package/utils/focus/get-native-focused.d.ts +5 -0
  740. package/utils/focus/is-native-focused-in.d.ts +6 -0
  741. package/utils/focus/is-native-focused.d.ts +8 -0
  742. package/utils/focus/is-native-keyboard-focusable.d.ts +6 -0
  743. package/utils/focus/move-focus.d.ts +7 -0
  744. package/utils/focus/set-native-mouse-focused.d.ts +7 -0
  745. package/utils/focus/taiga-ui-cdk-utils-focus.d.ts +3 -0
  746. package/utils/format/px.d.ts +3 -0
  747. package/utils/format/taiga-ui-cdk-utils-format.d.ts +3 -0
  748. package/utils/math/clamp.d.ts +7 -0
  749. package/utils/math/normalize-to-int-number.d.ts +8 -0
  750. package/utils/math/quantize.d.ts +6 -0
  751. package/utils/math/sum.d.ts +3 -0
  752. package/utils/math/taiga-ui-cdk-utils-math.d.ts +3 -0
  753. package/utils/math/to-radians.d.ts +3 -0
  754. package/utils/miscellaneous/create-options.d.ts +1 -0
  755. package/utils/miscellaneous/flat-length.d.ts +5 -0
  756. package/utils/miscellaneous/get-original-array-from-query-list.d.ts +6 -0
  757. package/utils/miscellaneous/is-string.js +1 -0
  758. package/utils/miscellaneous/nullable-same.d.ts +8 -0
  759. package/utils/miscellaneous/object-from-entries.d.ts +8 -0
  760. package/utils/miscellaneous/taiga-ui-cdk-utils-miscellaneous.d.ts +3 -0
  761. package/utils/os/is-apple-platform.d.ts +10 -0
  762. package/utils/os/taiga-ui-cdk-utils-os.d.ts +3 -0
  763. package/utils/svg/svg-linear-gradient-processor.d.ts +14 -0
  764. package/utils/svg/taiga-ui-cdk-utils-svg.d.ts +3 -0
  765. package/utils/taiga-ui-cdk-utils.d.ts +3 -0
  766. /package/schematics/ng-update/{v3/interfaces → interfaces}/removable-input.d.ts +0 -0
  767. /package/schematics/ng-update/{v3/interfaces → interfaces}/removable-input.js +0 -0
  768. /package/schematics/ng-update/{v3/interfaces → interfaces}/replaceable-attribute-value.d.ts +0 -0
  769. /package/schematics/ng-update/{v3/interfaces → interfaces}/replaceable-attribute-value.js +0 -0
  770. /package/schematics/ng-update/{v3/interfaces → interfaces}/replaceable-tag.js +0 -0
  771. /package/schematics/{utils → ng-update/utils/templates}/replace-tag.d.ts +0 -0
  772. /package/schematics/{utils → ng-update/utils/templates}/replace-tag.js +0 -0
@@ -69,17 +69,24 @@
69
69
  return !!node && "nodeType" in node && node.nodeType === Node.ELEMENT_NODE;
70
70
  }
71
71
  function tuiIsHTMLElement(node) {
72
+ // TODO: iframe warning
72
73
  return node instanceof HTMLElement;
73
74
  }
74
75
  function tuiIsTextNode(node) {
75
76
  return node.nodeType === Node.TEXT_NODE;
76
77
  }
77
78
 
79
+ /**
80
+ * Gets actual target from open Shadow DOM if event happened within it
81
+ */
78
82
  function tuiGetActualTarget(event) {
79
83
  return event.composedPath()[0];
80
84
  }
81
85
 
82
86
  var DEFAULT_FORMAT = "text/plain";
87
+ /**
88
+ * Gets text from data of clipboardEvent, it also works in IE and Edge browsers
89
+ */
83
90
  function tuiGetClipboardDataText(event, format) {
84
91
  if (format === void 0) { format = DEFAULT_FORMAT; }
85
92
  return "clipboardData" in event && event.clipboardData !== null
@@ -94,6 +101,15 @@
94
101
  : node.ownerDocument;
95
102
  }
96
103
 
104
+ /**
105
+ * Returns array of Elements covering edges of given element or null if at least one edge middle point is visible
106
+ *
107
+ * CAUTION: Empty array means element if offscreen i.e. covered by no elements, rather than not covered
108
+ * TODO: v4.0 change function signature to
109
+ * ```ts
110
+ * function tuiGetElementObscures(element: Element): readonly [Element, Element, Element, Element] | [] | null
111
+ * ```
112
+ */
97
113
  function tuiGetElementObscures(element) {
98
114
  var ownerDocument = element.ownerDocument;
99
115
  if (!(ownerDocument === null || ownerDocument === void 0 ? void 0 : ownerDocument.defaultView) || !element.getBoundingClientRect) {
@@ -125,6 +141,13 @@
125
141
  return filtered.length === 4 ? filtered : null;
126
142
  }
127
143
 
144
+ /**
145
+ * Calculates offset for an element relative to it's parent several levels above
146
+ *
147
+ * @param host parent element
148
+ * @param element
149
+ * @return object with offsetTop and offsetLeft number properties
150
+ */
128
151
  function tuiGetElementOffset(host, element) {
129
152
  ngDevMode && classes.tuiAssert.assert(host.contains(element), "Host must contain element");
130
153
  var offsetTop = element.offsetTop, offsetLeft = element.offsetLeft, offsetParent = element.offsetParent;
@@ -136,6 +159,12 @@
136
159
  return { offsetTop: offsetTop, offsetLeft: offsetLeft };
137
160
  }
138
161
 
162
+ /**
163
+ * Finds the nearest parent with scroll in it
164
+ *
165
+ * @param element initial element
166
+ * @param vertical flag for orientation of scroll
167
+ */
139
168
  function tuiGetScrollParent(element, vertical) {
140
169
  if (vertical === void 0) { vertical = true; }
141
170
  if (element === null) {
@@ -150,6 +179,14 @@
150
179
  return tuiGetScrollParent(element.parentElement, vertical);
151
180
  }
152
181
 
182
+ /**
183
+ * @description:
184
+ * cross browser way to get selected text
185
+ *
186
+ * History:
187
+ * BUG - window.getSelection() fails when text selected in a form field
188
+ * https://bugzilla.mozilla.org/show_bug.cgi?id=85686
189
+ */
153
190
  function tuiGetSelectedText(_b) {
154
191
  var getSelection = _b.getSelection, document = _b.document;
155
192
  var _a;
@@ -167,10 +204,20 @@
167
204
  return (tuiIsTextfield(element) && !element.readOnly) || !!element.isContentEditable;
168
205
  }
169
206
 
207
+ /**
208
+ * Checks if an app is running inside <iframe /> tag
209
+ */
170
210
  function tuiIsInsideIframe(win) {
171
211
  return win.parent !== win;
172
212
  }
173
213
 
214
+ /**
215
+ * Checks if node is inside a specific selector
216
+ *
217
+ * @param node
218
+ * @param selector
219
+ * @return true if node is inside a particular selector
220
+ */
174
221
  function tuiIsNodeIn(node, selector) {
175
222
  var _a;
176
223
  return tuiIsTextNode(node)
@@ -197,16 +244,25 @@
197
244
  }
198
245
 
199
246
  function tuiRetargetedBoundaryCrossing(event) {
200
- var _a, _b;
247
+ // firefox
201
248
  if ("explicitOriginalTarget" in event) {
202
249
  return (event === null || event === void 0 ? void 0 : event.explicitOriginalTarget) !== event.target;
203
250
  }
204
- if ("layerX" in event && "layerY" in event) {
205
- return ((_a = event === null || event === void 0 ? void 0 : event.layerX) !== null && _a !== void 0 ? _a : 0) < 0 || ((_b = event === null || event === void 0 ? void 0 : event.layerY) !== null && _b !== void 0 ? _b : 0) < 0;
251
+ // chrome
252
+ if ("pointerId" in event) {
253
+ return event.pointerId === -1;
254
+ }
255
+ // safari
256
+ if ("detail" in event && "webkitForce" in event) {
257
+ return (event === null || event === void 0 ? void 0 : event.detail) === 0;
206
258
  }
207
259
  return false;
208
260
  }
209
261
 
262
+ /**
263
+ * Generated bundle index. Do not edit.
264
+ */
265
+
210
266
  exports.tuiCanScroll = tuiCanScroll;
211
267
  exports.tuiContainsOrAfter = tuiContainsOrAfter;
212
268
  exports.tuiGetActualTarget = tuiGetActualTarget;
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-dom.umd.js","sources":["../../../projects/cdk/utils/dom/can-scroll.ts","../../../projects/cdk/utils/dom/contains-or-after.ts","../../../projects/cdk/utils/dom/element-checks.ts","../../../projects/cdk/utils/dom/get-actual-target.ts","../../../projects/cdk/utils/dom/get-clipboard-data-text.ts","../../../projects/cdk/utils/dom/get-document-or-shadow-root.ts","../../../projects/cdk/utils/dom/get-element-obscurers.ts","../../../projects/cdk/utils/dom/get-element-offset.ts","../../../projects/cdk/utils/dom/get-scroll-parent.ts","../../../projects/cdk/utils/dom/get-selected-text.ts","../../../projects/cdk/utils/dom/is-current-target.ts","../../../projects/cdk/utils/dom/is-element-editable.ts","../../../projects/cdk/utils/dom/is-inside-iframe.ts","../../../projects/cdk/utils/dom/is-node-in.ts","../../../projects/cdk/utils/dom/point-to-client-rect.ts","../../../projects/cdk/utils/dom/retarget-boundary-crossing.ts"],"sourcesContent":["export function tuiCanScroll(\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 tuiContainsOrAfter(current: Node, node: Node): boolean {\n try {\n return (\n current.contains(node) ||\n !!(node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING)\n );\n } catch {\n return false;\n }\n}\n","export function tuiIsInput(element: Element): element is HTMLInputElement {\n return element.matches(`input`);\n}\n\nexport function tuiIsTextarea(element: Element): element is HTMLTextAreaElement {\n return element.matches(`textarea`);\n}\n\nexport function tuiIsTextfield(\n element: Element,\n): element is HTMLInputElement | HTMLTextAreaElement {\n return tuiIsInput(element) || tuiIsTextarea(element);\n}\n\nexport function tuiIsElement(\n node?: Element | EventTarget | Node | null,\n): node is Element {\n return !!node && `nodeType` in node && node.nodeType === Node.ELEMENT_NODE;\n}\n\nexport function tuiIsHTMLElement(node: unknown): node is HTMLElement {\n // TODO: iframe warning\n return node instanceof HTMLElement;\n}\n\nexport function tuiIsTextNode(node: Node): node is Text {\n return node.nodeType === Node.TEXT_NODE;\n}\n","/**\n * Gets actual target from open Shadow DOM if event happened within it\n */\nexport function tuiGetActualTarget(event: Event): Node {\n return event.composedPath()[0] as Node;\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 tuiGetClipboardDataText(\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","export function tuiGetDocumentOrShadowRoot(node: Node): DocumentOrShadowRoot {\n return `getRootNode` in node && node.isConnected\n ? (node.getRootNode() as Document)\n : (node.ownerDocument as DocumentOrShadowRoot);\n}\n","import {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {tuiGetDocumentOrShadowRoot} 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 * TODO: v4.0 change function signature to\n * ```ts\n * function tuiGetElementObscures(element: Element): readonly [Element, Element, Element, Element] | [] | null\n * ```\n */\nexport function tuiGetElementObscures(element: Element): readonly Element[] | null {\n const {ownerDocument} = element;\n\n if (!ownerDocument?.defaultView || !element.getBoundingClientRect) {\n return null;\n }\n\n const {innerWidth, innerHeight} = ownerDocument.defaultView;\n const doc = tuiGetDocumentOrShadowRoot(element);\n const rect = element.getBoundingClientRect();\n\n if (rect.width === 0 && rect.height === 0) {\n return null;\n }\n\n const left = tuiClamp(Math.round(rect.left) + 2, 0, innerWidth);\n const top = tuiClamp(Math.round(rect.top) + 2, 0, innerHeight);\n const right = tuiClamp(Math.round(rect.right) - 2, 0, innerWidth);\n const bottom = tuiClamp(Math.round(rect.bottom) - 2, 0, innerHeight);\n const horizontalMiddle = tuiClamp(\n Math.round(rect.left + rect.width / 2),\n 0,\n innerWidth,\n );\n const verticalMiddle = tuiClamp(\n Math.round(rect.top + rect.height / 2),\n 0,\n innerHeight,\n );\n const elements = [\n doc.elementFromPoint(horizontalMiddle, top),\n doc.elementFromPoint(horizontalMiddle, bottom),\n doc.elementFromPoint(left, verticalMiddle),\n doc.elementFromPoint(right, verticalMiddle),\n ];\n const nonNull = elements.filter(tuiIsPresent);\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\nimport {tuiIsHTMLElement} from './element-checks';\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 tuiGetElementOffset(\n host: Element,\n element: HTMLElement,\n): {offsetLeft: number; offsetTop: number} {\n ngDevMode && tuiAssert.assert(host.contains(element), `Host must contain element`);\n\n let {offsetTop, offsetLeft, offsetParent} = element;\n\n while (tuiIsHTMLElement(offsetParent) && offsetParent !== host) {\n offsetTop += offsetParent.offsetTop;\n offsetLeft += offsetParent.offsetLeft;\n offsetParent = offsetParent.offsetParent;\n }\n\n return {offsetTop, offsetLeft};\n}\n","/**\n * Finds the nearest parent with scroll in it\n *\n * @param element initial element\n * @param vertical flag for orientation of scroll\n */\nexport function tuiGetScrollParent(\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 tuiGetScrollParent(element.parentElement, vertical);\n}\n","import {tuiIsTextfield} from './element-checks';\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 document.activeElement && tuiIsTextfield(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 tuiIsCurrentTarget({target, currentTarget}: Event): boolean {\n return target === currentTarget;\n}\n","import {tuiIsTextfield} from './element-checks';\n\nexport function tuiIsElementEditable(element: HTMLElement): boolean {\n return (tuiIsTextfield(element) && !element.readOnly) || !!element.isContentEditable;\n}\n","/**\n * Checks if an app is running inside <iframe /> tag\n */\nexport function tuiIsInsideIframe(win: Window): boolean {\n return win.parent !== win;\n}\n","import {tuiIsElement, tuiIsTextNode} from './element-checks';\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 tuiIsNodeIn(node: Node, selector: string): boolean {\n return tuiIsTextNode(node)\n ? !!node.parentElement?.closest(selector)\n : tuiIsElement(node) && !!node.closest(selector);\n}\n","export function tuiPointToClientRect(x: number = 0, y: number = 0): DOMRect {\n const rect = {\n x,\n y,\n left: x,\n right: x,\n top: y,\n bottom: y,\n width: 0,\n height: 0,\n } as const;\n\n return {\n ...rect,\n toJSON() {\n return rect;\n },\n };\n}\n","export function tuiRetargetedBoundaryCrossing(event: any): boolean {\n if (`explicitOriginalTarget` in event) {\n return event?.explicitOriginalTarget !== event.target; // firefox\n }\n\n if (`layerX` in event && `layerY` in event) {\n return (event?.layerX ?? 0) < 0 || (event?.layerY ?? 0) < 0; // chrome/safari/etc\n }\n\n return false;\n}\n"],"names":["tuiClamp","tuiIsPresent","tuiAssert"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-utils-dom.umd.js","sources":["../../../projects/cdk/utils/dom/can-scroll.ts","../../../projects/cdk/utils/dom/contains-or-after.ts","../../../projects/cdk/utils/dom/element-checks.ts","../../../projects/cdk/utils/dom/get-actual-target.ts","../../../projects/cdk/utils/dom/get-clipboard-data-text.ts","../../../projects/cdk/utils/dom/get-document-or-shadow-root.ts","../../../projects/cdk/utils/dom/get-element-obscurers.ts","../../../projects/cdk/utils/dom/get-element-offset.ts","../../../projects/cdk/utils/dom/get-scroll-parent.ts","../../../projects/cdk/utils/dom/get-selected-text.ts","../../../projects/cdk/utils/dom/is-current-target.ts","../../../projects/cdk/utils/dom/is-element-editable.ts","../../../projects/cdk/utils/dom/is-inside-iframe.ts","../../../projects/cdk/utils/dom/is-node-in.ts","../../../projects/cdk/utils/dom/point-to-client-rect.ts","../../../projects/cdk/utils/dom/retarget-boundary-crossing.ts","../../../projects/cdk/utils/dom/taiga-ui-cdk-utils-dom.ts"],"sourcesContent":["export function tuiCanScroll(\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 tuiContainsOrAfter(current: Node, node: Node): boolean {\n try {\n return (\n current.contains(node) ||\n !!(node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING)\n );\n } catch {\n return false;\n }\n}\n","export function tuiIsInput(element: Element): element is HTMLInputElement {\n return element.matches(`input`);\n}\n\nexport function tuiIsTextarea(element: Element): element is HTMLTextAreaElement {\n return element.matches(`textarea`);\n}\n\nexport function tuiIsTextfield(\n element: Element,\n): element is HTMLInputElement | HTMLTextAreaElement {\n return tuiIsInput(element) || tuiIsTextarea(element);\n}\n\nexport function tuiIsElement(\n node?: Element | EventTarget | Node | null,\n): node is Element {\n return !!node && `nodeType` in node && node.nodeType === Node.ELEMENT_NODE;\n}\n\nexport function tuiIsHTMLElement(node: unknown): node is HTMLElement {\n // TODO: iframe warning\n return node instanceof HTMLElement;\n}\n\nexport function tuiIsTextNode(node: Node): node is Text {\n return node.nodeType === Node.TEXT_NODE;\n}\n","/**\n * Gets actual target from open Shadow DOM if event happened within it\n */\nexport function tuiGetActualTarget(event: Event): Node {\n return event.composedPath()[0] as Node;\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 tuiGetClipboardDataText(\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","export function tuiGetDocumentOrShadowRoot(node: Node): DocumentOrShadowRoot {\n return `getRootNode` in node && node.isConnected\n ? (node.getRootNode() as Document)\n : (node.ownerDocument as DocumentOrShadowRoot);\n}\n","import {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {tuiGetDocumentOrShadowRoot} 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 * TODO: v4.0 change function signature to\n * ```ts\n * function tuiGetElementObscures(element: Element): readonly [Element, Element, Element, Element] | [] | null\n * ```\n */\nexport function tuiGetElementObscures(element: Element): readonly Element[] | null {\n const {ownerDocument} = element;\n\n if (!ownerDocument?.defaultView || !element.getBoundingClientRect) {\n return null;\n }\n\n const {innerWidth, innerHeight} = ownerDocument.defaultView;\n const doc = tuiGetDocumentOrShadowRoot(element);\n const rect = element.getBoundingClientRect();\n\n if (rect.width === 0 && rect.height === 0) {\n return null;\n }\n\n const left = tuiClamp(Math.round(rect.left) + 2, 0, innerWidth);\n const top = tuiClamp(Math.round(rect.top) + 2, 0, innerHeight);\n const right = tuiClamp(Math.round(rect.right) - 2, 0, innerWidth);\n const bottom = tuiClamp(Math.round(rect.bottom) - 2, 0, innerHeight);\n const horizontalMiddle = tuiClamp(\n Math.round(rect.left + rect.width / 2),\n 0,\n innerWidth,\n );\n const verticalMiddle = tuiClamp(\n Math.round(rect.top + rect.height / 2),\n 0,\n innerHeight,\n );\n const elements = [\n doc.elementFromPoint(horizontalMiddle, top),\n doc.elementFromPoint(horizontalMiddle, bottom),\n doc.elementFromPoint(left, verticalMiddle),\n doc.elementFromPoint(right, verticalMiddle),\n ];\n const nonNull = elements.filter(tuiIsPresent);\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\nimport {tuiIsHTMLElement} from './element-checks';\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 tuiGetElementOffset(\n host: Element,\n element: HTMLElement,\n): {offsetLeft: number; offsetTop: number} {\n ngDevMode && tuiAssert.assert(host.contains(element), `Host must contain element`);\n\n let {offsetTop, offsetLeft, offsetParent} = element;\n\n while (tuiIsHTMLElement(offsetParent) && offsetParent !== host) {\n offsetTop += offsetParent.offsetTop;\n offsetLeft += offsetParent.offsetLeft;\n offsetParent = offsetParent.offsetParent;\n }\n\n return {offsetTop, offsetLeft};\n}\n","/**\n * Finds the nearest parent with scroll in it\n *\n * @param element initial element\n * @param vertical flag for orientation of scroll\n */\nexport function tuiGetScrollParent(\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 tuiGetScrollParent(element.parentElement, vertical);\n}\n","import {tuiIsTextfield} from './element-checks';\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 document.activeElement && tuiIsTextfield(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 tuiIsCurrentTarget({target, currentTarget}: Event): boolean {\n return target === currentTarget;\n}\n","import {tuiIsTextfield} from './element-checks';\n\nexport function tuiIsElementEditable(element: HTMLElement): boolean {\n return (tuiIsTextfield(element) && !element.readOnly) || !!element.isContentEditable;\n}\n","/**\n * Checks if an app is running inside <iframe /> tag\n */\nexport function tuiIsInsideIframe(win: Window): boolean {\n return win.parent !== win;\n}\n","import {tuiIsElement, tuiIsTextNode} from './element-checks';\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 tuiIsNodeIn(node: Node, selector: string): boolean {\n return tuiIsTextNode(node)\n ? !!node.parentElement?.closest(selector)\n : tuiIsElement(node) && !!node.closest(selector);\n}\n","export function tuiPointToClientRect(x: number = 0, y: number = 0): DOMRect {\n const rect = {\n x,\n y,\n left: x,\n right: x,\n top: y,\n bottom: y,\n width: 0,\n height: 0,\n } as const;\n\n return {\n ...rect,\n toJSON() {\n return rect;\n },\n };\n}\n","export function tuiRetargetedBoundaryCrossing(event: any): boolean {\n // firefox\n if (`explicitOriginalTarget` in event) {\n return event?.explicitOriginalTarget !== event.target;\n }\n\n // chrome\n if (`pointerId` in event) {\n return event.pointerId === -1;\n }\n\n // safari\n if (`detail` in event && `webkitForce` in event) {\n return event?.detail === 0;\n }\n\n return false;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["tuiClamp","tuiIsPresent","tuiAssert"],"mappings":"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"}
@@ -4,6 +4,11 @@
4
4
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global["taiga-ui"] = global["taiga-ui"] || {}, global["taiga-ui"].cdk = global["taiga-ui"].cdk || {}, global["taiga-ui"].cdk.utils = global["taiga-ui"].cdk.utils || {}, global["taiga-ui"].cdk.utils.focus = {}), global["taiga-ui"].cdk.utils.dom, global["taiga-ui"].cdk.constants));
5
5
  })(this, (function (exports, dom, constants) { 'use strict';
6
6
 
7
+ /**
8
+ * Returns current active element, including shadow dom
9
+ *
10
+ * @return element or null
11
+ */
7
12
  function tuiGetNativeFocused(_a) {
8
13
  var activeElement = _a.activeElement;
9
14
  if (!(activeElement === null || activeElement === void 0 ? void 0 : activeElement.shadowRoot)) {
@@ -16,6 +21,9 @@
16
21
  return element;
17
22
  }
18
23
 
24
+ /**
25
+ * Finds and blurs current active element, including shadow DOM
26
+ */
19
27
  function tuiBlurNativeFocused(doc) {
20
28
  var activeElement = tuiGetNativeFocused(doc);
21
29
  if (dom.tuiIsHTMLElement(activeElement)) {
@@ -23,6 +31,12 @@
23
31
  }
24
32
  }
25
33
 
34
+ /**
35
+ * Checks for signs that element can be focused with keyboard. tabIndex above 0 is ignored to
36
+ * only target natural focus order. Not checking the possibility of an element to
37
+ * be focused, for example element can have display: none applied to it or any other
38
+ * circumstances could prevent actual focus.
39
+ */
26
40
  function tuiIsNativeKeyboardFocusable(element) {
27
41
  if (element.hasAttribute("disabled") || element.getAttribute("tabIndex") === "-1") {
28
42
  return false;
@@ -55,6 +69,10 @@
55
69
  tuiIsNativeKeyboardFocusable(element)));
56
70
  }
57
71
 
72
+ /**
73
+ * @description:
74
+ * Finds the closest element that can be focused with a keyboard or mouse in theory
75
+ */
58
76
  function tuiGetClosestFocusable(_a) {
59
77
  var initial = _a.initial, root = _a.root, _b = _a.previous, previous = _b === void 0 ? false : _b, _c = _a.keyboard, keyboard = _c === void 0 ? true : _c;
60
78
  if (!root.ownerDocument) {
@@ -74,11 +92,26 @@
74
92
  return null;
75
93
  }
76
94
 
95
+ /**
96
+ * Checks if element is focused.
97
+ *
98
+ * Could return true even after blur since element remains focused if you switch away from a browser tab.
99
+ *
100
+ * @param node or null (as a common return value of DOM nodes walking)
101
+ * @return true if focused
102
+ */
77
103
  function tuiIsNativeFocused(node) {
78
104
  return !!(node === null || node === void 0 ? void 0 : node.ownerDocument) && tuiGetNativeFocused(node.ownerDocument) === node;
79
105
  }
80
106
 
107
+ /**
108
+ * Checks if focused element is within given element.
109
+ *
110
+ * @param node
111
+ * @return true if focused node is contained within element
112
+ */
81
113
  function tuiIsNativeFocusedIn(node) {
114
+ // !node.contains - check for IE11
82
115
  if (!node.ownerDocument || !node.contains) {
83
116
  return false;
84
117
  }
@@ -86,6 +119,13 @@
86
119
  return nativeFocused !== null && node.contains(nativeFocused);
87
120
  }
88
121
 
122
+ /**
123
+ * Utility method for moving focus in a list of elements
124
+ *
125
+ * @param currentIndex currently focused index
126
+ * @param elements array of focusable elements
127
+ * @param step a step to move focus by, typically -1 or 1
128
+ */
89
129
  function tuiMoveFocus(currentIndex, elements, step) {
90
130
  currentIndex += step;
91
131
  while (currentIndex >= 0 && currentIndex < elements.length) {
@@ -97,6 +137,13 @@
97
137
  }
98
138
  }
99
139
 
140
+ /**
141
+ * Focuses or blurs element with mouse action imitation (to spoof {@link TuiFocusVisibleService})
142
+ *
143
+ * @param element
144
+ * @param focused desired focused state
145
+ * @param preventScroll optionally prevent native browser scroll after focus
146
+ */
100
147
  function tuiSetNativeMouseFocused(element, focused, preventScroll) {
101
148
  if (focused === void 0) { focused = true; }
102
149
  if (preventScroll === void 0) { preventScroll = false; }
@@ -119,6 +166,10 @@
119
166
  }
120
167
  }
121
168
 
169
+ /**
170
+ * Generated bundle index. Do not edit.
171
+ */
172
+
122
173
  exports.tuiBlurNativeFocused = tuiBlurNativeFocused;
123
174
  exports.tuiGetClosestFocusable = tuiGetClosestFocusable;
124
175
  exports.tuiGetNativeFocused = tuiGetNativeFocused;
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-focus.umd.js","sources":["../../../projects/cdk/utils/focus/get-native-focused.ts","../../../projects/cdk/utils/focus/blur-native-focused.ts","../../../projects/cdk/utils/focus/is-native-keyboard-focusable.ts","../../../projects/cdk/utils/focus/is-native-mouse-focusable.ts","../../../projects/cdk/utils/focus/get-closest-focusable.ts","../../../projects/cdk/utils/focus/is-native-focused.ts","../../../projects/cdk/utils/focus/is-native-focused-in.ts","../../../projects/cdk/utils/focus/move-focus.ts","../../../projects/cdk/utils/focus/set-native-mouse-focused.ts"],"sourcesContent":["/**\n * Returns current active element, including shadow dom\n *\n * @return element or null\n */\nexport function tuiGetNativeFocused({activeElement}: Document): Element | null {\n if (!activeElement?.shadowRoot) {\n return activeElement;\n }\n\n let element = activeElement.shadowRoot.activeElement;\n\n while (element?.shadowRoot) {\n element = element.shadowRoot.activeElement;\n }\n\n return element;\n}\n","import {tuiIsHTMLElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {tuiGetNativeFocused} from './get-native-focused';\n\n/**\n * Finds and blurs current active element, including shadow DOM\n */\nexport function tuiBlurNativeFocused(doc: Document): void {\n const activeElement = tuiGetNativeFocused(doc);\n\n if (tuiIsHTMLElement(activeElement)) {\n activeElement.blur();\n }\n}\n","import {tuiIsHTMLElement} from '@taiga-ui/cdk/utils/dom';\n\n/**\n * Checks for signs that element can be focused with keyboard. tabIndex above 0 is ignored to\n * only target natural focus order. Not checking the possibility of an element to\n * be focused, for example element can have display: none applied to it or any other\n * circumstances could prevent actual focus.\n */\nexport function tuiIsNativeKeyboardFocusable(element: Element): boolean {\n if (element.hasAttribute(`disabled`) || element.getAttribute(`tabIndex`) === `-1`) {\n return false;\n }\n\n if (\n (tuiIsHTMLElement(element) && element.isContentEditable) ||\n element.getAttribute(`tabIndex`) === `0`\n ) {\n return true;\n }\n\n switch (element.tagName) {\n case `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 {tuiIsNativeKeyboardFocusable} from './is-native-keyboard-focusable';\n\nexport function tuiIsNativeMouseFocusable(element: Element): boolean {\n return (\n !element.hasAttribute(`disabled`) &&\n (element.getAttribute(`tabIndex`) === `-1` ||\n tuiIsNativeKeyboardFocusable(element))\n );\n}\n","import {svgNodeFilter} from '@taiga-ui/cdk/constants';\nimport {tuiIsHTMLElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {tuiIsNativeKeyboardFocusable} from './is-native-keyboard-focusable';\nimport {tuiIsNativeMouseFocusable} from './is-native-mouse-focusable';\n\nexport interface TuiGetClosestFocusableOptions {\n /**\n * @description:\n * current HTML element\n */\n initial: Element;\n\n /**\n * @description:\n * determine if only keyboard focus is of interest\n */\n keyboard?: boolean;\n\n /**\n * @description:\n * should it look backwards instead (find item that will be focused with Shift + Tab)\n */\n previous?: boolean;\n\n /**\n * @description:\n * top Node limiting the search area\n */\n root: Node;\n}\n\n/**\n * @description:\n * Finds the closest element that can be focused with a keyboard or mouse in theory\n */\nexport function tuiGetClosestFocusable({\n initial,\n root,\n previous = false,\n keyboard = true,\n}: TuiGetClosestFocusableOptions): HTMLElement | null {\n if (!root.ownerDocument) {\n return null;\n }\n\n const check = keyboard ? tuiIsNativeKeyboardFocusable : tuiIsNativeMouseFocusable;\n const treeWalker = root.ownerDocument.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n svgNodeFilter,\n );\n\n treeWalker.currentNode = initial;\n\n while (previous ? treeWalker.previousNode() : treeWalker.nextNode()) {\n if (tuiIsHTMLElement(treeWalker.currentNode)) {\n initial = treeWalker.currentNode;\n }\n\n if (tuiIsHTMLElement(initial) && check(initial)) {\n return initial;\n }\n }\n\n return null;\n}\n","import {tuiGetNativeFocused} from './get-native-focused';\n\n/**\n * Checks if element is focused.\n *\n * Could return true even after blur since element remains focused if you switch away from a browser tab.\n *\n * @param node or null (as a common return value of DOM nodes walking)\n * @return true if focused\n */\nexport function tuiIsNativeFocused(node: Node | null): boolean {\n return !!node?.ownerDocument && tuiGetNativeFocused(node.ownerDocument) === node;\n}\n","import {tuiGetNativeFocused} from './get-native-focused';\n\n/**\n * Checks if focused element is within given element.\n *\n * @param node\n * @return true if focused node is contained within element\n */\nexport function tuiIsNativeFocusedIn(node: Node): boolean {\n // !node.contains - check for IE11\n if (!node.ownerDocument || !node.contains) {\n return false;\n }\n\n const nativeFocused = tuiGetNativeFocused(node.ownerDocument);\n\n return nativeFocused !== null && node.contains(nativeFocused);\n}\n","import {tuiIsNativeFocused} from './is-native-focused';\n\n/**\n * Utility method for moving focus in a list of elements\n *\n * @param currentIndex currently focused index\n * @param elements array of focusable elements\n * @param step a step to move focus by, typically -1 or 1\n */\nexport function tuiMoveFocus(\n currentIndex: number,\n elements: readonly HTMLElement[],\n step: number,\n): void {\n currentIndex += step;\n\n while (currentIndex >= 0 && currentIndex < elements.length) {\n elements[currentIndex].focus();\n\n if (tuiIsNativeFocused(elements[currentIndex])) {\n return;\n }\n\n currentIndex += step;\n }\n}\n","/**\n * 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 tuiSetNativeMouseFocused(\n element: Element & HTMLOrSVGElement,\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 if (focused) {\n element.focus({preventScroll});\n } else {\n element.blur();\n }\n}\n"],"names":["tuiIsHTMLElement","svgNodeFilter"],"mappings":";;;;;;IAKM,SAAU,mBAAmB,CAAC,EAAyB,EAAA;IAAxB,IAAA,IAAA,aAAa,GAAA,EAAA,CAAA,aAAA,CAAA;QAC9C,IAAI,EAAC,aAAa,KAAb,IAAA,IAAA,aAAa,uBAAb,aAAa,CAAE,UAAU,CAAA,EAAE;IAC5B,QAAA,OAAO,aAAa,CAAC;IACxB,KAAA;IAED,IAAA,IAAI,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC;IAErD,IAAA,OAAO,OAAO,KAAP,IAAA,IAAA,OAAO,uBAAP,OAAO,CAAE,UAAU,EAAE;IACxB,QAAA,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC;IAC9C,KAAA;IAED,IAAA,OAAO,OAAO,CAAC;IACnB;;ICVM,SAAU,oBAAoB,CAAC,GAAa,EAAA;IAC9C,IAAA,IAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAE/C,IAAA,IAAIA,oBAAgB,CAAC,aAAa,CAAC,EAAE;YACjC,aAAa,CAAC,IAAI,EAAE,CAAC;IACxB,KAAA;IACL;;ICLM,SAAU,4BAA4B,CAAC,OAAgB,EAAA;IACzD,IAAA,IAAI,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE;IAC/E,QAAA,OAAO,KAAK,CAAC;IAChB,KAAA;QAED,IACI,CAACA,oBAAgB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,iBAAiB;IACvD,QAAA,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,GAAG,EAC1C;IACE,QAAA,OAAO,IAAI,CAAC;IACf,KAAA;QAED,QAAQ,OAAO,CAAC,OAAO;IACnB,QAAA,KAAK,QAAQ,CAAC;IACd,QAAA,KAAK,QAAQ,CAAC;IACd,QAAA,KAAK,UAAU;IACX,YAAA,OAAO,IAAI,CAAC;IAChB,QAAA,KAAK,OAAO,CAAC;IACb,QAAA,KAAK,OAAO;IACR,YAAA,OAAO,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAC5C,QAAA,KAAK,OAAO;gBACR,OAAO,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC;IACrD,QAAA,KAAK,GAAG,CAAC;IACT,QAAA,KAAK,MAAM;IACP,YAAA,OAAO,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACxC,QAAA;IACI,YAAA,OAAO,KAAK,CAAC;IACpB,KAAA;IACL;;IClCM,SAAU,yBAAyB,CAAC,OAAgB,EAAA;IACtD,IAAA,QACI,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC;IACjC,SAAC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,IAAI;IACtC,YAAA,4BAA4B,CAAC,OAAO,CAAC,CAAC,EAC5C;IACN;;IC4BM,SAAU,sBAAsB,CAAC,EAKP,EAAA;IAJ5B,IAAA,IAAA,OAAO,aAAA,EACP,IAAI,GAAA,EAAA,CAAA,IAAA,EACJ,gBAAgB,EAAhB,QAAQ,GAAG,EAAA,KAAA,KAAA,CAAA,GAAA,KAAK,KAAA,EAChB,EAAA,GAAA,EAAA,CAAA,QAAe,EAAf,QAAQ,GAAA,EAAA,KAAA,KAAA,CAAA,GAAG,IAAI,GAAA,EAAA,CAAA;IAEf,IAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;IACrB,QAAA,OAAO,IAAI,CAAC;IACf,KAAA;QAED,IAAM,KAAK,GAAG,QAAQ,GAAG,4BAA4B,GAAG,yBAAyB,CAAC;IAClF,IAAA,IAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAClD,IAAI,EACJ,UAAU,CAAC,YAAY,EACvBC,uBAAa,CAChB,CAAC;IAEF,IAAA,UAAU,CAAC,WAAW,GAAG,OAAO,CAAC;IAEjC,IAAA,OAAO,QAAQ,GAAG,UAAU,CAAC,YAAY,EAAE,GAAG,UAAU,CAAC,QAAQ,EAAE,EAAE;IACjE,QAAA,IAAID,oBAAgB,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;IAC1C,YAAA,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC;IACpC,SAAA;YAED,IAAIA,oBAAgB,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE;IAC7C,YAAA,OAAO,OAAO,CAAC;IAClB,SAAA;IACJ,KAAA;IAED,IAAA,OAAO,IAAI,CAAC;IAChB;;ICxDM,SAAU,kBAAkB,CAAC,IAAiB,EAAA;IAChD,IAAA,OAAO,CAAC,EAAC,IAAI,aAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,aAAa,CAAA,IAAI,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IACrF;;ICJM,SAAU,oBAAoB,CAAC,IAAU,EAAA;QAE3C,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;IACvC,QAAA,OAAO,KAAK,CAAC;IAChB,KAAA;QAED,IAAM,aAAa,GAAG,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE9D,OAAO,aAAa,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAClE;;aCRgB,YAAY,CACxB,YAAoB,EACpB,QAAgC,EAChC,IAAY,EAAA;QAEZ,YAAY,IAAI,IAAI,CAAC;QAErB,OAAO,YAAY,IAAI,CAAC,IAAI,YAAY,GAAG,QAAQ,CAAC,MAAM,EAAE;IACxD,QAAA,QAAQ,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;IAE/B,QAAA,IAAI,kBAAkB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE;gBAC5C,OAAO;IACV,SAAA;YAED,YAAY,IAAI,IAAI,CAAC;IACxB,KAAA;IACL;;aClBgB,wBAAwB,CACpC,OAAmC,EACnC,OAAuB,EACvB,aAA8B,EAAA;IAD9B,IAAA,IAAA,OAAA,KAAA,KAAA,CAAA,EAAA,EAAA,OAAuB,GAAA,IAAA,CAAA,EAAA;IACvB,IAAA,IAAA,aAAA,KAAA,KAAA,CAAA,EAAA,EAAA,aAA8B,GAAA,KAAA,CAAA,EAAA;IAE9B,IAAA,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;YACxB,OAAO;IACV,KAAA;IAED,IAAA,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;IAC7B,QAAA,OAAO,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC;IACpF,KAAA;IAAM,SAAA;YACH,IAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAEzD,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACzC,QAAA,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAChC,KAAA;IAED,IAAA,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,KAAK,CAAC,EAAC,aAAa,EAAA,aAAA,EAAC,CAAC,CAAC;IAClC,KAAA;IAAM,SAAA;YACH,OAAO,CAAC,IAAI,EAAE,CAAC;IAClB,KAAA;IACL;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-utils-focus.umd.js","sources":["../../../projects/cdk/utils/focus/get-native-focused.ts","../../../projects/cdk/utils/focus/blur-native-focused.ts","../../../projects/cdk/utils/focus/is-native-keyboard-focusable.ts","../../../projects/cdk/utils/focus/is-native-mouse-focusable.ts","../../../projects/cdk/utils/focus/get-closest-focusable.ts","../../../projects/cdk/utils/focus/is-native-focused.ts","../../../projects/cdk/utils/focus/is-native-focused-in.ts","../../../projects/cdk/utils/focus/move-focus.ts","../../../projects/cdk/utils/focus/set-native-mouse-focused.ts","../../../projects/cdk/utils/focus/taiga-ui-cdk-utils-focus.ts"],"sourcesContent":["/**\n * Returns current active element, including shadow dom\n *\n * @return element or null\n */\nexport function tuiGetNativeFocused({activeElement}: Document): Element | null {\n if (!activeElement?.shadowRoot) {\n return activeElement;\n }\n\n let element = activeElement.shadowRoot.activeElement;\n\n while (element?.shadowRoot) {\n element = element.shadowRoot.activeElement;\n }\n\n return element;\n}\n","import {tuiIsHTMLElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {tuiGetNativeFocused} from './get-native-focused';\n\n/**\n * Finds and blurs current active element, including shadow DOM\n */\nexport function tuiBlurNativeFocused(doc: Document): void {\n const activeElement = tuiGetNativeFocused(doc);\n\n if (tuiIsHTMLElement(activeElement)) {\n activeElement.blur();\n }\n}\n","import {tuiIsHTMLElement} from '@taiga-ui/cdk/utils/dom';\n\n/**\n * Checks for signs that element can be focused with keyboard. tabIndex above 0 is ignored to\n * only target natural focus order. Not checking the possibility of an element to\n * be focused, for example element can have display: none applied to it or any other\n * circumstances could prevent actual focus.\n */\nexport function tuiIsNativeKeyboardFocusable(element: Element): boolean {\n if (element.hasAttribute(`disabled`) || element.getAttribute(`tabIndex`) === `-1`) {\n return false;\n }\n\n if (\n (tuiIsHTMLElement(element) && element.isContentEditable) ||\n element.getAttribute(`tabIndex`) === `0`\n ) {\n return true;\n }\n\n switch (element.tagName) {\n case `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 {tuiIsNativeKeyboardFocusable} from './is-native-keyboard-focusable';\n\nexport function tuiIsNativeMouseFocusable(element: Element): boolean {\n return (\n !element.hasAttribute(`disabled`) &&\n (element.getAttribute(`tabIndex`) === `-1` ||\n tuiIsNativeKeyboardFocusable(element))\n );\n}\n","import {svgNodeFilter} from '@taiga-ui/cdk/constants';\nimport {tuiIsHTMLElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {tuiIsNativeKeyboardFocusable} from './is-native-keyboard-focusable';\nimport {tuiIsNativeMouseFocusable} from './is-native-mouse-focusable';\n\nexport interface TuiGetClosestFocusableOptions {\n /**\n * @description:\n * current HTML element\n */\n initial: Element;\n\n /**\n * @description:\n * determine if only keyboard focus is of interest\n */\n keyboard?: boolean;\n\n /**\n * @description:\n * should it look backwards instead (find item that will be focused with Shift + Tab)\n */\n previous?: boolean;\n\n /**\n * @description:\n * top Node limiting the search area\n */\n root: Node;\n}\n\n/**\n * @description:\n * Finds the closest element that can be focused with a keyboard or mouse in theory\n */\nexport function tuiGetClosestFocusable({\n initial,\n root,\n previous = false,\n keyboard = true,\n}: TuiGetClosestFocusableOptions): HTMLElement | null {\n if (!root.ownerDocument) {\n return null;\n }\n\n const check = keyboard ? tuiIsNativeKeyboardFocusable : tuiIsNativeMouseFocusable;\n const treeWalker = root.ownerDocument.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n svgNodeFilter,\n );\n\n treeWalker.currentNode = initial;\n\n while (previous ? treeWalker.previousNode() : treeWalker.nextNode()) {\n if (tuiIsHTMLElement(treeWalker.currentNode)) {\n initial = treeWalker.currentNode;\n }\n\n if (tuiIsHTMLElement(initial) && check(initial)) {\n return initial;\n }\n }\n\n return null;\n}\n","import {tuiGetNativeFocused} from './get-native-focused';\n\n/**\n * Checks if element is focused.\n *\n * Could return true even after blur since element remains focused if you switch away from a browser tab.\n *\n * @param node or null (as a common return value of DOM nodes walking)\n * @return true if focused\n */\nexport function tuiIsNativeFocused(node: Node | null): boolean {\n return !!node?.ownerDocument && tuiGetNativeFocused(node.ownerDocument) === node;\n}\n","import {tuiGetNativeFocused} from './get-native-focused';\n\n/**\n * Checks if focused element is within given element.\n *\n * @param node\n * @return true if focused node is contained within element\n */\nexport function tuiIsNativeFocusedIn(node: Node): boolean {\n // !node.contains - check for IE11\n if (!node.ownerDocument || !node.contains) {\n return false;\n }\n\n const nativeFocused = tuiGetNativeFocused(node.ownerDocument);\n\n return nativeFocused !== null && node.contains(nativeFocused);\n}\n","import {tuiIsNativeFocused} from './is-native-focused';\n\n/**\n * Utility method for moving focus in a list of elements\n *\n * @param currentIndex currently focused index\n * @param elements array of focusable elements\n * @param step a step to move focus by, typically -1 or 1\n */\nexport function tuiMoveFocus(\n currentIndex: number,\n elements: readonly HTMLElement[],\n step: number,\n): void {\n currentIndex += step;\n\n while (currentIndex >= 0 && currentIndex < elements.length) {\n elements[currentIndex].focus();\n\n if (tuiIsNativeFocused(elements[currentIndex])) {\n return;\n }\n\n currentIndex += step;\n }\n}\n","/**\n * 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 tuiSetNativeMouseFocused(\n element: Element & HTMLOrSVGElement,\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 if (focused) {\n element.focus({preventScroll});\n } else {\n element.blur();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["tuiIsHTMLElement","svgNodeFilter"],"mappings":"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"}
@@ -4,11 +4,18 @@
4
4
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global["taiga-ui"] = global["taiga-ui"] || {}, global["taiga-ui"].cdk = global["taiga-ui"].cdk || {}, global["taiga-ui"].cdk.utils = global["taiga-ui"].cdk.utils || {}, global["taiga-ui"].cdk.utils.format = {}), global["taiga-ui"].cdk.classes));
5
5
  })(this, (function (exports, classes) { 'use strict';
6
6
 
7
+ /**
8
+ * Adds 'px' to the number and turns it into a string
9
+ */
7
10
  function tuiPx(value) {
8
11
  ngDevMode && classes.tuiAssert.assert(Number.isFinite(value), "Value must be finite number");
9
12
  return value + "px";
10
13
  }
11
14
 
15
+ /**
16
+ * Generated bundle index. Do not edit.
17
+ */
18
+
12
19
  exports.tuiPx = tuiPx;
13
20
 
14
21
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-format.umd.js","sources":["../../../projects/cdk/utils/format/px.ts"],"sourcesContent":["import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * Adds 'px' to the number and turns it into a string\n */\nexport function tuiPx(value: number): string {\n ngDevMode && tuiAssert.assert(Number.isFinite(value), `Value must be finite number`);\n\n return `${value}px`;\n}\n"],"names":["tuiAssert"],"mappings":";;;;;;IAKM,SAAU,KAAK,CAAC,KAAa,EAAA;IAC/B,IAAA,SAAS,IAAIA,iBAAS,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,6BAA6B,CAAC,CAAC;QAErF,OAAU,KAAK,OAAI,CAAC;IACxB;;;;;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-utils-format.umd.js","sources":["../../../projects/cdk/utils/format/px.ts","../../../projects/cdk/utils/format/taiga-ui-cdk-utils-format.ts"],"sourcesContent":["import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * Adds 'px' to the number and turns it into a string\n */\nexport function tuiPx(value: number): string {\n ngDevMode && 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":["tuiAssert"],"mappings":";;;;;;IAEA;;IAEG;IACG,SAAU,KAAK,CAAC,KAAa,EAAA;IAC/B,IAAA,SAAS,IAAIA,iBAAS,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,6BAA6B,CAAC,CAAC;QAErF,OAAU,KAAK,OAAI,CAAC;IACxB;;ICTA;;IAEG;;;;;;;;;;"}
@@ -4,6 +4,13 @@
4
4
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global["taiga-ui"] = global["taiga-ui"] || {}, global["taiga-ui"].cdk = global["taiga-ui"].cdk || {}, global["taiga-ui"].cdk.utils = global["taiga-ui"].cdk.utils || {}, global["taiga-ui"].cdk.utils.math = {}), global["taiga-ui"].cdk.classes));
5
5
  })(this, (function (exports, classes) { 'use strict';
6
6
 
7
+ /**
8
+ * Clamps a value between two inclusive limits
9
+ *
10
+ * @param value
11
+ * @param min lower limit
12
+ * @param max upper limit
13
+ */
7
14
  function tuiClamp(value, min, max) {
8
15
  ngDevMode && classes.tuiAssert.assert(!Number.isNaN(value));
9
16
  ngDevMode && classes.tuiAssert.assert(!Number.isNaN(min));
@@ -20,6 +27,14 @@
20
27
  return value >= fromInclude && value < toExclude;
21
28
  }
22
29
 
30
+ /**
31
+ * Normalizes any number to an integer within inclusive range
32
+ *
33
+ * @param value
34
+ * @param min lower inclusive integer
35
+ * @param max upper inclusive integer
36
+ * @return an integer between min and max inclusive
37
+ */
23
38
  function tuiNormalizeToIntNumber(value, min, max) {
24
39
  ngDevMode && classes.tuiAssert.assert(Number.isInteger(min));
25
40
  ngDevMode && classes.tuiAssert.assert(Number.isInteger(max));
@@ -33,6 +48,12 @@
33
48
  return Math.round(value);
34
49
  }
35
50
 
51
+ /**
52
+ * Rounds a number to the closest value in a fixed discrete series
53
+ *
54
+ * @param value
55
+ * @param quantum series step
56
+ */
36
57
  function tuiQuantize(value, quantum) {
37
58
  ngDevMode && classes.tuiAssert.assert(Number.isFinite(value));
38
59
  ngDevMode && classes.tuiAssert.assert(Number.isFinite(quantum));
@@ -58,6 +79,13 @@
58
79
  if (precision === void 0) { precision = 0; }
59
80
  return calculate(value, precision, Math.trunc);
60
81
  }
82
+ /**
83
+ * Rounding number to the set precision
84
+ *
85
+ * @param value
86
+ * @param precision number of digits in a float part
87
+ * @param func rounding function (round, floor, ceil)
88
+ */
61
89
  function calculate(value, precision, func) {
62
90
  if (value === Infinity) {
63
91
  return value;
@@ -86,6 +114,9 @@
86
114
  }
87
115
  }
88
116
 
117
+ /**
118
+ * Calculates sum of any number of passed arguments
119
+ */
89
120
  function tuiSum() {
90
121
  var args = [];
91
122
  for (var _i = 0; _i < arguments.length; _i++) {
@@ -102,10 +133,17 @@
102
133
  return parseInt(value, 10);
103
134
  }
104
135
 
136
+ /**
137
+ * Converts angle in degrees to radians
138
+ */
105
139
  function tuiToRadians(deg) {
106
140
  return (deg * Math.PI) / 180;
107
141
  }
108
142
 
143
+ /**
144
+ * Generated bundle index. Do not edit.
145
+ */
146
+
109
147
  exports.tuiCeil = tuiCeil;
110
148
  exports.tuiClamp = tuiClamp;
111
149
  exports.tuiFloor = tuiFloor;
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-math.umd.js","sources":["../../../projects/cdk/utils/math/clamp.ts","../../../projects/cdk/utils/math/in-range.ts","../../../projects/cdk/utils/math/normalize-to-int-number.ts","../../../projects/cdk/utils/math/quantize.ts","../../../projects/cdk/utils/math/round.ts","../../../projects/cdk/utils/math/round-with.ts","../../../projects/cdk/utils/math/sum.ts","../../../projects/cdk/utils/math/to-int.ts","../../../projects/cdk/utils/math/to-integer.ts","../../../projects/cdk/utils/math/to-radians.ts"],"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 tuiClamp(value: number, min: number, max: number): number {\n ngDevMode && tuiAssert.assert(!Number.isNaN(value));\n ngDevMode && tuiAssert.assert(!Number.isNaN(min));\n ngDevMode && tuiAssert.assert(!Number.isNaN(max));\n ngDevMode && tuiAssert.assert(max >= min);\n\n return Math.min(max, Math.max(min, value));\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\nexport function tuiInRange(\n value: number,\n fromInclude: number,\n toExclude: number,\n): boolean {\n ngDevMode && tuiAssert.assert(!Number.isNaN(value));\n ngDevMode && tuiAssert.assert(!Number.isNaN(fromInclude));\n ngDevMode && tuiAssert.assert(!Number.isNaN(toExclude));\n ngDevMode && 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 tuiNormalizeToIntNumber(value: number, min: number, max: number): number {\n ngDevMode && tuiAssert.assert(Number.isInteger(min));\n ngDevMode && tuiAssert.assert(Number.isInteger(max));\n ngDevMode && tuiAssert.assert(min <= max);\n\n if (Number.isNaN(value) || value <= min) {\n return min;\n }\n\n if (value >= max) {\n return max;\n }\n\n return Math.round(value);\n}\n","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 tuiQuantize(value: number, quantum: number): number {\n ngDevMode && tuiAssert.assert(Number.isFinite(value));\n ngDevMode && tuiAssert.assert(Number.isFinite(quantum));\n ngDevMode && 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 tuiRound(value: number, precision: number = 0): number {\n return calculate(value, precision, Math.round);\n}\n\nexport function tuiCeil(value: number, precision: number = 0): number {\n return calculate(value, precision, Math.ceil);\n}\n\nexport function tuiFloor(value: number, precision: number = 0): number {\n return calculate(value, precision, Math.floor);\n}\n\nexport function tuiTrunc(value: number, precision: number = 0): number {\n return calculate(value, precision, Math.trunc);\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 ngDevMode && tuiAssert.assert(!Number.isNaN(value), `Value must be number`);\n ngDevMode &&\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","import {TuiRounding} from '@taiga-ui/cdk/types';\n\nimport {tuiCeil, tuiFloor, tuiRound, tuiTrunc} from './round';\n\nexport function tuiRoundWith({\n value,\n precision,\n method,\n}: {\n method: TuiRounding;\n precision: number;\n value: number;\n}): number {\n switch (method) {\n case `round`:\n return tuiRound(value, precision);\n case `ceil`:\n return tuiCeil(value, precision);\n case `floor`:\n return tuiFloor(value, precision);\n default:\n return tuiTrunc(value, precision);\n }\n}\n","/**\n * Calculates sum of any number of passed arguments\n */\nexport function tuiSum(...args: number[]): number {\n return args.reduce((a, b) => a + b, 0);\n}\n","export function tuiToInt(bool: boolean): 0 | 1 {\n return bool ? 1 : 0;\n}\n","export function tuiToInteger(value: number | string): number {\n return parseInt(value as unknown as string, 10);\n}\n","/**\n * Converts angle in degrees to radians\n */\nexport function tuiToRadians(deg: number): number {\n return (deg * Math.PI) / 180;\n}\n"],"names":["tuiAssert"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-utils-math.umd.js","sources":["../../../projects/cdk/utils/math/clamp.ts","../../../projects/cdk/utils/math/in-range.ts","../../../projects/cdk/utils/math/normalize-to-int-number.ts","../../../projects/cdk/utils/math/quantize.ts","../../../projects/cdk/utils/math/round.ts","../../../projects/cdk/utils/math/round-with.ts","../../../projects/cdk/utils/math/sum.ts","../../../projects/cdk/utils/math/to-int.ts","../../../projects/cdk/utils/math/to-integer.ts","../../../projects/cdk/utils/math/to-radians.ts","../../../projects/cdk/utils/math/taiga-ui-cdk-utils-math.ts"],"sourcesContent":["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 tuiClamp(value: number, min: number, max: number): number {\n ngDevMode && tuiAssert.assert(!Number.isNaN(value));\n ngDevMode && tuiAssert.assert(!Number.isNaN(min));\n ngDevMode && tuiAssert.assert(!Number.isNaN(max));\n ngDevMode && tuiAssert.assert(max >= min);\n\n return Math.min(max, Math.max(min, value));\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\nexport function tuiInRange(\n value: number,\n fromInclude: number,\n toExclude: number,\n): boolean {\n ngDevMode && tuiAssert.assert(!Number.isNaN(value));\n ngDevMode && tuiAssert.assert(!Number.isNaN(fromInclude));\n ngDevMode && tuiAssert.assert(!Number.isNaN(toExclude));\n ngDevMode && 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 tuiNormalizeToIntNumber(value: number, min: number, max: number): number {\n ngDevMode && tuiAssert.assert(Number.isInteger(min));\n ngDevMode && tuiAssert.assert(Number.isInteger(max));\n ngDevMode && tuiAssert.assert(min <= max);\n\n if (Number.isNaN(value) || value <= min) {\n return min;\n }\n\n if (value >= max) {\n return max;\n }\n\n return Math.round(value);\n}\n","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 tuiQuantize(value: number, quantum: number): number {\n ngDevMode && tuiAssert.assert(Number.isFinite(value));\n ngDevMode && tuiAssert.assert(Number.isFinite(quantum));\n ngDevMode && 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 tuiRound(value: number, precision: number = 0): number {\n return calculate(value, precision, Math.round);\n}\n\nexport function tuiCeil(value: number, precision: number = 0): number {\n return calculate(value, precision, Math.ceil);\n}\n\nexport function tuiFloor(value: number, precision: number = 0): number {\n return calculate(value, precision, Math.floor);\n}\n\nexport function tuiTrunc(value: number, precision: number = 0): number {\n return calculate(value, precision, Math.trunc);\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 ngDevMode && tuiAssert.assert(!Number.isNaN(value), `Value must be number`);\n ngDevMode &&\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","import {TuiRounding} from '@taiga-ui/cdk/types';\n\nimport {tuiCeil, tuiFloor, tuiRound, tuiTrunc} from './round';\n\nexport function tuiRoundWith({\n value,\n precision,\n method,\n}: {\n method: TuiRounding;\n precision: number;\n value: number;\n}): number {\n switch (method) {\n case `round`:\n return tuiRound(value, precision);\n case `ceil`:\n return tuiCeil(value, precision);\n case `floor`:\n return tuiFloor(value, precision);\n default:\n return tuiTrunc(value, precision);\n }\n}\n","/**\n * Calculates sum of any number of passed arguments\n */\nexport function tuiSum(...args: number[]): number {\n return args.reduce((a, b) => a + b, 0);\n}\n","export function tuiToInt(bool: boolean): 0 | 1 {\n return bool ? 1 : 0;\n}\n","export function tuiToInteger(value: number | string): number {\n return parseInt(value as unknown as string, 10);\n}\n","/**\n * Converts angle in degrees to radians\n */\nexport function tuiToRadians(deg: number): number {\n return (deg * Math.PI) / 180;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["tuiAssert"],"mappings":"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"}