@taiga-ui/cdk 3.60.0 → 3.61.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (304) hide show
  1. package/bundles/taiga-ui-cdk-abstract.umd.js +971 -1117
  2. package/bundles/taiga-ui-cdk-abstract.umd.js.map +1 -1
  3. package/bundles/taiga-ui-cdk-coercion.umd.js +1 -1
  4. package/bundles/taiga-ui-cdk-coercion.umd.js.map +1 -1
  5. package/bundles/taiga-ui-cdk-components-dialog-host.umd.js +505 -651
  6. package/bundles/taiga-ui-cdk-components-dialog-host.umd.js.map +1 -1
  7. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.js +404 -550
  8. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.js.map +1 -1
  9. package/bundles/taiga-ui-cdk-components-scroll-controls.umd.js +590 -736
  10. package/bundles/taiga-ui-cdk-components-scroll-controls.umd.js.map +1 -1
  11. package/bundles/taiga-ui-cdk-constants.umd.js +80 -80
  12. package/bundles/taiga-ui-cdk-constants.umd.js.map +1 -1
  13. package/bundles/taiga-ui-cdk-date-time.umd.js +33 -179
  14. package/bundles/taiga-ui-cdk-date-time.umd.js.map +1 -1
  15. package/bundles/taiga-ui-cdk-decorators.umd.js +10 -156
  16. package/bundles/taiga-ui-cdk-decorators.umd.js.map +1 -1
  17. package/bundles/taiga-ui-cdk-directives-active-zone.umd.js +434 -580
  18. package/bundles/taiga-ui-cdk-directives-active-zone.umd.js.map +1 -1
  19. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js +706 -852
  20. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js.map +1 -1
  21. package/bundles/taiga-ui-cdk-directives-for-async.umd.js +426 -572
  22. package/bundles/taiga-ui-cdk-directives-for-async.umd.js.map +1 -1
  23. package/bundles/taiga-ui-cdk-directives-hovered.umd.js +410 -556
  24. package/bundles/taiga-ui-cdk-directives-hovered.umd.js.map +1 -1
  25. package/bundles/taiga-ui-cdk-directives-resizer.umd.js +482 -628
  26. package/bundles/taiga-ui-cdk-directives-resizer.umd.js.map +1 -1
  27. package/bundles/taiga-ui-cdk-exceptions.umd.js +426 -572
  28. package/bundles/taiga-ui-cdk-exceptions.umd.js.map +1 -1
  29. package/bundles/taiga-ui-cdk-observables.umd.js +9 -9
  30. package/bundles/taiga-ui-cdk-observables.umd.js.map +1 -1
  31. package/bundles/taiga-ui-cdk-pipes-filter.umd.js +373 -519
  32. package/bundles/taiga-ui-cdk-pipes-filter.umd.js.map +1 -1
  33. package/bundles/taiga-ui-cdk-pipes-is-present.umd.js +1 -1
  34. package/bundles/taiga-ui-cdk-pipes-is-present.umd.js.map +1 -1
  35. package/bundles/taiga-ui-cdk-pipes-keys.umd.js +1 -1
  36. package/bundles/taiga-ui-cdk-pipes-keys.umd.js.map +1 -1
  37. package/bundles/taiga-ui-cdk-pipes-mapper.umd.js +373 -519
  38. package/bundles/taiga-ui-cdk-pipes-mapper.umd.js.map +1 -1
  39. package/bundles/taiga-ui-cdk-pipes-replace.umd.js +2 -2
  40. package/bundles/taiga-ui-cdk-pipes-replace.umd.js.map +1 -1
  41. package/bundles/taiga-ui-cdk-services.umd.js +841 -984
  42. package/bundles/taiga-ui-cdk-services.umd.js.map +1 -1
  43. package/bundles/taiga-ui-cdk-tokens.umd.js +650 -796
  44. package/bundles/taiga-ui-cdk-tokens.umd.js.map +1 -1
  45. package/bundles/taiga-ui-cdk-utils-browser.umd.js +8 -8
  46. package/bundles/taiga-ui-cdk-utils-browser.umd.js.map +1 -1
  47. package/bundles/taiga-ui-cdk-utils-color.umd.js +26 -172
  48. package/bundles/taiga-ui-cdk-utils-color.umd.js.map +1 -1
  49. package/bundles/taiga-ui-cdk-utils-dom.umd.js +11 -11
  50. package/bundles/taiga-ui-cdk-utils-dom.umd.js.map +1 -1
  51. package/bundles/taiga-ui-cdk-utils-focus.umd.js +19 -19
  52. package/bundles/taiga-ui-cdk-utils-focus.umd.js.map +1 -1
  53. package/bundles/taiga-ui-cdk-utils-format.umd.js +1 -1
  54. package/bundles/taiga-ui-cdk-utils-format.umd.js.map +1 -1
  55. package/bundles/taiga-ui-cdk-utils-math.umd.js +7 -7
  56. package/bundles/taiga-ui-cdk-utils-math.umd.js.map +1 -1
  57. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js +21 -167
  58. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js.map +1 -1
  59. package/bundles/taiga-ui-cdk-utils-os.umd.js +1 -1
  60. package/bundles/taiga-ui-cdk-utils-os.umd.js.map +1 -1
  61. package/bundles/taiga-ui-cdk-utils-svg.umd.js +11 -11
  62. package/bundles/taiga-ui-cdk-utils-svg.umd.js.map +1 -1
  63. package/constants/version.d.ts +1 -1
  64. package/constants/version.js +1 -1
  65. package/esm2015/abstract/control.js +4 -4
  66. package/esm2015/abstract/interactive.js +7 -7
  67. package/esm2015/abstract/portal-host.js +2 -2
  68. package/esm2015/abstract/theme-switcher.js +2 -2
  69. package/esm2015/coercion/coerce-boolean-property.js +2 -2
  70. package/esm2015/components/dropdown-host/dropdown-portal.service.js +3 -3
  71. package/esm2015/constants/parent-animation.js +4 -4
  72. package/esm2015/constants/svg-node-filter.js +2 -2
  73. package/esm2015/constants/unicode-chars.js +13 -13
  74. package/esm2015/constants/used-icons.js +64 -64
  75. package/esm2015/constants/version.js +2 -2
  76. package/esm2015/date-time/date-format.js +2 -2
  77. package/esm2015/date-time/date-separator.js +2 -2
  78. package/esm2015/date-time/day-range.js +3 -3
  79. package/esm2015/date-time/day.js +14 -14
  80. package/esm2015/date-time/month.js +2 -2
  81. package/esm2015/date-time/time.js +7 -7
  82. package/esm2015/date-time/year.js +2 -2
  83. package/esm2015/decorators/pure.js +5 -5
  84. package/esm2015/directives/auto-focus/autofocus.options.js +2 -2
  85. package/esm2015/directives/auto-focus/handlers/abstract.handler.js +2 -2
  86. package/esm2015/directives/auto-focus/handlers/default.handler.js +2 -2
  87. package/esm2015/directives/auto-focus/handlers/ios.handler.js +28 -28
  88. package/esm2015/directives/hovered/hovered.service.js +3 -3
  89. package/esm2015/exceptions/computed-document.exception.js +2 -2
  90. package/esm2015/exceptions/document-selection.exception.js +2 -2
  91. package/esm2015/exceptions/invalid-day.exception.js +2 -2
  92. package/esm2015/exceptions/invalid-month.exception.js +2 -2
  93. package/esm2015/exceptions/invalid-year.exception.js +2 -2
  94. package/esm2015/exceptions/no-host.exception.js +2 -2
  95. package/esm2015/exceptions/owner-document.exception.js +2 -2
  96. package/esm2015/exceptions/pure.exception.js +2 -2
  97. package/esm2015/exceptions/table-sort-key.exception.js +2 -2
  98. package/esm2015/exceptions/ts-parser.exception.js +2 -2
  99. package/esm2015/exceptions/value-changes.exception.js +2 -2
  100. package/esm2015/exceptions/value-present.exception.js +2 -2
  101. package/esm2015/exceptions/xml-parsing.exception.js +2 -2
  102. package/esm2015/observables/drag-and-drop-from.js +2 -2
  103. package/esm2015/observables/focus-visible-observable.js +5 -5
  104. package/esm2015/observables/is-observed.js +2 -2
  105. package/esm2015/observables/mouse-drag-finish-from.js +2 -2
  106. package/esm2015/observables/pressed-observable.js +2 -2
  107. package/esm2015/observables/scroll-from.js +2 -2
  108. package/esm2015/pipes/filter/filter.pipe.js +2 -2
  109. package/esm2015/pipes/is-present/is-present.pipe.js +2 -2
  110. package/esm2015/pipes/keys/keys.pipe.js +2 -2
  111. package/esm2015/pipes/mapper/mapper.pipe.js +2 -2
  112. package/esm2015/pipes/replace/replace.pipe.js +3 -3
  113. package/esm2015/services/directive-styles.service.js +6 -3
  114. package/esm2015/services/id.service.js +4 -4
  115. package/esm2015/services/obscured.service.js +2 -2
  116. package/esm2015/services/pan.service.js +5 -5
  117. package/esm2015/services/parents-scroll.service.js +2 -2
  118. package/esm2015/services/scroll.service.js +8 -8
  119. package/esm2015/services/static-request.service.js +4 -4
  120. package/esm2015/services/swipe.service.js +2 -2
  121. package/esm2015/services/zoom.service.js +3 -3
  122. package/esm2015/tokens/active-element.js +9 -9
  123. package/esm2015/tokens/base-href.js +2 -2
  124. package/esm2015/tokens/ensure-base-href.js +4 -4
  125. package/esm2015/tokens/focusable-item-accessor.js +2 -2
  126. package/esm2015/tokens/fonts-ready.js +2 -2
  127. package/esm2015/tokens/is-firefox.js +2 -2
  128. package/esm2015/tokens/is-stackblitz.js +2 -2
  129. package/esm2015/tokens/platform.js +5 -5
  130. package/esm2015/tokens/touch-supported.js +2 -2
  131. package/esm2015/tokens/window-size.js +5 -5
  132. package/esm2015/utils/browser/is-edge-older-than.js +2 -2
  133. package/esm2015/utils/browser/is-edge.js +2 -2
  134. package/esm2015/utils/browser/is-firefox.js +2 -2
  135. package/esm2015/utils/browser/is-safari.js +6 -6
  136. package/esm2015/utils/color/hex-to-rgb.js +4 -4
  137. package/esm2015/utils/color/hex-to-rgba.js +5 -5
  138. package/esm2015/utils/color/parse-color.js +7 -7
  139. package/esm2015/utils/color/rgb-to-hex.js +2 -2
  140. package/esm2015/utils/color/rgba-to-hex.js +7 -7
  141. package/esm2015/utils/dom/element-checks.js +4 -4
  142. package/esm2015/utils/dom/get-clipboard-data-text.js +4 -4
  143. package/esm2015/utils/dom/get-document-or-shadow-root.js +2 -2
  144. package/esm2015/utils/dom/get-element-offset.js +2 -2
  145. package/esm2015/utils/dom/retarget-boundary-crossing.js +4 -4
  146. package/esm2015/utils/focus/is-native-keyboard-focusable.js +14 -14
  147. package/esm2015/utils/focus/is-native-mouse-focusable.js +3 -3
  148. package/esm2015/utils/focus/set-native-mouse-focused.js +5 -5
  149. package/esm2015/utils/format/px.js +2 -2
  150. package/esm2015/utils/math/round-with.js +4 -4
  151. package/esm2015/utils/math/round.js +5 -5
  152. package/esm2015/utils/miscellaneous/clean-object.js +2 -2
  153. package/esm2015/utils/miscellaneous/create-token.js +2 -2
  154. package/esm2015/utils/miscellaneous/ease-in-out-quad.js +2 -2
  155. package/esm2015/utils/miscellaneous/get-swipe-direction.js +3 -3
  156. package/esm2015/utils/miscellaneous/is-number.js +2 -2
  157. package/esm2015/utils/miscellaneous/is-object.js +2 -2
  158. package/esm2015/utils/miscellaneous/is-string.js +2 -2
  159. package/esm2015/utils/miscellaneous/is-valid-url.js +8 -8
  160. package/esm2015/utils/os/is-apple-platform.js +2 -2
  161. package/esm2015/utils/svg/svg-linear-gradient-processor.js +12 -12
  162. package/fesm2015/taiga-ui-cdk-abstract.js +11 -11
  163. package/fesm2015/taiga-ui-cdk-abstract.js.map +1 -1
  164. package/fesm2015/taiga-ui-cdk-coercion.js +1 -1
  165. package/fesm2015/taiga-ui-cdk-coercion.js.map +1 -1
  166. package/fesm2015/taiga-ui-cdk-components-dropdown-host.js +2 -2
  167. package/fesm2015/taiga-ui-cdk-components-dropdown-host.js.map +1 -1
  168. package/fesm2015/taiga-ui-cdk-constants.js +80 -80
  169. package/fesm2015/taiga-ui-cdk-constants.js.map +1 -1
  170. package/fesm2015/taiga-ui-cdk-date-time.js +25 -25
  171. package/fesm2015/taiga-ui-cdk-date-time.js.map +1 -1
  172. package/fesm2015/taiga-ui-cdk-decorators.js +4 -4
  173. package/fesm2015/taiga-ui-cdk-decorators.js.map +1 -1
  174. package/fesm2015/taiga-ui-cdk-directives-auto-focus.js +30 -30
  175. package/fesm2015/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
  176. package/fesm2015/taiga-ui-cdk-directives-hovered.js +2 -2
  177. package/fesm2015/taiga-ui-cdk-directives-hovered.js.map +1 -1
  178. package/fesm2015/taiga-ui-cdk-exceptions.js +13 -13
  179. package/fesm2015/taiga-ui-cdk-exceptions.js.map +1 -1
  180. package/fesm2015/taiga-ui-cdk-observables.js +9 -9
  181. package/fesm2015/taiga-ui-cdk-observables.js.map +1 -1
  182. package/fesm2015/taiga-ui-cdk-pipes-filter.js +1 -1
  183. package/fesm2015/taiga-ui-cdk-pipes-filter.js.map +1 -1
  184. package/fesm2015/taiga-ui-cdk-pipes-is-present.js +1 -1
  185. package/fesm2015/taiga-ui-cdk-pipes-is-present.js.map +1 -1
  186. package/fesm2015/taiga-ui-cdk-pipes-keys.js +1 -1
  187. package/fesm2015/taiga-ui-cdk-pipes-keys.js.map +1 -1
  188. package/fesm2015/taiga-ui-cdk-pipes-mapper.js +1 -1
  189. package/fesm2015/taiga-ui-cdk-pipes-mapper.js.map +1 -1
  190. package/fesm2015/taiga-ui-cdk-pipes-replace.js +2 -2
  191. package/fesm2015/taiga-ui-cdk-pipes-replace.js.map +1 -1
  192. package/fesm2015/taiga-ui-cdk-services.js +27 -24
  193. package/fesm2015/taiga-ui-cdk-services.js.map +1 -1
  194. package/fesm2015/taiga-ui-cdk-tokens.js +25 -25
  195. package/fesm2015/taiga-ui-cdk-tokens.js.map +1 -1
  196. package/fesm2015/taiga-ui-cdk-utils-browser.js +8 -8
  197. package/fesm2015/taiga-ui-cdk-utils-browser.js.map +1 -1
  198. package/fesm2015/taiga-ui-cdk-utils-color.js +20 -20
  199. package/fesm2015/taiga-ui-cdk-utils-color.js.map +1 -1
  200. package/fesm2015/taiga-ui-cdk-utils-dom.js +11 -11
  201. package/fesm2015/taiga-ui-cdk-utils-dom.js.map +1 -1
  202. package/fesm2015/taiga-ui-cdk-utils-focus.js +19 -19
  203. package/fesm2015/taiga-ui-cdk-utils-focus.js.map +1 -1
  204. package/fesm2015/taiga-ui-cdk-utils-format.js +1 -1
  205. package/fesm2015/taiga-ui-cdk-utils-format.js.map +1 -1
  206. package/fesm2015/taiga-ui-cdk-utils-math.js +7 -7
  207. package/fesm2015/taiga-ui-cdk-utils-math.js.map +1 -1
  208. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js +15 -15
  209. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
  210. package/fesm2015/taiga-ui-cdk-utils-os.js +1 -1
  211. package/fesm2015/taiga-ui-cdk-utils-os.js.map +1 -1
  212. package/fesm2015/taiga-ui-cdk-utils-svg.js +11 -11
  213. package/fesm2015/taiga-ui-cdk-utils-svg.js.map +1 -1
  214. package/package.json +1 -1
  215. package/schematics/constants/file-globs.js +24 -24
  216. package/schematics/constants/taiga-styles.js +4 -4
  217. package/schematics/ng-add/constants/modules.js +12 -12
  218. package/schematics/ng-add/constants/packages.js +1 -1
  219. package/schematics/ng-add/constants/versions.js +3 -3
  220. package/schematics/ng-add/index.js +10 -10
  221. package/schematics/ng-add/steps/add-taiga-icons.js +4 -4
  222. package/schematics/ng-add/steps/add-taiga-modules.js +14 -14
  223. package/schematics/ng-add/steps/wrap-with-tui-root.js +12 -12
  224. package/schematics/ng-update/steps/icons/replace-imports.js +2 -2
  225. package/schematics/ng-update/steps/remove-module.js +2 -2
  226. package/schematics/ng-update/steps/rename-types.js +5 -5
  227. package/schematics/ng-update/steps/replace-deep-import.js +4 -4
  228. package/schematics/ng-update/steps/replace-enums.js +2 -2
  229. package/schematics/ng-update/steps/replace-identifier.js +2 -2
  230. package/schematics/ng-update/steps/replace-services.js +4 -4
  231. package/schematics/ng-update/steps/show-warnings.js +1 -1
  232. package/schematics/ng-update/utils/replace-text.js +1 -1
  233. package/schematics/ng-update/utils/templates/replace-tag.js +1 -1
  234. package/schematics/ng-update/v3/constants/breakpoints.js +27 -27
  235. package/schematics/ng-update/v3/constants/constants.js +187 -187
  236. package/schematics/ng-update/v3/constants/deprecated-functions.js +405 -405
  237. package/schematics/ng-update/v3/constants/enums.js +153 -153
  238. package/schematics/ng-update/v3/constants/modules.js +4 -4
  239. package/schematics/ng-update/v3/constants/services.js +16 -16
  240. package/schematics/ng-update/v3/constants/templates.js +295 -295
  241. package/schematics/ng-update/v3/constants/tui-interactive-selectors.js +50 -50
  242. package/schematics/ng-update/v3/constants/types.js +88 -88
  243. package/schematics/ng-update/v3/constants/warnings.js +62 -62
  244. package/schematics/ng-update/v3/index.js +7 -7
  245. package/schematics/ng-update/v3/steps/migrate-date-time.js +42 -42
  246. package/schematics/ng-update/v3/steps/migrate-polymorpheus.js +14 -14
  247. package/schematics/ng-update/v3/steps/migrate-progress.js +6 -6
  248. package/schematics/ng-update/v3/steps/migrate-sliders/index.js +4 -4
  249. package/schematics/ng-update/v3/steps/migrate-sliders/migrate-input-range.js +27 -27
  250. package/schematics/ng-update/v3/steps/migrate-sliders/migrate-input-slider.js +26 -26
  251. package/schematics/ng-update/v3/steps/migrate-taiga-proprietary-icons.js +7 -7
  252. package/schematics/ng-update/v3/steps/migrate-templates.js +18 -18
  253. package/schematics/ng-update/v3/steps/migrate-textfield-controller.js +33 -33
  254. package/schematics/ng-update/v3/steps/miscellaneous.js +16 -16
  255. package/schematics/ng-update/v3/steps/replace-functions.js +17 -17
  256. package/schematics/ng-update/v3/steps/replace-styles.js +12 -12
  257. package/schematics/ng-update/v3-30/constants/constants.js +2 -2
  258. package/schematics/ng-update/v3-30/constants/icons.js +494 -494
  259. package/schematics/ng-update/v3-30/index.js +4 -4
  260. package/schematics/ng-update/v3-35/constants/constants.js +2 -2
  261. package/schematics/ng-update/v3-35/constants/icons.js +1266 -1266
  262. package/schematics/ng-update/v3-35/index.js +5 -5
  263. package/schematics/ng-update/v3-36/index.js +6 -6
  264. package/schematics/ng-update/v3-40/index.js +11 -11
  265. package/schematics/ng-update/v3-5/index.js +1 -1
  266. package/schematics/ng-update/v3-5/steps/migrate-expand-templates.js +7 -7
  267. package/schematics/ng-update/v4/index.js +2 -2
  268. package/schematics/ng-update/v4/steps/constants/attr-to-directive-replace.js +19 -19
  269. package/schematics/ng-update/v4/steps/constants/attrs-to-replace.js +21 -21
  270. package/schematics/ng-update/v4/steps/constants/html-comments.js +9 -9
  271. package/schematics/ng-update/v4/steps/constants/identifiers-to-replace.js +21 -21
  272. package/schematics/ng-update/v4/steps/constants/inputs-to-remove.js +4 -4
  273. package/schematics/ng-update/v4/steps/constants/tags-to-replace.js +2 -2
  274. package/schematics/ng-update/v4/steps/migrate-templates.js +3 -3
  275. package/schematics/ng-update/v4/steps/restore-tui-mapper.js +6 -6
  276. package/schematics/ng-update/v4/steps/restore-tui-matcher.js +6 -6
  277. package/schematics/ng-update/v4/steps/templates/migrate-avatar.js +14 -14
  278. package/schematics/ng-update/v4/steps/templates/migrate-badge.js +3 -3
  279. package/schematics/ng-update/v4/steps/templates/toggles/common.js +5 -5
  280. package/schematics/ng-update/v4/steps/templates/toggles/migrate-checkbox.js +4 -4
  281. package/schematics/ng-update/v4/steps/templates/toggles/migrate-radio.js +4 -4
  282. package/schematics/ng-update/v4/steps/templates/toggles/migrate-toggle.js +4 -4
  283. package/schematics/utils/add-import-to-component.js +1 -1
  284. package/schematics/utils/angular/is-standalone-component.js +3 -3
  285. package/schematics/utils/angular/ng-component.js +1 -1
  286. package/schematics/utils/angular/ng-module.js +1 -1
  287. package/schematics/utils/angular-json-manipulations.js +5 -5
  288. package/schematics/utils/colored-log.js +11 -11
  289. package/schematics/utils/create-angular-json.js +3 -3
  290. package/schematics/utils/get-component-from-identifier.js +1 -1
  291. package/schematics/utils/get-named-import-references.js +1 -1
  292. package/schematics/utils/get-projects.js +2 -2
  293. package/schematics/utils/get-standalone-bootstrap-function.js +1 -1
  294. package/schematics/utils/insert-todo.js +1 -1
  295. package/schematics/utils/is-ci.js +1 -1
  296. package/schematics/utils/progress.js +2 -2
  297. package/schematics/utils/project-root.js +1 -1
  298. package/schematics/utils/push-to-array-property.js +1 -1
  299. package/schematics/utils/templates/elements.js +1 -1
  300. package/schematics/utils/templates/get-component-templates.js +5 -5
  301. package/schematics/utils/templates/ng-component-input-manipulations.js +5 -5
  302. package/schematics/utils/templates/template-resource.js +3 -3
  303. package/services/directive-styles.service.d.ts +3 -2
  304. package/utils/miscellaneous/is-string.js +1 -1
@@ -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","../../../projects/cdk/utils/dom/taiga-ui-cdk-utils-dom.ts"],"sourcesContent":["function 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\nexport 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","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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"}
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":["function 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\nexport 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","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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"}
@@ -38,34 +38,34 @@
38
38
  * circumstances could prevent actual focus.
39
39
  */
40
40
  function tuiIsNativeKeyboardFocusable(element) {
41
- if (element.hasAttribute("disabled") || element.getAttribute("tabIndex") === "-1") {
41
+ if (element.hasAttribute('disabled') || element.getAttribute('tabIndex') === '-1') {
42
42
  return false;
43
43
  }
44
44
  if ((dom.tuiIsHTMLElement(element) && element.isContentEditable) ||
45
- element.getAttribute("tabIndex") === "0") {
45
+ element.getAttribute('tabIndex') === '0') {
46
46
  return true;
47
47
  }
48
48
  switch (element.tagName) {
49
- case "BUTTON":
50
- case "SELECT":
51
- case "TEXTAREA":
49
+ case 'BUTTON':
50
+ case 'SELECT':
51
+ case 'TEXTAREA':
52
52
  return true;
53
- case "VIDEO":
54
- case "AUDIO":
55
- return element.hasAttribute("controls");
56
- case "INPUT":
57
- return element.getAttribute("type") !== "hidden";
58
- case "A":
59
- case "LINK":
60
- return element.hasAttribute("href");
53
+ case 'VIDEO':
54
+ case 'AUDIO':
55
+ return element.hasAttribute('controls');
56
+ case 'INPUT':
57
+ return element.getAttribute('type') !== 'hidden';
58
+ case 'A':
59
+ case 'LINK':
60
+ return element.hasAttribute('href');
61
61
  default:
62
62
  return false;
63
63
  }
64
64
  }
65
65
 
66
66
  function tuiIsNativeMouseFocusable(element) {
67
- return (!element.hasAttribute("disabled") &&
68
- (element.getAttribute("tabIndex") === "-1" ||
67
+ return (!element.hasAttribute('disabled') &&
68
+ (element.getAttribute('tabIndex') === '-1' ||
69
69
  tuiIsNativeKeyboardFocusable(element)));
70
70
  }
71
71
 
@@ -154,12 +154,12 @@
154
154
  if (!element.ownerDocument) {
155
155
  return;
156
156
  }
157
- if (typeof Event === "function") {
158
- element.dispatchEvent(new Event("mousedown", { bubbles: true, cancelable: true }));
157
+ if (typeof Event === 'function') {
158
+ element.dispatchEvent(new Event('mousedown', { bubbles: true, cancelable: true }));
159
159
  }
160
160
  else {
161
- var event = element.ownerDocument.createEvent("Event");
162
- event.initEvent("mousedown", true, true);
161
+ var event = element.ownerDocument.createEvent('Event');
162
+ event.initEvent('mousedown', true, true);
163
163
  element.dispatchEvent(event);
164
164
  }
165
165
  if (focused) {
@@ -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","../../../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 (\n !!node?.ownerDocument &&\n tuiGetNativeFocused(node.ownerDocument) === node &&\n node.ownerDocument.hasFocus()\n );\n}\n","import {tuiGetNativeFocused} from './get-native-focused';\n\n/**\n * Checks if focused element is within given element.\n *\n * @param node\n * @return true if focused node is contained within element\n */\nexport function tuiIsNativeFocusedIn(node: Node): 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 (\n nativeFocused !== null &&\n node.contains(nativeFocused) &&\n node.ownerDocument.hasFocus()\n );\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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"}
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 (\n !!node?.ownerDocument &&\n tuiGetNativeFocused(node.ownerDocument) === node &&\n node.ownerDocument.hasFocus()\n );\n}\n","import {tuiGetNativeFocused} from './get-native-focused';\n\n/**\n * Checks if focused element is within given element.\n *\n * @param node\n * @return true if focused node is contained within element\n */\nexport function tuiIsNativeFocusedIn(node: Node): 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 (\n nativeFocused !== null &&\n node.contains(nativeFocused) &&\n node.ownerDocument.hasFocus()\n );\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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"}
@@ -8,7 +8,7 @@
8
8
  * Adds 'px' to the number and turns it into a string
9
9
  */
10
10
  function tuiPx(value) {
11
- ngDevMode && classes.tuiAssert.assert(Number.isFinite(value), "Value must be finite number");
11
+ ngDevMode && classes.tuiAssert.assert(Number.isFinite(value), 'Value must be finite number');
12
12
  return value + "px";
13
13
  }
14
14
 
@@ -1 +1 @@
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;;;;;;;;;;"}
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;;;;;;;;;;"}
@@ -74,13 +74,13 @@
74
74
  if (value === Infinity) {
75
75
  return value;
76
76
  }
77
- ngDevMode && classes.tuiAssert.assert(!Number.isNaN(value), "Value must be number");
77
+ ngDevMode && classes.tuiAssert.assert(!Number.isNaN(value), 'Value must be number');
78
78
  ngDevMode &&
79
- classes.tuiAssert.assert(Number.isInteger(precision), "Precision must be integer");
79
+ classes.tuiAssert.assert(Number.isInteger(precision), 'Precision must be integer');
80
80
  precision = Math.min(precision, MAX_PRECISION);
81
- var pair = (value + "e").split("e");
81
+ var pair = (value + "e").split('e');
82
82
  var tempValue = func(Number(pair[0] + "e" + (Number(pair[1]) + precision)));
83
- var processedPair = (tempValue + "e").split("e");
83
+ var processedPair = (tempValue + "e").split('e');
84
84
  return Number(processedPair[0] + "e" + (Number(processedPair[1]) - precision));
85
85
  }
86
86
  function tuiRound(value, precision) {
@@ -103,11 +103,11 @@
103
103
  function tuiRoundWith(_a) {
104
104
  var value = _a.value, precision = _a.precision, method = _a.method;
105
105
  switch (method) {
106
- case "round":
106
+ case 'round':
107
107
  return tuiRound(value, precision);
108
- case "ceil":
108
+ case 'ceil':
109
109
  return tuiCeil(value, precision);
110
- case "floor":
110
+ case 'floor':
111
111
  return tuiFloor(value, precision);
112
112
  default:
113
113
  return tuiTrunc(value, precision);
@@ -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","../../../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\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\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","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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"}
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\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\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","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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"}
@@ -12,7 +12,7 @@
12
12
  return a.length === b.length && a.every(function (item, index) { return item === b[index]; });
13
13
  }
14
14
 
15
- /******************************************************************************
15
+ /*! *****************************************************************************
16
16
  Copyright (c) Microsoft Corporation.
17
17
 
18
18
  Permission to use, copy, modify, and/or distribute this software for any
@@ -26,7 +26,7 @@
26
26
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
27
27
  PERFORMANCE OF THIS SOFTWARE.
28
28
  ***************************************************************************** */
29
- /* global Reflect, Promise, SuppressedError, Symbol */
29
+ /* global Reflect, Promise */
30
30
  var extendStatics = function (d, b) {
31
31
  extendStatics = Object.setPrototypeOf ||
32
32
  ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
@@ -79,64 +79,6 @@
79
79
  function __param(paramIndex, decorator) {
80
80
  return function (target, key) { decorator(target, key, paramIndex); };
81
81
  }
82
- function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
83
- function accept(f) { if (f !== void 0 && typeof f !== "function")
84
- throw new TypeError("Function expected"); return f; }
85
- var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
86
- var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
87
- var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
88
- var _, done = false;
89
- for (var i = decorators.length - 1; i >= 0; i--) {
90
- var context = {};
91
- for (var p in contextIn)
92
- context[p] = p === "access" ? {} : contextIn[p];
93
- for (var p in contextIn.access)
94
- context.access[p] = contextIn.access[p];
95
- context.addInitializer = function (f) { if (done)
96
- throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
97
- var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
98
- if (kind === "accessor") {
99
- if (result === void 0)
100
- continue;
101
- if (result === null || typeof result !== "object")
102
- throw new TypeError("Object expected");
103
- if (_ = accept(result.get))
104
- descriptor.get = _;
105
- if (_ = accept(result.set))
106
- descriptor.set = _;
107
- if (_ = accept(result.init))
108
- initializers.unshift(_);
109
- }
110
- else if (_ = accept(result)) {
111
- if (kind === "field")
112
- initializers.unshift(_);
113
- else
114
- descriptor[key] = _;
115
- }
116
- }
117
- if (target)
118
- Object.defineProperty(target, contextIn.name, descriptor);
119
- done = true;
120
- }
121
- ;
122
- function __runInitializers(thisArg, initializers, value) {
123
- var useValue = arguments.length > 2;
124
- for (var i = 0; i < initializers.length; i++) {
125
- value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
126
- }
127
- return useValue ? value : void 0;
128
- }
129
- ;
130
- function __propKey(x) {
131
- return typeof x === "symbol" ? x : "".concat(x);
132
- }
133
- ;
134
- function __setFunctionName(f, name, prefix) {
135
- if (typeof name === "symbol")
136
- name = name.description ? "[".concat(name.description, "]") : "";
137
- return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
138
- }
139
- ;
140
82
  function __metadata(metadataKey, metadataValue) {
141
83
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
142
84
  return Reflect.metadata(metadataKey, metadataValue);
@@ -168,7 +110,7 @@
168
110
  function step(op) {
169
111
  if (f)
170
112
  throw new TypeError("Generator is already executing.");
171
- while (g && (g = 0, op[0] && (_ = 0)), _)
113
+ while (_)
172
114
  try {
173
115
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
174
116
  return t;
@@ -232,11 +174,7 @@
232
174
  var __createBinding = Object.create ? (function (o, m, k, k2) {
233
175
  if (k2 === undefined)
234
176
  k2 = k;
235
- var desc = Object.getOwnPropertyDescriptor(m, k);
236
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
237
- desc = { enumerable: true, get: function () { return m[k]; } };
238
- }
239
- Object.defineProperty(o, k2, desc);
177
+ Object.defineProperty(o, k2, { enumerable: true, get: function () { return m[k]; } });
240
178
  }) : (function (o, m, k, k2) {
241
179
  if (k2 === undefined)
242
180
  k2 = k;
@@ -309,7 +247,7 @@
309
247
  ar[i] = from[i];
310
248
  }
311
249
  }
312
- return to.concat(ar || Array.prototype.slice.call(from));
250
+ return to.concat(ar || from);
313
251
  }
314
252
  function __await(v) {
315
253
  return this instanceof __await ? (this.v = v, this) : new __await(v);
@@ -336,7 +274,7 @@
336
274
  function __asyncDelegator(o) {
337
275
  var i, p;
338
276
  return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
339
- function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }
277
+ function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
340
278
  }
341
279
  function __asyncValues(o) {
342
280
  if (!Symbol.asyncIterator)
@@ -391,90 +329,6 @@
391
329
  throw new TypeError("Cannot write private member to an object whose class did not declare it");
392
330
  return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
393
331
  }
394
- function __classPrivateFieldIn(state, receiver) {
395
- if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function"))
396
- throw new TypeError("Cannot use 'in' operator on non-object");
397
- return typeof state === "function" ? receiver === state : state.has(receiver);
398
- }
399
- function __addDisposableResource(env, value, async) {
400
- if (value !== null && value !== void 0) {
401
- if (typeof value !== "object" && typeof value !== "function")
402
- throw new TypeError("Object expected.");
403
- var dispose;
404
- if (async) {
405
- if (!Symbol.asyncDispose)
406
- throw new TypeError("Symbol.asyncDispose is not defined.");
407
- dispose = value[Symbol.asyncDispose];
408
- }
409
- if (dispose === void 0) {
410
- if (!Symbol.dispose)
411
- throw new TypeError("Symbol.dispose is not defined.");
412
- dispose = value[Symbol.dispose];
413
- }
414
- if (typeof dispose !== "function")
415
- throw new TypeError("Object not disposable.");
416
- env.stack.push({ value: value, dispose: dispose, async: async });
417
- }
418
- else if (async) {
419
- env.stack.push({ async: true });
420
- }
421
- return value;
422
- }
423
- var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
424
- var e = new Error(message);
425
- return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
426
- };
427
- function __disposeResources(env) {
428
- function fail(e) {
429
- env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
430
- env.hasError = true;
431
- }
432
- function next() {
433
- while (env.stack.length) {
434
- var rec = env.stack.pop();
435
- try {
436
- var result = rec.dispose && rec.dispose.call(rec.value);
437
- if (rec.async)
438
- return Promise.resolve(result).then(next, function (e) { fail(e); return next(); });
439
- }
440
- catch (e) {
441
- fail(e);
442
- }
443
- }
444
- if (env.hasError)
445
- throw env.error;
446
- }
447
- return next();
448
- }
449
- var tslib_es6 = {
450
- __extends: __extends,
451
- __assign: __assign,
452
- __rest: __rest,
453
- __decorate: __decorate,
454
- __param: __param,
455
- __metadata: __metadata,
456
- __awaiter: __awaiter,
457
- __generator: __generator,
458
- __createBinding: __createBinding,
459
- __exportStar: __exportStar,
460
- __values: __values,
461
- __read: __read,
462
- __spread: __spread,
463
- __spreadArrays: __spreadArrays,
464
- __spreadArray: __spreadArray,
465
- __await: __await,
466
- __asyncGenerator: __asyncGenerator,
467
- __asyncDelegator: __asyncDelegator,
468
- __asyncValues: __asyncValues,
469
- __makeTemplateObject: __makeTemplateObject,
470
- __importStar: __importStar,
471
- __importDefault: __importDefault,
472
- __classPrivateFieldGet: __classPrivateFieldGet,
473
- __classPrivateFieldSet: __classPrivateFieldSet,
474
- __classPrivateFieldIn: __classPrivateFieldIn,
475
- __addDisposableResource: __addDisposableResource,
476
- __disposeResources: __disposeResources,
477
- };
478
332
 
479
333
  function tuiArrayToggle(array, item) {
480
334
  var index = array.indexOf(item);
@@ -482,12 +336,12 @@
482
336
  }
483
337
 
484
338
  function tuiIsString(value) {
485
- return typeof value === "string";
339
+ return typeof value === 'string';
486
340
  }
487
341
 
488
342
  function checkValueIsEmpty(value) {
489
343
  var nextValue = tuiIsString(value) ? value.trim() : value;
490
- return [undefined, null, NaN, ""].includes(nextValue);
344
+ return [undefined, null, NaN, ''].includes(nextValue);
491
345
  }
492
346
  function tuiCleanObject(object) {
493
347
  return JSON.parse(JSON.stringify(object, function (_key, value) { return checkValueIsEmpty(value) ? undefined : value; }));
@@ -497,7 +351,7 @@
497
351
  return tuiCreateTokenFromFactory(function () { return defaults; });
498
352
  }
499
353
  function tuiCreateTokenFromFactory(factory) {
500
- return new core.InjectionToken("", { factory: factory });
354
+ return new core.InjectionToken('', { factory: factory });
501
355
  }
502
356
 
503
357
  /** @deprecated use {@link tuiCreateToken} instead */
@@ -522,7 +376,7 @@
522
376
 
523
377
  function tuiEaseInOutQuad(t) {
524
378
  ngDevMode &&
525
- classes.tuiAssert.assert(t >= 0 && t <= 1, "Input must be between 0 and 1 inclusive but received ", t);
379
+ classes.tuiAssert.assert(t >= 0 && t <= 1, 'Input must be between 0 and 1 inclusive but received ', t);
526
380
  return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;
527
381
  }
528
382
 
@@ -552,9 +406,9 @@
552
406
 
553
407
  function tuiGetSwipeDirection(deltaX, deltaY) {
554
408
  if (Math.abs(deltaY) > Math.abs(deltaX)) {
555
- return deltaY > 0 ? "top" : "bottom";
409
+ return deltaY > 0 ? 'top' : 'bottom';
556
410
  }
557
- return deltaX > 0 ? "left" : "right";
411
+ return deltaX > 0 ? 'left' : 'right';
558
412
  }
559
413
 
560
414
  function tuiIsFalsy(value) {
@@ -562,11 +416,11 @@
562
416
  }
563
417
 
564
418
  function tuiIsNumber(value) {
565
- return typeof value === "number";
419
+ return typeof value === 'number';
566
420
  }
567
421
 
568
422
  function tuiIsObject(value) {
569
- return typeof value === "object" && !!value;
423
+ return typeof value === 'object' && !!value;
570
424
  }
571
425
 
572
426
  function tuiIsPresent(value) {
@@ -574,13 +428,13 @@
574
428
  }
575
429
 
576
430
  function tuiIsValidUrl(url) {
577
- var pattern = new RegExp("^([a-zA-Z]+:\\/\\/)?" + // protocol
578
- "((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|localhost|" + // domain name
579
- "((\\d{1,3}\\.){3}\\d{1,3}))" + // OR IP (v4) address
580
- "(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*" + // port and path
581
- "(\\?[;&a-z\\d%_.~+=-]*)?" + // query string
582
- "(\\#[-a-z\\d_]*)?$", // fragment locator
583
- "i");
431
+ var pattern = new RegExp('^([a-zA-Z]+:\\/\\/)?' + // protocol
432
+ '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|localhost|' + // domain name
433
+ '((\\d{1,3}\\.){3}\\d{1,3}))' + // OR IP (v4) address
434
+ '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*' + // port and path
435
+ '(\\?[;&a-z\\d%_.~+=-]*)?' + // query string
436
+ '(\\#[-a-z\\d_]*)?$', // fragment locator
437
+ 'i');
584
438
  return pattern.test(url);
585
439
  }
586
440