@taiga-ui/cdk 2.23.0 → 2.27.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 (490) hide show
  1. package/README.md +7 -3
  2. package/abstract/control.d.ts +1 -1
  3. package/abstract/dialog.directive.d.ts +12 -0
  4. package/abstract/index.d.ts +1 -0
  5. package/abstract/interactive.d.ts +4 -4
  6. package/abstract/taiga-ui-cdk-abstract.metadata.json +1 -1
  7. package/bundles/taiga-ui-cdk-abstract.umd.js +45 -7
  8. package/bundles/taiga-ui-cdk-abstract.umd.js.map +1 -1
  9. package/bundles/taiga-ui-cdk-abstract.umd.min.js +2 -2
  10. package/bundles/taiga-ui-cdk-abstract.umd.min.js.map +1 -1
  11. package/bundles/taiga-ui-cdk-components-dialog-host.umd.js +1 -1
  12. package/bundles/taiga-ui-cdk-components-dialog-host.umd.js.map +1 -1
  13. package/bundles/taiga-ui-cdk-components-dialog-host.umd.min.js +1 -1
  14. package/bundles/taiga-ui-cdk-components-dialog-host.umd.min.js.map +1 -1
  15. package/bundles/taiga-ui-cdk-components-portal-host.umd.js.map +1 -1
  16. package/bundles/taiga-ui-cdk-components-portal-host.umd.min.js.map +1 -1
  17. package/bundles/taiga-ui-cdk-constants.umd.js.map +1 -1
  18. package/bundles/taiga-ui-cdk-constants.umd.min.js.map +1 -1
  19. package/bundles/taiga-ui-cdk-date-time.umd.js +349 -349
  20. package/bundles/taiga-ui-cdk-date-time.umd.js.map +1 -1
  21. package/bundles/taiga-ui-cdk-date-time.umd.min.js +2 -2
  22. package/bundles/taiga-ui-cdk-date-time.umd.min.js.map +1 -1
  23. package/bundles/taiga-ui-cdk-directives-active-zone.umd.js.map +1 -1
  24. package/bundles/taiga-ui-cdk-directives-active-zone.umd.min.js.map +1 -1
  25. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js.map +1 -1
  26. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.min.js.map +1 -1
  27. package/bundles/taiga-ui-cdk-directives-autofilled.umd.js.map +1 -1
  28. package/bundles/taiga-ui-cdk-directives-autofilled.umd.min.js.map +1 -1
  29. package/bundles/taiga-ui-cdk-directives-checked.umd.js.map +1 -1
  30. package/bundles/taiga-ui-cdk-directives-checked.umd.min.js.map +1 -1
  31. package/bundles/taiga-ui-cdk-directives-copy-processor.umd.js +276 -0
  32. package/bundles/taiga-ui-cdk-directives-copy-processor.umd.js.map +1 -0
  33. package/bundles/taiga-ui-cdk-directives-copy-processor.umd.min.js +16 -0
  34. package/bundles/taiga-ui-cdk-directives-copy-processor.umd.min.js.map +1 -0
  35. package/bundles/taiga-ui-cdk-directives-drag.umd.js.map +1 -1
  36. package/bundles/taiga-ui-cdk-directives-drag.umd.min.js.map +1 -1
  37. package/bundles/taiga-ui-cdk-directives-droppable.umd.js.map +1 -1
  38. package/bundles/taiga-ui-cdk-directives-droppable.umd.min.js.map +1 -1
  39. package/bundles/taiga-ui-cdk-directives-element.umd.js.map +1 -1
  40. package/bundles/taiga-ui-cdk-directives-element.umd.min.js.map +1 -1
  41. package/bundles/taiga-ui-cdk-directives-focus-trap.umd.js.map +1 -1
  42. package/bundles/taiga-ui-cdk-directives-focus-trap.umd.min.js.map +1 -1
  43. package/bundles/taiga-ui-cdk-directives-focus-visible.umd.js.map +1 -1
  44. package/bundles/taiga-ui-cdk-directives-focus-visible.umd.min.js.map +1 -1
  45. package/bundles/taiga-ui-cdk-directives-focusable.umd.js.map +1 -1
  46. package/bundles/taiga-ui-cdk-directives-focusable.umd.min.js.map +1 -1
  47. package/bundles/taiga-ui-cdk-directives-focused.umd.js.map +1 -1
  48. package/bundles/taiga-ui-cdk-directives-focused.umd.min.js.map +1 -1
  49. package/bundles/taiga-ui-cdk-directives-for.umd.js.map +1 -1
  50. package/bundles/taiga-ui-cdk-directives-for.umd.min.js.map +1 -1
  51. package/bundles/taiga-ui-cdk-directives-high-dpi.umd.js.map +1 -1
  52. package/bundles/taiga-ui-cdk-directives-high-dpi.umd.min.js.map +1 -1
  53. package/bundles/taiga-ui-cdk-directives-hovered.umd.js.map +1 -1
  54. package/bundles/taiga-ui-cdk-directives-hovered.umd.min.js.map +1 -1
  55. package/bundles/taiga-ui-cdk-directives-input-mode.umd.js.map +1 -1
  56. package/bundles/taiga-ui-cdk-directives-input-mode.umd.min.js.map +1 -1
  57. package/bundles/taiga-ui-cdk-directives-item.umd.js +259 -0
  58. package/bundles/taiga-ui-cdk-directives-item.umd.js.map +1 -0
  59. package/bundles/taiga-ui-cdk-directives-item.umd.min.js +16 -0
  60. package/bundles/taiga-ui-cdk-directives-item.umd.min.js.map +1 -0
  61. package/bundles/taiga-ui-cdk-directives-let.umd.js.map +1 -1
  62. package/bundles/taiga-ui-cdk-directives-let.umd.min.js.map +1 -1
  63. package/bundles/taiga-ui-cdk-directives-media.umd.js +1 -1
  64. package/bundles/taiga-ui-cdk-directives-media.umd.js.map +1 -1
  65. package/bundles/taiga-ui-cdk-directives-media.umd.min.js +1 -1
  66. package/bundles/taiga-ui-cdk-directives-media.umd.min.js.map +1 -1
  67. package/bundles/taiga-ui-cdk-directives-obscured.umd.js.map +1 -1
  68. package/bundles/taiga-ui-cdk-directives-obscured.umd.min.js.map +1 -1
  69. package/bundles/taiga-ui-cdk-directives-overscroll.umd.js.map +1 -1
  70. package/bundles/taiga-ui-cdk-directives-overscroll.umd.min.js.map +1 -1
  71. package/bundles/taiga-ui-cdk-directives-pan.umd.js +5 -5
  72. package/bundles/taiga-ui-cdk-directives-pan.umd.js.map +1 -1
  73. package/bundles/taiga-ui-cdk-directives-pan.umd.min.js +2 -2
  74. package/bundles/taiga-ui-cdk-directives-pan.umd.min.js.map +1 -1
  75. package/bundles/taiga-ui-cdk-directives-pressed.umd.js.map +1 -1
  76. package/bundles/taiga-ui-cdk-directives-pressed.umd.min.js.map +1 -1
  77. package/bundles/taiga-ui-cdk-directives-prevent-default.umd.js.map +1 -1
  78. package/bundles/taiga-ui-cdk-directives-prevent-default.umd.min.js.map +1 -1
  79. package/bundles/taiga-ui-cdk-directives-repeat-times.umd.js.map +1 -1
  80. package/bundles/taiga-ui-cdk-directives-repeat-times.umd.min.js.map +1 -1
  81. package/bundles/taiga-ui-cdk-directives-resize.umd.js.map +1 -1
  82. package/bundles/taiga-ui-cdk-directives-resize.umd.min.js.map +1 -1
  83. package/bundles/taiga-ui-cdk-directives-swipe.umd.js +5 -5
  84. package/bundles/taiga-ui-cdk-directives-swipe.umd.js.map +1 -1
  85. package/bundles/taiga-ui-cdk-directives-swipe.umd.min.js +2 -2
  86. package/bundles/taiga-ui-cdk-directives-swipe.umd.min.js.map +1 -1
  87. package/bundles/taiga-ui-cdk-directives-validator.umd.js.map +1 -1
  88. package/bundles/taiga-ui-cdk-directives-validator.umd.min.js.map +1 -1
  89. package/bundles/taiga-ui-cdk-directives-zoom.umd.js +5 -5
  90. package/bundles/taiga-ui-cdk-directives-zoom.umd.js.map +1 -1
  91. package/bundles/taiga-ui-cdk-directives-zoom.umd.min.js +2 -2
  92. package/bundles/taiga-ui-cdk-directives-zoom.umd.min.js.map +1 -1
  93. package/bundles/taiga-ui-cdk-directives.umd.js +26 -18
  94. package/bundles/taiga-ui-cdk-directives.umd.js.map +1 -1
  95. package/bundles/taiga-ui-cdk-directives.umd.min.js +1 -1
  96. package/bundles/taiga-ui-cdk-enums.umd.js +11 -11
  97. package/bundles/taiga-ui-cdk-enums.umd.js.map +1 -1
  98. package/bundles/taiga-ui-cdk-enums.umd.min.js +1 -1
  99. package/bundles/taiga-ui-cdk-enums.umd.min.js.map +1 -1
  100. package/bundles/taiga-ui-cdk-observables.umd.js.map +1 -1
  101. package/bundles/taiga-ui-cdk-observables.umd.min.js.map +1 -1
  102. package/bundles/taiga-ui-cdk-pipes-filter.umd.js.map +1 -1
  103. package/bundles/taiga-ui-cdk-pipes-filter.umd.min.js.map +1 -1
  104. package/bundles/taiga-ui-cdk-pipes-mapper.umd.js.map +1 -1
  105. package/bundles/taiga-ui-cdk-pipes-mapper.umd.min.js.map +1 -1
  106. package/bundles/taiga-ui-cdk-services.umd.js +38 -38
  107. package/bundles/taiga-ui-cdk-services.umd.js.map +1 -1
  108. package/bundles/taiga-ui-cdk-services.umd.min.js +1 -1
  109. package/bundles/taiga-ui-cdk-services.umd.min.js.map +1 -1
  110. package/bundles/taiga-ui-cdk-tokens.umd.js +11 -11
  111. package/bundles/taiga-ui-cdk-tokens.umd.js.map +1 -1
  112. package/bundles/taiga-ui-cdk-tokens.umd.min.js +1 -1
  113. package/bundles/taiga-ui-cdk-tokens.umd.min.js.map +1 -1
  114. package/bundles/taiga-ui-cdk-utils-dom.umd.js +8 -10
  115. package/bundles/taiga-ui-cdk-utils-dom.umd.js.map +1 -1
  116. package/bundles/taiga-ui-cdk-utils-dom.umd.min.js.map +1 -1
  117. package/bundles/taiga-ui-cdk-utils-focus.umd.js.map +1 -1
  118. package/bundles/taiga-ui-cdk-utils-focus.umd.min.js.map +1 -1
  119. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js +14 -14
  120. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js.map +1 -1
  121. package/components/dialog-host/taiga-ui-cdk-components-dialog-host.metadata.json +1 -1
  122. package/components/portal-host/taiga-ui-cdk-components-portal-host.metadata.json +1 -1
  123. package/constants/taiga-ui-cdk-constants.metadata.json +1 -1
  124. package/date-time/day-range.d.ts +14 -14
  125. package/date-time/day.d.ts +57 -57
  126. package/date-time/index.d.ts +4 -4
  127. package/date-time/month-range.d.ts +1 -1
  128. package/date-time/month.d.ts +26 -26
  129. package/date-time/taiga-ui-cdk-date-time.metadata.json +1 -1
  130. package/date-time/time.d.ts +12 -12
  131. package/date-time/year.d.ts +27 -27
  132. package/directives/active-zone/taiga-ui-cdk-directives-active-zone.metadata.json +1 -1
  133. package/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.metadata.json +1 -1
  134. package/directives/autofilled/taiga-ui-cdk-directives-autofilled.metadata.json +1 -1
  135. package/directives/checked/taiga-ui-cdk-directives-checked.metadata.json +1 -1
  136. package/directives/copy-processor/copy-processor.directive.d.ts +7 -0
  137. package/directives/copy-processor/copy-processor.module.d.ts +2 -0
  138. package/directives/copy-processor/index.d.ts +2 -0
  139. package/directives/copy-processor/package.json +13 -0
  140. package/directives/copy-processor/taiga-ui-cdk-directives-copy-processor.d.ts +4 -0
  141. package/directives/copy-processor/taiga-ui-cdk-directives-copy-processor.metadata.json +1 -0
  142. package/directives/drag/taiga-ui-cdk-directives-drag.metadata.json +1 -1
  143. package/directives/droppable/taiga-ui-cdk-directives-droppable.metadata.json +1 -1
  144. package/directives/element/taiga-ui-cdk-directives-element.metadata.json +1 -1
  145. package/directives/focus-trap/taiga-ui-cdk-directives-focus-trap.metadata.json +1 -1
  146. package/directives/focus-visible/taiga-ui-cdk-directives-focus-visible.metadata.json +1 -1
  147. package/directives/focusable/taiga-ui-cdk-directives-focusable.metadata.json +1 -1
  148. package/directives/focused/taiga-ui-cdk-directives-focused.metadata.json +1 -1
  149. package/directives/for/for.directive.d.ts +1 -1
  150. package/directives/for/taiga-ui-cdk-directives-for.metadata.json +1 -1
  151. package/directives/high-dpi/taiga-ui-cdk-directives-high-dpi.metadata.json +1 -1
  152. package/directives/hovered/taiga-ui-cdk-directives-hovered.metadata.json +1 -1
  153. package/directives/index.d.ts +5 -4
  154. package/directives/input-mode/taiga-ui-cdk-directives-input-mode.metadata.json +1 -1
  155. package/directives/item/index.d.ts +2 -0
  156. package/directives/item/item.directive.d.ts +6 -0
  157. package/directives/item/item.module.d.ts +2 -0
  158. package/directives/item/package.json +13 -0
  159. package/directives/item/taiga-ui-cdk-directives-item.d.ts +4 -0
  160. package/directives/item/taiga-ui-cdk-directives-item.metadata.json +1 -0
  161. package/directives/let/taiga-ui-cdk-directives-let.metadata.json +1 -1
  162. package/directives/media/media.directive.d.ts +1 -1
  163. package/directives/media/taiga-ui-cdk-directives-media.metadata.json +1 -1
  164. package/directives/obscured/taiga-ui-cdk-directives-obscured.metadata.json +1 -1
  165. package/directives/overscroll/taiga-ui-cdk-directives-overscroll.metadata.json +1 -1
  166. package/directives/pan/pan.directive.d.ts +3 -3
  167. package/directives/pan/taiga-ui-cdk-directives-pan.metadata.json +1 -1
  168. package/directives/pressed/taiga-ui-cdk-directives-pressed.metadata.json +1 -1
  169. package/directives/prevent-default/taiga-ui-cdk-directives-prevent-default.metadata.json +1 -1
  170. package/directives/repeat-times/taiga-ui-cdk-directives-repeat-times.metadata.json +1 -1
  171. package/directives/resize/taiga-ui-cdk-directives-resize.metadata.json +1 -1
  172. package/directives/swipe/swipe.directive.d.ts +4 -3
  173. package/directives/swipe/taiga-ui-cdk-directives-swipe.metadata.json +1 -1
  174. package/directives/taiga-ui-cdk-directives.metadata.json +1 -1
  175. package/directives/validator/taiga-ui-cdk-directives-validator.metadata.json +1 -1
  176. package/directives/zoom/taiga-ui-cdk-directives-zoom.metadata.json +1 -1
  177. package/directives/zoom/zoom.directive.d.ts +4 -3
  178. package/enums/index.d.ts +1 -1
  179. package/enums/taiga-ui-cdk-enums.metadata.json +1 -1
  180. package/esm2015/abstract/control.js +1 -1
  181. package/esm2015/abstract/dialog.directive.js +35 -0
  182. package/esm2015/abstract/index.js +2 -1
  183. package/esm2015/abstract/interactive.js +4 -4
  184. package/esm2015/abstract/multiple-control.js +1 -1
  185. package/esm2015/abstract/nullable-control.js +1 -1
  186. package/esm2015/components/dialog-host/dialog-host.component.js +3 -3
  187. package/esm2015/components/dialog-host/dialog-host.module.js +1 -1
  188. package/esm2015/components/portal-host/portal-host.component.js +1 -1
  189. package/esm2015/components/portal-host/portal-host.module.js +1 -1
  190. package/esm2015/components/portal-host/portal.service.js +1 -1
  191. package/esm2015/constants/matcher.js +1 -1
  192. package/esm2015/date-time/date-fillers.js +1 -1
  193. package/esm2015/date-time/day-range.js +26 -26
  194. package/esm2015/date-time/day.js +120 -120
  195. package/esm2015/date-time/index.js +5 -5
  196. package/esm2015/date-time/month-range.js +6 -6
  197. package/esm2015/date-time/month.js +56 -56
  198. package/esm2015/date-time/time.js +40 -40
  199. package/esm2015/date-time/year.js +49 -49
  200. package/esm2015/directives/active-zone/active-zone.module.js +1 -1
  201. package/esm2015/directives/auto-focus/autofocus.module.js +1 -1
  202. package/esm2015/directives/autofilled/autofilled.module.js +1 -1
  203. package/esm2015/directives/checked/checked.module.js +1 -1
  204. package/esm2015/directives/copy-processor/copy-processor.directive.js +37 -0
  205. package/esm2015/directives/copy-processor/copy-processor.module.js +13 -0
  206. package/esm2015/directives/copy-processor/index.js +3 -0
  207. package/esm2015/directives/copy-processor/taiga-ui-cdk-directives-copy-processor.js +5 -0
  208. package/esm2015/directives/drag/drag.module.js +1 -1
  209. package/esm2015/directives/droppable/droppable.module.js +1 -1
  210. package/esm2015/directives/element/element.module.js +1 -1
  211. package/esm2015/directives/focus-trap/focus-trap.module.js +1 -1
  212. package/esm2015/directives/focus-visible/focus-visible.module.js +1 -1
  213. package/esm2015/directives/focusable/focusable.module.js +1 -1
  214. package/esm2015/directives/focused/focused.module.js +1 -1
  215. package/esm2015/directives/for/for.directive.js +1 -1
  216. package/esm2015/directives/for/for.module.js +1 -1
  217. package/esm2015/directives/high-dpi/high-dpi.module.js +1 -1
  218. package/esm2015/directives/hovered/hovered.module.js +1 -1
  219. package/esm2015/directives/index.js +6 -5
  220. package/esm2015/directives/input-mode/input-mode.module.js +1 -1
  221. package/esm2015/directives/item/index.js +3 -0
  222. package/esm2015/directives/item/item.directive.js +15 -0
  223. package/esm2015/directives/item/item.module.js +13 -0
  224. package/esm2015/directives/item/taiga-ui-cdk-directives-item.js +5 -0
  225. package/esm2015/directives/let/let.directive.js +1 -1
  226. package/esm2015/directives/let/let.module.js +1 -1
  227. package/esm2015/directives/media/media.directive.js +2 -2
  228. package/esm2015/directives/media/media.module.js +1 -1
  229. package/esm2015/directives/obscured/obscured.module.js +1 -1
  230. package/esm2015/directives/overscroll/overscroll.module.js +1 -1
  231. package/esm2015/directives/pan/pan.directive.js +3 -2
  232. package/esm2015/directives/pan/pan.module.js +1 -1
  233. package/esm2015/directives/pressed/pressed.module.js +1 -1
  234. package/esm2015/directives/prevent-default/prevent-default.module.js +1 -1
  235. package/esm2015/directives/repeat-times/repeat-times.module.js +1 -1
  236. package/esm2015/directives/resize/resize.module.js +1 -1
  237. package/esm2015/directives/swipe/swipe.directive.js +3 -2
  238. package/esm2015/directives/swipe/swipe.module.js +1 -1
  239. package/esm2015/directives/validator/validator.module.js +1 -1
  240. package/esm2015/directives/zoom/zoom.directive.js +3 -2
  241. package/esm2015/directives/zoom/zoom.module.js +1 -1
  242. package/esm2015/enums/index.js +2 -2
  243. package/esm2015/interfaces/base-dialog-context.js +1 -1
  244. package/esm2015/interfaces/base-dialog.js +1 -1
  245. package/esm2015/interfaces/focusable-element-accessor.js +1 -1
  246. package/esm2015/interfaces/index.js +1 -1
  247. package/esm2015/observables/drag-and-drop-from.js +1 -1
  248. package/esm2015/observables/focus-visible-observable.js +1 -1
  249. package/esm2015/observables/mouse-drag-finish-from.js +1 -1
  250. package/esm2015/observables/pressed-observable.js +1 -1
  251. package/esm2015/pipes/filter/filter.module.js +1 -1
  252. package/esm2015/pipes/mapper/mapper.module.js +1 -1
  253. package/esm2015/services/focus-visible.service.js +1 -1
  254. package/esm2015/services/index.js +2 -2
  255. package/esm2015/services/obscured.service.js +1 -1
  256. package/esm2015/services/pan.service.js +3 -3
  257. package/esm2015/services/resize.service.js +1 -1
  258. package/esm2015/services/static-request.service.js +1 -1
  259. package/esm2015/tokens/active-element.js +4 -5
  260. package/esm2015/tokens/index.js +3 -3
  261. package/esm2015/tokens/is-android.js +1 -1
  262. package/esm2015/types/index.js +1 -1
  263. package/esm2015/utils/dom/contains-or-after.js +2 -4
  264. package/esm2015/utils/dom/get-element-obscurers.js +1 -1
  265. package/esm2015/utils/dom/index.js +2 -2
  266. package/esm2015/utils/focus/get-closest-keyboard-focusable.js +1 -1
  267. package/esm2015/utils/miscellaneous/index.js +3 -3
  268. package/esm5/abstract/control.js +1 -1
  269. package/esm5/abstract/dialog.directive.js +44 -0
  270. package/esm5/abstract/index.js +2 -1
  271. package/esm5/abstract/interactive.js +4 -4
  272. package/esm5/abstract/multiple-control.js +1 -1
  273. package/esm5/abstract/nullable-control.js +1 -1
  274. package/esm5/components/dialog-host/dialog-host.component.js +3 -3
  275. package/esm5/components/dialog-host/dialog-host.module.js +1 -1
  276. package/esm5/components/portal-host/portal-host.component.js +1 -1
  277. package/esm5/components/portal-host/portal-host.module.js +1 -1
  278. package/esm5/components/portal-host/portal.service.js +1 -1
  279. package/esm5/constants/matcher.js +1 -1
  280. package/esm5/date-time/date-fillers.js +1 -1
  281. package/esm5/date-time/day-range.js +26 -26
  282. package/esm5/date-time/day.js +120 -120
  283. package/esm5/date-time/index.js +5 -5
  284. package/esm5/date-time/month-range.js +6 -6
  285. package/esm5/date-time/month.js +56 -56
  286. package/esm5/date-time/time.js +41 -41
  287. package/esm5/date-time/year.js +49 -49
  288. package/esm5/directives/active-zone/active-zone.module.js +1 -1
  289. package/esm5/directives/auto-focus/autofocus.module.js +1 -1
  290. package/esm5/directives/autofilled/autofilled.module.js +1 -1
  291. package/esm5/directives/checked/checked.module.js +1 -1
  292. package/esm5/directives/copy-processor/copy-processor.directive.js +38 -0
  293. package/esm5/directives/copy-processor/copy-processor.module.js +16 -0
  294. package/esm5/directives/copy-processor/index.js +3 -0
  295. package/esm5/directives/copy-processor/taiga-ui-cdk-directives-copy-processor.js +5 -0
  296. package/esm5/directives/drag/drag.module.js +1 -1
  297. package/esm5/directives/droppable/droppable.module.js +1 -1
  298. package/esm5/directives/element/element.module.js +1 -1
  299. package/esm5/directives/focus-trap/focus-trap.module.js +1 -1
  300. package/esm5/directives/focus-visible/focus-visible.module.js +1 -1
  301. package/esm5/directives/focusable/focusable.module.js +1 -1
  302. package/esm5/directives/focused/focused.module.js +1 -1
  303. package/esm5/directives/for/for.directive.js +1 -1
  304. package/esm5/directives/for/for.module.js +1 -1
  305. package/esm5/directives/high-dpi/high-dpi.module.js +1 -1
  306. package/esm5/directives/hovered/hovered.module.js +1 -1
  307. package/esm5/directives/index.js +6 -5
  308. package/esm5/directives/input-mode/input-mode.module.js +1 -1
  309. package/esm5/directives/item/index.js +3 -0
  310. package/esm5/directives/item/item.directive.js +18 -0
  311. package/esm5/directives/item/item.module.js +16 -0
  312. package/esm5/directives/item/taiga-ui-cdk-directives-item.js +5 -0
  313. package/esm5/directives/let/let.directive.js +1 -1
  314. package/esm5/directives/let/let.module.js +1 -1
  315. package/esm5/directives/media/media.directive.js +2 -2
  316. package/esm5/directives/media/media.module.js +1 -1
  317. package/esm5/directives/obscured/obscured.module.js +1 -1
  318. package/esm5/directives/overscroll/overscroll.module.js +1 -1
  319. package/esm5/directives/pan/pan.directive.js +3 -2
  320. package/esm5/directives/pan/pan.module.js +1 -1
  321. package/esm5/directives/pressed/pressed.module.js +1 -1
  322. package/esm5/directives/prevent-default/prevent-default.module.js +1 -1
  323. package/esm5/directives/repeat-times/repeat-times.module.js +1 -1
  324. package/esm5/directives/resize/resize.module.js +1 -1
  325. package/esm5/directives/swipe/swipe.directive.js +3 -2
  326. package/esm5/directives/swipe/swipe.module.js +1 -1
  327. package/esm5/directives/validator/validator.module.js +1 -1
  328. package/esm5/directives/zoom/zoom.directive.js +3 -2
  329. package/esm5/directives/zoom/zoom.module.js +1 -1
  330. package/esm5/enums/index.js +2 -2
  331. package/esm5/interfaces/base-dialog-context.js +1 -1
  332. package/esm5/interfaces/base-dialog.js +1 -1
  333. package/esm5/interfaces/focusable-element-accessor.js +1 -1
  334. package/esm5/interfaces/index.js +1 -1
  335. package/esm5/observables/drag-and-drop-from.js +1 -1
  336. package/esm5/observables/focus-visible-observable.js +1 -1
  337. package/esm5/observables/mouse-drag-finish-from.js +1 -1
  338. package/esm5/observables/pressed-observable.js +1 -1
  339. package/esm5/pipes/filter/filter.module.js +1 -1
  340. package/esm5/pipes/mapper/mapper.module.js +1 -1
  341. package/esm5/services/focus-visible.service.js +1 -1
  342. package/esm5/services/index.js +2 -2
  343. package/esm5/services/obscured.service.js +1 -1
  344. package/esm5/services/pan.service.js +3 -3
  345. package/esm5/services/resize.service.js +1 -1
  346. package/esm5/services/static-request.service.js +1 -1
  347. package/esm5/tokens/active-element.js +5 -5
  348. package/esm5/tokens/index.js +3 -3
  349. package/esm5/tokens/is-android.js +1 -1
  350. package/esm5/types/index.js +1 -1
  351. package/esm5/utils/dom/contains-or-after.js +2 -4
  352. package/esm5/utils/dom/get-element-obscurers.js +1 -1
  353. package/esm5/utils/dom/index.js +2 -2
  354. package/esm5/utils/focus/get-closest-keyboard-focusable.js +1 -1
  355. package/esm5/utils/miscellaneous/index.js +3 -3
  356. package/fesm2015/taiga-ui-cdk-abstract.js +36 -7
  357. package/fesm2015/taiga-ui-cdk-abstract.js.map +1 -1
  358. package/fesm2015/taiga-ui-cdk-components-dialog-host.js +1 -1
  359. package/fesm2015/taiga-ui-cdk-components-dialog-host.js.map +1 -1
  360. package/fesm2015/taiga-ui-cdk-components-portal-host.js.map +1 -1
  361. package/fesm2015/taiga-ui-cdk-constants.js.map +1 -1
  362. package/fesm2015/taiga-ui-cdk-date-time.js +343 -343
  363. package/fesm2015/taiga-ui-cdk-date-time.js.map +1 -1
  364. package/fesm2015/taiga-ui-cdk-directives-active-zone.js.map +1 -1
  365. package/fesm2015/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
  366. package/fesm2015/taiga-ui-cdk-directives-autofilled.js.map +1 -1
  367. package/fesm2015/taiga-ui-cdk-directives-checked.js.map +1 -1
  368. package/fesm2015/taiga-ui-cdk-directives-copy-processor.js +52 -0
  369. package/fesm2015/taiga-ui-cdk-directives-copy-processor.js.map +1 -0
  370. package/fesm2015/taiga-ui-cdk-directives-drag.js.map +1 -1
  371. package/fesm2015/taiga-ui-cdk-directives-droppable.js.map +1 -1
  372. package/fesm2015/taiga-ui-cdk-directives-element.js.map +1 -1
  373. package/fesm2015/taiga-ui-cdk-directives-focus-trap.js.map +1 -1
  374. package/fesm2015/taiga-ui-cdk-directives-focus-visible.js.map +1 -1
  375. package/fesm2015/taiga-ui-cdk-directives-focusable.js.map +1 -1
  376. package/fesm2015/taiga-ui-cdk-directives-focused.js.map +1 -1
  377. package/fesm2015/taiga-ui-cdk-directives-for.js.map +1 -1
  378. package/fesm2015/taiga-ui-cdk-directives-high-dpi.js.map +1 -1
  379. package/fesm2015/taiga-ui-cdk-directives-hovered.js.map +1 -1
  380. package/fesm2015/taiga-ui-cdk-directives-input-mode.js.map +1 -1
  381. package/fesm2015/taiga-ui-cdk-directives-item.js +30 -0
  382. package/fesm2015/taiga-ui-cdk-directives-item.js.map +1 -0
  383. package/fesm2015/taiga-ui-cdk-directives-let.js.map +1 -1
  384. package/fesm2015/taiga-ui-cdk-directives-media.js +1 -1
  385. package/fesm2015/taiga-ui-cdk-directives-media.js.map +1 -1
  386. package/fesm2015/taiga-ui-cdk-directives-obscured.js.map +1 -1
  387. package/fesm2015/taiga-ui-cdk-directives-overscroll.js.map +1 -1
  388. package/fesm2015/taiga-ui-cdk-directives-pan.js +2 -1
  389. package/fesm2015/taiga-ui-cdk-directives-pan.js.map +1 -1
  390. package/fesm2015/taiga-ui-cdk-directives-pressed.js.map +1 -1
  391. package/fesm2015/taiga-ui-cdk-directives-prevent-default.js.map +1 -1
  392. package/fesm2015/taiga-ui-cdk-directives-repeat-times.js.map +1 -1
  393. package/fesm2015/taiga-ui-cdk-directives-resize.js.map +1 -1
  394. package/fesm2015/taiga-ui-cdk-directives-swipe.js +2 -1
  395. package/fesm2015/taiga-ui-cdk-directives-swipe.js.map +1 -1
  396. package/fesm2015/taiga-ui-cdk-directives-validator.js.map +1 -1
  397. package/fesm2015/taiga-ui-cdk-directives-zoom.js +2 -1
  398. package/fesm2015/taiga-ui-cdk-directives-zoom.js.map +1 -1
  399. package/fesm2015/taiga-ui-cdk-directives.js +5 -4
  400. package/fesm2015/taiga-ui-cdk-directives.js.map +1 -1
  401. package/fesm2015/taiga-ui-cdk-enums.js +11 -11
  402. package/fesm2015/taiga-ui-cdk-enums.js.map +1 -1
  403. package/fesm2015/taiga-ui-cdk-observables.js.map +1 -1
  404. package/fesm2015/taiga-ui-cdk-pipes-filter.js.map +1 -1
  405. package/fesm2015/taiga-ui-cdk-pipes-mapper.js.map +1 -1
  406. package/fesm2015/taiga-ui-cdk-services.js +29 -29
  407. package/fesm2015/taiga-ui-cdk-services.js.map +1 -1
  408. package/fesm2015/taiga-ui-cdk-tokens.js +10 -11
  409. package/fesm2015/taiga-ui-cdk-tokens.js.map +1 -1
  410. package/fesm2015/taiga-ui-cdk-utils-dom.js +8 -10
  411. package/fesm2015/taiga-ui-cdk-utils-dom.js.map +1 -1
  412. package/fesm2015/taiga-ui-cdk-utils-focus.js.map +1 -1
  413. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js +13 -13
  414. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
  415. package/fesm5/taiga-ui-cdk-abstract.js +45 -7
  416. package/fesm5/taiga-ui-cdk-abstract.js.map +1 -1
  417. package/fesm5/taiga-ui-cdk-components-dialog-host.js +1 -1
  418. package/fesm5/taiga-ui-cdk-components-dialog-host.js.map +1 -1
  419. package/fesm5/taiga-ui-cdk-components-portal-host.js.map +1 -1
  420. package/fesm5/taiga-ui-cdk-constants.js.map +1 -1
  421. package/fesm5/taiga-ui-cdk-date-time.js +343 -343
  422. package/fesm5/taiga-ui-cdk-date-time.js.map +1 -1
  423. package/fesm5/taiga-ui-cdk-directives-active-zone.js.map +1 -1
  424. package/fesm5/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
  425. package/fesm5/taiga-ui-cdk-directives-autofilled.js.map +1 -1
  426. package/fesm5/taiga-ui-cdk-directives-checked.js.map +1 -1
  427. package/fesm5/taiga-ui-cdk-directives-copy-processor.js +56 -0
  428. package/fesm5/taiga-ui-cdk-directives-copy-processor.js.map +1 -0
  429. package/fesm5/taiga-ui-cdk-directives-drag.js.map +1 -1
  430. package/fesm5/taiga-ui-cdk-directives-droppable.js.map +1 -1
  431. package/fesm5/taiga-ui-cdk-directives-element.js.map +1 -1
  432. package/fesm5/taiga-ui-cdk-directives-focus-trap.js.map +1 -1
  433. package/fesm5/taiga-ui-cdk-directives-focus-visible.js.map +1 -1
  434. package/fesm5/taiga-ui-cdk-directives-focusable.js.map +1 -1
  435. package/fesm5/taiga-ui-cdk-directives-focused.js.map +1 -1
  436. package/fesm5/taiga-ui-cdk-directives-for.js.map +1 -1
  437. package/fesm5/taiga-ui-cdk-directives-high-dpi.js.map +1 -1
  438. package/fesm5/taiga-ui-cdk-directives-hovered.js.map +1 -1
  439. package/fesm5/taiga-ui-cdk-directives-input-mode.js.map +1 -1
  440. package/fesm5/taiga-ui-cdk-directives-item.js +36 -0
  441. package/fesm5/taiga-ui-cdk-directives-item.js.map +1 -0
  442. package/fesm5/taiga-ui-cdk-directives-let.js.map +1 -1
  443. package/fesm5/taiga-ui-cdk-directives-media.js +1 -1
  444. package/fesm5/taiga-ui-cdk-directives-media.js.map +1 -1
  445. package/fesm5/taiga-ui-cdk-directives-obscured.js.map +1 -1
  446. package/fesm5/taiga-ui-cdk-directives-overscroll.js.map +1 -1
  447. package/fesm5/taiga-ui-cdk-directives-pan.js +2 -1
  448. package/fesm5/taiga-ui-cdk-directives-pan.js.map +1 -1
  449. package/fesm5/taiga-ui-cdk-directives-pressed.js.map +1 -1
  450. package/fesm5/taiga-ui-cdk-directives-prevent-default.js.map +1 -1
  451. package/fesm5/taiga-ui-cdk-directives-repeat-times.js.map +1 -1
  452. package/fesm5/taiga-ui-cdk-directives-resize.js.map +1 -1
  453. package/fesm5/taiga-ui-cdk-directives-swipe.js +2 -1
  454. package/fesm5/taiga-ui-cdk-directives-swipe.js.map +1 -1
  455. package/fesm5/taiga-ui-cdk-directives-validator.js.map +1 -1
  456. package/fesm5/taiga-ui-cdk-directives-zoom.js +2 -1
  457. package/fesm5/taiga-ui-cdk-directives-zoom.js.map +1 -1
  458. package/fesm5/taiga-ui-cdk-directives.js +5 -4
  459. package/fesm5/taiga-ui-cdk-directives.js.map +1 -1
  460. package/fesm5/taiga-ui-cdk-enums.js +11 -11
  461. package/fesm5/taiga-ui-cdk-enums.js.map +1 -1
  462. package/fesm5/taiga-ui-cdk-observables.js.map +1 -1
  463. package/fesm5/taiga-ui-cdk-pipes-filter.js.map +1 -1
  464. package/fesm5/taiga-ui-cdk-pipes-mapper.js.map +1 -1
  465. package/fesm5/taiga-ui-cdk-services.js +39 -39
  466. package/fesm5/taiga-ui-cdk-services.js.map +1 -1
  467. package/fesm5/taiga-ui-cdk-tokens.js +11 -11
  468. package/fesm5/taiga-ui-cdk-tokens.js.map +1 -1
  469. package/fesm5/taiga-ui-cdk-utils-dom.js +8 -10
  470. package/fesm5/taiga-ui-cdk-utils-dom.js.map +1 -1
  471. package/fesm5/taiga-ui-cdk-utils-focus.js.map +1 -1
  472. package/fesm5/taiga-ui-cdk-utils-miscellaneous.js +14 -14
  473. package/fesm5/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
  474. package/interfaces/focusable-element-accessor.d.ts +2 -0
  475. package/interfaces/index.d.ts +1 -1
  476. package/interfaces/taiga-ui-cdk-interfaces.metadata.json +1 -1
  477. package/observables/taiga-ui-cdk-observables.metadata.json +1 -1
  478. package/package.json +3 -3
  479. package/pipes/filter/taiga-ui-cdk-pipes-filter.metadata.json +1 -1
  480. package/pipes/mapper/taiga-ui-cdk-pipes-mapper.metadata.json +1 -1
  481. package/services/index.d.ts +1 -1
  482. package/services/taiga-ui-cdk-services.metadata.json +1 -1
  483. package/tokens/index.d.ts +2 -2
  484. package/tokens/taiga-ui-cdk-tokens.metadata.json +1 -1
  485. package/types/index.d.ts +1 -1
  486. package/types/taiga-ui-cdk-types.metadata.json +1 -1
  487. package/utils/dom/index.d.ts +1 -1
  488. package/utils/dom/taiga-ui-cdk-utils-dom.metadata.json +1 -1
  489. package/utils/miscellaneous/index.d.ts +2 -2
  490. package/utils/miscellaneous/taiga-ui-cdk-utils-miscellaneous.metadata.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-pipes-mapper.js","sources":["ng://@taiga-ui/cdk/pipes/mapper/mapper.pipe.ts","ng://@taiga-ui/cdk/pipes/mapper/mapper.module.ts","ng://@taiga-ui/cdk/pipes/mapper/taiga-ui-cdk-pipes-mapper.ts"],"sourcesContent":["import {Pipe, PipeTransform} from '@angular/core';\nimport {TuiMapper} from '@taiga-ui/cdk/types';\n\n@Pipe({name: 'tuiMapper'})\nexport class TuiMapperPipe implements PipeTransform {\n /**\n * Maps object to an arbitrary result through a mapper function\n *\n * @param value an item to transform\n * @param mapper a mapping function\n * @param args arbitrary number of additional arguments\n */\n transform<T, G>(value: T, mapper: TuiMapper<T, G>, ...args: any[]): G {\n return mapper(value, ...args);\n }\n}\n","import {NgModule} from '@angular/core';\nimport {TuiMapperPipe} from './mapper.pipe';\n\n@NgModule({\n exports: [TuiMapperPipe],\n declarations: [TuiMapperPipe],\n})\nexport class TuiMapperPipeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;IAIa,aAAa,GAA1B,MAAa,aAAa;;;;;;;;IAQtB,SAAS,CAAO,KAAQ,EAAE,MAAuB,EAAE,GAAG,IAAW;QAC7D,OAAO,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;KACjC;EACJ;AAXY,aAAa;IADzB,IAAI,CAAC,EAAC,IAAI,EAAE,WAAW,EAAC,CAAC;GACb,aAAa,CAWzB;;ICRY,mBAAmB,GAAhC,MAAa,mBAAmB;EAAG;AAAtB,mBAAmB;IAJ/B,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,aAAa,CAAC;QACxB,YAAY,EAAE,CAAC,aAAa,CAAC;KAChC,CAAC;GACW,mBAAmB,CAAG;;ACPnC;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-pipes-mapper.js","sources":["ng://@taiga-ui/cdk/pipes/mapper/mapper.pipe.ts","ng://@taiga-ui/cdk/pipes/mapper/mapper.module.ts","ng://@taiga-ui/cdk/pipes/mapper/taiga-ui-cdk-pipes-mapper.ts"],"sourcesContent":["import {Pipe, PipeTransform} from '@angular/core';\nimport {TuiMapper} from '@taiga-ui/cdk/types';\n\n@Pipe({name: 'tuiMapper'})\nexport class TuiMapperPipe implements PipeTransform {\n /**\n * Maps object to an arbitrary result through a mapper function\n *\n * @param value an item to transform\n * @param mapper a mapping function\n * @param args arbitrary number of additional arguments\n */\n transform<T, G>(value: T, mapper: TuiMapper<T, G>, ...args: any[]): G {\n return mapper(value, ...args);\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiMapperPipe} from './mapper.pipe';\n\n@NgModule({\n exports: [TuiMapperPipe],\n declarations: [TuiMapperPipe],\n})\nexport class TuiMapperPipeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;IAIa,aAAa,GAA1B,MAAa,aAAa;;;;;;;;IAQtB,SAAS,CAAO,KAAQ,EAAE,MAAuB,EAAE,GAAG,IAAW;QAC7D,OAAO,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;KACjC;EACJ;AAXY,aAAa;IADzB,IAAI,CAAC,EAAC,IAAI,EAAE,WAAW,EAAC,CAAC;GACb,aAAa,CAWzB;;ICPY,mBAAmB,GAAhC,MAAa,mBAAmB;EAAG;AAAtB,mBAAmB;IAJ/B,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,aAAa,CAAC;QACxB,YAAY,EAAE,CAAC,aAAa,CAAC;KAChC,CAAC;GACW,mBAAmB,CAAG;;ACRnC;;;;;;"}
@@ -4,7 +4,7 @@ import { Subject, Observable, merge, defer, fromEvent, of, timer } from 'rxjs';
4
4
  import { DOCUMENT } from '@angular/common';
5
5
  import { TUI_DEFAULT_RENDERER, TUI_SWIPE_OPTIONS, TUI_ZOOM_OPTIONS } from '@taiga-ui/cdk/tokens';
6
6
  import { focusVisibleObservable, watch, typedFromEvent, tuiZoneOptimized, tuiZonefree, preventDefault } from '@taiga-ui/cdk/observables';
7
- import { takeUntil, switchMap, filter, take, mapTo, startWith, distinctUntilChanged, delay, throttleTime, map, catchError, debounceTime, tap, shareReplay, switchMapTo, pairwise, repeat, scan } from 'rxjs/operators';
7
+ import { takeUntil, switchMap, filter, take, mapTo, startWith, distinctUntilChanged, delay, throttleTime, map, switchMapTo, pairwise, repeat, catchError, debounceTime, tap, shareReplay, scan } from 'rxjs/operators';
8
8
  import { getActualTarget, getElementObscurers } from '@taiga-ui/cdk/utils/dom';
9
9
  import { WINDOW, ANIMATION_FRAME, PERFORMANCE } from '@ng-web-apis/common';
10
10
  import { POLLING_TIME, EMPTY_ARRAY } from '@taiga-ui/cdk/constants';
@@ -187,6 +187,34 @@ TuiObscuredService = __decorate([
187
187
  __param(5, Inject(ANIMATION_FRAME))
188
188
  ], TuiObscuredService);
189
189
 
190
+ /**
191
+ * @dynamic
192
+ */
193
+ let TuiPanService = class TuiPanService extends Observable {
194
+ constructor({ nativeElement }, documentRef) {
195
+ super(subscriber => {
196
+ merge(typedFromEvent(nativeElement, 'touchstart', { passive: true }), typedFromEvent(nativeElement, 'mousedown'))
197
+ .pipe(switchMapTo(merge(typedFromEvent(documentRef, 'touchmove', {
198
+ passive: true,
199
+ }).pipe(filter(({ touches }) => touches.length < 2), map(({ touches }) => touches[0])), typedFromEvent(documentRef, 'mousemove'))), pairwise(), map(([first, second]) => {
200
+ const deltaX = second.clientX - first.clientX;
201
+ const deltaY = second.clientY - first.clientY;
202
+ return [deltaX, deltaY];
203
+ }), takeUntil(merge(typedFromEvent(documentRef, 'touchend'), typedFromEvent(documentRef, 'mouseup'))), repeat())
204
+ .subscribe(subscriber);
205
+ });
206
+ }
207
+ };
208
+ TuiPanService.ctorParameters = () => [
209
+ { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
210
+ { type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
211
+ ];
212
+ TuiPanService = __decorate([
213
+ Injectable(),
214
+ __param(0, Inject(ElementRef)),
215
+ __param(1, Inject(DOCUMENT))
216
+ ], TuiPanService);
217
+
190
218
  // @dynamic
191
219
  let TuiResizeService = class TuiResizeService extends ResizeObserverService {
192
220
  constructor(elementRef, ngZone, destroy$, support, box, animationFrame$) {
@@ -293,34 +321,6 @@ TuiStaticRequestService = __decorate([
293
321
  })
294
322
  ], TuiStaticRequestService);
295
323
 
296
- /**
297
- * @dynamic
298
- */
299
- let TuiPanService = class TuiPanService extends Observable {
300
- constructor({ nativeElement }, documentRef) {
301
- super(subscriber => {
302
- merge(typedFromEvent(nativeElement, 'touchstart', { passive: true }), typedFromEvent(nativeElement, 'mousedown'))
303
- .pipe(switchMapTo(merge(typedFromEvent(nativeElement, 'touchmove', {
304
- passive: true,
305
- }).pipe(filter(({ touches }) => touches.length < 2), map(({ touches }) => touches[0])), typedFromEvent(nativeElement, 'mousemove'))), pairwise(), map(([first, second]) => {
306
- const deltaX = second.clientX - first.clientX;
307
- const deltaY = second.clientY - first.clientY;
308
- return [deltaX, deltaY];
309
- }), takeUntil(merge(typedFromEvent(documentRef, 'touchend'), typedFromEvent(documentRef, 'mouseup'))), repeat())
310
- .subscribe(subscriber);
311
- });
312
- }
313
- };
314
- TuiPanService.ctorParameters = () => [
315
- { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
316
- { type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
317
- ];
318
- TuiPanService = __decorate([
319
- Injectable(),
320
- __param(0, Inject(ElementRef)),
321
- __param(1, Inject(DOCUMENT))
322
- ], TuiPanService);
323
-
324
324
  /**
325
325
  * @dynamic
326
326
  */
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-services.js","sources":["ng://@taiga-ui/cdk/services/destroy.service.ts","ng://@taiga-ui/cdk/services/directive-styles.service.ts","ng://@taiga-ui/cdk/services/focus-visible.service.ts","ng://@taiga-ui/cdk/services/hovered.service.ts","ng://@taiga-ui/cdk/services/id.service.ts","ng://@taiga-ui/cdk/services/parents-scroll.service.ts","ng://@taiga-ui/cdk/services/obscured.service.ts","ng://@taiga-ui/cdk/services/resize.service.ts","ng://@taiga-ui/cdk/services/scroll.service.ts","ng://@taiga-ui/cdk/services/static-request.service.ts","ng://@taiga-ui/cdk/services/pan.service.ts","ng://@taiga-ui/cdk/services/swipe.service.ts","ng://@taiga-ui/cdk/services/zoom.service.ts","ng://@taiga-ui/cdk/services/taiga-ui-cdk-services.ts"],"sourcesContent":["import {Injectable, OnDestroy} from '@angular/core';\nimport {Subject} from 'rxjs';\n\n/**\n * Observable abstraction over ngOnDestroy to use with takeUntil\n */\n@Injectable()\nexport class TuiDestroyService extends Subject<void> implements OnDestroy {\n ngOnDestroy() {\n this.next();\n this.complete();\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable, Renderer2} from '@angular/core';\nimport {TUI_DEFAULT_RENDERER} from '@taiga-ui/cdk/tokens';\n\n/**\n * Service to use styles with directives\n * @dynamic\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiDirectiveStylesService {\n constructor(\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(TUI_DEFAULT_RENDERER) private readonly renderer: Renderer2,\n ) {}\n\n addStyle(styles: string, attribute: string) {\n if (this.documentRef.head.querySelector(`style[${attribute}]`)) {\n return;\n }\n\n const style = this.renderer.createElement('style');\n\n this.renderer.setProperty(style, 'textContent', styles);\n this.renderer.setAttribute(style, attribute, '');\n this.documentRef.head.appendChild(style);\n }\n}\n","import {ChangeDetectorRef, ElementRef, Inject, Injectable} from '@angular/core';\nimport {focusVisibleObservable, watch} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\nimport {TuiDestroyService} from './destroy.service';\n\n/**\n * Service to imitate :focus-visible\n * (https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible)\n * in browsers that do not support it\n * @dynamic\n */\n@Injectable()\nexport class TuiFocusVisibleService extends Observable<boolean> {\n private readonly focusVisible$: Observable<boolean>;\n\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n ) {\n super(subscriber => this.focusVisible$.subscribe(subscriber));\n\n this.focusVisible$ = focusVisibleObservable(nativeElement).pipe(\n watch(changeDetectorRef),\n takeUntil(destroy$),\n );\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable, NgZone} from '@angular/core';\nimport {tuiZoneOptimized, typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {getActualTarget} from '@taiga-ui/cdk/utils/dom';\nimport {merge, Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n mapTo,\n startWith,\n switchMap,\n take,\n} from 'rxjs/operators';\n\n// @dynamic\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiHoveredService {\n private readonly documentEvents$: Observable<Event>;\n\n constructor(\n @Inject(DOCUMENT) documentRef: Document,\n @Inject(NgZone) private readonly ngZone: NgZone,\n ) {\n this.documentEvents$ = merge(\n typedFromEvent(documentRef, 'mousemove'),\n typedFromEvent(documentRef, 'touchstart', {capture: true}),\n );\n }\n\n createHovered$(\n target: Element,\n options: AddEventListenerOptions = {passive: true},\n ): Observable<boolean> {\n return merge(\n typedFromEvent(target, 'mouseenter', options),\n typedFromEvent(target, 'touchstart', options),\n ).pipe(\n switchMap(() =>\n merge(\n typedFromEvent(target, 'mouseleave', options),\n this.documentEvents$.pipe(\n filter(event => !target.contains(getActualTarget(event))),\n tuiZoneOptimized(this.ngZone),\n take(1),\n ),\n ).pipe(mapTo(false), startWith(true)),\n ),\n distinctUntilChanged(),\n );\n }\n}\n","import {Injectable} from '@angular/core';\n\nconst TUI = 'tui_';\n\n/**\n * Generates unique ids\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiIdService {\n private static autoId = 0;\n\n generate(): string {\n return `${TUI}${TuiIdService.autoId++}${Date.now()}`;\n }\n}\n","import {ElementRef, Inject, Injectable} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {defer, merge, Observable} from 'rxjs';\n\n/**\n * Service that subscribes to scroll events of all parent elements\n */\n// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Injectable()\nexport class TuiParentsScrollService extends Observable<Event> {\n private readonly callback$: Observable<Event>;\n\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(WINDOW) windowRef: Window,\n ) {\n super(subscriber => this.callback$.subscribe(subscriber));\n\n this.callback$ = defer(() => {\n const eventTargets: Array<Element | Window> = [windowRef, nativeElement];\n\n while (nativeElement.parentElement) {\n nativeElement = nativeElement.parentElement;\n eventTargets.push(nativeElement);\n }\n\n return merge<Event>(\n ...eventTargets.map<Observable<Event>>(element =>\n typedFromEvent(element, 'scroll'),\n ),\n );\n });\n }\n}\n","import {ElementRef, Inject, Injectable, NgZone, Self} from '@angular/core';\nimport {ANIMATION_FRAME, WINDOW} from '@ng-web-apis/common';\nimport {POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {getElementObscurers} from '@taiga-ui/cdk/utils/dom';\nimport {fromEvent, merge, Observable} from 'rxjs';\nimport {\n delay,\n distinctUntilChanged,\n map,\n startWith,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\nimport {TuiDestroyService} from './destroy.service';\nimport {TuiParentsScrollService} from './parents-scroll.service';\n\n// @bad TODO: Consider Intersection Observer with fallback to current implementation\n/**\n * Service that monitors element visibility by subscribing to scrolls\n * and polling with set interval, returns either null or an array\n * of elements that overlap given element edges\n */\n// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Injectable()\nexport class TuiObscuredService extends Observable<null | ReadonlyArray<Element>> {\n private obscured$: Observable<null | ReadonlyArray<Element>>;\n\n constructor(\n @Inject(TuiParentsScrollService)\n @Self()\n parentsScroll$: TuiParentsScrollService,\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(WINDOW) windowRef: Window,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n super(subscriber => this.obscured$.subscribe(subscriber));\n\n this.obscured$ = merge(\n // delay is added so it will not interfere with other listeners\n merge(parentsScroll$, fromEvent(windowRef, 'resize')).pipe(delay(0)),\n animationFrame$.pipe(throttleTime(POLLING_TIME)),\n ).pipe(\n map(() => getElementObscurers(nativeElement)),\n startWith(null),\n distinctUntilChanged(),\n tuiZoneOptimized(ngZone),\n takeUntil(destroy$),\n );\n }\n}\n","import {ElementRef, Inject, Injectable, NgZone} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {\n RESIZE_OBSERVER_SUPPORT,\n RESIZE_OPTION_BOX,\n ResizeObserverService,\n} from '@ng-web-apis/resize-observer';\nimport {EMPTY_ARRAY, POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {\n catchError,\n debounceTime,\n distinctUntilChanged,\n map,\n mapTo,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\nimport {TuiDestroyService} from './destroy.service';\n\n// @dynamic\n@Injectable()\nexport class TuiResizeService extends ResizeObserverService {\n constructor(\n @Inject(ElementRef) elementRef: ElementRef<HTMLElement>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(RESIZE_OBSERVER_SUPPORT) support: boolean,\n @Inject(RESIZE_OPTION_BOX) box: ResizeObserverOptions['box'],\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n super(elementRef, ngZone, support, box);\n\n return this.pipe(\n catchError(() =>\n animationFrame$.pipe(\n throttleTime(POLLING_TIME),\n map(\n () =>\n `${elementRef.nativeElement.clientWidth} ${elementRef.nativeElement.clientHeight}`,\n ),\n distinctUntilChanged(),\n mapTo(EMPTY_ARRAY),\n ),\n ),\n takeUntil(destroy$),\n debounceTime(0),\n tuiZonefree(ngZone),\n );\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {ANIMATION_FRAME, PERFORMANCE} from '@ng-web-apis/common';\nimport {tuiAssert} from '@taiga-ui/cdk/classes';\nimport {clamp} from '@taiga-ui/cdk/utils/math';\nimport {easeInOutQuad} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {defer, Observable, of, timer} from 'rxjs';\nimport {map, switchMap, takeUntil, tap} from 'rxjs/operators';\n\nconst SCROLL_TIME = 300;\n\n// @dynamic\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiScrollService {\n constructor(\n @Inject(PERFORMANCE) private readonly performanceRef: Performance,\n @Inject(ANIMATION_FRAME) private readonly animationFrame$: Observable<number>,\n ) {}\n\n scroll$(\n element: Element,\n scrollTop: number,\n scrollLeft: number = element.scrollLeft,\n duration: number = SCROLL_TIME,\n ): Observable<[number, number]> {\n tuiAssert.assert(duration >= 0, 'Duration cannot be negative');\n tuiAssert.assert(scrollTop >= 0, 'scrollTop cannot be negative');\n tuiAssert.assert(scrollLeft >= 0, 'scrollLeft cannot be negative');\n\n const initialTop = element.scrollTop;\n const initialLeft = element.scrollLeft;\n const deltaTop = scrollTop - initialTop;\n const deltaLeft = scrollLeft - initialLeft;\n const observable = !duration\n ? of([scrollTop, scrollLeft] as [number, number])\n : defer(() => of(this.performanceRef.now())).pipe(\n switchMap(start => this.animationFrame$.pipe(map(now => now - start))),\n takeUntil(timer(duration)),\n map(elapsed => easeInOutQuad(clamp(elapsed / duration, 0, 1))),\n map(\n percent =>\n [\n initialTop + deltaTop * percent,\n initialLeft + deltaLeft * percent,\n ] as [number, number],\n ),\n );\n\n return observable.pipe(\n tap(([scrollTop, scrollLeft]) => {\n element.scrollTop = scrollTop;\n element.scrollLeft = scrollLeft;\n }),\n );\n }\n}\n","import {Injectable} from '@angular/core';\nimport {Observable, Observer} from 'rxjs';\nimport {shareReplay} from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiStaticRequestService {\n private cache = new Map<string, Observable<string>>();\n\n request(url: string): Observable<string> {\n const cache = this.cache.get(url);\n\n if (cache) {\n return cache;\n }\n\n const observable = new Observable((observer: Observer<string>) => {\n const xhr = new XMLHttpRequest();\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n const response = xhr.responseType ? xhr.response : xhr.responseText;\n\n if (xhr.status === 200) {\n observer.next(response);\n observer.complete();\n } else {\n observer.error(response);\n }\n }\n };\n xhr.open('GET', url);\n xhr.send();\n\n return () => {\n xhr.abort();\n };\n });\n const piped = observable.pipe(shareReplay(1));\n\n this.cache.set(url, piped);\n\n return piped;\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, Inject, Injectable} from '@angular/core';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise, repeat, switchMapTo, takeUntil} from 'rxjs/operators';\n\n/**\n * @dynamic\n */\n@Injectable()\nexport class TuiPanService extends Observable<readonly [number, number]> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(DOCUMENT) documentRef: Document,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}),\n typedFromEvent(nativeElement, 'mousedown'),\n )\n .pipe(\n switchMapTo(\n merge(\n typedFromEvent(nativeElement, 'touchmove', {\n passive: true,\n }).pipe(\n filter(({touches}) => touches.length < 2),\n map(({touches}) => touches[0]),\n ),\n typedFromEvent(nativeElement, 'mousemove'),\n ),\n ),\n pairwise(),\n map(([first, second]) => {\n const deltaX = second.clientX - first.clientX;\n const deltaY = second.clientY - first.clientY;\n\n return [deltaX, deltaY] as [number, number];\n }),\n takeUntil(\n merge(\n typedFromEvent(documentRef, 'touchend'),\n typedFromEvent(documentRef, 'mouseup'),\n ),\n ),\n repeat(),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, Inject, Injectable} from '@angular/core';\nimport {TuiSwipe, TuiSwipeOptions} from '@taiga-ui/cdk/interfaces';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_SWIPE_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {getSwipeDirection, isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise} from 'rxjs/operators';\n\n/**\n * @dynamic\n */\n@Injectable()\nexport class TuiSwipeService extends Observable<TuiSwipe> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(TUI_SWIPE_OPTIONS) {timeout, threshold}: TuiSwipeOptions,\n @Inject(DOCUMENT) documentRef: Document,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}),\n typedFromEvent(documentRef, 'touchend'),\n )\n .pipe(\n pairwise(),\n filter(\n ([first, second]) =>\n !!first.touches.length &&\n first.touches[0].identifier ===\n second.changedTouches[0].identifier,\n ),\n map(([start, end]) => {\n const startX = start.touches[0].clientX;\n const startY = start.touches[0].clientY;\n const endX = end.changedTouches[0].clientX;\n const endY = end.changedTouches[0].clientY;\n\n const distanceX = startX - endX;\n const distanceY = startY - endY;\n const duration = end.timeStamp - start.timeStamp;\n\n if (\n (Math.abs(distanceX) > threshold ||\n Math.abs(distanceY) > threshold) &&\n duration < timeout\n ) {\n return {\n direction: getSwipeDirection(distanceX, distanceY),\n events: [start, end] as [TouchEvent, TouchEvent],\n };\n }\n\n return null;\n }),\n filter(isPresent),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {ElementRef, Inject, Injectable} from '@angular/core';\nimport {TuiZoom, TuiZoomOptions} from '@taiga-ui/cdk/interfaces';\nimport {preventDefault, typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_ZOOM_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {distanceBetweenTouches} from '@taiga-ui/cdk/utils';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, scan, switchMap, takeUntil} from 'rxjs/operators';\n\nconst TOUCH_SENSITIVITY = 0.01;\n\n// @dynamic\n@Injectable()\nexport class TuiZoomService extends Observable<TuiZoom> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(TUI_ZOOM_OPTIONS) {wheelSensitivity}: TuiZoomOptions,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}).pipe(\n filter(({touches}) => touches.length > 1),\n switchMap(startEvent =>\n typedFromEvent(nativeElement, 'touchmove', {\n passive: true,\n }).pipe(\n takeUntil(typedFromEvent(nativeElement, 'touchend')),\n scan(\n (prev, event) => {\n const distance = distanceBetweenTouches(event);\n\n return {\n event,\n distance,\n delta:\n (distance - prev.distance) *\n TOUCH_SENSITIVITY,\n };\n },\n {\n event: startEvent,\n distance: distanceBetweenTouches(startEvent),\n delta: 0,\n },\n ),\n map(({event, delta}) => {\n event.preventDefault();\n\n const clientX =\n (event.touches[0].clientX +\n event.touches[1].clientX) /\n 2;\n const clientY =\n (event.touches[0].clientY +\n event.touches[1].clientY) /\n 2;\n\n return {clientX, clientY, delta, event};\n }),\n ),\n ),\n ),\n typedFromEvent(nativeElement, 'wheel', {passive: false}).pipe(\n preventDefault(),\n map(wheel => ({\n clientX: wheel.clientX,\n clientY: wheel.clientY,\n delta: -wheel.deltaY * wheelSensitivity,\n event: wheel,\n })),\n ),\n ).subscribe(subscriber);\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-services.js","sources":["ng://@taiga-ui/cdk/services/destroy.service.ts","ng://@taiga-ui/cdk/services/directive-styles.service.ts","ng://@taiga-ui/cdk/services/focus-visible.service.ts","ng://@taiga-ui/cdk/services/hovered.service.ts","ng://@taiga-ui/cdk/services/id.service.ts","ng://@taiga-ui/cdk/services/parents-scroll.service.ts","ng://@taiga-ui/cdk/services/obscured.service.ts","ng://@taiga-ui/cdk/services/pan.service.ts","ng://@taiga-ui/cdk/services/resize.service.ts","ng://@taiga-ui/cdk/services/scroll.service.ts","ng://@taiga-ui/cdk/services/static-request.service.ts","ng://@taiga-ui/cdk/services/swipe.service.ts","ng://@taiga-ui/cdk/services/zoom.service.ts","ng://@taiga-ui/cdk/services/taiga-ui-cdk-services.ts"],"sourcesContent":["import {Injectable, OnDestroy} from '@angular/core';\nimport {Subject} from 'rxjs';\n\n/**\n * Observable abstraction over ngOnDestroy to use with takeUntil\n */\n@Injectable()\nexport class TuiDestroyService extends Subject<void> implements OnDestroy {\n ngOnDestroy() {\n this.next();\n this.complete();\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable, Renderer2} from '@angular/core';\nimport {TUI_DEFAULT_RENDERER} from '@taiga-ui/cdk/tokens';\n\n/**\n * Service to use styles with directives\n * @dynamic\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiDirectiveStylesService {\n constructor(\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(TUI_DEFAULT_RENDERER) private readonly renderer: Renderer2,\n ) {}\n\n addStyle(styles: string, attribute: string) {\n if (this.documentRef.head.querySelector(`style[${attribute}]`)) {\n return;\n }\n\n const style = this.renderer.createElement('style');\n\n this.renderer.setProperty(style, 'textContent', styles);\n this.renderer.setAttribute(style, attribute, '');\n this.documentRef.head.appendChild(style);\n }\n}\n","import {ChangeDetectorRef, ElementRef, Inject, Injectable} from '@angular/core';\nimport {focusVisibleObservable, watch} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\n\n/**\n * Service to imitate :focus-visible\n * (https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible)\n * in browsers that do not support it\n * @dynamic\n */\n@Injectable()\nexport class TuiFocusVisibleService extends Observable<boolean> {\n private readonly focusVisible$: Observable<boolean>;\n\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n ) {\n super(subscriber => this.focusVisible$.subscribe(subscriber));\n\n this.focusVisible$ = focusVisibleObservable(nativeElement).pipe(\n watch(changeDetectorRef),\n takeUntil(destroy$),\n );\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable, NgZone} from '@angular/core';\nimport {tuiZoneOptimized, typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {getActualTarget} from '@taiga-ui/cdk/utils/dom';\nimport {merge, Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n mapTo,\n startWith,\n switchMap,\n take,\n} from 'rxjs/operators';\n\n// @dynamic\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiHoveredService {\n private readonly documentEvents$: Observable<Event>;\n\n constructor(\n @Inject(DOCUMENT) documentRef: Document,\n @Inject(NgZone) private readonly ngZone: NgZone,\n ) {\n this.documentEvents$ = merge(\n typedFromEvent(documentRef, 'mousemove'),\n typedFromEvent(documentRef, 'touchstart', {capture: true}),\n );\n }\n\n createHovered$(\n target: Element,\n options: AddEventListenerOptions = {passive: true},\n ): Observable<boolean> {\n return merge(\n typedFromEvent(target, 'mouseenter', options),\n typedFromEvent(target, 'touchstart', options),\n ).pipe(\n switchMap(() =>\n merge(\n typedFromEvent(target, 'mouseleave', options),\n this.documentEvents$.pipe(\n filter(event => !target.contains(getActualTarget(event))),\n tuiZoneOptimized(this.ngZone),\n take(1),\n ),\n ).pipe(mapTo(false), startWith(true)),\n ),\n distinctUntilChanged(),\n );\n }\n}\n","import {Injectable} from '@angular/core';\n\nconst TUI = 'tui_';\n\n/**\n * Generates unique ids\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiIdService {\n private static autoId = 0;\n\n generate(): string {\n return `${TUI}${TuiIdService.autoId++}${Date.now()}`;\n }\n}\n","import {ElementRef, Inject, Injectable} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {defer, merge, Observable} from 'rxjs';\n\n/**\n * Service that subscribes to scroll events of all parent elements\n */\n// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Injectable()\nexport class TuiParentsScrollService extends Observable<Event> {\n private readonly callback$: Observable<Event>;\n\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(WINDOW) windowRef: Window,\n ) {\n super(subscriber => this.callback$.subscribe(subscriber));\n\n this.callback$ = defer(() => {\n const eventTargets: Array<Element | Window> = [windowRef, nativeElement];\n\n while (nativeElement.parentElement) {\n nativeElement = nativeElement.parentElement;\n eventTargets.push(nativeElement);\n }\n\n return merge<Event>(\n ...eventTargets.map<Observable<Event>>(element =>\n typedFromEvent(element, 'scroll'),\n ),\n );\n });\n }\n}\n","import {ElementRef, Inject, Injectable, NgZone, Self} from '@angular/core';\nimport {ANIMATION_FRAME, WINDOW} from '@ng-web-apis/common';\nimport {POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {getElementObscurers} from '@taiga-ui/cdk/utils/dom';\nimport {fromEvent, merge, Observable} from 'rxjs';\nimport {\n delay,\n distinctUntilChanged,\n map,\n startWith,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\nimport {TuiParentsScrollService} from './parents-scroll.service';\n\n// @bad TODO: Consider Intersection Observer with fallback to current implementation\n/**\n * Service that monitors element visibility by subscribing to scrolls\n * and polling with set interval, returns either null or an array\n * of elements that overlap given element edges\n */\n// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Injectable()\nexport class TuiObscuredService extends Observable<null | ReadonlyArray<Element>> {\n private obscured$: Observable<null | ReadonlyArray<Element>>;\n\n constructor(\n @Inject(TuiParentsScrollService)\n @Self()\n parentsScroll$: TuiParentsScrollService,\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(WINDOW) windowRef: Window,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n super(subscriber => this.obscured$.subscribe(subscriber));\n\n this.obscured$ = merge(\n // delay is added so it will not interfere with other listeners\n merge(parentsScroll$, fromEvent(windowRef, 'resize')).pipe(delay(0)),\n animationFrame$.pipe(throttleTime(POLLING_TIME)),\n ).pipe(\n map(() => getElementObscurers(nativeElement)),\n startWith(null),\n distinctUntilChanged(),\n tuiZoneOptimized(ngZone),\n takeUntil(destroy$),\n );\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, Inject, Injectable} from '@angular/core';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise, repeat, switchMapTo, takeUntil} from 'rxjs/operators';\n\n/**\n * @dynamic\n */\n@Injectable()\nexport class TuiPanService extends Observable<readonly [number, number]> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(DOCUMENT) documentRef: Document,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}),\n typedFromEvent(nativeElement, 'mousedown'),\n )\n .pipe(\n switchMapTo(\n merge(\n typedFromEvent(documentRef, 'touchmove', {\n passive: true,\n }).pipe(\n filter(({touches}) => touches.length < 2),\n map(({touches}) => touches[0]),\n ),\n typedFromEvent(documentRef, 'mousemove'),\n ),\n ),\n pairwise(),\n map(([first, second]) => {\n const deltaX = second.clientX - first.clientX;\n const deltaY = second.clientY - first.clientY;\n\n return [deltaX, deltaY] as [number, number];\n }),\n takeUntil(\n merge(\n typedFromEvent(documentRef, 'touchend'),\n typedFromEvent(documentRef, 'mouseup'),\n ),\n ),\n repeat(),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {ElementRef, Inject, Injectable, NgZone} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {\n RESIZE_OBSERVER_SUPPORT,\n RESIZE_OPTION_BOX,\n ResizeObserverService,\n} from '@ng-web-apis/resize-observer';\nimport {EMPTY_ARRAY, POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {\n catchError,\n debounceTime,\n distinctUntilChanged,\n map,\n mapTo,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\n\n// @dynamic\n@Injectable()\nexport class TuiResizeService extends ResizeObserverService {\n constructor(\n @Inject(ElementRef) elementRef: ElementRef<HTMLElement>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(RESIZE_OBSERVER_SUPPORT) support: boolean,\n @Inject(RESIZE_OPTION_BOX) box: ResizeObserverOptions['box'],\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n super(elementRef, ngZone, support, box);\n\n return this.pipe(\n catchError(() =>\n animationFrame$.pipe(\n throttleTime(POLLING_TIME),\n map(\n () =>\n `${elementRef.nativeElement.clientWidth} ${elementRef.nativeElement.clientHeight}`,\n ),\n distinctUntilChanged(),\n mapTo(EMPTY_ARRAY),\n ),\n ),\n takeUntil(destroy$),\n debounceTime(0),\n tuiZonefree(ngZone),\n );\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {ANIMATION_FRAME, PERFORMANCE} from '@ng-web-apis/common';\nimport {tuiAssert} from '@taiga-ui/cdk/classes';\nimport {clamp} from '@taiga-ui/cdk/utils/math';\nimport {easeInOutQuad} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {defer, Observable, of, timer} from 'rxjs';\nimport {map, switchMap, takeUntil, tap} from 'rxjs/operators';\n\nconst SCROLL_TIME = 300;\n\n// @dynamic\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiScrollService {\n constructor(\n @Inject(PERFORMANCE) private readonly performanceRef: Performance,\n @Inject(ANIMATION_FRAME) private readonly animationFrame$: Observable<number>,\n ) {}\n\n scroll$(\n element: Element,\n scrollTop: number,\n scrollLeft: number = element.scrollLeft,\n duration: number = SCROLL_TIME,\n ): Observable<[number, number]> {\n tuiAssert.assert(duration >= 0, 'Duration cannot be negative');\n tuiAssert.assert(scrollTop >= 0, 'scrollTop cannot be negative');\n tuiAssert.assert(scrollLeft >= 0, 'scrollLeft cannot be negative');\n\n const initialTop = element.scrollTop;\n const initialLeft = element.scrollLeft;\n const deltaTop = scrollTop - initialTop;\n const deltaLeft = scrollLeft - initialLeft;\n const observable = !duration\n ? of([scrollTop, scrollLeft] as [number, number])\n : defer(() => of(this.performanceRef.now())).pipe(\n switchMap(start => this.animationFrame$.pipe(map(now => now - start))),\n takeUntil(timer(duration)),\n map(elapsed => easeInOutQuad(clamp(elapsed / duration, 0, 1))),\n map(\n percent =>\n [\n initialTop + deltaTop * percent,\n initialLeft + deltaLeft * percent,\n ] as [number, number],\n ),\n );\n\n return observable.pipe(\n tap(([scrollTop, scrollLeft]) => {\n element.scrollTop = scrollTop;\n element.scrollLeft = scrollLeft;\n }),\n );\n }\n}\n","import {Injectable} from '@angular/core';\nimport {Observable, Observer} from 'rxjs';\nimport {shareReplay} from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiStaticRequestService {\n private cache = new Map<string, Observable<string>>();\n\n request(url: string): Observable<string> {\n const cache = this.cache.get(url);\n\n if (cache) {\n return cache;\n }\n\n const observable = new Observable((observer: Observer<string>) => {\n const xhr = new XMLHttpRequest();\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n const response = xhr.responseType ? xhr.response : xhr.responseText;\n\n if (xhr.status === 200) {\n observer.next(response);\n observer.complete();\n } else {\n observer.error(response);\n }\n }\n };\n\n xhr.open('GET', url);\n xhr.send();\n\n return () => {\n xhr.abort();\n };\n });\n const piped = observable.pipe(shareReplay(1));\n\n this.cache.set(url, piped);\n\n return piped;\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, Inject, Injectable} from '@angular/core';\nimport {TuiSwipe, TuiSwipeOptions} from '@taiga-ui/cdk/interfaces';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_SWIPE_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {getSwipeDirection, isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise} from 'rxjs/operators';\n\n/**\n * @dynamic\n */\n@Injectable()\nexport class TuiSwipeService extends Observable<TuiSwipe> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(TUI_SWIPE_OPTIONS) {timeout, threshold}: TuiSwipeOptions,\n @Inject(DOCUMENT) documentRef: Document,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}),\n typedFromEvent(documentRef, 'touchend'),\n )\n .pipe(\n pairwise(),\n filter(\n ([first, second]) =>\n !!first.touches.length &&\n first.touches[0].identifier ===\n second.changedTouches[0].identifier,\n ),\n map(([start, end]) => {\n const startX = start.touches[0].clientX;\n const startY = start.touches[0].clientY;\n const endX = end.changedTouches[0].clientX;\n const endY = end.changedTouches[0].clientY;\n\n const distanceX = startX - endX;\n const distanceY = startY - endY;\n const duration = end.timeStamp - start.timeStamp;\n\n if (\n (Math.abs(distanceX) > threshold ||\n Math.abs(distanceY) > threshold) &&\n duration < timeout\n ) {\n return {\n direction: getSwipeDirection(distanceX, distanceY),\n events: [start, end] as [TouchEvent, TouchEvent],\n };\n }\n\n return null;\n }),\n filter(isPresent),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {ElementRef, Inject, Injectable} from '@angular/core';\nimport {TuiZoom, TuiZoomOptions} from '@taiga-ui/cdk/interfaces';\nimport {preventDefault, typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_ZOOM_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {distanceBetweenTouches} from '@taiga-ui/cdk/utils';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, scan, switchMap, takeUntil} from 'rxjs/operators';\n\nconst TOUCH_SENSITIVITY = 0.01;\n\n// @dynamic\n@Injectable()\nexport class TuiZoomService extends Observable<TuiZoom> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(TUI_ZOOM_OPTIONS) {wheelSensitivity}: TuiZoomOptions,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}).pipe(\n filter(({touches}) => touches.length > 1),\n switchMap(startEvent =>\n typedFromEvent(nativeElement, 'touchmove', {\n passive: true,\n }).pipe(\n takeUntil(typedFromEvent(nativeElement, 'touchend')),\n scan(\n (prev, event) => {\n const distance = distanceBetweenTouches(event);\n\n return {\n event,\n distance,\n delta:\n (distance - prev.distance) *\n TOUCH_SENSITIVITY,\n };\n },\n {\n event: startEvent,\n distance: distanceBetweenTouches(startEvent),\n delta: 0,\n },\n ),\n map(({event, delta}) => {\n event.preventDefault();\n\n const clientX =\n (event.touches[0].clientX +\n event.touches[1].clientX) /\n 2;\n const clientY =\n (event.touches[0].clientY +\n event.touches[1].clientY) /\n 2;\n\n return {clientX, clientY, delta, event};\n }),\n ),\n ),\n ),\n typedFromEvent(nativeElement, 'wheel', {passive: false}).pipe(\n preventDefault(),\n map(wheel => ({\n clientX: wheel.clientX,\n clientY: wheel.clientY,\n delta: -wheel.deltaY * wheelSensitivity,\n event: wheel,\n })),\n ),\n ).subscribe(subscriber);\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -45,18 +45,17 @@ const TUI_ACTIVE_ELEMENT = new InjectionToken('Active element on the document fo
45
45
  },
46
46
  });
47
47
  // Checks if focusout event should be considered leaving active zone
48
- function isValidFocusout(target, removedElement) {
49
- var _a;
48
+ function isValidFocusout(target, removedElement = null) {
50
49
  return (
51
50
  // Not due to switching tabs/going to DevTools
52
- ((_a = target.ownerDocument) === null || _a === void 0 ? void 0 : _a.activeElement) !== target &&
51
+ getDocumentOrShadowRoot(target).activeElement !== target &&
53
52
  // Not due to button/input becoming disabled
54
53
  !target.disabled &&
55
54
  // Not due to element being removed from DOM
56
55
  (!removedElement || !removedElement.contains(target)));
57
56
  }
58
57
  function shadowRootActiveElement(root) {
59
- return merge(typedFromEvent(root, 'focusin').pipe(map(({ target }) => target)), typedFromEvent(root, 'focusout').pipe(filter(({ target }) => isValidFocusout(target, null)), map(({ relatedTarget }) => relatedTarget)));
58
+ return merge(typedFromEvent(root, 'focusin').pipe(map(({ target }) => target)), typedFromEvent(root, 'focusout').pipe(filter(({ target, relatedTarget }) => !!relatedTarget && isValidFocusout(target)), map(({ relatedTarget }) => relatedTarget)));
60
59
  }
61
60
 
62
61
  // https://github.com/angular/angular/issues/17824#issuecomment-353239017
@@ -86,9 +85,6 @@ const TUI_IS_ANDROID = new InjectionToken('Mobile browser that is not iOS (techn
86
85
  factory: () => inject(TUI_IS_MOBILE) && !inject(TUI_IS_IOS),
87
86
  });
88
87
 
89
- /* @deprecated export token from @taiga-ui/core package **/
90
- const TUI_SANITIZER = new InjectionToken('A custom Sanitizer to sanitize source before inlining');
91
-
92
88
  /**
93
89
  * {@link https://docs.cypress.io/faq/questions/using-cypress-faq#Is-there-any-way-to-detect-if-my-app-is-running-under-Cypress Cypress docs}
94
90
  */
@@ -96,6 +92,13 @@ const TUI_IS_CYPRESS = new InjectionToken('Detect if app is running under Cypres
96
92
  factory: () => !!inject(WINDOW).Cypress,
97
93
  });
98
94
 
95
+ /* @deprecated export token from @taiga-ui/core package **/
96
+ const TUI_SANITIZER = new InjectionToken('A custom Sanitizer to sanitize source before inlining');
97
+
98
+ const TUI_SWIPE_OPTIONS = new InjectionToken('Swipe options', {
99
+ factory: () => ({ timeout: 500, threshold: 30 }),
100
+ });
101
+
99
102
  /**
100
103
  * @description:
101
104
  * The isTrusted read-only property of the Event interface is a boolean value that is true
@@ -113,10 +116,6 @@ const TUI_WINDOW_HEIGHT = new InjectionToken('Window height accounting for disap
113
116
  },
114
117
  });
115
118
 
116
- const TUI_SWIPE_OPTIONS = new InjectionToken('Swipe options', {
117
- factory: () => ({ timeout: 500, threshold: 30 }),
118
- });
119
-
120
119
  const TUI_ZOOM_OPTIONS = new InjectionToken('Zoom options', {
121
120
  factory: () => ({
122
121
  wheelSensitivity: 0.01,
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-tokens.js","sources":["ng://@taiga-ui/cdk/tokens/removed-element.ts","ng://@taiga-ui/cdk/tokens/active-element.ts","ng://@taiga-ui/cdk/tokens/default-renderer.ts","ng://@taiga-ui/cdk/tokens/dialogs.ts","ng://@taiga-ui/cdk/tokens/focusable-item-accessor.ts","ng://@taiga-ui/cdk/tokens/is-ios.ts","ng://@taiga-ui/cdk/tokens/is-mobile.ts","ng://@taiga-ui/cdk/tokens/is-android.ts","ng://@taiga-ui/cdk/tokens/sanitizer.ts","ng://@taiga-ui/cdk/tokens/is-cypress.ts","ng://@taiga-ui/cdk/tokens/take-only-trusted-events.ts","ng://@taiga-ui/cdk/tokens/window-height.ts","ng://@taiga-ui/cdk/tokens/swipe-options.ts","ng://@taiga-ui/cdk/tokens/zoom-options.ts","ng://@taiga-ui/cdk/tokens/taiga-ui-cdk-tokens.ts"],"sourcesContent":["import {ɵAnimationEngine} from '@angular/animations/browser';\nimport {inject, InjectFlags, InjectionToken} from '@angular/core';\nimport {BehaviorSubject, Observable, timer} from 'rxjs';\nimport {mapTo, share, startWith, switchMap} from 'rxjs/operators';\n\nexport const TUI_REMOVED_ELEMENT = new InjectionToken<Observable<Element | null>>(\n 'Element currently being removed by AnimationEngine',\n {\n factory: () => {\n const stub = {onRemovalComplete: () => {}};\n const element$ = new BehaviorSubject<Element | null>(null);\n const engine = inject(ɵAnimationEngine, InjectFlags.Optional) ?? stub;\n const {onRemovalComplete = stub.onRemovalComplete} = engine;\n\n engine.onRemovalComplete = (element, context) => {\n element$.next(element);\n onRemovalComplete(element, context);\n };\n\n return element$.pipe(\n switchMap(element => timer(0).pipe(mapTo(null), startWith(element))),\n share(),\n );\n },\n },\n);\n","import {DOCUMENT} from '@angular/common';\nimport {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {getActualTarget, getDocumentOrShadowRoot} from '@taiga-ui/cdk/utils';\nimport {merge, Observable, of, timer} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n map,\n mapTo,\n repeatWhen,\n share,\n startWith,\n switchMap,\n take,\n takeUntil,\n withLatestFrom,\n} from 'rxjs/operators';\nimport {TUI_REMOVED_ELEMENT} from './removed-element';\n\nexport const TUI_ACTIVE_ELEMENT = new InjectionToken<Observable<EventTarget | null>>(\n 'Active element on the document for ActiveZone',\n {\n factory: () => {\n const removedElement$ = inject(TUI_REMOVED_ELEMENT);\n const windowRef = inject(WINDOW);\n const documentRef = inject(DOCUMENT);\n const focusout$ = typedFromEvent(windowRef, 'focusout');\n const focusin$ = typedFromEvent(windowRef, 'focusin');\n const blur$ = typedFromEvent(windowRef, 'blur');\n const mousedown$ = typedFromEvent(windowRef, 'mousedown');\n const mouseup$ = typedFromEvent(windowRef, 'mouseup');\n\n return merge(\n focusout$.pipe(\n takeUntil(mousedown$),\n repeatWhen(() => mouseup$),\n withLatestFrom(removedElement$),\n filter(([event, removedElement]) =>\n isValidFocusout(getActualTarget(event), removedElement),\n ),\n map(([{relatedTarget}]) => relatedTarget),\n ),\n blur$.pipe(\n map(() => documentRef.activeElement),\n filter(element => !!element && element.matches('iframe')),\n ),\n focusin$.pipe(\n switchMap(event => {\n const target = getActualTarget(event);\n const root = getDocumentOrShadowRoot(target) as Document;\n\n return root === documentRef\n ? of(target)\n : shadowRootActiveElement(root).pipe(startWith(target));\n }),\n ),\n mousedown$.pipe(\n switchMap(event =>\n !documentRef.activeElement ||\n documentRef.activeElement === documentRef.body\n ? of(getActualTarget(event))\n : focusout$.pipe(\n take(1),\n takeUntil(timer(0)),\n mapTo(getActualTarget(event)),\n ),\n ),\n ),\n ).pipe(distinctUntilChanged(), share());\n },\n },\n);\n\n// Checks if focusout event should be considered leaving active zone\nfunction isValidFocusout(target: any, removedElement: Element | null): boolean {\n return (\n // Not due to switching tabs/going to DevTools\n target.ownerDocument?.activeElement !== target &&\n // Not due to button/input becoming disabled\n !target.disabled &&\n // Not due to element being removed from DOM\n (!removedElement || !removedElement.contains(target))\n );\n}\n\nfunction shadowRootActiveElement(root: Document): Observable<EventTarget | null> {\n return merge(\n typedFromEvent(root, 'focusin').pipe(map(({target}) => target)),\n typedFromEvent(root, 'focusout').pipe(\n filter(({target}) => isValidFocusout(target, null)),\n map(({relatedTarget}) => relatedTarget),\n ),\n );\n}\n","import {inject, InjectionToken, Renderer2, RendererFactory2} from '@angular/core';\n\n// https://github.com/angular/angular/issues/17824#issuecomment-353239017\nexport const TUI_DEFAULT_RENDERER = new InjectionToken<Renderer2>(\n 'A Renderer2 for global services',\n {\n // @ts-ignore\n factory: () => inject(RendererFactory2).createRenderer(null, null),\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiAriaDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {Observable} from 'rxjs';\n\nexport const TUI_DIALOGS = new InjectionToken<\n ReadonlyArray<Observable<ReadonlyArray<TuiAriaDialogContext>>>\n>('A stream of dialogs');\n","import {InjectionToken} from '@angular/core';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\n\nexport const TUI_FOCUSABLE_ITEM_ACCESSOR =\n new InjectionToken<TuiFocusableElementAccessor>('A component that can be focused');\n","import {inject, InjectionToken} from '@angular/core';\nimport {USER_AGENT} from '@ng-web-apis/common';\n\nconst IOS_REG_EXP = /ipad|iphone|ipod/;\n\nexport const TUI_IS_IOS = new InjectionToken<boolean>('iOS browser detection', {\n factory: () => IOS_REG_EXP.test(inject(USER_AGENT).toLowerCase()),\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {USER_AGENT} from '@ng-web-apis/common';\n\n// https://stackoverflow.com/a/11381730/2706426 http://detectmobilebrowsers.com/\nconst firstRegex =\n /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/;\nconst secondRegex =\n /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/;\n\nexport const TUI_IS_MOBILE = new InjectionToken<boolean>('Mobile browser detection', {\n factory: () =>\n firstRegex.test(inject(USER_AGENT).toLowerCase()) ||\n secondRegex.test(inject(USER_AGENT).substr(0, 4).toLowerCase()),\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {TUI_IS_IOS} from './is-ios';\nimport {TUI_IS_MOBILE} from './is-mobile';\n\nexport const TUI_IS_ANDROID = new InjectionToken<boolean>(\n 'Mobile browser that is not iOS (technically includes Windows Phone, Blackberry etc.)',\n {\n factory: () => inject(TUI_IS_MOBILE) && !inject(TUI_IS_IOS),\n },\n);\n","import {InjectionToken, Sanitizer} from '@angular/core';\n\n/* @deprecated export token from @taiga-ui/core package **/\nexport const TUI_SANITIZER = new InjectionToken<Sanitizer>(\n 'A custom Sanitizer to sanitize source before inlining',\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\nexport interface WindowWithCypress extends Window {\n Cypress?: unknown;\n}\n\n/**\n * {@link https://docs.cypress.io/faq/questions/using-cypress-faq#Is-there-any-way-to-detect-if-my-app-is-running-under-Cypress Cypress docs}\n */\nexport const TUI_IS_CYPRESS = new InjectionToken<boolean>(\n 'Detect if app is running under Cypress',\n {\n factory: () => !!inject<WindowWithCypress>(WINDOW).Cypress,\n },\n);\n","import {InjectionToken} from '@angular/core';\n\n/**\n * @description:\n * The isTrusted read-only property of the Event interface is a boolean value that is true\n * when the event was generated by a user action, and false when the event was created or\n * modified by a script or dispatched via EventTarget.dispatchEvent().\n */\nexport const TUI_TAKE_ONLY_TRUSTED_EVENTS: InjectionToken<boolean> =\n new InjectionToken<boolean>(\n 'This token need for override behavior the `pressedObservable` function',\n {\n factory: () => true,\n },\n );\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {map, shareReplay, startWith} from 'rxjs/operators';\n\nexport const TUI_WINDOW_HEIGHT = new InjectionToken<Observable<number>>(\n 'Window height accounting for disappearing address bar',\n {\n factory: () => {\n const windowRef = inject(WINDOW);\n\n return typedFromEvent(windowRef, 'resize').pipe(\n startWith(null),\n map(() => windowRef.innerHeight),\n shareReplay({refCount: true, bufferSize: 1}),\n );\n },\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiSwipeOptions} from '@taiga-ui/cdk/interfaces';\n\nexport const TUI_SWIPE_OPTIONS = new InjectionToken<TuiSwipeOptions>('Swipe options', {\n factory: () => ({timeout: 500, threshold: 30}),\n});\n","import {InjectionToken} from '@angular/core';\nimport {TuiZoomOptions} from '@taiga-ui/cdk/interfaces';\n\nexport const TUI_ZOOM_OPTIONS = new InjectionToken<TuiZoomOptions>('Zoom options', {\n factory: () => ({\n wheelSensitivity: 0.01,\n }),\n});\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-tokens.js","sources":["ng://@taiga-ui/cdk/tokens/removed-element.ts","ng://@taiga-ui/cdk/tokens/active-element.ts","ng://@taiga-ui/cdk/tokens/default-renderer.ts","ng://@taiga-ui/cdk/tokens/dialogs.ts","ng://@taiga-ui/cdk/tokens/focusable-item-accessor.ts","ng://@taiga-ui/cdk/tokens/is-ios.ts","ng://@taiga-ui/cdk/tokens/is-mobile.ts","ng://@taiga-ui/cdk/tokens/is-android.ts","ng://@taiga-ui/cdk/tokens/is-cypress.ts","ng://@taiga-ui/cdk/tokens/sanitizer.ts","ng://@taiga-ui/cdk/tokens/swipe-options.ts","ng://@taiga-ui/cdk/tokens/take-only-trusted-events.ts","ng://@taiga-ui/cdk/tokens/window-height.ts","ng://@taiga-ui/cdk/tokens/zoom-options.ts","ng://@taiga-ui/cdk/tokens/taiga-ui-cdk-tokens.ts"],"sourcesContent":["import {ɵAnimationEngine} from '@angular/animations/browser';\nimport {inject, InjectFlags, InjectionToken} from '@angular/core';\nimport {BehaviorSubject, Observable, timer} from 'rxjs';\nimport {mapTo, share, startWith, switchMap} from 'rxjs/operators';\n\nexport const TUI_REMOVED_ELEMENT = new InjectionToken<Observable<Element | null>>(\n 'Element currently being removed by AnimationEngine',\n {\n factory: () => {\n const stub = {onRemovalComplete: () => {}};\n const element$ = new BehaviorSubject<Element | null>(null);\n const engine = inject(ɵAnimationEngine, InjectFlags.Optional) ?? stub;\n const {onRemovalComplete = stub.onRemovalComplete} = engine;\n\n engine.onRemovalComplete = (element, context) => {\n element$.next(element);\n onRemovalComplete(element, context);\n };\n\n return element$.pipe(\n switchMap(element => timer(0).pipe(mapTo(null), startWith(element))),\n share(),\n );\n },\n },\n);\n","import {DOCUMENT} from '@angular/common';\nimport {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {getActualTarget, getDocumentOrShadowRoot} from '@taiga-ui/cdk/utils';\nimport {merge, Observable, of, timer} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n map,\n mapTo,\n repeatWhen,\n share,\n startWith,\n switchMap,\n take,\n takeUntil,\n withLatestFrom,\n} from 'rxjs/operators';\n\nimport {TUI_REMOVED_ELEMENT} from './removed-element';\n\nexport const TUI_ACTIVE_ELEMENT = new InjectionToken<Observable<EventTarget | null>>(\n 'Active element on the document for ActiveZone',\n {\n factory: () => {\n const removedElement$ = inject(TUI_REMOVED_ELEMENT);\n const windowRef = inject(WINDOW);\n const documentRef = inject(DOCUMENT);\n const focusout$ = typedFromEvent(windowRef, 'focusout');\n const focusin$ = typedFromEvent(windowRef, 'focusin');\n const blur$ = typedFromEvent(windowRef, 'blur');\n const mousedown$ = typedFromEvent(windowRef, 'mousedown');\n const mouseup$ = typedFromEvent(windowRef, 'mouseup');\n\n return merge(\n focusout$.pipe(\n takeUntil(mousedown$),\n repeatWhen(() => mouseup$),\n withLatestFrom(removedElement$),\n filter(([event, removedElement]) =>\n isValidFocusout(getActualTarget(event), removedElement),\n ),\n map(([{relatedTarget}]) => relatedTarget),\n ),\n blur$.pipe(\n map(() => documentRef.activeElement),\n filter(element => !!element && element.matches('iframe')),\n ),\n focusin$.pipe(\n switchMap(event => {\n const target = getActualTarget(event);\n const root = getDocumentOrShadowRoot(target) as Document;\n\n return root === documentRef\n ? of(target)\n : shadowRootActiveElement(root).pipe(startWith(target));\n }),\n ),\n mousedown$.pipe(\n switchMap(event =>\n !documentRef.activeElement ||\n documentRef.activeElement === documentRef.body\n ? of(getActualTarget(event))\n : focusout$.pipe(\n take(1),\n takeUntil(timer(0)),\n mapTo(getActualTarget(event)),\n ),\n ),\n ),\n ).pipe(distinctUntilChanged(), share());\n },\n },\n);\n\n// Checks if focusout event should be considered leaving active zone\nfunction isValidFocusout(target: any, removedElement: Element | null = null): boolean {\n return (\n // Not due to switching tabs/going to DevTools\n getDocumentOrShadowRoot(target).activeElement !== target &&\n // Not due to button/input becoming disabled\n !target.disabled &&\n // Not due to element being removed from DOM\n (!removedElement || !removedElement.contains(target))\n );\n}\n\nfunction shadowRootActiveElement(root: Document): Observable<EventTarget | null> {\n return merge(\n typedFromEvent(root, 'focusin').pipe(map(({target}) => target)),\n typedFromEvent(root, 'focusout').pipe(\n filter(\n ({target, relatedTarget}) => !!relatedTarget && isValidFocusout(target),\n ),\n map(({relatedTarget}) => relatedTarget),\n ),\n );\n}\n","import {inject, InjectionToken, Renderer2, RendererFactory2} from '@angular/core';\n\n// https://github.com/angular/angular/issues/17824#issuecomment-353239017\nexport const TUI_DEFAULT_RENDERER = new InjectionToken<Renderer2>(\n 'A Renderer2 for global services',\n {\n // @ts-ignore\n factory: () => inject(RendererFactory2).createRenderer(null, null),\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiAriaDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {Observable} from 'rxjs';\n\nexport const TUI_DIALOGS = new InjectionToken<\n ReadonlyArray<Observable<ReadonlyArray<TuiAriaDialogContext>>>\n>('A stream of dialogs');\n","import {InjectionToken} from '@angular/core';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\n\nexport const TUI_FOCUSABLE_ITEM_ACCESSOR =\n new InjectionToken<TuiFocusableElementAccessor>('A component that can be focused');\n","import {inject, InjectionToken} from '@angular/core';\nimport {USER_AGENT} from '@ng-web-apis/common';\n\nconst IOS_REG_EXP = /ipad|iphone|ipod/;\n\nexport const TUI_IS_IOS = new InjectionToken<boolean>('iOS browser detection', {\n factory: () => IOS_REG_EXP.test(inject(USER_AGENT).toLowerCase()),\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {USER_AGENT} from '@ng-web-apis/common';\n\n// https://stackoverflow.com/a/11381730/2706426 http://detectmobilebrowsers.com/\nconst firstRegex =\n /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/;\nconst secondRegex =\n /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/;\n\nexport const TUI_IS_MOBILE = new InjectionToken<boolean>('Mobile browser detection', {\n factory: () =>\n firstRegex.test(inject(USER_AGENT).toLowerCase()) ||\n secondRegex.test(inject(USER_AGENT).substr(0, 4).toLowerCase()),\n});\n","import {inject, InjectionToken} from '@angular/core';\n\nimport {TUI_IS_IOS} from './is-ios';\nimport {TUI_IS_MOBILE} from './is-mobile';\n\nexport const TUI_IS_ANDROID = new InjectionToken<boolean>(\n 'Mobile browser that is not iOS (technically includes Windows Phone, Blackberry etc.)',\n {\n factory: () => inject(TUI_IS_MOBILE) && !inject(TUI_IS_IOS),\n },\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\nexport interface WindowWithCypress extends Window {\n Cypress?: unknown;\n}\n\n/**\n * {@link https://docs.cypress.io/faq/questions/using-cypress-faq#Is-there-any-way-to-detect-if-my-app-is-running-under-Cypress Cypress docs}\n */\nexport const TUI_IS_CYPRESS = new InjectionToken<boolean>(\n 'Detect if app is running under Cypress',\n {\n factory: () => !!inject<WindowWithCypress>(WINDOW).Cypress,\n },\n);\n","import {InjectionToken, Sanitizer} from '@angular/core';\n\n/* @deprecated export token from @taiga-ui/core package **/\nexport const TUI_SANITIZER = new InjectionToken<Sanitizer>(\n 'A custom Sanitizer to sanitize source before inlining',\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiSwipeOptions} from '@taiga-ui/cdk/interfaces';\n\nexport const TUI_SWIPE_OPTIONS = new InjectionToken<TuiSwipeOptions>('Swipe options', {\n factory: () => ({timeout: 500, threshold: 30}),\n});\n","import {InjectionToken} from '@angular/core';\n\n/**\n * @description:\n * The isTrusted read-only property of the Event interface is a boolean value that is true\n * when the event was generated by a user action, and false when the event was created or\n * modified by a script or dispatched via EventTarget.dispatchEvent().\n */\nexport const TUI_TAKE_ONLY_TRUSTED_EVENTS: InjectionToken<boolean> =\n new InjectionToken<boolean>(\n 'This token need for override behavior the `pressedObservable` function',\n {\n factory: () => true,\n },\n );\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {map, shareReplay, startWith} from 'rxjs/operators';\n\nexport const TUI_WINDOW_HEIGHT = new InjectionToken<Observable<number>>(\n 'Window height accounting for disappearing address bar',\n {\n factory: () => {\n const windowRef = inject(WINDOW);\n\n return typedFromEvent(windowRef, 'resize').pipe(\n startWith(null),\n map(() => windowRef.innerHeight),\n shareReplay({refCount: true, bufferSize: 1}),\n );\n },\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiZoomOptions} from '@taiga-ui/cdk/interfaces';\n\nexport const TUI_ZOOM_OPTIONS = new InjectionToken<TuiZoomOptions>('Zoom options', {\n factory: () => ({\n wheelSensitivity: 0.01,\n }),\n});\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -46,9 +46,7 @@ function canScrollHorizontal(element, rootElement, scrollEnd) {
46
46
 
47
47
  function containsOrAfter(current, node) {
48
48
  return (current.contains(node) ||
49
- !!(
50
- // tslint:disable:no-bitwise
51
- (node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING)));
49
+ !!(node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING));
52
50
  }
53
51
 
54
52
  /** @deprecated only needed for IE, remove in 3.0 */
@@ -182,6 +180,13 @@ function isCurrentTarget({ target, currentTarget }) {
182
180
  return target === currentTarget;
183
181
  }
184
182
 
183
+ /**
184
+ * Checks if an app is running inside <iframe /> tag
185
+ */
186
+ function isInsideIframe(windowRef) {
187
+ return windowRef.parent !== windowRef;
188
+ }
189
+
185
190
  /**
186
191
  * Checks if node is inside a specific selector
187
192
  *
@@ -196,13 +201,6 @@ function isNodeIn(node, selector) {
196
201
  !!getClosestElement(node, selector);
197
202
  }
198
203
 
199
- /**
200
- * Checks if an app is running inside <iframe /> tag
201
- */
202
- function isInsideIframe(windowRef) {
203
- return windowRef.parent !== windowRef;
204
- }
205
-
206
204
  /**
207
205
  * Generated bundle index. Do not edit.
208
206
  */
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-dom.js","sources":["ng://@taiga-ui/cdk/utils/dom/can-scroll.ts","ng://@taiga-ui/cdk/utils/dom/contains-or-after.ts","ng://@taiga-ui/cdk/utils/dom/custom-event.ts","ng://@taiga-ui/cdk/utils/dom/get-actual-target.ts","ng://@taiga-ui/cdk/utils/dom/get-clipboard-data-text.ts","ng://@taiga-ui/cdk/utils/dom/get-closest-element.ts","ng://@taiga-ui/cdk/utils/dom/get-document-or-shadow-root.ts","ng://@taiga-ui/cdk/utils/dom/get-element-obscurers.ts","ng://@taiga-ui/cdk/utils/dom/get-element-offset.ts","ng://@taiga-ui/cdk/utils/dom/get-scroll-parent.ts","ng://@taiga-ui/cdk/utils/dom/is-current-target.ts","ng://@taiga-ui/cdk/utils/dom/is-node-in.ts","ng://@taiga-ui/cdk/utils/dom/is-inside-iframe.ts","ng://@taiga-ui/cdk/utils/dom/taiga-ui-cdk-utils-dom.ts"],"sourcesContent":["export function canScroll(\n element: Element,\n rootElement: Element,\n vertical: boolean,\n scrollEnd: boolean,\n): boolean {\n return vertical\n ? canScrollVertical(element, rootElement, scrollEnd)\n : canScrollHorizontal(element, rootElement, scrollEnd);\n}\n\nfunction canScrollVertical(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollTop) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollTop + currentElement.clientHeight) <\n currentElement.scrollHeight &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n\nfunction canScrollHorizontal(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollLeft) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollLeft + currentElement.clientWidth) <\n currentElement.scrollWidth &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n","export function containsOrAfter(current: Node, node: Node): boolean {\n return (\n current.contains(node) ||\n !!(\n // tslint:disable:no-bitwise\n (node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING)\n )\n );\n}\n","/** @deprecated only needed for IE, remove in 3.0 */\nexport function tuiCustomEvent<T = null>(\n name: string,\n {bubbles = false, cancelable = false, detail = null}: CustomEventInit<T | null> = {},\n documentRef: Document,\n): CustomEvent {\n if (typeof CustomEvent === 'function') {\n return new CustomEvent(name, {bubbles, cancelable, detail});\n }\n\n const customEvent = documentRef.createEvent('CustomEvent');\n\n customEvent.initCustomEvent(name, bubbles, cancelable, detail);\n\n return customEvent;\n}\n","/**\n * Gets actual target from open Shadow DOM if event happened within it\n */\nexport function getActualTarget(event: Event): Node {\n if ('composedPath' in event) {\n return (event as any).composedPath()[0];\n }\n\n return (event as any).target;\n}\n","const DEFAULT_FORMAT = 'text/plain';\n\n/**\n * Gets text from data of clipboardEvent, it also works in IE and Edge browsers\n */\nexport function getClipboardDataText(\n event: ClipboardEvent,\n format: string = DEFAULT_FORMAT,\n): string {\n return 'clipboardData' in event && event.clipboardData !== null\n ? event.clipboardData.getData(format) ||\n event.clipboardData.getData(DEFAULT_FORMAT)\n : (event as any).target.ownerDocument.defaultView.clipboardData.getData('text');\n}\n","/**\n * Gets closest element by selector i.e. {@link Element.closest}\n * @deprecated only needed for IE, remove in 3.0\n */\nexport function getClosestElement(element: Element, selector: string): Element | null {\n const closest = Element.prototype.closest;\n\n if (closest) {\n return closest.call(element, selector);\n }\n\n const matchesSelector =\n Element.prototype.matches || (Element.prototype as any).msMatchesSelector;\n\n do {\n if (matchesSelector.call(element, selector)) {\n return element;\n }\n\n (element as Element | null) = element.parentElement;\n } while (element !== null);\n\n return null;\n}\n","export function getDocumentOrShadowRoot(node: Node): DocumentOrShadowRoot {\n return 'getRootNode' in node && node.isConnected\n ? (node.getRootNode() as Document)\n : node.ownerDocument!;\n}\n","import {clamp} from '@taiga-ui/cdk/utils/math';\nimport {isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {getDocumentOrShadowRoot} from './get-document-or-shadow-root';\n\n/**\n * Returns array of Elements covering edges of given element or null if at least one edge middle point is visible\n *\n * CAUTION: Empty array means element if offscreen i.e. covered by no elements, rather than not covered\n */\nexport function getElementObscurers(element: Element): ReadonlyArray<Element> | null {\n const {ownerDocument} = element;\n\n if (!ownerDocument || !ownerDocument.defaultView) {\n return null;\n }\n\n const {innerWidth, innerHeight} = ownerDocument.defaultView;\n const documentRef = getDocumentOrShadowRoot(element);\n const rect = element.getBoundingClientRect();\n const left = clamp(Math.round(rect.left) + 2, 0, innerWidth);\n const top = clamp(Math.round(rect.top) + 2, 0, innerHeight);\n const right = clamp(Math.round(rect.right) - 2, 0, innerWidth);\n const bottom = clamp(Math.round(rect.bottom) - 2, 0, innerHeight);\n const horizontalMiddle = clamp(Math.round(rect.left + rect.width / 2), 0, innerWidth);\n const verticalMiddle = clamp(Math.round(rect.top + rect.height / 2), 0, innerHeight);\n const elements = [\n documentRef.elementFromPoint(horizontalMiddle, top),\n documentRef.elementFromPoint(horizontalMiddle, bottom),\n documentRef.elementFromPoint(left, verticalMiddle),\n documentRef.elementFromPoint(right, verticalMiddle),\n ];\n const nonNull = elements.filter(isPresent);\n\n if (!nonNull.length) {\n return nonNull;\n }\n\n const filtered = nonNull.filter(el => !element.contains(el));\n\n return filtered.length === 4 ? filtered : null;\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * Calculates offset for an element relative to it's parent several levels above\n *\n * @param host parent element\n * @param element\n * @return object with offsetTop and offsetLeft number properties\n */\nexport function getElementOffset(\n host: Element,\n element: HTMLElement,\n): {offsetTop: number; offsetLeft: number} {\n tuiAssert.assert(host.contains(element), 'Host must contain element');\n\n let {offsetTop, offsetLeft, offsetParent} = element;\n\n // TODO: iframe warning\n while (offsetParent && offsetParent instanceof HTMLElement && offsetParent !== host) {\n offsetTop += offsetParent.offsetTop;\n offsetLeft += offsetParent.offsetLeft;\n offsetParent = offsetParent.offsetParent;\n }\n\n return {offsetTop, offsetLeft};\n}\n","/**\n * Finds nearest parent with scroll in it\n *\n * @param element initial element\n * @param vertical flag for orientation of scroll\n */\nexport function getScrollParent(\n element: Element | null,\n vertical: boolean = true,\n): Element | null {\n if (element === null) {\n return null;\n }\n\n if (vertical && element.scrollHeight > element.clientHeight) {\n return element;\n }\n\n if (!vertical && element.scrollWidth > element.clientWidth) {\n return element;\n }\n\n return getScrollParent(element.parentElement, vertical);\n}\n","export function isCurrentTarget({target, currentTarget}: Event): boolean {\n return target === currentTarget;\n}\n","import {getClosestElement} from './get-closest-element';\n\n/**\n * Checks if node is inside a specific selector\n *\n * @param node\n * @param selector\n * @return true if node is inside a particular selector\n */\nexport function isNodeIn(node: Node, selector: string): boolean {\n return node.nodeType === Node.TEXT_NODE\n ? !!node.parentElement && !!getClosestElement(node.parentElement, selector)\n : node.nodeType === Node.ELEMENT_NODE &&\n !!getClosestElement(node as Element, selector);\n}\n","/**\n * Checks if an app is running inside <iframe /> tag\n */\nexport function isInsideIframe(windowRef: Window): boolean {\n return windowRef.parent !== windowRef;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-utils-dom.js","sources":["ng://@taiga-ui/cdk/utils/dom/can-scroll.ts","ng://@taiga-ui/cdk/utils/dom/contains-or-after.ts","ng://@taiga-ui/cdk/utils/dom/custom-event.ts","ng://@taiga-ui/cdk/utils/dom/get-actual-target.ts","ng://@taiga-ui/cdk/utils/dom/get-clipboard-data-text.ts","ng://@taiga-ui/cdk/utils/dom/get-closest-element.ts","ng://@taiga-ui/cdk/utils/dom/get-document-or-shadow-root.ts","ng://@taiga-ui/cdk/utils/dom/get-element-obscurers.ts","ng://@taiga-ui/cdk/utils/dom/get-element-offset.ts","ng://@taiga-ui/cdk/utils/dom/get-scroll-parent.ts","ng://@taiga-ui/cdk/utils/dom/is-current-target.ts","ng://@taiga-ui/cdk/utils/dom/is-inside-iframe.ts","ng://@taiga-ui/cdk/utils/dom/is-node-in.ts","ng://@taiga-ui/cdk/utils/dom/taiga-ui-cdk-utils-dom.ts"],"sourcesContent":["export function canScroll(\n element: Element,\n rootElement: Element,\n vertical: boolean,\n scrollEnd: boolean,\n): boolean {\n return vertical\n ? canScrollVertical(element, rootElement, scrollEnd)\n : canScrollHorizontal(element, rootElement, scrollEnd);\n}\n\nfunction canScrollVertical(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollTop) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollTop + currentElement.clientHeight) <\n currentElement.scrollHeight &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n\nfunction canScrollHorizontal(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollLeft) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollLeft + currentElement.clientWidth) <\n currentElement.scrollWidth &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n","export function containsOrAfter(current: Node, node: Node): boolean {\n return (\n current.contains(node) ||\n !!(node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING)\n );\n}\n","/** @deprecated only needed for IE, remove in 3.0 */\nexport function tuiCustomEvent<T = null>(\n name: string,\n {bubbles = false, cancelable = false, detail = null}: CustomEventInit<T | null> = {},\n documentRef: Document,\n): CustomEvent {\n if (typeof CustomEvent === 'function') {\n return new CustomEvent(name, {bubbles, cancelable, detail});\n }\n\n const customEvent = documentRef.createEvent('CustomEvent');\n\n customEvent.initCustomEvent(name, bubbles, cancelable, detail);\n\n return customEvent;\n}\n","/**\n * Gets actual target from open Shadow DOM if event happened within it\n */\nexport function getActualTarget(event: Event): Node {\n if ('composedPath' in event) {\n return (event as any).composedPath()[0];\n }\n\n return (event as any).target;\n}\n","const DEFAULT_FORMAT = 'text/plain';\n\n/**\n * Gets text from data of clipboardEvent, it also works in IE and Edge browsers\n */\nexport function getClipboardDataText(\n event: ClipboardEvent,\n format: string = DEFAULT_FORMAT,\n): string {\n return 'clipboardData' in event && event.clipboardData !== null\n ? event.clipboardData.getData(format) ||\n event.clipboardData.getData(DEFAULT_FORMAT)\n : (event as any).target.ownerDocument.defaultView.clipboardData.getData('text');\n}\n","/**\n * Gets closest element by selector i.e. {@link Element.closest}\n * @deprecated only needed for IE, remove in 3.0\n */\nexport function getClosestElement(element: Element, selector: string): Element | null {\n const closest = Element.prototype.closest;\n\n if (closest) {\n return closest.call(element, selector);\n }\n\n const matchesSelector =\n Element.prototype.matches || (Element.prototype as any).msMatchesSelector;\n\n do {\n if (matchesSelector.call(element, selector)) {\n return element;\n }\n\n (element as Element | null) = element.parentElement;\n } while (element !== null);\n\n return null;\n}\n","export function getDocumentOrShadowRoot(node: Node): DocumentOrShadowRoot {\n return 'getRootNode' in node && node.isConnected\n ? (node.getRootNode() as Document)\n : node.ownerDocument!;\n}\n","import {clamp} from '@taiga-ui/cdk/utils/math';\nimport {isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {getDocumentOrShadowRoot} from './get-document-or-shadow-root';\n\n/**\n * Returns array of Elements covering edges of given element or null if at least one edge middle point is visible\n *\n * CAUTION: Empty array means element if offscreen i.e. covered by no elements, rather than not covered\n */\nexport function getElementObscurers(element: Element): ReadonlyArray<Element> | null {\n const {ownerDocument} = element;\n\n if (!ownerDocument || !ownerDocument.defaultView) {\n return null;\n }\n\n const {innerWidth, innerHeight} = ownerDocument.defaultView;\n const documentRef = getDocumentOrShadowRoot(element);\n const rect = element.getBoundingClientRect();\n const left = clamp(Math.round(rect.left) + 2, 0, innerWidth);\n const top = clamp(Math.round(rect.top) + 2, 0, innerHeight);\n const right = clamp(Math.round(rect.right) - 2, 0, innerWidth);\n const bottom = clamp(Math.round(rect.bottom) - 2, 0, innerHeight);\n const horizontalMiddle = clamp(Math.round(rect.left + rect.width / 2), 0, innerWidth);\n const verticalMiddle = clamp(Math.round(rect.top + rect.height / 2), 0, innerHeight);\n const elements = [\n documentRef.elementFromPoint(horizontalMiddle, top),\n documentRef.elementFromPoint(horizontalMiddle, bottom),\n documentRef.elementFromPoint(left, verticalMiddle),\n documentRef.elementFromPoint(right, verticalMiddle),\n ];\n const nonNull = elements.filter(isPresent);\n\n if (!nonNull.length) {\n return nonNull;\n }\n\n const filtered = nonNull.filter(el => !element.contains(el));\n\n return filtered.length === 4 ? filtered : null;\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * Calculates offset for an element relative to it's parent several levels above\n *\n * @param host parent element\n * @param element\n * @return object with offsetTop and offsetLeft number properties\n */\nexport function getElementOffset(\n host: Element,\n element: HTMLElement,\n): {offsetTop: number; offsetLeft: number} {\n tuiAssert.assert(host.contains(element), 'Host must contain element');\n\n let {offsetTop, offsetLeft, offsetParent} = element;\n\n // TODO: iframe warning\n while (offsetParent && offsetParent instanceof HTMLElement && offsetParent !== host) {\n offsetTop += offsetParent.offsetTop;\n offsetLeft += offsetParent.offsetLeft;\n offsetParent = offsetParent.offsetParent;\n }\n\n return {offsetTop, offsetLeft};\n}\n","/**\n * Finds nearest parent with scroll in it\n *\n * @param element initial element\n * @param vertical flag for orientation of scroll\n */\nexport function getScrollParent(\n element: Element | null,\n vertical: boolean = true,\n): Element | null {\n if (element === null) {\n return null;\n }\n\n if (vertical && element.scrollHeight > element.clientHeight) {\n return element;\n }\n\n if (!vertical && element.scrollWidth > element.clientWidth) {\n return element;\n }\n\n return getScrollParent(element.parentElement, vertical);\n}\n","export function isCurrentTarget({target, currentTarget}: Event): boolean {\n return target === currentTarget;\n}\n","/**\n * Checks if an app is running inside <iframe /> tag\n */\nexport function isInsideIframe(windowRef: Window): boolean {\n return windowRef.parent !== windowRef;\n}\n","import {getClosestElement} from './get-closest-element';\n\n/**\n * Checks if node is inside a specific selector\n *\n * @param node\n * @param selector\n * @return true if node is inside a particular selector\n */\nexport function isNodeIn(node: Node, selector: string): boolean {\n return node.nodeType === Node.TEXT_NODE\n ? !!node.parentElement && !!getClosestElement(node.parentElement, selector)\n : node.nodeType === Node.ELEMENT_NODE &&\n !!getClosestElement(node as Element, selector);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-focus.js","sources":["ng://@taiga-ui/cdk/utils/focus/get-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/set-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/blur-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/is-native-keyboard-focusable.ts","ng://@taiga-ui/cdk/utils/focus/is-native-mouse-focusable.ts","ng://@taiga-ui/cdk/utils/focus/get-closest-keyboard-focusable.ts","ng://@taiga-ui/cdk/utils/focus/is-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/is-native-focused-in.ts","ng://@taiga-ui/cdk/utils/focus/move-focus.ts","ng://@taiga-ui/cdk/utils/focus/set-native-mouse-focused.ts","ng://@taiga-ui/cdk/utils/focus/taiga-ui-cdk-utils-focus.ts"],"sourcesContent":["/**\n * Returns current active element, including shadow dom\n *\n * @return element or null\n */\nexport function getNativeFocused(documentRef: Document): Element | null {\n if (!documentRef.activeElement || !documentRef.activeElement.shadowRoot) {\n return documentRef.activeElement;\n }\n\n let element = documentRef.activeElement.shadowRoot.activeElement;\n\n while (element && element.shadowRoot) {\n element = element.shadowRoot.activeElement;\n }\n\n return element;\n}\n","/**\n * Focuses or blurs and element\n *\n * @param element native element\n * @param focused boolean focused state\n * @param preventScroll optional flag to prevent native scroll to the element\n */\nexport function setNativeFocused(\n element: HTMLOrSVGElement,\n focused: boolean = true,\n preventScroll: boolean = false,\n) {\n if (focused) {\n element.focus({preventScroll});\n } else {\n element.blur();\n }\n}\n","import {getNativeFocused} from './get-native-focused';\nimport {setNativeFocused} from './set-native-focused';\n\n/**\n * Finds and blurs current active element, including shadow DOM\n */\nexport function blurNativeFocused(documentRef: Document) {\n const activeElement = getNativeFocused(documentRef);\n\n // TODO: iframe warning\n if (activeElement instanceof HTMLElement) {\n setNativeFocused(activeElement, false);\n }\n}\n","/**\n * Checks for signs that element can be focused with keyboard. tabIndex above 0 is ignored to\n * only target natural focus order. Not checking the possibility of an element to\n * be focused, for example element can have display: none applied to it or any other\n * circumstances could prevent actual focus.\n */\nexport function isNativeKeyboardFocusable(element: Element): boolean {\n if (element.hasAttribute('disabled') || element.getAttribute('tabIndex') === '-1') {\n return false;\n }\n\n // TODO: iframe warning\n if (\n (element instanceof HTMLElement && element.isContentEditable) ||\n element.getAttribute('tabIndex') === '0'\n ) {\n return true;\n }\n\n switch (element.tagName) {\n case 'BUTTON':\n case 'SELECT':\n case 'TEXTAREA':\n return true;\n case 'VIDEO':\n case 'AUDIO':\n return element.hasAttribute('controls');\n case 'INPUT':\n return element.getAttribute('type') !== 'hidden';\n case 'A':\n case 'LINK':\n return element.hasAttribute('href');\n default:\n return false;\n }\n}\n","import {isNativeKeyboardFocusable} from './is-native-keyboard-focusable';\n\nexport function isNativeMouseFocusable(element: Element): boolean {\n return (\n !element.hasAttribute('disabled') &&\n (element.getAttribute('tabIndex') === '-1' || isNativeKeyboardFocusable(element))\n );\n}\n","import {svgNodeFilter} from '@taiga-ui/cdk/constants';\nimport {isNativeKeyboardFocusable} from './is-native-keyboard-focusable';\nimport {isNativeMouseFocusable} from './is-native-mouse-focusable';\n\n/**\n * Finds closest element that can be focused with a keyboard or mouse in theory\n *\n * @param initial current HTML element\n * @param prev should it look backwards instead (find item that will be focused with Shift + Tab)\n * @param root top Node limiting the search area\n * @param keyboard determine if only keyboard focus is of interest\n *\n */\nexport function getClosestFocusable(\n initial: HTMLElement,\n prev: boolean = false,\n root: Node,\n keyboard: boolean = true,\n): HTMLElement | null {\n if (!root.ownerDocument) {\n return null;\n }\n\n const check = keyboard ? isNativeKeyboardFocusable : isNativeMouseFocusable;\n\n // Deprecated but ony this overload works in IE\n // Filter must be a function in IE, other modern browsers are compliant to this format\n const treeWalker = root.ownerDocument.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n svgNodeFilter,\n false,\n );\n\n treeWalker.currentNode = initial;\n\n while (prev ? treeWalker.previousNode() : treeWalker.nextNode()) {\n // TODO: iframe warning\n if (treeWalker.currentNode instanceof HTMLElement) {\n initial = treeWalker.currentNode;\n }\n\n if (check(initial)) {\n return initial;\n }\n }\n\n return null;\n}\n\n/** @deprecated use getClosestFocusable */\nexport const getClosestKeyboardFocusable = getClosestFocusable;\n","import {getNativeFocused} from './get-native-focused';\n\n/**\n * Checks if element is focused.\n *\n * Could return true even after blur since element remains focused if you switch away from a browser tab.\n *\n * @param node or null (as a common return value of DOM nodes walking)\n * @return true if focused\n */\nexport function isNativeFocused(node: Node | null): boolean {\n return (\n !!node && !!node.ownerDocument && getNativeFocused(node.ownerDocument) === node\n );\n}\n","import {getNativeFocused} from './get-native-focused';\n\n/**\n * Checks if focused element is within given element.\n *\n * @param node\n * @return true if focused node is contained within element\n */\nexport function isNativeFocusedIn(node: Node): boolean {\n // !node.contains - check for IE11\n if (!node.ownerDocument || !node.contains) {\n return false;\n }\n\n const nativeFocused = getNativeFocused(node.ownerDocument);\n\n return nativeFocused !== null && node.contains(nativeFocused);\n}\n","import {isNativeFocused} from './is-native-focused';\nimport {setNativeFocused} from './set-native-focused';\n\n/**\n * Utility method for moving focus in a list of elements\n *\n * @param currentIndex currently focused index\n * @param elements array of focusable elements\n * @param step a step to move focus by, typically -1 or 1\n */\nexport function moveFocus(\n currentIndex: number,\n elements: ReadonlyArray<HTMLElement>,\n step: number,\n) {\n currentIndex += step;\n\n while (currentIndex >= 0 && currentIndex < elements.length) {\n setNativeFocused(elements[currentIndex]);\n\n if (isNativeFocused(elements[currentIndex])) {\n return;\n }\n\n currentIndex += step;\n }\n}\n","import {setNativeFocused} from './set-native-focused';\n\n/**\n * Focuses or blurs element with mouse action imitation (to spoof {@link TuiFocusVisibleService})\n *\n * @param element\n * @param focused desired focused state\n * @param preventScroll optionally prevent native browser scroll after focus\n */\nexport function setNativeMouseFocused(\n element: HTMLOrSVGElement & Element,\n focused: boolean = true,\n preventScroll: boolean = false,\n) {\n if (!element.ownerDocument) {\n return;\n }\n\n if (typeof Event === 'function') {\n element.dispatchEvent(new Event('mousedown', {bubbles: true, cancelable: true}));\n } else {\n const event = element.ownerDocument.createEvent('Event');\n\n event.initEvent('mousedown', true, true);\n element.dispatchEvent(event);\n }\n\n setNativeFocused(element, focused, preventScroll);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-utils-focus.js","sources":["ng://@taiga-ui/cdk/utils/focus/get-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/set-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/blur-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/is-native-keyboard-focusable.ts","ng://@taiga-ui/cdk/utils/focus/is-native-mouse-focusable.ts","ng://@taiga-ui/cdk/utils/focus/get-closest-keyboard-focusable.ts","ng://@taiga-ui/cdk/utils/focus/is-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/is-native-focused-in.ts","ng://@taiga-ui/cdk/utils/focus/move-focus.ts","ng://@taiga-ui/cdk/utils/focus/set-native-mouse-focused.ts","ng://@taiga-ui/cdk/utils/focus/taiga-ui-cdk-utils-focus.ts"],"sourcesContent":["/**\n * Returns current active element, including shadow dom\n *\n * @return element or null\n */\nexport function getNativeFocused(documentRef: Document): Element | null {\n if (!documentRef.activeElement || !documentRef.activeElement.shadowRoot) {\n return documentRef.activeElement;\n }\n\n let element = documentRef.activeElement.shadowRoot.activeElement;\n\n while (element && element.shadowRoot) {\n element = element.shadowRoot.activeElement;\n }\n\n return element;\n}\n","/**\n * Focuses or blurs and element\n *\n * @param element native element\n * @param focused boolean focused state\n * @param preventScroll optional flag to prevent native scroll to the element\n */\nexport function setNativeFocused(\n element: HTMLOrSVGElement,\n focused: boolean = true,\n preventScroll: boolean = false,\n) {\n if (focused) {\n element.focus({preventScroll});\n } else {\n element.blur();\n }\n}\n","import {getNativeFocused} from './get-native-focused';\nimport {setNativeFocused} from './set-native-focused';\n\n/**\n * Finds and blurs current active element, including shadow DOM\n */\nexport function blurNativeFocused(documentRef: Document) {\n const activeElement = getNativeFocused(documentRef);\n\n // TODO: iframe warning\n if (activeElement instanceof HTMLElement) {\n setNativeFocused(activeElement, false);\n }\n}\n","/**\n * Checks for signs that element can be focused with keyboard. tabIndex above 0 is ignored to\n * only target natural focus order. Not checking the possibility of an element to\n * be focused, for example element can have display: none applied to it or any other\n * circumstances could prevent actual focus.\n */\nexport function isNativeKeyboardFocusable(element: Element): boolean {\n if (element.hasAttribute('disabled') || element.getAttribute('tabIndex') === '-1') {\n return false;\n }\n\n // TODO: iframe warning\n if (\n (element instanceof HTMLElement && element.isContentEditable) ||\n element.getAttribute('tabIndex') === '0'\n ) {\n return true;\n }\n\n switch (element.tagName) {\n case 'BUTTON':\n case 'SELECT':\n case 'TEXTAREA':\n return true;\n case 'VIDEO':\n case 'AUDIO':\n return element.hasAttribute('controls');\n case 'INPUT':\n return element.getAttribute('type') !== 'hidden';\n case 'A':\n case 'LINK':\n return element.hasAttribute('href');\n default:\n return false;\n }\n}\n","import {isNativeKeyboardFocusable} from './is-native-keyboard-focusable';\n\nexport function isNativeMouseFocusable(element: Element): boolean {\n return (\n !element.hasAttribute('disabled') &&\n (element.getAttribute('tabIndex') === '-1' || isNativeKeyboardFocusable(element))\n );\n}\n","import {svgNodeFilter} from '@taiga-ui/cdk/constants';\n\nimport {isNativeKeyboardFocusable} from './is-native-keyboard-focusable';\nimport {isNativeMouseFocusable} from './is-native-mouse-focusable';\n\n/**\n * Finds closest element that can be focused with a keyboard or mouse in theory\n *\n * @param initial current HTML element\n * @param prev should it look backwards instead (find item that will be focused with Shift + Tab)\n * @param root top Node limiting the search area\n * @param keyboard determine if only keyboard focus is of interest\n *\n */\nexport function getClosestFocusable(\n initial: HTMLElement,\n prev: boolean = false,\n root: Node,\n keyboard: boolean = true,\n): HTMLElement | null {\n if (!root.ownerDocument) {\n return null;\n }\n\n const check = keyboard ? isNativeKeyboardFocusable : isNativeMouseFocusable;\n\n // Deprecated but ony this overload works in IE\n // Filter must be a function in IE, other modern browsers are compliant to this format\n const treeWalker = root.ownerDocument.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n svgNodeFilter,\n false,\n );\n\n treeWalker.currentNode = initial;\n\n while (prev ? treeWalker.previousNode() : treeWalker.nextNode()) {\n // TODO: iframe warning\n if (treeWalker.currentNode instanceof HTMLElement) {\n initial = treeWalker.currentNode;\n }\n\n if (check(initial)) {\n return initial;\n }\n }\n\n return null;\n}\n\n/** @deprecated use getClosestFocusable */\nexport const getClosestKeyboardFocusable = getClosestFocusable;\n","import {getNativeFocused} from './get-native-focused';\n\n/**\n * Checks if element is focused.\n *\n * Could return true even after blur since element remains focused if you switch away from a browser tab.\n *\n * @param node or null (as a common return value of DOM nodes walking)\n * @return true if focused\n */\nexport function isNativeFocused(node: Node | null): boolean {\n return (\n !!node && !!node.ownerDocument && getNativeFocused(node.ownerDocument) === node\n );\n}\n","import {getNativeFocused} from './get-native-focused';\n\n/**\n * Checks if focused element is within given element.\n *\n * @param node\n * @return true if focused node is contained within element\n */\nexport function isNativeFocusedIn(node: Node): boolean {\n // !node.contains - check for IE11\n if (!node.ownerDocument || !node.contains) {\n return false;\n }\n\n const nativeFocused = getNativeFocused(node.ownerDocument);\n\n return nativeFocused !== null && node.contains(nativeFocused);\n}\n","import {isNativeFocused} from './is-native-focused';\nimport {setNativeFocused} from './set-native-focused';\n\n/**\n * Utility method for moving focus in a list of elements\n *\n * @param currentIndex currently focused index\n * @param elements array of focusable elements\n * @param step a step to move focus by, typically -1 or 1\n */\nexport function moveFocus(\n currentIndex: number,\n elements: ReadonlyArray<HTMLElement>,\n step: number,\n) {\n currentIndex += step;\n\n while (currentIndex >= 0 && currentIndex < elements.length) {\n setNativeFocused(elements[currentIndex]);\n\n if (isNativeFocused(elements[currentIndex])) {\n return;\n }\n\n currentIndex += step;\n }\n}\n","import {setNativeFocused} from './set-native-focused';\n\n/**\n * Focuses or blurs element with mouse action imitation (to spoof {@link TuiFocusVisibleService})\n *\n * @param element\n * @param focused desired focused state\n * @param preventScroll optionally prevent native browser scroll after focus\n */\nexport function setNativeMouseFocused(\n element: HTMLOrSVGElement & Element,\n focused: boolean = true,\n preventScroll: boolean = false,\n) {\n if (!element.ownerDocument) {\n return;\n }\n\n if (typeof Event === 'function') {\n element.dispatchEvent(new Event('mousedown', {bubbles: true, cancelable: true}));\n } else {\n const event = element.ownerDocument.createEvent('Event');\n\n event.initEvent('mousedown', true, true);\n element.dispatchEvent(event);\n }\n\n setNativeFocused(element, focused, preventScroll);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}