@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
@@ -39,10 +39,10 @@ export var TUI_ACTIVE_ELEMENT = new InjectionToken('Active element on the docume
39
39
  });
40
40
  // Checks if focusout event should be considered leaving active zone
41
41
  function isValidFocusout(target, removedElement) {
42
- var _a;
42
+ if (removedElement === void 0) { removedElement = null; }
43
43
  return (
44
44
  // Not due to switching tabs/going to DevTools
45
- ((_a = target.ownerDocument) === null || _a === void 0 ? void 0 : _a.activeElement) !== target &&
45
+ getDocumentOrShadowRoot(target).activeElement !== target &&
46
46
  // Not due to button/input becoming disabled
47
47
  !target.disabled &&
48
48
  // Not due to element being removed from DOM
@@ -53,11 +53,11 @@ function shadowRootActiveElement(root) {
53
53
  var target = _a.target;
54
54
  return target;
55
55
  })), typedFromEvent(root, 'focusout').pipe(filter(function (_a) {
56
- var target = _a.target;
57
- return isValidFocusout(target, null);
56
+ var target = _a.target, relatedTarget = _a.relatedTarget;
57
+ return !!relatedTarget && isValidFocusout(target);
58
58
  }), map(function (_a) {
59
59
  var relatedTarget = _a.relatedTarget;
60
60
  return relatedTarget;
61
61
  })));
62
62
  }
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLWVsZW1lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL3Rva2Vucy8iLCJzb3VyY2VzIjpbImFjdGl2ZS1lbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsZUFBZSxFQUFFLHVCQUF1QixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDN0UsT0FBTyxFQUFDLEtBQUssRUFBYyxFQUFFLEVBQUUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLEdBQUcsRUFDSCxLQUFLLEVBQ0wsVUFBVSxFQUNWLEtBQUssRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULElBQUksRUFDSixTQUFTLEVBQ1QsY0FBYyxHQUNqQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRXRELE1BQU0sQ0FBQyxJQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUNoRCwrQ0FBK0MsRUFDL0M7SUFDSSxPQUFPLEVBQUU7UUFDTCxJQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNwRCxJQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakMsSUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JDLElBQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFD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QyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFDLEVBQVE7WUFBUCxrQkFBTTtRQUFNLE9BQUEsTUFBTTtJQUFOLENBQU0sQ0FBQyxDQUFDLEVBQy9ELGNBQWMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUNqQyxNQUFNLENBQUMsVUFBQyxFQUFRO1lBQVAsa0JBQU07UUFBTSxPQUFBLGVBQWUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO0lBQTdCLENBQTZCLENBQUMsRUFDbkQsR0FBRyxDQUFDLFVBQUMsRUFBZTtZQUFkLGdDQUFhO1FBQU0sT0FBQSxhQUFhO0lBQWIsQ0FBYSxDQUFDLENBQzFDLENBQ0osQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtpbmplY3QsIEluamVjdGlvblRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7V0lORE9XfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcbmltcG9ydCB7dHlwZWRGcm9tRXZlbnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvb2JzZXJ2YWJsZXMnO1xuaW1wb3J0IHtnZXRBY3R1YWxUYXJnZXQsIGdldERvY3VtZW50T3JTaGFkb3dSb290fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzJztcbmltcG9ydCB7bWVyZ2UsIE9ic2VydmFibGUsIG9mLCB0aW1lcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICAgIGZpbHRlcixcbiAgICBtYXAsXG4gICAgbWFwVG8sXG4gICAgcmVwZWF0V2hlbixcbiAgICBzaGFyZSxcbiAgICBzdGFydFdpdGgsXG4gICAgc3dpdGNoTWFwLFxuICAgIHRha2UsXG4gICAgdGFrZVVudGlsLFxuICAgIHdpdGhMYXRlc3RGcm9tLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1RVSV9SRU1PVkVEX0VMRU1FTlR9IGZyb20gJy4vcmVtb3ZlZC1lbGVtZW50JztcblxuZXhwb3J0IGNvbnN0IFRVSV9BQ1RJVkVfRUxFTUVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxPYnNlcnZhYmxlPEV2ZW50VGFyZ2V0IHwgbnVsbD4+KFxuICAgICdBY3RpdmUgZWxlbWVudCBvbiB0aGUgZG9jdW1lbnQgZm9yIEFjdGl2ZVpvbmUnLFxuICAgIHtcbiAgICAgICAgZmFjdG9yeTogKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVtb3ZlZEVsZW1lbnQkID0gaW5qZWN0KFRVSV9SRU1PVkVEX0VMRU1FTlQpO1xuICAgICAgICAgICAgY29uc3Qgd2luZG93UmVmID0gaW5qZWN0KFdJTkRPVyk7XG4gICAgICAgICAgICBjb25zdCBkb2N1bWVudFJlZiA9IGluamVjdChET0NVTUVOVCk7XG4gICAgICAgICAgICBjb25zdCBmb2N1c291dCQgPSB0eXBlZEZyb21FdmVudCh3aW5kb3dSZWYsICdmb2N1c291dCcpO1xuICAgICAgICAgICAgY29uc3QgZm9jdXNpbiQgPSB0eXBlZEZyb21FdmVudCh3aW5kb3dSZWYsICdmb2N1c2luJyk7XG4gICAgICAgICAgICBjb25zdCBibHVyJCA9IHR5cGVkRnJvbUV2ZW50KHdpbmRvd1JlZiwgJ2JsdXInKTtcbiAgICAgICAgICAgIGNvbnN0IG1vdXNlZG93biQgPSB0eXBlZEZyb21FdmVudCh3aW5kb3dSZWYsICdtb3VzZWRvd24nKTtcbiAgICAgICAgICAgIGNvbnN0IG1vdXNldXAkID0gdHlwZWRGcm9tRXZlbnQod2luZG93UmVmLCAnbW91c2V1cCcpO1xuXG4gICAgICAgICAgICByZXR1cm4gbWVyZ2UoXG4gICAgICAgICAgICAgICAgZm9jdXNvdXQkLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbChtb3VzZWRvd24kKSxcbiAgICAgICAgICAgICAgICAgICAgcmVwZWF0V2hlbigoKSA9PiBtb3VzZXVwJCksXG4gICAgICAgICAgICAgICAgICAgIHdpdGhMYXRlc3RGcm9tKHJlbW92ZWRFbGVtZW50JCksXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcigoW2V2ZW50LCByZW1vdmVkRWxlbWVudF0pID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBpc1ZhbGlkRm9jdXNvdXQoZ2V0QWN0dWFsVGFyZ2V0KGV2ZW50KSwgcmVtb3ZlZEVsZW1lbnQpLFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICBtYXAoKFt7cmVsYXRlZFRhcmdldH1dKSA9PiByZWxhdGVkVGFyZ2V0KSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGJsdXIkLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIG1hcCgoKSA9PiBkb2N1bWVudFJlZi5hY3RpdmVFbGVtZW50KSxcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKGVsZW1lbnQgPT4gISFlbGVtZW50ICYmIGVsZW1lbnQubWF0Y2hlcygnaWZyYW1lJykpLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgZm9jdXNpbiQucGlwZShcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoTWFwKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGdldEFjdHVhbFRhcmdldChldmVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByb290ID0gZ2V0RG9jdW1lbnRPclNoYWRvd1Jvb3QodGFyZ2V0KSBhcyBEb2N1bWVudDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJvb3QgPT09IGRvY3VtZW50UmVmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBvZih0YXJnZXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBzaGFkb3dSb290QWN0aXZlRWxlbWVudChyb290KS5waXBlKHN0YXJ0V2l0aCh0YXJnZXQpKTtcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBtb3VzZWRvd24kLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcChldmVudCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgIWRvY3VtZW50UmVmLmFjdGl2ZUVsZW1lbnQgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50UmVmLmFjdGl2ZUVsZW1lbnQgPT09IGRvY3VtZW50UmVmLmJvZHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IG9mKGdldEFjdHVhbFRhcmdldChldmVudCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBmb2N1c291dCQucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aW1lcigwKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwVG8oZ2V0QWN0dWFsVGFyZ2V0KGV2ZW50KSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICApLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgc2hhcmUoKSk7XG4gICAgICAgIH0sXG4gICAgfSxcbik7XG5cbi8vIENoZWNrcyBpZiBmb2N1c291dCBldmVudCBzaG91bGQgYmUgY29uc2lkZXJlZCBsZWF2aW5nIGFjdGl2ZSB6b25lXG5mdW5jdGlvbiBpc1ZhbGlkRm9jdXNvdXQodGFyZ2V0OiBhbnksIHJlbW92ZWRFbGVtZW50OiBFbGVtZW50IHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAgIC8vIE5vdCBkdWUgdG8gc3dpdGNoaW5nIHRhYnMvZ29pbmcgdG8gRGV2VG9vbHNcbiAgICAgICAgdGFyZ2V0Lm93bmVyRG9jdW1lbnQ/LmFjdGl2ZUVsZW1lbnQgIT09IHRhcmdldCAmJlxuICAgICAgICAvLyBOb3QgZHVlIHRvIGJ1dHRvbi9pbnB1dCBiZWNvbWluZyBkaXNhYmxlZFxuICAgICAgICAhdGFyZ2V0LmRpc2FibGVkICYmXG4gICAgICAgIC8vIE5vdCBkdWUgdG8gZWxlbWVudCBiZWluZyByZW1vdmVkIGZyb20gRE9NXG4gICAgICAgICghcmVtb3ZlZEVsZW1lbnQgfHwgIXJlbW92ZWRFbGVtZW50LmNvbnRhaW5zKHRhcmdldCkpXG4gICAgKTtcbn1cblxuZnVuY3Rpb24gc2hhZG93Um9vdEFjdGl2ZUVsZW1lbnQocm9vdDogRG9jdW1lbnQpOiBPYnNlcnZhYmxlPEV2ZW50VGFyZ2V0IHwgbnVsbD4ge1xuICAgIHJldHVybiBtZXJnZShcbiAgICAgICAgdHlwZWRGcm9tRXZlbnQocm9vdCwgJ2ZvY3VzaW4nKS5waXBlKG1hcCgoe3RhcmdldH0pID0+IHRhcmdldCkpLFxuICAgICAgICB0eXBlZEZyb21FdmVudChyb290LCAnZm9jdXNvdXQnKS5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKCh7dGFyZ2V0fSkgPT4gaXNWYWxpZEZvY3Vzb3V0KHRhcmdldCwgbnVsbCkpLFxuICAgICAgICAgICAgbWFwKCh7cmVsYXRlZFRhcmdldH0pID0+IHJlbGF0ZWRUYXJnZXQpLFxuICAgICAgICApLFxuICAgICk7XG59XG4iXX0=
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLWVsZW1lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL3Rva2Vucy8iLCJzb3VyY2VzIjpbImFjdGl2ZS1lbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsZUFBZSxFQUFFLHVCQUF1QixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDN0UsT0FBTyxFQUFDLEtBQUssRUFBYyxFQUFFLEVBQUUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLEdBQUcsRUFDSCxLQUFLLEVBQ0wsVUFBVSxFQUNWLEtBQUssRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULElBQUksRUFDSixTQUFTLEVBQ1QsY0FBYyxHQUNqQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRXRELE1BQU0sQ0FBQyxJQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUNoRCwrQ0FBK0MsRUFDL0M7SUFDSSxPQUFPLEVBQUU7UUFDTCxJQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNwRCxJQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakMsSUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JDLElBQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDeEQsSUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN0RCxJQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2hELElBQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDMUQsSUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUV0RCxPQUFPLEtBQUssQ0FDUixTQUFTLENBQUMsSUFBSSxDQUNWLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFDckIsVUFBVSxDQUFDLGNBQU0sT0FBQSxRQUFRLEVBQVIsQ0FBUSxDQUFDLEVBQzFCLGNBQWMsQ0FBQyxlQUFlLENBQUMsRUFDL0IsTUFBTSxDQUFDLFVBQUMsRUFBdUI7Z0JBQXZCLGtCQUF1QixFQUF0QixhQUFLLEVBQUUsc0JBQWM7WUFDMUIsT0FBQSxlQUFlLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFLGNBQWMsQ0FBQztRQUF2RCxDQUF1RCxDQUMxRCxFQUNELEdBQUcsQ0FBQyxVQUFDLEVBQWlCO2dCQUFqQixrQkFBaUIsRUFBZixtQ0FBYTtZQUFPLE9BQUEsYUFBYTtRQUFiLENBQWEsQ0FBQyxDQUM1QyxFQUNELEtBQUssQ0FBQyxJQUFJLENBQ04sR0FBRyxDQUFDLGNBQU0sT0FBQSxXQUFXLENBQUMsYUFBYSxFQUF6QixDQUF5QixDQUFDLEVBQ3BDLE1BQU0sQ0FBQyxVQUFBLE9BQU8sSUFBSSxPQUFBLENBQUMsQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBdEMsQ0FBc0MsQ0FBQyxDQUM1RCxFQUNELFFBQVEsQ0FBQyxJQUFJLENBQ1QsU0FBUyxDQUFDLFVBQUEsS0FBSztZQUNYLElBQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0QyxJQUFNLElBQUksR0FBRyx1QkFBdUIsQ0FBQyxNQUFNLENBQWEsQ0FBQztZQUV6RCxPQUFPLElBQUksS0FBSyxXQUFXO2dCQUN2QixDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQztnQkFDWixDQUFDLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLENBQUMsQ0FBQyxDQUNMLEVBQ0QsVUFBVSxDQUFDLElBQUksQ0FDWCxTQUFTLENBQUMsVUFBQSxLQUFLO1lBQ1gsT0FBQSxDQUFDLFdBQVcsQ0FBQyxhQUFhO2dCQUMxQixXQUFXLENBQUMsYUFBYSxLQUFLLFdBQVcsQ0FBQyxJQUFJO2dCQUMxQyxDQUFDLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDNUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQ1YsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDbkIsS0FBSyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUNoQztRQVBQLENBT08sQ0FDVixDQUNKLENBQ0osQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7Q0FDSixDQUNKLENBQUM7QUFFRixvRUFBb0U7QUFDcEUsU0FBUyxlQUFlLENBQUMsTUFBVyxFQUFFLGNBQXFDO0lBQXJDLCtCQUFBLEVBQUEscUJBQXFDO0lBQ3ZFLE9BQU87SUFDSCw4Q0FBOEM7SUFDOUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUMsYUFBYSxLQUFLLE1BQU07UUFDeEQsNENBQTRDO1FBQzVDLENBQUMsTUFBTSxDQUFDLFFBQVE7UUFDaEIsNENBQTRDO1FBQzVDLENBQUMsQ0FBQyxjQUFjLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQ3hELENBQUM7QUFDTixDQUFDO0FBRUQsU0FBUyx1QkFBdUIsQ0FBQyxJQUFjO0lBQzNDLE9BQU8sS0FBSyxDQUNSLGNBQWMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFDLEVBQVE7WUFBUCxrQkFBTTtRQUFNLE9BQUEsTUFBTTtJQUFOLENBQU0sQ0FBQyxDQUFDLEVBQy9ELGNBQWMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUNqQyxNQUFNLENBQ0YsVUFBQyxFQUF1QjtZQUF0QixrQkFBTSxFQUFFLGdDQUFhO1FBQU0sT0FBQSxDQUFDLENBQUMsYUFBYSxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUM7SUFBMUMsQ0FBMEMsQ0FDMUUsRUFDRCxHQUFHLENBQUMsVUFBQyxFQUFlO1lBQWQsZ0NBQWE7UUFBTSxPQUFBLGFBQWE7SUFBYixDQUFhLENBQUMsQ0FDMUMsQ0FDSixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge2luamVjdCwgSW5qZWN0aW9uVG9rZW59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtXSU5ET1d9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuaW1wb3J0IHt0eXBlZEZyb21FdmVudH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9vYnNlcnZhYmxlcyc7XG5pbXBvcnQge2dldEFjdHVhbFRhcmdldCwgZ2V0RG9jdW1lbnRPclNoYWRvd1Jvb3R9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMnO1xuaW1wb3J0IHttZXJnZSwgT2JzZXJ2YWJsZSwgb2YsIHRpbWVyfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gICAgZmlsdGVyLFxuICAgIG1hcCxcbiAgICBtYXBUbyxcbiAgICByZXBlYXRXaGVuLFxuICAgIHNoYXJlLFxuICAgIHN0YXJ0V2l0aCxcbiAgICBzd2l0Y2hNYXAsXG4gICAgdGFrZSxcbiAgICB0YWtlVW50aWwsXG4gICAgd2l0aExhdGVzdEZyb20sXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtUVUlfUkVNT1ZFRF9FTEVNRU5UfSBmcm9tICcuL3JlbW92ZWQtZWxlbWVudCc7XG5cbmV4cG9ydCBjb25zdCBUVUlfQUNUSVZFX0VMRU1FTlQgPSBuZXcgSW5qZWN0aW9uVG9rZW48T2JzZXJ2YWJsZTxFdmVudFRhcmdldCB8IG51bGw+PihcbiAgICAnQWN0aXZlIGVsZW1lbnQgb24gdGhlIGRvY3VtZW50IGZvciBBY3RpdmVab25lJyxcbiAgICB7XG4gICAgICAgIGZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlbW92ZWRFbGVtZW50JCA9IGluamVjdChUVUlfUkVNT1ZFRF9FTEVNRU5UKTtcbiAgICAgICAgICAgIGNvbnN0IHdpbmRvd1JlZiA9IGluamVjdChXSU5ET1cpO1xuICAgICAgICAgICAgY29uc3QgZG9jdW1lbnRSZWYgPSBpbmplY3QoRE9DVU1FTlQpO1xuICAgICAgICAgICAgY29uc3QgZm9jdXNvdXQkID0gdHlwZWRGcm9tRXZlbnQod2luZG93UmVmLCAnZm9jdXNvdXQnKTtcbiAgICAgICAgICAgIGNvbnN0IGZvY3VzaW4kID0gdHlwZWRGcm9tRXZlbnQod2luZG93UmVmLCAnZm9jdXNpbicpO1xuICAgICAgICAgICAgY29uc3QgYmx1ciQgPSB0eXBlZEZyb21FdmVudCh3aW5kb3dSZWYsICdibHVyJyk7XG4gICAgICAgICAgICBjb25zdCBtb3VzZWRvd24kID0gdHlwZWRGcm9tRXZlbnQod2luZG93UmVmLCAnbW91c2Vkb3duJyk7XG4gICAgICAgICAgICBjb25zdCBtb3VzZXVwJCA9IHR5cGVkRnJvbUV2ZW50KHdpbmRvd1JlZiwgJ21vdXNldXAnKTtcblxuICAgICAgICAgICAgcmV0dXJuIG1lcmdlKFxuICAgICAgICAgICAgICAgIGZvY3Vzb3V0JC5waXBlKFxuICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwobW91c2Vkb3duJCksXG4gICAgICAgICAgICAgICAgICAgIHJlcGVhdFdoZW4oKCkgPT4gbW91c2V1cCQpLFxuICAgICAgICAgICAgICAgICAgICB3aXRoTGF0ZXN0RnJvbShyZW1vdmVkRWxlbWVudCQpLFxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoKFtldmVudCwgcmVtb3ZlZEVsZW1lbnRdKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgaXNWYWxpZEZvY3Vzb3V0KGdldEFjdHVhbFRhcmdldChldmVudCksIHJlbW92ZWRFbGVtZW50KSxcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgbWFwKChbe3JlbGF0ZWRUYXJnZXR9XSkgPT4gcmVsYXRlZFRhcmdldCksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBibHVyJC5waXBlKFxuICAgICAgICAgICAgICAgICAgICBtYXAoKCkgPT4gZG9jdW1lbnRSZWYuYWN0aXZlRWxlbWVudCksXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcihlbGVtZW50ID0+ICEhZWxlbWVudCAmJiBlbGVtZW50Lm1hdGNoZXMoJ2lmcmFtZScpKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGZvY3VzaW4kLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcChldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBnZXRBY3R1YWxUYXJnZXQoZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm9vdCA9IGdldERvY3VtZW50T3JTaGFkb3dSb290KHRhcmdldCkgYXMgRG9jdW1lbnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByb290ID09PSBkb2N1bWVudFJlZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gb2YodGFyZ2V0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogc2hhZG93Um9vdEFjdGl2ZUVsZW1lbnQocm9vdCkucGlwZShzdGFydFdpdGgodGFyZ2V0KSk7XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgbW91c2Vkb3duJC5waXBlKFxuICAgICAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoZXZlbnQgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICFkb2N1bWVudFJlZi5hY3RpdmVFbGVtZW50IHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudFJlZi5hY3RpdmVFbGVtZW50ID09PSBkb2N1bWVudFJlZi5ib2R5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBvZihnZXRBY3R1YWxUYXJnZXQoZXZlbnQpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZm9jdXNvdXQkLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwodGltZXIoMCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcFRvKGdldEFjdHVhbFRhcmdldChldmVudCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHNoYXJlKCkpO1xuICAgICAgICB9LFxuICAgIH0sXG4pO1xuXG4vLyBDaGVja3MgaWYgZm9jdXNvdXQgZXZlbnQgc2hvdWxkIGJlIGNvbnNpZGVyZWQgbGVhdmluZyBhY3RpdmUgem9uZVxuZnVuY3Rpb24gaXNWYWxpZEZvY3Vzb3V0KHRhcmdldDogYW55LCByZW1vdmVkRWxlbWVudDogRWxlbWVudCB8IG51bGwgPSBudWxsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgLy8gTm90IGR1ZSB0byBzd2l0Y2hpbmcgdGFicy9nb2luZyB0byBEZXZUb29sc1xuICAgICAgICBnZXREb2N1bWVudE9yU2hhZG93Um9vdCh0YXJnZXQpLmFjdGl2ZUVsZW1lbnQgIT09IHRhcmdldCAmJlxuICAgICAgICAvLyBOb3QgZHVlIHRvIGJ1dHRvbi9pbnB1dCBiZWNvbWluZyBkaXNhYmxlZFxuICAgICAgICAhdGFyZ2V0LmRpc2FibGVkICYmXG4gICAgICAgIC8vIE5vdCBkdWUgdG8gZWxlbWVudCBiZWluZyByZW1vdmVkIGZyb20gRE9NXG4gICAgICAgICghcmVtb3ZlZEVsZW1lbnQgfHwgIXJlbW92ZWRFbGVtZW50LmNvbnRhaW5zKHRhcmdldCkpXG4gICAgKTtcbn1cblxuZnVuY3Rpb24gc2hhZG93Um9vdEFjdGl2ZUVsZW1lbnQocm9vdDogRG9jdW1lbnQpOiBPYnNlcnZhYmxlPEV2ZW50VGFyZ2V0IHwgbnVsbD4ge1xuICAgIHJldHVybiBtZXJnZShcbiAgICAgICAgdHlwZWRGcm9tRXZlbnQocm9vdCwgJ2ZvY3VzaW4nKS5waXBlKG1hcCgoe3RhcmdldH0pID0+IHRhcmdldCkpLFxuICAgICAgICB0eXBlZEZyb21FdmVudChyb290LCAnZm9jdXNvdXQnKS5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKFxuICAgICAgICAgICAgICAgICh7dGFyZ2V0LCByZWxhdGVkVGFyZ2V0fSkgPT4gISFyZWxhdGVkVGFyZ2V0ICYmIGlzVmFsaWRGb2N1c291dCh0YXJnZXQpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIG1hcCgoe3JlbGF0ZWRUYXJnZXR9KSA9PiByZWxhdGVkVGFyZ2V0KSxcbiAgICAgICAgKSxcbiAgICApO1xufVxuIl19
@@ -3,12 +3,13 @@ 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
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL3Rva2Vucy8iLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FjdGl2ZS1lbGVtZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZGVmYXVsdC1yZW5kZXJlcic7XG5leHBvcnQgKiBmcm9tICcuL2RpYWxvZ3MnO1xuZXhwb3J0ICogZnJvbSAnLi9mb2N1c2FibGUtaXRlbS1hY2Nlc3Nvcic7XG5leHBvcnQgKiBmcm9tICcuL2lzLWFuZHJvaWQnO1xuZXhwb3J0ICogZnJvbSAnLi9pcy1pb3MnO1xuZXhwb3J0ICogZnJvbSAnLi9pcy1tb2JpbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9yZW1vdmVkLWVsZW1lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zYW5pdGl6ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9pcy1jeXByZXNzJztcbmV4cG9ydCAqIGZyb20gJy4vdGFrZS1vbmx5LXRydXN0ZWQtZXZlbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vd2luZG93LWhlaWdodCc7XG5leHBvcnQgKiBmcm9tICcuL3N3aXBlLW9wdGlvbnMnO1xuIl19
14
+ export * from './zoom-options';
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL3Rva2Vucy8iLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWN0aXZlLWVsZW1lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWZhdWx0LXJlbmRlcmVyJztcbmV4cG9ydCAqIGZyb20gJy4vZGlhbG9ncyc7XG5leHBvcnQgKiBmcm9tICcuL2ZvY3VzYWJsZS1pdGVtLWFjY2Vzc29yJztcbmV4cG9ydCAqIGZyb20gJy4vaXMtYW5kcm9pZCc7XG5leHBvcnQgKiBmcm9tICcuL2lzLWN5cHJlc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9pcy1pb3MnO1xuZXhwb3J0ICogZnJvbSAnLi9pcy1tb2JpbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9yZW1vdmVkLWVsZW1lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zYW5pdGl6ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9zd2lwZS1vcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vdGFrZS1vbmx5LXRydXN0ZWQtZXZlbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vd2luZG93LWhlaWdodCc7XG5leHBvcnQgKiBmcm9tICcuL3pvb20tb3B0aW9ucyc7XG4iXX0=
@@ -4,4 +4,4 @@ import { TUI_IS_MOBILE } from './is-mobile';
4
4
  export var TUI_IS_ANDROID = new InjectionToken('Mobile browser that is not iOS (technically includes Windows Phone, Blackberry etc.)', {
5
5
  factory: function () { return inject(TUI_IS_MOBILE) && !inject(TUI_IS_IOS); },
6
6
  });
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtYW5kcm9pZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvdG9rZW5zLyIsInNvdXJjZXMiOlsiaXMtYW5kcm9pZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFFMUMsTUFBTSxDQUFDLElBQU0sY0FBYyxHQUFHLElBQUksY0FBYyxDQUM1QyxzRkFBc0YsRUFDdEY7SUFDSSxPQUFPLEVBQUUsY0FBTSxPQUFBLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBNUMsQ0FBNEM7Q0FDOUQsQ0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpbmplY3QsIEluamVjdGlvblRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VFVJX0lTX0lPU30gZnJvbSAnLi9pcy1pb3MnO1xuaW1wb3J0IHtUVUlfSVNfTU9CSUxFfSBmcm9tICcuL2lzLW1vYmlsZSc7XG5cbmV4cG9ydCBjb25zdCBUVUlfSVNfQU5EUk9JRCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxib29sZWFuPihcbiAgICAnTW9iaWxlIGJyb3dzZXIgdGhhdCBpcyBub3QgaU9TICh0ZWNobmljYWxseSBpbmNsdWRlcyBXaW5kb3dzIFBob25lLCBCbGFja2JlcnJ5IGV0Yy4pJyxcbiAgICB7XG4gICAgICAgIGZhY3Rvcnk6ICgpID0+IGluamVjdChUVUlfSVNfTU9CSUxFKSAmJiAhaW5qZWN0KFRVSV9JU19JT1MpLFxuICAgIH0sXG4pO1xuIl19
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtYW5kcm9pZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvdG9rZW5zLyIsInNvdXJjZXMiOlsiaXMtYW5kcm9pZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFFMUMsTUFBTSxDQUFDLElBQU0sY0FBYyxHQUFHLElBQUksY0FBYyxDQUM1QyxzRkFBc0YsRUFDdEY7SUFDSSxPQUFPLEVBQUUsY0FBTSxPQUFBLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBNUMsQ0FBNEM7Q0FDOUQsQ0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpbmplY3QsIEluamVjdGlvblRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtUVUlfSVNfSU9TfSBmcm9tICcuL2lzLWlvcyc7XG5pbXBvcnQge1RVSV9JU19NT0JJTEV9IGZyb20gJy4vaXMtbW9iaWxlJztcblxuZXhwb3J0IGNvbnN0IFRVSV9JU19BTkRST0lEID0gbmV3IEluamVjdGlvblRva2VuPGJvb2xlYW4+KFxuICAgICdNb2JpbGUgYnJvd3NlciB0aGF0IGlzIG5vdCBpT1MgKHRlY2huaWNhbGx5IGluY2x1ZGVzIFdpbmRvd3MgUGhvbmUsIEJsYWNrYmVycnkgZXRjLiknLFxuICAgIHtcbiAgICAgICAgZmFjdG9yeTogKCkgPT4gaW5qZWN0KFRVSV9JU19NT0JJTEUpICYmICFpbmplY3QoVFVJX0lTX0lPUyksXG4gICAgfSxcbik7XG4iXX0=
@@ -0,0 +1,7 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export var TUI_ZOOM_OPTIONS = new InjectionToken('Zoom options', {
3
+ factory: function () { return ({
4
+ wheelSensitivity: 0.01,
5
+ }); },
6
+ });
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbS1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2Nkay90b2tlbnMvIiwic291cmNlcyI6WyJ6b29tLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUc3QyxNQUFNLENBQUMsSUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBaUIsY0FBYyxFQUFFO0lBQy9FLE9BQU8sRUFBRSxjQUFNLE9BQUEsQ0FBQztRQUNaLGdCQUFnQixFQUFFLElBQUk7S0FDekIsQ0FBQyxFQUZhLENBRWI7Q0FDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGlvblRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHVpWm9vbU9wdGlvbnN9IGZyb20gJ0B0YWlnYS11aS9jZGsvaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBjb25zdCBUVUlfWk9PTV9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPFR1aVpvb21PcHRpb25zPignWm9vbSBvcHRpb25zJywge1xuICAgIGZhY3Rvcnk6ICgpID0+ICh7XG4gICAgICAgIHdoZWVsU2Vuc2l0aXZpdHk6IDAuMDEsXG4gICAgfSksXG59KTtcbiJdfQ==
@@ -1 +1 @@
1
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL3R5cGVzLyIsInNvdXJjZXMiOlsiaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGlhbG9nJztcbmV4cG9ydCAqIGZyb20gJy4vZXZlbnQtd2l0aCc7XG5leHBvcnQgKiBmcm9tICcuL2hhbmRsZXInO1xuZXhwb3J0ICogZnJvbSAnLi9pbnB1dC1tb2RlJztcbmV4cG9ydCAqIGZyb20gJy4vaW5wdXQtdHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL21hcHBlcic7XG5leHBvcnQgKiBmcm9tICcuL21hdGNoZXInO1xuZXhwb3J0ICogZnJvbSAnLi9vdmVyc2Nyb2xsLW1vZGUnO1xuZXhwb3J0ICogZnJvbSAnLi90aW1lLW1vZGUnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRlLW1vZGUnO1xuIl19
1
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL3R5cGVzLyIsInNvdXJjZXMiOlsiaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGF0ZS1tb2RlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlhbG9nJztcbmV4cG9ydCAqIGZyb20gJy4vZXZlbnQtd2l0aCc7XG5leHBvcnQgKiBmcm9tICcuL2hhbmRsZXInO1xuZXhwb3J0ICogZnJvbSAnLi9pbnB1dC1tb2RlJztcbmV4cG9ydCAqIGZyb20gJy4vaW5wdXQtdHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL21hcHBlcic7XG5leHBvcnQgKiBmcm9tICcuL21hdGNoZXInO1xuZXhwb3J0ICogZnJvbSAnLi9vdmVyc2Nyb2xsLW1vZGUnO1xuZXhwb3J0ICogZnJvbSAnLi90aW1lLW1vZGUnO1xuIl19
@@ -1,7 +1,5 @@
1
1
  export function containsOrAfter(current, node) {
2
2
  return (current.contains(node) ||
3
- !!(
4
- // tslint:disable:no-bitwise
5
- (node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING)));
3
+ !!(node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING));
6
4
  }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbnMtb3ItYWZ0ZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL3V0aWxzL2RvbS8iLCJzb3VyY2VzIjpbImNvbnRhaW5zLW9yLWFmdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxlQUFlLENBQUMsT0FBYSxFQUFFLElBQVU7SUFDckQsT0FBTyxDQUNILE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ3RCLENBQUMsQ0FBQztRQUNFLDRCQUE0QjtRQUM1QixDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMsQ0FDN0UsQ0FDSixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBjb250YWluc09yQWZ0ZXIoY3VycmVudDogTm9kZSwgbm9kZTogTm9kZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAgIGN1cnJlbnQuY29udGFpbnMobm9kZSkgfHxcbiAgICAgICAgISEoXG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZTpuby1iaXR3aXNlXG4gICAgICAgICAgICAobm9kZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihjdXJyZW50KSAmIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HKVxuICAgICAgICApXG4gICAgKTtcbn1cbiJdfQ==
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbnMtb3ItYWZ0ZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL3V0aWxzL2RvbS8iLCJzb3VyY2VzIjpbImNvbnRhaW5zLW9yLWFmdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxlQUFlLENBQUMsT0FBYSxFQUFFLElBQVU7SUFDckQsT0FBTyxDQUNILE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMsQ0FDL0UsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gY29udGFpbnNPckFmdGVyKGN1cnJlbnQ6IE5vZGUsIG5vZGU6IE5vZGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgICBjdXJyZW50LmNvbnRhaW5zKG5vZGUpIHx8XG4gICAgICAgICEhKG5vZGUuY29tcGFyZURvY3VtZW50UG9zaXRpb24oY3VycmVudCkgJiBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX1BSRUNFRElORylcbiAgICApO1xufVxuIl19
@@ -33,4 +33,4 @@ export function getElementObscurers(element) {
33
33
  var filtered = nonNull.filter(function (el) { return !element.contains(el); });
34
34
  return filtered.length === 4 ? filtered : null;
35
35
  }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWVsZW1lbnQtb2JzY3VyZXJzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2Nkay91dGlscy9kb20vIiwic291cmNlcyI6WyJnZXQtZWxlbWVudC1vYnNjdXJlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUM1RCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUV0RTs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUFDLE9BQWdCO0lBQ3pDLElBQUEscUNBQWEsQ0FBWTtJQUVoQyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRTtRQUM5QyxPQUFPLElBQUksQ0FBQztLQUNmO0lBRUssSUFBQSw4QkFBcUQsRUFBcEQsMEJBQVUsRUFBRSw0QkFBd0MsQ0FBQztJQUM1RCxJQUFNLFdBQVcsR0FBRyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyRCxJQUFNLElBQUksR0FBRyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUM3QyxJQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM3RCxJQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM1RCxJQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUMvRCxJQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNsRSxJQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDdEYsSUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNyRixJQUFNLFFBQVEsR0FBRztRQUNiLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLENBQUM7UUFDbkQsV0FBVyxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQztRQUN0RCxXQUFXLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQztRQUNsRCxXQUFXLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQztLQUN0RCxDQUFDO0lBQ0YsSUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUUzQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRTtRQUNqQixPQUFPLE9BQU8sQ0FBQztLQUNsQjtJQUVELElBQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBQSxFQUFFLElBQUksT0FBQSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQXJCLENBQXFCLENBQUMsQ0FBQztJQUU3RCxPQUFPLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNuRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjbGFtcH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9tYXRoJztcbmltcG9ydCB7aXNQcmVzZW50fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHtnZXREb2N1bWVudE9yU2hhZG93Um9vdH0gZnJvbSAnLi9nZXQtZG9jdW1lbnQtb3Itc2hhZG93LXJvb3QnO1xuXG4vKipcbiAqIFJldHVybnMgYXJyYXkgb2YgRWxlbWVudHMgY292ZXJpbmcgZWRnZXMgb2YgZ2l2ZW4gZWxlbWVudCBvciBudWxsIGlmIGF0IGxlYXN0IG9uZSBlZGdlIG1pZGRsZSBwb2ludCBpcyB2aXNpYmxlXG4gKlxuICogQ0FVVElPTjogRW1wdHkgYXJyYXkgbWVhbnMgZWxlbWVudCBpZiBvZmZzY3JlZW4gaS5lLiBjb3ZlcmVkIGJ5IG5vIGVsZW1lbnRzLCByYXRoZXIgdGhhbiBub3QgY292ZXJlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWxlbWVudE9ic2N1cmVycyhlbGVtZW50OiBFbGVtZW50KTogUmVhZG9ubHlBcnJheTxFbGVtZW50PiB8IG51bGwge1xuICAgIGNvbnN0IHtvd25lckRvY3VtZW50fSA9IGVsZW1lbnQ7XG5cbiAgICBpZiAoIW93bmVyRG9jdW1lbnQgfHwgIW93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3Qge2lubmVyV2lkdGgsIGlubmVySGVpZ2h0fSA9IG93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc7XG4gICAgY29uc3QgZG9jdW1lbnRSZWYgPSBnZXREb2N1bWVudE9yU2hhZG93Um9vdChlbGVtZW50KTtcbiAgICBjb25zdCByZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBsZWZ0ID0gY2xhbXAoTWF0aC5yb3VuZChyZWN0LmxlZnQpICsgMiwgMCwgaW5uZXJXaWR0aCk7XG4gICAgY29uc3QgdG9wID0gY2xhbXAoTWF0aC5yb3VuZChyZWN0LnRvcCkgKyAyLCAwLCBpbm5lckhlaWdodCk7XG4gICAgY29uc3QgcmlnaHQgPSBjbGFtcChNYXRoLnJvdW5kKHJlY3QucmlnaHQpIC0gMiwgMCwgaW5uZXJXaWR0aCk7XG4gICAgY29uc3QgYm90dG9tID0gY2xhbXAoTWF0aC5yb3VuZChyZWN0LmJvdHRvbSkgLSAyLCAwLCBpbm5lckhlaWdodCk7XG4gICAgY29uc3QgaG9yaXpvbnRhbE1pZGRsZSA9IGNsYW1wKE1hdGgucm91bmQocmVjdC5sZWZ0ICsgcmVjdC53aWR0aCAvIDIpLCAwLCBpbm5lcldpZHRoKTtcbiAgICBjb25zdCB2ZXJ0aWNhbE1pZGRsZSA9IGNsYW1wKE1hdGgucm91bmQocmVjdC50b3AgKyByZWN0LmhlaWdodCAvIDIpLCAwLCBpbm5lckhlaWdodCk7XG4gICAgY29uc3QgZWxlbWVudHMgPSBbXG4gICAgICAgIGRvY3VtZW50UmVmLmVsZW1lbnRGcm9tUG9pbnQoaG9yaXpvbnRhbE1pZGRsZSwgdG9wKSxcbiAgICAgICAgZG9jdW1lbnRSZWYuZWxlbWVudEZyb21Qb2ludChob3Jpem9udGFsTWlkZGxlLCBib3R0b20pLFxuICAgICAgICBkb2N1bWVudFJlZi5lbGVtZW50RnJvbVBvaW50KGxlZnQsIHZlcnRpY2FsTWlkZGxlKSxcbiAgICAgICAgZG9jdW1lbnRSZWYuZWxlbWVudEZyb21Qb2ludChyaWdodCwgdmVydGljYWxNaWRkbGUpLFxuICAgIF07XG4gICAgY29uc3Qgbm9uTnVsbCA9IGVsZW1lbnRzLmZpbHRlcihpc1ByZXNlbnQpO1xuXG4gICAgaWYgKCFub25OdWxsLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gbm9uTnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBmaWx0ZXJlZCA9IG5vbk51bGwuZmlsdGVyKGVsID0+ICFlbGVtZW50LmNvbnRhaW5zKGVsKSk7XG5cbiAgICByZXR1cm4gZmlsdGVyZWQubGVuZ3RoID09PSA0ID8gZmlsdGVyZWQgOiBudWxsO1xufVxuIl19
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWVsZW1lbnQtb2JzY3VyZXJzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2Nkay91dGlscy9kb20vIiwic291cmNlcyI6WyJnZXQtZWxlbWVudC1vYnNjdXJlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUU1RCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUV0RTs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUFDLE9BQWdCO0lBQ3pDLElBQUEscUNBQWEsQ0FBWTtJQUVoQyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRTtRQUM5QyxPQUFPLElBQUksQ0FBQztLQUNmO0lBRUssSUFBQSw4QkFBcUQsRUFBcEQsMEJBQVUsRUFBRSw0QkFBd0MsQ0FBQztJQUM1RCxJQUFNLFdBQVcsR0FBRyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyRCxJQUFNLElBQUksR0FBRyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUM3QyxJQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM3RCxJQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM1RCxJQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUMvRCxJQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNsRSxJQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDdEYsSUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNyRixJQUFNLFFBQVEsR0FBRztRQUNiLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLENBQUM7UUFDbkQsV0FBVyxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQztRQUN0RCxXQUFXLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQztRQUNsRCxXQUFXLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQztLQUN0RCxDQUFDO0lBQ0YsSUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUUzQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRTtRQUNqQixPQUFPLE9BQU8sQ0FBQztLQUNsQjtJQUVELElBQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBQSxFQUFFLElBQUksT0FBQSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQXJCLENBQXFCLENBQUMsQ0FBQztJQUU3RCxPQUFPLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNuRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjbGFtcH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9tYXRoJztcbmltcG9ydCB7aXNQcmVzZW50fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuXG5pbXBvcnQge2dldERvY3VtZW50T3JTaGFkb3dSb290fSBmcm9tICcuL2dldC1kb2N1bWVudC1vci1zaGFkb3ctcm9vdCc7XG5cbi8qKlxuICogUmV0dXJucyBhcnJheSBvZiBFbGVtZW50cyBjb3ZlcmluZyBlZGdlcyBvZiBnaXZlbiBlbGVtZW50IG9yIG51bGwgaWYgYXQgbGVhc3Qgb25lIGVkZ2UgbWlkZGxlIHBvaW50IGlzIHZpc2libGVcbiAqXG4gKiBDQVVUSU9OOiBFbXB0eSBhcnJheSBtZWFucyBlbGVtZW50IGlmIG9mZnNjcmVlbiBpLmUuIGNvdmVyZWQgYnkgbm8gZWxlbWVudHMsIHJhdGhlciB0aGFuIG5vdCBjb3ZlcmVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbGVtZW50T2JzY3VyZXJzKGVsZW1lbnQ6IEVsZW1lbnQpOiBSZWFkb25seUFycmF5PEVsZW1lbnQ+IHwgbnVsbCB7XG4gICAgY29uc3Qge293bmVyRG9jdW1lbnR9ID0gZWxlbWVudDtcblxuICAgIGlmICghb3duZXJEb2N1bWVudCB8fCAhb3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCB7aW5uZXJXaWR0aCwgaW5uZXJIZWlnaHR9ID0gb3duZXJEb2N1bWVudC5kZWZhdWx0VmlldztcbiAgICBjb25zdCBkb2N1bWVudFJlZiA9IGdldERvY3VtZW50T3JTaGFkb3dSb290KGVsZW1lbnQpO1xuICAgIGNvbnN0IHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IGxlZnQgPSBjbGFtcChNYXRoLnJvdW5kKHJlY3QubGVmdCkgKyAyLCAwLCBpbm5lcldpZHRoKTtcbiAgICBjb25zdCB0b3AgPSBjbGFtcChNYXRoLnJvdW5kKHJlY3QudG9wKSArIDIsIDAsIGlubmVySGVpZ2h0KTtcbiAgICBjb25zdCByaWdodCA9IGNsYW1wKE1hdGgucm91bmQocmVjdC5yaWdodCkgLSAyLCAwLCBpbm5lcldpZHRoKTtcbiAgICBjb25zdCBib3R0b20gPSBjbGFtcChNYXRoLnJvdW5kKHJlY3QuYm90dG9tKSAtIDIsIDAsIGlubmVySGVpZ2h0KTtcbiAgICBjb25zdCBob3Jpem9udGFsTWlkZGxlID0gY2xhbXAoTWF0aC5yb3VuZChyZWN0LmxlZnQgKyByZWN0LndpZHRoIC8gMiksIDAsIGlubmVyV2lkdGgpO1xuICAgIGNvbnN0IHZlcnRpY2FsTWlkZGxlID0gY2xhbXAoTWF0aC5yb3VuZChyZWN0LnRvcCArIHJlY3QuaGVpZ2h0IC8gMiksIDAsIGlubmVySGVpZ2h0KTtcbiAgICBjb25zdCBlbGVtZW50cyA9IFtcbiAgICAgICAgZG9jdW1lbnRSZWYuZWxlbWVudEZyb21Qb2ludChob3Jpem9udGFsTWlkZGxlLCB0b3ApLFxuICAgICAgICBkb2N1bWVudFJlZi5lbGVtZW50RnJvbVBvaW50KGhvcml6b250YWxNaWRkbGUsIGJvdHRvbSksXG4gICAgICAgIGRvY3VtZW50UmVmLmVsZW1lbnRGcm9tUG9pbnQobGVmdCwgdmVydGljYWxNaWRkbGUpLFxuICAgICAgICBkb2N1bWVudFJlZi5lbGVtZW50RnJvbVBvaW50KHJpZ2h0LCB2ZXJ0aWNhbE1pZGRsZSksXG4gICAgXTtcbiAgICBjb25zdCBub25OdWxsID0gZWxlbWVudHMuZmlsdGVyKGlzUHJlc2VudCk7XG5cbiAgICBpZiAoIW5vbk51bGwubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBub25OdWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGZpbHRlcmVkID0gbm9uTnVsbC5maWx0ZXIoZWwgPT4gIWVsZW1lbnQuY29udGFpbnMoZWwpKTtcblxuICAgIHJldHVybiBmaWx0ZXJlZC5sZW5ndGggPT09IDQgPyBmaWx0ZXJlZCA6IG51bGw7XG59XG4iXX0=
@@ -9,6 +9,6 @@ export * from './get-element-obscurers';
9
9
  export * from './get-element-offset';
10
10
  export * from './get-scroll-parent';
11
11
  export * from './is-current-target';
12
- export * from './is-node-in';
13
12
  export * from './is-inside-iframe';
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL3V0aWxzL2RvbS8iLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2FuLXNjcm9sbCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRhaW5zLW9yLWFmdGVyJztcbmV4cG9ydCAqIGZyb20gJy4vY3VzdG9tLWV2ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZ2V0LWFjdHVhbC10YXJnZXQnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtY2xpcGJvYXJkLWRhdGEtdGV4dCc7XG5leHBvcnQgKiBmcm9tICcuL2dldC1jbG9zZXN0LWVsZW1lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtZG9jdW1lbnQtb3Itc2hhZG93LXJvb3QnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtZWxlbWVudC1vYnNjdXJlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtZWxlbWVudC1vZmZzZXQnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtc2Nyb2xsLXBhcmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2lzLWN1cnJlbnQtdGFyZ2V0JztcbmV4cG9ydCAqIGZyb20gJy4vaXMtbm9kZS1pbic7XG5leHBvcnQgKiBmcm9tICcuL2lzLWluc2lkZS1pZnJhbWUnO1xuIl19
13
+ export * from './is-node-in';
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL3V0aWxzL2RvbS8iLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2FuLXNjcm9sbCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRhaW5zLW9yLWFmdGVyJztcbmV4cG9ydCAqIGZyb20gJy4vY3VzdG9tLWV2ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZ2V0LWFjdHVhbC10YXJnZXQnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtY2xpcGJvYXJkLWRhdGEtdGV4dCc7XG5leHBvcnQgKiBmcm9tICcuL2dldC1jbG9zZXN0LWVsZW1lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtZG9jdW1lbnQtb3Itc2hhZG93LXJvb3QnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtZWxlbWVudC1vYnNjdXJlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtZWxlbWVudC1vZmZzZXQnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtc2Nyb2xsLXBhcmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2lzLWN1cnJlbnQtdGFyZ2V0JztcbmV4cG9ydCAqIGZyb20gJy4vaXMtaW5zaWRlLWlmcmFtZSc7XG5leHBvcnQgKiBmcm9tICcuL2lzLW5vZGUtaW4nO1xuIl19
@@ -34,4 +34,4 @@ export function getClosestFocusable(initial, prev, root, keyboard) {
34
34
  }
35
35
  /** @deprecated use getClosestFocusable */
36
36
  export var getClosestKeyboardFocusable = getClosestFocusable;
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWNsb3Nlc3Qta2V5Ym9hcmQtZm9jdXNhYmxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2Nkay91dGlscy9mb2N1cy8iLCJzb3VyY2VzIjpbImdldC1jbG9zZXN0LWtleWJvYXJkLWZvY3VzYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFbkU7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQy9CLE9BQW9CLEVBQ3BCLElBQXFCLEVBQ3JCLElBQVUsRUFDVixRQUF3QjtJQUZ4QixxQkFBQSxFQUFBLFlBQXFCO0lBRXJCLHlCQUFBLEVBQUEsZUFBd0I7SUFFeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7UUFDckIsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUVELElBQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDO0lBRTVFLCtDQUErQztJQUMvQyxzRkFBc0Y7SUFDdEYsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FDbEQsSUFBSSxFQUNKLFVBQVUsQ0FBQyxZQUFZLEVBQ3ZCLGFBQWEsRUFDYixLQUFLLENBQ1IsQ0FBQztJQUVGLFVBQVUsQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDO0lBRWpDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtRQUM3RCx1QkFBdUI7UUFDdkIsSUFBSSxVQUFVLENBQUMsV0FBVyxZQUFZLFdBQVcsRUFBRTtZQUMvQyxPQUFPLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQztTQUNwQztRQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2hCLE9BQU8sT0FBTyxDQUFDO1NBQ2xCO0tBQ0o7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDO0FBRUQsMENBQTBDO0FBQzFDLE1BQU0sQ0FBQyxJQUFNLDJCQUEyQixHQUFHLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtzdmdOb2RlRmlsdGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbnN0YW50cyc7XG5pbXBvcnQge2lzTmF0aXZlS2V5Ym9hcmRGb2N1c2FibGV9IGZyb20gJy4vaXMtbmF0aXZlLWtleWJvYXJkLWZvY3VzYWJsZSc7XG5pbXBvcnQge2lzTmF0aXZlTW91c2VGb2N1c2FibGV9IGZyb20gJy4vaXMtbmF0aXZlLW1vdXNlLWZvY3VzYWJsZSc7XG5cbi8qKlxuICogRmluZHMgY2xvc2VzdCBlbGVtZW50IHRoYXQgY2FuIGJlIGZvY3VzZWQgd2l0aCBhIGtleWJvYXJkIG9yIG1vdXNlIGluIHRoZW9yeVxuICpcbiAqIEBwYXJhbSBpbml0aWFsIGN1cnJlbnQgSFRNTCBlbGVtZW50XG4gKiBAcGFyYW0gcHJldiBzaG91bGQgaXQgbG9vayBiYWNrd2FyZHMgaW5zdGVhZCAoZmluZCBpdGVtIHRoYXQgd2lsbCBiZSBmb2N1c2VkIHdpdGggU2hpZnQgKyBUYWIpXG4gKiBAcGFyYW0gcm9vdCB0b3AgTm9kZSBsaW1pdGluZyB0aGUgc2VhcmNoIGFyZWFcbiAqIEBwYXJhbSBrZXlib2FyZCBkZXRlcm1pbmUgaWYgb25seSBrZXlib2FyZCBmb2N1cyBpcyBvZiBpbnRlcmVzdFxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENsb3Nlc3RGb2N1c2FibGUoXG4gICAgaW5pdGlhbDogSFRNTEVsZW1lbnQsXG4gICAgcHJldjogYm9vbGVhbiA9IGZhbHNlLFxuICAgIHJvb3Q6IE5vZGUsXG4gICAga2V5Ym9hcmQ6IGJvb2xlYW4gPSB0cnVlLFxuKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICBpZiAoIXJvb3Qub3duZXJEb2N1bWVudCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBjaGVjayA9IGtleWJvYXJkID8gaXNOYXRpdmVLZXlib2FyZEZvY3VzYWJsZSA6IGlzTmF0aXZlTW91c2VGb2N1c2FibGU7XG5cbiAgICAvLyBEZXByZWNhdGVkIGJ1dCBvbnkgdGhpcyBvdmVybG9hZCB3b3JrcyBpbiBJRVxuICAgIC8vIEZpbHRlciBtdXN0IGJlIGEgZnVuY3Rpb24gaW4gSUUsIG90aGVyIG1vZGVybiBicm93c2VycyBhcmUgY29tcGxpYW50IHRvIHRoaXMgZm9ybWF0XG4gICAgY29uc3QgdHJlZVdhbGtlciA9IHJvb3Qub3duZXJEb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKFxuICAgICAgICByb290LFxuICAgICAgICBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCxcbiAgICAgICAgc3ZnTm9kZUZpbHRlcixcbiAgICAgICAgZmFsc2UsXG4gICAgKTtcblxuICAgIHRyZWVXYWxrZXIuY3VycmVudE5vZGUgPSBpbml0aWFsO1xuXG4gICAgd2hpbGUgKHByZXYgPyB0cmVlV2Fsa2VyLnByZXZpb3VzTm9kZSgpIDogdHJlZVdhbGtlci5uZXh0Tm9kZSgpKSB7XG4gICAgICAgIC8vIFRPRE86IGlmcmFtZSB3YXJuaW5nXG4gICAgICAgIGlmICh0cmVlV2Fsa2VyLmN1cnJlbnROb2RlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGluaXRpYWwgPSB0cmVlV2Fsa2VyLmN1cnJlbnROb2RlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoZWNrKGluaXRpYWwpKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5pdGlhbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xufVxuXG4vKiogQGRlcHJlY2F0ZWQgdXNlIGdldENsb3Nlc3RGb2N1c2FibGUgKi9cbmV4cG9ydCBjb25zdCBnZXRDbG9zZXN0S2V5Ym9hcmRGb2N1c2FibGUgPSBnZXRDbG9zZXN0Rm9jdXNhYmxlO1xuIl19
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWNsb3Nlc3Qta2V5Ym9hcmQtZm9jdXNhYmxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2Nkay91dGlscy9mb2N1cy8iLCJzb3VyY2VzIjpbImdldC1jbG9zZXN0LWtleWJvYXJkLWZvY3VzYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFdEQsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFbkU7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQy9CLE9BQW9CLEVBQ3BCLElBQXFCLEVBQ3JCLElBQVUsRUFDVixRQUF3QjtJQUZ4QixxQkFBQSxFQUFBLFlBQXFCO0lBRXJCLHlCQUFBLEVBQUEsZUFBd0I7SUFFeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7UUFDckIsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUVELElBQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDO0lBRTVFLCtDQUErQztJQUMvQyxzRkFBc0Y7SUFDdEYsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FDbEQsSUFBSSxFQUNKLFVBQVUsQ0FBQyxZQUFZLEVBQ3ZCLGFBQWEsRUFDYixLQUFLLENBQ1IsQ0FBQztJQUVGLFVBQVUsQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDO0lBRWpDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtRQUM3RCx1QkFBdUI7UUFDdkIsSUFBSSxVQUFVLENBQUMsV0FBVyxZQUFZLFdBQVcsRUFBRTtZQUMvQyxPQUFPLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQztTQUNwQztRQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2hCLE9BQU8sT0FBTyxDQUFDO1NBQ2xCO0tBQ0o7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDO0FBRUQsMENBQTBDO0FBQzFDLE1BQU0sQ0FBQyxJQUFNLDJCQUEyQixHQUFHLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtzdmdOb2RlRmlsdGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbnN0YW50cyc7XG5cbmltcG9ydCB7aXNOYXRpdmVLZXlib2FyZEZvY3VzYWJsZX0gZnJvbSAnLi9pcy1uYXRpdmUta2V5Ym9hcmQtZm9jdXNhYmxlJztcbmltcG9ydCB7aXNOYXRpdmVNb3VzZUZvY3VzYWJsZX0gZnJvbSAnLi9pcy1uYXRpdmUtbW91c2UtZm9jdXNhYmxlJztcblxuLyoqXG4gKiBGaW5kcyBjbG9zZXN0IGVsZW1lbnQgdGhhdCBjYW4gYmUgZm9jdXNlZCB3aXRoIGEga2V5Ym9hcmQgb3IgbW91c2UgaW4gdGhlb3J5XG4gKlxuICogQHBhcmFtIGluaXRpYWwgY3VycmVudCBIVE1MIGVsZW1lbnRcbiAqIEBwYXJhbSBwcmV2IHNob3VsZCBpdCBsb29rIGJhY2t3YXJkcyBpbnN0ZWFkIChmaW5kIGl0ZW0gdGhhdCB3aWxsIGJlIGZvY3VzZWQgd2l0aCBTaGlmdCArIFRhYilcbiAqIEBwYXJhbSByb290IHRvcCBOb2RlIGxpbWl0aW5nIHRoZSBzZWFyY2ggYXJlYVxuICogQHBhcmFtIGtleWJvYXJkIGRldGVybWluZSBpZiBvbmx5IGtleWJvYXJkIGZvY3VzIGlzIG9mIGludGVyZXN0XG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2xvc2VzdEZvY3VzYWJsZShcbiAgICBpbml0aWFsOiBIVE1MRWxlbWVudCxcbiAgICBwcmV2OiBib29sZWFuID0gZmFsc2UsXG4gICAgcm9vdDogTm9kZSxcbiAgICBrZXlib2FyZDogYm9vbGVhbiA9IHRydWUsXG4pOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIGlmICghcm9vdC5vd25lckRvY3VtZW50KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGNoZWNrID0ga2V5Ym9hcmQgPyBpc05hdGl2ZUtleWJvYXJkRm9jdXNhYmxlIDogaXNOYXRpdmVNb3VzZUZvY3VzYWJsZTtcblxuICAgIC8vIERlcHJlY2F0ZWQgYnV0IG9ueSB0aGlzIG92ZXJsb2FkIHdvcmtzIGluIElFXG4gICAgLy8gRmlsdGVyIG11c3QgYmUgYSBmdW5jdGlvbiBpbiBJRSwgb3RoZXIgbW9kZXJuIGJyb3dzZXJzIGFyZSBjb21wbGlhbnQgdG8gdGhpcyBmb3JtYXRcbiAgICBjb25zdCB0cmVlV2Fsa2VyID0gcm9vdC5vd25lckRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoXG4gICAgICAgIHJvb3QsXG4gICAgICAgIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULFxuICAgICAgICBzdmdOb2RlRmlsdGVyLFxuICAgICAgICBmYWxzZSxcbiAgICApO1xuXG4gICAgdHJlZVdhbGtlci5jdXJyZW50Tm9kZSA9IGluaXRpYWw7XG5cbiAgICB3aGlsZSAocHJldiA/IHRyZWVXYWxrZXIucHJldmlvdXNOb2RlKCkgOiB0cmVlV2Fsa2VyLm5leHROb2RlKCkpIHtcbiAgICAgICAgLy8gVE9ETzogaWZyYW1lIHdhcm5pbmdcbiAgICAgICAgaWYgKHRyZWVXYWxrZXIuY3VycmVudE5vZGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICAgICAgaW5pdGlhbCA9IHRyZWVXYWxrZXIuY3VycmVudE5vZGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hlY2soaW5pdGlhbCkpIHtcbiAgICAgICAgICAgIHJldHVybiBpbml0aWFsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG59XG5cbi8qKiBAZGVwcmVjYXRlZCB1c2UgZ2V0Q2xvc2VzdEZvY3VzYWJsZSAqL1xuZXhwb3J0IGNvbnN0IGdldENsb3Nlc3RLZXlib2FyZEZvY3VzYWJsZSA9IGdldENsb3Nlc3RGb2N1c2FibGU7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ export function distanceBetweenTouches(_a) {
2
+ var touches = _a.touches;
3
+ return Math.hypot(touches[0].clientX - touches[1].clientX, touches[0].clientY - touches[1].clientY);
4
+ }
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzdGFuY2UtYmV0d2Vlbi10b3VjaGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzLyIsInNvdXJjZXMiOlsiZGlzdGFuY2UtYmV0d2Vlbi10b3VjaGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxFQUFxQjtRQUFwQixvQkFBTztJQUMzQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQ2IsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUN2QyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQzFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGRpc3RhbmNlQmV0d2VlblRvdWNoZXMoe3RvdWNoZXN9OiBUb3VjaEV2ZW50KTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5oeXBvdChcbiAgICAgICAgdG91Y2hlc1swXS5jbGllbnRYIC0gdG91Y2hlc1sxXS5jbGllbnRYLFxuICAgICAgICB0b3VjaGVzWzBdLmNsaWVudFkgLSB0b3VjaGVzWzFdLmNsaWVudFksXG4gICAgKTtcbn1cbiJdfQ==
@@ -3,8 +3,9 @@ import { isPresent } from './is-present';
3
3
  * If the value is null or undefined, returns default value
4
4
  * @param value
5
5
  * @param fallback alternative fallback
6
+ * @deprecated use nullish coalescing operator
6
7
  */
7
8
  export function fallbackValue(value, fallback) {
8
9
  return isPresent(value) ? value : fallback;
9
10
  }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFsbGJhY2stdmFsdWUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMvIiwic291cmNlcyI6WyJmYWxsYmFjay12YWx1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBRXZDOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFJLEtBQTJCLEVBQUUsUUFBVztJQUNyRSxPQUFPLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7QUFDL0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aXNQcmVzZW50fSBmcm9tICcuL2lzLXByZXNlbnQnO1xuXG4vKipcbiAqIElmIHRoZSB2YWx1ZSBpcyBudWxsIG9yIHVuZGVmaW5lZCwgcmV0dXJucyBkZWZhdWx0IHZhbHVlXG4gKiBAcGFyYW0gdmFsdWVcbiAqIEBwYXJhbSBmYWxsYmFjayBhbHRlcm5hdGl2ZSBmYWxsYmFja1xuICovXG5leHBvcnQgZnVuY3Rpb24gZmFsbGJhY2tWYWx1ZTxUPih2YWx1ZTogVCB8IG51bGwgfCB1bmRlZmluZWQsIGZhbGxiYWNrOiBUKTogVCB7XG4gICAgcmV0dXJuIGlzUHJlc2VudCh2YWx1ZSkgPyB2YWx1ZSA6IGZhbGxiYWNrO1xufVxuIl19
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFsbGJhY2stdmFsdWUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMvIiwic291cmNlcyI6WyJmYWxsYmFjay12YWx1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBRXZDOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBSSxLQUEyQixFQUFFLFFBQVc7SUFDckUsT0FBTyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2lzUHJlc2VudH0gZnJvbSAnLi9pcy1wcmVzZW50JztcblxuLyoqXG4gKiBJZiB0aGUgdmFsdWUgaXMgbnVsbCBvciB1bmRlZmluZWQsIHJldHVybnMgZGVmYXVsdCB2YWx1ZVxuICogQHBhcmFtIHZhbHVlXG4gKiBAcGFyYW0gZmFsbGJhY2sgYWx0ZXJuYXRpdmUgZmFsbGJhY2tcbiAqIEBkZXByZWNhdGVkIHVzZSBudWxsaXNoIGNvYWxlc2Npbmcgb3BlcmF0b3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZhbGxiYWNrVmFsdWU8VD4odmFsdWU6IFQgfCBudWxsIHwgdW5kZWZpbmVkLCBmYWxsYmFjazogVCk6IFQge1xuICAgIHJldHVybiBpc1ByZXNlbnQodmFsdWUpID8gdmFsdWUgOiBmYWxsYmFjaztcbn1cbiJdfQ==
@@ -1,7 +1,9 @@
1
+ export * from './distance-between-touches';
1
2
  export * from './ease-in-out-quad';
2
3
  export * from './fallback-value';
3
4
  export * from './flat-length';
4
5
  export * from './get-original-array-from-query-list';
6
+ export * from './get-swipe-direction';
5
7
  export * from './identity';
6
8
  export * from './is-element-editable';
7
9
  export * from './is-number';
@@ -9,5 +11,4 @@ export * from './is-present';
9
11
  export * from './mark-control-as-touched-and-validate';
10
12
  export * from './nullable-same';
11
13
  export * from './uniq-by';
12
- export * from './get-swipe-direction';
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9lYXNlLWluLW91dC1xdWFkJztcbmV4cG9ydCAqIGZyb20gJy4vZmFsbGJhY2stdmFsdWUnO1xuZXhwb3J0ICogZnJvbSAnLi9mbGF0LWxlbmd0aCc7XG5leHBvcnQgKiBmcm9tICcuL2dldC1vcmlnaW5hbC1hcnJheS1mcm9tLXF1ZXJ5LWxpc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9pZGVudGl0eSc7XG5leHBvcnQgKiBmcm9tICcuL2lzLWVsZW1lbnQtZWRpdGFibGUnO1xuZXhwb3J0ICogZnJvbSAnLi9pcy1udW1iZXInO1xuZXhwb3J0ICogZnJvbSAnLi9pcy1wcmVzZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbWFyay1jb250cm9sLWFzLXRvdWNoZWQtYW5kLXZhbGlkYXRlJztcbmV4cG9ydCAqIGZyb20gJy4vbnVsbGFibGUtc2FtZSc7XG5leHBvcnQgKiBmcm9tICcuL3VuaXEtYnknO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtc3dpcGUtZGlyZWN0aW9uJztcbiJdfQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Rpc3RhbmNlLWJldHdlZW4tdG91Y2hlcyc7XG5leHBvcnQgKiBmcm9tICcuL2Vhc2UtaW4tb3V0LXF1YWQnO1xuZXhwb3J0ICogZnJvbSAnLi9mYWxsYmFjay12YWx1ZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZsYXQtbGVuZ3RoJztcbmV4cG9ydCAqIGZyb20gJy4vZ2V0LW9yaWdpbmFsLWFycmF5LWZyb20tcXVlcnktbGlzdCc7XG5leHBvcnQgKiBmcm9tICcuL2dldC1zd2lwZS1kaXJlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9pZGVudGl0eSc7XG5leHBvcnQgKiBmcm9tICcuL2lzLWVsZW1lbnQtZWRpdGFibGUnO1xuZXhwb3J0ICogZnJvbSAnLi9pcy1udW1iZXInO1xuZXhwb3J0ICogZnJvbSAnLi9pcy1wcmVzZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbWFyay1jb250cm9sLWFzLXRvdWNoZWQtYW5kLXZhbGlkYXRlJztcbmV4cG9ydCAqIGZyb20gJy4vbnVsbGFibGUtc2FtZSc7XG5leHBvcnQgKiBmcm9tICcuL3VuaXEtYnknO1xuIl19
@@ -1,12 +1,12 @@
1
1
  import { __decorate, __param } from 'tslib';
2
- import { EventEmitter, Input, Output, HostBinding, Directive, ChangeDetectorRef, Inject, Injectable } from '@angular/core';
2
+ import { EventEmitter, Input, Output, HostBinding, Directive, ChangeDetectorRef, Inject, Injectable, TemplateRef } from '@angular/core';
3
3
  import { NgModel, NgControl } from '@angular/forms';
4
4
  import { tuiAssert } from '@taiga-ui/cdk/classes';
5
5
  import { EMPTY_FUNCTION } from '@taiga-ui/cdk/constants';
6
6
  import { tuiDefaultProp } from '@taiga-ui/cdk/decorators';
7
- import { fallbackValue } from '@taiga-ui/cdk/utils/miscellaneous';
8
- import { Subject, merge, Observable, BehaviorSubject } from 'rxjs';
9
- import { takeUntil } from 'rxjs/operators';
7
+ import { Subject, merge, Observable, BehaviorSubject, EMPTY } from 'rxjs';
8
+ import { takeUntil, switchMap, ignoreElements, endWith } from 'rxjs/operators';
9
+ import { PolymorpheusTemplate } from '@tinkoff/ng-polymorpheus';
10
10
  import { TuiIdService } from '@taiga-ui/cdk/services';
11
11
  import { DOCUMENT } from '@angular/common';
12
12
 
@@ -41,19 +41,23 @@ let AbstractTuiInteractive = AbstractTuiInteractive_1 = class AbstractTuiInterac
41
41
  return this.disabled;
42
42
  }
43
43
  get computedHovered() {
44
- return !this.computedDisabled && fallbackValue(this.pseudoHovered, this.hovered);
44
+ var _a;
45
+ return !this.computedDisabled && ((_a = this.pseudoHovered) !== null && _a !== void 0 ? _a : this.hovered);
45
46
  }
46
47
  get computedPressed() {
47
- return !this.computedDisabled && fallbackValue(this.pseudoPressed, this.pressed);
48
+ var _a;
49
+ return !this.computedDisabled && ((_a = this.pseudoPressed) !== null && _a !== void 0 ? _a : this.pressed);
48
50
  }
49
51
  get computedFocusable() {
50
52
  return !this.computedDisabled && (this.focusable || this.focused);
51
53
  }
52
54
  get computedFocused() {
53
- return !this.computedDisabled && fallbackValue(this.pseudoFocused, this.focused);
55
+ var _a;
56
+ return !this.computedDisabled && ((_a = this.pseudoFocused) !== null && _a !== void 0 ? _a : this.focused);
54
57
  }
55
58
  get computedFocusVisible() {
56
- return (!this.computedDisabled && fallbackValue(this.pseudoFocused, this.focusVisible));
59
+ var _a;
60
+ return !this.computedDisabled && ((_a = this.pseudoFocused) !== null && _a !== void 0 ? _a : this.focusVisible);
57
61
  }
58
62
  get id() {
59
63
  return !!this.nativeId ? this.nativeId : this.autoIdString;
@@ -164,10 +168,12 @@ let AbstractTuiControl = class AbstractTuiControl extends AbstractTuiInteractive
164
168
  : this.touched && this.invalid));
165
169
  }
166
170
  get value() {
167
- return fallbackValue(this.previousInternalValue, this.fallbackValue);
171
+ var _a;
172
+ return (_a = this.previousInternalValue) !== null && _a !== void 0 ? _a : this.fallbackValue;
168
173
  }
169
174
  get safeCurrentValue() {
170
- return fallbackValue(this.rawValue, this.fallbackValue);
175
+ var _a;
176
+ return (_a = this.rawValue) !== null && _a !== void 0 ? _a : this.fallbackValue;
171
177
  }
172
178
  get invalid() {
173
179
  return this.safeNgControlData(({ invalid }) => invalid, false);
@@ -249,7 +255,8 @@ let AbstractTuiControl = class AbstractTuiControl extends AbstractTuiInteractive
249
255
  return oldValue === newValue;
250
256
  }
251
257
  safeNgControlData(extractor, defaultFieldValue) {
252
- return fallbackValue(this.ngControl && extractor(this.ngControl), defaultFieldValue);
258
+ var _a;
259
+ return (_a = (this.ngControl && extractor(this.ngControl))) !== null && _a !== void 0 ? _a : defaultFieldValue;
253
260
  }
254
261
  controlMarkAsTouched() {
255
262
  this.onTouched();
@@ -322,6 +329,34 @@ AbstractTuiDialogService = __decorate([
322
329
  __param(0, Inject(TuiIdService))
323
330
  ], AbstractTuiDialogService);
324
331
 
332
+ let AbstractTuiDialogDirective = class AbstractTuiDialogDirective extends PolymorpheusTemplate {
333
+ constructor(templateRef, changeDetectorRef, service) {
334
+ super(templateRef, changeDetectorRef);
335
+ this.service = service;
336
+ this.open$ = new Subject();
337
+ this.options = {};
338
+ this.openChange = this.open$.pipe(switchMap(open => open
339
+ ? this.service
340
+ .open(this, this.options)
341
+ .pipe(ignoreElements(), endWith(false))
342
+ : EMPTY));
343
+ }
344
+ set open(open) {
345
+ this.open$.next(open);
346
+ }
347
+ };
348
+ AbstractTuiDialogDirective.ctorParameters = () => [
349
+ { type: TemplateRef, decorators: [{ type: Inject, args: [TemplateRef,] }] },
350
+ { type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] },
351
+ { type: AbstractTuiDialogService, decorators: [{ type: Inject, args: [AbstractTuiDialogService,] }] }
352
+ ];
353
+ AbstractTuiDialogDirective = __decorate([
354
+ Directive(),
355
+ __param(0, Inject(TemplateRef)),
356
+ __param(1, Inject(ChangeDetectorRef)),
357
+ __param(2, Inject(AbstractTuiDialogService))
358
+ ], AbstractTuiDialogDirective);
359
+
325
360
  let AbstractTuiMultipleControl = class AbstractTuiMultipleControl extends AbstractTuiControl {
326
361
  clear() {
327
362
  this.updateValue([]);
@@ -392,5 +427,5 @@ AbstractTuiThemeSwitcher = AbstractTuiThemeSwitcher_1 = __decorate([
392
427
  * Generated bundle index. Do not edit.
393
428
  */
394
429
 
395
- export { AbstractTuiControl, AbstractTuiDialogService, AbstractTuiInteractive, AbstractTuiMultipleControl, AbstractTuiNullableControl, AbstractTuiThemeSwitcher, TuiController };
430
+ export { AbstractTuiControl, AbstractTuiDialogDirective, AbstractTuiDialogService, AbstractTuiInteractive, AbstractTuiMultipleControl, AbstractTuiNullableControl, AbstractTuiThemeSwitcher, TuiController };
396
431
  //# sourceMappingURL=taiga-ui-cdk-abstract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-abstract.js","sources":["ng://@taiga-ui/cdk/abstract/interactive.ts","ng://@taiga-ui/cdk/abstract/control.ts","ng://@taiga-ui/cdk/abstract/controller.ts","ng://@taiga-ui/cdk/abstract/dialog.service.ts","ng://@taiga-ui/cdk/abstract/multiple-control.ts","ng://@taiga-ui/cdk/abstract/nullable-control.ts","ng://@taiga-ui/cdk/abstract/theme-switcher.ts","ng://@taiga-ui/cdk/abstract/taiga-ui-cdk-abstract.ts"],"sourcesContent":["import {Directive, EventEmitter, HostBinding, Input, Output} from '@angular/core';\nimport {tuiDefaultProp} from '@taiga-ui/cdk/decorators';\nimport {fallbackValue} from '@taiga-ui/cdk/utils/miscellaneous';\n\nconst TUI = 'tui_interactive_';\n\n/**\n * The most basic class for interactive components\n */\n@Directive()\nexport abstract class AbstractTuiInteractive {\n private readonly autoIdString: string;\n\n private static autoId = 0;\n\n abstract disabled: boolean;\n\n hovered = false;\n\n pressed = false;\n\n focusVisible = false;\n\n abstract focused: boolean;\n\n @Input()\n @tuiDefaultProp()\n pseudoHovered: boolean | null = null;\n\n @Input()\n @tuiDefaultProp()\n pseudoPressed: boolean | null = null;\n\n @Input()\n @tuiDefaultProp()\n pseudoFocused: boolean | null = null;\n\n /**\n * Determines if component is focusable with keyboard.\n */\n @Input()\n @tuiDefaultProp()\n focusable = true;\n\n @Input()\n @tuiDefaultProp()\n nativeId = '';\n\n /**\n * Emits 'true' on focus and 'false' on blur.\n */\n @Output()\n readonly focusedChange = new EventEmitter<boolean>();\n\n @Output()\n readonly pressedChange = new EventEmitter<boolean>();\n\n @Output()\n readonly hoveredChange = new EventEmitter<boolean>();\n\n @Output()\n readonly focusVisibleChange = new EventEmitter<boolean>();\n\n constructor() {\n this.autoIdString = `${TUI}${AbstractTuiInteractive.autoId++}${Date.now()}`;\n }\n\n @HostBinding('class._disabled')\n get computedDisabled(): boolean {\n return this.disabled;\n }\n\n @HostBinding('class._hovered')\n get computedHovered(): boolean {\n return !this.computedDisabled && fallbackValue(this.pseudoHovered, this.hovered);\n }\n\n @HostBinding('class._pressed')\n get computedPressed(): boolean {\n return !this.computedDisabled && fallbackValue(this.pseudoPressed, this.pressed);\n }\n\n get computedFocusable(): boolean {\n return !this.computedDisabled && (this.focusable || this.focused);\n }\n\n @HostBinding('class._focused')\n get computedFocused(): boolean {\n return !this.computedDisabled && fallbackValue(this.pseudoFocused, this.focused);\n }\n\n @HostBinding('class._focus-visible')\n get computedFocusVisible(): boolean {\n return (\n !this.computedDisabled && fallbackValue(this.pseudoFocused, this.focusVisible)\n );\n }\n\n get id(): string {\n return !!this.nativeId ? this.nativeId : this.autoIdString;\n }\n\n protected updateHovered(hovered: boolean) {\n if (this.hovered === hovered) {\n return;\n }\n\n this.hovered = hovered;\n this.hoveredChange.emit(hovered);\n }\n\n protected updatePressed(pressed: boolean) {\n if (this.pressed === pressed) {\n return;\n }\n\n this.pressed = pressed;\n this.pressedChange.emit(pressed);\n }\n\n protected updateFocused(focused: boolean) {\n this.focusedChange.emit(focused);\n }\n\n protected updateFocusVisible(focusVisible: boolean) {\n if (this.focusVisible === focusVisible) {\n return;\n }\n\n this.focusVisible = focusVisible;\n this.focusVisibleChange.emit(focusVisible);\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport {AbstractControl, ControlValueAccessor, NgControl, NgModel} from '@angular/forms';\nimport {tuiAssert} from '@taiga-ui/cdk/classes';\nimport {EMPTY_FUNCTION} from '@taiga-ui/cdk/constants';\nimport {tuiDefaultProp} from '@taiga-ui/cdk/decorators';\nimport {fallbackValue} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {merge, Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\nimport {AbstractTuiInteractive} from './interactive';\n\n/**\n * Basic ControlValueAccessor class to build form components upon\n */\n@Directive()\nexport abstract class AbstractTuiControl<T>\n extends AbstractTuiInteractive\n implements OnDestroy, OnInit, ControlValueAccessor\n{\n private previousInternalValue?: T | null;\n\n private onTouched = EMPTY_FUNCTION;\n\n private onChange = EMPTY_FUNCTION;\n\n protected readonly fallbackValue = this.getFallbackValue();\n\n protected readonly destroy$ = new Subject<void>();\n\n @Input()\n @HostBinding('class._readonly')\n @tuiDefaultProp()\n readOnly = false;\n\n @Input()\n @tuiDefaultProp()\n pseudoInvalid: boolean | null = null;\n\n protected constructor(\n private readonly ngControl: NgControl | null,\n protected readonly changeDetectorRef: ChangeDetectorRef,\n ) {\n super();\n\n if (this.ngControl === null) {\n tuiAssert.assert(\n false,\n `NgControl not injected in ${this.constructor.name}!\\n`,\n 'Use [(ngModel)] or [formControl] or formControlName for correct work.',\n );\n } else {\n this.ngControl.valueAccessor = this;\n }\n }\n\n @HostBinding('class._invalid')\n get computedInvalid(): boolean {\n return (\n !this.readOnly &&\n !this.disabled &&\n (this.pseudoInvalid !== null\n ? this.pseudoInvalid\n : this.touched && this.invalid)\n );\n }\n\n get value(): T {\n return fallbackValue<T>(this.previousInternalValue, this.fallbackValue);\n }\n\n get safeCurrentValue(): T {\n return fallbackValue<T>(this.rawValue, this.fallbackValue);\n }\n\n get invalid(): boolean {\n return this.safeNgControlData<boolean>(({invalid}) => invalid, false);\n }\n\n get valid(): boolean {\n return this.safeNgControlData<boolean>(({valid}) => valid, false);\n }\n\n get touched(): boolean {\n return this.safeNgControlData<boolean>(({touched}) => touched, false);\n }\n\n get disabled(): boolean {\n return this.safeNgControlData<boolean>(({disabled}) => disabled, false);\n }\n\n get control(): AbstractControl | null {\n return this.safeNgControlData<AbstractControl | null>(\n ({control}) => control,\n null,\n );\n }\n\n get computedName(): string | number | null {\n return this.controlName;\n }\n\n protected get controlName(): string | number | null {\n return this.ngControl && this.ngControl.name;\n }\n\n private get rawValue(): T | undefined {\n const {ngControl} = this;\n\n if (ngControl === null) {\n return undefined;\n }\n\n return ngControl instanceof NgModel && this.previousInternalValue === undefined\n ? ngControl.viewModel\n : ngControl.value;\n }\n\n ngOnInit() {\n if (\n !this.ngControl ||\n !this.ngControl.valueChanges ||\n !this.ngControl.statusChanges\n ) {\n return;\n }\n\n merge(this.ngControl.valueChanges, this.ngControl.statusChanges)\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.refreshLocalValue(this.safeCurrentValue);\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n checkControlUpdate() {\n this.changeDetectorRef.markForCheck();\n }\n\n registerOnChange(onChange: (value: T) => void) {\n this.onChange = onChange;\n }\n\n registerOnTouched(onTouched: () => void) {\n this.onTouched = onTouched;\n }\n\n setDisabledState() {\n this.checkControlUpdate();\n }\n\n writeValue(value: T | null) {\n this.refreshLocalValue(\n this.ngControl instanceof NgModel && this.previousInternalValue === undefined\n ? this.ngControl.model\n : value,\n );\n }\n\n protected abstract getFallbackValue(): T;\n\n protected updateFocused(focused: boolean) {\n if (!focused) {\n this.controlMarkAsTouched();\n }\n\n super.updateFocused(focused);\n }\n\n protected updateValue(value: T) {\n if (this.disabled || this.valueIdenticalComparator(this.value, value)) {\n return;\n }\n\n this.previousInternalValue = value;\n this.controlSetValue(value);\n }\n\n protected valueIdenticalComparator(oldValue: T, newValue: T): boolean {\n return oldValue === newValue;\n }\n\n private safeNgControlData<T>(\n extractor: (ngControl: NgControl) => T | null | undefined,\n defaultFieldValue: T,\n ): T {\n return fallbackValue<T>(\n this.ngControl && extractor(this.ngControl),\n defaultFieldValue,\n );\n }\n\n private controlMarkAsTouched() {\n this.onTouched();\n this.checkControlUpdate();\n }\n\n private controlSetValue(value: T) {\n this.onChange(value);\n this.checkControlUpdate();\n }\n\n private refreshLocalValue(value: T | null) {\n this.previousInternalValue = value;\n this.checkControlUpdate();\n }\n}\n","import {OnChanges} from '@angular/core';\nimport {Subject} from 'rxjs';\n\nexport abstract class TuiController implements OnChanges {\n readonly change$ = new Subject<void>();\n\n ngOnChanges() {\n this.change$.next();\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {TuiBaseDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {TuiIdService} from '@taiga-ui/cdk/services';\nimport {TuiDialog} from '@taiga-ui/cdk/types';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {BehaviorSubject, Observable} from 'rxjs';\n\n@Injectable()\nexport abstract class AbstractTuiDialogService<T extends {}> extends Observable<\n readonly TuiDialog<T, any>[]\n> {\n protected abstract readonly component: PolymorpheusContent<TuiDialog<T, any>>;\n\n protected abstract readonly defaultOptions: T;\n\n protected readonly dialogs$ = new BehaviorSubject<readonly TuiDialog<T, any>[]>([]);\n\n protected constructor(\n @Inject(TuiIdService) private readonly idService: TuiIdService,\n ) {\n super(observer => this.dialogs$.subscribe(observer));\n }\n\n open<G>(\n content: PolymorpheusContent<TuiBaseDialogContext<G> & T>,\n options: Partial<T> = {},\n ): Observable<G> {\n return new Observable(observer => {\n const completeWith = (result: G) => {\n observer.next(result);\n observer.complete();\n };\n const dialog = {\n ...this.defaultOptions,\n ...options,\n content,\n completeWith,\n $implicit: observer,\n component: this.component,\n createdAt: Date.now(),\n id: this.idService.generate(),\n };\n\n this.dialogs$.next([...this.dialogs$.value, dialog]);\n\n return () => {\n this.dialogs$.next(this.dialogs$.value.filter(item => item !== dialog));\n };\n });\n }\n}\n","import {Directive} from '@angular/core';\nimport {AbstractTuiControl} from './control';\n\n@Directive()\nexport abstract class AbstractTuiMultipleControl<T> extends AbstractTuiControl<\n ReadonlyArray<T>\n> {\n clear() {\n this.updateValue([]);\n }\n\n protected getFallbackValue(): ReadonlyArray<T> {\n return [];\n }\n}\n","import {Directive} from '@angular/core';\nimport {AbstractTuiControl} from './control';\n\n@Directive()\nexport abstract class AbstractTuiNullableControl<T> extends AbstractTuiControl<T | null> {\n protected getFallbackValue(): T | null {\n return null;\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Directive, Inject, OnDestroy} from '@angular/core';\n\n/**\n * Use this abstract class to create your own toggleable themes.\n * A component extending this class must have CSS variables definitions\n * and have ViewEncapsulation set to NONE. A boolean input allows to\n * switch theme on or off.\n * @dynamic\n */\n@Directive()\nexport abstract class AbstractTuiThemeSwitcher implements OnDestroy {\n static style: HTMLStyleElement | null = null;\n\n constructor(@Inject(DOCUMENT) private readonly documentRef: Document) {\n if (this.style !== null) {\n this.addTheme();\n\n return;\n }\n\n const styles = this.documentRef.head.querySelectorAll('style');\n\n (<typeof AbstractTuiThemeSwitcher>this.constructor).style =\n styles[styles.length - 1];\n }\n\n get style(): HTMLStyleElement | null {\n return (<typeof AbstractTuiThemeSwitcher>this.constructor).style;\n }\n\n ngOnDestroy() {\n this.removeTheme();\n }\n\n private addTheme() {\n if (this.style) {\n this.documentRef.head.appendChild(this.style);\n }\n }\n\n private removeTheme() {\n if (this.style && this.documentRef.head.contains(this.style)) {\n this.documentRef.head.removeChild(this.style);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-abstract.js","sources":["ng://@taiga-ui/cdk/abstract/interactive.ts","ng://@taiga-ui/cdk/abstract/control.ts","ng://@taiga-ui/cdk/abstract/controller.ts","ng://@taiga-ui/cdk/abstract/dialog.service.ts","ng://@taiga-ui/cdk/abstract/dialog.directive.ts","ng://@taiga-ui/cdk/abstract/multiple-control.ts","ng://@taiga-ui/cdk/abstract/nullable-control.ts","ng://@taiga-ui/cdk/abstract/theme-switcher.ts","ng://@taiga-ui/cdk/abstract/taiga-ui-cdk-abstract.ts"],"sourcesContent":["import {Directive, EventEmitter, HostBinding, Input, Output} from '@angular/core';\nimport {tuiDefaultProp} from '@taiga-ui/cdk/decorators';\n\nconst TUI = 'tui_interactive_';\n\n/**\n * The most basic class for interactive components\n */\n@Directive()\nexport abstract class AbstractTuiInteractive {\n private readonly autoIdString: string;\n\n private static autoId = 0;\n\n abstract disabled: boolean;\n\n hovered = false;\n\n pressed = false;\n\n focusVisible = false;\n\n abstract focused: boolean;\n\n @Input()\n @tuiDefaultProp()\n pseudoHovered: boolean | null = null;\n\n @Input()\n @tuiDefaultProp()\n pseudoPressed: boolean | null = null;\n\n @Input()\n @tuiDefaultProp()\n pseudoFocused: boolean | null = null;\n\n /**\n * Determines if component is focusable with keyboard.\n */\n @Input()\n @tuiDefaultProp()\n focusable = true;\n\n @Input()\n @tuiDefaultProp()\n nativeId = '';\n\n /**\n * Emits 'true' on focus and 'false' on blur.\n */\n @Output()\n readonly focusedChange = new EventEmitter<boolean>();\n\n @Output()\n readonly pressedChange = new EventEmitter<boolean>();\n\n @Output()\n readonly hoveredChange = new EventEmitter<boolean>();\n\n @Output()\n readonly focusVisibleChange = new EventEmitter<boolean>();\n\n constructor() {\n this.autoIdString = `${TUI}${AbstractTuiInteractive.autoId++}${Date.now()}`;\n }\n\n @HostBinding('class._disabled')\n get computedDisabled(): boolean {\n return this.disabled;\n }\n\n @HostBinding('class._hovered')\n get computedHovered(): boolean {\n return !this.computedDisabled && (this.pseudoHovered ?? this.hovered);\n }\n\n @HostBinding('class._pressed')\n get computedPressed(): boolean {\n return !this.computedDisabled && (this.pseudoPressed ?? this.pressed);\n }\n\n get computedFocusable(): boolean {\n return !this.computedDisabled && (this.focusable || this.focused);\n }\n\n @HostBinding('class._focused')\n get computedFocused(): boolean {\n return !this.computedDisabled && (this.pseudoFocused ?? this.focused);\n }\n\n @HostBinding('class._focus-visible')\n get computedFocusVisible(): boolean {\n return !this.computedDisabled && (this.pseudoFocused ?? this.focusVisible);\n }\n\n get id(): string {\n return !!this.nativeId ? this.nativeId : this.autoIdString;\n }\n\n protected updateHovered(hovered: boolean) {\n if (this.hovered === hovered) {\n return;\n }\n\n this.hovered = hovered;\n this.hoveredChange.emit(hovered);\n }\n\n protected updatePressed(pressed: boolean) {\n if (this.pressed === pressed) {\n return;\n }\n\n this.pressed = pressed;\n this.pressedChange.emit(pressed);\n }\n\n protected updateFocused(focused: boolean) {\n this.focusedChange.emit(focused);\n }\n\n protected updateFocusVisible(focusVisible: boolean) {\n if (this.focusVisible === focusVisible) {\n return;\n }\n\n this.focusVisible = focusVisible;\n this.focusVisibleChange.emit(focusVisible);\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport {AbstractControl, ControlValueAccessor, NgControl, NgModel} from '@angular/forms';\nimport {tuiAssert} from '@taiga-ui/cdk/classes';\nimport {EMPTY_FUNCTION} from '@taiga-ui/cdk/constants';\nimport {tuiDefaultProp} from '@taiga-ui/cdk/decorators';\nimport {merge, Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {AbstractTuiInteractive} from './interactive';\n\n/**\n * Basic ControlValueAccessor class to build form components upon\n */\n@Directive()\nexport abstract class AbstractTuiControl<T>\n extends AbstractTuiInteractive\n implements OnDestroy, OnInit, ControlValueAccessor\n{\n private previousInternalValue?: T | null;\n\n private onTouched = EMPTY_FUNCTION;\n\n private onChange = EMPTY_FUNCTION;\n\n protected readonly fallbackValue = this.getFallbackValue();\n\n protected readonly destroy$ = new Subject<void>();\n\n @Input()\n @HostBinding('class._readonly')\n @tuiDefaultProp()\n readOnly = false;\n\n @Input()\n @tuiDefaultProp()\n pseudoInvalid: boolean | null = null;\n\n protected constructor(\n private readonly ngControl: NgControl | null,\n protected readonly changeDetectorRef: ChangeDetectorRef,\n ) {\n super();\n\n if (this.ngControl === null) {\n tuiAssert.assert(\n false,\n `NgControl not injected in ${this.constructor.name}!\\n`,\n 'Use [(ngModel)] or [formControl] or formControlName for correct work.',\n );\n } else {\n this.ngControl.valueAccessor = this;\n }\n }\n\n @HostBinding('class._invalid')\n get computedInvalid(): boolean {\n return (\n !this.readOnly &&\n !this.disabled &&\n (this.pseudoInvalid !== null\n ? this.pseudoInvalid\n : this.touched && this.invalid)\n );\n }\n\n get value(): T {\n return this.previousInternalValue ?? this.fallbackValue;\n }\n\n get safeCurrentValue(): T {\n return this.rawValue ?? this.fallbackValue;\n }\n\n get invalid(): boolean {\n return this.safeNgControlData<boolean>(({invalid}) => invalid, false);\n }\n\n get valid(): boolean {\n return this.safeNgControlData<boolean>(({valid}) => valid, false);\n }\n\n get touched(): boolean {\n return this.safeNgControlData<boolean>(({touched}) => touched, false);\n }\n\n get disabled(): boolean {\n return this.safeNgControlData<boolean>(({disabled}) => disabled, false);\n }\n\n get control(): AbstractControl | null {\n return this.safeNgControlData<AbstractControl | null>(\n ({control}) => control,\n null,\n );\n }\n\n get computedName(): string | number | null {\n return this.controlName;\n }\n\n protected get controlName(): string | number | null {\n return this.ngControl && this.ngControl.name;\n }\n\n private get rawValue(): T | undefined {\n const {ngControl} = this;\n\n if (ngControl === null) {\n return undefined;\n }\n\n return ngControl instanceof NgModel && this.previousInternalValue === undefined\n ? ngControl.viewModel\n : ngControl.value;\n }\n\n ngOnInit() {\n if (\n !this.ngControl ||\n !this.ngControl.valueChanges ||\n !this.ngControl.statusChanges\n ) {\n return;\n }\n\n merge(this.ngControl.valueChanges, this.ngControl.statusChanges)\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.refreshLocalValue(this.safeCurrentValue);\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n checkControlUpdate() {\n this.changeDetectorRef.markForCheck();\n }\n\n registerOnChange(onChange: (value: T) => void) {\n this.onChange = onChange;\n }\n\n registerOnTouched(onTouched: () => void) {\n this.onTouched = onTouched;\n }\n\n setDisabledState() {\n this.checkControlUpdate();\n }\n\n writeValue(value: T | null) {\n this.refreshLocalValue(\n this.ngControl instanceof NgModel && this.previousInternalValue === undefined\n ? this.ngControl.model\n : value,\n );\n }\n\n protected abstract getFallbackValue(): T;\n\n protected updateFocused(focused: boolean) {\n if (!focused) {\n this.controlMarkAsTouched();\n }\n\n super.updateFocused(focused);\n }\n\n protected updateValue(value: T) {\n if (this.disabled || this.valueIdenticalComparator(this.value, value)) {\n return;\n }\n\n this.previousInternalValue = value;\n this.controlSetValue(value);\n }\n\n protected valueIdenticalComparator(oldValue: T, newValue: T): boolean {\n return oldValue === newValue;\n }\n\n private safeNgControlData<T>(\n extractor: (ngControl: NgControl) => T | null | undefined,\n defaultFieldValue: T,\n ): T {\n return (this.ngControl && extractor(this.ngControl)) ?? defaultFieldValue;\n }\n\n private controlMarkAsTouched() {\n this.onTouched();\n this.checkControlUpdate();\n }\n\n private controlSetValue(value: T) {\n this.onChange(value);\n this.checkControlUpdate();\n }\n\n private refreshLocalValue(value: T | null) {\n this.previousInternalValue = value;\n this.checkControlUpdate();\n }\n}\n","import {OnChanges} from '@angular/core';\nimport {Subject} from 'rxjs';\n\nexport abstract class TuiController implements OnChanges {\n readonly change$ = new Subject<void>();\n\n ngOnChanges() {\n this.change$.next();\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {TuiBaseDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {TuiIdService} from '@taiga-ui/cdk/services';\nimport {TuiDialog} from '@taiga-ui/cdk/types';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {BehaviorSubject, Observable} from 'rxjs';\n\n@Injectable()\nexport abstract class AbstractTuiDialogService<T extends {}> extends Observable<\n readonly TuiDialog<T, any>[]\n> {\n protected abstract readonly component: PolymorpheusContent<TuiDialog<T, any>>;\n\n protected abstract readonly defaultOptions: T;\n\n protected readonly dialogs$ = new BehaviorSubject<readonly TuiDialog<T, any>[]>([]);\n\n protected constructor(\n @Inject(TuiIdService) private readonly idService: TuiIdService,\n ) {\n super(observer => this.dialogs$.subscribe(observer));\n }\n\n open<G>(\n content: PolymorpheusContent<TuiBaseDialogContext<G> & T>,\n options: Partial<T> = {},\n ): Observable<G> {\n return new Observable(observer => {\n const completeWith = (result: G) => {\n observer.next(result);\n observer.complete();\n };\n const dialog = {\n ...this.defaultOptions,\n ...options,\n content,\n completeWith,\n $implicit: observer,\n component: this.component,\n createdAt: Date.now(),\n id: this.idService.generate(),\n };\n\n this.dialogs$.next([...this.dialogs$.value, dialog]);\n\n return () => {\n this.dialogs$.next(this.dialogs$.value.filter(item => item !== dialog));\n };\n });\n }\n}\n","import {ChangeDetectorRef, Directive, Inject, TemplateRef} from '@angular/core';\nimport {TuiDialog} from '@taiga-ui/cdk/types';\nimport {PolymorpheusTemplate} from '@tinkoff/ng-polymorpheus';\nimport {EMPTY, Subject} from 'rxjs';\nimport {endWith, ignoreElements, switchMap} from 'rxjs/operators';\n\nimport {AbstractTuiDialogService} from './dialog.service';\n\n@Directive()\nexport abstract class AbstractTuiDialogDirective<T> extends PolymorpheusTemplate<\n TuiDialog<T, void>\n> {\n private readonly open$ = new Subject<boolean>();\n\n options: Partial<T> = {};\n\n set open(open: boolean) {\n this.open$.next(open);\n }\n\n openChange = this.open$.pipe(\n switchMap(open =>\n open\n ? this.service\n .open(this, this.options)\n .pipe(ignoreElements(), endWith(false))\n : EMPTY,\n ),\n );\n\n constructor(\n @Inject(TemplateRef)\n templateRef: TemplateRef<TuiDialog<T, void>>,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(AbstractTuiDialogService)\n private readonly service: AbstractTuiDialogService<T>,\n ) {\n super(templateRef, changeDetectorRef);\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {AbstractTuiControl} from './control';\n\n@Directive()\nexport abstract class AbstractTuiMultipleControl<T> extends AbstractTuiControl<\n ReadonlyArray<T>\n> {\n clear() {\n this.updateValue([]);\n }\n\n protected getFallbackValue(): ReadonlyArray<T> {\n return [];\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {AbstractTuiControl} from './control';\n\n@Directive()\nexport abstract class AbstractTuiNullableControl<T> extends AbstractTuiControl<T | null> {\n protected getFallbackValue(): T | null {\n return null;\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Directive, Inject, OnDestroy} from '@angular/core';\n\n/**\n * Use this abstract class to create your own toggleable themes.\n * A component extending this class must have CSS variables definitions\n * and have ViewEncapsulation set to NONE. A boolean input allows to\n * switch theme on or off.\n * @dynamic\n */\n@Directive()\nexport abstract class AbstractTuiThemeSwitcher implements OnDestroy {\n static style: HTMLStyleElement | null = null;\n\n constructor(@Inject(DOCUMENT) private readonly documentRef: Document) {\n if (this.style !== null) {\n this.addTheme();\n\n return;\n }\n\n const styles = this.documentRef.head.querySelectorAll('style');\n\n (<typeof AbstractTuiThemeSwitcher>this.constructor).style =\n styles[styles.length - 1];\n }\n\n get style(): HTMLStyleElement | null {\n return (<typeof AbstractTuiThemeSwitcher>this.constructor).style;\n }\n\n ngOnDestroy() {\n this.removeTheme();\n }\n\n private addTheme() {\n if (this.style) {\n this.documentRef.head.appendChild(this.style);\n }\n }\n\n private removeTheme() {\n if (this.style && this.documentRef.head.contains(this.style)) {\n this.documentRef.head.removeChild(this.style);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -69,7 +69,7 @@ TuiDialogHostComponent.ctorParameters = () => [
69
69
  TuiDialogHostComponent = __decorate([
70
70
  Component({
71
71
  selector: 'tui-dialog-host',
72
- template: "<ng-container *ngIf=\"dialogs$ | async as dialogs\">\n <section\n *ngFor=\"let item of dialogs\"\n polymorpheus-outlet\n tuiFocusTrap\n tuiScrollRef\n tuiOverscroll=\"all\"\n class=\"dialog\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-labelledby]=\"item.id\"\n [content]=\"item.component\"\n [context]=\"item\"\n [@tuiParentAnimation]\n ></section>\n <div\n *tuiLet=\"isDialogClosesOnBack$ | async as isDialogClosesOnBack\"\n class=\"overlay\"\n (window:popstate)=\"closeLast(dialogs, isDialogClosesOnBack)\"\n (transitionend)=\"onDialog($event, !!dialogs.length, isDialogClosesOnBack)\"\n [class.overlay_visible]=\"dialogs.length\"\n ></div>\n</ng-container>\n",
72
+ template: "<ng-container *ngIf=\"dialogs$ | async as dialogs\">\n <section\n *ngFor=\"let item of dialogs\"\n polymorpheus-outlet\n tuiFocusTrap\n tuiScrollRef\n tuiOverscroll=\"all\"\n role=\"dialog\"\n aria-modal=\"true\"\n class=\"dialog\"\n [@tuiParentAnimation]\n [attr.aria-labelledby]=\"item.id\"\n [content]=\"item.component\"\n [context]=\"item\"\n ></section>\n <div\n *tuiLet=\"isDialogClosesOnBack$ | async as isDialogClosesOnBack\"\n class=\"overlay\"\n [class.overlay_visible]=\"dialogs.length\"\n (window:popstate)=\"closeLast(dialogs, isDialogClosesOnBack)\"\n (transitionend)=\"onDialog($event, !!dialogs.length, isDialogClosesOnBack)\"\n ></div>\n</ng-container>\n",
73
73
  changeDetection: ChangeDetectionStrategy.OnPush,
74
74
  animations: [TUI_PARENT_ANIMATION],
75
75
  styles: [":host{position:fixed;left:0;bottom:0;width:100%;height:0}.dialog,.overlay{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;align-items:flex-start;outline:0;overflow:auto;overflow:overlay}.overlay{height:100vh;pointer-events:none;touch-action:none;opacity:0;letter-spacing:normal;transition:opacity var(--tui-duration),letter-spacing 10ms;background:rgba(0,0,0,.75)}.overlay_visible{opacity:1;letter-spacing:1px}.dialog:last-of-type{z-index:1}"]
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-components-dialog-host.js","sources":["ng://@taiga-ui/cdk/components/dialog-host/dialog-host.component.ts","ng://@taiga-ui/cdk/components/dialog-host/dialog-host.module.ts","ng://@taiga-ui/cdk/components/dialog-host/taiga-ui-cdk-components-dialog-host.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n inject,\n Inject,\n InjectionToken,\n} from '@angular/core';\nimport {Title} from '@angular/platform-browser';\nimport {HISTORY, WINDOW} from '@ng-web-apis/common';\nimport {TUI_PARENT_ANIMATION} from '@taiga-ui/cdk/constants';\nimport {TUI_DIALOGS} from '@taiga-ui/cdk/tokens';\nimport {TuiDialog} from '@taiga-ui/cdk/types';\nimport {isInsideIframe} from '@taiga-ui/cdk/utils';\nimport {combineLatest, Observable, of} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nexport const TUI_DIALOG_CLOSES_ON_BACK = new InjectionToken<Observable<boolean>>(\n 'Is closing dialog on browser backward navigation enabled',\n {\n /**\n * TODO enable this feature for iframes too\n * when the legacy frame manager (with an iframe inside) will be removed on all internal projects\n */\n factory: () => of(!isInsideIframe(inject(WINDOW))),\n },\n);\n\n// TODO: remove in ivy compilation\nexport const FAKE_HISTORY_STATE = {label: 'ignoreMe'} as const;\n// TODO: remove in ivy compilation\nexport const isFakeHistoryState = (\n historyState: Record<string, unknown>,\n): historyState is typeof FAKE_HISTORY_STATE =>\n historyState?.label === FAKE_HISTORY_STATE.label;\n\n// @dynamic\n@Component({\n selector: 'tui-dialog-host',\n templateUrl: './dialog-host.template.html',\n styleUrls: ['./dialog-host.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [TUI_PARENT_ANIMATION],\n})\nexport class TuiDialogHostComponent<T extends TuiDialog<unknown, unknown>> {\n readonly dialogs$ = combineLatest(this.dialogsByType).pipe(\n map(allTypesDialogs =>\n new Array<T>()\n .concat(...allTypesDialogs)\n .sort((a, b) => a.createdAt - b.createdAt),\n ),\n );\n\n constructor(\n @Inject(TUI_DIALOG_CLOSES_ON_BACK)\n readonly isDialogClosesOnBack$: Observable<boolean>,\n @Inject(TUI_DIALOGS) private readonly dialogsByType: Observable<readonly T[]>[],\n @Inject(HISTORY) private readonly historyRef: History,\n @Inject(Title) private readonly titleService: Title,\n ) {}\n\n closeLast(dialogs: readonly T[], isDialogClosesOnBack: boolean) {\n if (!isDialogClosesOnBack) {\n return;\n }\n\n const [last] = dialogs.slice(-1);\n\n if (!last) {\n return;\n }\n\n if (dialogs.length > 1) {\n this.historyRef.pushState(FAKE_HISTORY_STATE, this.titleService.getTitle());\n }\n\n last.$implicit.complete();\n }\n\n onDialog(\n {propertyName}: TransitionEvent,\n popupOpened: boolean,\n isDialogClosesOnBack: boolean,\n ) {\n if (!isDialogClosesOnBack || propertyName !== 'letter-spacing') {\n return;\n }\n\n if (popupOpened) {\n this.historyRef.pushState(FAKE_HISTORY_STATE, this.titleService.getTitle());\n } else if (isFakeHistoryState(this.historyRef.state)) {\n this.historyRef.back();\n }\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiLetModule} from '@taiga-ui/cdk/directives';\nimport {TuiFocusTrapModule} from '@taiga-ui/cdk/directives/focus-trap';\nimport {TuiOverscrollModule} from '@taiga-ui/cdk/directives/overscroll';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\nimport {TuiDialogHostComponent} from './dialog-host.component';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiOverscrollModule,\n TuiFocusTrapModule,\n TuiLetModule,\n ],\n declarations: [TuiDialogHostComponent],\n exports: [TuiDialogHostComponent],\n})\nexport class TuiDialogHostModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;MAgBa,yBAAyB,GAAG,IAAI,cAAc,CACvD,0DAA0D,EAC1D;;;;;IAKI,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;CACrD,EACH;AAEF;MACa,kBAAkB,GAAG,EAAC,KAAK,EAAE,UAAU,GAAW;AAC/D;MACa,kBAAkB,GAAG,CAC9B,YAAqC,KAErC,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,KAAK,MAAK,kBAAkB,CAAC,MAAM;AAErD;IAQa,sBAAsB,GAAnC,MAAa,sBAAsB;IAS/B,YAEa,qBAA0C,EACb,aAAyC,EAC7C,UAAmB,EACrB,YAAmB;QAH1C,0BAAqB,GAArB,qBAAqB,CAAqB;QACb,kBAAa,GAAb,aAAa,CAA4B;QAC7C,eAAU,GAAV,UAAU,CAAS;QACrB,iBAAY,GAAZ,YAAY,CAAO;QAb9C,aAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CACtD,GAAG,CAAC,eAAe,IACf,IAAI,KAAK,EAAK;aACT,MAAM,CAAC,GAAG,eAAe,CAAC;aAC1B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CACjD,CACJ,CAAC;KAQE;IAEJ,SAAS,CAAC,OAAqB,EAAE,oBAA6B;QAC1D,IAAI,CAAC,oBAAoB,EAAE;YACvB,OAAO;SACV;QAED,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAEjC,IAAI,CAAC,IAAI,EAAE;YACP,OAAO;SACV;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,kBAAkB,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC/E;QAED,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;KAC7B;IAED,QAAQ,CACJ,EAAC,YAAY,EAAkB,EAC/B,WAAoB,EACpB,oBAA6B;QAE7B,IAAI,CAAC,oBAAoB,IAAI,YAAY,KAAK,gBAAgB,EAAE;YAC5D,OAAO;SACV;QAED,IAAI,WAAW,EAAE;YACb,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,kBAAkB,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC/E;aAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YAClD,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;SAC1B;KACJ;EACJ;;YAvCuC,UAAU,uBADzC,MAAM,SAAC,yBAAyB;wCAEhC,MAAM,SAAC,WAAW;YAC2B,OAAO,uBAApD,MAAM,SAAC,OAAO;YAC+B,KAAK,uBAAlD,MAAM,SAAC,KAAK;;AAdR,sBAAsB;IAPlC,SAAS,CAAC;QACP,QAAQ,EAAE,iBAAiB;QAC3B,8yBAA0C;QAE1C,eAAe,EAAE,uBAAuB,CAAC,MAAM;QAC/C,UAAU,EAAE,CAAC,oBAAoB,CAAC;;KACrC,CAAC;IAWO,WAAA,MAAM,CAAC,yBAAyB,CAAC,CAAA;IAEjC,WAAA,MAAM,CAAC,WAAW,CAAC,CAAA;IACnB,WAAA,MAAM,CAAC,OAAO,CAAC,CAAA;IACf,WAAA,MAAM,CAAC,KAAK,CAAC,CAAA;GAdT,sBAAsB,CAkDlC;;IC1EY,mBAAmB,GAAhC,MAAa,mBAAmB;EAAG;AAAtB,mBAAmB;IAX/B,QAAQ,CAAC;QACN,OAAO,EAAE;YACL,YAAY;YACZ,kBAAkB;YAClB,mBAAmB;YACnB,kBAAkB;YAClB,YAAY;SACf;QACD,YAAY,EAAE,CAAC,sBAAsB,CAAC;QACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;KACpC,CAAC;GACW,mBAAmB,CAAG;;ACnBnC;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-components-dialog-host.js","sources":["ng://@taiga-ui/cdk/components/dialog-host/dialog-host.component.ts","ng://@taiga-ui/cdk/components/dialog-host/dialog-host.module.ts","ng://@taiga-ui/cdk/components/dialog-host/taiga-ui-cdk-components-dialog-host.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Inject,\n inject,\n InjectionToken,\n} from '@angular/core';\nimport {Title} from '@angular/platform-browser';\nimport {HISTORY, WINDOW} from '@ng-web-apis/common';\nimport {TUI_PARENT_ANIMATION} from '@taiga-ui/cdk/constants';\nimport {TUI_DIALOGS} from '@taiga-ui/cdk/tokens';\nimport {TuiDialog} from '@taiga-ui/cdk/types';\nimport {isInsideIframe} from '@taiga-ui/cdk/utils';\nimport {combineLatest, Observable, of} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nexport const TUI_DIALOG_CLOSES_ON_BACK = new InjectionToken<Observable<boolean>>(\n 'Is closing dialog on browser backward navigation enabled',\n {\n /**\n * TODO enable this feature for iframes too\n * when the legacy frame manager (with an iframe inside) will be removed on all internal projects\n */\n factory: () => of(!isInsideIframe(inject(WINDOW))),\n },\n);\n\n// TODO: remove in ivy compilation\nexport const FAKE_HISTORY_STATE = {label: 'ignoreMe'} as const;\n// TODO: remove in ivy compilation\nexport const isFakeHistoryState = (\n historyState: Record<string, unknown>,\n): historyState is typeof FAKE_HISTORY_STATE =>\n historyState?.label === FAKE_HISTORY_STATE.label;\n\n// @dynamic\n@Component({\n selector: 'tui-dialog-host',\n templateUrl: './dialog-host.template.html',\n styleUrls: ['./dialog-host.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [TUI_PARENT_ANIMATION],\n})\nexport class TuiDialogHostComponent<T extends TuiDialog<unknown, unknown>> {\n readonly dialogs$ = combineLatest(this.dialogsByType).pipe(\n map(allTypesDialogs =>\n new Array<T>()\n .concat(...allTypesDialogs)\n .sort((a, b) => a.createdAt - b.createdAt),\n ),\n );\n\n constructor(\n @Inject(TUI_DIALOG_CLOSES_ON_BACK)\n readonly isDialogClosesOnBack$: Observable<boolean>,\n @Inject(TUI_DIALOGS) private readonly dialogsByType: Observable<readonly T[]>[],\n @Inject(HISTORY) private readonly historyRef: History,\n @Inject(Title) private readonly titleService: Title,\n ) {}\n\n closeLast(dialogs: readonly T[], isDialogClosesOnBack: boolean) {\n if (!isDialogClosesOnBack) {\n return;\n }\n\n const [last] = dialogs.slice(-1);\n\n if (!last) {\n return;\n }\n\n if (dialogs.length > 1) {\n this.historyRef.pushState(FAKE_HISTORY_STATE, this.titleService.getTitle());\n }\n\n last.$implicit.complete();\n }\n\n onDialog(\n {propertyName}: TransitionEvent,\n popupOpened: boolean,\n isDialogClosesOnBack: boolean,\n ) {\n if (!isDialogClosesOnBack || propertyName !== 'letter-spacing') {\n return;\n }\n\n if (popupOpened) {\n this.historyRef.pushState(FAKE_HISTORY_STATE, this.titleService.getTitle());\n } else if (isFakeHistoryState(this.historyRef.state)) {\n this.historyRef.back();\n }\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiLetModule} from '@taiga-ui/cdk/directives';\nimport {TuiFocusTrapModule} from '@taiga-ui/cdk/directives/focus-trap';\nimport {TuiOverscrollModule} from '@taiga-ui/cdk/directives/overscroll';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiDialogHostComponent} from './dialog-host.component';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiOverscrollModule,\n TuiFocusTrapModule,\n TuiLetModule,\n ],\n declarations: [TuiDialogHostComponent],\n exports: [TuiDialogHostComponent],\n})\nexport class TuiDialogHostModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -89,7 +89,7 @@ TuiPortalHostComponent = TuiPortalHostComponent_1 = __decorate([
89
89
  selector: 'tui-portal-host',
90
90
  template: "<div #positionFixedOffset class=\"position-fixed-offset\"></div>\n<ng-content></ng-content>\n",
91
91
  changeDetection: ChangeDetectionStrategy.OnPush,
92
- styles: [":host{position:relative;display:block;height:100%;z-index:0}:host:before{content:'';display:block;overflow:hidden}.position-fixed-offset{position:fixed;left:0;top:0;pointer-events:none;visibility:hidden;width:100%;height:100%}"]
92
+ styles: [":host{position:relative;z-index:0;display:block;height:100%}:host:before{content:'';display:block;overflow:hidden}.position-fixed-offset{position:fixed;left:0;top:0;pointer-events:none;visibility:hidden;width:100%;height:100%}"]
93
93
  }),
94
94
  __param(0, Inject(ViewContainerRef)),
95
95
  __param(1, Inject(ElementRef)),
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-components-portal-host.js","sources":["ng://@taiga-ui/cdk/components/portal-host/portal.service.ts","ng://@taiga-ui/cdk/components/portal-host/portal-host.component.ts","ng://@taiga-ui/cdk/components/portal-host/portal-host.module.ts","ng://@taiga-ui/cdk/components/portal-host/taiga-ui-cdk-components-portal-host.ts"],"sourcesContent":["import {\n ComponentFactory,\n ComponentRef,\n EmbeddedViewRef,\n Injectable,\n Injector,\n TemplateRef,\n} from '@angular/core';\nimport {TuiPortalHostComponent} from './portal-host.component';\n\nconst NO_HOST = 'Portals cannot be used without TuiPortalHostComponent';\n\n/**\n * Service for displaying portals\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiPortalService {\n private host?: TuiPortalHostComponent;\n\n private get safeHost(): TuiPortalHostComponent {\n if (!this.host) {\n throw new Error(NO_HOST);\n }\n\n return this.host;\n }\n\n attach(host: TuiPortalHostComponent) {\n this.host = host;\n }\n\n add<C>(componentFactory: ComponentFactory<C>, injector: Injector): ComponentRef<C> {\n return this.safeHost.addComponentChild(componentFactory, injector);\n }\n\n remove<C>({hostView}: ComponentRef<C>) {\n hostView.destroy();\n }\n\n addTemplate<C>(templateRef: TemplateRef<C>, context?: C): EmbeddedViewRef<C> {\n return this.safeHost.addTemplateChild(templateRef, context);\n }\n\n removeTemplate<C>(viewRef: EmbeddedViewRef<C>) {\n viewRef.destroy();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ComponentFactory,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n Inject,\n Injector,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {TuiPortalService} from './portal.service';\n\nconst BLANK_CLIENT_RECT: ClientRect = {\n bottom: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n width: 0,\n};\n\n/**\n * Host element for dynamically created portals, for example using {@link TuiDropdownDirective}.\n */\n@Component({\n selector: 'tui-portal-host',\n templateUrl: './portal-host.template.html',\n styleUrls: ['./portal-host.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPortalHostComponent {\n @ViewChild('positionFixedOffset')\n private readonly positionFixedOffsetRef?: ElementRef<HTMLDivElement>;\n\n constructor(\n @Inject(ViewContainerRef)\n private readonly viewContainerRef: ViewContainerRef,\n @Inject(ElementRef)\n private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(TuiPortalService) portalService: TuiPortalService,\n ) {\n portalService.attach(this);\n }\n\n get clientRect(): ClientRect {\n return this.elementRef.nativeElement.getBoundingClientRect();\n }\n\n addComponentChild<C>(\n componentFactory: ComponentFactory<C>,\n injector: Injector,\n ): ComponentRef<C> {\n return this.viewContainerRef.createComponent<C>(\n componentFactory,\n undefined,\n Injector.create({\n parent: injector,\n providers: [\n {\n provide: TuiPortalHostComponent,\n useValue: this,\n },\n ],\n }),\n );\n }\n\n addTemplateChild<C>(templateRef: TemplateRef<C>, context?: C): EmbeddedViewRef<C> {\n return this.viewContainerRef.createEmbeddedView(templateRef, context);\n }\n\n fixedPositionOffset(): ClientRect {\n return this.positionFixedOffsetRef\n ? this.positionFixedOffsetRef.nativeElement.getBoundingClientRect()\n : BLANK_CLIENT_RECT;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {TuiPortalHostComponent} from './portal-host.component';\n\n@NgModule({\n declarations: [TuiPortalHostComponent],\n exports: [TuiPortalHostComponent],\n})\nexport class TuiPortalHostModule {}\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-components-portal-host.js","sources":["ng://@taiga-ui/cdk/components/portal-host/portal.service.ts","ng://@taiga-ui/cdk/components/portal-host/portal-host.component.ts","ng://@taiga-ui/cdk/components/portal-host/portal-host.module.ts","ng://@taiga-ui/cdk/components/portal-host/taiga-ui-cdk-components-portal-host.ts"],"sourcesContent":["import {\n ComponentFactory,\n ComponentRef,\n EmbeddedViewRef,\n Injectable,\n Injector,\n TemplateRef,\n} from '@angular/core';\n\nimport {TuiPortalHostComponent} from './portal-host.component';\n\nconst NO_HOST = 'Portals cannot be used without TuiPortalHostComponent';\n\n/**\n * Service for displaying portals\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiPortalService {\n private host?: TuiPortalHostComponent;\n\n private get safeHost(): TuiPortalHostComponent {\n if (!this.host) {\n throw new Error(NO_HOST);\n }\n\n return this.host;\n }\n\n attach(host: TuiPortalHostComponent) {\n this.host = host;\n }\n\n add<C>(componentFactory: ComponentFactory<C>, injector: Injector): ComponentRef<C> {\n return this.safeHost.addComponentChild(componentFactory, injector);\n }\n\n remove<C>({hostView}: ComponentRef<C>) {\n hostView.destroy();\n }\n\n addTemplate<C>(templateRef: TemplateRef<C>, context?: C): EmbeddedViewRef<C> {\n return this.safeHost.addTemplateChild(templateRef, context);\n }\n\n removeTemplate<C>(viewRef: EmbeddedViewRef<C>) {\n viewRef.destroy();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ComponentFactory,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n Inject,\n Injector,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport {TuiPortalService} from './portal.service';\n\nconst BLANK_CLIENT_RECT: ClientRect = {\n bottom: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n width: 0,\n};\n\n/**\n * Host element for dynamically created portals, for example using {@link TuiDropdownDirective}.\n */\n@Component({\n selector: 'tui-portal-host',\n templateUrl: './portal-host.template.html',\n styleUrls: ['./portal-host.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPortalHostComponent {\n @ViewChild('positionFixedOffset')\n private readonly positionFixedOffsetRef?: ElementRef<HTMLDivElement>;\n\n constructor(\n @Inject(ViewContainerRef)\n private readonly viewContainerRef: ViewContainerRef,\n @Inject(ElementRef)\n private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(TuiPortalService) portalService: TuiPortalService,\n ) {\n portalService.attach(this);\n }\n\n get clientRect(): ClientRect {\n return this.elementRef.nativeElement.getBoundingClientRect();\n }\n\n addComponentChild<C>(\n componentFactory: ComponentFactory<C>,\n injector: Injector,\n ): ComponentRef<C> {\n return this.viewContainerRef.createComponent<C>(\n componentFactory,\n undefined,\n Injector.create({\n parent: injector,\n providers: [\n {\n provide: TuiPortalHostComponent,\n useValue: this,\n },\n ],\n }),\n );\n }\n\n addTemplateChild<C>(templateRef: TemplateRef<C>, context?: C): EmbeddedViewRef<C> {\n return this.viewContainerRef.createEmbeddedView(templateRef, context);\n }\n\n fixedPositionOffset(): ClientRect {\n return this.positionFixedOffsetRef\n ? this.positionFixedOffsetRef.nativeElement.getBoundingClientRect()\n : BLANK_CLIENT_RECT;\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiPortalHostComponent} from './portal-host.component';\n\n@NgModule({\n declarations: [TuiPortalHostComponent],\n exports: [TuiPortalHostComponent],\n})\nexport class TuiPortalHostModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAWA,MAAM,OAAO,GAAG,uDAAuD,CAAC;AAExE;;;IAMa,gBAAgB,GAA7B,MAAa,gBAAgB;IAGzB,IAAY,QAAQ;QAChB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;SAC5B;QAED,OAAO,IAAI,CAAC,IAAI,CAAC;KACpB;IAED,MAAM,CAAC,IAA4B;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;KACpB;IAED,GAAG,CAAI,gBAAqC,EAAE,QAAkB;QAC5D,OAAO,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;KACtE;IAED,MAAM,CAAI,EAAC,QAAQ,EAAkB;QACjC,QAAQ,CAAC,OAAO,EAAE,CAAC;KACtB;IAED,WAAW,CAAI,WAA2B,EAAE,OAAW;QACnD,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;KAC/D;IAED,cAAc,CAAI,OAA2B;QACzC,OAAO,CAAC,OAAO,EAAE,CAAC;KACrB;EACJ;;AA9BY,gBAAgB;IAH5B,UAAU,CAAC;QACR,UAAU,EAAE,MAAM;KACrB,CAAC;GACW,gBAAgB,CA8B5B;;;ACjCD,MAAM,iBAAiB,GAAe;IAClC,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;IACR,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;CACX,CAAC;AAEF;;;IASa,sBAAsB,8BAAnC,MAAa,sBAAsB;IAI/B,YAEqB,gBAAkC,EAElC,UAAmC,EAC1B,aAA+B;QAHxC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAElC,eAAU,GAAV,UAAU,CAAyB;QAGpD,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KAC9B;IAED,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;KAChE;IAED,iBAAiB,CACb,gBAAqC,EACrC,QAAkB;QAElB,OAAO,IAAI,CAAC,gBAAgB,CAAC,eAAe,CACxC,gBAAgB,EAChB,SAAS,EACT,QAAQ,CAAC,MAAM,CAAC;YACZ,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE;gBACP;oBACI,OAAO,EAAE,wBAAsB;oBAC/B,QAAQ,EAAE,IAAI;iBACjB;aACJ;SACJ,CAAC,CACL,CAAC;KACL;IAED,gBAAgB,CAAI,WAA2B,EAAE,OAAW;QACxD,OAAO,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;KACzE;IAED,mBAAmB;QACf,OAAO,IAAI,CAAC,sBAAsB;cAC5B,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,qBAAqB,EAAE;cACjE,iBAAiB,CAAC;KAC3B;EACJ;;YAxC0C,gBAAgB,uBADlD,MAAM,SAAC,gBAAgB;YAGK,UAAU,uBADtC,MAAM,SAAC,UAAU;YAEuB,gBAAgB,uBAAxD,MAAM,SAAC,gBAAgB;;AAP5B;IADC,SAAS,CAAC,qBAAqB,CAAC;sEACoC;AAF5D,sBAAsB;IANlC,SAAS,CAAC;QACP,QAAQ,EAAE,iBAAiB;QAC3B,yGAA0C;QAE1C,eAAe,EAAE,uBAAuB,CAAC,MAAM;;KAClD,CAAC;IAMO,WAAA,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAExB,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;IAElB,WAAA,MAAM,CAAC,gBAAgB,CAAC,CAAA;GATpB,sBAAsB,CA8ClC;;ICxEY,mBAAmB,GAAhC,MAAa,mBAAmB;EAAG;AAAtB,mBAAmB;IAJ/B,QAAQ,CAAC;QACN,YAAY,EAAE,CAAC,sBAAsB,CAAC;QACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;KACpC,CAAC;GACW,mBAAmB,CAAG;;ACRnC;;;;;;"}