@taiga-ui/cdk 2.46.0 → 2.49.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 (348) hide show
  1. package/abstract/controller.d.ts +6 -0
  2. package/abstract/taiga-ui-cdk-abstract.metadata.json +1 -1
  3. package/bundles/taiga-ui-cdk-abstract.umd.js +62 -20
  4. package/bundles/taiga-ui-cdk-abstract.umd.js.map +1 -1
  5. package/bundles/taiga-ui-cdk-abstract.umd.min.js +1 -15
  6. package/bundles/taiga-ui-cdk-abstract.umd.min.js.map +1 -1
  7. package/bundles/taiga-ui-cdk-components-alert-host.umd.js +50 -20
  8. package/bundles/taiga-ui-cdk-components-alert-host.umd.js.map +1 -1
  9. package/bundles/taiga-ui-cdk-components-alert-host.umd.min.js +1 -15
  10. package/bundles/taiga-ui-cdk-components-alert-host.umd.min.js.map +1 -1
  11. package/bundles/taiga-ui-cdk-components-dialog-host.umd.js +50 -20
  12. package/bundles/taiga-ui-cdk-components-dialog-host.umd.js.map +1 -1
  13. package/bundles/taiga-ui-cdk-components-dialog-host.umd.min.js +1 -15
  14. package/bundles/taiga-ui-cdk-components-dialog-host.umd.min.js.map +1 -1
  15. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.js +50 -20
  16. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.js.map +1 -1
  17. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.min.js +1 -15
  18. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.min.js.map +1 -1
  19. package/bundles/taiga-ui-cdk-components-portal-host.umd.js +50 -20
  20. package/bundles/taiga-ui-cdk-components-portal-host.umd.js.map +1 -1
  21. package/bundles/taiga-ui-cdk-components-portal-host.umd.min.js +1 -15
  22. package/bundles/taiga-ui-cdk-components-portal-host.umd.min.js.map +1 -1
  23. package/bundles/taiga-ui-cdk-constants.umd.js +28 -1
  24. package/bundles/taiga-ui-cdk-constants.umd.js.map +1 -1
  25. package/bundles/taiga-ui-cdk-constants.umd.min.js +1 -1
  26. package/bundles/taiga-ui-cdk-constants.umd.min.js.map +1 -1
  27. package/bundles/taiga-ui-cdk-date-time.umd.js +50 -20
  28. package/bundles/taiga-ui-cdk-date-time.umd.js.map +1 -1
  29. package/bundles/taiga-ui-cdk-date-time.umd.min.js +1 -15
  30. package/bundles/taiga-ui-cdk-date-time.umd.min.js.map +1 -1
  31. package/bundles/taiga-ui-cdk-decorators.umd.js +50 -20
  32. package/bundles/taiga-ui-cdk-decorators.umd.js.map +1 -1
  33. package/bundles/taiga-ui-cdk-decorators.umd.min.js +1 -15
  34. package/bundles/taiga-ui-cdk-decorators.umd.min.js.map +1 -1
  35. package/bundles/taiga-ui-cdk-directives-active-zone.umd.js +50 -20
  36. package/bundles/taiga-ui-cdk-directives-active-zone.umd.js.map +1 -1
  37. package/bundles/taiga-ui-cdk-directives-active-zone.umd.min.js +1 -15
  38. package/bundles/taiga-ui-cdk-directives-active-zone.umd.min.js.map +1 -1
  39. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js +146 -55
  40. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js.map +1 -1
  41. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.min.js +1 -15
  42. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.min.js.map +1 -1
  43. package/bundles/taiga-ui-cdk-directives-autofilled.umd.js +50 -20
  44. package/bundles/taiga-ui-cdk-directives-autofilled.umd.js.map +1 -1
  45. package/bundles/taiga-ui-cdk-directives-autofilled.umd.min.js +1 -15
  46. package/bundles/taiga-ui-cdk-directives-autofilled.umd.min.js.map +1 -1
  47. package/bundles/taiga-ui-cdk-directives-checked.umd.js +50 -20
  48. package/bundles/taiga-ui-cdk-directives-checked.umd.js.map +1 -1
  49. package/bundles/taiga-ui-cdk-directives-checked.umd.min.js +1 -15
  50. package/bundles/taiga-ui-cdk-directives-checked.umd.min.js.map +1 -1
  51. package/bundles/taiga-ui-cdk-directives-copy-processor.umd.js +50 -20
  52. package/bundles/taiga-ui-cdk-directives-copy-processor.umd.js.map +1 -1
  53. package/bundles/taiga-ui-cdk-directives-copy-processor.umd.min.js +1 -15
  54. package/bundles/taiga-ui-cdk-directives-copy-processor.umd.min.js.map +1 -1
  55. package/bundles/taiga-ui-cdk-directives-drag.umd.js +50 -20
  56. package/bundles/taiga-ui-cdk-directives-drag.umd.js.map +1 -1
  57. package/bundles/taiga-ui-cdk-directives-drag.umd.min.js +1 -15
  58. package/bundles/taiga-ui-cdk-directives-drag.umd.min.js.map +1 -1
  59. package/bundles/taiga-ui-cdk-directives-droppable.umd.js +50 -20
  60. package/bundles/taiga-ui-cdk-directives-droppable.umd.js.map +1 -1
  61. package/bundles/taiga-ui-cdk-directives-droppable.umd.min.js +1 -15
  62. package/bundles/taiga-ui-cdk-directives-droppable.umd.min.js.map +1 -1
  63. package/bundles/taiga-ui-cdk-directives-element.umd.js +50 -20
  64. package/bundles/taiga-ui-cdk-directives-element.umd.js.map +1 -1
  65. package/bundles/taiga-ui-cdk-directives-element.umd.min.js +1 -15
  66. package/bundles/taiga-ui-cdk-directives-element.umd.min.js.map +1 -1
  67. package/bundles/taiga-ui-cdk-directives-focus-trap.umd.js +50 -20
  68. package/bundles/taiga-ui-cdk-directives-focus-trap.umd.js.map +1 -1
  69. package/bundles/taiga-ui-cdk-directives-focus-trap.umd.min.js +1 -15
  70. package/bundles/taiga-ui-cdk-directives-focus-trap.umd.min.js.map +1 -1
  71. package/bundles/taiga-ui-cdk-directives-focus-visible.umd.js +50 -20
  72. package/bundles/taiga-ui-cdk-directives-focus-visible.umd.js.map +1 -1
  73. package/bundles/taiga-ui-cdk-directives-focus-visible.umd.min.js +1 -15
  74. package/bundles/taiga-ui-cdk-directives-focus-visible.umd.min.js.map +1 -1
  75. package/bundles/taiga-ui-cdk-directives-focusable.umd.js +50 -20
  76. package/bundles/taiga-ui-cdk-directives-focusable.umd.js.map +1 -1
  77. package/bundles/taiga-ui-cdk-directives-focusable.umd.min.js +1 -15
  78. package/bundles/taiga-ui-cdk-directives-focusable.umd.min.js.map +1 -1
  79. package/bundles/taiga-ui-cdk-directives-focused.umd.js +50 -20
  80. package/bundles/taiga-ui-cdk-directives-focused.umd.js.map +1 -1
  81. package/bundles/taiga-ui-cdk-directives-focused.umd.min.js +1 -15
  82. package/bundles/taiga-ui-cdk-directives-focused.umd.min.js.map +1 -1
  83. package/bundles/taiga-ui-cdk-directives-for-async.umd.js +325 -0
  84. package/bundles/taiga-ui-cdk-directives-for-async.umd.js.map +1 -0
  85. package/bundles/taiga-ui-cdk-directives-for-async.umd.min.js +2 -0
  86. package/bundles/taiga-ui-cdk-directives-for-async.umd.min.js.map +1 -0
  87. package/bundles/taiga-ui-cdk-directives-for.umd.js +50 -20
  88. package/bundles/taiga-ui-cdk-directives-for.umd.js.map +1 -1
  89. package/bundles/taiga-ui-cdk-directives-for.umd.min.js +1 -15
  90. package/bundles/taiga-ui-cdk-directives-for.umd.min.js.map +1 -1
  91. package/bundles/taiga-ui-cdk-directives-high-dpi.umd.js +50 -20
  92. package/bundles/taiga-ui-cdk-directives-high-dpi.umd.js.map +1 -1
  93. package/bundles/taiga-ui-cdk-directives-high-dpi.umd.min.js +1 -15
  94. package/bundles/taiga-ui-cdk-directives-high-dpi.umd.min.js.map +1 -1
  95. package/bundles/taiga-ui-cdk-directives-hovered.umd.js +50 -20
  96. package/bundles/taiga-ui-cdk-directives-hovered.umd.js.map +1 -1
  97. package/bundles/taiga-ui-cdk-directives-hovered.umd.min.js +1 -15
  98. package/bundles/taiga-ui-cdk-directives-hovered.umd.min.js.map +1 -1
  99. package/bundles/taiga-ui-cdk-directives-input-mode.umd.js +50 -20
  100. package/bundles/taiga-ui-cdk-directives-input-mode.umd.js.map +1 -1
  101. package/bundles/taiga-ui-cdk-directives-input-mode.umd.min.js +1 -15
  102. package/bundles/taiga-ui-cdk-directives-input-mode.umd.min.js.map +1 -1
  103. package/bundles/taiga-ui-cdk-directives-item.umd.js +50 -20
  104. package/bundles/taiga-ui-cdk-directives-item.umd.js.map +1 -1
  105. package/bundles/taiga-ui-cdk-directives-item.umd.min.js +1 -15
  106. package/bundles/taiga-ui-cdk-directives-item.umd.min.js.map +1 -1
  107. package/bundles/taiga-ui-cdk-directives-let.umd.js +50 -20
  108. package/bundles/taiga-ui-cdk-directives-let.umd.js.map +1 -1
  109. package/bundles/taiga-ui-cdk-directives-let.umd.min.js +1 -15
  110. package/bundles/taiga-ui-cdk-directives-let.umd.min.js.map +1 -1
  111. package/bundles/taiga-ui-cdk-directives-media.umd.js +50 -20
  112. package/bundles/taiga-ui-cdk-directives-media.umd.js.map +1 -1
  113. package/bundles/taiga-ui-cdk-directives-media.umd.min.js +1 -15
  114. package/bundles/taiga-ui-cdk-directives-media.umd.min.js.map +1 -1
  115. package/bundles/taiga-ui-cdk-directives-obscured.umd.js +50 -20
  116. package/bundles/taiga-ui-cdk-directives-obscured.umd.js.map +1 -1
  117. package/bundles/taiga-ui-cdk-directives-obscured.umd.min.js +1 -15
  118. package/bundles/taiga-ui-cdk-directives-obscured.umd.min.js.map +1 -1
  119. package/bundles/taiga-ui-cdk-directives-overscroll.umd.js +50 -20
  120. package/bundles/taiga-ui-cdk-directives-overscroll.umd.js.map +1 -1
  121. package/bundles/taiga-ui-cdk-directives-overscroll.umd.min.js +1 -15
  122. package/bundles/taiga-ui-cdk-directives-overscroll.umd.min.js.map +1 -1
  123. package/bundles/taiga-ui-cdk-directives-pan.umd.js +50 -20
  124. package/bundles/taiga-ui-cdk-directives-pan.umd.js.map +1 -1
  125. package/bundles/taiga-ui-cdk-directives-pan.umd.min.js +1 -15
  126. package/bundles/taiga-ui-cdk-directives-pan.umd.min.js.map +1 -1
  127. package/bundles/taiga-ui-cdk-directives-portal.umd.js +50 -20
  128. package/bundles/taiga-ui-cdk-directives-portal.umd.js.map +1 -1
  129. package/bundles/taiga-ui-cdk-directives-portal.umd.min.js +1 -15
  130. package/bundles/taiga-ui-cdk-directives-portal.umd.min.js.map +1 -1
  131. package/bundles/taiga-ui-cdk-directives-pressed.umd.js +50 -20
  132. package/bundles/taiga-ui-cdk-directives-pressed.umd.js.map +1 -1
  133. package/bundles/taiga-ui-cdk-directives-pressed.umd.min.js +1 -15
  134. package/bundles/taiga-ui-cdk-directives-pressed.umd.min.js.map +1 -1
  135. package/bundles/taiga-ui-cdk-directives-prevent-default.umd.js +50 -20
  136. package/bundles/taiga-ui-cdk-directives-prevent-default.umd.js.map +1 -1
  137. package/bundles/taiga-ui-cdk-directives-prevent-default.umd.min.js +1 -15
  138. package/bundles/taiga-ui-cdk-directives-prevent-default.umd.min.js.map +1 -1
  139. package/bundles/taiga-ui-cdk-directives-repeat-times.umd.js +50 -20
  140. package/bundles/taiga-ui-cdk-directives-repeat-times.umd.js.map +1 -1
  141. package/bundles/taiga-ui-cdk-directives-repeat-times.umd.min.js +1 -15
  142. package/bundles/taiga-ui-cdk-directives-repeat-times.umd.min.js.map +1 -1
  143. package/bundles/taiga-ui-cdk-directives-resize.umd.js +50 -20
  144. package/bundles/taiga-ui-cdk-directives-resize.umd.js.map +1 -1
  145. package/bundles/taiga-ui-cdk-directives-resize.umd.min.js +1 -15
  146. package/bundles/taiga-ui-cdk-directives-resize.umd.min.js.map +1 -1
  147. package/bundles/taiga-ui-cdk-directives-swipe.umd.js +50 -20
  148. package/bundles/taiga-ui-cdk-directives-swipe.umd.js.map +1 -1
  149. package/bundles/taiga-ui-cdk-directives-swipe.umd.min.js +1 -15
  150. package/bundles/taiga-ui-cdk-directives-swipe.umd.min.js.map +1 -1
  151. package/bundles/taiga-ui-cdk-directives-validator.umd.js +50 -20
  152. package/bundles/taiga-ui-cdk-directives-validator.umd.js.map +1 -1
  153. package/bundles/taiga-ui-cdk-directives-validator.umd.min.js +1 -15
  154. package/bundles/taiga-ui-cdk-directives-validator.umd.min.js.map +1 -1
  155. package/bundles/taiga-ui-cdk-directives-zoom.umd.js +50 -20
  156. package/bundles/taiga-ui-cdk-directives-zoom.umd.js.map +1 -1
  157. package/bundles/taiga-ui-cdk-directives-zoom.umd.min.js +1 -15
  158. package/bundles/taiga-ui-cdk-directives-zoom.umd.min.js.map +1 -1
  159. package/bundles/taiga-ui-cdk-directives.umd.js +12 -4
  160. package/bundles/taiga-ui-cdk-directives.umd.js.map +1 -1
  161. package/bundles/taiga-ui-cdk-directives.umd.min.js +1 -1
  162. package/bundles/taiga-ui-cdk-enums.umd.js +12 -0
  163. package/bundles/taiga-ui-cdk-enums.umd.js.map +1 -1
  164. package/bundles/taiga-ui-cdk-enums.umd.min.js +1 -1
  165. package/bundles/taiga-ui-cdk-enums.umd.min.js.map +1 -1
  166. package/bundles/taiga-ui-cdk-exceptions.umd.js +50 -20
  167. package/bundles/taiga-ui-cdk-exceptions.umd.js.map +1 -1
  168. package/bundles/taiga-ui-cdk-exceptions.umd.min.js +1 -15
  169. package/bundles/taiga-ui-cdk-exceptions.umd.min.js.map +1 -1
  170. package/bundles/taiga-ui-cdk-pipes-filter.umd.js +50 -20
  171. package/bundles/taiga-ui-cdk-pipes-filter.umd.js.map +1 -1
  172. package/bundles/taiga-ui-cdk-pipes-filter.umd.min.js +1 -15
  173. package/bundles/taiga-ui-cdk-pipes-filter.umd.min.js.map +1 -1
  174. package/bundles/taiga-ui-cdk-pipes-mapper.umd.js +50 -20
  175. package/bundles/taiga-ui-cdk-pipes-mapper.umd.js.map +1 -1
  176. package/bundles/taiga-ui-cdk-pipes-mapper.umd.min.js +1 -15
  177. package/bundles/taiga-ui-cdk-pipes-mapper.umd.min.js.map +1 -1
  178. package/bundles/taiga-ui-cdk-services.umd.js +50 -20
  179. package/bundles/taiga-ui-cdk-services.umd.js.map +1 -1
  180. package/bundles/taiga-ui-cdk-services.umd.min.js +1 -15
  181. package/bundles/taiga-ui-cdk-services.umd.min.js.map +1 -1
  182. package/bundles/taiga-ui-cdk-tokens.umd.js +68 -20
  183. package/bundles/taiga-ui-cdk-tokens.umd.js.map +1 -1
  184. package/bundles/taiga-ui-cdk-tokens.umd.min.js +1 -15
  185. package/bundles/taiga-ui-cdk-tokens.umd.min.js.map +1 -1
  186. package/bundles/taiga-ui-cdk-utils-browser.umd.js +2 -2
  187. package/bundles/taiga-ui-cdk-utils-browser.umd.js.map +1 -1
  188. package/bundles/taiga-ui-cdk-utils-browser.umd.min.js +1 -1
  189. package/bundles/taiga-ui-cdk-utils-browser.umd.min.js.map +1 -1
  190. package/bundles/taiga-ui-cdk-utils-focus.umd.js +1 -1
  191. package/bundles/taiga-ui-cdk-utils-focus.umd.js.map +1 -1
  192. package/bundles/taiga-ui-cdk-utils-focus.umd.min.js +1 -1
  193. package/bundles/taiga-ui-cdk-utils-focus.umd.min.js.map +1 -1
  194. package/bundles/taiga-ui-cdk-utils-os.umd.js +17 -3
  195. package/bundles/taiga-ui-cdk-utils-os.umd.js.map +1 -1
  196. package/bundles/taiga-ui-cdk-utils-os.umd.min.js +1 -1
  197. package/bundles/taiga-ui-cdk-utils-os.umd.min.js.map +1 -1
  198. package/bundles/taiga-ui-cdk-utils-svg.umd.js +50 -20
  199. package/bundles/taiga-ui-cdk-utils-svg.umd.js.map +1 -1
  200. package/bundles/taiga-ui-cdk-utils-svg.umd.min.js +1 -15
  201. package/bundles/taiga-ui-cdk-utils-svg.umd.min.js.map +1 -1
  202. package/constants/taiga-ui-cdk-constants.metadata.json +1 -1
  203. package/constants/unicode-chars.d.ts +25 -1
  204. package/directives/auto-focus/autofocus.options.d.ts +1 -1
  205. package/directives/auto-focus/handlers/ios.handler.d.ts +26 -1
  206. package/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.metadata.json +1 -1
  207. package/directives/for-async/for-async.directive.d.ts +13 -0
  208. package/directives/for-async/for-async.module.d.ts +5 -0
  209. package/directives/for-async/index.d.ts +2 -0
  210. package/directives/for-async/package.json +13 -0
  211. package/directives/for-async/taiga-ui-cdk-directives-for-async.d.ts +4 -0
  212. package/directives/for-async/taiga-ui-cdk-directives-for-async.metadata.json +1 -0
  213. package/directives/index.d.ts +1 -0
  214. package/directives/taiga-ui-cdk-directives.metadata.json +1 -1
  215. package/enums/autocomplete.d.ts +10 -0
  216. package/enums/taiga-ui-cdk-enums.metadata.json +1 -1
  217. package/esm2015/abstract/controller.js +7 -1
  218. package/esm2015/constants/unicode-chars.js +26 -2
  219. package/esm2015/directives/auto-focus/autofocus.options.js +7 -6
  220. package/esm2015/directives/auto-focus/handlers/ios.handler.js +80 -29
  221. package/esm2015/directives/for-async/for-async.directive.js +48 -0
  222. package/esm2015/directives/for-async/for-async.module.js +16 -0
  223. package/esm2015/directives/for-async/index.js +3 -0
  224. package/esm2015/directives/for-async/taiga-ui-cdk-directives-for-async.js +5 -0
  225. package/esm2015/directives/index.js +2 -1
  226. package/esm2015/enums/autocomplete.js +12 -1
  227. package/esm2015/tokens/index.js +4 -1
  228. package/esm2015/tokens/is-chromium.js +6 -0
  229. package/esm2015/tokens/is-firefox.js +9 -0
  230. package/esm2015/tokens/is-webkit.js +6 -0
  231. package/esm2015/utils/browser/is-edge-older-than.js +2 -2
  232. package/esm2015/utils/browser/is-safari.js +2 -2
  233. package/esm2015/utils/focus/get-native-focused.js +2 -2
  234. package/esm2015/utils/os/index.js +2 -1
  235. package/esm2015/utils/os/is-apple-platform.js +14 -0
  236. package/esm2015/utils/os/is-ios.js +4 -4
  237. package/esm5/abstract/controller.js +14 -1
  238. package/esm5/constants/unicode-chars.js +26 -2
  239. package/esm5/directives/auto-focus/autofocus.options.js +7 -6
  240. package/esm5/directives/auto-focus/handlers/ios.handler.js +92 -30
  241. package/esm5/directives/for-async/for-async.directive.js +53 -0
  242. package/esm5/directives/for-async/for-async.module.js +19 -0
  243. package/esm5/directives/for-async/index.js +3 -0
  244. package/esm5/directives/for-async/taiga-ui-cdk-directives-for-async.js +5 -0
  245. package/esm5/directives/index.js +2 -1
  246. package/esm5/enums/autocomplete.js +12 -1
  247. package/esm5/tokens/index.js +4 -1
  248. package/esm5/tokens/is-chromium.js +6 -0
  249. package/esm5/tokens/is-firefox.js +9 -0
  250. package/esm5/tokens/is-webkit.js +6 -0
  251. package/esm5/utils/browser/is-edge-older-than.js +2 -2
  252. package/esm5/utils/browser/is-safari.js +2 -2
  253. package/esm5/utils/focus/get-native-focused.js +2 -2
  254. package/esm5/utils/os/index.js +2 -1
  255. package/esm5/utils/os/is-apple-platform.js +14 -0
  256. package/esm5/utils/os/is-ios.js +4 -4
  257. package/fesm2015/taiga-ui-cdk-abstract.js +7 -1
  258. package/fesm2015/taiga-ui-cdk-abstract.js.map +1 -1
  259. package/fesm2015/taiga-ui-cdk-constants.js +26 -2
  260. package/fesm2015/taiga-ui-cdk-constants.js.map +1 -1
  261. package/fesm2015/taiga-ui-cdk-directives-auto-focus.js +84 -33
  262. package/fesm2015/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
  263. package/fesm2015/taiga-ui-cdk-directives-for-async.js +66 -0
  264. package/fesm2015/taiga-ui-cdk-directives-for-async.js.map +1 -0
  265. package/fesm2015/taiga-ui-cdk-directives.js +1 -0
  266. package/fesm2015/taiga-ui-cdk-directives.js.map +1 -1
  267. package/fesm2015/taiga-ui-cdk-enums.js +11 -0
  268. package/fesm2015/taiga-ui-cdk-enums.js.map +1 -1
  269. package/fesm2015/taiga-ui-cdk-tokens.js +16 -1
  270. package/fesm2015/taiga-ui-cdk-tokens.js.map +1 -1
  271. package/fesm2015/taiga-ui-cdk-utils-browser.js +2 -2
  272. package/fesm2015/taiga-ui-cdk-utils-browser.js.map +1 -1
  273. package/fesm2015/taiga-ui-cdk-utils-focus.js +1 -1
  274. package/fesm2015/taiga-ui-cdk-utils-focus.js.map +1 -1
  275. package/fesm2015/taiga-ui-cdk-utils-os.js +17 -4
  276. package/fesm2015/taiga-ui-cdk-utils-os.js.map +1 -1
  277. package/fesm5/taiga-ui-cdk-abstract.js +12 -1
  278. package/fesm5/taiga-ui-cdk-abstract.js.map +1 -1
  279. package/fesm5/taiga-ui-cdk-constants.js +26 -2
  280. package/fesm5/taiga-ui-cdk-constants.js.map +1 -1
  281. package/fesm5/taiga-ui-cdk-directives-auto-focus.js +96 -34
  282. package/fesm5/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
  283. package/fesm5/taiga-ui-cdk-directives-for-async.js +74 -0
  284. package/fesm5/taiga-ui-cdk-directives-for-async.js.map +1 -0
  285. package/fesm5/taiga-ui-cdk-directives.js +1 -0
  286. package/fesm5/taiga-ui-cdk-directives.js.map +1 -1
  287. package/fesm5/taiga-ui-cdk-enums.js +11 -0
  288. package/fesm5/taiga-ui-cdk-enums.js.map +1 -1
  289. package/fesm5/taiga-ui-cdk-tokens.js +16 -1
  290. package/fesm5/taiga-ui-cdk-tokens.js.map +1 -1
  291. package/fesm5/taiga-ui-cdk-utils-browser.js +2 -2
  292. package/fesm5/taiga-ui-cdk-utils-browser.js.map +1 -1
  293. package/fesm5/taiga-ui-cdk-utils-focus.js +1 -1
  294. package/fesm5/taiga-ui-cdk-utils-focus.js.map +1 -1
  295. package/fesm5/taiga-ui-cdk-utils-os.js +17 -4
  296. package/fesm5/taiga-ui-cdk-utils-os.js.map +1 -1
  297. package/package.json +4 -1
  298. package/schematics/ng-update/constants/consts.d.ts +7 -7
  299. package/schematics/ng-update/constants/consts.js +38 -0
  300. package/schematics/ng-update/constants/enums.d.ts +3 -3
  301. package/schematics/ng-update/constants/enums.js +22 -0
  302. package/schematics/ng-update/constants/services.d.ts +8 -0
  303. package/schematics/ng-update/constants/services.js +43 -0
  304. package/schematics/ng-update/constants/templates.d.ts +17 -0
  305. package/schematics/ng-update/constants/templates.js +44 -0
  306. package/schematics/ng-update/constants/types.d.ts +4 -3
  307. package/schematics/ng-update/constants/types.js +60 -0
  308. package/schematics/ng-update/constants/warnings.d.ts +6 -0
  309. package/schematics/ng-update/constants/warnings.js +45 -0
  310. package/schematics/ng-update/index.js +8 -0
  311. package/schematics/ng-update/interfaces/template-resourse.d.ts +8 -0
  312. package/schematics/ng-update/interfaces/template-resourse.js +2 -0
  313. package/schematics/ng-update/steps/migrate-sliders/index.d.ts +2 -0
  314. package/schematics/ng-update/steps/migrate-sliders/index.js +7 -0
  315. package/schematics/ng-update/steps/migrate-sliders/migrate-input-slider.d.ts +2 -0
  316. package/schematics/ng-update/steps/migrate-sliders/migrate-input-slider.js +24 -0
  317. package/schematics/ng-update/steps/migrate-templates.d.ts +2 -0
  318. package/schematics/ng-update/steps/migrate-templates.js +57 -0
  319. package/schematics/ng-update/steps/rename-types.js +27 -11
  320. package/schematics/ng-update/steps/replace-const.js +2 -2
  321. package/schematics/ng-update/steps/replace-enums.js +2 -2
  322. package/schematics/ng-update/steps/replace-services.d.ts +1 -0
  323. package/schematics/ng-update/steps/replace-services.js +51 -0
  324. package/schematics/ng-update/steps/show-warnings.d.ts +2 -0
  325. package/schematics/ng-update/steps/show-warnings.js +35 -0
  326. package/schematics/utils/angular/ng-component.d.ts +3 -0
  327. package/schematics/utils/angular/ng-component.js +7 -0
  328. package/schematics/utils/angular/ng-module.d.ts +7 -0
  329. package/schematics/utils/angular/ng-module.js +21 -0
  330. package/schematics/utils/{remove-import.d.ts → import-manipulations.d.ts} +1 -0
  331. package/schematics/utils/import-manipulations.js +19 -0
  332. package/schematics/utils/templates/elements.d.ts +2 -0
  333. package/schematics/utils/templates/elements.js +21 -0
  334. package/schematics/utils/templates/get-component-templates.d.ts +4 -0
  335. package/schematics/utils/templates/get-component-templates.js +36 -0
  336. package/schematics/utils/templates/ng-component-input-manipulations.d.ts +45 -0
  337. package/schematics/utils/templates/ng-component-input-manipulations.js +78 -0
  338. package/schematics/utils/templates/template-resource.d.ts +5 -0
  339. package/schematics/utils/templates/template-resource.js +21 -0
  340. package/tokens/index.d.ts +3 -0
  341. package/tokens/is-chromium.d.ts +2 -0
  342. package/tokens/is-firefox.d.ts +2 -0
  343. package/tokens/is-webkit.d.ts +2 -0
  344. package/tokens/taiga-ui-cdk-tokens.metadata.json +1 -1
  345. package/utils/os/index.d.ts +1 -0
  346. package/utils/os/is-apple-platform.d.ts +11 -0
  347. package/utils/os/taiga-ui-cdk-utils-os.metadata.json +1 -1
  348. package/schematics/utils/remove-import.js +0 -11
@@ -4,7 +4,32 @@ import { AbstractTuiAutofocusHandler } from './abstract.handler';
4
4
  export declare class TuiIosAutofocusHandler extends AbstractTuiAutofocusHandler {
5
5
  private readonly renderer;
6
6
  private readonly ngZone;
7
- constructor(tuiFocusableComponent: TuiFocusableElementAccessor | null, elementRef: ElementRef<HTMLElement>, renderer: Renderer2, ngZone: NgZone);
7
+ private readonly windowRef;
8
+ constructor(tuiFocusableComponent: TuiFocusableElementAccessor | null, elementRef: ElementRef<HTMLElement>, renderer: Renderer2, ngZone: NgZone, windowRef: Window);
8
9
  setFocus(): void;
9
10
  private iosWebkitAutofocus;
11
+ /**
12
+ * @note:
13
+ * emulate textfield position in layout with cursor
14
+ * before focus to real textfield element
15
+ */
16
+ private makeFakeInput;
17
+ private getDurationTimeBeforeFocus;
18
+ /**
19
+ * @note:
20
+ * unfortunately, in older versions of iOS
21
+ * there is a bug that the fake input cursor
22
+ * will move along with the dialog animation
23
+ * and then that dialog will be shaking
24
+ */
25
+ private insideDialog;
26
+ /**
27
+ * @note:
28
+ * This is necessary so that the viewport isn't recalculated
29
+ * and then the dialogs don't shake.
30
+ *
31
+ * Also, we need to fixed height viewport,
32
+ * so that when focusing the dialogs don't shake
33
+ */
34
+ private patchCssStyles;
10
35
  }
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"TuiAutoFocusDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":9,"character":1},"arguments":[{"selector":"[tuiAutoFocus]","providers":{"__symbolic":"reference","name":"TUI_AUTOFOCUS_PROVIDERS"}}]}],"members":{"autoFocus":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":18,"character":9},"arguments":[{"__symbolic":"reference","name":"TUI_AUTOFOCUS_HANDLER"}]}]],"parameters":[{"__symbolic":"reference","name":"TuiAutofocusHandler"}]}],"ngAfterViewInit":[{"__symbolic":"method"}]}},"TuiAutoFocusModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"TuiAutoFocusDirective"}],"exports":[{"__symbolic":"reference","name":"TuiAutoFocusDirective"}]}]}],"members":{}},"TuiAutofocusHandler":{"__symbolic":"interface"},"TUI_AUTOFOCUS_HANDLER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":21,"character":41},"arguments":["Autofocusing handler"]},"tuiAutofocusHandlerFactory":{"__symbolic":"function","parameters":["tuiFocusableComponent","elementRef","animationFrame$","renderer","ngZone"],"value":{"__symbolic":"if","condition":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"inject","line":33,"character":11},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk/tokens","name":"TUI_IS_APPLE","line":33,"character":18}]},"thenExpression":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"TuiIosAutofocusHandler"},"arguments":[{"__symbolic":"reference","name":"tuiFocusableComponent"},{"__symbolic":"reference","name":"elementRef"},{"__symbolic":"reference","name":"renderer"},{"__symbolic":"reference","name":"ngZone"}]},"elseExpression":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"TuiDefaultAutofocusHandler"},"arguments":[{"__symbolic":"reference","name":"tuiFocusableComponent"},{"__symbolic":"reference","name":"elementRef"},{"__symbolic":"reference","name":"animationFrame$"}]}}},"TUI_AUTOFOCUS_PROVIDERS":[{"provide":{"__symbolic":"reference","name":"TUI_AUTOFOCUS_HANDLER"},"useFactory":{"__symbolic":"reference","name":"tuiAutofocusHandlerFactory"},"deps":[[{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":48,"character":17}},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Self","line":48,"character":33}},{"__symbolic":"reference","module":"@taiga-ui/cdk/tokens","name":"TUI_FOCUSABLE_ITEM_ACCESSOR","line":48,"character":41}],{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":49,"character":12},{"__symbolic":"reference","module":"@ng-web-apis/common","name":"ANIMATION_FRAME","line":50,"character":12},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":51,"character":12},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":52,"character":12}]}],"AbstractTuiAutofocusHandler":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":8,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@taiga-ui/cdk/interfaces","name":"TuiFocusableElementAccessor","line":11,"character":50},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":12,"character":50,"context":{"typeName":"HTMLElement"},"module":"./handlers/abstract.handler"}]}]}],"setFocus":[{"__symbolic":"method"}]}},"TuiDefaultAutofocusHandler":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"AbstractTuiAutofocusHandler"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":13,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":16,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Self","line":17,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":18,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk/tokens","name":"TUI_FOCUSABLE_ITEM_ACCESSOR","line":18,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":20,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":20,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":21,"character":9},"arguments":[{"__symbolic":"reference","module":"@ng-web-apis/common","name":"ANIMATION_FRAME","line":21,"character":16}]}]],"parameters":[{"__symbolic":"reference","module":"@taiga-ui/cdk/interfaces","name":"TuiFocusableElementAccessor","line":19,"character":31},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":20,"character":51,"context":{"typeName":"HTMLElement"},"module":"./handlers/default.handler"}]},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"reference","name":"number"}]}]}],"setFocus":[{"__symbolic":"method"}]}},"TuiIosAutofocusHandler":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"AbstractTuiAutofocusHandler"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":14,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":17,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Self","line":18,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":19,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk/tokens","name":"TUI_FOCUSABLE_ITEM_ACCESSOR","line":19,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":21,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":21,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":22,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":22,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":24,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":24,"character":16}]}]],"parameters":[{"__symbolic":"reference","module":"@taiga-ui/cdk/interfaces","name":"TuiFocusableElementAccessor","line":20,"character":31},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":21,"character":51,"context":{"typeName":"HTMLElement"},"module":"./handlers/ios.handler"}]},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":23,"character":35},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":25,"character":33}]}],"setFocus":[{"__symbolic":"method"}],"iosWebkitAutofocus":[{"__symbolic":"method"}]}}},"origins":{"TuiAutoFocusDirective":"./autofocus.directive","TuiAutoFocusModule":"./autofocus.module","TuiAutofocusHandler":"./autofocus.options","TUI_AUTOFOCUS_HANDLER":"./autofocus.options","tuiAutofocusHandlerFactory":"./autofocus.options","TUI_AUTOFOCUS_PROVIDERS":"./autofocus.options","AbstractTuiAutofocusHandler":"./handlers/abstract.handler","TuiDefaultAutofocusHandler":"./handlers/default.handler","TuiIosAutofocusHandler":"./handlers/ios.handler"},"importAs":"@taiga-ui/cdk/directives/auto-focus"}
1
+ {"__symbolic":"module","version":4,"metadata":{"TuiAutoFocusDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":9,"character":1},"arguments":[{"selector":"[tuiAutoFocus]","providers":{"__symbolic":"reference","name":"TUI_AUTOFOCUS_PROVIDERS"}}]}],"members":{"autoFocus":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":18,"character":9},"arguments":[{"__symbolic":"reference","name":"TUI_AUTOFOCUS_HANDLER"}]}]],"parameters":[{"__symbolic":"reference","name":"TuiAutofocusHandler"}]}],"ngAfterViewInit":[{"__symbolic":"method"}]}},"TuiAutoFocusModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"TuiAutoFocusDirective"}],"exports":[{"__symbolic":"reference","name":"TuiAutoFocusDirective"}]}]}],"members":{}},"TuiAutofocusHandler":{"__symbolic":"interface"},"TUI_AUTOFOCUS_HANDLER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":21,"character":41},"arguments":["Autofocusing handler"]},"tuiAutofocusHandlerFactory":{"__symbolic":"function","parameters":["tuiFocusableComponent","elementRef","animationFrame$","renderer","ngZone","windowRef"],"value":{"__symbolic":"if","condition":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"inject","line":34,"character":11},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk/tokens","name":"TUI_IS_IOS","line":34,"character":18}]},"thenExpression":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"TuiIosAutofocusHandler"},"arguments":[{"__symbolic":"reference","name":"tuiFocusableComponent"},{"__symbolic":"reference","name":"elementRef"},{"__symbolic":"reference","name":"renderer"},{"__symbolic":"reference","name":"ngZone"},{"__symbolic":"reference","name":"windowRef"}]},"elseExpression":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"TuiDefaultAutofocusHandler"},"arguments":[{"__symbolic":"reference","name":"tuiFocusableComponent"},{"__symbolic":"reference","name":"elementRef"},{"__symbolic":"reference","name":"animationFrame$"}]}}},"TUI_AUTOFOCUS_PROVIDERS":[{"provide":{"__symbolic":"reference","name":"TUI_AUTOFOCUS_HANDLER"},"useFactory":{"__symbolic":"reference","name":"tuiAutofocusHandlerFactory"},"deps":[[{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":55,"character":17}},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Self","line":55,"character":33}},{"__symbolic":"reference","module":"@taiga-ui/cdk/tokens","name":"TUI_FOCUSABLE_ITEM_ACCESSOR","line":55,"character":41}],{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":56,"character":12},{"__symbolic":"reference","module":"@ng-web-apis/common","name":"ANIMATION_FRAME","line":57,"character":12},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":58,"character":12},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":59,"character":12},{"__symbolic":"reference","module":"@ng-web-apis/common","name":"WINDOW","line":60,"character":12}]}],"AbstractTuiAutofocusHandler":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":8,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@taiga-ui/cdk/interfaces","name":"TuiFocusableElementAccessor","line":11,"character":50},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":12,"character":50,"context":{"typeName":"HTMLElement"},"module":"./handlers/abstract.handler"}]}]}],"setFocus":[{"__symbolic":"method"}]}},"TuiDefaultAutofocusHandler":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"AbstractTuiAutofocusHandler"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":13,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":16,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Self","line":17,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":18,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk/tokens","name":"TUI_FOCUSABLE_ITEM_ACCESSOR","line":18,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":20,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":20,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":21,"character":9},"arguments":[{"__symbolic":"reference","module":"@ng-web-apis/common","name":"ANIMATION_FRAME","line":21,"character":16}]}]],"parameters":[{"__symbolic":"reference","module":"@taiga-ui/cdk/interfaces","name":"TuiFocusableElementAccessor","line":19,"character":31},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":20,"character":51,"context":{"typeName":"HTMLElement"},"module":"./handlers/default.handler"}]},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"reference","name":"number"}]}]}],"setFocus":[{"__symbolic":"method"}]}},"TuiIosAutofocusHandler":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"AbstractTuiAutofocusHandler"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":17,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":20,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Self","line":21,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":22,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk/tokens","name":"TUI_FOCUSABLE_ITEM_ACCESSOR","line":22,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":24,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":24,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":25,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":25,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":26,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":26,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":27,"character":9},"arguments":[{"__symbolic":"reference","module":"@ng-web-apis/common","name":"WINDOW","line":27,"character":16}]}]],"parameters":[{"__symbolic":"reference","module":"@taiga-ui/cdk/interfaces","name":"TuiFocusableElementAccessor","line":23,"character":31},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":24,"character":51,"context":{"typeName":"HTMLElement"},"module":"./handlers/ios.handler"}]},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":25,"character":54},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":26,"character":49},{"__symbolic":"error","message":"Could not resolve type","line":27,"character":52,"context":{"typeName":"Window"},"module":"./handlers/ios.handler"}]}],"setFocus":[{"__symbolic":"method"}],"iosWebkitAutofocus":[{"__symbolic":"method"}],"makeFakeInput":[{"__symbolic":"method"}],"getDurationTimeBeforeFocus":[{"__symbolic":"method"}],"insideDialog":[{"__symbolic":"method"}],"patchCssStyles":[{"__symbolic":"method"}]}}},"origins":{"TuiAutoFocusDirective":"./autofocus.directive","TuiAutoFocusModule":"./autofocus.module","TuiAutofocusHandler":"./autofocus.options","TUI_AUTOFOCUS_HANDLER":"./autofocus.options","tuiAutofocusHandlerFactory":"./autofocus.options","TUI_AUTOFOCUS_PROVIDERS":"./autofocus.options","AbstractTuiAutofocusHandler":"./handlers/abstract.handler","TuiDefaultAutofocusHandler":"./handlers/default.handler","TuiIosAutofocusHandler":"./handlers/ios.handler"},"importAs":"@taiga-ui/cdk/directives/auto-focus"}
@@ -0,0 +1,13 @@
1
+ import { OnChanges, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';
2
+ export declare class TuiForAsyncDirective<T> implements OnChanges, OnDestroy {
3
+ private readonly view;
4
+ private readonly template;
5
+ private readonly destroy$;
6
+ tuiForAsyncOf: readonly T[] | undefined | null;
7
+ tuiForAsyncTimeout: number;
8
+ constructor(view: ViewContainerRef, template: TemplateRef<unknown>);
9
+ ngOnChanges(): void;
10
+ ngOnDestroy(): void;
11
+ private createAsyncViewForNewNodes;
12
+ private clearViewForOldNodes;
13
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @experimental
3
+ */
4
+ export declare class TuiForAsyncModule {
5
+ }
@@ -0,0 +1,2 @@
1
+ export * from './for-async.directive';
2
+ export * from './for-async.module';
@@ -0,0 +1,13 @@
1
+ {
2
+ "main": "../../bundles/taiga-ui-cdk-directives-for-async.umd.js",
3
+ "module": "../../fesm5/taiga-ui-cdk-directives-for-async.js",
4
+ "es2015": "../../fesm2015/taiga-ui-cdk-directives-for-async.js",
5
+ "esm5": "../../esm5/directives/for-async/taiga-ui-cdk-directives-for-async.js",
6
+ "esm2015": "../../esm2015/directives/for-async/taiga-ui-cdk-directives-for-async.js",
7
+ "fesm5": "../../fesm5/taiga-ui-cdk-directives-for-async.js",
8
+ "fesm2015": "../../fesm2015/taiga-ui-cdk-directives-for-async.js",
9
+ "typings": "taiga-ui-cdk-directives-for-async.d.ts",
10
+ "metadata": "taiga-ui-cdk-directives-for-async.metadata.json",
11
+ "sideEffects": false,
12
+ "name": "@taiga-ui/cdk/directives/for-async"
13
+ }
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
@@ -0,0 +1 @@
1
+ {"__symbolic":"module","version":4,"metadata":{"TuiForAsyncDirective":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":12,"character":1},"arguments":[{"selector":"[tuiForAsync][tuiForAsyncOf]"}]}],"members":{"tuiForAsyncOf":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":5}}]}],"tuiForAsyncTimeout":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":23,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":23,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":24,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"TemplateRef","line":24,"character":16}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":23,"character":57},{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":24,"character":68,"module":"./for-async.directive"}]}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"createAsyncViewForNewNodes":[{"__symbolic":"method"}],"clearViewForOldNodes":[{"__symbolic":"method"}]}},"TuiForAsyncModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"TuiForAsyncDirective"}],"exports":[{"__symbolic":"reference","name":"TuiForAsyncDirective"}]}]}],"members":{}}},"origins":{"TuiForAsyncDirective":"./for-async.directive","TuiForAsyncModule":"./for-async.module"},"importAs":"@taiga-ui/cdk/directives/for-async"}
@@ -10,6 +10,7 @@ export * from '@taiga-ui/cdk/directives/focus-visible';
10
10
  export * from '@taiga-ui/cdk/directives/focusable';
11
11
  export * from '@taiga-ui/cdk/directives/focused';
12
12
  export * from '@taiga-ui/cdk/directives/for';
13
+ export * from '@taiga-ui/cdk/directives/for-async';
13
14
  export * from '@taiga-ui/cdk/directives/high-dpi';
14
15
  export * from '@taiga-ui/cdk/directives/hovered';
15
16
  export * from '@taiga-ui/cdk/directives/input-mode';
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"exports":[{"from":"@taiga-ui/cdk/directives/active-zone"},{"from":"@taiga-ui/cdk/directives/auto-focus"},{"from":"@taiga-ui/cdk/directives/autofilled"},{"from":"@taiga-ui/cdk/directives/checked"},{"from":"@taiga-ui/cdk/directives/drag"},{"from":"@taiga-ui/cdk/directives/droppable"},{"from":"@taiga-ui/cdk/directives/element"},{"from":"@taiga-ui/cdk/directives/focus-trap"},{"from":"@taiga-ui/cdk/directives/focus-visible"},{"from":"@taiga-ui/cdk/directives/focusable"},{"from":"@taiga-ui/cdk/directives/focused"},{"from":"@taiga-ui/cdk/directives/for"},{"from":"@taiga-ui/cdk/directives/high-dpi"},{"from":"@taiga-ui/cdk/directives/hovered"},{"from":"@taiga-ui/cdk/directives/input-mode"},{"from":"@taiga-ui/cdk/directives/item"},{"from":"@taiga-ui/cdk/directives/let"},{"from":"@taiga-ui/cdk/directives/media"},{"from":"@taiga-ui/cdk/directives/obscured"},{"from":"@taiga-ui/cdk/directives/overscroll"},{"from":"@taiga-ui/cdk/directives/pan"},{"from":"@taiga-ui/cdk/directives/portal"},{"from":"@taiga-ui/cdk/directives/pressed"},{"from":"@taiga-ui/cdk/directives/prevent-default"},{"from":"@taiga-ui/cdk/directives/repeat-times"},{"from":"@taiga-ui/cdk/directives/resize"},{"from":"@taiga-ui/cdk/directives/swipe"},{"from":"@taiga-ui/cdk/directives/validator"},{"from":"@taiga-ui/cdk/directives/zoom"}],"metadata":{},"origins":{},"importAs":"@taiga-ui/cdk/directives"}
1
+ {"__symbolic":"module","version":4,"exports":[{"from":"@taiga-ui/cdk/directives/active-zone"},{"from":"@taiga-ui/cdk/directives/auto-focus"},{"from":"@taiga-ui/cdk/directives/autofilled"},{"from":"@taiga-ui/cdk/directives/checked"},{"from":"@taiga-ui/cdk/directives/drag"},{"from":"@taiga-ui/cdk/directives/droppable"},{"from":"@taiga-ui/cdk/directives/element"},{"from":"@taiga-ui/cdk/directives/focus-trap"},{"from":"@taiga-ui/cdk/directives/focus-visible"},{"from":"@taiga-ui/cdk/directives/focusable"},{"from":"@taiga-ui/cdk/directives/focused"},{"from":"@taiga-ui/cdk/directives/for"},{"from":"@taiga-ui/cdk/directives/for-async"},{"from":"@taiga-ui/cdk/directives/high-dpi"},{"from":"@taiga-ui/cdk/directives/hovered"},{"from":"@taiga-ui/cdk/directives/input-mode"},{"from":"@taiga-ui/cdk/directives/item"},{"from":"@taiga-ui/cdk/directives/let"},{"from":"@taiga-ui/cdk/directives/media"},{"from":"@taiga-ui/cdk/directives/obscured"},{"from":"@taiga-ui/cdk/directives/overscroll"},{"from":"@taiga-ui/cdk/directives/pan"},{"from":"@taiga-ui/cdk/directives/portal"},{"from":"@taiga-ui/cdk/directives/pressed"},{"from":"@taiga-ui/cdk/directives/prevent-default"},{"from":"@taiga-ui/cdk/directives/repeat-times"},{"from":"@taiga-ui/cdk/directives/resize"},{"from":"@taiga-ui/cdk/directives/swipe"},{"from":"@taiga-ui/cdk/directives/validator"},{"from":"@taiga-ui/cdk/directives/zoom"}],"metadata":{},"origins":{},"importAs":"@taiga-ui/cdk/directives"}
@@ -3,7 +3,17 @@ export declare const enum TuiCreditCardAutofillName {
3
3
  CcName = "cc-name",
4
4
  CcNumber = "cc-number",
5
5
  CcCsc = "cc-csc",
6
+ CcExpMonth = "cc-exp-month",
7
+ /**
8
+ * @deprecated
9
+ * TODO: 3.0 replace with {@link CcExpMonth}
10
+ */
6
11
  CcExp_mounth = "cc-exp-month",
12
+ CcExpYear = "cc-exp-year",
13
+ /**
14
+ * @deprecated
15
+ * TODO: 3.0 replace with {@link CcExpYear}
16
+ */
7
17
  CcExp_year = "cc-exp-year",
8
18
  CcExp = "cc-exp",
9
19
  CcType = "cc-type"
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"TuiCreditCardAutofillName":{"Off":"off","CcName":"cc-name","CcNumber":"cc-number","CcCsc":"cc-csc","CcExp_mounth":"cc-exp-month","CcExp_year":"cc-exp-year","CcExp":"cc-exp","CcType":"cc-type"},"TuiNameAutofillName":{"Off":"off","Name":"name","GivenName":"given-name","AdditionalName":"additional-name","FamilyName":"family-name"},"TuiAccountAutofillName":{"Off":"off","Username":"username","NewPassword":"new-password","CurrentPassword":"current-password"},"TuiEmailAutofillName":{"Off":"off","Email":"email"},"TuiAddressAutofillName":{"Off":"off","StreetAddress":"street-address","PostalCode":"postal-code","CountryName":"country-name"},"TuiPhoneAutofillName":{"Off":"off","Tel":"tel"},"TuiDateAutofillName":{"Off":"off","Bday":"bday"},"TuiTransactionAutofillName":{"Off":"off","TransactionCurrency":"transaction-currency","TransactionAmount":"transaction-amount"},"TuiAutofillFieldNameT":{"__symbolic":"interface"},"TuiAutofillFieldName":{"__symbolic":"interface"},"TuiDayOfWeek":{"Sunday":0,"Monday":1,"Tuesday":2,"Wednesday":3,"Thursday":4,"Friday":5,"Saturday":6},"TuiInputMode":{"None":"none","Text":"text","Decimal":"decimal","Numeric":"numeric","Tel":"tel","Email":"email","Url":"url","Search":"search"},"TuiInputType":{"Text":"text","Tel":"tel","Email":"email","Url":"url","Password":"password"},"TuiMonthNumber":{"January":0,"February":1,"March":2,"April":3,"May":4,"June":5,"July":6,"August":7,"September":8,"October":9,"November":10,"December":11},"TuiOverscrollMode":{"All":"all","Scroll":"scroll","None":"none"}},"origins":{"TuiCreditCardAutofillName":"./autocomplete","TuiNameAutofillName":"./autocomplete","TuiAccountAutofillName":"./autocomplete","TuiEmailAutofillName":"./autocomplete","TuiAddressAutofillName":"./autocomplete","TuiPhoneAutofillName":"./autocomplete","TuiDateAutofillName":"./autocomplete","TuiTransactionAutofillName":"./autocomplete","TuiAutofillFieldNameT":"./autocomplete","TuiAutofillFieldName":"./autocomplete","TuiDayOfWeek":"./day-of-week","TuiInputMode":"./input-mode","TuiInputType":"./input-type","TuiMonthNumber":"./month-number","TuiOverscrollMode":"./overscroll-mode"},"importAs":"@taiga-ui/cdk/enums"}
1
+ {"__symbolic":"module","version":4,"metadata":{"TuiCreditCardAutofillName":{"Off":"off","CcName":"cc-name","CcNumber":"cc-number","CcCsc":"cc-csc","CcExpMonth":"cc-exp-month","CcExp_mounth":"cc-exp-month","CcExpYear":"cc-exp-year","CcExp_year":"cc-exp-year","CcExp":"cc-exp","CcType":"cc-type"},"TuiNameAutofillName":{"Off":"off","Name":"name","GivenName":"given-name","AdditionalName":"additional-name","FamilyName":"family-name"},"TuiAccountAutofillName":{"Off":"off","Username":"username","NewPassword":"new-password","CurrentPassword":"current-password"},"TuiEmailAutofillName":{"Off":"off","Email":"email"},"TuiAddressAutofillName":{"Off":"off","StreetAddress":"street-address","PostalCode":"postal-code","CountryName":"country-name"},"TuiPhoneAutofillName":{"Off":"off","Tel":"tel"},"TuiDateAutofillName":{"Off":"off","Bday":"bday"},"TuiTransactionAutofillName":{"Off":"off","TransactionCurrency":"transaction-currency","TransactionAmount":"transaction-amount"},"TuiAutofillFieldNameT":{"__symbolic":"interface"},"TuiAutofillFieldName":{"__symbolic":"interface"},"TuiDayOfWeek":{"Sunday":0,"Monday":1,"Tuesday":2,"Wednesday":3,"Thursday":4,"Friday":5,"Saturday":6},"TuiInputMode":{"None":"none","Text":"text","Decimal":"decimal","Numeric":"numeric","Tel":"tel","Email":"email","Url":"url","Search":"search"},"TuiInputType":{"Text":"text","Tel":"tel","Email":"email","Url":"url","Password":"password"},"TuiMonthNumber":{"January":0,"February":1,"March":2,"April":3,"May":4,"June":5,"July":6,"August":7,"September":8,"October":9,"November":10,"December":11},"TuiOverscrollMode":{"All":"all","Scroll":"scroll","None":"none"}},"origins":{"TuiCreditCardAutofillName":"./autocomplete","TuiNameAutofillName":"./autocomplete","TuiAccountAutofillName":"./autocomplete","TuiEmailAutofillName":"./autocomplete","TuiAddressAutofillName":"./autocomplete","TuiPhoneAutofillName":"./autocomplete","TuiDateAutofillName":"./autocomplete","TuiTransactionAutofillName":"./autocomplete","TuiAutofillFieldNameT":"./autocomplete","TuiAutofillFieldName":"./autocomplete","TuiDayOfWeek":"./day-of-week","TuiInputMode":"./input-mode","TuiInputType":"./input-type","TuiMonthNumber":"./month-number","TuiOverscrollMode":"./overscroll-mode"},"importAs":"@taiga-ui/cdk/enums"}
@@ -1,4 +1,8 @@
1
1
  import { Subject } from 'rxjs';
2
+ /**
3
+ * @deprecated
4
+ * TODO: 3.0 replace with {@link AbstractTuiController}
5
+ */
2
6
  export class TuiController {
3
7
  constructor() {
4
8
  this.change$ = new Subject();
@@ -7,4 +11,6 @@ export class TuiController {
7
11
  this.change$.next();
8
12
  }
9
13
  }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvYWJzdHJhY3QvIiwic291cmNlcyI6WyJjb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFN0IsTUFBTSxPQUFnQixhQUFhO0lBQW5DO1FBQ2EsWUFBTyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFLM0MsQ0FBQztJQUhHLFdBQVc7UUFDUCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7T25DaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUdWlDb250cm9sbGVyIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICByZWFkb25seSBjaGFuZ2UkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoYW5nZSQubmV4dCgpO1xuICAgIH1cbn1cbiJdfQ==
14
+ export class AbstractTuiController extends TuiController {
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvYWJzdHJhY3QvIiwic291cmNlcyI6WyJjb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFN0I7OztHQUdHO0FBQ0gsTUFBTSxPQUFnQixhQUFhO0lBQW5DO1FBQ2EsWUFBTyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFLM0MsQ0FBQztJQUhHLFdBQVc7UUFDUCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBZ0IscUJBQXNCLFNBQVEsYUFBYTtDQUFHIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG5pbXBvcnQge09uQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKiBUT0RPOiAzLjAgcmVwbGFjZSB3aXRoIHtAbGluayBBYnN0cmFjdFR1aUNvbnRyb2xsZXJ9XG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUdWlDb250cm9sbGVyIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICByZWFkb25seSBjaGFuZ2UkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoYW5nZSQubmV4dCgpO1xuICAgIH1cbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0VHVpQ29udHJvbGxlciBleHRlbmRzIFR1aUNvbnRyb2xsZXIge31cbiJdfQ==
@@ -3,9 +3,33 @@
3
3
  */
4
4
  export const CHAR_NO_BREAK_SPACE = '\u00A0';
5
5
  /**
6
- * {@link https://unicode-table.com/en/2013/ EN dash}.
6
+ * {@link https://unicode-table.com/en/2013/ EN dash}
7
+ * is used to indicate a range of numbers or a span of time.
8
+ * @example 2006–2022
9
+ * ___
10
+ * Don't confuse with {@link CHAR_EM_DASH} or {@link CHAR_HYPHEN}!
7
11
  */
8
12
  export const CHAR_EN_DASH = '\u2013';
13
+ /**
14
+ * {@link https://unicode-table.com/en/2014/ EM dash}
15
+ * is used to mark a break in a sentence.
16
+ * @example Taiga UI — powerful set of open source components for Angular
17
+ * ___
18
+ * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_HYPHEN}!
19
+ */
20
+ export const CHAR_EM_DASH = '\u2014';
21
+ /**
22
+ * {@link https://unicode-table.com/en/002D/ Hyphen (minus sign)}
23
+ * is used to combine words or as minus sign before digits.
24
+ * @example well-behaved, -42
25
+ * ___
26
+ * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_EM_DASH}!
27
+ */
28
+ export const CHAR_HYPHEN = '\u002D';
29
+ /**
30
+ * {@link https://unicode-table.com/en/002B/ Plus}
31
+ */
32
+ export const CHAR_PLUS = '\u002B';
9
33
  /**
10
34
  * {@link https://unicode-table.com/en/2022/ Bullet}.
11
35
  */
@@ -22,4 +46,4 @@ export const CHAR_CURRENCY_SIGN = '\u00A4';
22
46
  * {@link https://unicode-table.com/en/200b/ Suspension points}.
23
47
  */
24
48
  export const CHAR_ZERO_WIDTH_SPACE = '\u200b';
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pY29kZS1jaGFycy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvY29uc3RhbnRzLyIsInNvdXJjZXMiOlsidW5pY29kZS1jaGFycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLFFBQVEsQ0FBQztBQUU1Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUM7QUFFckM7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDO0FBRXBDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQztBQUV0Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBQztBQUUzQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICoge0BsaW5rIGh0dHBzOi8vdW5pY29kZS10YWJsZS5jb20vZW4vMDBBMC8gTm9uLWJyZWFraW5nIHNwYWNlfS5cbiAqL1xuZXhwb3J0IGNvbnN0IENIQVJfTk9fQlJFQUtfU1BBQ0UgPSAnXFx1MDBBMCc7XG5cbi8qKlxuICoge0BsaW5rIGh0dHBzOi8vdW5pY29kZS10YWJsZS5jb20vZW4vMjAxMy8gRU4gZGFzaH0uXG4gKi9cbmV4cG9ydCBjb25zdCBDSEFSX0VOX0RBU0ggPSAnXFx1MjAxMyc7XG5cbi8qKlxuICoge0BsaW5rIGh0dHBzOi8vdW5pY29kZS10YWJsZS5jb20vZW4vMjAyMi8gQnVsbGV0fS5cbiAqL1xuZXhwb3J0IGNvbnN0IENIQVJfQlVMTEVUID0gJ1xcdTIwMjInO1xuXG4vKipcbiAqIHtAbGluayBodHRwczovL3VuaWNvZGUtdGFibGUuY29tL2VuLzIwMjYvIFN1c3BlbnNpb24gcG9pbnRzfS5cbiAqL1xuZXhwb3J0IGNvbnN0IENIQVJfRUxMSVBTSVMgPSAnXFx1MjAyNic7XG5cbi8qKlxuICoge0BsaW5rIGh0dHBzOi8vdW5pY29kZS10YWJsZS5jb20vZW4vMDBBNC8gU3VzcGVuc2lvbiBwb2ludHN9LlxuICovXG5leHBvcnQgY29uc3QgQ0hBUl9DVVJSRU5DWV9TSUdOID0gJ1xcdTAwQTQnO1xuXG4vKipcbiAqIHtAbGluayBodHRwczovL3VuaWNvZGUtdGFibGUuY29tL2VuLzIwMGIvIFN1c3BlbnNpb24gcG9pbnRzfS5cbiAqL1xuZXhwb3J0IGNvbnN0IENIQVJfWkVST19XSURUSF9TUEFDRSA9ICdcXHUyMDBiJztcbiJdfQ==
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pY29kZS1jaGFycy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvY29uc3RhbnRzLyIsInNvdXJjZXMiOlsidW5pY29kZS1jaGFycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLFFBQVEsQ0FBQztBQUU1Qzs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDO0FBRXJDOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUM7QUFFckM7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQztBQUVwQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUM7QUFFbEM7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDO0FBRXBDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQztBQUV0Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBQztBQUUzQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICoge0BsaW5rIGh0dHBzOi8vdW5pY29kZS10YWJsZS5jb20vZW4vMDBBMC8gTm9uLWJyZWFraW5nIHNwYWNlfS5cbiAqL1xuZXhwb3J0IGNvbnN0IENIQVJfTk9fQlJFQUtfU1BBQ0UgPSAnXFx1MDBBMCc7XG5cbi8qKlxuICoge0BsaW5rIGh0dHBzOi8vdW5pY29kZS10YWJsZS5jb20vZW4vMjAxMy8gRU4gZGFzaH1cbiAqIGlzIHVzZWQgdG8gaW5kaWNhdGUgYSByYW5nZSBvZiBudW1iZXJzIG9yIGEgc3BhbiBvZiB0aW1lLlxuICogQGV4YW1wbGUgMjAwNuKAkzIwMjJcbiAqIF9fX1xuICogRG9uJ3QgY29uZnVzZSB3aXRoIHtAbGluayBDSEFSX0VNX0RBU0h9IG9yIHtAbGluayBDSEFSX0hZUEhFTn0hXG4gKi9cbmV4cG9ydCBjb25zdCBDSEFSX0VOX0RBU0ggPSAnXFx1MjAxMyc7XG5cbi8qKlxuICoge0BsaW5rIGh0dHBzOi8vdW5pY29kZS10YWJsZS5jb20vZW4vMjAxNC8gRU0gZGFzaH1cbiAqIGlzIHVzZWQgdG8gbWFyayBhIGJyZWFrIGluIGEgc2VudGVuY2UuXG4gKiBAZXhhbXBsZSBUYWlnYSBVSSDigJQgcG93ZXJmdWwgc2V0IG9mIG9wZW4gc291cmNlIGNvbXBvbmVudHMgZm9yIEFuZ3VsYXJcbiAqIF9fX1xuICogRG9uJ3QgY29uZnVzZSB3aXRoIHtAbGluayBDSEFSX0VOX0RBU0h9IG9yIHtAbGluayBDSEFSX0hZUEhFTn0hXG4gKi9cbmV4cG9ydCBjb25zdCBDSEFSX0VNX0RBU0ggPSAnXFx1MjAxNCc7XG5cbi8qKlxuICoge0BsaW5rIGh0dHBzOi8vdW5pY29kZS10YWJsZS5jb20vZW4vMDAyRC8gSHlwaGVuIChtaW51cyBzaWduKX1cbiAqIGlzIHVzZWQgdG8gY29tYmluZSB3b3JkcyBvciBhcyBtaW51cyBzaWduIGJlZm9yZSBkaWdpdHMuXG4gKiBAZXhhbXBsZSB3ZWxsLWJlaGF2ZWQsIC00MlxuICogX19fXG4gKiBEb24ndCBjb25mdXNlIHdpdGgge0BsaW5rIENIQVJfRU5fREFTSH0gb3Ige0BsaW5rIENIQVJfRU1fREFTSH0hXG4gKi9cbmV4cG9ydCBjb25zdCBDSEFSX0hZUEhFTiA9ICdcXHUwMDJEJztcblxuLyoqXG4gKiB7QGxpbmsgaHR0cHM6Ly91bmljb2RlLXRhYmxlLmNvbS9lbi8wMDJCLyBQbHVzfVxuICovXG5leHBvcnQgY29uc3QgQ0hBUl9QTFVTID0gJ1xcdTAwMkInO1xuXG4vKipcbiAqIHtAbGluayBodHRwczovL3VuaWNvZGUtdGFibGUuY29tL2VuLzIwMjIvIEJ1bGxldH0uXG4gKi9cbmV4cG9ydCBjb25zdCBDSEFSX0JVTExFVCA9ICdcXHUyMDIyJztcblxuLyoqXG4gKiB7QGxpbmsgaHR0cHM6Ly91bmljb2RlLXRhYmxlLmNvbS9lbi8yMDI2LyBTdXNwZW5zaW9uIHBvaW50c30uXG4gKi9cbmV4cG9ydCBjb25zdCBDSEFSX0VMTElQU0lTID0gJ1xcdTIwMjYnO1xuXG4vKipcbiAqIHtAbGluayBodHRwczovL3VuaWNvZGUtdGFibGUuY29tL2VuLzAwQTQvIFN1c3BlbnNpb24gcG9pbnRzfS5cbiAqL1xuZXhwb3J0IGNvbnN0IENIQVJfQ1VSUkVOQ1lfU0lHTiA9ICdcXHUwMEE0JztcblxuLyoqXG4gKiB7QGxpbmsgaHR0cHM6Ly91bmljb2RlLXRhYmxlLmNvbS9lbi8yMDBiLyBTdXNwZW5zaW9uIHBvaW50c30uXG4gKi9cbmV4cG9ydCBjb25zdCBDSEFSX1pFUk9fV0lEVEhfU1BBQ0UgPSAnXFx1MjAwYic7XG4iXX0=
@@ -1,13 +1,13 @@
1
1
  import { ElementRef, inject, InjectionToken, NgZone, Optional, Renderer2, Self, } from '@angular/core';
2
- import { ANIMATION_FRAME } from '@ng-web-apis/common';
3
- import { TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_APPLE } from '@taiga-ui/cdk/tokens';
2
+ import { ANIMATION_FRAME, WINDOW } from '@ng-web-apis/common';
3
+ import { TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_IOS } from '@taiga-ui/cdk/tokens';
4
4
  import { TuiDefaultAutofocusHandler } from './handlers/default.handler';
5
5
  import { TuiIosAutofocusHandler } from './handlers/ios.handler';
6
6
  export const TUI_AUTOFOCUS_HANDLER = new InjectionToken('Autofocusing handler');
7
7
  // TODO: 3.0 remove in ivy compilation
8
- export function tuiAutofocusHandlerFactory(tuiFocusableComponent, elementRef, animationFrame$, renderer, ngZone) {
9
- return inject(TUI_IS_APPLE)
10
- ? new TuiIosAutofocusHandler(tuiFocusableComponent, elementRef, renderer, ngZone)
8
+ export function tuiAutofocusHandlerFactory(tuiFocusableComponent, elementRef, animationFrame$, renderer, ngZone, windowRef) {
9
+ return inject(TUI_IS_IOS)
10
+ ? new TuiIosAutofocusHandler(tuiFocusableComponent, elementRef, renderer, ngZone, windowRef)
11
11
  : new TuiDefaultAutofocusHandler(tuiFocusableComponent, elementRef, animationFrame$);
12
12
  }
13
13
  export const TUI_AUTOFOCUS_PROVIDERS = [
@@ -21,7 +21,8 @@ export const TUI_AUTOFOCUS_PROVIDERS = [
21
21
  ANIMATION_FRAME,
22
22
  Renderer2,
23
23
  NgZone,
24
+ WINDOW,
24
25
  ],
25
26
  },
26
27
  ];
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2ZvY3VzLm9wdGlvbnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvYXV0by1mb2N1cy8iLCJzb3VyY2VzIjpbImF1dG9mb2N1cy5vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxVQUFVLEVBQ1YsTUFBTSxFQUNOLGNBQWMsRUFDZCxNQUFNLEVBQ04sUUFBUSxFQUNSLFNBQVMsRUFDVCxJQUFJLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRXBELE9BQU8sRUFBQywyQkFBMkIsRUFBRSxZQUFZLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUcvRSxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQU05RCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FDbkQsc0JBQXNCLENBQ3pCLENBQUM7QUFFRixzQ0FBc0M7QUFDdEMsTUFBTSxVQUFVLDBCQUEwQixDQUN0QyxxQkFBeUQsRUFDekQsVUFBbUMsRUFDbkMsZUFBbUMsRUFDbkMsUUFBbUIsRUFDbkIsTUFBYztJQUVkLE9BQU8sTUFBTSxDQUFDLFlBQVksQ0FBQztRQUN2QixDQUFDLENBQUMsSUFBSSxzQkFBc0IsQ0FBQyxxQkFBcUIsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQztRQUNqRixDQUFDLENBQUMsSUFBSSwwQkFBMEIsQ0FDMUIscUJBQXFCLEVBQ3JCLFVBQVUsRUFDVixlQUFlLENBQ2xCLENBQUM7QUFDWixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUc7SUFDbkM7UUFDSSxPQUFPLEVBQUUscUJBQXFCO1FBQzlCLG9DQUFvQztRQUNwQyxVQUFVLEVBQUUsMEJBQTBCO1FBQ3RDLElBQUksRUFBRTtZQUNGLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLDJCQUEyQixDQUFDO1lBQ3pELFVBQVU7WUFDVixlQUFlO1lBQ2YsU0FBUztZQUNULE1BQU07U0FDVDtLQUNKO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRWxlbWVudFJlZixcbiAgICBpbmplY3QsXG4gICAgSW5qZWN0aW9uVG9rZW4sXG4gICAgTmdab25lLFxuICAgIE9wdGlvbmFsLFxuICAgIFJlbmRlcmVyMixcbiAgICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QU5JTUFUSU9OX0ZSQU1FfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcbmltcG9ydCB7VHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsIFRVSV9JU19BUFBMRX0gZnJvbSAnQHRhaWdhLXVpL2Nkay90b2tlbnMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtUdWlEZWZhdWx0QXV0b2ZvY3VzSGFuZGxlcn0gZnJvbSAnLi9oYW5kbGVycy9kZWZhdWx0LmhhbmRsZXInO1xuaW1wb3J0IHtUdWlJb3NBdXRvZm9jdXNIYW5kbGVyfSBmcm9tICcuL2hhbmRsZXJzL2lvcy5oYW5kbGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBUdWlBdXRvZm9jdXNIYW5kbGVyIHtcbiAgICBzZXRGb2N1cygpOiB2b2lkO1xufVxuXG5leHBvcnQgY29uc3QgVFVJX0FVVE9GT0NVU19IQU5ETEVSID0gbmV3IEluamVjdGlvblRva2VuPFR1aUF1dG9mb2N1c0hhbmRsZXI+KFxuICAgICdBdXRvZm9jdXNpbmcgaGFuZGxlcicsXG4pO1xuXG4vLyBUT0RPOiAzLjAgcmVtb3ZlIGluIGl2eSBjb21waWxhdGlvblxuZXhwb3J0IGZ1bmN0aW9uIHR1aUF1dG9mb2N1c0hhbmRsZXJGYWN0b3J5KFxuICAgIHR1aUZvY3VzYWJsZUNvbXBvbmVudDogVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yIHwgbnVsbCxcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBhbmltYXRpb25GcmFtZSQ6IE9ic2VydmFibGU8bnVtYmVyPixcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIG5nWm9uZTogTmdab25lLFxuKTogVHVpQXV0b2ZvY3VzSGFuZGxlciB7XG4gICAgcmV0dXJuIGluamVjdChUVUlfSVNfQVBQTEUpXG4gICAgICAgID8gbmV3IFR1aUlvc0F1dG9mb2N1c0hhbmRsZXIodHVpRm9jdXNhYmxlQ29tcG9uZW50LCBlbGVtZW50UmVmLCByZW5kZXJlciwgbmdab25lKVxuICAgICAgICA6IG5ldyBUdWlEZWZhdWx0QXV0b2ZvY3VzSGFuZGxlcihcbiAgICAgICAgICAgICAgdHVpRm9jdXNhYmxlQ29tcG9uZW50LFxuICAgICAgICAgICAgICBlbGVtZW50UmVmLFxuICAgICAgICAgICAgICBhbmltYXRpb25GcmFtZSQsXG4gICAgICAgICAgKTtcbn1cblxuZXhwb3J0IGNvbnN0IFRVSV9BVVRPRk9DVVNfUFJPVklERVJTID0gW1xuICAgIHtcbiAgICAgICAgcHJvdmlkZTogVFVJX0FVVE9GT0NVU19IQU5ETEVSLFxuICAgICAgICAvLyBUT0RPOiByZXBsYWNlIHRvIHVzZUNsYXNzIGluIHYzLjBcbiAgICAgICAgdXNlRmFjdG9yeTogdHVpQXV0b2ZvY3VzSGFuZGxlckZhY3RvcnksXG4gICAgICAgIGRlcHM6IFtcbiAgICAgICAgICAgIFtuZXcgT3B0aW9uYWwoKSwgbmV3IFNlbGYoKSwgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SXSxcbiAgICAgICAgICAgIEVsZW1lbnRSZWYsXG4gICAgICAgICAgICBBTklNQVRJT05fRlJBTUUsXG4gICAgICAgICAgICBSZW5kZXJlcjIsXG4gICAgICAgICAgICBOZ1pvbmUsXG4gICAgICAgIF0sXG4gICAgfSxcbl07XG4iXX0=
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2ZvY3VzLm9wdGlvbnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvYXV0by1mb2N1cy8iLCJzb3VyY2VzIjpbImF1dG9mb2N1cy5vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxVQUFVLEVBQ1YsTUFBTSxFQUNOLGNBQWMsRUFDZCxNQUFNLEVBQ04sUUFBUSxFQUNSLFNBQVMsRUFDVCxJQUFJLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUU1RCxPQUFPLEVBQUMsMkJBQTJCLEVBQUUsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFHN0UsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFNOUQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQ25ELHNCQUFzQixDQUN6QixDQUFDO0FBRUYsc0NBQXNDO0FBQ3RDLE1BQU0sVUFBVSwwQkFBMEIsQ0FDdEMscUJBQXlELEVBQ3pELFVBQW1DLEVBQ25DLGVBQW1DLEVBQ25DLFFBQW1CLEVBQ25CLE1BQWMsRUFDZCxTQUFpQjtJQUVqQixPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFDckIsQ0FBQyxDQUFDLElBQUksc0JBQXNCLENBQ3RCLHFCQUFxQixFQUNyQixVQUFVLEVBQ1YsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLENBQ1o7UUFDSCxDQUFDLENBQUMsSUFBSSwwQkFBMEIsQ0FDMUIscUJBQXFCLEVBQ3JCLFVBQVUsRUFDVixlQUFlLENBQ2xCLENBQUM7QUFDWixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUc7SUFDbkM7UUFDSSxPQUFPLEVBQUUscUJBQXFCO1FBQzlCLG9DQUFvQztRQUNwQyxVQUFVLEVBQUUsMEJBQTBCO1FBQ3RDLElBQUksRUFBRTtZQUNGLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLDJCQUEyQixDQUFDO1lBQ3pELFVBQVU7WUFDVixlQUFlO1lBQ2YsU0FBUztZQUNULE1BQU07WUFDTixNQUFNO1NBQ1Q7S0FDSjtDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEVsZW1lbnRSZWYsXG4gICAgaW5qZWN0LFxuICAgIEluamVjdGlvblRva2VuLFxuICAgIE5nWm9uZSxcbiAgICBPcHRpb25hbCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2VsZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FOSU1BVElPTl9GUkFNRSwgV0lORE9XfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcbmltcG9ydCB7VHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsIFRVSV9JU19JT1N9IGZyb20gJ0B0YWlnYS11aS9jZGsvdG9rZW5zJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7VHVpRGVmYXVsdEF1dG9mb2N1c0hhbmRsZXJ9IGZyb20gJy4vaGFuZGxlcnMvZGVmYXVsdC5oYW5kbGVyJztcbmltcG9ydCB7VHVpSW9zQXV0b2ZvY3VzSGFuZGxlcn0gZnJvbSAnLi9oYW5kbGVycy9pb3MuaGFuZGxlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHVpQXV0b2ZvY3VzSGFuZGxlciB7XG4gICAgc2V0Rm9jdXMoKTogdm9pZDtcbn1cblxuZXhwb3J0IGNvbnN0IFRVSV9BVVRPRk9DVVNfSEFORExFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxUdWlBdXRvZm9jdXNIYW5kbGVyPihcbiAgICAnQXV0b2ZvY3VzaW5nIGhhbmRsZXInLFxuKTtcblxuLy8gVE9ETzogMy4wIHJlbW92ZSBpbiBpdnkgY29tcGlsYXRpb25cbmV4cG9ydCBmdW5jdGlvbiB0dWlBdXRvZm9jdXNIYW5kbGVyRmFjdG9yeShcbiAgICB0dWlGb2N1c2FibGVDb21wb25lbnQ6IFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvciB8IG51bGwsXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgYW5pbWF0aW9uRnJhbWUkOiBPYnNlcnZhYmxlPG51bWJlcj4sXG4gICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBuZ1pvbmU6IE5nWm9uZSxcbiAgICB3aW5kb3dSZWY6IFdpbmRvdyxcbik6IFR1aUF1dG9mb2N1c0hhbmRsZXIge1xuICAgIHJldHVybiBpbmplY3QoVFVJX0lTX0lPUylcbiAgICAgICAgPyBuZXcgVHVpSW9zQXV0b2ZvY3VzSGFuZGxlcihcbiAgICAgICAgICAgICAgdHVpRm9jdXNhYmxlQ29tcG9uZW50LFxuICAgICAgICAgICAgICBlbGVtZW50UmVmLFxuICAgICAgICAgICAgICByZW5kZXJlcixcbiAgICAgICAgICAgICAgbmdab25lLFxuICAgICAgICAgICAgICB3aW5kb3dSZWYsXG4gICAgICAgICAgKVxuICAgICAgICA6IG5ldyBUdWlEZWZhdWx0QXV0b2ZvY3VzSGFuZGxlcihcbiAgICAgICAgICAgICAgdHVpRm9jdXNhYmxlQ29tcG9uZW50LFxuICAgICAgICAgICAgICBlbGVtZW50UmVmLFxuICAgICAgICAgICAgICBhbmltYXRpb25GcmFtZSQsXG4gICAgICAgICAgKTtcbn1cblxuZXhwb3J0IGNvbnN0IFRVSV9BVVRPRk9DVVNfUFJPVklERVJTID0gW1xuICAgIHtcbiAgICAgICAgcHJvdmlkZTogVFVJX0FVVE9GT0NVU19IQU5ETEVSLFxuICAgICAgICAvLyBUT0RPOiByZXBsYWNlIHRvIHVzZUNsYXNzIGluIHYzLjBcbiAgICAgICAgdXNlRmFjdG9yeTogdHVpQXV0b2ZvY3VzSGFuZGxlckZhY3RvcnksXG4gICAgICAgIGRlcHM6IFtcbiAgICAgICAgICAgIFtuZXcgT3B0aW9uYWwoKSwgbmV3IFNlbGYoKSwgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SXSxcbiAgICAgICAgICAgIEVsZW1lbnRSZWYsXG4gICAgICAgICAgICBBTklNQVRJT05fRlJBTUUsXG4gICAgICAgICAgICBSZW5kZXJlcjIsXG4gICAgICAgICAgICBOZ1pvbmUsXG4gICAgICAgICAgICBXSU5ET1csXG4gICAgICAgIF0sXG4gICAgfSxcbl07XG4iXX0=
@@ -1,12 +1,17 @@
1
1
  import { __decorate, __param } from "tslib";
2
2
  import { Directive, ElementRef, Inject, NgZone, Optional, Renderer2, Self, } from '@angular/core';
3
+ import { WINDOW } from '@ng-web-apis/common';
3
4
  import { TUI_FOCUSABLE_ITEM_ACCESSOR } from '@taiga-ui/cdk/tokens';
5
+ import { px } from '@taiga-ui/cdk/utils';
4
6
  import { AbstractTuiAutofocusHandler } from './abstract.handler';
7
+ // @dynamic
5
8
  let TuiIosAutofocusHandler = class TuiIosAutofocusHandler extends AbstractTuiAutofocusHandler {
6
- constructor(tuiFocusableComponent, elementRef, renderer, ngZone) {
9
+ constructor(tuiFocusableComponent, elementRef, renderer, ngZone, windowRef) {
7
10
  super(tuiFocusableComponent, elementRef);
8
11
  this.renderer = renderer;
9
12
  this.ngZone = ngZone;
13
+ this.windowRef = windowRef;
14
+ this.patchCssStyles();
10
15
  }
11
16
  setFocus() {
12
17
  if (this.isTextFieldElement) {
@@ -18,44 +23,89 @@ let TuiIosAutofocusHandler = class TuiIosAutofocusHandler extends AbstractTuiAut
18
23
  }
19
24
  iosWebkitAutofocus() {
20
25
  var _a;
21
- const fakeInput = this.renderer.createElement('input');
22
- fakeInput.style.position = 'absolute';
23
- fakeInput.style.opacity = '0';
24
- fakeInput.style.height = '0';
25
- const blurHandler = () => fakeInput.focus();
26
+ const fakeInput = this.makeFakeInput();
27
+ const duration = this.getDurationTimeBeforeFocus();
28
+ let fakeFocusTimeoutId = 0;
29
+ let elementFocusTimeoutId = 0;
30
+ const blurHandler = () => fakeInput.focus({ preventScroll: true });
26
31
  const focusHandler = () => {
27
- setTimeout(() => {
28
- this.element.focus();
29
- /**
30
- * @note:
31
- * We can't remove the element immediately, because it breaks flow
32
- */
33
- setTimeout(() => {
34
- fakeInput.removeEventListener('blur', blurHandler);
35
- fakeInput.removeEventListener('focus', focusHandler);
32
+ clearTimeout(fakeFocusTimeoutId);
33
+ fakeFocusTimeoutId = this.windowRef.setTimeout(() => {
34
+ clearTimeout(elementFocusTimeoutId);
35
+ fakeInput.removeEventListener('blur', blurHandler);
36
+ fakeInput.removeEventListener('focus', focusHandler);
37
+ elementFocusTimeoutId = this.windowRef.setTimeout(() => {
38
+ this.element.focus({ preventScroll: false });
36
39
  fakeInput.remove();
37
- });
40
+ }, duration);
38
41
  });
39
42
  };
40
- /**
41
- * @note: ping-pong eager strategy hack
42
- * After creating an element and bringing it into DOM,
43
- * the browser automatically focuses on the invisible element.
44
- * And then, after focus is triggered, we try to focus on target element, and if we managed to refocus,
45
- * then we try to focus again on an invisible element, so that the keyboard slowly appears.
46
- * This ping pong allows the keyboard to not overlap the modal window.
47
- */
48
43
  fakeInput.addEventListener('blur', blurHandler, { once: true });
49
44
  fakeInput.addEventListener('focus', focusHandler);
50
- (_a = this.element.parentElement) === null || _a === void 0 ? void 0 : _a.appendChild(fakeInput);
51
- fakeInput.focus();
45
+ if (this.insideDialog()) {
46
+ this.windowRef.document.body.appendChild(fakeInput);
47
+ }
48
+ else {
49
+ (_a = this.element.parentElement) === null || _a === void 0 ? void 0 : _a.appendChild(fakeInput);
50
+ }
51
+ fakeInput.focus({ preventScroll: true });
52
+ }
53
+ /**
54
+ * @note:
55
+ * emulate textfield position in layout with cursor
56
+ * before focus to real textfield element
57
+ */
58
+ makeFakeInput() {
59
+ const fakeInput = this.renderer.createElement('input');
60
+ const rect = this.element.getBoundingClientRect();
61
+ fakeInput.style.height = px(rect.height);
62
+ fakeInput.style.width = px(rect.width / 2);
63
+ fakeInput.style.position = 'fixed';
64
+ fakeInput.style.opacity = '0';
65
+ fakeInput.style.fontSize = px(16); // disable possible auto zoom
66
+ fakeInput.readOnly = true; // prevent keyboard for fake input
67
+ // @note: emulate position cursor before focus to real textfield element
68
+ fakeInput.style.top = px(rect.top);
69
+ fakeInput.style.left = px(rect.left);
70
+ return fakeInput;
71
+ }
72
+ getDurationTimeBeforeFocus() {
73
+ return (parseFloat(this.windowRef
74
+ .getComputedStyle(this.element)
75
+ .getPropertyValue('--tui-duration')) || 0);
76
+ }
77
+ /**
78
+ * @note:
79
+ * unfortunately, in older versions of iOS
80
+ * there is a bug that the fake input cursor
81
+ * will move along with the dialog animation
82
+ * and then that dialog will be shaking
83
+ */
84
+ insideDialog() {
85
+ return !!this.element.closest('tui-dialog');
86
+ }
87
+ /**
88
+ * @note:
89
+ * This is necessary so that the viewport isn't recalculated
90
+ * and then the dialogs don't shake.
91
+ *
92
+ * Also, we need to fixed height viewport,
93
+ * so that when focusing the dialogs don't shake
94
+ */
95
+ patchCssStyles() {
96
+ const documentRef = this.windowRef.document;
97
+ for (const element of [documentRef.documentElement, documentRef.body]) {
98
+ element.style.setProperty('overflow', 'auto');
99
+ element.style.setProperty('height', '100%');
100
+ }
52
101
  }
53
102
  };
54
103
  TuiIosAutofocusHandler.ctorParameters = () => [
55
104
  { type: undefined, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [TUI_FOCUSABLE_ITEM_ACCESSOR,] }] },
56
105
  { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
57
106
  { type: Renderer2, decorators: [{ type: Inject, args: [Renderer2,] }] },
58
- { type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] }
107
+ { type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] },
108
+ { type: Window, decorators: [{ type: Inject, args: [WINDOW,] }] }
59
109
  ];
60
110
  TuiIosAutofocusHandler = __decorate([
61
111
  Directive(),
@@ -64,7 +114,8 @@ TuiIosAutofocusHandler = __decorate([
64
114
  __param(0, Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)),
65
115
  __param(1, Inject(ElementRef)),
66
116
  __param(2, Inject(Renderer2)),
67
- __param(3, Inject(NgZone))
117
+ __param(3, Inject(NgZone)),
118
+ __param(4, Inject(WINDOW))
68
119
  ], TuiIosAutofocusHandler);
69
120
  export { TuiIosAutofocusHandler };
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW9zLmhhbmRsZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvYXV0by1mb2N1cy8iLCJzb3VyY2VzIjpbImhhbmRsZXJzL2lvcy5oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sTUFBTSxFQUNOLFFBQVEsRUFDUixTQUFTLEVBQ1QsSUFBSSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRWpFLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRy9ELElBQWEsc0JBQXNCLEdBQW5DLE1BQWEsc0JBQXVCLFNBQVEsMkJBQTJCO0lBQ25FLFlBSUkscUJBQXlELEVBQ3JDLFVBQW1DLEVBRXRDLFFBQW1CLEVBRW5CLE1BQWM7UUFFL0IsS0FBSyxDQUFDLHFCQUFxQixFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBSnhCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFFbkIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUduQyxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQztTQUNsRTthQUFNO1lBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUN4QjtJQUNMLENBQUM7SUFFTyxrQkFBa0I7O1FBQ3RCLE1BQU0sU0FBUyxHQUFnQixJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVwRSxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7UUFDdEMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO1FBQzlCLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUU3QixNQUFNLFdBQVcsR0FBRyxHQUFTLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEQsTUFBTSxZQUFZLEdBQUcsR0FBUyxFQUFFO1lBQzVCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFFckI7OzttQkFHRztnQkFDSCxVQUFVLENBQUMsR0FBRyxFQUFFO29CQUNaLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7b0JBQ25ELFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7b0JBQ3JELFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDdkIsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQztRQUVGOzs7Ozs7O1dBT0c7UUFDSCxTQUFTLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBQzlELFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFFbEQsTUFBQSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsMENBQUUsV0FBVyxDQUFDLFNBQVMsRUFBRTtRQUVuRCxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdEIsQ0FBQztDQUNKLENBQUE7OzRDQTVEUSxRQUFRLFlBQ1IsSUFBSSxZQUNKLE1BQU0sU0FBQywyQkFBMkI7WUFFSCxVQUFVLHVCQUF6QyxNQUFNLFNBQUMsVUFBVTtZQUVTLFNBQVMsdUJBRG5DLE1BQU0sU0FBQyxTQUFTO1lBR1EsTUFBTSx1QkFEOUIsTUFBTSxTQUFDLE1BQU07O0FBVFQsc0JBQXNCO0lBRGxDLFNBQVMsRUFBRTtJQUdILFdBQUEsUUFBUSxFQUFFLENBQUE7SUFDVixXQUFBLElBQUksRUFBRSxDQUFBO0lBQ04sV0FBQSxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtJQUVuQyxXQUFBLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUNsQixXQUFBLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUVqQixXQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtHQVRWLHNCQUFzQixDQThEbEM7U0E5RFksc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3QsXG4gICAgTmdab25lLFxuICAgIE9wdGlvbmFsLFxuICAgIFJlbmRlcmVyMixcbiAgICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1J9IGZyb20gJ0B0YWlnYS11aS9jZGsvdG9rZW5zJztcblxuaW1wb3J0IHtBYnN0cmFjdFR1aUF1dG9mb2N1c0hhbmRsZXJ9IGZyb20gJy4vYWJzdHJhY3QuaGFuZGxlcic7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIFR1aUlvc0F1dG9mb2N1c0hhbmRsZXIgZXh0ZW5kcyBBYnN0cmFjdFR1aUF1dG9mb2N1c0hhbmRsZXIge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SKVxuICAgICAgICB0dWlGb2N1c2FibGVDb21wb25lbnQ6IFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvciB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoUmVuZGVyZXIyKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIEBJbmplY3QoTmdab25lKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lLFxuICAgICkge1xuICAgICAgICBzdXBlcih0dWlGb2N1c2FibGVDb21wb25lbnQsIGVsZW1lbnRSZWYpO1xuICAgIH1cblxuICAgIHNldEZvY3VzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc1RleHRGaWVsZEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHRoaXMuaW9zV2Via2l0QXV0b2ZvY3VzKCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGlvc1dlYmtpdEF1dG9mb2N1cygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZmFrZUlucHV0OiBIVE1MRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcblxuICAgICAgICBmYWtlSW5wdXQuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgICAgICBmYWtlSW5wdXQuc3R5bGUub3BhY2l0eSA9ICcwJztcbiAgICAgICAgZmFrZUlucHV0LnN0eWxlLmhlaWdodCA9ICcwJztcblxuICAgICAgICBjb25zdCBibHVySGFuZGxlciA9ICgpOiB2b2lkID0+IGZha2VJbnB1dC5mb2N1cygpO1xuICAgICAgICBjb25zdCBmb2N1c0hhbmRsZXIgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuZm9jdXMoKTtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIEBub3RlOlxuICAgICAgICAgICAgICAgICAqIFdlIGNhbid0IHJlbW92ZSB0aGUgZWxlbWVudCBpbW1lZGlhdGVseSwgYmVjYXVzZSBpdCBicmVha3MgZmxvd1xuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBmYWtlSW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcignYmx1cicsIGJsdXJIYW5kbGVyKTtcbiAgICAgICAgICAgICAgICAgICAgZmFrZUlucHV0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgZm9jdXNIYW5kbGVyKTtcbiAgICAgICAgICAgICAgICAgICAgZmFrZUlucHV0LnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBub3RlOiBwaW5nLXBvbmcgZWFnZXIgc3RyYXRlZ3kgaGFja1xuICAgICAgICAgKiBBZnRlciBjcmVhdGluZyBhbiBlbGVtZW50IGFuZCBicmluZ2luZyBpdCBpbnRvIERPTSxcbiAgICAgICAgICogdGhlIGJyb3dzZXIgYXV0b21hdGljYWxseSBmb2N1c2VzIG9uIHRoZSBpbnZpc2libGUgZWxlbWVudC5cbiAgICAgICAgICogQW5kIHRoZW4sIGFmdGVyIGZvY3VzIGlzIHRyaWdnZXJlZCwgd2UgdHJ5IHRvIGZvY3VzIG9uIHRhcmdldCBlbGVtZW50LCBhbmQgaWYgd2UgbWFuYWdlZCB0byByZWZvY3VzLFxuICAgICAgICAgKiB0aGVuIHdlIHRyeSB0byBmb2N1cyBhZ2FpbiBvbiBhbiBpbnZpc2libGUgZWxlbWVudCwgc28gdGhhdCB0aGUga2V5Ym9hcmQgc2xvd2x5IGFwcGVhcnMuXG4gICAgICAgICAqIFRoaXMgcGluZyBwb25nIGFsbG93cyB0aGUga2V5Ym9hcmQgdG8gbm90IG92ZXJsYXAgdGhlIG1vZGFsIHdpbmRvdy5cbiAgICAgICAgICovXG4gICAgICAgIGZha2VJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgYmx1ckhhbmRsZXIsIHtvbmNlOiB0cnVlfSk7XG4gICAgICAgIGZha2VJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGZvY3VzSGFuZGxlcik7XG5cbiAgICAgICAgdGhpcy5lbGVtZW50LnBhcmVudEVsZW1lbnQ/LmFwcGVuZENoaWxkKGZha2VJbnB1dCk7XG5cbiAgICAgICAgZmFrZUlucHV0LmZvY3VzKCk7XG4gICAgfVxufVxuIl19
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW9zLmhhbmRsZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvYXV0by1mb2N1cy8iLCJzb3VyY2VzIjpbImhhbmRsZXJzL2lvcy5oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sTUFBTSxFQUNOLFFBQVEsRUFDUixTQUFTLEVBQ1QsSUFBSSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUzQyxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsRUFBRSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFdkMsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFL0QsV0FBVztBQUVYLElBQWEsc0JBQXNCLEdBQW5DLE1BQWEsc0JBQXVCLFNBQVEsMkJBQTJCO0lBQ25FLFlBSUkscUJBQXlELEVBQ3JDLFVBQW1DLEVBQ25CLFFBQW1CLEVBQ3RCLE1BQWMsRUFDZCxTQUFpQjtRQUVsRCxLQUFLLENBQUMscUJBQXFCLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFKTCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxjQUFTLEdBQVQsU0FBUyxDQUFRO1FBR2xELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQztTQUNsRTthQUFNO1lBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUN4QjtJQUNMLENBQUM7SUFFTyxrQkFBa0I7O1FBQ3RCLE1BQU0sU0FBUyxHQUFxQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7UUFDbkQsSUFBSSxrQkFBa0IsR0FBRyxDQUFDLENBQUM7UUFDM0IsSUFBSSxxQkFBcUIsR0FBRyxDQUFDLENBQUM7UUFFOUIsTUFBTSxXQUFXLEdBQUcsR0FBUyxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBQ3ZFLE1BQU0sWUFBWSxHQUFHLEdBQVMsRUFBRTtZQUM1QixZQUFZLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUVqQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2hELFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO2dCQUVwQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO2dCQUNuRCxTQUFTLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO2dCQUVyRCxxQkFBcUIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ25ELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUMsYUFBYSxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7b0JBQzNDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDdkIsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ2pCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDO1FBRUYsU0FBUyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUM5RCxTQUFTLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRWxELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDdkQ7YUFBTTtZQUNILE1BQUEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLDBDQUFFLFdBQVcsQ0FBQyxTQUFTLEVBQUU7U0FDdEQ7UUFFRCxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUMsYUFBYSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxhQUFhO1FBQ2pCLE1BQU0sU0FBUyxHQUFxQixJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6RSxNQUFNLElBQUksR0FBWSxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFFM0QsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzQyxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDbkMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO1FBQzlCLFNBQVMsQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDZCQUE2QjtRQUNoRSxTQUFTLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxDQUFDLGtDQUFrQztRQUU3RCx3RUFBd0U7UUFDeEUsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXJDLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFTywwQkFBMEI7UUFDOUIsT0FBTyxDQUNILFVBQVUsQ0FDTixJQUFJLENBQUMsU0FBUzthQUNULGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7YUFDOUIsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsQ0FDMUMsSUFBSSxDQUFDLENBQ1QsQ0FBQztJQUNOLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxZQUFZO1FBQ2hCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ssY0FBYztRQUNsQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztRQUU1QyxLQUFLLE1BQU0sT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbkUsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzlDLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUMvQztJQUNMLENBQUM7Q0FDSixDQUFBOzs0Q0FwSFEsUUFBUSxZQUNSLElBQUksWUFDSixNQUFNLFNBQUMsMkJBQTJCO1lBRUgsVUFBVSx1QkFBekMsTUFBTSxTQUFDLFVBQVU7WUFDNEIsU0FBUyx1QkFBdEQsTUFBTSxTQUFDLFNBQVM7WUFDd0IsTUFBTSx1QkFBOUMsTUFBTSxTQUFDLE1BQU07WUFDOEIsTUFBTSx1QkFBakQsTUFBTSxTQUFDLE1BQU07O0FBVFQsc0JBQXNCO0lBRGxDLFNBQVMsRUFBRTtJQUdILFdBQUEsUUFBUSxFQUFFLENBQUE7SUFDVixXQUFBLElBQUksRUFBRSxDQUFBO0lBQ04sV0FBQSxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtJQUVuQyxXQUFBLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUNsQixXQUFBLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUNqQixXQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNkLFdBQUEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0dBVFYsc0JBQXNCLENBc0hsQztTQXRIWSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdCxcbiAgICBOZ1pvbmUsXG4gICAgT3B0aW9uYWwsXG4gICAgUmVuZGVyZXIyLFxuICAgIFNlbGYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtXSU5ET1d9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuaW1wb3J0IHtUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3J9IGZyb20gJ0B0YWlnYS11aS9jZGsvaW50ZXJmYWNlcyc7XG5pbXBvcnQge1RVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUn0gZnJvbSAnQHRhaWdhLXVpL2Nkay90b2tlbnMnO1xuaW1wb3J0IHtweH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscyc7XG5cbmltcG9ydCB7QWJzdHJhY3RUdWlBdXRvZm9jdXNIYW5kbGVyfSBmcm9tICcuL2Fic3RyYWN0LmhhbmRsZXInO1xuXG4vLyBAZHluYW1pY1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgVHVpSW9zQXV0b2ZvY3VzSGFuZGxlciBleHRlbmRzIEFic3RyYWN0VHVpQXV0b2ZvY3VzSGFuZGxlciB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IpXG4gICAgICAgIHR1aUZvY3VzYWJsZUNvbXBvbmVudDogVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChFbGVtZW50UmVmKSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgQEluamVjdChSZW5kZXJlcjIpIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgQEluamVjdChOZ1pvbmUpIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIEBJbmplY3QoV0lORE9XKSBwcml2YXRlIHJlYWRvbmx5IHdpbmRvd1JlZjogV2luZG93LFxuICAgICkge1xuICAgICAgICBzdXBlcih0dWlGb2N1c2FibGVDb21wb25lbnQsIGVsZW1lbnRSZWYpO1xuICAgICAgICB0aGlzLnBhdGNoQ3NzU3R5bGVzKCk7XG4gICAgfVxuXG4gICAgc2V0Rm9jdXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzVGV4dEZpZWxkRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gdGhpcy5pb3NXZWJraXRBdXRvZm9jdXMoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaW9zV2Via2l0QXV0b2ZvY3VzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBmYWtlSW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQgPSB0aGlzLm1ha2VGYWtlSW5wdXQoKTtcbiAgICAgICAgY29uc3QgZHVyYXRpb24gPSB0aGlzLmdldER1cmF0aW9uVGltZUJlZm9yZUZvY3VzKCk7XG4gICAgICAgIGxldCBmYWtlRm9jdXNUaW1lb3V0SWQgPSAwO1xuICAgICAgICBsZXQgZWxlbWVudEZvY3VzVGltZW91dElkID0gMDtcblxuICAgICAgICBjb25zdCBibHVySGFuZGxlciA9ICgpOiB2b2lkID0+IGZha2VJbnB1dC5mb2N1cyh7cHJldmVudFNjcm9sbDogdHJ1ZX0pO1xuICAgICAgICBjb25zdCBmb2N1c0hhbmRsZXIgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQoZmFrZUZvY3VzVGltZW91dElkKTtcblxuICAgICAgICAgICAgZmFrZUZvY3VzVGltZW91dElkID0gdGhpcy53aW5kb3dSZWYuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGVsZW1lbnRGb2N1c1RpbWVvdXRJZCk7XG5cbiAgICAgICAgICAgICAgICBmYWtlSW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcignYmx1cicsIGJsdXJIYW5kbGVyKTtcbiAgICAgICAgICAgICAgICBmYWtlSW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZm9jdXMnLCBmb2N1c0hhbmRsZXIpO1xuXG4gICAgICAgICAgICAgICAgZWxlbWVudEZvY3VzVGltZW91dElkID0gdGhpcy53aW5kb3dSZWYuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5mb2N1cyh7cHJldmVudFNjcm9sbDogZmFsc2V9KTtcbiAgICAgICAgICAgICAgICAgICAgZmFrZUlucHV0LnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgIH0sIGR1cmF0aW9uKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIGZha2VJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgYmx1ckhhbmRsZXIsIHtvbmNlOiB0cnVlfSk7XG4gICAgICAgIGZha2VJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGZvY3VzSGFuZGxlcik7XG5cbiAgICAgICAgaWYgKHRoaXMuaW5zaWRlRGlhbG9nKCkpIHtcbiAgICAgICAgICAgIHRoaXMud2luZG93UmVmLmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZmFrZUlucHV0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5wYXJlbnRFbGVtZW50Py5hcHBlbmRDaGlsZChmYWtlSW5wdXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgZmFrZUlucHV0LmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiB0cnVlfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQG5vdGU6XG4gICAgICogZW11bGF0ZSB0ZXh0ZmllbGQgcG9zaXRpb24gaW4gbGF5b3V0IHdpdGggY3Vyc29yXG4gICAgICogYmVmb3JlIGZvY3VzIHRvIHJlYWwgdGV4dGZpZWxkIGVsZW1lbnRcbiAgICAgKi9cbiAgICBwcml2YXRlIG1ha2VGYWtlSW5wdXQoKTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgICAgIGNvbnN0IGZha2VJbnB1dDogSFRNTElucHV0RWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICAgICAgY29uc3QgcmVjdDogRE9NUmVjdCA9IHRoaXMuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICBmYWtlSW5wdXQuc3R5bGUuaGVpZ2h0ID0gcHgocmVjdC5oZWlnaHQpO1xuICAgICAgICBmYWtlSW5wdXQuc3R5bGUud2lkdGggPSBweChyZWN0LndpZHRoIC8gMik7XG4gICAgICAgIGZha2VJbnB1dC5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XG4gICAgICAgIGZha2VJbnB1dC5zdHlsZS5vcGFjaXR5ID0gJzAnO1xuICAgICAgICBmYWtlSW5wdXQuc3R5bGUuZm9udFNpemUgPSBweCgxNik7IC8vIGRpc2FibGUgcG9zc2libGUgYXV0byB6b29tXG4gICAgICAgIGZha2VJbnB1dC5yZWFkT25seSA9IHRydWU7IC8vIHByZXZlbnQga2V5Ym9hcmQgZm9yIGZha2UgaW5wdXRcblxuICAgICAgICAvLyBAbm90ZTogZW11bGF0ZSBwb3NpdGlvbiBjdXJzb3IgYmVmb3JlIGZvY3VzIHRvIHJlYWwgdGV4dGZpZWxkIGVsZW1lbnRcbiAgICAgICAgZmFrZUlucHV0LnN0eWxlLnRvcCA9IHB4KHJlY3QudG9wKTtcbiAgICAgICAgZmFrZUlucHV0LnN0eWxlLmxlZnQgPSBweChyZWN0LmxlZnQpO1xuXG4gICAgICAgIHJldHVybiBmYWtlSW5wdXQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREdXJhdGlvblRpbWVCZWZvcmVGb2N1cygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgcGFyc2VGbG9hdChcbiAgICAgICAgICAgICAgICB0aGlzLndpbmRvd1JlZlxuICAgICAgICAgICAgICAgICAgICAuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmVsZW1lbnQpXG4gICAgICAgICAgICAgICAgICAgIC5nZXRQcm9wZXJ0eVZhbHVlKCctLXR1aS1kdXJhdGlvbicpLFxuICAgICAgICAgICAgKSB8fCAwXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQG5vdGU6XG4gICAgICogdW5mb3J0dW5hdGVseSwgaW4gb2xkZXIgdmVyc2lvbnMgb2YgaU9TXG4gICAgICogdGhlcmUgaXMgYSBidWcgdGhhdCB0aGUgZmFrZSBpbnB1dCBjdXJzb3JcbiAgICAgKiB3aWxsIG1vdmUgYWxvbmcgd2l0aCB0aGUgZGlhbG9nIGFuaW1hdGlvblxuICAgICAqIGFuZCB0aGVuIHRoYXQgZGlhbG9nIHdpbGwgYmUgc2hha2luZ1xuICAgICAqL1xuICAgIHByaXZhdGUgaW5zaWRlRGlhbG9nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmVsZW1lbnQuY2xvc2VzdCgndHVpLWRpYWxvZycpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBub3RlOlxuICAgICAqIFRoaXMgaXMgbmVjZXNzYXJ5IHNvIHRoYXQgdGhlIHZpZXdwb3J0IGlzbid0IHJlY2FsY3VsYXRlZFxuICAgICAqIGFuZCB0aGVuIHRoZSBkaWFsb2dzIGRvbid0IHNoYWtlLlxuICAgICAqXG4gICAgICogQWxzbywgd2UgbmVlZCB0byBmaXhlZCBoZWlnaHQgdmlld3BvcnQsXG4gICAgICogc28gdGhhdCB3aGVuIGZvY3VzaW5nIHRoZSBkaWFsb2dzIGRvbid0IHNoYWtlXG4gICAgICovXG4gICAgcHJpdmF0ZSBwYXRjaENzc1N0eWxlcygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZG9jdW1lbnRSZWYgPSB0aGlzLndpbmRvd1JlZi5kb2N1bWVudDtcblxuICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgW2RvY3VtZW50UmVmLmRvY3VtZW50RWxlbWVudCwgZG9jdW1lbnRSZWYuYm9keV0pIHtcbiAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ292ZXJmbG93JywgJ2F1dG8nKTtcbiAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2hlaWdodCcsICcxMDAlJyk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,48 @@
1
+ import { __decorate, __param } from "tslib";
2
+ import { Directive, Inject, Input, OnChanges, OnDestroy, TemplateRef, ViewContainerRef, } from '@angular/core';
3
+ import { from, of, Subject } from 'rxjs';
4
+ import { concatMap, delay, takeUntil } from 'rxjs/operators';
5
+ let TuiForAsyncDirective = class TuiForAsyncDirective {
6
+ constructor(view, template) {
7
+ this.view = view;
8
+ this.template = template;
9
+ this.destroy$ = new Subject();
10
+ this.tuiForAsyncTimeout = 10;
11
+ }
12
+ ngOnChanges() {
13
+ this.clearViewForOldNodes();
14
+ this.createAsyncViewForNewNodes();
15
+ }
16
+ ngOnDestroy() {
17
+ this.clearViewForOldNodes();
18
+ this.destroy$.complete();
19
+ }
20
+ createAsyncViewForNewNodes() {
21
+ from((this.tuiForAsyncOf || []).entries())
22
+ .pipe(concatMap(entry => of(entry).pipe(delay(this.tuiForAsyncTimeout))), takeUntil(this.destroy$))
23
+ .subscribe(([index, item]) => this.view
24
+ .createEmbeddedView(this.template, { $implicit: item, index }, index)
25
+ .detectChanges());
26
+ }
27
+ clearViewForOldNodes() {
28
+ this.destroy$.next();
29
+ this.view.clear();
30
+ }
31
+ };
32
+ TuiForAsyncDirective.ctorParameters = () => [
33
+ { type: ViewContainerRef, decorators: [{ type: Inject, args: [ViewContainerRef,] }] },
34
+ { type: TemplateRef, decorators: [{ type: Inject, args: [TemplateRef,] }] }
35
+ ];
36
+ __decorate([
37
+ Input()
38
+ ], TuiForAsyncDirective.prototype, "tuiForAsyncOf", void 0);
39
+ __decorate([
40
+ Input()
41
+ ], TuiForAsyncDirective.prototype, "tuiForAsyncTimeout", void 0);
42
+ TuiForAsyncDirective = __decorate([
43
+ Directive({ selector: '[tuiForAsync][tuiForAsyncOf]' }),
44
+ __param(0, Inject(ViewContainerRef)),
45
+ __param(1, Inject(TemplateRef))
46
+ ], TuiForAsyncDirective);
47
+ export { TuiForAsyncDirective };
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yLWFzeW5jLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9mb3ItYXN5bmMvIiwic291cmNlcyI6WyJmb3ItYXN5bmMuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFDVCxXQUFXLEVBQ1gsZ0JBQWdCLEdBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUczRCxJQUFhLG9CQUFvQixHQUFqQyxNQUFhLG9CQUFvQjtJQVM3QixZQUMrQyxJQUFzQixFQUMzQixRQUE4QjtRQUR6QixTQUFJLEdBQUosSUFBSSxDQUFrQjtRQUMzQixhQUFRLEdBQVIsUUFBUSxDQUFzQjtRQVZ2RCxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQU1oRCx1QkFBa0IsR0FBRyxFQUFFLENBQUM7SUFLckIsQ0FBQztJQUVKLFdBQVc7UUFDUCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVPLDBCQUEwQjtRQUM5QixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ3JDLElBQUksQ0FDRCxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEVBQ2xFLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQzNCO2FBQ0EsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUN6QixJQUFJLENBQUMsSUFBSTthQUNKLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBQyxFQUFFLEtBQUssQ0FBQzthQUNsRSxhQUFhLEVBQUUsQ0FDdkIsQ0FBQztJQUNWLENBQUM7SUFFTyxvQkFBb0I7UUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3RCLENBQUM7Q0FDSixDQUFBOztZQS9Cd0QsZ0JBQWdCLHVCQUFoRSxNQUFNLFNBQUMsZ0JBQWdCO1lBQ3dCLFdBQVcsdUJBQTFELE1BQU0sU0FBQyxXQUFXOztBQVB2QjtJQURDLEtBQUssRUFBRTsyREFDdUM7QUFHL0M7SUFEQyxLQUFLLEVBQUU7Z0VBQ2dCO0FBUGYsb0JBQW9CO0lBRGhDLFNBQVMsQ0FBQyxFQUFDLFFBQVEsRUFBRSw4QkFBOEIsRUFBQyxDQUFDO0lBVzdDLFdBQUEsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUE7SUFDeEIsV0FBQSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7R0FYZixvQkFBb0IsQ0F5Q2hDO1NBekNZLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtmcm9tLCBvZiwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2NvbmNhdE1hcCwgZGVsYXksIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ARGlyZWN0aXZlKHtzZWxlY3RvcjogJ1t0dWlGb3JBc3luY11bdHVpRm9yQXN5bmNPZl0nfSlcbmV4cG9ydCBjbGFzcyBUdWlGb3JBc3luY0RpcmVjdGl2ZTxUPiBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIEBJbnB1dCgpXG4gICAgdHVpRm9yQXN5bmNPZjogcmVhZG9ubHkgVFtdIHwgdW5kZWZpbmVkIHwgbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgdHVpRm9yQXN5bmNUaW1lb3V0ID0gMTA7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChWaWV3Q29udGFpbmVyUmVmKSBwcml2YXRlIHJlYWRvbmx5IHZpZXc6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIEBJbmplY3QoVGVtcGxhdGVSZWYpIHByaXZhdGUgcmVhZG9ubHkgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+LFxuICAgICkge31cblxuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsZWFyVmlld0Zvck9sZE5vZGVzKCk7XG4gICAgICAgIHRoaXMuY3JlYXRlQXN5bmNWaWV3Rm9yTmV3Tm9kZXMoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbGVhclZpZXdGb3JPbGROb2RlcygpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVBc3luY1ZpZXdGb3JOZXdOb2RlcygpOiB2b2lkIHtcbiAgICAgICAgZnJvbSgodGhpcy50dWlGb3JBc3luY09mIHx8IFtdKS5lbnRyaWVzKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBjb25jYXRNYXAoZW50cnkgPT4gb2YoZW50cnkpLnBpcGUoZGVsYXkodGhpcy50dWlGb3JBc3luY1RpbWVvdXQpKSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoW2luZGV4LCBpdGVtXSkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLnZpZXdcbiAgICAgICAgICAgICAgICAgICAgLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlLCB7JGltcGxpY2l0OiBpdGVtLCBpbmRleH0sIGluZGV4KVxuICAgICAgICAgICAgICAgICAgICAuZGV0ZWN0Q2hhbmdlcygpLFxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsZWFyVmlld0Zvck9sZE5vZGVzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy52aWV3LmNsZWFyKCk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,16 @@
1
+ import { __decorate } from "tslib";
2
+ import { NgModule } from '@angular/core';
3
+ import { TuiForAsyncDirective } from './for-async.directive';
4
+ /**
5
+ * @experimental
6
+ */
7
+ let TuiForAsyncModule = class TuiForAsyncModule {
8
+ };
9
+ TuiForAsyncModule = __decorate([
10
+ NgModule({
11
+ declarations: [TuiForAsyncDirective],
12
+ exports: [TuiForAsyncDirective],
13
+ })
14
+ ], TuiForAsyncModule);
15
+ export { TuiForAsyncModule };
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yLWFzeW5jLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9mb3ItYXN5bmMvIiwic291cmNlcyI6WyJmb3ItYXN5bmMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXZDLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRTNEOztHQUVHO0FBS0gsSUFBYSxpQkFBaUIsR0FBOUIsTUFBYSxpQkFBaUI7Q0FBRyxDQUFBO0FBQXBCLGlCQUFpQjtJQUo3QixRQUFRLENBQUM7UUFDTixZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztRQUNwQyxPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztLQUNsQyxDQUFDO0dBQ1csaUJBQWlCLENBQUc7U0FBcEIsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7VHVpRm9yQXN5bmNEaXJlY3RpdmV9IGZyb20gJy4vZm9yLWFzeW5jLmRpcmVjdGl2ZSc7XG5cbi8qKlxuICogQGV4cGVyaW1lbnRhbFxuICovXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1R1aUZvckFzeW5jRGlyZWN0aXZlXSxcbiAgICBleHBvcnRzOiBbVHVpRm9yQXN5bmNEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlGb3JBc3luY01vZHVsZSB7fVxuIl19
@@ -0,0 +1,3 @@
1
+ export * from './for-async.directive';
2
+ export * from './for-async.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvZm9yLWFzeW5jLyIsInNvdXJjZXMiOlsiaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9mb3ItYXN5bmMuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZm9yLWFzeW5jLm1vZHVsZSc7XG4iXX0=