@taiga-ui/cdk 2.21.0 → 2.25.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 (440) hide show
  1. package/README.md +7 -3
  2. package/abstract/dialog.directive.d.ts +12 -0
  3. package/abstract/index.d.ts +1 -0
  4. package/abstract/taiga-ui-cdk-abstract.metadata.json +1 -1
  5. package/bundles/taiga-ui-cdk-abstract.umd.js +56 -11
  6. package/bundles/taiga-ui-cdk-abstract.umd.js.map +1 -1
  7. package/bundles/taiga-ui-cdk-abstract.umd.min.js +2 -2
  8. package/bundles/taiga-ui-cdk-abstract.umd.min.js.map +1 -1
  9. package/bundles/taiga-ui-cdk-components-dialog-host.umd.js +1 -1
  10. package/bundles/taiga-ui-cdk-components-dialog-host.umd.js.map +1 -1
  11. package/bundles/taiga-ui-cdk-components-dialog-host.umd.min.js +1 -1
  12. package/bundles/taiga-ui-cdk-components-dialog-host.umd.min.js.map +1 -1
  13. package/bundles/taiga-ui-cdk-components-portal-host.umd.js +1 -1
  14. package/bundles/taiga-ui-cdk-components-portal-host.umd.js.map +1 -1
  15. package/bundles/taiga-ui-cdk-components-portal-host.umd.min.js +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 +45 -45
  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-drag.umd.js.map +1 -1
  32. package/bundles/taiga-ui-cdk-directives-drag.umd.min.js.map +1 -1
  33. package/bundles/taiga-ui-cdk-directives-droppable.umd.js.map +1 -1
  34. package/bundles/taiga-ui-cdk-directives-droppable.umd.min.js.map +1 -1
  35. package/bundles/taiga-ui-cdk-directives-element.umd.js.map +1 -1
  36. package/bundles/taiga-ui-cdk-directives-element.umd.min.js.map +1 -1
  37. package/bundles/taiga-ui-cdk-directives-focus-trap.umd.js.map +1 -1
  38. package/bundles/taiga-ui-cdk-directives-focus-trap.umd.min.js.map +1 -1
  39. package/bundles/taiga-ui-cdk-directives-focus-visible.umd.js.map +1 -1
  40. package/bundles/taiga-ui-cdk-directives-focus-visible.umd.min.js.map +1 -1
  41. package/bundles/taiga-ui-cdk-directives-focusable.umd.js.map +1 -1
  42. package/bundles/taiga-ui-cdk-directives-focusable.umd.min.js.map +1 -1
  43. package/bundles/taiga-ui-cdk-directives-focused.umd.js.map +1 -1
  44. package/bundles/taiga-ui-cdk-directives-focused.umd.min.js.map +1 -1
  45. package/bundles/taiga-ui-cdk-directives-for.umd.js.map +1 -1
  46. package/bundles/taiga-ui-cdk-directives-for.umd.min.js.map +1 -1
  47. package/bundles/taiga-ui-cdk-directives-high-dpi.umd.js.map +1 -1
  48. package/bundles/taiga-ui-cdk-directives-high-dpi.umd.min.js.map +1 -1
  49. package/bundles/taiga-ui-cdk-directives-hovered.umd.js.map +1 -1
  50. package/bundles/taiga-ui-cdk-directives-hovered.umd.min.js.map +1 -1
  51. package/bundles/taiga-ui-cdk-directives-input-mode.umd.js.map +1 -1
  52. package/bundles/taiga-ui-cdk-directives-input-mode.umd.min.js.map +1 -1
  53. package/bundles/taiga-ui-cdk-directives-let.umd.js.map +1 -1
  54. package/bundles/taiga-ui-cdk-directives-let.umd.min.js.map +1 -1
  55. package/bundles/taiga-ui-cdk-directives-media.umd.js.map +1 -1
  56. package/bundles/taiga-ui-cdk-directives-media.umd.min.js.map +1 -1
  57. package/bundles/taiga-ui-cdk-directives-obscured.umd.js.map +1 -1
  58. package/bundles/taiga-ui-cdk-directives-obscured.umd.min.js.map +1 -1
  59. package/bundles/taiga-ui-cdk-directives-overscroll.umd.js.map +1 -1
  60. package/bundles/taiga-ui-cdk-directives-overscroll.umd.min.js.map +1 -1
  61. package/bundles/taiga-ui-cdk-directives-pan.umd.js.map +1 -1
  62. package/bundles/taiga-ui-cdk-directives-pan.umd.min.js.map +1 -1
  63. package/bundles/taiga-ui-cdk-directives-pressed.umd.js.map +1 -1
  64. package/bundles/taiga-ui-cdk-directives-pressed.umd.min.js.map +1 -1
  65. package/bundles/taiga-ui-cdk-directives-prevent-default.umd.js.map +1 -1
  66. package/bundles/taiga-ui-cdk-directives-prevent-default.umd.min.js.map +1 -1
  67. package/bundles/taiga-ui-cdk-directives-repeat-times.umd.js.map +1 -1
  68. package/bundles/taiga-ui-cdk-directives-repeat-times.umd.min.js.map +1 -1
  69. package/bundles/taiga-ui-cdk-directives-resize.umd.js.map +1 -1
  70. package/bundles/taiga-ui-cdk-directives-resize.umd.min.js.map +1 -1
  71. package/bundles/taiga-ui-cdk-directives-swipe.umd.js.map +1 -1
  72. package/bundles/taiga-ui-cdk-directives-swipe.umd.min.js.map +1 -1
  73. package/bundles/taiga-ui-cdk-directives-validator.umd.js.map +1 -1
  74. package/bundles/taiga-ui-cdk-directives-validator.umd.min.js.map +1 -1
  75. package/bundles/taiga-ui-cdk-directives-zoom.umd.js +269 -0
  76. package/bundles/taiga-ui-cdk-directives-zoom.umd.js.map +1 -0
  77. package/bundles/taiga-ui-cdk-directives-zoom.umd.min.js +16 -0
  78. package/bundles/taiga-ui-cdk-directives-zoom.umd.min.js.map +1 -0
  79. package/bundles/taiga-ui-cdk-directives.umd.js +26 -18
  80. package/bundles/taiga-ui-cdk-directives.umd.js.map +1 -1
  81. package/bundles/taiga-ui-cdk-directives.umd.min.js +1 -1
  82. package/bundles/taiga-ui-cdk-enums.umd.js +11 -11
  83. package/bundles/taiga-ui-cdk-enums.umd.js.map +1 -1
  84. package/bundles/taiga-ui-cdk-enums.umd.min.js +1 -1
  85. package/bundles/taiga-ui-cdk-enums.umd.min.js.map +1 -1
  86. package/bundles/taiga-ui-cdk-observables.umd.js.map +1 -1
  87. package/bundles/taiga-ui-cdk-observables.umd.min.js.map +1 -1
  88. package/bundles/taiga-ui-cdk-pipes-filter.umd.js.map +1 -1
  89. package/bundles/taiga-ui-cdk-pipes-filter.umd.min.js.map +1 -1
  90. package/bundles/taiga-ui-cdk-pipes-mapper.umd.js.map +1 -1
  91. package/bundles/taiga-ui-cdk-pipes-mapper.umd.min.js.map +1 -1
  92. package/bundles/taiga-ui-cdk-services.umd.js +101 -43
  93. package/bundles/taiga-ui-cdk-services.umd.js.map +1 -1
  94. package/bundles/taiga-ui-cdk-services.umd.min.js +2 -2
  95. package/bundles/taiga-ui-cdk-services.umd.min.js.map +1 -1
  96. package/bundles/taiga-ui-cdk-tokens.umd.js +16 -9
  97. package/bundles/taiga-ui-cdk-tokens.umd.js.map +1 -1
  98. package/bundles/taiga-ui-cdk-tokens.umd.min.js +1 -1
  99. package/bundles/taiga-ui-cdk-tokens.umd.min.js.map +1 -1
  100. package/bundles/taiga-ui-cdk-utils-dom.umd.js +8 -10
  101. package/bundles/taiga-ui-cdk-utils-dom.umd.js.map +1 -1
  102. package/bundles/taiga-ui-cdk-utils-dom.umd.min.js.map +1 -1
  103. package/bundles/taiga-ui-cdk-utils-focus.umd.js.map +1 -1
  104. package/bundles/taiga-ui-cdk-utils-focus.umd.min.js.map +1 -1
  105. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js +16 -9
  106. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js.map +1 -1
  107. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.min.js +1 -1
  108. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.min.js.map +1 -1
  109. package/components/dialog-host/taiga-ui-cdk-components-dialog-host.metadata.json +1 -1
  110. package/components/portal-host/taiga-ui-cdk-components-portal-host.metadata.json +1 -1
  111. package/constants/taiga-ui-cdk-constants.metadata.json +1 -1
  112. package/date-time/index.d.ts +4 -4
  113. package/date-time/taiga-ui-cdk-date-time.metadata.json +1 -1
  114. package/directives/active-zone/taiga-ui-cdk-directives-active-zone.metadata.json +1 -1
  115. package/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.metadata.json +1 -1
  116. package/directives/autofilled/taiga-ui-cdk-directives-autofilled.metadata.json +1 -1
  117. package/directives/checked/taiga-ui-cdk-directives-checked.metadata.json +1 -1
  118. package/directives/drag/taiga-ui-cdk-directives-drag.metadata.json +1 -1
  119. package/directives/droppable/taiga-ui-cdk-directives-droppable.metadata.json +1 -1
  120. package/directives/element/taiga-ui-cdk-directives-element.metadata.json +1 -1
  121. package/directives/focus-trap/taiga-ui-cdk-directives-focus-trap.metadata.json +1 -1
  122. package/directives/focus-visible/taiga-ui-cdk-directives-focus-visible.metadata.json +1 -1
  123. package/directives/focusable/taiga-ui-cdk-directives-focusable.metadata.json +1 -1
  124. package/directives/focused/taiga-ui-cdk-directives-focused.metadata.json +1 -1
  125. package/directives/for/taiga-ui-cdk-directives-for.metadata.json +1 -1
  126. package/directives/high-dpi/taiga-ui-cdk-directives-high-dpi.metadata.json +1 -1
  127. package/directives/hovered/taiga-ui-cdk-directives-hovered.metadata.json +1 -1
  128. package/directives/index.d.ts +5 -4
  129. package/directives/input-mode/taiga-ui-cdk-directives-input-mode.metadata.json +1 -1
  130. package/directives/let/taiga-ui-cdk-directives-let.metadata.json +1 -1
  131. package/directives/media/taiga-ui-cdk-directives-media.metadata.json +1 -1
  132. package/directives/obscured/taiga-ui-cdk-directives-obscured.metadata.json +1 -1
  133. package/directives/overscroll/taiga-ui-cdk-directives-overscroll.metadata.json +1 -1
  134. package/directives/pan/taiga-ui-cdk-directives-pan.metadata.json +1 -1
  135. package/directives/pressed/taiga-ui-cdk-directives-pressed.metadata.json +1 -1
  136. package/directives/prevent-default/taiga-ui-cdk-directives-prevent-default.metadata.json +1 -1
  137. package/directives/repeat-times/taiga-ui-cdk-directives-repeat-times.metadata.json +1 -1
  138. package/directives/resize/taiga-ui-cdk-directives-resize.metadata.json +1 -1
  139. package/directives/swipe/taiga-ui-cdk-directives-swipe.metadata.json +1 -1
  140. package/directives/taiga-ui-cdk-directives.metadata.json +1 -1
  141. package/directives/validator/taiga-ui-cdk-directives-validator.metadata.json +1 -1
  142. package/directives/zoom/index.d.ts +2 -0
  143. package/directives/zoom/package.json +13 -0
  144. package/directives/zoom/taiga-ui-cdk-directives-zoom.d.ts +4 -0
  145. package/directives/zoom/taiga-ui-cdk-directives-zoom.metadata.json +1 -0
  146. package/directives/zoom/zoom.directive.d.ts +5 -0
  147. package/directives/zoom/zoom.module.d.ts +5 -0
  148. package/enums/index.d.ts +1 -1
  149. package/enums/taiga-ui-cdk-enums.metadata.json +1 -1
  150. package/esm2015/abstract/control.js +7 -5
  151. package/esm2015/abstract/dialog.directive.js +35 -0
  152. package/esm2015/abstract/index.js +2 -1
  153. package/esm2015/abstract/interactive.js +9 -6
  154. package/esm2015/abstract/multiple-control.js +1 -1
  155. package/esm2015/abstract/nullable-control.js +1 -1
  156. package/esm2015/components/dialog-host/dialog-host.component.js +3 -3
  157. package/esm2015/components/dialog-host/dialog-host.module.js +1 -1
  158. package/esm2015/components/portal-host/portal-host.component.js +2 -2
  159. package/esm2015/components/portal-host/portal-host.module.js +1 -1
  160. package/esm2015/components/portal-host/portal.service.js +1 -1
  161. package/esm2015/constants/matcher.js +1 -1
  162. package/esm2015/date-time/date-fillers.js +1 -1
  163. package/esm2015/date-time/day-range.js +1 -1
  164. package/esm2015/date-time/day.js +1 -1
  165. package/esm2015/date-time/index.js +5 -5
  166. package/esm2015/date-time/month-range.js +1 -1
  167. package/esm2015/date-time/month.js +1 -1
  168. package/esm2015/date-time/time.js +1 -1
  169. package/esm2015/date-time/year.js +1 -1
  170. package/esm2015/directives/active-zone/active-zone.module.js +1 -1
  171. package/esm2015/directives/auto-focus/autofocus.module.js +1 -1
  172. package/esm2015/directives/autofilled/autofilled.module.js +1 -1
  173. package/esm2015/directives/checked/checked.module.js +1 -1
  174. package/esm2015/directives/drag/drag.module.js +1 -1
  175. package/esm2015/directives/droppable/droppable.module.js +1 -1
  176. package/esm2015/directives/element/element.module.js +1 -1
  177. package/esm2015/directives/focus-trap/focus-trap.module.js +1 -1
  178. package/esm2015/directives/focus-visible/focus-visible.module.js +1 -1
  179. package/esm2015/directives/focusable/focusable.module.js +1 -1
  180. package/esm2015/directives/focused/focused.module.js +1 -1
  181. package/esm2015/directives/for/for.module.js +1 -1
  182. package/esm2015/directives/high-dpi/high-dpi.module.js +1 -1
  183. package/esm2015/directives/hovered/hovered.module.js +1 -1
  184. package/esm2015/directives/index.js +6 -5
  185. package/esm2015/directives/input-mode/input-mode.module.js +1 -1
  186. package/esm2015/directives/let/let.directive.js +1 -1
  187. package/esm2015/directives/let/let.module.js +1 -1
  188. package/esm2015/directives/media/media.module.js +1 -1
  189. package/esm2015/directives/obscured/obscured.module.js +1 -1
  190. package/esm2015/directives/overscroll/overscroll.module.js +1 -1
  191. package/esm2015/directives/pan/pan.module.js +1 -1
  192. package/esm2015/directives/pressed/pressed.module.js +1 -1
  193. package/esm2015/directives/prevent-default/prevent-default.module.js +1 -1
  194. package/esm2015/directives/repeat-times/repeat-times.module.js +1 -1
  195. package/esm2015/directives/resize/resize.module.js +1 -1
  196. package/esm2015/directives/swipe/swipe.module.js +1 -1
  197. package/esm2015/directives/validator/validator.module.js +1 -1
  198. package/esm2015/directives/zoom/index.js +3 -0
  199. package/esm2015/directives/zoom/taiga-ui-cdk-directives-zoom.js +5 -0
  200. package/esm2015/directives/zoom/zoom.directive.js +25 -0
  201. package/esm2015/directives/zoom/zoom.module.js +16 -0
  202. package/esm2015/enums/index.js +2 -2
  203. package/esm2015/interfaces/base-dialog-context.js +1 -1
  204. package/esm2015/interfaces/base-dialog.js +1 -1
  205. package/esm2015/interfaces/index.js +1 -1
  206. package/esm2015/interfaces/zoom.js +1 -0
  207. package/esm2015/observables/drag-and-drop-from.js +1 -1
  208. package/esm2015/observables/focus-visible-observable.js +1 -1
  209. package/esm2015/observables/mouse-drag-finish-from.js +1 -1
  210. package/esm2015/observables/pressed-observable.js +1 -1
  211. package/esm2015/pipes/filter/filter.module.js +1 -1
  212. package/esm2015/pipes/mapper/mapper.module.js +1 -1
  213. package/esm2015/services/focus-visible.service.js +1 -1
  214. package/esm2015/services/hovered.service.js +2 -2
  215. package/esm2015/services/index.js +3 -2
  216. package/esm2015/services/obscured.service.js +1 -1
  217. package/esm2015/services/resize.service.js +1 -1
  218. package/esm2015/services/static-request.service.js +1 -1
  219. package/esm2015/services/zoom.service.js +55 -0
  220. package/esm2015/tokens/active-element.js +4 -5
  221. package/esm2015/tokens/index.js +4 -3
  222. package/esm2015/tokens/is-android.js +1 -1
  223. package/esm2015/tokens/zoom-options.js +7 -0
  224. package/esm2015/types/index.js +1 -1
  225. package/esm2015/utils/dom/contains-or-after.js +2 -4
  226. package/esm2015/utils/dom/get-element-obscurers.js +1 -1
  227. package/esm2015/utils/dom/index.js +2 -2
  228. package/esm2015/utils/focus/get-closest-keyboard-focusable.js +1 -1
  229. package/esm2015/utils/miscellaneous/distance-between-touches.js +4 -0
  230. package/esm2015/utils/miscellaneous/fallback-value.js +2 -1
  231. package/esm2015/utils/miscellaneous/index.js +3 -2
  232. package/esm5/abstract/control.js +7 -5
  233. package/esm5/abstract/dialog.directive.js +44 -0
  234. package/esm5/abstract/index.js +2 -1
  235. package/esm5/abstract/interactive.js +9 -6
  236. package/esm5/abstract/multiple-control.js +1 -1
  237. package/esm5/abstract/nullable-control.js +1 -1
  238. package/esm5/components/dialog-host/dialog-host.component.js +3 -3
  239. package/esm5/components/dialog-host/dialog-host.module.js +1 -1
  240. package/esm5/components/portal-host/portal-host.component.js +2 -2
  241. package/esm5/components/portal-host/portal-host.module.js +1 -1
  242. package/esm5/components/portal-host/portal.service.js +1 -1
  243. package/esm5/constants/matcher.js +1 -1
  244. package/esm5/date-time/date-fillers.js +1 -1
  245. package/esm5/date-time/day-range.js +1 -1
  246. package/esm5/date-time/day.js +1 -1
  247. package/esm5/date-time/index.js +5 -5
  248. package/esm5/date-time/month-range.js +1 -1
  249. package/esm5/date-time/month.js +1 -1
  250. package/esm5/date-time/time.js +1 -1
  251. package/esm5/date-time/year.js +1 -1
  252. package/esm5/directives/active-zone/active-zone.module.js +1 -1
  253. package/esm5/directives/auto-focus/autofocus.module.js +1 -1
  254. package/esm5/directives/autofilled/autofilled.module.js +1 -1
  255. package/esm5/directives/checked/checked.module.js +1 -1
  256. package/esm5/directives/drag/drag.module.js +1 -1
  257. package/esm5/directives/droppable/droppable.module.js +1 -1
  258. package/esm5/directives/element/element.module.js +1 -1
  259. package/esm5/directives/focus-trap/focus-trap.module.js +1 -1
  260. package/esm5/directives/focus-visible/focus-visible.module.js +1 -1
  261. package/esm5/directives/focusable/focusable.module.js +1 -1
  262. package/esm5/directives/focused/focused.module.js +1 -1
  263. package/esm5/directives/for/for.module.js +1 -1
  264. package/esm5/directives/high-dpi/high-dpi.module.js +1 -1
  265. package/esm5/directives/hovered/hovered.module.js +1 -1
  266. package/esm5/directives/index.js +6 -5
  267. package/esm5/directives/input-mode/input-mode.module.js +1 -1
  268. package/esm5/directives/let/let.directive.js +1 -1
  269. package/esm5/directives/let/let.module.js +1 -1
  270. package/esm5/directives/media/media.module.js +1 -1
  271. package/esm5/directives/obscured/obscured.module.js +1 -1
  272. package/esm5/directives/overscroll/overscroll.module.js +1 -1
  273. package/esm5/directives/pan/pan.module.js +1 -1
  274. package/esm5/directives/pressed/pressed.module.js +1 -1
  275. package/esm5/directives/prevent-default/prevent-default.module.js +1 -1
  276. package/esm5/directives/repeat-times/repeat-times.module.js +1 -1
  277. package/esm5/directives/resize/resize.module.js +1 -1
  278. package/esm5/directives/swipe/swipe.module.js +1 -1
  279. package/esm5/directives/validator/validator.module.js +1 -1
  280. package/esm5/directives/zoom/index.js +3 -0
  281. package/esm5/directives/zoom/taiga-ui-cdk-directives-zoom.js +5 -0
  282. package/esm5/directives/zoom/zoom.directive.js +26 -0
  283. package/esm5/directives/zoom/zoom.module.js +19 -0
  284. package/esm5/enums/index.js +2 -2
  285. package/esm5/interfaces/base-dialog-context.js +1 -1
  286. package/esm5/interfaces/base-dialog.js +1 -1
  287. package/esm5/interfaces/index.js +1 -1
  288. package/esm5/interfaces/zoom.js +1 -0
  289. package/esm5/observables/drag-and-drop-from.js +1 -1
  290. package/esm5/observables/focus-visible-observable.js +1 -1
  291. package/esm5/observables/mouse-drag-finish-from.js +1 -1
  292. package/esm5/observables/pressed-observable.js +1 -1
  293. package/esm5/pipes/filter/filter.module.js +1 -1
  294. package/esm5/pipes/mapper/mapper.module.js +1 -1
  295. package/esm5/services/focus-visible.service.js +1 -1
  296. package/esm5/services/hovered.service.js +2 -2
  297. package/esm5/services/index.js +3 -2
  298. package/esm5/services/obscured.service.js +1 -1
  299. package/esm5/services/resize.service.js +1 -1
  300. package/esm5/services/static-request.service.js +1 -1
  301. package/esm5/services/zoom.service.js +65 -0
  302. package/esm5/tokens/active-element.js +5 -5
  303. package/esm5/tokens/index.js +4 -3
  304. package/esm5/tokens/is-android.js +1 -1
  305. package/esm5/tokens/zoom-options.js +7 -0
  306. package/esm5/types/index.js +1 -1
  307. package/esm5/utils/dom/contains-or-after.js +2 -4
  308. package/esm5/utils/dom/get-element-obscurers.js +1 -1
  309. package/esm5/utils/dom/index.js +2 -2
  310. package/esm5/utils/focus/get-closest-keyboard-focusable.js +1 -1
  311. package/esm5/utils/miscellaneous/distance-between-touches.js +5 -0
  312. package/esm5/utils/miscellaneous/fallback-value.js +2 -1
  313. package/esm5/utils/miscellaneous/index.js +3 -2
  314. package/fesm2015/taiga-ui-cdk-abstract.js +47 -12
  315. package/fesm2015/taiga-ui-cdk-abstract.js.map +1 -1
  316. package/fesm2015/taiga-ui-cdk-components-dialog-host.js +1 -1
  317. package/fesm2015/taiga-ui-cdk-components-dialog-host.js.map +1 -1
  318. package/fesm2015/taiga-ui-cdk-components-portal-host.js +1 -1
  319. package/fesm2015/taiga-ui-cdk-components-portal-host.js.map +1 -1
  320. package/fesm2015/taiga-ui-cdk-constants.js.map +1 -1
  321. package/fesm2015/taiga-ui-cdk-date-time.js +43 -43
  322. package/fesm2015/taiga-ui-cdk-date-time.js.map +1 -1
  323. package/fesm2015/taiga-ui-cdk-directives-active-zone.js.map +1 -1
  324. package/fesm2015/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
  325. package/fesm2015/taiga-ui-cdk-directives-autofilled.js.map +1 -1
  326. package/fesm2015/taiga-ui-cdk-directives-checked.js.map +1 -1
  327. package/fesm2015/taiga-ui-cdk-directives-drag.js.map +1 -1
  328. package/fesm2015/taiga-ui-cdk-directives-droppable.js.map +1 -1
  329. package/fesm2015/taiga-ui-cdk-directives-element.js.map +1 -1
  330. package/fesm2015/taiga-ui-cdk-directives-focus-trap.js.map +1 -1
  331. package/fesm2015/taiga-ui-cdk-directives-focus-visible.js.map +1 -1
  332. package/fesm2015/taiga-ui-cdk-directives-focusable.js.map +1 -1
  333. package/fesm2015/taiga-ui-cdk-directives-focused.js.map +1 -1
  334. package/fesm2015/taiga-ui-cdk-directives-for.js.map +1 -1
  335. package/fesm2015/taiga-ui-cdk-directives-high-dpi.js.map +1 -1
  336. package/fesm2015/taiga-ui-cdk-directives-hovered.js.map +1 -1
  337. package/fesm2015/taiga-ui-cdk-directives-input-mode.js.map +1 -1
  338. package/fesm2015/taiga-ui-cdk-directives-let.js.map +1 -1
  339. package/fesm2015/taiga-ui-cdk-directives-media.js.map +1 -1
  340. package/fesm2015/taiga-ui-cdk-directives-obscured.js.map +1 -1
  341. package/fesm2015/taiga-ui-cdk-directives-overscroll.js.map +1 -1
  342. package/fesm2015/taiga-ui-cdk-directives-pan.js.map +1 -1
  343. package/fesm2015/taiga-ui-cdk-directives-pressed.js.map +1 -1
  344. package/fesm2015/taiga-ui-cdk-directives-prevent-default.js.map +1 -1
  345. package/fesm2015/taiga-ui-cdk-directives-repeat-times.js.map +1 -1
  346. package/fesm2015/taiga-ui-cdk-directives-resize.js.map +1 -1
  347. package/fesm2015/taiga-ui-cdk-directives-swipe.js.map +1 -1
  348. package/fesm2015/taiga-ui-cdk-directives-validator.js.map +1 -1
  349. package/fesm2015/taiga-ui-cdk-directives-zoom.js +43 -0
  350. package/fesm2015/taiga-ui-cdk-directives-zoom.js.map +1 -0
  351. package/fesm2015/taiga-ui-cdk-directives.js +5 -4
  352. package/fesm2015/taiga-ui-cdk-directives.js.map +1 -1
  353. package/fesm2015/taiga-ui-cdk-enums.js +11 -11
  354. package/fesm2015/taiga-ui-cdk-enums.js.map +1 -1
  355. package/fesm2015/taiga-ui-cdk-observables.js.map +1 -1
  356. package/fesm2015/taiga-ui-cdk-pipes-filter.js.map +1 -1
  357. package/fesm2015/taiga-ui-cdk-pipes-mapper.js.map +1 -1
  358. package/fesm2015/taiga-ui-cdk-services.js +81 -33
  359. package/fesm2015/taiga-ui-cdk-services.js.map +1 -1
  360. package/fesm2015/taiga-ui-cdk-tokens.js +15 -10
  361. package/fesm2015/taiga-ui-cdk-tokens.js.map +1 -1
  362. package/fesm2015/taiga-ui-cdk-utils-dom.js +8 -10
  363. package/fesm2015/taiga-ui-cdk-utils-dom.js.map +1 -1
  364. package/fesm2015/taiga-ui-cdk-utils-focus.js.map +1 -1
  365. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js +15 -10
  366. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
  367. package/fesm5/taiga-ui-cdk-abstract.js +56 -12
  368. package/fesm5/taiga-ui-cdk-abstract.js.map +1 -1
  369. package/fesm5/taiga-ui-cdk-components-dialog-host.js +1 -1
  370. package/fesm5/taiga-ui-cdk-components-dialog-host.js.map +1 -1
  371. package/fesm5/taiga-ui-cdk-components-portal-host.js +1 -1
  372. package/fesm5/taiga-ui-cdk-components-portal-host.js.map +1 -1
  373. package/fesm5/taiga-ui-cdk-constants.js.map +1 -1
  374. package/fesm5/taiga-ui-cdk-date-time.js +43 -43
  375. package/fesm5/taiga-ui-cdk-date-time.js.map +1 -1
  376. package/fesm5/taiga-ui-cdk-directives-active-zone.js.map +1 -1
  377. package/fesm5/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
  378. package/fesm5/taiga-ui-cdk-directives-autofilled.js.map +1 -1
  379. package/fesm5/taiga-ui-cdk-directives-checked.js.map +1 -1
  380. package/fesm5/taiga-ui-cdk-directives-drag.js.map +1 -1
  381. package/fesm5/taiga-ui-cdk-directives-droppable.js.map +1 -1
  382. package/fesm5/taiga-ui-cdk-directives-element.js.map +1 -1
  383. package/fesm5/taiga-ui-cdk-directives-focus-trap.js.map +1 -1
  384. package/fesm5/taiga-ui-cdk-directives-focus-visible.js.map +1 -1
  385. package/fesm5/taiga-ui-cdk-directives-focusable.js.map +1 -1
  386. package/fesm5/taiga-ui-cdk-directives-focused.js.map +1 -1
  387. package/fesm5/taiga-ui-cdk-directives-for.js.map +1 -1
  388. package/fesm5/taiga-ui-cdk-directives-high-dpi.js.map +1 -1
  389. package/fesm5/taiga-ui-cdk-directives-hovered.js.map +1 -1
  390. package/fesm5/taiga-ui-cdk-directives-input-mode.js.map +1 -1
  391. package/fesm5/taiga-ui-cdk-directives-let.js.map +1 -1
  392. package/fesm5/taiga-ui-cdk-directives-media.js.map +1 -1
  393. package/fesm5/taiga-ui-cdk-directives-obscured.js.map +1 -1
  394. package/fesm5/taiga-ui-cdk-directives-overscroll.js.map +1 -1
  395. package/fesm5/taiga-ui-cdk-directives-pan.js.map +1 -1
  396. package/fesm5/taiga-ui-cdk-directives-pressed.js.map +1 -1
  397. package/fesm5/taiga-ui-cdk-directives-prevent-default.js.map +1 -1
  398. package/fesm5/taiga-ui-cdk-directives-repeat-times.js.map +1 -1
  399. package/fesm5/taiga-ui-cdk-directives-resize.js.map +1 -1
  400. package/fesm5/taiga-ui-cdk-directives-swipe.js.map +1 -1
  401. package/fesm5/taiga-ui-cdk-directives-validator.js.map +1 -1
  402. package/fesm5/taiga-ui-cdk-directives-zoom.js +47 -0
  403. package/fesm5/taiga-ui-cdk-directives-zoom.js.map +1 -0
  404. package/fesm5/taiga-ui-cdk-directives.js +5 -4
  405. package/fesm5/taiga-ui-cdk-directives.js.map +1 -1
  406. package/fesm5/taiga-ui-cdk-enums.js +11 -11
  407. package/fesm5/taiga-ui-cdk-enums.js.map +1 -1
  408. package/fesm5/taiga-ui-cdk-observables.js.map +1 -1
  409. package/fesm5/taiga-ui-cdk-pipes-filter.js.map +1 -1
  410. package/fesm5/taiga-ui-cdk-pipes-mapper.js.map +1 -1
  411. package/fesm5/taiga-ui-cdk-services.js +101 -43
  412. package/fesm5/taiga-ui-cdk-services.js.map +1 -1
  413. package/fesm5/taiga-ui-cdk-tokens.js +16 -10
  414. package/fesm5/taiga-ui-cdk-tokens.js.map +1 -1
  415. package/fesm5/taiga-ui-cdk-utils-dom.js +8 -10
  416. package/fesm5/taiga-ui-cdk-utils-dom.js.map +1 -1
  417. package/fesm5/taiga-ui-cdk-utils-focus.js.map +1 -1
  418. package/fesm5/taiga-ui-cdk-utils-miscellaneous.js +16 -10
  419. package/fesm5/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
  420. package/interfaces/index.d.ts +2 -1
  421. package/interfaces/taiga-ui-cdk-interfaces.metadata.json +1 -1
  422. package/interfaces/zoom.d.ts +9 -0
  423. package/observables/taiga-ui-cdk-observables.metadata.json +1 -1
  424. package/package.json +3 -3
  425. package/pipes/filter/taiga-ui-cdk-pipes-filter.metadata.json +1 -1
  426. package/pipes/mapper/taiga-ui-cdk-pipes-mapper.metadata.json +1 -1
  427. package/services/index.d.ts +2 -1
  428. package/services/taiga-ui-cdk-services.metadata.json +1 -1
  429. package/services/zoom.service.d.ts +6 -0
  430. package/tokens/index.d.ts +3 -2
  431. package/tokens/taiga-ui-cdk-tokens.metadata.json +1 -1
  432. package/tokens/zoom-options.d.ts +3 -0
  433. package/types/index.d.ts +1 -1
  434. package/types/taiga-ui-cdk-types.metadata.json +1 -1
  435. package/utils/dom/index.d.ts +1 -1
  436. package/utils/dom/taiga-ui-cdk-utils-dom.metadata.json +1 -1
  437. package/utils/miscellaneous/distance-between-touches.d.ts +1 -0
  438. package/utils/miscellaneous/fallback-value.d.ts +1 -0
  439. package/utils/miscellaneous/index.d.ts +2 -1
  440. package/utils/miscellaneous/taiga-ui-cdk-utils-miscellaneous.metadata.json +1 -1
@@ -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 */
@@ -186,6 +184,13 @@ function isCurrentTarget(_a) {
186
184
  return target === currentTarget;
187
185
  }
188
186
 
187
+ /**
188
+ * Checks if an app is running inside <iframe /> tag
189
+ */
190
+ function isInsideIframe(windowRef) {
191
+ return windowRef.parent !== windowRef;
192
+ }
193
+
189
194
  /**
190
195
  * Checks if node is inside a specific selector
191
196
  *
@@ -200,13 +205,6 @@ function isNodeIn(node, selector) {
200
205
  !!getClosestElement(node, selector);
201
206
  }
202
207
 
203
- /**
204
- * Checks if an app is running inside <iframe /> tag
205
- */
206
- function isInsideIframe(windowRef) {
207
- return windowRef.parent !== windowRef;
208
- }
209
-
210
208
  /**
211
209
  * Generated bundle index. Do not edit.
212
210
  */
@@ -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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"}
@@ -1,6 +1,11 @@
1
1
  import { tuiAssert } from '@taiga-ui/cdk/classes';
2
2
  import { FormArray, FormGroup } from '@angular/forms';
3
3
 
4
+ function distanceBetweenTouches(_a) {
5
+ var touches = _a.touches;
6
+ return Math.hypot(touches[0].clientX - touches[1].clientX, touches[0].clientY - touches[1].clientY);
7
+ }
8
+
4
9
  function easeInOutQuad(t) {
5
10
  tuiAssert.assert(0 <= t && t <= 1, 'Input must be between 0 and 1 inclusive.');
6
11
  return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;
@@ -14,6 +19,7 @@ function isPresent(value) {
14
19
  * If the value is null or undefined, returns default value
15
20
  * @param value
16
21
  * @param fallback alternative fallback
22
+ * @deprecated use nullish coalescing operator
17
23
  */
18
24
  function fallbackValue(value, fallback) {
19
25
  return isPresent(value) ? value : fallback;
@@ -43,6 +49,15 @@ function getOriginalArrayFromQueryList(queryList) {
43
49
  return array;
44
50
  }
45
51
 
52
+ function getSwipeDirection(deltaX, deltaY) {
53
+ if (Math.abs(deltaY) > Math.abs(deltaX)) {
54
+ return deltaY > 0 ? 'top' : 'bottom';
55
+ }
56
+ else {
57
+ return deltaX > 0 ? 'left' : 'right';
58
+ }
59
+ }
60
+
46
61
  function identity(item) {
47
62
  return item;
48
63
  }
@@ -97,18 +112,9 @@ function uniqBy(array, key) {
97
112
  .values());
98
113
  }
99
114
 
100
- function getSwipeDirection(deltaX, deltaY) {
101
- if (Math.abs(deltaY) > Math.abs(deltaX)) {
102
- return deltaY > 0 ? 'top' : 'bottom';
103
- }
104
- else {
105
- return deltaX > 0 ? 'left' : 'right';
106
- }
107
- }
108
-
109
115
  /**
110
116
  * Generated bundle index. Do not edit.
111
117
  */
112
118
 
113
- export { easeInOutQuad, fallbackValue, flatLength, getOriginalArrayFromQueryList, getSwipeDirection, identity, isElementEditable, isNumber, isPresent, markControlAsTouchedAndValidate, nullableSame, uniqBy };
119
+ export { distanceBetweenTouches, easeInOutQuad, fallbackValue, flatLength, getOriginalArrayFromQueryList, getSwipeDirection, identity, isElementEditable, isNumber, isPresent, markControlAsTouchedAndValidate, nullableSame, uniqBy };
114
120
  //# sourceMappingURL=taiga-ui-cdk-utils-miscellaneous.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-miscellaneous.js","sources":["ng://@taiga-ui/cdk/utils/miscellaneous/ease-in-out-quad.ts","ng://@taiga-ui/cdk/utils/miscellaneous/is-present.ts","ng://@taiga-ui/cdk/utils/miscellaneous/fallback-value.ts","ng://@taiga-ui/cdk/utils/miscellaneous/flat-length.ts","ng://@taiga-ui/cdk/utils/miscellaneous/get-original-array-from-query-list.ts","ng://@taiga-ui/cdk/utils/miscellaneous/identity.ts","ng://@taiga-ui/cdk/utils/miscellaneous/is-element-editable.ts","ng://@taiga-ui/cdk/utils/miscellaneous/is-number.ts","ng://@taiga-ui/cdk/utils/miscellaneous/mark-control-as-touched-and-validate.ts","ng://@taiga-ui/cdk/utils/miscellaneous/nullable-same.ts","ng://@taiga-ui/cdk/utils/miscellaneous/uniq-by.ts","ng://@taiga-ui/cdk/utils/miscellaneous/get-swipe-direction.ts","ng://@taiga-ui/cdk/utils/miscellaneous/taiga-ui-cdk-utils-miscellaneous.ts"],"sourcesContent":["import {tuiAssert} from '@taiga-ui/cdk/classes';\n\nexport function easeInOutQuad(t: number): number {\n tuiAssert.assert(0 <= t && t <= 1, 'Input must be between 0 and 1 inclusive.');\n\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n}\n","export function isPresent<T>(value?: T | null): value is T {\n return value !== null && value !== undefined;\n}\n","import {isPresent} from './is-present';\n\n/**\n * If the value is null or undefined, returns default value\n * @param value\n * @param fallback alternative fallback\n */\nexport function fallbackValue<T>(value: T | null | undefined, fallback: T): T {\n return isPresent(value) ? value : fallback;\n}\n","/**\n * Flattens two dimensional array and calculates resulting length\n *\n * @param array twi dimensional array\n */\nexport function flatLength(array: ReadonlyArray<ReadonlyArray<unknown>>): number {\n return array.reduce((count, section) => count + section.length, 0);\n}\n","import {QueryList} from '@angular/core';\n\n/**\n * Extracts original array from {@link QueryList} rather than\n * creating a copy like {@link QueryList.toArray} does.\n * @param queryList\n * @returns original array from {@link QueryList}.\n */\nexport function getOriginalArrayFromQueryList<T>(\n queryList: QueryList<T>,\n): ReadonlyArray<T> {\n let array: ReadonlyArray<T> = [];\n\n queryList.find((_item, _index, originalArray) => {\n array = originalArray;\n\n return true;\n });\n\n return array;\n}\n","export function identity<T>(item: T): T {\n return item;\n}\n","export function isElementEditable(element: HTMLElement): boolean {\n // TODO: iframe warning\n return (\n (element instanceof HTMLInputElement && !element.readOnly) ||\n (element instanceof HTMLTextAreaElement && !element.readOnly) ||\n element.isContentEditable\n );\n}\n","export function isNumber(value: unknown): value is number {\n return typeof value === 'number';\n}\n","import {AbstractControl, FormArray, FormGroup} from '@angular/forms';\n\nexport function markControlAsTouchedAndValidate(control: AbstractControl) {\n if (control instanceof FormArray) {\n control.controls.forEach(nestedControl => {\n markControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n if (control instanceof FormGroup) {\n Object.values(control.controls).forEach(nestedControl => {\n markControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n control.markAsTouched();\n control.updateValueAndValidity();\n}\n","import {TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\n/**\n * Checks identity for nullable elements.\n *\n * @param a element a\n * @param b element b\n * @param handler called if both elements are not null\n * @return true if either both are null or they pass identity handler\n */\nexport function nullableSame<T>(\n a: T | null,\n b: T | null,\n handler: TuiIdentityMatcher<T>,\n): boolean {\n if (a === null) {\n return b === null;\n }\n\n if (b === null) {\n return false;\n }\n\n return handler(a, b);\n}\n","export function uniqBy<T extends object>(\n array: ReadonlyArray<T>,\n key: keyof T,\n): ReadonlyArray<T> {\n return Array.from(\n array\n .reduce(\n (map, item) => (map.has(item[key]) ? map : map.set(item[key], item)),\n new Map<T[keyof T], T>(),\n )\n .values(),\n );\n}\n","import {TuiSwipeDirection} from '@taiga-ui/cdk/interfaces';\n\nexport function getSwipeDirection(deltaX: number, deltaY: number): TuiSwipeDirection {\n if (Math.abs(deltaY) > Math.abs(deltaX)) {\n return deltaY > 0 ? 'top' : 'bottom';\n } else {\n return deltaX > 0 ? 'left' : 'right';\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-utils-miscellaneous.js","sources":["ng://@taiga-ui/cdk/utils/miscellaneous/distance-between-touches.ts","ng://@taiga-ui/cdk/utils/miscellaneous/ease-in-out-quad.ts","ng://@taiga-ui/cdk/utils/miscellaneous/is-present.ts","ng://@taiga-ui/cdk/utils/miscellaneous/fallback-value.ts","ng://@taiga-ui/cdk/utils/miscellaneous/flat-length.ts","ng://@taiga-ui/cdk/utils/miscellaneous/get-original-array-from-query-list.ts","ng://@taiga-ui/cdk/utils/miscellaneous/get-swipe-direction.ts","ng://@taiga-ui/cdk/utils/miscellaneous/identity.ts","ng://@taiga-ui/cdk/utils/miscellaneous/is-element-editable.ts","ng://@taiga-ui/cdk/utils/miscellaneous/is-number.ts","ng://@taiga-ui/cdk/utils/miscellaneous/mark-control-as-touched-and-validate.ts","ng://@taiga-ui/cdk/utils/miscellaneous/nullable-same.ts","ng://@taiga-ui/cdk/utils/miscellaneous/uniq-by.ts","ng://@taiga-ui/cdk/utils/miscellaneous/taiga-ui-cdk-utils-miscellaneous.ts"],"sourcesContent":["export function distanceBetweenTouches({touches}: TouchEvent): number {\n return Math.hypot(\n touches[0].clientX - touches[1].clientX,\n touches[0].clientY - touches[1].clientY,\n );\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\nexport function easeInOutQuad(t: number): number {\n tuiAssert.assert(0 <= t && t <= 1, 'Input must be between 0 and 1 inclusive.');\n\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n}\n","export function isPresent<T>(value?: T | null): value is T {\n return value !== null && value !== undefined;\n}\n","import {isPresent} from './is-present';\n\n/**\n * If the value is null or undefined, returns default value\n * @param value\n * @param fallback alternative fallback\n * @deprecated use nullish coalescing operator\n */\nexport function fallbackValue<T>(value: T | null | undefined, fallback: T): T {\n return isPresent(value) ? value : fallback;\n}\n","/**\n * Flattens two dimensional array and calculates resulting length\n *\n * @param array twi dimensional array\n */\nexport function flatLength(array: ReadonlyArray<ReadonlyArray<unknown>>): number {\n return array.reduce((count, section) => count + section.length, 0);\n}\n","import {QueryList} from '@angular/core';\n\n/**\n * Extracts original array from {@link QueryList} rather than\n * creating a copy like {@link QueryList.toArray} does.\n * @param queryList\n * @returns original array from {@link QueryList}.\n */\nexport function getOriginalArrayFromQueryList<T>(\n queryList: QueryList<T>,\n): ReadonlyArray<T> {\n let array: ReadonlyArray<T> = [];\n\n queryList.find((_item, _index, originalArray) => {\n array = originalArray;\n\n return true;\n });\n\n return array;\n}\n","import {TuiSwipeDirection} from '@taiga-ui/cdk/interfaces';\n\nexport function getSwipeDirection(deltaX: number, deltaY: number): TuiSwipeDirection {\n if (Math.abs(deltaY) > Math.abs(deltaX)) {\n return deltaY > 0 ? 'top' : 'bottom';\n } else {\n return deltaX > 0 ? 'left' : 'right';\n }\n}\n","export function identity<T>(item: T): T {\n return item;\n}\n","export function isElementEditable(element: HTMLElement): boolean {\n // TODO: iframe warning\n return (\n (element instanceof HTMLInputElement && !element.readOnly) ||\n (element instanceof HTMLTextAreaElement && !element.readOnly) ||\n element.isContentEditable\n );\n}\n","export function isNumber(value: unknown): value is number {\n return typeof value === 'number';\n}\n","import {AbstractControl, FormArray, FormGroup} from '@angular/forms';\n\nexport function markControlAsTouchedAndValidate(control: AbstractControl) {\n if (control instanceof FormArray) {\n control.controls.forEach(nestedControl => {\n markControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n if (control instanceof FormGroup) {\n Object.values(control.controls).forEach(nestedControl => {\n markControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n control.markAsTouched();\n control.updateValueAndValidity();\n}\n","import {TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\n/**\n * Checks identity for nullable elements.\n *\n * @param a element a\n * @param b element b\n * @param handler called if both elements are not null\n * @return true if either both are null or they pass identity handler\n */\nexport function nullableSame<T>(\n a: T | null,\n b: T | null,\n handler: TuiIdentityMatcher<T>,\n): boolean {\n if (a === null) {\n return b === null;\n }\n\n if (b === null) {\n return false;\n }\n\n return handler(a, b);\n}\n","export function uniqBy<T extends object>(\n array: ReadonlyArray<T>,\n key: keyof T,\n): ReadonlyArray<T> {\n return Array.from(\n array\n .reduce(\n (map, item) => (map.has(item[key]) ? map : map.set(item[key], item)),\n new Map<T[keyof T], T>(),\n )\n .values(),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export * from './context-with-implicit';
5
5
  export * from './day-like';
6
6
  export * from './focusable-element-accessor';
7
7
  export * from './month-like';
8
+ export * from './swipe';
8
9
  export * from './time-like';
9
10
  export * from './year-like';
10
- export * from './swipe';
11
+ export * from './zoom';
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"TuiAriaDialogContext":{"__symbolic":"interface"},"TuiBaseDialog":{"__symbolic":"interface"},"TuiBaseDialogContext":{"__symbolic":"interface"},"TuiContextWithImplicit":{"__symbolic":"interface"},"TuiDayLike":{"__symbolic":"interface"},"TuiNativeFocusableElement":{"__symbolic":"interface"},"TuiFocusableElementAccessor":{"__symbolic":"interface"},"TuiMonthLike":{"__symbolic":"interface"},"TuiTimeLike":{"__symbolic":"interface"},"TuiYearLike":{"__symbolic":"interface"},"TuiSwipe":{"__symbolic":"interface"},"TuiSwipeDirection":{"__symbolic":"interface"},"TuiSwipeOptions":{"__symbolic":"interface"}},"origins":{"TuiAriaDialogContext":"./aria-dialog-context","TuiBaseDialog":"./base-dialog","TuiBaseDialogContext":"./base-dialog-context","TuiContextWithImplicit":"./context-with-implicit","TuiDayLike":"./day-like","TuiNativeFocusableElement":"./focusable-element-accessor","TuiFocusableElementAccessor":"./focusable-element-accessor","TuiMonthLike":"./month-like","TuiTimeLike":"./time-like","TuiYearLike":"./year-like","TuiSwipe":"./swipe","TuiSwipeDirection":"./swipe","TuiSwipeOptions":"./swipe"},"importAs":"@taiga-ui/cdk/interfaces"}
1
+ {"__symbolic":"module","version":4,"metadata":{"TuiAriaDialogContext":{"__symbolic":"interface"},"TuiBaseDialog":{"__symbolic":"interface"},"TuiBaseDialogContext":{"__symbolic":"interface"},"TuiContextWithImplicit":{"__symbolic":"interface"},"TuiDayLike":{"__symbolic":"interface"},"TuiNativeFocusableElement":{"__symbolic":"interface"},"TuiFocusableElementAccessor":{"__symbolic":"interface"},"TuiMonthLike":{"__symbolic":"interface"},"TuiSwipe":{"__symbolic":"interface"},"TuiSwipeDirection":{"__symbolic":"interface"},"TuiSwipeOptions":{"__symbolic":"interface"},"TuiTimeLike":{"__symbolic":"interface"},"TuiYearLike":{"__symbolic":"interface"},"TuiZoom":{"__symbolic":"interface"},"TuiZoomOptions":{"__symbolic":"interface"}},"origins":{"TuiAriaDialogContext":"./aria-dialog-context","TuiBaseDialog":"./base-dialog","TuiBaseDialogContext":"./base-dialog-context","TuiContextWithImplicit":"./context-with-implicit","TuiDayLike":"./day-like","TuiNativeFocusableElement":"./focusable-element-accessor","TuiFocusableElementAccessor":"./focusable-element-accessor","TuiMonthLike":"./month-like","TuiSwipe":"./swipe","TuiSwipeDirection":"./swipe","TuiSwipeOptions":"./swipe","TuiTimeLike":"./time-like","TuiYearLike":"./year-like","TuiZoom":"./zoom","TuiZoomOptions":"./zoom"},"importAs":"@taiga-ui/cdk/interfaces"}
@@ -0,0 +1,9 @@
1
+ export interface TuiZoom {
2
+ readonly clientX: number;
3
+ readonly clientY: number;
4
+ readonly delta: number;
5
+ readonly event: WheelEvent | TouchEvent;
6
+ }
7
+ export interface TuiZoomOptions {
8
+ readonly wheelSensitivity: number;
9
+ }
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"TuiDragStage":{"Start":0,"Continues":1,"End":2},"TuiDragState":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":13,"character":32,"context":{"typeName":"TuiDragStage"},"module":"./drag-and-drop-from"},{"__symbolic":"error","message":"Could not resolve type","line":13,"character":62,"context":{"typeName":"MouseEvent"},"module":"./drag-and-drop-from"}]}]}},"dragAndDropFrom":{"__symbolic":"function"},"focusVisibleObservable":{"__symbolic":"function"},"tuiIsAlive":{"__symbolic":"function","parameters":["lifespan"],"defaults":[0],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs","name":"pipe","line":7,"character":11},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"switchMapTo","line":8,"character":8},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs","name":"timer","line":8,"character":20},"arguments":[{"__symbolic":"reference","name":"lifespan"}]},"member":"pipe"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"mapTo","line":8,"character":41},"arguments":[false]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"startWith","line":8,"character":55},"arguments":[true]}]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"distinctUntilChanged","line":9,"character":8}}]}},"itemsQueryListObservable":{"__symbolic":"function","parameters":["queryList"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"queryList"},"member":"changes"},"member":"pipe"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"map","line":12,"character":8},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":12,"character":12,"module":"./items-query-list-observable"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"startWith","line":13,"character":8},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@taiga-ui/cdk/utils/miscellaneous","name":"getOriginalArrayFromQueryList","line":13,"character":18},"arguments":[{"__symbolic":"reference","name":"queryList"}]}]}]}},"mouseDragFinishFrom":{"__symbolic":"function","parameters":["target"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs","name":"merge","line":11,"character":11},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","name":"typedFromEvent"},"arguments":[{"__symbolic":"reference","name":"target"},"mouseup"]},{"__symbolic":"call","expression":{"__symbolic":"reference","name":"typedFromEvent"},"arguments":[{"__symbolic":"reference","name":"target"},"dragend"]}]}},"mustBePresent":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"map","line":5,"character":11},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":5,"character":15,"module":"./must-be-present"}]}},"TuiPressedObservableOptions":{"__symbolic":"interface"},"pressedObservable":{"__symbolic":"function"},"preventDefault":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"tap","line":4,"character":11},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":4,"character":15,"module":"./prevent-default"}]}},"tuiReplayedValueChangesFrom":{"__symbolic":"function","parameters":["control"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"rxjs","name":"Observable","line":10,"character":15},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":10,"character":26,"module":"./replay-control-value-changes"}]}},"stopPropagation":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"tap","line":4,"character":11},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":4,"character":15,"module":"./stop-propagation"}]}},"typedFromEvent":{"__symbolic":"function","parameters":["target","event","options"],"defaults":[null,null,{}],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs","name":"fromEvent","line":36,"character":11},"arguments":[{"__symbolic":"reference","name":"target"},{"__symbolic":"reference","name":"event"},{"__symbolic":"reference","name":"options"}]}},"watch":{"__symbolic":"function","parameters":["changeDetectorRef"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"tap","line":7,"character":11},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":7,"character":15,"module":"./watch"}]}},"tuiZonefull":{"__symbolic":"function","parameters":["ngZone"],"value":{"__symbolic":"error","message":"Lambda not supported","line":4,"character":11,"module":"./zone-free"}},"tuiZonefree":{"__symbolic":"function","parameters":["ngZone"],"value":{"__symbolic":"error","message":"Lambda not supported","line":15,"character":11,"module":"./zone-free"}},"tuiZoneOptimized":{"__symbolic":"function","parameters":["ngZone"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs","name":"pipe","line":22,"character":11},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","name":"tuiZonefree"},"arguments":[{"__symbolic":"reference","name":"ngZone"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","name":"tuiZonefull"},"arguments":[{"__symbolic":"reference","name":"ngZone"}]}]}}},"origins":{"TuiDragStage":"./drag-and-drop-from","TuiDragState":"./drag-and-drop-from","dragAndDropFrom":"./drag-and-drop-from","focusVisibleObservable":"./focus-visible-observable","tuiIsAlive":"./is-alive","itemsQueryListObservable":"./items-query-list-observable","mouseDragFinishFrom":"./mouse-drag-finish-from","mustBePresent":"./must-be-present","TuiPressedObservableOptions":"./pressed-observable","pressedObservable":"./pressed-observable","preventDefault":"./prevent-default","tuiReplayedValueChangesFrom":"./replay-control-value-changes","stopPropagation":"./stop-propagation","typedFromEvent":"./typed-from-event","watch":"./watch","tuiZonefull":"./zone-free","tuiZonefree":"./zone-free","tuiZoneOptimized":"./zone-free"},"importAs":"@taiga-ui/cdk/observables"}
1
+ {"__symbolic":"module","version":4,"metadata":{"TuiDragStage":{"Start":0,"Continues":1,"End":2},"TuiDragState":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":14,"character":32,"context":{"typeName":"TuiDragStage"},"module":"./drag-and-drop-from"},{"__symbolic":"error","message":"Could not resolve type","line":14,"character":62,"context":{"typeName":"MouseEvent"},"module":"./drag-and-drop-from"}]}]}},"dragAndDropFrom":{"__symbolic":"function"},"focusVisibleObservable":{"__symbolic":"function"},"tuiIsAlive":{"__symbolic":"function","parameters":["lifespan"],"defaults":[0],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs","name":"pipe","line":7,"character":11},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"switchMapTo","line":8,"character":8},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs","name":"timer","line":8,"character":20},"arguments":[{"__symbolic":"reference","name":"lifespan"}]},"member":"pipe"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"mapTo","line":8,"character":41},"arguments":[false]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"startWith","line":8,"character":55},"arguments":[true]}]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"distinctUntilChanged","line":9,"character":8}}]}},"itemsQueryListObservable":{"__symbolic":"function","parameters":["queryList"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"queryList"},"member":"changes"},"member":"pipe"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"map","line":12,"character":8},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":12,"character":12,"module":"./items-query-list-observable"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"startWith","line":13,"character":8},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@taiga-ui/cdk/utils/miscellaneous","name":"getOriginalArrayFromQueryList","line":13,"character":18},"arguments":[{"__symbolic":"reference","name":"queryList"}]}]}]}},"mouseDragFinishFrom":{"__symbolic":"function","parameters":["target"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs","name":"merge","line":12,"character":11},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","name":"typedFromEvent"},"arguments":[{"__symbolic":"reference","name":"target"},"mouseup"]},{"__symbolic":"call","expression":{"__symbolic":"reference","name":"typedFromEvent"},"arguments":[{"__symbolic":"reference","name":"target"},"dragend"]}]}},"mustBePresent":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"map","line":5,"character":11},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":5,"character":15,"module":"./must-be-present"}]}},"TuiPressedObservableOptions":{"__symbolic":"interface"},"pressedObservable":{"__symbolic":"function"},"preventDefault":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"tap","line":4,"character":11},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":4,"character":15,"module":"./prevent-default"}]}},"tuiReplayedValueChangesFrom":{"__symbolic":"function","parameters":["control"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"rxjs","name":"Observable","line":10,"character":15},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":10,"character":26,"module":"./replay-control-value-changes"}]}},"stopPropagation":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"tap","line":4,"character":11},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":4,"character":15,"module":"./stop-propagation"}]}},"typedFromEvent":{"__symbolic":"function","parameters":["target","event","options"],"defaults":[null,null,{}],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs","name":"fromEvent","line":36,"character":11},"arguments":[{"__symbolic":"reference","name":"target"},{"__symbolic":"reference","name":"event"},{"__symbolic":"reference","name":"options"}]}},"watch":{"__symbolic":"function","parameters":["changeDetectorRef"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"tap","line":7,"character":11},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":7,"character":15,"module":"./watch"}]}},"tuiZonefull":{"__symbolic":"function","parameters":["ngZone"],"value":{"__symbolic":"error","message":"Lambda not supported","line":4,"character":11,"module":"./zone-free"}},"tuiZonefree":{"__symbolic":"function","parameters":["ngZone"],"value":{"__symbolic":"error","message":"Lambda not supported","line":15,"character":11,"module":"./zone-free"}},"tuiZoneOptimized":{"__symbolic":"function","parameters":["ngZone"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs","name":"pipe","line":22,"character":11},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","name":"tuiZonefree"},"arguments":[{"__symbolic":"reference","name":"ngZone"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","name":"tuiZonefull"},"arguments":[{"__symbolic":"reference","name":"ngZone"}]}]}}},"origins":{"TuiDragStage":"./drag-and-drop-from","TuiDragState":"./drag-and-drop-from","dragAndDropFrom":"./drag-and-drop-from","focusVisibleObservable":"./focus-visible-observable","tuiIsAlive":"./is-alive","itemsQueryListObservable":"./items-query-list-observable","mouseDragFinishFrom":"./mouse-drag-finish-from","mustBePresent":"./must-be-present","TuiPressedObservableOptions":"./pressed-observable","pressedObservable":"./pressed-observable","preventDefault":"./prevent-default","tuiReplayedValueChangesFrom":"./replay-control-value-changes","stopPropagation":"./stop-propagation","typedFromEvent":"./typed-from-event","watch":"./watch","tuiZonefull":"./zone-free","tuiZonefree":"./zone-free","tuiZoneOptimized":"./zone-free"},"importAs":"@taiga-ui/cdk/observables"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/cdk",
3
- "version": "2.21.0",
3
+ "version": "2.25.0",
4
4
  "description": "Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance",
5
5
  "keywords": [
6
6
  "angular",
@@ -18,8 +18,8 @@
18
18
  "@ng-web-apis/common": "1.12.1",
19
19
  "@ng-web-apis/mutation-observer": "1.1.0",
20
20
  "@ng-web-apis/resize-observer": "1.0.3",
21
- "@tinkoff/ng-event-plugins": "2.3.0",
22
- "@tinkoff/ng-polymorpheus": "3.1.9",
21
+ "@tinkoff/ng-event-plugins": "2.4.0",
22
+ "@tinkoff/ng-polymorpheus": "3.1.12",
23
23
  "@types/resize-observer-browser": "0.1.5",
24
24
  "tslib": "^1.10.0"
25
25
  },
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"TuiFilterPipeModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":3,"character":1},"arguments":[{"exports":[{"__symbolic":"reference","name":"TuiFilterPipe"}],"declarations":[{"__symbolic":"reference","name":"TuiFilterPipe"}]}]}],"members":{}},"TuiFilterPipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":3,"character":1},"arguments":[{"name":"tuiFilter"}]}],"members":{"transform":[{"__symbolic":"method"}]}}},"origins":{"TuiFilterPipeModule":"./filter.module","TuiFilterPipe":"./filter.pipe"},"importAs":"@taiga-ui/cdk/pipes/filter"}
1
+ {"__symbolic":"module","version":4,"metadata":{"TuiFilterPipeModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"exports":[{"__symbolic":"reference","name":"TuiFilterPipe"}],"declarations":[{"__symbolic":"reference","name":"TuiFilterPipe"}]}]}],"members":{}},"TuiFilterPipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":3,"character":1},"arguments":[{"name":"tuiFilter"}]}],"members":{"transform":[{"__symbolic":"method"}]}}},"origins":{"TuiFilterPipeModule":"./filter.module","TuiFilterPipe":"./filter.pipe"},"importAs":"@taiga-ui/cdk/pipes/filter"}
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"TuiMapperPipeModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":3,"character":1},"arguments":[{"exports":[{"__symbolic":"reference","name":"TuiMapperPipe"}],"declarations":[{"__symbolic":"reference","name":"TuiMapperPipe"}]}]}],"members":{}},"TuiMapperPipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":3,"character":1},"arguments":[{"name":"tuiMapper"}]}],"members":{"transform":[{"__symbolic":"method"}]}}},"origins":{"TuiMapperPipeModule":"./mapper.module","TuiMapperPipe":"./mapper.pipe"},"importAs":"@taiga-ui/cdk/pipes/mapper"}
1
+ {"__symbolic":"module","version":4,"metadata":{"TuiMapperPipeModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"exports":[{"__symbolic":"reference","name":"TuiMapperPipe"}],"declarations":[{"__symbolic":"reference","name":"TuiMapperPipe"}]}]}],"members":{}},"TuiMapperPipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":3,"character":1},"arguments":[{"name":"tuiMapper"}]}],"members":{"transform":[{"__symbolic":"method"}]}}},"origins":{"TuiMapperPipeModule":"./mapper.module","TuiMapperPipe":"./mapper.pipe"},"importAs":"@taiga-ui/cdk/pipes/mapper"}
@@ -4,9 +4,10 @@ export * from './focus-visible.service';
4
4
  export * from './hovered.service';
5
5
  export * from './id.service';
6
6
  export * from './obscured.service';
7
+ export * from './pan.service';
7
8
  export * from './parents-scroll.service';
8
9
  export * from './resize.service';
9
10
  export * from './scroll.service';
10
11
  export * from './static-request.service';
11
- export * from './pan.service';
12
12
  export * from './swipe.service';
13
+ export * from './zoom.service';
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"TuiDestroyService":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"rxjs","name":"Subject","line":7,"character":39},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}}],"members":{"ngOnDestroy":[{"__symbolic":"method"}]}},"TuiDirectiveStylesService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":13,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":13,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":14,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk/tokens","name":"TUI_DEFAULT_RENDERER","line":14,"character":16}]}]],"parameters":[{"__symbolic":"error","message":"Could not resolve type","line":13,"character":56,"context":{"typeName":"Document"},"module":"./directive-styles.service"},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":14,"character":65}]}],"addStyle":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"TuiFocusVisibleService":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"rxjs","name":"Observable","line":13,"character":44},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":12,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":17,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":17,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":18,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":18,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":19,"character":9},"arguments":[{"__symbolic":"reference","name":"TuiDestroyService"}]}]],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":17,"character":56,"context":{"typeName":"Element"},"module":"./focus-visible.service"}]},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":18,"character":54},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":19,"character":56,"module":"./focus-visible.service"}]}]}]}},"TuiHoveredService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":15,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":22,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":22,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":23,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":23,"character":16}]}]],"parameters":[{"__symbolic":"error","message":"Could not resolve type","line":22,"character":39,"context":{"typeName":"Document"},"module":"./hovered.service"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":23,"character":49}]}],"createHovered$":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"TuiIdService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"generate":[{"__symbolic":"method"}]},"statics":{"autoId":0,"ɵprov":{}}},"TuiObscuredService":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"rxjs","name":"Observable","line":26,"character":40},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":25,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":30,"character":9},"arguments":[{"__symbolic":"reference","name":"TuiParentsScrollService"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Self","line":31,"character":9}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":33,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":33,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":34,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":34,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":35,"character":9},"arguments":[{"__symbolic":"reference","module":"@ng-web-apis/common","name":"WINDOW","line":35,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":36,"character":9},"arguments":[{"__symbolic":"reference","name":"TuiDestroyService"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":37,"character":9},"arguments":[{"__symbolic":"reference","module":"@ng-web-apis/common","name":"ANIMATION_FRAME","line":37,"character":16}]}]],"parameters":[{"__symbolic":"reference","name":"TuiParentsScrollService"},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":33,"character":56,"context":{"typeName":"Element"},"module":"./obscured.service"}]},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":34,"character":32},{"__symbolic":"error","message":"Could not resolve type","line":35,"character":35,"context":{"typeName":"Window"},"module":"./obscured.service"},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"reference","name":"number"}]},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"reference","name":"number"}]}]}]}},"TuiParentsScrollService":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"rxjs","name":"Observable","line":11,"character":45},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":10,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":15,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":15,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":16,"character":9},"arguments":[{"__symbolic":"reference","module":"@ng-web-apis/common","name":"WINDOW","line":16,"character":16}]}]],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":15,"character":56,"context":{"typeName":"Element"},"module":"./parents-scroll.service"}]},{"__symbolic":"error","message":"Could not resolve type","line":16,"character":35,"context":{"typeName":"Window"},"module":"./parents-scroll.service"}]}]}},"TuiResizeService":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ng-web-apis/resize-observer","name":"ResizeObserverService","line":23,"character":38},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":22,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":25,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":25,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":26,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":26,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":27,"character":9},"arguments":[{"__symbolic":"reference","name":"TuiDestroyService"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":28,"character":9},"arguments":[{"__symbolic":"reference","module":"@ng-web-apis/resize-observer","name":"RESIZE_OBSERVER_SUPPORT","line":28,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":29,"character":9},"arguments":[{"__symbolic":"reference","module":"@ng-web-apis/resize-observer","name":"RESIZE_OPTION_BOX","line":29,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":30,"character":9},"arguments":[{"__symbolic":"reference","module":"@ng-web-apis/common","name":"ANIMATION_FRAME","line":30,"character":16}]}]],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":25,"character":51,"context":{"typeName":"HTMLElement"},"module":"./resize.service"}]},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":26,"character":32},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"reference","name":"number"}]},{"__symbolic":"reference","name":"boolean"},{"__symbolic":"error","message":"Expression form not supported","line":29,"character":40,"module":"./resize.service"},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"reference","name":"number"}]}]}]}},"TuiScrollService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":11,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":16,"character":9},"arguments":[{"__symbolic":"reference","module":"@ng-web-apis/common","name":"PERFORMANCE","line":16,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":17,"character":9},"arguments":[{"__symbolic":"reference","module":"@ng-web-apis/common","name":"ANIMATION_FRAME","line":17,"character":16}]}]],"parameters":[{"__symbolic":"error","message":"Could not resolve type","line":16,"character":62,"context":{"typeName":"Performance"},"module":"./scroll.service"},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"reference","name":"number"}]}]}],"scroll$":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"TuiStaticRequestService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"request":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"TuiPanService":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"rxjs","name":"Observable","line":10,"character":35},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":12,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":12,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":13,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":13,"character":16}]}]],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":12,"character":56,"context":{"typeName":"Element"},"module":"./pan.service"}]},{"__symbolic":"error","message":"Could not resolve type","line":13,"character":39,"context":{"typeName":"Document"},"module":"./pan.service"}]}]}},"TuiSwipeService":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"rxjs","name":"Observable","line":13,"character":37},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":12,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":15,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":15,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":16,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk/tokens","name":"TUI_SWIPE_OPTIONS","line":16,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":17,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":17,"character":16}]}]],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":15,"character":56,"context":{"typeName":"Element"},"module":"./swipe.service"}]},{"__symbolic":"reference","module":"@taiga-ui/cdk/interfaces","name":"TuiSwipeOptions","line":16,"character":57},{"__symbolic":"error","message":"Could not resolve type","line":17,"character":39,"context":{"typeName":"Document"},"module":"./swipe.service"}]}]}}},"origins":{"TuiDestroyService":"./destroy.service","TuiDirectiveStylesService":"./directive-styles.service","TuiFocusVisibleService":"./focus-visible.service","TuiHoveredService":"./hovered.service","TuiIdService":"./id.service","TuiObscuredService":"./obscured.service","TuiParentsScrollService":"./parents-scroll.service","TuiResizeService":"./resize.service","TuiScrollService":"./scroll.service","TuiStaticRequestService":"./static-request.service","TuiPanService":"./pan.service","TuiSwipeService":"./swipe.service"},"importAs":"@taiga-ui/cdk/services"}
1
+ {"__symbolic":"module","version":4,"metadata":{"TuiDestroyService":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"rxjs","name":"Subject","line":7,"character":39},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}}],"members":{"ngOnDestroy":[{"__symbolic":"method"}]}},"TuiDirectiveStylesService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":13,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":13,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":14,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk/tokens","name":"TUI_DEFAULT_RENDERER","line":14,"character":16}]}]],"parameters":[{"__symbolic":"error","message":"Could not resolve type","line":13,"character":56,"context":{"typeName":"Document"},"module":"./directive-styles.service"},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":14,"character":65}]}],"addStyle":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"TuiFocusVisibleService":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"rxjs","name":"Observable","line":14,"character":44},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":13,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":18,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":18,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":19,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":19,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":20,"character":9},"arguments":[{"__symbolic":"reference","name":"TuiDestroyService"}]}]],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":18,"character":56,"context":{"typeName":"Element"},"module":"./focus-visible.service"}]},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":19,"character":54},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":20,"character":56,"module":"./focus-visible.service"}]}]}]}},"TuiHoveredService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":15,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":22,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":22,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":23,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":23,"character":16}]}]],"parameters":[{"__symbolic":"error","message":"Could not resolve type","line":22,"character":39,"context":{"typeName":"Document"},"module":"./hovered.service"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":23,"character":49}]}],"createHovered$":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"TuiIdService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"generate":[{"__symbolic":"method"}]},"statics":{"autoId":0,"ɵprov":{}}},"TuiObscuredService":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"rxjs","name":"Observable","line":27,"character":40},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":26,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":31,"character":9},"arguments":[{"__symbolic":"reference","name":"TuiParentsScrollService"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Self","line":32,"character":9}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":34,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":34,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":35,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":35,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":36,"character":9},"arguments":[{"__symbolic":"reference","module":"@ng-web-apis/common","name":"WINDOW","line":36,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":37,"character":9},"arguments":[{"__symbolic":"reference","name":"TuiDestroyService"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":38,"character":9},"arguments":[{"__symbolic":"reference","module":"@ng-web-apis/common","name":"ANIMATION_FRAME","line":38,"character":16}]}]],"parameters":[{"__symbolic":"reference","name":"TuiParentsScrollService"},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":34,"character":56,"context":{"typeName":"Element"},"module":"./obscured.service"}]},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":35,"character":32},{"__symbolic":"error","message":"Could not resolve type","line":36,"character":35,"context":{"typeName":"Window"},"module":"./obscured.service"},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"reference","name":"number"}]},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"reference","name":"number"}]}]}]}},"TuiPanService":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"rxjs","name":"Observable","line":10,"character":35},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":12,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":12,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":13,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":13,"character":16}]}]],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":12,"character":56,"context":{"typeName":"Element"},"module":"./pan.service"}]},{"__symbolic":"error","message":"Could not resolve type","line":13,"character":39,"context":{"typeName":"Document"},"module":"./pan.service"}]}]}},"TuiParentsScrollService":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"rxjs","name":"Observable","line":11,"character":45},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":10,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":15,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":15,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":16,"character":9},"arguments":[{"__symbolic":"reference","module":"@ng-web-apis/common","name":"WINDOW","line":16,"character":16}]}]],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":15,"character":56,"context":{"typeName":"Element"},"module":"./parents-scroll.service"}]},{"__symbolic":"error","message":"Could not resolve type","line":16,"character":35,"context":{"typeName":"Window"},"module":"./parents-scroll.service"}]}]}},"TuiResizeService":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ng-web-apis/resize-observer","name":"ResizeObserverService","line":24,"character":38},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":23,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":26,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":26,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":27,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":27,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":28,"character":9},"arguments":[{"__symbolic":"reference","name":"TuiDestroyService"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":29,"character":9},"arguments":[{"__symbolic":"reference","module":"@ng-web-apis/resize-observer","name":"RESIZE_OBSERVER_SUPPORT","line":29,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":30,"character":9},"arguments":[{"__symbolic":"reference","module":"@ng-web-apis/resize-observer","name":"RESIZE_OPTION_BOX","line":30,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":31,"character":9},"arguments":[{"__symbolic":"reference","module":"@ng-web-apis/common","name":"ANIMATION_FRAME","line":31,"character":16}]}]],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":26,"character":51,"context":{"typeName":"HTMLElement"},"module":"./resize.service"}]},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":27,"character":32},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"reference","name":"number"}]},{"__symbolic":"reference","name":"boolean"},{"__symbolic":"error","message":"Expression form not supported","line":30,"character":40,"module":"./resize.service"},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"reference","name":"number"}]}]}]}},"TuiScrollService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":11,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":16,"character":9},"arguments":[{"__symbolic":"reference","module":"@ng-web-apis/common","name":"PERFORMANCE","line":16,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":17,"character":9},"arguments":[{"__symbolic":"reference","module":"@ng-web-apis/common","name":"ANIMATION_FRAME","line":17,"character":16}]}]],"parameters":[{"__symbolic":"error","message":"Could not resolve type","line":16,"character":62,"context":{"typeName":"Performance"},"module":"./scroll.service"},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"reference","name":"number"}]}]}],"scroll$":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"TuiStaticRequestService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"request":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"TuiSwipeService":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"rxjs","name":"Observable","line":13,"character":37},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":12,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":15,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":15,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":16,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk/tokens","name":"TUI_SWIPE_OPTIONS","line":16,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":17,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":17,"character":16}]}]],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":15,"character":56,"context":{"typeName":"Element"},"module":"./swipe.service"}]},{"__symbolic":"reference","module":"@taiga-ui/cdk/interfaces","name":"TuiSwipeOptions","line":16,"character":57},{"__symbolic":"error","message":"Could not resolve type","line":17,"character":39,"context":{"typeName":"Document"},"module":"./swipe.service"}]}]}},"TuiZoomService":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"rxjs","name":"Observable","line":12,"character":36},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":11,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":14,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":14,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":15,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk/tokens","name":"TUI_ZOOM_OPTIONS","line":15,"character":16}]}]],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":14,"character":56,"context":{"typeName":"HTMLElement"},"module":"./zoom.service"}]},{"__symbolic":"reference","module":"@taiga-ui/cdk/interfaces","name":"TuiZoomOptions","line":15,"character":54}]}]}}},"origins":{"TuiDestroyService":"./destroy.service","TuiDirectiveStylesService":"./directive-styles.service","TuiFocusVisibleService":"./focus-visible.service","TuiHoveredService":"./hovered.service","TuiIdService":"./id.service","TuiObscuredService":"./obscured.service","TuiPanService":"./pan.service","TuiParentsScrollService":"./parents-scroll.service","TuiResizeService":"./resize.service","TuiScrollService":"./scroll.service","TuiStaticRequestService":"./static-request.service","TuiSwipeService":"./swipe.service","TuiZoomService":"./zoom.service"},"importAs":"@taiga-ui/cdk/services"}
@@ -0,0 +1,6 @@
1
+ import { ElementRef } from '@angular/core';
2
+ import { TuiZoom, TuiZoomOptions } from '@taiga-ui/cdk/interfaces';
3
+ import { Observable } from 'rxjs';
4
+ export declare class TuiZoomService extends Observable<TuiZoom> {
5
+ constructor({ nativeElement }: ElementRef<HTMLElement>, { wheelSensitivity }: TuiZoomOptions);
6
+ }
package/tokens/index.d.ts CHANGED
@@ -3,11 +3,12 @@ export * from './default-renderer';
3
3
  export * from './dialogs';
4
4
  export * from './focusable-item-accessor';
5
5
  export * from './is-android';
6
+ export * from './is-cypress';
6
7
  export * from './is-ios';
7
8
  export * from './is-mobile';
8
9
  export * from './removed-element';
9
10
  export * from './sanitizer';
10
- export * from './is-cypress';
11
+ export * from './swipe-options';
11
12
  export * from './take-only-trusted-events';
12
13
  export * from './window-height';
13
- export * from './swipe-options';
14
+ export * from './zoom-options';