@taiga-ui/cdk 2.44.0 → 2.47.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 (445) hide show
  1. package/bundles/taiga-ui-cdk-abstract.umd.js +51 -21
  2. package/bundles/taiga-ui-cdk-abstract.umd.js.map +1 -1
  3. package/bundles/taiga-ui-cdk-abstract.umd.min.js +1 -15
  4. package/bundles/taiga-ui-cdk-abstract.umd.min.js.map +1 -1
  5. package/bundles/taiga-ui-cdk-coercion.umd.js +1 -1
  6. package/bundles/taiga-ui-cdk-coercion.umd.js.map +1 -1
  7. package/bundles/taiga-ui-cdk-coercion.umd.min.js.map +1 -1
  8. package/bundles/taiga-ui-cdk-components-alert-host.umd.js +50 -20
  9. package/bundles/taiga-ui-cdk-components-alert-host.umd.js.map +1 -1
  10. package/bundles/taiga-ui-cdk-components-alert-host.umd.min.js +1 -15
  11. package/bundles/taiga-ui-cdk-components-alert-host.umd.min.js.map +1 -1
  12. package/bundles/taiga-ui-cdk-components-dialog-host.umd.js +54 -24
  13. package/bundles/taiga-ui-cdk-components-dialog-host.umd.js.map +1 -1
  14. package/bundles/taiga-ui-cdk-components-dialog-host.umd.min.js +1 -15
  15. package/bundles/taiga-ui-cdk-components-dialog-host.umd.min.js.map +1 -1
  16. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.js +50 -20
  17. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.js.map +1 -1
  18. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.min.js +1 -15
  19. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.min.js.map +1 -1
  20. package/bundles/taiga-ui-cdk-components-portal-host.umd.js +51 -21
  21. package/bundles/taiga-ui-cdk-components-portal-host.umd.js.map +1 -1
  22. package/bundles/taiga-ui-cdk-components-portal-host.umd.min.js +1 -15
  23. package/bundles/taiga-ui-cdk-components-portal-host.umd.min.js.map +1 -1
  24. package/bundles/taiga-ui-cdk-date-time.umd.js +79 -29
  25. package/bundles/taiga-ui-cdk-date-time.umd.js.map +1 -1
  26. package/bundles/taiga-ui-cdk-date-time.umd.min.js +1 -15
  27. package/bundles/taiga-ui-cdk-date-time.umd.min.js.map +1 -1
  28. package/bundles/taiga-ui-cdk-decorators.umd.js +50 -20
  29. package/bundles/taiga-ui-cdk-decorators.umd.js.map +1 -1
  30. package/bundles/taiga-ui-cdk-decorators.umd.min.js +1 -15
  31. package/bundles/taiga-ui-cdk-decorators.umd.min.js.map +1 -1
  32. package/bundles/taiga-ui-cdk-directives-active-zone.umd.js +50 -20
  33. package/bundles/taiga-ui-cdk-directives-active-zone.umd.js.map +1 -1
  34. package/bundles/taiga-ui-cdk-directives-active-zone.umd.min.js +1 -15
  35. package/bundles/taiga-ui-cdk-directives-active-zone.umd.min.js.map +1 -1
  36. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js +182 -70
  37. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js.map +1 -1
  38. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.min.js +1 -15
  39. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.min.js.map +1 -1
  40. package/bundles/taiga-ui-cdk-directives-autofilled.umd.js +91 -42
  41. package/bundles/taiga-ui-cdk-directives-autofilled.umd.js.map +1 -1
  42. package/bundles/taiga-ui-cdk-directives-autofilled.umd.min.js +1 -15
  43. package/bundles/taiga-ui-cdk-directives-autofilled.umd.min.js.map +1 -1
  44. package/bundles/taiga-ui-cdk-directives-checked.umd.js +50 -20
  45. package/bundles/taiga-ui-cdk-directives-checked.umd.js.map +1 -1
  46. package/bundles/taiga-ui-cdk-directives-checked.umd.min.js +1 -15
  47. package/bundles/taiga-ui-cdk-directives-checked.umd.min.js.map +1 -1
  48. package/bundles/taiga-ui-cdk-directives-copy-processor.umd.js +50 -20
  49. package/bundles/taiga-ui-cdk-directives-copy-processor.umd.js.map +1 -1
  50. package/bundles/taiga-ui-cdk-directives-copy-processor.umd.min.js +1 -15
  51. package/bundles/taiga-ui-cdk-directives-copy-processor.umd.min.js.map +1 -1
  52. package/bundles/taiga-ui-cdk-directives-drag.umd.js +50 -20
  53. package/bundles/taiga-ui-cdk-directives-drag.umd.js.map +1 -1
  54. package/bundles/taiga-ui-cdk-directives-drag.umd.min.js +1 -15
  55. package/bundles/taiga-ui-cdk-directives-drag.umd.min.js.map +1 -1
  56. package/bundles/taiga-ui-cdk-directives-droppable.umd.js +50 -20
  57. package/bundles/taiga-ui-cdk-directives-droppable.umd.js.map +1 -1
  58. package/bundles/taiga-ui-cdk-directives-droppable.umd.min.js +1 -15
  59. package/bundles/taiga-ui-cdk-directives-droppable.umd.min.js.map +1 -1
  60. package/bundles/taiga-ui-cdk-directives-element.umd.js +50 -20
  61. package/bundles/taiga-ui-cdk-directives-element.umd.js.map +1 -1
  62. package/bundles/taiga-ui-cdk-directives-element.umd.min.js +1 -15
  63. package/bundles/taiga-ui-cdk-directives-element.umd.min.js.map +1 -1
  64. package/bundles/taiga-ui-cdk-directives-focus-trap.umd.js +53 -21
  65. package/bundles/taiga-ui-cdk-directives-focus-trap.umd.js.map +1 -1
  66. package/bundles/taiga-ui-cdk-directives-focus-trap.umd.min.js +1 -15
  67. package/bundles/taiga-ui-cdk-directives-focus-trap.umd.min.js.map +1 -1
  68. package/bundles/taiga-ui-cdk-directives-focus-visible.umd.js +50 -20
  69. package/bundles/taiga-ui-cdk-directives-focus-visible.umd.js.map +1 -1
  70. package/bundles/taiga-ui-cdk-directives-focus-visible.umd.min.js +1 -15
  71. package/bundles/taiga-ui-cdk-directives-focus-visible.umd.min.js.map +1 -1
  72. package/bundles/taiga-ui-cdk-directives-focusable.umd.js +50 -20
  73. package/bundles/taiga-ui-cdk-directives-focusable.umd.js.map +1 -1
  74. package/bundles/taiga-ui-cdk-directives-focusable.umd.min.js +1 -15
  75. package/bundles/taiga-ui-cdk-directives-focusable.umd.min.js.map +1 -1
  76. package/bundles/taiga-ui-cdk-directives-focused.umd.js +50 -20
  77. package/bundles/taiga-ui-cdk-directives-focused.umd.js.map +1 -1
  78. package/bundles/taiga-ui-cdk-directives-focused.umd.min.js +1 -15
  79. package/bundles/taiga-ui-cdk-directives-focused.umd.min.js.map +1 -1
  80. package/bundles/taiga-ui-cdk-directives-for-async.umd.js +324 -0
  81. package/bundles/taiga-ui-cdk-directives-for-async.umd.js.map +1 -0
  82. package/bundles/taiga-ui-cdk-directives-for-async.umd.min.js +2 -0
  83. package/bundles/taiga-ui-cdk-directives-for-async.umd.min.js.map +1 -0
  84. package/bundles/taiga-ui-cdk-directives-for.umd.js +50 -20
  85. package/bundles/taiga-ui-cdk-directives-for.umd.js.map +1 -1
  86. package/bundles/taiga-ui-cdk-directives-for.umd.min.js +1 -15
  87. package/bundles/taiga-ui-cdk-directives-for.umd.min.js.map +1 -1
  88. package/bundles/taiga-ui-cdk-directives-high-dpi.umd.js +50 -20
  89. package/bundles/taiga-ui-cdk-directives-high-dpi.umd.js.map +1 -1
  90. package/bundles/taiga-ui-cdk-directives-high-dpi.umd.min.js +1 -15
  91. package/bundles/taiga-ui-cdk-directives-high-dpi.umd.min.js.map +1 -1
  92. package/bundles/taiga-ui-cdk-directives-hovered.umd.js +50 -20
  93. package/bundles/taiga-ui-cdk-directives-hovered.umd.js.map +1 -1
  94. package/bundles/taiga-ui-cdk-directives-hovered.umd.min.js +1 -15
  95. package/bundles/taiga-ui-cdk-directives-hovered.umd.min.js.map +1 -1
  96. package/bundles/taiga-ui-cdk-directives-input-mode.umd.js +50 -20
  97. package/bundles/taiga-ui-cdk-directives-input-mode.umd.js.map +1 -1
  98. package/bundles/taiga-ui-cdk-directives-input-mode.umd.min.js +1 -15
  99. package/bundles/taiga-ui-cdk-directives-input-mode.umd.min.js.map +1 -1
  100. package/bundles/taiga-ui-cdk-directives-item.umd.js +51 -21
  101. package/bundles/taiga-ui-cdk-directives-item.umd.js.map +1 -1
  102. package/bundles/taiga-ui-cdk-directives-item.umd.min.js +1 -15
  103. package/bundles/taiga-ui-cdk-directives-item.umd.min.js.map +1 -1
  104. package/bundles/taiga-ui-cdk-directives-let.umd.js +50 -20
  105. package/bundles/taiga-ui-cdk-directives-let.umd.js.map +1 -1
  106. package/bundles/taiga-ui-cdk-directives-let.umd.min.js +1 -15
  107. package/bundles/taiga-ui-cdk-directives-let.umd.min.js.map +1 -1
  108. package/bundles/taiga-ui-cdk-directives-media.umd.js +51 -20
  109. package/bundles/taiga-ui-cdk-directives-media.umd.js.map +1 -1
  110. package/bundles/taiga-ui-cdk-directives-media.umd.min.js +1 -15
  111. package/bundles/taiga-ui-cdk-directives-media.umd.min.js.map +1 -1
  112. package/bundles/taiga-ui-cdk-directives-obscured.umd.js +50 -20
  113. package/bundles/taiga-ui-cdk-directives-obscured.umd.js.map +1 -1
  114. package/bundles/taiga-ui-cdk-directives-obscured.umd.min.js +1 -15
  115. package/bundles/taiga-ui-cdk-directives-obscured.umd.min.js.map +1 -1
  116. package/bundles/taiga-ui-cdk-directives-overscroll.umd.js +50 -20
  117. package/bundles/taiga-ui-cdk-directives-overscroll.umd.js.map +1 -1
  118. package/bundles/taiga-ui-cdk-directives-overscroll.umd.min.js +1 -15
  119. package/bundles/taiga-ui-cdk-directives-overscroll.umd.min.js.map +1 -1
  120. package/bundles/taiga-ui-cdk-directives-pan.umd.js +50 -20
  121. package/bundles/taiga-ui-cdk-directives-pan.umd.js.map +1 -1
  122. package/bundles/taiga-ui-cdk-directives-pan.umd.min.js +1 -15
  123. package/bundles/taiga-ui-cdk-directives-pan.umd.min.js.map +1 -1
  124. package/bundles/taiga-ui-cdk-directives-portal.umd.js +50 -20
  125. package/bundles/taiga-ui-cdk-directives-portal.umd.js.map +1 -1
  126. package/bundles/taiga-ui-cdk-directives-portal.umd.min.js +1 -15
  127. package/bundles/taiga-ui-cdk-directives-portal.umd.min.js.map +1 -1
  128. package/bundles/taiga-ui-cdk-directives-pressed.umd.js +50 -20
  129. package/bundles/taiga-ui-cdk-directives-pressed.umd.js.map +1 -1
  130. package/bundles/taiga-ui-cdk-directives-pressed.umd.min.js +1 -15
  131. package/bundles/taiga-ui-cdk-directives-pressed.umd.min.js.map +1 -1
  132. package/bundles/taiga-ui-cdk-directives-prevent-default.umd.js +50 -20
  133. package/bundles/taiga-ui-cdk-directives-prevent-default.umd.js.map +1 -1
  134. package/bundles/taiga-ui-cdk-directives-prevent-default.umd.min.js +1 -15
  135. package/bundles/taiga-ui-cdk-directives-prevent-default.umd.min.js.map +1 -1
  136. package/bundles/taiga-ui-cdk-directives-repeat-times.umd.js +50 -20
  137. package/bundles/taiga-ui-cdk-directives-repeat-times.umd.js.map +1 -1
  138. package/bundles/taiga-ui-cdk-directives-repeat-times.umd.min.js +1 -15
  139. package/bundles/taiga-ui-cdk-directives-repeat-times.umd.min.js.map +1 -1
  140. package/bundles/taiga-ui-cdk-directives-resize.umd.js +50 -20
  141. package/bundles/taiga-ui-cdk-directives-resize.umd.js.map +1 -1
  142. package/bundles/taiga-ui-cdk-directives-resize.umd.min.js +1 -15
  143. package/bundles/taiga-ui-cdk-directives-resize.umd.min.js.map +1 -1
  144. package/bundles/taiga-ui-cdk-directives-swipe.umd.js +50 -20
  145. package/bundles/taiga-ui-cdk-directives-swipe.umd.js.map +1 -1
  146. package/bundles/taiga-ui-cdk-directives-swipe.umd.min.js +1 -15
  147. package/bundles/taiga-ui-cdk-directives-swipe.umd.min.js.map +1 -1
  148. package/bundles/taiga-ui-cdk-directives-validator.umd.js +50 -20
  149. package/bundles/taiga-ui-cdk-directives-validator.umd.js.map +1 -1
  150. package/bundles/taiga-ui-cdk-directives-validator.umd.min.js +1 -15
  151. package/bundles/taiga-ui-cdk-directives-validator.umd.min.js.map +1 -1
  152. package/bundles/taiga-ui-cdk-directives-zoom.umd.js +50 -20
  153. package/bundles/taiga-ui-cdk-directives-zoom.umd.js.map +1 -1
  154. package/bundles/taiga-ui-cdk-directives-zoom.umd.min.js +1 -15
  155. package/bundles/taiga-ui-cdk-directives-zoom.umd.min.js.map +1 -1
  156. package/bundles/taiga-ui-cdk-directives.umd.js +12 -4
  157. package/bundles/taiga-ui-cdk-directives.umd.js.map +1 -1
  158. package/bundles/taiga-ui-cdk-directives.umd.min.js +1 -1
  159. package/bundles/taiga-ui-cdk-exceptions.umd.js +50 -20
  160. package/bundles/taiga-ui-cdk-exceptions.umd.js.map +1 -1
  161. package/bundles/taiga-ui-cdk-exceptions.umd.min.js +1 -15
  162. package/bundles/taiga-ui-cdk-exceptions.umd.min.js.map +1 -1
  163. package/bundles/taiga-ui-cdk-observables.umd.js +1 -1
  164. package/bundles/taiga-ui-cdk-observables.umd.js.map +1 -1
  165. package/bundles/taiga-ui-cdk-observables.umd.min.js.map +1 -1
  166. package/bundles/taiga-ui-cdk-pipes-filter.umd.js +50 -20
  167. package/bundles/taiga-ui-cdk-pipes-filter.umd.js.map +1 -1
  168. package/bundles/taiga-ui-cdk-pipes-filter.umd.min.js +1 -15
  169. package/bundles/taiga-ui-cdk-pipes-filter.umd.min.js.map +1 -1
  170. package/bundles/taiga-ui-cdk-pipes-mapper.umd.js +50 -20
  171. package/bundles/taiga-ui-cdk-pipes-mapper.umd.js.map +1 -1
  172. package/bundles/taiga-ui-cdk-pipes-mapper.umd.min.js +1 -15
  173. package/bundles/taiga-ui-cdk-pipes-mapper.umd.min.js.map +1 -1
  174. package/bundles/taiga-ui-cdk-services.umd.js +50 -20
  175. package/bundles/taiga-ui-cdk-services.umd.js.map +1 -1
  176. package/bundles/taiga-ui-cdk-services.umd.min.js +1 -15
  177. package/bundles/taiga-ui-cdk-services.umd.min.js.map +1 -1
  178. package/bundles/taiga-ui-cdk-tokens.umd.js +55 -27
  179. package/bundles/taiga-ui-cdk-tokens.umd.js.map +1 -1
  180. package/bundles/taiga-ui-cdk-tokens.umd.min.js +1 -15
  181. package/bundles/taiga-ui-cdk-tokens.umd.min.js.map +1 -1
  182. package/bundles/taiga-ui-cdk-utils-browser.umd.js.map +1 -1
  183. package/bundles/taiga-ui-cdk-utils-browser.umd.min.js.map +1 -1
  184. package/bundles/taiga-ui-cdk-utils-focus.umd.js +2 -0
  185. package/bundles/taiga-ui-cdk-utils-focus.umd.js.map +1 -1
  186. package/bundles/taiga-ui-cdk-utils-focus.umd.min.js.map +1 -1
  187. package/bundles/taiga-ui-cdk-utils-os.umd.js +39 -0
  188. package/bundles/taiga-ui-cdk-utils-os.umd.js.map +1 -0
  189. package/bundles/taiga-ui-cdk-utils-os.umd.min.js +2 -0
  190. package/bundles/taiga-ui-cdk-utils-os.umd.min.js.map +1 -0
  191. package/bundles/taiga-ui-cdk-utils-svg.umd.js +289 -0
  192. package/bundles/taiga-ui-cdk-utils-svg.umd.js.map +1 -0
  193. package/bundles/taiga-ui-cdk-utils-svg.umd.min.js +2 -0
  194. package/bundles/taiga-ui-cdk-utils-svg.umd.min.js.map +1 -0
  195. package/bundles/taiga-ui-cdk-utils.umd.js +20 -4
  196. package/bundles/taiga-ui-cdk-utils.umd.js.map +1 -1
  197. package/bundles/taiga-ui-cdk-utils.umd.min.js +1 -1
  198. package/coercion/taiga-ui-cdk-coercion.metadata.json +1 -1
  199. package/components/alert-host/alert-host.component.d.ts +2 -2
  200. package/components/alert-host/taiga-ui-cdk-components-alert-host.metadata.json +1 -1
  201. package/components/dialog-host/dialog-host.component.d.ts +1 -1
  202. package/components/dialog-host/taiga-ui-cdk-components-dialog-host.metadata.json +1 -1
  203. package/components/portal-host/portal.service.d.ts +1 -1
  204. package/date-time/date-fillers.d.ts +0 -2
  205. package/date-time/day-range.d.ts +1 -2
  206. package/date-time/day.d.ts +0 -1
  207. package/date-time/month-range.d.ts +0 -1
  208. package/date-time/month.d.ts +1 -1
  209. package/date-time/taiga-ui-cdk-date-time.metadata.json +1 -1
  210. package/date-time/time.d.ts +7 -0
  211. package/date-time/year.d.ts +7 -0
  212. package/directives/auto-focus/autofocus.directive.d.ts +4 -13
  213. package/directives/auto-focus/autofocus.options.d.ts +13 -0
  214. package/directives/auto-focus/handlers/abstract.handler.d.ts +11 -0
  215. package/directives/auto-focus/handlers/default.handler.d.ts +9 -0
  216. package/directives/auto-focus/handlers/ios.handler.d.ts +10 -0
  217. package/directives/auto-focus/index.d.ts +4 -0
  218. package/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.metadata.json +1 -1
  219. package/directives/autofilled/autofilled-style.component.d.ts +2 -0
  220. package/directives/autofilled/autofilled.directive.d.ts +5 -4
  221. package/directives/autofilled/index.d.ts +1 -0
  222. package/directives/autofilled/taiga-ui-cdk-directives-autofilled.metadata.json +1 -1
  223. package/directives/focus-trap/taiga-ui-cdk-directives-focus-trap.metadata.json +1 -1
  224. package/directives/for-async/for-async.directive.d.ts +13 -0
  225. package/directives/for-async/for-async.module.d.ts +5 -0
  226. package/directives/for-async/index.d.ts +2 -0
  227. package/directives/for-async/package.json +13 -0
  228. package/directives/for-async/taiga-ui-cdk-directives-for-async.d.ts +4 -0
  229. package/directives/for-async/taiga-ui-cdk-directives-for-async.metadata.json +1 -0
  230. package/directives/index.d.ts +1 -0
  231. package/directives/item/item.directive.d.ts +1 -1
  232. package/directives/media/taiga-ui-cdk-directives-media.metadata.json +1 -1
  233. package/directives/taiga-ui-cdk-directives.metadata.json +1 -1
  234. package/esm2015/abstract/interactive.js +2 -2
  235. package/esm2015/coercion/coerce-boolean-property.js +2 -2
  236. package/esm2015/components/alert-host/alert-host.component.js +1 -1
  237. package/esm2015/components/dialog-host/dialog-host.component.js +5 -5
  238. package/esm2015/components/portal-host/portal.service.js +2 -2
  239. package/esm2015/date-time/date-fillers.js +1 -3
  240. package/esm2015/date-time/day-range.js +2 -2
  241. package/esm2015/date-time/day.js +2 -3
  242. package/esm2015/date-time/month-range.js +1 -2
  243. package/esm2015/date-time/month.js +5 -3
  244. package/esm2015/date-time/time.js +12 -1
  245. package/esm2015/date-time/year.js +13 -2
  246. package/esm2015/directives/auto-focus/autofocus.directive.js +11 -87
  247. package/esm2015/directives/auto-focus/autofocus.options.js +27 -0
  248. package/esm2015/directives/auto-focus/handlers/abstract.handler.js +25 -0
  249. package/esm2015/directives/auto-focus/handlers/default.handler.js +39 -0
  250. package/esm2015/directives/auto-focus/handlers/ios.handler.js +70 -0
  251. package/esm2015/directives/auto-focus/index.js +5 -1
  252. package/esm2015/directives/autofilled/autofilled-style.component.js +13 -0
  253. package/esm2015/directives/autofilled/autofilled.directive.js +23 -37
  254. package/esm2015/directives/autofilled/autofilled.module.js +4 -2
  255. package/esm2015/directives/autofilled/index.js +2 -1
  256. package/esm2015/directives/focus-trap/focus-trap.directive.js +4 -2
  257. package/esm2015/directives/for-async/for-async.directive.js +48 -0
  258. package/esm2015/directives/for-async/for-async.module.js +16 -0
  259. package/esm2015/directives/for-async/index.js +3 -0
  260. package/esm2015/directives/for-async/taiga-ui-cdk-directives-for-async.js +5 -0
  261. package/esm2015/directives/index.js +2 -1
  262. package/esm2015/directives/item/item.directive.js +2 -2
  263. package/esm2015/directives/media/media.directive.js +2 -1
  264. package/esm2015/observables/replay-control-value-changes.js +2 -2
  265. package/esm2015/services/parents-scroll.service.js +1 -1
  266. package/esm2015/tokens/index.js +2 -1
  267. package/esm2015/tokens/is-apple.js +5 -0
  268. package/esm2015/tokens/is-ios.js +4 -6
  269. package/esm2015/tokens/is-mobile.js +2 -2
  270. package/esm2015/utils/browser/index.js +2 -2
  271. package/esm2015/utils/browser/{is-IE.js → is-ie.js} +1 -1
  272. package/esm2015/utils/focus/set-native-focused.js +3 -1
  273. package/esm2015/utils/index.js +3 -1
  274. package/esm2015/utils/os/index.js +4 -0
  275. package/esm2015/utils/os/is-apple-platform.js +14 -0
  276. package/esm2015/utils/os/is-apple.js +6 -0
  277. package/esm2015/utils/os/is-ios.js +7 -0
  278. package/esm2015/utils/os/taiga-ui-cdk-utils-os.js +5 -0
  279. package/esm2015/utils/svg/index.js +2 -0
  280. package/esm2015/utils/svg/svg-linear-gradient-processor.js +26 -0
  281. package/esm2015/utils/svg/taiga-ui-cdk-utils-svg.js +5 -0
  282. package/esm5/abstract/interactive.js +2 -2
  283. package/esm5/coercion/coerce-boolean-property.js +2 -2
  284. package/esm5/components/alert-host/alert-host.component.js +1 -1
  285. package/esm5/components/dialog-host/dialog-host.component.js +5 -5
  286. package/esm5/components/portal-host/portal.service.js +2 -2
  287. package/esm5/date-time/date-fillers.js +1 -3
  288. package/esm5/date-time/day-range.js +2 -2
  289. package/esm5/date-time/day.js +2 -3
  290. package/esm5/date-time/month-range.js +1 -2
  291. package/esm5/date-time/month.js +5 -3
  292. package/esm5/date-time/time.js +12 -1
  293. package/esm5/date-time/year.js +13 -2
  294. package/esm5/directives/auto-focus/autofocus.directive.js +11 -97
  295. package/esm5/directives/auto-focus/autofocus.options.js +27 -0
  296. package/esm5/directives/auto-focus/handlers/abstract.handler.js +34 -0
  297. package/esm5/directives/auto-focus/handlers/default.handler.js +43 -0
  298. package/esm5/directives/auto-focus/handlers/ios.handler.js +75 -0
  299. package/esm5/directives/auto-focus/index.js +5 -1
  300. package/esm5/directives/autofilled/autofilled-style.component.js +16 -0
  301. package/esm5/directives/autofilled/autofilled.directive.js +24 -21
  302. package/esm5/directives/autofilled/autofilled.module.js +4 -2
  303. package/esm5/directives/autofilled/index.js +2 -1
  304. package/esm5/directives/focus-trap/focus-trap.directive.js +4 -2
  305. package/esm5/directives/for-async/for-async.directive.js +52 -0
  306. package/esm5/directives/for-async/for-async.module.js +19 -0
  307. package/esm5/directives/for-async/index.js +3 -0
  308. package/esm5/directives/for-async/taiga-ui-cdk-directives-for-async.js +5 -0
  309. package/esm5/directives/index.js +2 -1
  310. package/esm5/directives/item/item.directive.js +2 -2
  311. package/esm5/directives/media/media.directive.js +2 -1
  312. package/esm5/observables/replay-control-value-changes.js +2 -2
  313. package/esm5/services/parents-scroll.service.js +1 -1
  314. package/esm5/tokens/index.js +2 -1
  315. package/esm5/tokens/is-apple.js +5 -0
  316. package/esm5/tokens/is-ios.js +4 -8
  317. package/esm5/tokens/is-mobile.js +2 -2
  318. package/esm5/utils/browser/index.js +2 -2
  319. package/esm5/utils/browser/{is-IE.js → is-ie.js} +1 -1
  320. package/esm5/utils/focus/set-native-focused.js +3 -1
  321. package/esm5/utils/index.js +3 -1
  322. package/esm5/utils/os/index.js +4 -0
  323. package/esm5/utils/os/is-apple-platform.js +14 -0
  324. package/esm5/utils/os/is-apple.js +6 -0
  325. package/esm5/utils/os/is-ios.js +7 -0
  326. package/esm5/utils/os/taiga-ui-cdk-utils-os.js +5 -0
  327. package/esm5/utils/svg/index.js +2 -0
  328. package/esm5/utils/svg/svg-linear-gradient-processor.js +29 -0
  329. package/esm5/utils/svg/taiga-ui-cdk-utils-svg.js +5 -0
  330. package/fesm2015/taiga-ui-cdk-abstract.js +1 -1
  331. package/fesm2015/taiga-ui-cdk-abstract.js.map +1 -1
  332. package/fesm2015/taiga-ui-cdk-coercion.js +1 -1
  333. package/fesm2015/taiga-ui-cdk-coercion.js.map +1 -1
  334. package/fesm2015/taiga-ui-cdk-components-alert-host.js.map +1 -1
  335. package/fesm2015/taiga-ui-cdk-components-dialog-host.js +4 -4
  336. package/fesm2015/taiga-ui-cdk-components-dialog-host.js.map +1 -1
  337. package/fesm2015/taiga-ui-cdk-components-portal-host.js +1 -1
  338. package/fesm2015/taiga-ui-cdk-components-portal-host.js.map +1 -1
  339. package/fesm2015/taiga-ui-cdk-date-time.js +29 -9
  340. package/fesm2015/taiga-ui-cdk-date-time.js.map +1 -1
  341. package/fesm2015/taiga-ui-cdk-directives-auto-focus.js +113 -46
  342. package/fesm2015/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
  343. package/fesm2015/taiga-ui-cdk-directives-autofilled.js +33 -37
  344. package/fesm2015/taiga-ui-cdk-directives-autofilled.js.map +1 -1
  345. package/fesm2015/taiga-ui-cdk-directives-focus-trap.js +3 -1
  346. package/fesm2015/taiga-ui-cdk-directives-focus-trap.js.map +1 -1
  347. package/fesm2015/taiga-ui-cdk-directives-for-async.js +66 -0
  348. package/fesm2015/taiga-ui-cdk-directives-for-async.js.map +1 -0
  349. package/fesm2015/taiga-ui-cdk-directives-item.js +1 -1
  350. package/fesm2015/taiga-ui-cdk-directives-item.js.map +1 -1
  351. package/fesm2015/taiga-ui-cdk-directives-media.js +1 -0
  352. package/fesm2015/taiga-ui-cdk-directives-media.js.map +1 -1
  353. package/fesm2015/taiga-ui-cdk-directives.js +1 -0
  354. package/fesm2015/taiga-ui-cdk-directives.js.map +1 -1
  355. package/fesm2015/taiga-ui-cdk-observables.js +1 -1
  356. package/fesm2015/taiga-ui-cdk-observables.js.map +1 -1
  357. package/fesm2015/taiga-ui-cdk-services.js.map +1 -1
  358. package/fesm2015/taiga-ui-cdk-tokens.js +7 -8
  359. package/fesm2015/taiga-ui-cdk-tokens.js.map +1 -1
  360. package/fesm2015/taiga-ui-cdk-utils-browser.js.map +1 -1
  361. package/fesm2015/taiga-ui-cdk-utils-focus.js +2 -0
  362. package/fesm2015/taiga-ui-cdk-utils-focus.js.map +1 -1
  363. package/fesm2015/taiga-ui-cdk-utils-os.js +31 -0
  364. package/fesm2015/taiga-ui-cdk-utils-os.js.map +1 -0
  365. package/fesm2015/taiga-ui-cdk-utils-svg.js +32 -0
  366. package/fesm2015/taiga-ui-cdk-utils-svg.js.map +1 -0
  367. package/fesm2015/taiga-ui-cdk-utils.js +2 -0
  368. package/fesm2015/taiga-ui-cdk-utils.js.map +1 -1
  369. package/fesm5/taiga-ui-cdk-abstract.js +1 -1
  370. package/fesm5/taiga-ui-cdk-abstract.js.map +1 -1
  371. package/fesm5/taiga-ui-cdk-coercion.js +1 -1
  372. package/fesm5/taiga-ui-cdk-coercion.js.map +1 -1
  373. package/fesm5/taiga-ui-cdk-components-alert-host.js.map +1 -1
  374. package/fesm5/taiga-ui-cdk-components-dialog-host.js +4 -4
  375. package/fesm5/taiga-ui-cdk-components-dialog-host.js.map +1 -1
  376. package/fesm5/taiga-ui-cdk-components-portal-host.js +1 -1
  377. package/fesm5/taiga-ui-cdk-components-portal-host.js.map +1 -1
  378. package/fesm5/taiga-ui-cdk-date-time.js +29 -9
  379. package/fesm5/taiga-ui-cdk-date-time.js.map +1 -1
  380. package/fesm5/taiga-ui-cdk-directives-auto-focus.js +126 -51
  381. package/fesm5/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
  382. package/fesm5/taiga-ui-cdk-directives-autofilled.js +38 -22
  383. package/fesm5/taiga-ui-cdk-directives-autofilled.js.map +1 -1
  384. package/fesm5/taiga-ui-cdk-directives-focus-trap.js +3 -1
  385. package/fesm5/taiga-ui-cdk-directives-focus-trap.js.map +1 -1
  386. package/fesm5/taiga-ui-cdk-directives-for-async.js +73 -0
  387. package/fesm5/taiga-ui-cdk-directives-for-async.js.map +1 -0
  388. package/fesm5/taiga-ui-cdk-directives-item.js +1 -1
  389. package/fesm5/taiga-ui-cdk-directives-item.js.map +1 -1
  390. package/fesm5/taiga-ui-cdk-directives-media.js +1 -0
  391. package/fesm5/taiga-ui-cdk-directives-media.js.map +1 -1
  392. package/fesm5/taiga-ui-cdk-directives.js +1 -0
  393. package/fesm5/taiga-ui-cdk-directives.js.map +1 -1
  394. package/fesm5/taiga-ui-cdk-observables.js +1 -1
  395. package/fesm5/taiga-ui-cdk-observables.js.map +1 -1
  396. package/fesm5/taiga-ui-cdk-services.js.map +1 -1
  397. package/fesm5/taiga-ui-cdk-tokens.js +7 -10
  398. package/fesm5/taiga-ui-cdk-tokens.js.map +1 -1
  399. package/fesm5/taiga-ui-cdk-utils-browser.js.map +1 -1
  400. package/fesm5/taiga-ui-cdk-utils-focus.js +2 -0
  401. package/fesm5/taiga-ui-cdk-utils-focus.js.map +1 -1
  402. package/fesm5/taiga-ui-cdk-utils-os.js +31 -0
  403. package/fesm5/taiga-ui-cdk-utils-os.js.map +1 -0
  404. package/fesm5/taiga-ui-cdk-utils-svg.js +36 -0
  405. package/fesm5/taiga-ui-cdk-utils-svg.js.map +1 -0
  406. package/fesm5/taiga-ui-cdk-utils.js +2 -0
  407. package/fesm5/taiga-ui-cdk-utils.js.map +1 -1
  408. package/observables/replay-control-value-changes.d.ts +1 -1
  409. package/package.json +1 -1
  410. package/schematics/ng-add/constants/modules.d.ts +1 -1
  411. package/schematics/ng-add/constants/modules.js +2 -2
  412. package/schematics/ng-add/schema.d.ts +1 -1
  413. package/schematics/ng-add/schema.json +3 -3
  414. package/schematics/ng-add/steps/add-taiga-modules.js +1 -1
  415. package/schematics/ng-update/constants/consts.d.ts +7 -7
  416. package/schematics/ng-update/constants/enums.d.ts +3 -3
  417. package/schematics/ng-update/constants/types.d.ts +3 -3
  418. package/schematics/ng-update/constants/types.js +26 -0
  419. package/schematics/ng-update/constants/warnings.d.ts +6 -0
  420. package/schematics/ng-update/constants/warnings.js +8 -0
  421. package/schematics/ng-update/index.js +2 -0
  422. package/schematics/ng-update/steps/rename-types.js +16 -9
  423. package/schematics/ng-update/steps/show-warnings.d.ts +2 -0
  424. package/schematics/ng-update/steps/show-warnings.js +18 -0
  425. package/tokens/index.d.ts +1 -0
  426. package/tokens/is-apple.d.ts +2 -0
  427. package/tokens/taiga-ui-cdk-tokens.metadata.json +1 -1
  428. package/utils/browser/index.d.ts +1 -1
  429. package/utils/browser/{is-IE.d.ts → is-ie.d.ts} +0 -0
  430. package/utils/browser/taiga-ui-cdk-utils-browser.metadata.json +1 -1
  431. package/utils/focus/set-native-focused.d.ts +2 -0
  432. package/utils/index.d.ts +2 -0
  433. package/utils/os/index.d.ts +3 -0
  434. package/utils/os/is-apple-platform.d.ts +11 -0
  435. package/utils/os/is-apple.d.ts +1 -0
  436. package/utils/os/is-ios.d.ts +1 -0
  437. package/utils/os/package.json +13 -0
  438. package/utils/os/taiga-ui-cdk-utils-os.d.ts +4 -0
  439. package/utils/os/taiga-ui-cdk-utils-os.metadata.json +1 -0
  440. package/utils/svg/index.d.ts +1 -0
  441. package/utils/svg/package.json +13 -0
  442. package/utils/svg/svg-linear-gradient-processor.d.ts +15 -0
  443. package/utils/svg/taiga-ui-cdk-utils-svg.d.ts +4 -0
  444. package/utils/svg/taiga-ui-cdk-utils-svg.metadata.json +1 -0
  445. package/utils/taiga-ui-cdk-utils.metadata.json +1 -1
@@ -84,7 +84,6 @@ var TuiMonth = /** @class */ (function (_super) {
84
84
  Object.defineProperty(TuiMonth.prototype, "formattedMonth", {
85
85
  /**
86
86
  * @deprecated
87
- * TODO remove in 3.0
88
87
  * Formatter month and year
89
88
  */
90
89
  get: function () {
@@ -165,7 +164,7 @@ var TuiMonth = /** @class */ (function (_super) {
165
164
  return (this.yearAfter(another) ||
166
165
  (this.yearSame(another) && this.month > another.month));
167
166
  };
168
- // TODO: Consider removing `backwards` option
167
+ // TODO: 3.0 Consider removing `backwards` option
169
168
  /**
170
169
  * Immutably alters current month and year by passed offset
171
170
  *
@@ -186,6 +185,9 @@ var TuiMonth = /** @class */ (function (_super) {
186
185
  TuiMonth.prototype.toString = function () {
187
186
  return this.formattedMonth;
188
187
  };
188
+ TuiMonth.prototype.valueOf = function () {
189
+ return this.toLocalNativeDate().valueOf();
190
+ };
189
191
  TuiMonth.prototype.toJSON = function () {
190
192
  return _super.prototype.toJSON.call(this) + "-" + this.formattedMonthPart;
191
193
  };
@@ -204,4 +206,4 @@ var TuiMonth = /** @class */ (function (_super) {
204
206
  return TuiMonth;
205
207
  }(TuiYear));
206
208
  export { TuiMonth };
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2RhdGUtdGltZS8iLCJzb3VyY2VzIjpbIm1vbnRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFHaEQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUV2RSxPQUFPLEVBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQy9FLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFFL0I7O0dBRUc7QUFDSDtJQUE4Qiw0QkFBTztJQUNqQzs7O09BR0c7SUFDSCxrQkFBWSxJQUFZLEVBQVcsS0FBYTtRQUFoRCxZQUNJLGtCQUFNLElBQUksQ0FBQyxTQUVkO1FBSGtDLFdBQUssR0FBTCxLQUFLLENBQVE7UUFFNUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDOztJQUN6RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxxQkFBWSxHQUFuQixVQUFvQixJQUFZLEVBQUUsS0FBYTtRQUMzQyxPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRDs7T0FFRztJQUNJLDBCQUFpQixHQUF4QixVQUF5QixLQUFhLEVBQUUsVUFBbUI7UUFDdkQsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUVuRCxRQUFRLEtBQUssRUFBRTtZQUNYO2dCQUNJLE9BQU8sVUFBVSxDQUFDLENB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Q0gseUJBQU0sR0FBTixVQUFPLEVBQW1DLEVBQUUsU0FBMEI7WUFBOUQsWUFBUSxFQUFSLDZCQUFRLEVBQUUsYUFBUyxFQUFULDhCQUFTO1FBQWlCLDBCQUFBLEVBQUEsaUJBQTBCO1FBQ2xFLElBQUksU0FBUyxFQUFFO1lBQ1gsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ1gsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ2Y7UUFFRCxJQUFNLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBRTdFLE9BQU8sSUFBSSxRQUFRLENBQ2YsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsY0FBYyxDQUFDLEVBQ3hDLFdBQVcsR0FBRyxjQUFjLENBQy9CLENBQUM7SUFDTixDQUFDO0lBRUQsMkJBQVEsR0FBUjtRQUNJLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUMvQixDQUFDO0lBRUQseUJBQU0sR0FBTjtRQUNJLE9BQVUsaUJBQU0sTUFBTSxXQUFFLFNBQUksSUFBSSxDQUFDLGtCQUFvQixDQUFDO0lBQzFELENBQUM7SUFFRDs7T0FFRztJQUNILG9DQUFpQixHQUFqQjtRQUNJLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsa0NBQWUsR0FBZjtRQUNJLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFDTCxlQUFDO0FBQUQsQ0FBQyxBQWxORCxDQUE4QixPQUFPLEdBa05wQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7dHVpQXNzZXJ0fSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NsYXNzZXMnO1xuaW1wb3J0IHtUdWlNb250aE51bWJlcn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9lbnVtcyc7XG5pbXBvcnQge1R1aU1vbnRoTGlrZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9pbnRlcmZhY2VzJztcbmltcG9ydCB7cGFkU3RhcnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZm9ybWF0JztcbmltcG9ydCB7aW5SYW5nZSwgbm9ybWFsaXplVG9JbnROdW1iZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWF0aCc7XG5cbmltcG9ydCB7REFZU19JTl9XRUVLLCBNQVhfTU9OVEgsIE1JTl9NT05USCwgTU9OVEhTX0lOX1lFQVJ9IGZyb20gJy4vZGF0ZS10aW1lJztcbmltcG9ydCB7VHVpWWVhcn0gZnJvbSAnLi95ZWFyJztcblxuLyoqXG4gKiBJbW11dGFibGUgb2JqZWN0IGNvbnNpc3Rpbmcgb2YgeWVhciBhbmQgbW9udGhcbiAqL1xuZXhwb3J0IGNsYXNzIFR1aU1vbnRoIGV4dGVuZHMgVHVpWWVhciBpbXBsZW1lbnRzIFR1aU1vbnRoTGlrZSB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIHllYXJcbiAgICAgKiBAcGFyYW0gbW9udGggKHN0YXJ0aW5nIHdpdGggMClcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3Rvcih5ZWFyOiBudW1iZXIsIHJlYWRvbmx5IG1vbnRoOiBudW1iZXIpIHtcbiAgICAgICAgc3VwZXIoeWVhcik7XG4gICAgICAgIHR1aUFzc2VydC5hc3NlcnQoVHVpTW9udGguaXNWYWxpZE1vbnRoKHllYXIsIG1vbnRoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGVzdHMgbW9udGggYW5kIHllYXIgZm9yIHZhbGlkaXR5XG4gICAgICovXG4gICAgc3RhdGljIGlzVmFsaWRNb250aCh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIFR1aVllYXIuaXNWYWxpZFllYXIoeWVhcikgJiYgVHVpTW9udGguaXNWYWxpZE1vbnRoUGFydChtb250aCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBudW1iZXIgb2YgZGF5cyBpbiBhIG1vbnRoXG4gICAgICovXG4gICAgc3RhdGljIGdldE1vbnRoRGF5c0NvdW50KG1vbnRoOiBudW1iZXIsIGlzTGVhcFllYXI6IGJvb2xlYW4pOiBudW1iZXIge1xuICAgICAgICB0dWlBc3NlcnQuYXNzZXJ0KFR1aU1vbnRoLmlzVmFsaWRNb250aFBhcnQobW9udGgpKTtcblxuICAgICAgICBzd2l0Y2ggKG1vbnRoKSB7XG4gICAgICAgICAgICBjYXNlIFR1aU1vbnRoTnVtYmVyLkZlYnJ1YXJ5OlxuICAgICAgICAgICAgICAgIHJldHVybiBpc0xlYXBZZWFyID8gMjkgOiAyODtcbiAgICAgICAgICAgIGNhc2UgVHVpTW9udGhOdW1iZXIuQXByaWw6XG4gICAgICAgICAgICBjYXNlIFR1aU1vbnRoTnVtYmVyLkp1bmU6XG4gICAgICAgICAgICBjYXNlIFR1aU1vbnRoTnVtYmVyLlNlcHRlbWJlcjpcbiAgICAgICAgICAgIGNhc2UgVHVpTW9udGhOdW1iZXIuTm92ZW1iZXI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDMwO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gMzE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGN1cnJlbnQgbW9udGggYW5kIHllYXIgYmFzZWQgb24gbG9jYWwgdGltZSB6b25lXG4gICAgICogQG5vc2lkZWVmZmVjdHNcbiAgICAgKi9cbiAgICBzdGF0aWMgY3VycmVudExvY2FsKCk6IFR1aU1vbnRoIHtcbiAgICAgICAgY29uc3QgbmF0aXZlRGF0ZSA9IG5ldyBEYXRlKCk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBUdWlNb250aChuYXRpdmVEYXRlLmdldEZ1bGxZZWFyKCksIG5hdGl2ZURhdGUuZ2V0TW9udGgoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBjdXJyZW50IG1vbnRoIGFuZCB5ZWFyIGJhc2VkIG9uIFVUQ1xuICAgICAqL1xuICAgIHN0YXRpYyBjdXJyZW50VXRjKCk6IFR1aU1vbnRoIHtcbiAgICAgICAgY29uc3QgbmF0aXZlRGF0ZSA9IG5ldyBEYXRlKCk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBUdWlNb250aChuYXRpdmVEYXRlLmdldFVUQ0Z1bGxZZWFyKCksIG5hdGl2ZURhdGUuZ2V0VVRDTW9udGgoKSk7XG4gICAgfVxuXG4gICAgc3RhdGljIGxlbmd0aEJldHdlZW4oZnJvbTogVHVpTW9udGgsIHRvOiBUdWlNb250aCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGFic29sdXRlRnJvbSA9IGZyb20ubW9udGggKyBmcm9tLnllYXIgKiAxMjtcbiAgICAgICAgY29uc3QgYWJzb2x1dGVUbyA9IHRvLm1vbnRoICsgdG8ueWVhciAqIDEyO1xuXG4gICAgICAgIHJldHVybiBhYnNvbHV0ZVRvIC0gYWJzb2x1dGVGcm9tO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE5vcm1hbGl6ZXMgbnVtYmVyIGJ5IGNsYW1waW5nIGl0IGJldHdlZW4gbWluIGFuZCBtYXggbW9udGhcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgc3RhdGljIG5vcm1hbGl6ZU1vbnRoUGFydChtb250aDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZVRvSW50TnVtYmVyKG1vbnRoLCBNSU5fTU9OVEgsIE1BWF9NT05USCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGVzdHMgbW9udGggZm9yIHZhbGlkaXR5XG4gICAgICovXG4gICAgcHJpdmF0ZSBzdGF0aWMgaXNWYWxpZE1vbnRoUGFydChtb250aDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBOdW1iZXIuaXNJbnRlZ2VyKG1vbnRoKSAmJiBpblJhbmdlKG1vbnRoLCBNSU5fTU9OVEgsIE1BWF9NT05USCArIDEpO1xuICAgIH1cblxuICAgIGdldCBmb3JtYXR0ZWRNb250aFBhcnQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHBhZFN0YXJ0KFN0cmluZyh0aGlzLm1vbnRoICsgMSksIDIsICcwJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKiBUT0RPIHJlbW92ZSBpbiAzLjBcbiAgICAgKiBGb3JtYXR0ZXIgbW9udGggYW5kIHllYXJcbiAgICAgKi9cbiAgICBnZXQgZm9ybWF0dGVkTW9udGgoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuZm9ybWF0dGVkTW9udGhQYXJ0fS4ke3RoaXMuZm9ybWF0dGVkWWVhcn1gO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIERPTlQgVVNFIElUICh3aWxsIGJlIGRlbGV0ZWQgc29vbilcbiAgICAgKlxuICAgICAqIENhbGN1bGF0ZXMgbnVtYmVyIG9mIHdlZWtzIGluIGEgbW9udGggKGNvdW50aW5nIG5vbi1mdWxsIHdlZWtzKVxuICAgICAqL1xuICAgIGdldCB3ZWVrc1Jvd3NDb3VudCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gTWF0aC5jZWlsKCh0aGlzLm1vbnRoU3RhcnREYXlzT2Zmc2V0ICsgdGhpcy5kYXlzQ291bnQpIC8gREFZU19JTl9XRUVLKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGRheXMgaW4gYSBtb250aFxuICAgICAqL1xuICAgIGdldCBkYXlzQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIFR1aU1vbnRoLmdldE1vbnRoRGF5c0NvdW50KHRoaXMubW9udGgsIHRoaXMuaXNMZWFwWWVhcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgRE9OVCBVU0UgSVQgKHdpbGwgYmUgZGVsZXRlZCBzb29uKVxuICAgICAqXG4gICAgICogQ29tcHV0ZXMgZGF5IG9mIHdlZWsgb2Zmc2V0IG9mIHRoZSBiZWdpbm5pbmcgb2YgdGhlIG1vbnRoXG4gICAgICovXG4gICAgZ2V0IG1vbnRoU3RhcnREYXlzT2Zmc2V0KCk6IG51bWJlciB7XG4gICAgICAgIGxldCByZXN1bHQgPSB0aGlzLnllYXJTdGFydERheXNPZmZzZXQ7XG5cbiAgICAgICAgZm9yIChsZXQgY3VycmVudE1vbnRoID0gMDsgY3VycmVudE1vbnRoIDw9IHRoaXMubW9udGggLSAxOyBjdXJyZW50TW9udGgrKykge1xuICAgICAgICAgICAgcmVzdWx0ICs9IFR1aU1vbnRoLmdldE1vbnRoRGF5c0NvdW50KGN1cnJlbnRNb250aCwgdGhpcy5pc0xlYXBZZWFyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQgJSBEQVlTX0lOX1dFRUs7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGFzc2VkIG1vbnRoIGFuZCB5ZWFyIGFyZSBhZnRlciBjdXJyZW50XG4gICAgICovXG4gICAgbW9udGhCZWZvcmUoYW5vdGhlcjogVHVpTW9udGgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMueWVhckJlZm9yZShhbm90aGVyKSB8fFxuICAgICAgICAgICAgKHRoaXMueWVhclNhbWUoYW5vdGhlcikgJiYgdGhpcy5tb250aCA8IGFub3RoZXIubW9udGgpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGFzc2VkIG1vbnRoIGFuZCB5ZWFyIGFyZSBhZnRlciBvciB0aGUgc2FtZSBhcyBjdXJyZW50XG4gICAgICovXG4gICAgbW9udGhTYW1lT3JCZWZvcmUoYW5vdGhlcjogVHVpTW9udGgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMueWVhckJlZm9yZShhbm90aGVyKSB8fFxuICAgICAgICAgICAgKHRoaXMueWVhclNhbWUoYW5vdGhlcikgJiYgdGhpcy5tb250aCA8PSBhbm90aGVyLm1vbnRoKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhc3NlZCBtb250aCBhbmQgeWVhciBhcmUgdGhlIHNhbWUgYXMgY3VycmVudFxuICAgICAqL1xuICAgIG1vbnRoU2FtZShhbm90aGVyOiBUdWlNb250aCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy55ZWFyU2FtZShhbm90aGVyKSAmJiB0aGlzLm1vbnRoID09PSBhbm90aGVyLm1vbnRoO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhc3NlZCBtb250aCBhbmQgeWVhciBhcmUgZWl0aGVyIGJlZm9yZSBvciBlcXVhbCB0byBjdXJyZW50XG4gICAgICovXG4gICAgbW9udGhTYW1lT3JBZnRlcihhbm90aGVyOiBUdWlNb250aCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy55ZWFyQWZ0ZXIoYW5vdGhlcikgfHxcbiAgICAgICAgICAgICh0aGlzLnllYXJTYW1lKGFub3RoZXIpICYmIHRoaXMubW9udGggPj0gYW5vdGhlci5tb250aClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYXNzZWQgbW9udGggYW5kIHllYXIgYXJlIGJlZm9yZSBjdXJyZW50XG4gICAgICovXG4gICAgbW9udGhBZnRlcihhbm90aGVyOiBUdWlNb250aCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy55ZWFyQWZ0ZXIoYW5vdGhlcikgfHxcbiAgICAgICAgICAgICh0aGlzLnllYXJTYW1lKGFub3RoZXIpICYmIHRoaXMubW9udGggPiBhbm90aGVyLm1vbnRoKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vIFRPRE86IENvbnNpZGVyIHJlbW92aW5nIGBiYWNrd2FyZHNgIG9wdGlvblxuICAgIC8qKlxuICAgICAqIEltbXV0YWJseSBhbHRlcnMgY3VycmVudCBtb250aCBhbmQgeWVhciBieSBwYXNzZWQgb2Zmc2V0XG4gICAgICpcbiAgICAgKiBAcGFyYW0gb2Zmc2V0XG4gICAgICogQHBhcmFtIGJhY2t3YXJkcyBzaGlmdCBkYXRlIGJhY2t3YXJkc1xuICAgICAqIEByZXR1cm4gbmV3IG1vbnRoIGFuZCB5ZWFyIG9iamVjdCBhcyBhIHJlc3VsdCBvZiBvZmZzZXR0aW5nIGN1cnJlbnRcbiAgICAgKi9cbiAgICBhcHBlbmQoe3llYXIgPSAwLCBtb250aCA9IDB9OiBUdWlNb250aExpa2UsIGJhY2t3YXJkczogYm9vbGVhbiA9IGZhbHNlKTogVHVpTW9udGgge1xuICAgICAgICBpZiAoYmFja3dhcmRzKSB7XG4gICAgICAgICAgICB5ZWFyICo9IC0xO1xuICAgICAgICAgICAgbW9udGggKj0gLTE7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0b3RhbE1vbnRocyA9ICh0aGlzLnllYXIgKyB5ZWFyKSAqIE1PTlRIU19JTl9ZRUFSICsgdGhpcy5tb250aCArIG1vbnRoO1xuXG4gICAgICAgIHJldHVybiBuZXcgVHVpTW9udGgoXG4gICAgICAgICAgICBNYXRoLmZsb29yKHRvdGFsTW9udGhzIC8gTU9OVEhTX0lOX1lFQVIpLFxuICAgICAgICAgICAgdG90YWxNb250aHMgJSBNT05USFNfSU5fWUVBUixcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXR0ZWRNb250aDtcbiAgICB9XG5cbiAgICB0b0pTT04oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3N1cGVyLnRvSlNPTigpfS0ke3RoaXMuZm9ybWF0dGVkTW9udGhQYXJ0fWA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBuYXRpdmUge0BsaW5rIERhdGV9IGJhc2VkIG9uIGxvY2FsIHRpbWUgem9uZVxuICAgICAqL1xuICAgIHRvTG9jYWxOYXRpdmVEYXRlKCk6IERhdGUge1xuICAgICAgICByZXR1cm4gbmV3IERhdGUodGhpcy55ZWFyLCB0aGlzLm1vbnRoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIG5hdGl2ZSB7QGxpbmsgRGF0ZX0gYmFzZWQgb24gVVRDXG4gICAgICovXG4gICAgdG9VdGNOYXRpdmVEYXRlKCk6IERhdGUge1xuICAgICAgICByZXR1cm4gbmV3IERhdGUoRGF0ZS5VVEModGhpcy55ZWFyLCB0aGlzLm1vbnRoKSk7XG4gICAgfVxufVxuIl19
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2RhdGUtdGltZS8iLCJzb3VyY2VzIjpbIm1vbnRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFHaEQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUV2RSxPQUFPLEVBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQy9FLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFFL0I7O0dBRUc7QUFDSDtJQUE4Qiw0QkFBTztJQUNqQzs7O09BR0c7SUFDSCxrQkFBWSxJQUFZLEVBQVcsS0FBYTtRQUFoRCxZQUNJLGtCQUFNLElBQUksQ0FBQyxTQUVkO1FBSGtDLFdBQUssR0FBTCxLQUFLLENBQVE7UUFFNUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDOztJQUN6RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxxQkFBWSxHQUFuQixVQUFvQixJQUFZLEVBQUUsS0FBYTtRQUMzQyxPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRDs7T0FFRztJQUNJLDBCQUFpQixHQUF4QixVQUF5QixLQUFhLEVBQUUsVUFBbUI7UUFDdkQsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUVuRCxRQUFRLEtBQUssRUFBRTtZQUNYO2dCQUNJLE9BQU8sVUFBVSxDQUFDLENB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InNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7dHVpQXNzZXJ0fSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NsYXNzZXMnO1xuaW1wb3J0IHtUdWlNb250aE51bWJlcn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9lbnVtcyc7XG5pbXBvcnQge1R1aU1vbnRoTGlrZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9pbnRlcmZhY2VzJztcbmltcG9ydCB7cGFkU3RhcnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZm9ybWF0JztcbmltcG9ydCB7aW5SYW5nZSwgbm9ybWFsaXplVG9JbnROdW1iZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWF0aCc7XG5cbmltcG9ydCB7REFZU19JTl9XRUVLLCBNQVhfTU9OVEgsIE1JTl9NT05USCwgTU9OVEhTX0lOX1lFQVJ9IGZyb20gJy4vZGF0ZS10aW1lJztcbmltcG9ydCB7VHVpWWVhcn0gZnJvbSAnLi95ZWFyJztcblxuLyoqXG4gKiBJbW11dGFibGUgb2JqZWN0IGNvbnNpc3Rpbmcgb2YgeWVhciBhbmQgbW9udGhcbiAqL1xuZXhwb3J0IGNsYXNzIFR1aU1vbnRoIGV4dGVuZHMgVHVpWWVhciBpbXBsZW1lbnRzIFR1aU1vbnRoTGlrZSB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIHllYXJcbiAgICAgKiBAcGFyYW0gbW9udGggKHN0YXJ0aW5nIHdpdGggMClcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3Rvcih5ZWFyOiBudW1iZXIsIHJlYWRvbmx5IG1vbnRoOiBudW1iZXIpIHtcbiAgICAgICAgc3VwZXIoeWVhcik7XG4gICAgICAgIHR1aUFzc2VydC5hc3NlcnQoVHVpTW9udGguaXNWYWxpZE1vbnRoKHllYXIsIG1vbnRoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGVzdHMgbW9udGggYW5kIHllYXIgZm9yIHZhbGlkaXR5XG4gICAgICovXG4gICAgc3RhdGljIGlzVmFsaWRNb250aCh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIFR1aVllYXIuaXNWYWxpZFllYXIoeWVhcikgJiYgVHVpTW9udGguaXNWYWxpZE1vbnRoUGFydChtb250aCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBudW1iZXIgb2YgZGF5cyBpbiBhIG1vbnRoXG4gICAgICovXG4gICAgc3RhdGljIGdldE1vbnRoRGF5c0NvdW50KG1vbnRoOiBudW1iZXIsIGlzTGVhcFllYXI6IGJvb2xlYW4pOiBudW1iZXIge1xuICAgICAgICB0dWlBc3NlcnQuYXNzZXJ0KFR1aU1vbnRoLmlzVmFsaWRNb250aFBhcnQobW9udGgpKTtcblxuICAgICAgICBzd2l0Y2ggKG1vbnRoKSB7XG4gICAgICAgICAgICBjYXNlIFR1aU1vbnRoTnVtYmVyLkZlYnJ1YXJ5OlxuICAgICAgICAgICAgICAgIHJldHVybiBpc0xlYXBZZWFyID8gMjkgOiAyODtcbiAgICAgICAgICAgIGNhc2UgVHVpTW9udGhOdW1iZXIuQXByaWw6XG4gICAgICAgICAgICBjYXNlIFR1aU1vbnRoTnVtYmVyLkp1bmU6XG4gICAgICAgICAgICBjYXNlIFR1aU1vbnRoTnVtYmVyLlNlcHRlbWJlcjpcbiAgICAgICAgICAgIGNhc2UgVHVpTW9udGhOdW1iZXIuTm92ZW1iZXI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDMwO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gMzE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGN1cnJlbnQgbW9udGggYW5kIHllYXIgYmFzZWQgb24gbG9jYWwgdGltZSB6b25lXG4gICAgICogQG5vc2lkZWVmZmVjdHNcbiAgICAgKi9cbiAgICBzdGF0aWMgY3VycmVudExvY2FsKCk6IFR1aU1vbnRoIHtcbiAgICAgICAgY29uc3QgbmF0aXZlRGF0ZSA9IG5ldyBEYXRlKCk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBUdWlNb250aChuYXRpdmVEYXRlLmdldEZ1bGxZZWFyKCksIG5hdGl2ZURhdGUuZ2V0TW9udGgoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBjdXJyZW50IG1vbnRoIGFuZCB5ZWFyIGJhc2VkIG9uIFVUQ1xuICAgICAqL1xuICAgIHN0YXRpYyBjdXJyZW50VXRjKCk6IFR1aU1vbnRoIHtcbiAgICAgICAgY29uc3QgbmF0aXZlRGF0ZSA9IG5ldyBEYXRlKCk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBUdWlNb250aChuYXRpdmVEYXRlLmdldFVUQ0Z1bGxZZWFyKCksIG5hdGl2ZURhdGUuZ2V0VVRDTW9udGgoKSk7XG4gICAgfVxuXG4gICAgc3RhdGljIGxlbmd0aEJldHdlZW4oZnJvbTogVHVpTW9udGgsIHRvOiBUdWlNb250aCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGFic29sdXRlRnJvbSA9IGZyb20ubW9udGggKyBmcm9tLnllYXIgKiAxMjtcbiAgICAgICAgY29uc3QgYWJzb2x1dGVUbyA9IHRvLm1vbnRoICsgdG8ueWVhciAqIDEyO1xuXG4gICAgICAgIHJldHVybiBhYnNvbHV0ZVRvIC0gYWJzb2x1dGVGcm9tO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE5vcm1hbGl6ZXMgbnVtYmVyIGJ5IGNsYW1waW5nIGl0IGJldHdlZW4gbWluIGFuZCBtYXggbW9udGhcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgc3RhdGljIG5vcm1hbGl6ZU1vbnRoUGFydChtb250aDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZVRvSW50TnVtYmVyKG1vbnRoLCBNSU5fTU9OVEgsIE1BWF9NT05USCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGVzdHMgbW9udGggZm9yIHZhbGlkaXR5XG4gICAgICovXG4gICAgcHJpdmF0ZSBzdGF0aWMgaXNWYWxpZE1vbnRoUGFydChtb250aDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBOdW1iZXIuaXNJbnRlZ2VyKG1vbnRoKSAmJiBpblJhbmdlKG1vbnRoLCBNSU5fTU9OVEgsIE1BWF9NT05USCArIDEpO1xuICAgIH1cblxuICAgIGdldCBmb3JtYXR0ZWRNb250aFBhcnQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHBhZFN0YXJ0KFN0cmluZyh0aGlzLm1vbnRoICsgMSksIDIsICcwJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKiBGb3JtYXR0ZXIgbW9udGggYW5kIHllYXJcbiAgICAgKi9cbiAgICBnZXQgZm9ybWF0dGVkTW9udGgoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuZm9ybWF0dGVkTW9udGhQYXJ0fS4ke3RoaXMuZm9ybWF0dGVkWWVhcn1gO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIERPTlQgVVNFIElUICh3aWxsIGJlIGRlbGV0ZWQgc29vbilcbiAgICAgKlxuICAgICAqIENhbGN1bGF0ZXMgbnVtYmVyIG9mIHdlZWtzIGluIGEgbW9udGggKGNvdW50aW5nIG5vbi1mdWxsIHdlZWtzKVxuICAgICAqL1xuICAgIGdldCB3ZWVrc1Jvd3NDb3VudCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gTWF0aC5jZWlsKCh0aGlzLm1vbnRoU3RhcnREYXlzT2Zmc2V0ICsgdGhpcy5kYXlzQ291bnQpIC8gREFZU19JTl9XRUVLKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGRheXMgaW4gYSBtb250aFxuICAgICAqL1xuICAgIGdldCBkYXlzQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIFR1aU1vbnRoLmdldE1vbnRoRGF5c0NvdW50KHRoaXMubW9udGgsIHRoaXMuaXNMZWFwWWVhcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgRE9OVCBVU0UgSVQgKHdpbGwgYmUgZGVsZXRlZCBzb29uKVxuICAgICAqXG4gICAgICogQ29tcHV0ZXMgZGF5IG9mIHdlZWsgb2Zmc2V0IG9mIHRoZSBiZWdpbm5pbmcgb2YgdGhlIG1vbnRoXG4gICAgICovXG4gICAgZ2V0IG1vbnRoU3RhcnREYXlzT2Zmc2V0KCk6IG51bWJlciB7XG4gICAgICAgIGxldCByZXN1bHQgPSB0aGlzLnllYXJTdGFydERheXNPZmZzZXQ7XG5cbiAgICAgICAgZm9yIChsZXQgY3VycmVudE1vbnRoID0gMDsgY3VycmVudE1vbnRoIDw9IHRoaXMubW9udGggLSAxOyBjdXJyZW50TW9udGgrKykge1xuICAgICAgICAgICAgcmVzdWx0ICs9IFR1aU1vbnRoLmdldE1vbnRoRGF5c0NvdW50KGN1cnJlbnRNb250aCwgdGhpcy5pc0xlYXBZZWFyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQgJSBEQVlTX0lOX1dFRUs7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGFzc2VkIG1vbnRoIGFuZCB5ZWFyIGFyZSBhZnRlciBjdXJyZW50XG4gICAgICovXG4gICAgbW9udGhCZWZvcmUoYW5vdGhlcjogVHVpTW9udGgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMueWVhckJlZm9yZShhbm90aGVyKSB8fFxuICAgICAgICAgICAgKHRoaXMueWVhclNhbWUoYW5vdGhlcikgJiYgdGhpcy5tb250aCA8IGFub3RoZXIubW9udGgpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGFzc2VkIG1vbnRoIGFuZCB5ZWFyIGFyZSBhZnRlciBvciB0aGUgc2FtZSBhcyBjdXJyZW50XG4gICAgICovXG4gICAgbW9udGhTYW1lT3JCZWZvcmUoYW5vdGhlcjogVHVpTW9udGgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMueWVhckJlZm9yZShhbm90aGVyKSB8fFxuICAgICAgICAgICAgKHRoaXMueWVhclNhbWUoYW5vdGhlcikgJiYgdGhpcy5tb250aCA8PSBhbm90aGVyLm1vbnRoKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhc3NlZCBtb250aCBhbmQgeWVhciBhcmUgdGhlIHNhbWUgYXMgY3VycmVudFxuICAgICAqL1xuICAgIG1vbnRoU2FtZShhbm90aGVyOiBUdWlNb250aCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy55ZWFyU2FtZShhbm90aGVyKSAmJiB0aGlzLm1vbnRoID09PSBhbm90aGVyLm1vbnRoO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhc3NlZCBtb250aCBhbmQgeWVhciBhcmUgZWl0aGVyIGJlZm9yZSBvciBlcXVhbCB0byBjdXJyZW50XG4gICAgICovXG4gICAgbW9udGhTYW1lT3JBZnRlcihhbm90aGVyOiBUdWlNb250aCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy55ZWFyQWZ0ZXIoYW5vdGhlcikgfHxcbiAgICAgICAgICAgICh0aGlzLnllYXJTYW1lKGFub3RoZXIpICYmIHRoaXMubW9udGggPj0gYW5vdGhlci5tb250aClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYXNzZWQgbW9udGggYW5kIHllYXIgYXJlIGJlZm9yZSBjdXJyZW50XG4gICAgICovXG4gICAgbW9udGhBZnRlcihhbm90aGVyOiBUdWlNb250aCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy55ZWFyQWZ0ZXIoYW5vdGhlcikgfHxcbiAgICAgICAgICAgICh0aGlzLnllYXJTYW1lKGFub3RoZXIpICYmIHRoaXMubW9udGggPiBhbm90aGVyLm1vbnRoKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vIFRPRE86IDMuMCBDb25zaWRlciByZW1vdmluZyBgYmFja3dhcmRzYCBvcHRpb25cbiAgICAvKipcbiAgICAgKiBJbW11dGFibHkgYWx0ZXJzIGN1cnJlbnQgbW9udGggYW5kIHllYXIgYnkgcGFzc2VkIG9mZnNldFxuICAgICAqXG4gICAgICogQHBhcmFtIG9mZnNldFxuICAgICAqIEBwYXJhbSBiYWNrd2FyZHMgc2hpZnQgZGF0ZSBiYWNrd2FyZHNcbiAgICAgKiBAcmV0dXJuIG5ldyBtb250aCBhbmQgeWVhciBvYmplY3QgYXMgYSByZXN1bHQgb2Ygb2Zmc2V0dGluZyBjdXJyZW50XG4gICAgICovXG4gICAgYXBwZW5kKHt5ZWFyID0gMCwgbW9udGggPSAwfTogVHVpTW9udGhMaWtlLCBiYWNrd2FyZHM6IGJvb2xlYW4gPSBmYWxzZSk6IFR1aU1vbnRoIHtcbiAgICAgICAgaWYgKGJhY2t3YXJkcykge1xuICAgICAgICAgICAgeWVhciAqPSAtMTtcbiAgICAgICAgICAgIG1vbnRoICo9IC0xO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdG90YWxNb250aHMgPSAodGhpcy55ZWFyICsgeWVhcikgKiBNT05USFNfSU5fWUVBUiArIHRoaXMubW9udGggKyBtb250aDtcblxuICAgICAgICByZXR1cm4gbmV3IFR1aU1vbnRoKFxuICAgICAgICAgICAgTWF0aC5mbG9vcih0b3RhbE1vbnRocyAvIE1PTlRIU19JTl9ZRUFSKSxcbiAgICAgICAgICAgIHRvdGFsTW9udGhzICUgTU9OVEhTX0lOX1lFQVIsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0dGVkTW9udGg7XG4gICAgfVxuXG4gICAgdmFsdWVPZigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy50b0xvY2FsTmF0aXZlRGF0ZSgpLnZhbHVlT2YoKTtcbiAgICB9XG5cbiAgICB0b0pTT04oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3N1cGVyLnRvSlNPTigpfS0ke3RoaXMuZm9ybWF0dGVkTW9udGhQYXJ0fWA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBuYXRpdmUge0BsaW5rIERhdGV9IGJhc2VkIG9uIGxvY2FsIHRpbWUgem9uZVxuICAgICAqL1xuICAgIHRvTG9jYWxOYXRpdmVEYXRlKCk6IERhdGUge1xuICAgICAgICByZXR1cm4gbmV3IERhdGUodGhpcy55ZWFyLCB0aGlzLm1vbnRoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIG5hdGl2ZSB7QGxpbmsgRGF0ZX0gYmFzZWQgb24gVVRDXG4gICAgICovXG4gICAgdG9VdGNOYXRpdmVEYXRlKCk6IERhdGUge1xuICAgICAgICByZXR1cm4gbmV3IERhdGUoRGF0ZS5VVEModGhpcy55ZWFyLCB0aGlzLm1vbnRoKSk7XG4gICAgfVxufVxuIl19
@@ -104,6 +104,17 @@ var TuiTime = /** @class */ (function () {
104
104
  ("" + (needAddSeconds ? ":" + this.formatTime(this.seconds) : '')) +
105
105
  ("" + (needAddMs ? "." + this.formatTime(this.ms, 3) : '')));
106
106
  };
107
+ TuiTime.prototype.valueOf = function () {
108
+ return this.toAbsoluteMilliseconds();
109
+ };
110
+ /**
111
+ * Returns the primitive value of the given Date object.
112
+ * Depending on the argument, the method can return either a string or a number.
113
+ * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/@@toPrimitive
114
+ */
115
+ TuiTime.prototype[Symbol.toPrimitive] = function (hint) {
116
+ return Date.prototype[Symbol.toPrimitive].call(this, hint);
117
+ };
107
118
  /**
108
119
  * Converts TuiTime to milliseconds
109
120
  */
@@ -120,4 +131,4 @@ var TuiTime = /** @class */ (function () {
120
131
  return TuiTime;
121
132
  }());
122
133
  export { TuiTime };
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvZGF0ZS10aW1lLyIsInNvdXJjZXMiOlsidGltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFHaEQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUVqRCxPQUFPLEVBQ0gsWUFBWSxFQUNaLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIsc0JBQXNCLEVBQ3RCLGVBQWUsRUFDZixpQkFBaUIsR0FDcEIsTUFBTSxhQUFhLENBQUM7QUFFckI7O0dBRUc7QUFDSDtJQUNJLGlCQUNhLEtBQWEsRUFDYixPQUFlLEVBQ2YsT0FBbUIsRUFDbkIsRUFBYztRQURkLHdCQUFBLEVBQUEsV0FBbUI7UUFDbkIsbUJBQUEsRUFBQSxNQUFjO1FBSGQsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ25CLE9BQUUsR0FBRixFQUFFLENBQVk7UUFFdkIsU0FBUyxDQUFDLE1BQU0sQ0FDWixPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxFQUNoRCw2QkFBNkIsRUFDN0IsS0FBSyxFQUNMLE9BQU8sRUFDUCxPQUFPLEVBQ1AsRUFBRSxDQUNMLENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSSxtQkFBVyxHQUFsQixVQUNJLEtBQWEsRUFDYixPQUFlLEVBQ2YsT0FBbUIsRUFDbkIsRUFBYztRQURkLHdCQUFBLEVBQUEsV0FBbUI7UUFDbkIsbUJBQUEsRUFBQSxNQUFjO1FBRWQsT0FBTyxDQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxLQUFL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LE1BQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFFLENBQUEsQ0FDMUQsQ0FBQztJQUNOLENBQUM7SUFFRDs7T0FFRztJQUNILHdDQUFzQixHQUF0QjtRQUNJLE9BQU8sQ0FDSCxJQUFJLENBQUMsS0FBSyxHQUFHLG9CQUFvQjtZQUNqQyxJQUFJLENBQUMsT0FBTyxHQUFHLHNCQUFzQjtZQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUk7WUFDbkIsSUFBSSxDQUFDLEVBQUUsQ0FDVixDQUFDO0lBQ04sQ0FBQztJQUVPLDRCQUFVLEdBQWxCLFVBQW1CLElBQVksRUFBRSxNQUFrQjtRQUFsQix1QkFBQSxFQUFBLFVBQWtCO1FBQy9DLE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUNMLGNBQUM7QUFBRCxDQUFDLEFBcktELElBcUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt0dWlBc3NlcnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvY2xhc3Nlcyc7XG5pbXBvcnQge1R1aVRpbWVMaWtlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtUdWlUaW1lTW9kZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay90eXBlcyc7XG5pbXBvcnQge3BhZFN0YXJ0fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL2Zvcm1hdCc7XG5pbXBvcnQge2luUmFuZ2V9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWF0aCc7XG5cbmltcG9ydCB7XG4gICAgSE9VUlNfSU5fREFZLFxuICAgIE1JTExJU0VDT05EU19JTl9EQVksXG4gICAgTUlMTElTRUNPTkRTX0lOX0hPVVIsXG4gICAgTUlMTElTRUNPTkRTX0lOX01JTlVURSxcbiAgICBNSU5VVEVTX0lOX0hPVVIsXG4gICAgU0VDT05EU19JTl9NSU5VVEUsXG59IGZyb20gJy4vZGF0ZS10aW1lJztcblxuLyoqXG4gKiBJbW11dGFibGUgdGltZSBvYmplY3Qgd2l0aCBob3VycywgbWludXRlcywgc2Vjb25kcyBhbmQgbXNcbiAqL1xuZXhwb3J0IGNsYXNzIFR1aVRpbWUgaW1wbGVtZW50cyBUdWlUaW1lTGlrZSB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHJlYWRvbmx5IGhvdXJzOiBudW1iZXIsXG4gICAgICAgIHJlYWRvbmx5IG1pbnV0ZXM6IG51bWJlcixcbiAgICAgICAgcmVhZG9ubHkgc2Vjb25kczogbnVtYmVyID0gMCxcbiAgICAgICAgcmVhZG9ubHkgbXM6IG51bWJlciA9IDAsXG4gICAgKSB7XG4gICAgICAgIHR1aUFzc2VydC5hc3NlcnQoXG4gICAgICAgICAgICBUdWlUaW1lLmlzVmFsaWRUaW1lKGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzLCBtcyksXG4gICAgICAgICAgICAnVGltZSBtdXN0IGJlIHJlYWwsIGJ1dCBnb3Q6JyxcbiAgICAgICAgICAgIGhvdXJzLFxuICAgICAgICAgICAgbWludXRlcyxcbiAgICAgICAgICAgIHNlY29uZHMsXG4gICAgICAgICAgICBtcyxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgdGltZSBpcyB2YWxpZFxuICAgICAqL1xuICAgIHN0YXRpYyBpc1ZhbGlkVGltZShcbiAgICAgICAgaG91cnM6IG51bWJlcixcbiAgICAgICAgbWludXRlczogbnVtYmVyLFxuICAgICAgICBzZWNvbmRzOiBudW1iZXIgPSAwLFxuICAgICAgICBtczogbnVtYmVyID0gMCxcbiAgICApOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIE51bWJlci5pc0ludGVnZXIoaG91cnMpICYmXG4gICAgICAgICAgICBpblJhbmdlKGhvdXJzLCAwLCBIT1VSU19JTl9EQVkpICYmXG4gICAgICAgICAgICBOdW1iZXIuaXNJbnRlZ2VyKG1pbnV0ZXMpICYmXG4gICAgICAgICAgICBpblJhbmdlKG1pbnV0ZXMsIDAsIE1JTlVURVNfSU5fSE9VUikgJiZcbiAgICAgICAgICAgIE51bWJlci5pc0ludGVnZXIoc2Vjb25kcykgJiZcbiAgICAgICAgICAgIGluUmFuZ2Uoc2Vjb25kcywgMCwgU0VDT05EU19JTl9NSU5VVEUpICYmXG4gICAgICAgICAgICBOdW1iZXIuaXNJbnRlZ2VyKG1zKSAmJlxuICAgICAgICAgICAgaW5SYW5nZShtcywgMCwgMTAwMClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDdXJyZW50IFVUQyB0aW1lLlxuICAgICAqL1xuICAgIHN0YXRpYyBjdXJyZW50KCk6IFR1aVRpbWUge1xuICAgICAgICByZXR1cm4gVHVpVGltZS5mcm9tQWJzb2x1dGVNaWxsaXNlY29uZHMoRGF0ZS5ub3coKSAlIE1JTExJU0VDT05EU19JTl9EQVkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEN1cnJlbnQgdGltZSBpbiBsb2NhbCB0aW1lem9uZVxuICAgICAqL1xuICAgIHN0YXRpYyBjdXJyZW50TG9jYWwoKTogVHVpVGltZSB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xuXG4gICAgICAgIHJldHVybiBUdWlUaW1lLmZyb21BYnNvbHV0ZU1pbGxpc2Vjb25kcyhcbiAgICAgICAgICAgIChEYXRlLm5vdygpIC0gZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpICogTUlMTElTRUNPTkRTX0lOX01JTlVURSkgJVxuICAgICAgICAgICAgICAgIE1JTExJU0VDT05EU19JTl9EQVksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyBUdWlUaW1lIGZyb20gbWlsbGlzZWNvbmRzXG4gICAgICovXG4gICAgc3RhdGljIGZyb21BYnNvbHV0ZU1pbGxpc2Vjb25kcyhtaWxsaXNlY29uZHM6IG51bWJlcik6IFR1aVRpbWUge1xuICAgICAgICB0dWlBc3NlcnQuYXNzZXJ0KE51bWJlci5pc0ludGVnZXIobWlsbGlzZWNvbmRzKSk7XG4gICAgICAgIHR1aUFzc2VydC5hc3NlcnQoXG4gICAgICAgICAgICBpblJhbmdlKG1pbGxpc2Vjb25kcywgMCwgTUlMTElTRUNPTkRTX0lOX0RBWSksXG4gICAgICAgICAgICBgTWlsbGlzZWNvbmRzIG11c3QgYmUgYmVsb3cgJHtNSUxMSVNFQ09ORFNfSU5fREFZfSAobWlsbGlzZWNvbmRzIGluIGEgZGF5KS5gLFxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IGhvdXJzID0gTWF0aC5mbG9vcihtaWxsaXNlY29uZHMgLyBNSUxMSVNFQ09ORFNfSU5fSE9VUik7XG4gICAgICAgIGNvbnN0IG1pbnV0ZXMgPSBNYXRoLmZsb29yKFxuICAgICAgICAgICAgKG1pbGxpc2Vjb25kcyAlIE1JTExJU0VDT05EU19JTl9IT1VSKSAvIE1JTExJU0VDT05EU19JTl9NSU5VVEUsXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHNlY29uZHMgPVxuICAgICAgICAgICAgTWF0aC5mbG9vcihcbiAgICAgICAgICAgICAgICAoKG1pbGxpc2Vjb25kcyAlIE1JTExJU0VDT05EU19JTl9IT1VSKSAlIE1JTExJU0VDT05EU19JTl9NSU5VVEUpIC8gMTAwMCxcbiAgICAgICAgICAgICkgfHwgMDtcbiAgICAgICAgY29uc3QgbXMgPVxuICAgICAgICAgICAgTWF0aC5mbG9vcihcbiAgICAgICAgICAgICAgICAoKG1pbGxpc2Vjb25kcyAlIE1JTExJU0VDT05EU19JTl9IT1VSKSAlIE1JTExJU0VDT05EU19JTl9NSU5VVEUpICUgMTAwMCxcbiAgICAgICAgICAgICkgfHwgMDtcblxuICAgICAgICByZXR1cm4gbmV3IFR1aVRpbWUoaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMsIG1zKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYXJzZXMgc3RyaW5nIGludG8gVHVpVGltZSBvYmplY3RcbiAgICAgKi9cbiAgICBzdGF0aWMgZnJvbVN0cmluZyh0aW1lOiBzdHJpbmcpOiBUdWlUaW1lIHtcbiAgICAgICAgY29uc3QgaG91cnMgPSBOdW1iZXIodGltZS5zbGljZSgwLCAyKSk7XG4gICAgICAgIGNvbnN0IG1pbnV0ZXMgPSBOdW1iZXIodGltZS5zbGljZSgzLCA1KSk7XG4gICAgICAgIGNvbnN0IHNlY29uZHMgPSBOdW1iZXIodGltZS5zbGljZSg2LCA4KSkgfHwgMDtcbiAgICAgICAgY29uc3QgbXMgPSBOdW1iZXIodGltZS5zbGljZSg5LCAxMikpIHx8IDA7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBUdWlUaW1lKGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzLCBtcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgRGF0ZSBvYmplY3QgaW50byBUdWlUaW1lXG4gICAgICogQHBhcmFtIGRhdGVcbiAgICAgKi9cbiAgICBzdGF0aWMgZnJvbUxvY2FsTmF0aXZlRGF0ZShkYXRlOiBEYXRlKTogVHVpVGltZSB7XG4gICAgICAgIHJldHVybiBuZXcgVHVpVGltZShcbiAgICAgICAgICAgIGRhdGUuZ2V0SG91cnMoKSxcbiAgICAgICAgICAgIGRhdGUuZ2V0TWludXRlcygpLFxuICAgICAgICAgICAgZGF0ZS5nZXRTZWNvbmRzKCksXG4gICAgICAgICAgICBkYXRlLmdldE1pbGxpc2Vjb25kcygpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNoaWZ0cyB0aW1lIGJ5IGhvdXJzIGFuZCBtaW51dGVzXG4gICAgICovXG4gICAgc2hpZnQoe2hvdXJzID0gMCwgbWludXRlcyA9IDAsIHNlY29uZHMgPSAwLCBtcyA9IDB9OiBUdWlUaW1lTGlrZSk6IFR1aVRpbWUge1xuICAgICAgICBjb25zdCBuZXdNcyA9ICgxMDAwICsgdGhpcy5tcyArIChtcyAlIDEwMDApKSAlIDEwMDA7XG5cbiAgICAgICAgY29uc3Qgc2Vjb25kc0luTXMgPSBtcyA8IDAgPyBNYXRoLmNlaWwobXMgLyAxMDAwKSA6IE1hdGguZmxvb3IobXMgLyAxMDAwKTtcbiAgICAgICAgY29uc3Qgc2Vjb25kc1RvQWRkID0gc2Vjb25kc0luTXMgKyBzZWNvbmRzO1xuICAgICAgICBjb25zdCBuZXdTZWNvbmRzID0gKDYwICsgdGhpcy5zZWNvbmRzICsgKHNlY29uZHNUb0FkZCAlIDYwKSkgJSA2MDtcblxuICAgICAgICBjb25zdCBtaW51dGVzSW5TZWNvbmRzID1cbiAgICAgICAgICAgIHNlY29uZHNUb0FkZCA8IDBcbiAgICAgICAgICAgICAgICA/IE1hdGguY2VpbChzZWNvbmRzVG9BZGQgLyA2MClcbiAgICAgICAgICAgICAgICA6IE1hdGguZmxvb3Ioc2Vjb25kc1RvQWRkIC8gNjApO1xuICAgICAgICBjb25zdCBtaW51dGVzVG9BZGQgPSBtaW51dGVzSW5TZWNvbmRzICsgbWludXRlcztcbiAgICAgICAgY29uc3QgbmV3TWludXRlcyA9ICg2MCArIHRoaXMubWludXRlcyArIChtaW51dGVzVG9BZGQgJSA2MCkpICUgNjA7XG5cbiAgICAgICAgY29uc3QgaG91cnNJbk1pbnV0ZXMgPVxuICAgICAgICAgICAgbWludXRlc1RvQWRkIDwgMFxuICAgICAgICAgICAgICAgID8gTWF0aC5jZWlsKG1pbnV0ZXNUb0FkZCAvIDYwKVxuICAgICAgICAgICAgICAgIDogTWF0aC5mbG9vcihtaW51dGVzVG9BZGQgLyA2MCk7XG4gICAgICAgIGNvbnN0IGhvdXJzVG9BZGQgPSBob3Vyc0luTWludXRlcyArIGhvdXJzO1xuICAgICAgICBjb25zdCBuZXdIb3VycyA9ICgyNCArIHRoaXMuaG91cnMgKyAoaG91cnNUb0FkZCAlIDI0KSkgJSAyNDtcblxuICAgICAgICByZXR1cm4gbmV3IFR1aVRpbWUobmV3SG91cnMsIG5ld01pbnV0ZXMsIG5ld1NlY29uZHMsIG5ld01zKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBUdWlUaW1lIHRvIHN0cmluZ1xuICAgICAqL1xuICAgIHRvU3RyaW5nKG1vZGU/OiBUdWlUaW1lTW9kZSk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IG5lZWRBZGRNcyA9IG1vZGUgPT09ICdISDpNTTpTUy5NU1MnIHx8ICghbW9kZSAmJiB0aGlzLm1zID4gMCk7XG4gICAgICAgIGNvbnN0IG5lZWRBZGRTZWNvbmRzID1cbiAgICAgICAgICAgIG5lZWRBZGRNcyB8fCBtb2RlID09PSAnSEg6TU06U1MnIHx8ICghbW9kZSAmJiB0aGlzLnNlY29uZHMgPiAwKTtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgYCR7dGhpcy5mb3JtYXRUaW1lKHRoaXMuaG91cnMpfToke3RoaXMuZm9ybWF0VGltZSh0aGlzLm1pbnV0ZXMpfWAgK1xuICAgICAgICAgICAgYCR7bmVlZEFkZFNlY29uZHMgPyBgOiR7dGhpcy5mb3JtYXRUaW1lKHRoaXMuc2Vjb25kcyl9YCA6ICcnfWAgK1xuICAgICAgICAgICAgYCR7bmVlZEFkZE1zID8gYC4ke3RoaXMuZm9ybWF0VGltZSh0aGlzLm1zLCAzKX1gIDogJyd9YFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIFR1aVRpbWUgdG8gbWlsbGlzZWNvbmRzXG4gICAgICovXG4gICAgdG9BYnNvbHV0ZU1pbGxpc2Vjb25kcygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5ob3VycyAqIE1JTExJU0VDT05EU19JTl9IT1VSICtcbiAgICAgICAgICAgIHRoaXMubWludXRlcyAqIE1JTExJU0VDT05EU19JTl9NSU5VVEUgK1xuICAgICAgICAgICAgdGhpcy5zZWNvbmRzICogMTAwMCArXG4gICAgICAgICAgICB0aGlzLm1zXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb3JtYXRUaW1lKHRpbWU6IG51bWJlciwgZGlnaXRzOiBudW1iZXIgPSAyKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHBhZFN0YXJ0KFN0cmluZyh0aW1lKSwgZGlnaXRzLCAnMCcpO1xuICAgIH1cbn1cbiJdfQ==
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvZGF0ZS10aW1lLyIsInNvdXJjZXMiOlsidGltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFHaEQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUVqRCxPQUFPLEVBQ0gsWUFBWSxFQUNaLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIsc0JBQXNCLEVBQ3RCLGVBQWUsRUFDZixpQkFBaUIsR0FDcEIsTUFBTSxhQUFhLENBQUM7QUFFckI7O0dBRUc7QUFDSDtJQUNJLGlCQUNhLEtBQWEsRUFDYixPQUFlLEVBQ2YsT0FBbUIsRUFDbkIsRUFBYztRQURkLHdCQUFBLEVBQUEsV0FBbUI7UUFDbkIsbUJBQUEsRUFBQSxNQUFjO1FBSGQsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ25CLE9BQUUsR0FBRixFQUFFLENBQVk7UUFFdkIsU0FBUyxDQUFDLE1BQU0sQ0FDWixPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxFQUNoRCw2QkFBNkIsRUFDN0IsS0FBSyxFQUNMLE9BQU8sRUFDUCxPQUFPLEVBQ1AsRUFBRSxDQUNMLENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSSxtQkFBVyxHQUFsQixVQUNJLEtBQWEsRUFDYixPQUFlLEVBQ2YsT0FBbUIsRUFDbkIsRUFBYztRQURkLHdCQUFBLEVBQUEsV0FBbUI7UUFDbkIsbUJBQUEsRUFBQSxNQUFjO1FBRWQsT0FBTyxDQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxLQUFL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LE1BQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFFLENBQUEsQ0FDMUQsQ0FBQztJQUNOLENBQUM7SUFFRCx5QkFBTyxHQUFQO1FBQ0ksT0FBTyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGtCQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBcEIsVUFBcUIsSUFBWTtRQUM3QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsd0NBQXNCLEdBQXRCO1FBQ0ksT0FBTyxDQUNILElBQUksQ0FBQyxLQUFLLEdBQUcsb0JBQW9CO1lBQ2pDLElBQUksQ0FBQyxPQUFPLEdBQUcsc0JBQXNCO1lBQ3JDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSTtZQUNuQixJQUFJLENBQUMsRUFBRSxDQUNWLENBQUM7SUFDTixDQUFDO0lBRU8sNEJBQVUsR0FBbEIsVUFBbUIsSUFBWSxFQUFFLE1BQWtCO1FBQWxCLHVCQUFBLEVBQUEsVUFBa0I7UUFDL0MsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBQ0wsY0FBQztBQUFELENBQUMsQUFsTEQsSUFrTEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3R1aUFzc2VydH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jbGFzc2VzJztcbmltcG9ydCB7VHVpVGltZUxpa2V9IGZyb20gJ0B0YWlnYS11aS9jZGsvaW50ZXJmYWNlcyc7XG5pbXBvcnQge1R1aVRpbWVNb2RlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3R5cGVzJztcbmltcG9ydCB7cGFkU3RhcnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZm9ybWF0JztcbmltcG9ydCB7aW5SYW5nZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9tYXRoJztcblxuaW1wb3J0IHtcbiAgICBIT1VSU19JTl9EQVksXG4gICAgTUlMTElTRUNPTkRTX0lOX0RBWSxcbiAgICBNSUxMSVNFQ09ORFNfSU5fSE9VUixcbiAgICBNSUxMSVNFQ09ORFNfSU5fTUlOVVRFLFxuICAgIE1JTlVURVNfSU5fSE9VUixcbiAgICBTRUNPTkRTX0lOX01JTlVURSxcbn0gZnJvbSAnLi9kYXRlLXRpbWUnO1xuXG4vKipcbiAqIEltbXV0YWJsZSB0aW1lIG9iamVjdCB3aXRoIGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzIGFuZCBtc1xuICovXG5leHBvcnQgY2xhc3MgVHVpVGltZSBpbXBsZW1lbnRzIFR1aVRpbWVMaWtlIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcmVhZG9ubHkgaG91cnM6IG51bWJlcixcbiAgICAgICAgcmVhZG9ubHkgbWludXRlczogbnVtYmVyLFxuICAgICAgICByZWFkb25seSBzZWNvbmRzOiBudW1iZXIgPSAwLFxuICAgICAgICByZWFkb25seSBtczogbnVtYmVyID0gMCxcbiAgICApIHtcbiAgICAgICAgdHVpQXNzZXJ0LmFzc2VydChcbiAgICAgICAgICAgIFR1aVRpbWUuaXNWYWxpZFRpbWUoaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMsIG1zKSxcbiAgICAgICAgICAgICdUaW1lIG11c3QgYmUgcmVhbCwgYnV0IGdvdDonLFxuICAgICAgICAgICAgaG91cnMsXG4gICAgICAgICAgICBtaW51dGVzLFxuICAgICAgICAgICAgc2Vjb25kcyxcbiAgICAgICAgICAgIG1zLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiB0aW1lIGlzIHZhbGlkXG4gICAgICovXG4gICAgc3RhdGljIGlzVmFsaWRUaW1lKFxuICAgICAgICBob3VyczogbnVtYmVyLFxuICAgICAgICBtaW51dGVzOiBudW1iZXIsXG4gICAgICAgIHNlY29uZHM6IG51bWJlciA9IDAsXG4gICAgICAgIG1zOiBudW1iZXIgPSAwLFxuICAgICk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgTnVtYmVyLmlzSW50ZWdlcihob3VycykgJiZcbiAgICAgICAgICAgIGluUmFuZ2UoaG91cnMsIDAsIEhPVVJTX0lOX0RBWSkgJiZcbiAgICAgICAgICAgIE51bWJlci5pc0ludGVnZXIobWludXRlcykgJiZcbiAgICAgICAgICAgIGluUmFuZ2UobWludXRlcywgMCwgTUlOVVRFU19JTl9IT1VSKSAmJlxuICAgICAgICAgICAgTnVtYmVyLmlzSW50ZWdlcihzZWNvbmRzKSAmJlxuICAgICAgICAgICAgaW5SYW5nZShzZWNvbmRzLCAwLCBTRUNPTkRTX0lOX01JTlVURSkgJiZcbiAgICAgICAgICAgIE51bWJlci5pc0ludGVnZXIobXMpICYmXG4gICAgICAgICAgICBpblJhbmdlKG1zLCAwLCAxMDAwKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEN1cnJlbnQgVVRDIHRpbWUuXG4gICAgICovXG4gICAgc3RhdGljIGN1cnJlbnQoKTogVHVpVGltZSB7XG4gICAgICAgIHJldHVybiBUdWlUaW1lLmZyb21BYnNvbHV0ZU1pbGxpc2Vjb25kcyhEYXRlLm5vdygpICUgTUlMTElTRUNPTkRTX0lOX0RBWSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3VycmVudCB0aW1lIGluIGxvY2FsIHRpbWV6b25lXG4gICAgICovXG4gICAgc3RhdGljIGN1cnJlbnRMb2NhbCgpOiBUdWlUaW1lIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XG5cbiAgICAgICAgcmV0dXJuIFR1aVRpbWUuZnJvbUFic29sdXRlTWlsbGlzZWNvbmRzKFxuICAgICAgICAgICAgKERhdGUubm93KCkgLSBkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCkgKiBNSUxMSVNFQ09ORFNfSU5fTUlOVVRFKSAlXG4gICAgICAgICAgICAgICAgTUlMTElTRUNPTkRTX0lOX0RBWSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIFR1aVRpbWUgZnJvbSBtaWxsaXNlY29uZHNcbiAgICAgKi9cbiAgICBzdGF0aWMgZnJvbUFic29sdXRlTWlsbGlzZWNvbmRzKG1pbGxpc2Vjb25kczogbnVtYmVyKTogVHVpVGltZSB7XG4gICAgICAgIHR1aUFzc2VydC5hc3NlcnQoTnVtYmVyLmlzSW50ZWdlcihtaWxsaXNlY29uZHMpKTtcbiAgICAgICAgdHVpQXNzZXJ0LmFzc2VydChcbiAgICAgICAgICAgIGluUmFuZ2UobWlsbGlzZWNvbmRzLCAwLCBNSUxMSVNFQ09ORFNfSU5fREFZKSxcbiAgICAgICAgICAgIGBNaWxsaXNlY29uZHMgbXVzdCBiZSBiZWxvdyAke01JTExJU0VDT05EU19JTl9EQVl9IChtaWxsaXNlY29uZHMgaW4gYSBkYXkpLmAsXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgaG91cnMgPSBNYXRoLmZsb29yKG1pbGxpc2Vjb25kcyAvIE1JTExJU0VDT05EU19JTl9IT1VSKTtcbiAgICAgICAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3IoXG4gICAgICAgICAgICAobWlsbGlzZWNvbmRzICUgTUlMTElTRUNPTkRTX0lOX0hPVVIpIC8gTUlMTElTRUNPTkRTX0lOX01JTlVURSxcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3Qgc2Vjb25kcyA9XG4gICAgICAgICAgICBNYXRoLmZsb29yKFxuICAgICAgICAgICAgICAgICgobWlsbGlzZWNvbmRzICUgTUlMTElTRUNPTkRTX0lOX0hPVVIpICUgTUlMTElTRUNPTkRTX0lOX01JTlVURSkgLyAxMDAwLFxuICAgICAgICAgICAgKSB8fCAwO1xuICAgICAgICBjb25zdCBtcyA9XG4gICAgICAgICAgICBNYXRoLmZsb29yKFxuICAgICAgICAgICAgICAgICgobWlsbGlzZWNvbmRzICUgTUlMTElTRUNPTkRTX0lOX0hPVVIpICUgTUlMTElTRUNPTkRTX0lOX01JTlVURSkgJSAxMDAwLFxuICAgICAgICAgICAgKSB8fCAwO1xuXG4gICAgICAgIHJldHVybiBuZXcgVHVpVGltZShob3VycywgbWludXRlcywgc2Vjb25kcywgbXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhcnNlcyBzdHJpbmcgaW50byBUdWlUaW1lIG9iamVjdFxuICAgICAqL1xuICAgIHN0YXRpYyBmcm9tU3RyaW5nKHRpbWU6IHN0cmluZyk6IFR1aVRpbWUge1xuICAgICAgICBjb25zdCBob3VycyA9IE51bWJlcih0aW1lLnNsaWNlKDAsIDIpKTtcbiAgICAgICAgY29uc3QgbWludXRlcyA9IE51bWJlcih0aW1lLnNsaWNlKDMsIDUpKTtcbiAgICAgICAgY29uc3Qgc2Vjb25kcyA9IE51bWJlcih0aW1lLnNsaWNlKDYsIDgpKSB8fCAwO1xuICAgICAgICBjb25zdCBtcyA9IE51bWJlcih0aW1lLnNsaWNlKDksIDEyKSkgfHwgMDtcblxuICAgICAgICByZXR1cm4gbmV3IFR1aVRpbWUoaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMsIG1zKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBEYXRlIG9iamVjdCBpbnRvIFR1aVRpbWVcbiAgICAgKiBAcGFyYW0gZGF0ZVxuICAgICAqL1xuICAgIHN0YXRpYyBmcm9tTG9jYWxOYXRpdmVEYXRlKGRhdGU6IERhdGUpOiBUdWlUaW1lIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUdWlUaW1lKFxuICAgICAgICAgICAgZGF0ZS5nZXRIb3VycygpLFxuICAgICAgICAgICAgZGF0ZS5nZXRNaW51dGVzKCksXG4gICAgICAgICAgICBkYXRlLmdldFNlY29uZHMoKSxcbiAgICAgICAgICAgIGRhdGUuZ2V0TWlsbGlzZWNvbmRzKCksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hpZnRzIHRpbWUgYnkgaG91cnMgYW5kIG1pbnV0ZXNcbiAgICAgKi9cbiAgICBzaGlmdCh7aG91cnMgPSAwLCBtaW51dGVzID0gMCwgc2Vjb25kcyA9IDAsIG1zID0gMH06IFR1aVRpbWVMaWtlKTogVHVpVGltZSB7XG4gICAgICAgIGNvbnN0IG5ld01zID0gKDEwMDAgKyB0aGlzLm1zICsgKG1zICUgMTAwMCkpICUgMTAwMDtcblxuICAgICAgICBjb25zdCBzZWNvbmRzSW5NcyA9IG1zIDwgMCA/IE1hdGguY2VpbChtcyAvIDEwMDApIDogTWF0aC5mbG9vcihtcyAvIDEwMDApO1xuICAgICAgICBjb25zdCBzZWNvbmRzVG9BZGQgPSBzZWNvbmRzSW5NcyArIHNlY29uZHM7XG4gICAgICAgIGNvbnN0IG5ld1NlY29uZHMgPSAoNjAgKyB0aGlzLnNlY29uZHMgKyAoc2Vjb25kc1RvQWRkICUgNjApKSAlIDYwO1xuXG4gICAgICAgIGNvbnN0IG1pbnV0ZXNJblNlY29uZHMgPVxuICAgICAgICAgICAgc2Vjb25kc1RvQWRkIDwgMFxuICAgICAgICAgICAgICAgID8gTWF0aC5jZWlsKHNlY29uZHNUb0FkZCAvIDYwKVxuICAgICAgICAgICAgICAgIDogTWF0aC5mbG9vcihzZWNvbmRzVG9BZGQgLyA2MCk7XG4gICAgICAgIGNvbnN0IG1pbnV0ZXNUb0FkZCA9IG1pbnV0ZXNJblNlY29uZHMgKyBtaW51dGVzO1xuICAgICAgICBjb25zdCBuZXdNaW51dGVzID0gKDYwICsgdGhpcy5taW51dGVzICsgKG1pbnV0ZXNUb0FkZCAlIDYwKSkgJSA2MDtcblxuICAgICAgICBjb25zdCBob3Vyc0luTWludXRlcyA9XG4gICAgICAgICAgICBtaW51dGVzVG9BZGQgPCAwXG4gICAgICAgICAgICAgICAgPyBNYXRoLmNlaWwobWludXRlc1RvQWRkIC8gNjApXG4gICAgICAgICAgICAgICAgOiBNYXRoLmZsb29yKG1pbnV0ZXNUb0FkZCAvIDYwKTtcbiAgICAgICAgY29uc3QgaG91cnNUb0FkZCA9IGhvdXJzSW5NaW51dGVzICsgaG91cnM7XG4gICAgICAgIGNvbnN0IG5ld0hvdXJzID0gKDI0ICsgdGhpcy5ob3VycyArIChob3Vyc1RvQWRkICUgMjQpKSAlIDI0O1xuXG4gICAgICAgIHJldHVybiBuZXcgVHVpVGltZShuZXdIb3VycywgbmV3TWludXRlcywgbmV3U2Vjb25kcywgbmV3TXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIFR1aVRpbWUgdG8gc3RyaW5nXG4gICAgICovXG4gICAgdG9TdHJpbmcobW9kZT86IFR1aVRpbWVNb2RlKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgbmVlZEFkZE1zID0gbW9kZSA9PT0gJ0hIOk1NOlNTLk1TUycgfHwgKCFtb2RlICYmIHRoaXMubXMgPiAwKTtcbiAgICAgICAgY29uc3QgbmVlZEFkZFNlY29uZHMgPVxuICAgICAgICAgICAgbmVlZEFkZE1zIHx8IG1vZGUgPT09ICdISDpNTTpTUycgfHwgKCFtb2RlICYmIHRoaXMuc2Vjb25kcyA+IDApO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBgJHt0aGlzLmZvcm1hdFRpbWUodGhpcy5ob3Vycyl9OiR7dGhpcy5mb3JtYXRUaW1lKHRoaXMubWludXRlcyl9YCArXG4gICAgICAgICAgICBgJHtuZWVkQWRkU2Vjb25kcyA/IGA6JHt0aGlzLmZvcm1hdFRpbWUodGhpcy5zZWNvbmRzKX1gIDogJyd9YCArXG4gICAgICAgICAgICBgJHtuZWVkQWRkTXMgPyBgLiR7dGhpcy5mb3JtYXRUaW1lKHRoaXMubXMsIDMpfWAgOiAnJ31gXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgdmFsdWVPZigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy50b0Fic29sdXRlTWlsbGlzZWNvbmRzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgcHJpbWl0aXZlIHZhbHVlIG9mIHRoZSBnaXZlbiBEYXRlIG9iamVjdC5cbiAgICAgKiBEZXBlbmRpbmcgb24gdGhlIGFyZ3VtZW50LCB0aGUgbWV0aG9kIGNhbiByZXR1cm4gZWl0aGVyIGEgc3RyaW5nIG9yIGEgbnVtYmVyLlxuICAgICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRGF0ZS9AQHRvUHJpbWl0aXZlXG4gICAgICovXG4gICAgW1N5bWJvbC50b1ByaW1pdGl2ZV0oaGludDogc3RyaW5nKTogc3RyaW5nIHwgbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIERhdGUucHJvdG90eXBlW1N5bWJvbC50b1ByaW1pdGl2ZV0uY2FsbCh0aGlzLCBoaW50KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBUdWlUaW1lIHRvIG1pbGxpc2Vjb25kc1xuICAgICAqL1xuICAgIHRvQWJzb2x1dGVNaWxsaXNlY29uZHMoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuaG91cnMgKiBNSUxMSVNFQ09ORFNfSU5fSE9VUiArXG4gICAgICAgICAgICB0aGlzLm1pbnV0ZXMgKiBNSUxMSVNFQ09ORFNfSU5fTUlOVVRFICtcbiAgICAgICAgICAgIHRoaXMuc2Vjb25kcyAqIDEwMDAgK1xuICAgICAgICAgICAgdGhpcy5tc1xuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9ybWF0VGltZSh0aW1lOiBudW1iZXIsIGRpZ2l0czogbnVtYmVyID0gMik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBwYWRTdGFydChTdHJpbmcodGltZSksIGRpZ2l0cywgJzAnKTtcbiAgICB9XG59XG4iXX0=
@@ -130,7 +130,7 @@ var TuiYear = /** @class */ (function () {
130
130
  var year = _a.year;
131
131
  return this.year > year;
132
132
  };
133
- // TODO: Consider removing `backwards` option
133
+ // TODO: 3.0 Consider removing `backwards` option
134
134
  /**
135
135
  * Immutably offsets year
136
136
  */
@@ -148,10 +148,21 @@ var TuiYear = /** @class */ (function () {
148
148
  TuiYear.prototype.toString = function () {
149
149
  return this.formattedYear;
150
150
  };
151
+ TuiYear.prototype.valueOf = function () {
152
+ return this.year;
153
+ };
154
+ /**
155
+ * Returns the primitive value of the given Date object.
156
+ * Depending on the argument, the method can return either a string or a number.
157
+ * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/@@toPrimitive
158
+ */
159
+ TuiYear.prototype[Symbol.toPrimitive] = function (hint) {
160
+ return Date.prototype[Symbol.toPrimitive].call(this, hint);
161
+ };
151
162
  TuiYear.prototype.toJSON = function () {
152
163
  return this.formattedYear;
153
164
  };
154
165
  return TuiYear;
155
166
  }());
156
167
  export { TuiYear };
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWVhci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvZGF0ZS10aW1lLyIsInNvdXJjZXMiOlsieWVhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFaEQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUV2RSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixZQUFZLEVBQ1osUUFBUSxFQUNSLFFBQVEsR0FDWCxNQUFNLGFBQWEsQ0FBQztBQUVyQjs7O0dBR0c7QUFDSDtJQUNJLGlCQUFxQixJQUFZO1FBQVosU0FBSSxHQUFKLElBQUksQ0FBUTtRQUM3QixTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxtQkFBVyxHQUFsQixVQUFtQixJQUFZO1FBQzNCLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVEOztPQUVHO0lBQ0ksa0JBQVUsR0FBakIsVUFBa0IsSUFBWTtRQUMxQixTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUU1QyxPQUFPLElBQUksR0FBRyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSw0QkFBb0IsR0FBM0IsVUFBNEIsSUFB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QUksR0FBRyxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUVELDZDQUE2QztJQUM3Qzs7T0FFRztJQUNILHdCQUFNLEdBQU4sVUFBTyxFQUF1QixFQUFFLFNBQTBCO1lBQWxELFlBQVEsRUFBUiw2QkFBUTtRQUFnQiwwQkFBQSxFQUFBLGlCQUEwQjtRQUN0RCxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUV6QyxJQUFJLFNBQVMsRUFBRTtZQUNYLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNkO1FBRUQsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFFcEMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFFbEQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsMEJBQVEsR0FBUjtRQUNJLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM5QixDQUFDO0lBRUQsd0JBQU0sR0FBTjtRQUNJLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM5QixDQUFDO0lBQ0wsY0FBQztBQUFELENBQUMsQUFwSkQsSUFvSkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3R1aUFzc2VydH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jbGFzc2VzJztcbmltcG9ydCB7VHVpWWVhckxpa2V9IGZyb20gJ0B0YWlnYS11aS9jZGsvaW50ZXJmYWNlcyc7XG5pbXBvcnQge3BhZFN0YXJ0fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL2Zvcm1hdCc7XG5pbXBvcnQge2luUmFuZ2UsIG5vcm1hbGl6ZVRvSW50TnVtYmVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21hdGgnO1xuXG5pbXBvcnQge1xuICAgIERBWVNfSU5fTEVBUF9ZRUFSLFxuICAgIERBWVNfSU5fTk9STUFMX1lFQVIsXG4gICAgREFZU19JTl9XRUVLLFxuICAgIE1BWF9ZRUFSLFxuICAgIE1JTl9ZRUFSLFxufSBmcm9tICcuL2RhdGUtdGltZSc7XG5cbi8qKlxuICogSW1tdXRhYmxlIHllYXIgb2JqZWN0XG4gKiBAbm9zaWRlZWZmZWN0c1xuICovXG5leHBvcnQgY2xhc3MgVHVpWWVhciBpbXBsZW1lbnRzIFR1aVllYXJMaWtlIHtcbiAgICBjb25zdHJ1Y3RvcihyZWFkb25seSB5ZWFyOiBudW1iZXIpIHtcbiAgICAgICAgdHVpQXNzZXJ0LmFzc2VydChUdWlZZWFyLmlzVmFsaWRZZWFyKHllYXIpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgeWVhciBmb3IgdmFsaWRpdHlcbiAgICAgKi9cbiAgICBzdGF0aWMgaXNWYWxpZFllYXIoeWVhcjogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBOdW1iZXIuaXNJbnRlZ2VyKHllYXIpICYmIGluUmFuZ2UoeWVhciwgTUlOX1lFQVIsIE1BWF9ZRUFSICsgMSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgcGFzc2VkIHllYXIgaXMgYSBsZWFwIHllYXJcbiAgICAgKi9cbiAgICBzdGF0aWMgaXNMZWFwWWVhcih5ZWFyOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgdHVpQXNzZXJ0LmFzc2VydChUdWlZZWFyLmlzVmFsaWRZZWFyKHllYXIpKTtcblxuICAgICAgICByZXR1cm4geWVhciAlIDQwMCA9PT0gMCB8fCAoeWVhciAlIDQgPT09IDAgJiYgeWVhciAlIDEwMCAhPT0gMCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhbW91bnQgb2YgbGVhcCB5ZWFycyBmcm9tIHllYXIgMCB0byB0aGUgcGFzc2VkIG9uZVxuICAgICAqL1xuICAgIHN0YXRpYyBnZXRBYnNvbHV0ZUxlYXBZZWFycyh5ZWFyOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICB0dWlBc3NlcnQuYXNzZXJ0KFR1aVllYXIuaXNWYWxpZFllYXIoeWVhcikpO1xuXG4gICAgICAgIHJldHVybiBNYXRoLmNlaWwoeWVhciAvIDQwMCkgKyAoTWF0aC5jZWlsKHllYXIgLyA0KSAtIE1hdGguY2VpbCh5ZWFyIC8gMTAwKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgRE9OVCBVU0UgSVQgKHdpbGwgYmUgZGVsZXRlZCBzb29uKVxuICAgICAqXG4gICAgICogUmV0dXJucyBkYXkgb2Ygd2VlayBvZmZzZXQgb2YgdGhlIGJlZ2lubmluZyBvZiB0aGUgcGFzc2VkIHllYXJcbiAgICAgKlxuICAgICAqIEBwYXJhbSB5ZWFyXG4gICAgICogQHBhcmFtIGFic29sdXRlTGVhcFllYXJzIGFtb3VudCBvZiBsZWFwIHllYXJzIHByaW9yIHRvIHRoZSBwYXNzZWQgb25lXG4gICAgICogQHJldHVybiBvZmZzZXQgaW4gZGF5c1xuICAgICAqL1xuICAgIHN0YXRpYyBnZXRZZWFyU3RhcnREYXlzT2Zmc2V0KHllYXI6IG51bWJlciwgYWJzb2x1dGVMZWFwWWVhcnM6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHR1aUFzc2VydC5hc3NlcnQoVHVpWWVhci5pc1ZhbGlkWWVhcih5ZWFyKSk7XG4gICAgICAgIHR1aUFzc2VydC5hc3NlcnQoTnVtYmVyLmlzSW50ZWdlcihhYnNvbHV0ZUxlYXBZZWFycykpO1xuICAgICAgICB0dWlBc3NlcnQuYXNzZXJ0KHllYXIgPj0gYWJzb2x1dGVMZWFwWWVhcnMpO1xuICAgICAgICB0dWlBc3NlcnQuYXNzZXJ0KGFic29sdXRlTGVhcFllYXJzID49IDApO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAoYWJzb2x1dGVMZWFwWWVhcnMgKiBEQVlTX0lOX0xFQVBfWUVBUiArXG4gICAgICAgICAgICAgICAgKHllYXIgLSBhYnNvbHV0ZUxlYXBZZWFycykgKiBEQVlTX0lOX05PUk1BTF9ZRUFSICtcbiAgICAgICAgICAgICAgICA1KSAlXG4gICAgICAgICAgICBEQVlTX0lOX1dFRUtcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgbGVuZ3RoQmV0d2Vlbihmcm9tOiBUdWlZZWFyLCB0bzogVHVpWWVhcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0by55ZWFyIC0gZnJvbS55ZWFyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE5vcm1hbGl6ZXMgeWVhciBieSBjbGFtcGluZyBpdCBiZXR3ZWVuIG1pbiBhbmQgbWF4IHllYXJzXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHN0YXRpYyBub3JtYWxpemVZZWFyUGFydCh5ZWFyOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gbm9ybWFsaXplVG9JbnROdW1iZXIoeWVhciwgTUlOX1lFQVIsIE1BWF9ZRUFSKTtcbiAgICB9XG5cbiAgICBnZXQgZm9ybWF0dGVkWWVhcigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gcGFkU3RhcnQoU3RyaW5nKHRoaXMueWVhciksIDQsICcwJyk7XG4gICAgfVxuXG4gICAgZ2V0IGlzTGVhcFllYXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBUdWlZZWFyLmlzTGVhcFllYXIodGhpcy55ZWFyKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFtb3VudCBvZiBsZWFwIHllYXJzIGZyb20geWVhciAwIHRvIGN1cnJlbnRcbiAgICAgKi9cbiAgICBnZXQgYWJzb2x1dGVMZWFwWWVhcnMoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIFR1aVllYXIuZ2V0QWJzb2x1dGVMZWFwWWVhcnModGhpcy55ZWFyKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBET05UIFVTRSBJVCAod2lsbCBiZSBkZWxldGVkIHNvb24pXG4gICAgICpcbiAgICAgKiBSZXR1cm5zIGRheSBvZiB3ZWVrIG9mZnNldCBvZiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBjdXJyZW50IHllYXJcbiAgICAgKi9cbiAgICBnZXQgeWVhclN0YXJ0RGF5c09mZnNldCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gVHVpWWVhci5nZXRZZWFyU3RhcnREYXlzT2Zmc2V0KHRoaXMueWVhciwgdGhpcy5hYnNvbHV0ZUxlYXBZZWFycyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGFzc2VkIHllYXIgaXMgYWZ0ZXIgY3VycmVudFxuICAgICAqL1xuICAgIHllYXJCZWZvcmUoe3llYXJ9OiBUdWlZZWFyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnllYXIgPCB5ZWFyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhc3NlZCB5ZWFyIGlzIHRoZSBzYW1lIG9yIGFmdGVyIGN1cnJlbnRcbiAgICAgKi9cbiAgICB5ZWFyU2FtZU9yQmVmb3JlKHt5ZWFyfTogVHVpWWVhcik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy55ZWFyIDw9IHllYXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGFzc2VkIHllYXIgaXMgdGhlIHNhbWUgYXMgY3VycmVudFxuICAgICAqL1xuICAgIHllYXJTYW1lKHt5ZWFyfTogVHVpWWVhcik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy55ZWFyID09PSB5ZWFyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhc3NlZCB5ZWFyIGlzIGVpdGhlciB0aGUgc2FtZSBvZiBiZWZvcmUgdGhlIGN1cnJlbnRcbiAgICAgKi9cbiAgICB5ZWFyU2FtZU9yQWZ0ZXIoe3llYXJ9OiBUdWlZZWFyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnllYXIgPj0geWVhcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYXNzZWQgeWVhciBpcyBiZWZvcmUgY3VycmVudFxuICAgICAqL1xuICAgIHllYXJBZnRlcih7eWVhcn06IFR1aVllYXIpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueWVhciA+IHllYXI7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogQ29uc2lkZXIgcmVtb3ZpbmcgYGJhY2t3YXJkc2Agb3B0aW9uXG4gICAgLyoqXG4gICAgICogSW1tdXRhYmx5IG9mZnNldHMgeWVhclxuICAgICAqL1xuICAgIGFwcGVuZCh7eWVhciA9IDB9OiBUdWlZZWFyTGlrZSwgYmFja3dhcmRzOiBib29sZWFuID0gZmFsc2UpOiBUdWlZZWFyIHtcbiAgICAgICAgdHVpQXNzZXJ0LmFzc2VydChOdW1iZXIuaXNJbnRlZ2VyKHllYXIpKTtcblxuICAgICAgICBpZiAoYmFja3dhcmRzKSB7XG4gICAgICAgICAgICB5ZWFyICo9IC0xO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVzdWx0WWVhciA9IHRoaXMueWVhciArIHllYXI7XG5cbiAgICAgICAgdHVpQXNzZXJ0LmFzc2VydChUdWlZZWFyLmlzVmFsaWRZZWFyKHJlc3VsdFllYXIpKTtcblxuICAgICAgICByZXR1cm4gbmV3IFR1aVllYXIocmVzdWx0WWVhcik7XG4gICAgfVxuXG4gICAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0dGVkWWVhcjtcbiAgICB9XG5cbiAgICB0b0pTT04oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0dGVkWWVhcjtcbiAgICB9XG59XG4iXX0=
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWVhci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvZGF0ZS10aW1lLyIsInNvdXJjZXMiOlsieWVhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFaEQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUV2RSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixZQUFZLEVBQ1osUUFBUSxFQUNSLFFBQVEsR0FDWCxNQUFNLGFBQWEsQ0FBQztBQUVyQjs7O0dBR0c7QUFDSDtJQUNJLGlCQUFxQixJQUFZO1FBQVosU0FBSSxHQUFKLElBQUksQ0FBUTtRQUM3QixTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxtQkFBVyxHQUFsQixVQUFtQixJQUFZO1FBQzNCLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVEOztPQUVHO0lBQ0ksa0JBQVUsR0FBakIsVUFBa0IsSUFBWTtRQUMxQixTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUU1QyxPQUFPLElBQUksR0FBRyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSw0QkFBb0IsR0FBM0IsVUFBNEIsSUFB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QUksR0FBRyxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUVELGlEQUFpRDtJQUNqRDs7T0FFRztJQUNILHdCQUFNLEdBQU4sVUFBTyxFQUF1QixFQUFFLFNBQTBCO1lBQWxELFlBQVEsRUFBUiw2QkFBUTtRQUFnQiwwQkFBQSxFQUFBLGlCQUEwQjtRQUN0RCxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUV6QyxJQUFJLFNBQVMsRUFBRTtZQUNYLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNkO1FBRUQsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFFcEMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFFbEQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsMEJBQVEsR0FBUjtRQUNJLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM5QixDQUFDO0lBRUQseUJBQU8sR0FBUDtRQUNJLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGtCQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBcEIsVUFBcUIsSUFBWTtRQUM3QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELHdCQUFNLEdBQU47UUFDSSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUNMLGNBQUM7QUFBRCxDQUFDLEFBaktELElBaUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt0dWlBc3NlcnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvY2xhc3Nlcyc7XG5pbXBvcnQge1R1aVllYXJMaWtlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtwYWRTdGFydH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9mb3JtYXQnO1xuaW1wb3J0IHtpblJhbmdlLCBub3JtYWxpemVUb0ludE51bWJlcn0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9tYXRoJztcblxuaW1wb3J0IHtcbiAgICBEQVlTX0lOX0xFQVBfWUVBUixcbiAgICBEQVlTX0lOX05PUk1BTF9ZRUFSLFxuICAgIERBWVNfSU5fV0VFSyxcbiAgICBNQVhfWUVBUixcbiAgICBNSU5fWUVBUixcbn0gZnJvbSAnLi9kYXRlLXRpbWUnO1xuXG4vKipcbiAqIEltbXV0YWJsZSB5ZWFyIG9iamVjdFxuICogQG5vc2lkZWVmZmVjdHNcbiAqL1xuZXhwb3J0IGNsYXNzIFR1aVllYXIgaW1wbGVtZW50cyBUdWlZZWFyTGlrZSB7XG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgeWVhcjogbnVtYmVyKSB7XG4gICAgICAgIHR1aUFzc2VydC5hc3NlcnQoVHVpWWVhci5pc1ZhbGlkWWVhcih5ZWFyKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIHllYXIgZm9yIHZhbGlkaXR5XG4gICAgICovXG4gICAgc3RhdGljIGlzVmFsaWRZZWFyKHllYXI6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gTnVtYmVyLmlzSW50ZWdlcih5ZWFyKSAmJiBpblJhbmdlKHllYXIsIE1JTl9ZRUFSLCBNQVhfWUVBUiArIDEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIHBhc3NlZCB5ZWFyIGlzIGEgbGVhcCB5ZWFyXG4gICAgICovXG4gICAgc3RhdGljIGlzTGVhcFllYXIoeWVhcjogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHR1aUFzc2VydC5hc3NlcnQoVHVpWWVhci5pc1ZhbGlkWWVhcih5ZWFyKSk7XG5cbiAgICAgICAgcmV0dXJuIHllYXIgJSA0MDAgPT09IDAgfHwgKHllYXIgJSA0ID09PSAwICYmIHllYXIgJSAxMDAgIT09IDApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYW1vdW50IG9mIGxlYXAgeWVhcnMgZnJvbSB5ZWFyIDAgdG8gdGhlIHBhc3NlZCBvbmVcbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0QWJzb2x1dGVMZWFwWWVhcnMoeWVhcjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgdHVpQXNzZXJ0LmFzc2VydChUdWlZZWFyLmlzVmFsaWRZZWFyKHllYXIpKTtcblxuICAgICAgICByZXR1cm4gTWF0aC5jZWlsKHllYXIgLyA0MDApICsgKE1hdGguY2VpbCh5ZWFyIC8gNCkgLSBNYXRoLmNlaWwoeWVhciAvIDEwMCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIERPTlQgVVNFIElUICh3aWxsIGJlIGRlbGV0ZWQgc29vbilcbiAgICAgKlxuICAgICAqIFJldHVybnMgZGF5IG9mIHdlZWsgb2Zmc2V0IG9mIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHBhc3NlZCB5ZWFyXG4gICAgICpcbiAgICAgKiBAcGFyYW0geWVhclxuICAgICAqIEBwYXJhbSBhYnNvbHV0ZUxlYXBZZWFycyBhbW91bnQgb2YgbGVhcCB5ZWFycyBwcmlvciB0byB0aGUgcGFzc2VkIG9uZVxuICAgICAqIEByZXR1cm4gb2Zmc2V0IGluIGRheXNcbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0WWVhclN0YXJ0RGF5c09mZnNldCh5ZWFyOiBudW1iZXIsIGFic29sdXRlTGVhcFllYXJzOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICB0dWlBc3NlcnQuYXNzZXJ0KFR1aVllYXIuaXNWYWxpZFllYXIoeWVhcikpO1xuICAgICAgICB0dWlBc3NlcnQuYXNzZXJ0KE51bWJlci5pc0ludGVnZXIoYWJzb2x1dGVMZWFwWWVhcnMpKTtcbiAgICAgICAgdHVpQXNzZXJ0LmFzc2VydCh5ZWFyID49IGFic29sdXRlTGVhcFllYXJzKTtcbiAgICAgICAgdHVpQXNzZXJ0LmFzc2VydChhYnNvbHV0ZUxlYXBZZWFycyA+PSAwKTtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKGFic29sdXRlTGVhcFllYXJzICogREFZU19JTl9MRUFQX1lFQVIgK1xuICAgICAgICAgICAgICAgICh5ZWFyIC0gYWJzb2x1dGVMZWFwWWVhcnMpICogREFZU19JTl9OT1JNQUxfWUVBUiArXG4gICAgICAgICAgICAgICAgNSkgJVxuICAgICAgICAgICAgREFZU19JTl9XRUVLXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc3RhdGljIGxlbmd0aEJldHdlZW4oZnJvbTogVHVpWWVhciwgdG86IFR1aVllYXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdG8ueWVhciAtIGZyb20ueWVhcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBOb3JtYWxpemVzIHllYXIgYnkgY2xhbXBpbmcgaXQgYmV0d2VlbiBtaW4gYW5kIG1heCB5ZWFyc1xuICAgICAqL1xuICAgIHByb3RlY3RlZCBzdGF0aWMgbm9ybWFsaXplWWVhclBhcnQoeWVhcjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZVRvSW50TnVtYmVyKHllYXIsIE1JTl9ZRUFSLCBNQVhfWUVBUik7XG4gICAgfVxuXG4gICAgZ2V0IGZvcm1hdHRlZFllYXIoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHBhZFN0YXJ0KFN0cmluZyh0aGlzLnllYXIpLCA0LCAnMCcpO1xuICAgIH1cblxuICAgIGdldCBpc0xlYXBZZWFyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gVHVpWWVhci5pc0xlYXBZZWFyKHRoaXMueWVhcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhbW91bnQgb2YgbGVhcCB5ZWFycyBmcm9tIHllYXIgMCB0byBjdXJyZW50XG4gICAgICovXG4gICAgZ2V0IGFic29sdXRlTGVhcFllYXJzKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBUdWlZZWFyLmdldEFic29sdXRlTGVhcFllYXJzKHRoaXMueWVhcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgRE9OVCBVU0UgSVQgKHdpbGwgYmUgZGVsZXRlZCBzb29uKVxuICAgICAqXG4gICAgICogUmV0dXJucyBkYXkgb2Ygd2VlayBvZmZzZXQgb2YgdGhlIGJlZ2lubmluZyBvZiB0aGUgY3VycmVudCB5ZWFyXG4gICAgICovXG4gICAgZ2V0IHllYXJTdGFydERheXNPZmZzZXQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIFR1aVllYXIuZ2V0WWVhclN0YXJ0RGF5c09mZnNldCh0aGlzLnllYXIsIHRoaXMuYWJzb2x1dGVMZWFwWWVhcnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhc3NlZCB5ZWFyIGlzIGFmdGVyIGN1cnJlbnRcbiAgICAgKi9cbiAgICB5ZWFyQmVmb3JlKHt5ZWFyfTogVHVpWWVhcik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy55ZWFyIDwgeWVhcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYXNzZWQgeWVhciBpcyB0aGUgc2FtZSBvciBhZnRlciBjdXJyZW50XG4gICAgICovXG4gICAgeWVhclNhbWVPckJlZm9yZSh7eWVhcn06IFR1aVllYXIpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueWVhciA8PSB5ZWFyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhc3NlZCB5ZWFyIGlzIHRoZSBzYW1lIGFzIGN1cnJlbnRcbiAgICAgKi9cbiAgICB5ZWFyU2FtZSh7eWVhcn06IFR1aVllYXIpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueWVhciA9PT0geWVhcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYXNzZWQgeWVhciBpcyBlaXRoZXIgdGhlIHNhbWUgb2YgYmVmb3JlIHRoZSBjdXJyZW50XG4gICAgICovXG4gICAgeWVhclNhbWVPckFmdGVyKHt5ZWFyfTogVHVpWWVhcik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy55ZWFyID49IHllYXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGFzc2VkIHllYXIgaXMgYmVmb3JlIGN1cnJlbnRcbiAgICAgKi9cbiAgICB5ZWFyQWZ0ZXIoe3llYXJ9OiBUdWlZZWFyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnllYXIgPiB5ZWFyO1xuICAgIH1cblxuICAgIC8vIFRPRE86IDMuMCBDb25zaWRlciByZW1vdmluZyBgYmFja3dhcmRzYCBvcHRpb25cbiAgICAvKipcbiAgICAgKiBJbW11dGFibHkgb2Zmc2V0cyB5ZWFyXG4gICAgICovXG4gICAgYXBwZW5kKHt5ZWFyID0gMH06IFR1aVllYXJMaWtlLCBiYWNrd2FyZHM6IGJvb2xlYW4gPSBmYWxzZSk6IFR1aVllYXIge1xuICAgICAgICB0dWlBc3NlcnQuYXNzZXJ0KE51bWJlci5pc0ludGVnZXIoeWVhcikpO1xuXG4gICAgICAgIGlmIChiYWNrd2FyZHMpIHtcbiAgICAgICAgICAgIHllYXIgKj0gLTE7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXN1bHRZZWFyID0gdGhpcy55ZWFyICsgeWVhcjtcblxuICAgICAgICB0dWlBc3NlcnQuYXNzZXJ0KFR1aVllYXIuaXNWYWxpZFllYXIocmVzdWx0WWVhcikpO1xuXG4gICAgICAgIHJldHVybiBuZXcgVHVpWWVhcihyZXN1bHRZZWFyKTtcbiAgICB9XG5cbiAgICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXR0ZWRZZWFyO1xuICAgIH1cblxuICAgIHZhbHVlT2YoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueWVhcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBwcmltaXRpdmUgdmFsdWUgb2YgdGhlIGdpdmVuIERhdGUgb2JqZWN0LlxuICAgICAqIERlcGVuZGluZyBvbiB0aGUgYXJndW1lbnQsIHRoZSBtZXRob2QgY2FuIHJldHVybiBlaXRoZXIgYSBzdHJpbmcgb3IgYSBudW1iZXIuXG4gICAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9EYXRlL0BAdG9QcmltaXRpdmVcbiAgICAgKi9cbiAgICBbU3ltYm9sLnRvUHJpbWl0aXZlXShoaW50OiBzdHJpbmcpOiBzdHJpbmcgfCBudW1iZXIge1xuICAgICAgICByZXR1cm4gRGF0ZS5wcm90b3R5cGVbU3ltYm9sLnRvUHJpbWl0aXZlXS5jYWxsKHRoaXMsIGhpbnQpO1xuICAgIH1cblxuICAgIHRvSlNPTigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXR0ZWRZZWFyO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,99 +1,19 @@
1
1
  import { __decorate, __param } from "tslib";
2
- import { AfterViewInit, Directive, ElementRef, Inject, Input, NgZone, Optional, Renderer2, Self, } from '@angular/core';
3
- import { ANIMATION_FRAME } from '@ng-web-apis/common';
4
- import { POLLING_TIME } from '@taiga-ui/cdk/constants';
5
- import { TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_IOS } from '@taiga-ui/cdk/tokens';
6
- import { setNativeFocused } from '@taiga-ui/cdk/utils/focus';
7
- import { Observable, race, timer } from 'rxjs';
8
- import { map, skipWhile, take, throttleTime } from 'rxjs/operators';
9
- var TIMEOUT = 1000;
10
- var NG_ANIMATION_SELECTOR = '.ng-animating';
11
- // TODO: in 3.0 change input name to tuiAutoFocus and handle empty string
12
- // TODO: refactor on this whole thing in 3.0
2
+ import { Directive, Inject, Input } from '@angular/core';
3
+ import { TUI_AUTOFOCUS_HANDLER, TUI_AUTOFOCUS_PROVIDERS, } from './autofocus.options';
4
+ // TODO: 3.0 change input name to tuiAutoFocus and handle empty string
13
5
  var TuiAutoFocusDirective = /** @class */ (function () {
14
- function TuiAutoFocusDirective(tuiFocusableComponent, isIos, animationFrame$, ngZone, elementRef, renderer) {
15
- this.tuiFocusableComponent = tuiFocusableComponent;
16
- this.isIos = isIos;
17
- this.animationFrame$ = animationFrame$;
18
- this.ngZone = ngZone;
19
- this.elementRef = elementRef;
20
- this.renderer = renderer;
6
+ function TuiAutoFocusDirective(handler) {
7
+ this.handler = handler;
21
8
  this.autoFocus = true;
22
9
  }
23
10
  TuiAutoFocusDirective.prototype.ngAfterViewInit = function () {
24
- var _this = this;
25
- if (!this.autoFocus) {
26
- return;
11
+ if (this.autoFocus) {
12
+ this.handler.setFocus();
27
13
  }
28
- if (this.isTextFieldElement) {
29
- if (this.isIos) {
30
- this.ngZone.runOutsideAngular(function () { return _this.iosWebkitAutofocus(); });
31
- }
32
- else {
33
- race(timer(TIMEOUT), this.animationFrame$.pipe(throttleTime(POLLING_TIME), map(function () { return _this.element.closest(NG_ANIMATION_SELECTOR); }), skipWhile(Boolean), take(1))).subscribe(function () { return setNativeFocused(_this.element); });
34
- }
35
- return;
36
- }
37
- setNativeFocused(this.element);
38
- };
39
- Object.defineProperty(TuiAutoFocusDirective.prototype, "element", {
40
- get: function () {
41
- var _a;
42
- return (((_a = this.tuiFocusableComponent) === null || _a === void 0 ? void 0 : _a.nativeFocusableElement) ||
43
- this.elementRef.nativeElement);
44
- },
45
- enumerable: true,
46
- configurable: true
47
- });
48
- Object.defineProperty(TuiAutoFocusDirective.prototype, "isTextFieldElement", {
49
- get: function () {
50
- return this.element.matches('input, textarea');
51
- },
52
- enumerable: true,
53
- configurable: true
54
- });
55
- TuiAutoFocusDirective.prototype.iosWebkitAutofocus = function () {
56
- var _this = this;
57
- var _a;
58
- var fakeInput = this.renderer.createElement('input');
59
- fakeInput.style.position = 'absolute';
60
- fakeInput.style.opacity = '0';
61
- fakeInput.style.height = '0';
62
- var blurHandler = function () { return setNativeFocused(fakeInput); };
63
- var focusHandler = function () {
64
- setTimeout(function () {
65
- setNativeFocused(_this.element);
66
- /**
67
- * @note:
68
- * We can't remove the element immediately, because it breaks flow
69
- */
70
- setTimeout(function () {
71
- fakeInput.removeEventListener('blur', blurHandler);
72
- fakeInput.removeEventListener('focus', focusHandler);
73
- fakeInput.remove();
74
- });
75
- });
76
- };
77
- /**
78
- * @note: ping-pong eager strategy hack
79
- * After creating an element and bringing it into DOM,
80
- * the browser automatically focuses on the invisible element.
81
- * And then, after focus is triggered, we try to focus on target element, and if we managed to refocus,
82
- * then we try to focus again on an invisible element, so that the keyboard slowly appears.
83
- * This ping pong allows the keyboard to not overlap the modal window.
84
- */
85
- fakeInput.addEventListener('blur', blurHandler, { once: true });
86
- fakeInput.addEventListener('focus', focusHandler);
87
- (_a = this.element.parentElement) === null || _a === void 0 ? void 0 : _a.appendChild(fakeInput);
88
- setNativeFocused(fakeInput);
89
14
  };
90
15
  TuiAutoFocusDirective.ctorParameters = function () { return [
91
- { type: undefined, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [TUI_FOCUSABLE_ITEM_ACCESSOR,] }] },
92
- { type: Boolean, decorators: [{ type: Inject, args: [TUI_IS_IOS,] }] },
93
- { type: Observable, decorators: [{ type: Inject, args: [ANIMATION_FRAME,] }] },
94
- { type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] },
95
- { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
96
- { type: Renderer2, decorators: [{ type: Inject, args: [Renderer2,] }] }
16
+ { type: undefined, decorators: [{ type: Inject, args: [TUI_AUTOFOCUS_HANDLER,] }] }
97
17
  ]; };
98
18
  __decorate([
99
19
  Input()
@@ -101,17 +21,11 @@ var TuiAutoFocusDirective = /** @class */ (function () {
101
21
  TuiAutoFocusDirective = __decorate([
102
22
  Directive({
103
23
  selector: '[tuiAutoFocus]',
24
+ providers: TUI_AUTOFOCUS_PROVIDERS,
104
25
  }),
105
- __param(0, Optional()),
106
- __param(0, Self()),
107
- __param(0, Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)),
108
- __param(1, Inject(TUI_IS_IOS)),
109
- __param(2, Inject(ANIMATION_FRAME)),
110
- __param(3, Inject(NgZone)),
111
- __param(4, Inject(ElementRef)),
112
- __param(5, Inject(Renderer2))
26
+ __param(0, Inject(TUI_AUTOFOCUS_HANDLER))
113
27
  ], TuiAutoFocusDirective);
114
28
  return TuiAutoFocusDirective;
115
29
  }());
116
30
  export { TuiAutoFocusDirective };
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2ZvY3VzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9hdXRvLWZvY3VzLyIsInNvdXJjZXMiOlsiYXV0b2ZvY3VzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILGFBQWEsRUFDYixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFFBQVEsRUFDUixTQUFTLEVBQ1QsSUFBSSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFLckQsT0FBTyxFQUFDLDJCQUEyQixFQUFFLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzdFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsSUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDO0FBQ3JCLElBQU0scUJBQXFCLEdBQUcsZUFBZSxDQUFDO0FBRTlDLHlFQUF5RTtBQUN6RSw0Q0FBNEM7QUFJNUM7SUFJSSwrQkFJcUIscUJBQXlELEVBQ3JDLEtBQWMsRUFDVCxlQUFtQyxFQUU1RCxNQUFjLEVBRWQsVUFBbUMsRUFFbkMsUUFBbUI7UUFSbkIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFvQztRQUNyQyxVQUFLLEdBQUwsS0FBSyxDQUFTO1FBQ1Qsb0JBQWUsR0FBZixlQUFlLENBQW9CO1FBRTVELFdBQU0sR0FBTixNQUFNLENBQVE7UUFFZCxlQUFVLEdBQVYs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QUFDO0lBQ2hDLENBQUM7O2dEQXpGSSxRQUFRLFlBQ1IsSUFBSSxZQUNKLE1BQU0sU0FBQywyQkFBMkI7OENBRWxDLE1BQU0sU0FBQyxVQUFVO2dCQUN5QyxVQUFVLHVCQUFwRSxNQUFNLFNBQUMsZUFBZTtnQkFFRSxNQUFNLHVCQUQ5QixNQUFNLFNBQUMsTUFBTTtnQkFHZSxVQUFVLHVCQUR0QyxNQUFNLFNBQUMsVUFBVTtnQkFHUyxTQUFTLHVCQURuQyxNQUFNLFNBQUMsU0FBUzs7SUFickI7UUFEQyxLQUFLLEVBQUU7NERBQ1M7SUFGUixxQkFBcUI7UUFIakMsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLGdCQUFnQjtTQUM3QixDQUFDO1FBTU8sV0FBQSxRQUFRLEVBQUUsQ0FBQTtRQUNWLFdBQUEsSUFBSSxFQUFFLENBQUE7UUFDTixXQUFBLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxDQUFBO1FBRW5DLFdBQUEsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ2xCLFdBQUEsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFBO1FBQ3ZCLFdBQUEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBRWQsV0FBQSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7UUFFbEIsV0FBQSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7T0FmYixxQkFBcUIsQ0ErRmpDO0lBQUQsNEJBQUM7Q0FBQSxBQS9GRCxJQStGQztTQS9GWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPcHRpb25hbCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2VsZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FOSU1BVElPTl9GUkFNRX0gZnJvbSAnQG5nLXdlYi1hcGlzL2NvbW1vbic7XG5pbXBvcnQge1BPTExJTkdfVElNRX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9pbnRlcmZhY2VzJztcbmltcG9ydCB7VFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLCBUVUlfSVNfSU9TfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3Rva2Vucyc7XG5pbXBvcnQge3NldE5hdGl2ZUZvY3VzZWR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZm9jdXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCByYWNlLCB0aW1lcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgc2tpcFdoaWxlLCB0YWtlLCB0aHJvdHRsZVRpbWV9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuY29uc3QgVElNRU9VVCA9IDEwMDA7XG5jb25zdCBOR19BTklNQVRJT05fU0VMRUNUT1IgPSAnLm5nLWFuaW1hdGluZyc7XG5cbi8vIFRPRE86IGluIDMuMCBjaGFuZ2UgaW5wdXQgbmFtZSB0byB0dWlBdXRvRm9jdXMgYW5kIGhhbmRsZSBlbXB0eSBzdHJpbmdcbi8vIFRPRE86IHJlZmFjdG9yIG9uIHRoaXMgd2hvbGUgdGhpbmcgaW4gMy4wXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1t0dWlBdXRvRm9jdXNdJyxcbn0pXG5leHBvcnQgY2xhc3MgVHVpQXV0b0ZvY3VzRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQElucHV0KClcbiAgICBhdXRvRm9jdXMgPSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHVpRm9jdXNhYmxlQ29tcG9uZW50OiBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IgfCBudWxsLFxuICAgICAgICBASW5qZWN0KFRVSV9JU19JT1MpIHByaXZhdGUgcmVhZG9ubHkgaXNJb3M6IGJvb2xlYW4sXG4gICAgICAgIEBJbmplY3QoQU5JTUFUSU9OX0ZSQU1FKSBwcml2YXRlIHJlYWRvbmx5IGFuaW1hdGlvbkZyYW1lJDogT2JzZXJ2YWJsZTxudW1iZXI+LFxuICAgICAgICBASW5qZWN0KE5nWm9uZSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgQEluamVjdChFbGVtZW50UmVmKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KFJlbmRlcmVyMilcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICkge31cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmF1dG9Gb2N1cykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNUZXh0RmllbGRFbGVtZW50KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc0lvcykge1xuICAgICAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHRoaXMuaW9zV2Via2l0QXV0b2ZvY3VzKCkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByYWNlKFxuICAgICAgICAgICAgICAgICAgICB0aW1lcihUSU1FT1VUKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb25GcmFtZSQucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm90dGxlVGltZShQT0xMSU5HX1RJTUUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWFwKCgpID0+IHRoaXMuZWxlbWVudC5jbG9zZXN0KE5HX0FOSU1BVElPTl9TRUxFQ1RPUikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2tpcFdoaWxlKEJvb2xlYW4pLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICApLnN1YnNjcmliZSgoKSA9PiBzZXROYXRpdmVGb2N1c2VkKHRoaXMuZWxlbWVudCkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzZXROYXRpdmVGb2N1c2VkKHRoaXMuZWxlbWVudCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgZWxlbWVudCgpOiBUdWlOYXRpdmVGb2N1c2FibGVFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMudHVpRm9jdXNhYmxlQ29tcG9uZW50Py5uYXRpdmVGb2N1c2FibGVFbGVtZW50IHx8XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGlzVGV4dEZpZWxkRWxlbWVudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5tYXRjaGVzKCdpbnB1dCwgdGV4dGFyZWEnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlvc1dlYmtpdEF1dG9mb2N1cygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZmFrZUlucHV0OiBIVE1MRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcblxuICAgICAgICBmYWtlSW5wdXQuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgICAgICBmYWtlSW5wdXQuc3R5bGUub3BhY2l0eSA9ICcwJztcbiAgICAgICAgZmFrZUlucHV0LnN0eWxlLmhlaWdodCA9ICcwJztcblxuICAgICAgICBjb25zdCBibHVySGFuZGxlciA9ICgpOiB2b2lkID0+IHNldE5hdGl2ZUZvY3VzZWQoZmFrZUlucHV0KTtcbiAgICAgICAgY29uc3QgZm9jdXNIYW5kbGVyID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0TmF0aXZlRm9jdXNlZCh0aGlzLmVsZW1lbnQpO1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogQG5vdGU6XG4gICAgICAgICAgICAgICAgICogV2UgY2FuJ3QgcmVtb3ZlIHRoZSBlbGVtZW50IGltbWVkaWF0ZWx5LCBiZWNhdXNlIGl0IGJyZWFrcyBmbG93XG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGZha2VJbnB1dC5yZW1vdmVFdmVudExpc3RlbmVyKCdibHVyJywgYmx1ckhhbmRsZXIpO1xuICAgICAgICAgICAgICAgICAgICBmYWtlSW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZm9jdXMnLCBmb2N1c0hhbmRsZXIpO1xuICAgICAgICAgICAgICAgICAgICBmYWtlSW5wdXQucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogQG5vdGU6IHBpbmctcG9uZyBlYWdlciBzdHJhdGVneSBoYWNrXG4gICAgICAgICAqIEFmdGVyIGNyZWF0aW5nIGFuIGVsZW1lbnQgYW5kIGJyaW5naW5nIGl0IGludG8gRE9NLFxuICAgICAgICAgKiB0aGUgYnJvd3NlciBhdXRvbWF0aWNhbGx5IGZvY3VzZXMgb24gdGhlIGludmlzaWJsZSBlbGVtZW50LlxuICAgICAgICAgKiBBbmQgdGhlbiwgYWZ0ZXIgZm9jdXMgaXMgdHJpZ2dlcmVkLCB3ZSB0cnkgdG8gZm9jdXMgb24gdGFyZ2V0IGVsZW1lbnQsIGFuZCBpZiB3ZSBtYW5hZ2VkIHRvIHJlZm9jdXMsXG4gICAgICAgICAqIHRoZW4gd2UgdHJ5IHRvIGZvY3VzIGFnYWluIG9uIGFuIGludmlzaWJsZSBlbGVtZW50LCBzbyB0aGF0IHRoZSBrZXlib2FyZCBzbG93bHkgYXBwZWFycy5cbiAgICAgICAgICogVGhpcyBwaW5nIHBvbmcgYWxsb3dzIHRoZSBrZXlib2FyZCB0byBub3Qgb3ZlcmxhcCB0aGUgbW9kYWwgd2luZG93LlxuICAgICAgICAgKi9cbiAgICAgICAgZmFrZUlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBibHVySGFuZGxlciwge29uY2U6IHRydWV9KTtcbiAgICAgICAgZmFrZUlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgZm9jdXNIYW5kbGVyKTtcblxuICAgICAgICB0aGlzLmVsZW1lbnQucGFyZW50RWxlbWVudD8uYXBwZW5kQ2hpbGQoZmFrZUlucHV0KTtcblxuICAgICAgICBzZXROYXRpdmVGb2N1c2VkKGZha2VJbnB1dCk7XG4gICAgfVxufVxuIl19
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2ZvY3VzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9hdXRvLWZvY3VzLyIsInNvdXJjZXMiOlsiYXV0b2ZvY3VzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV0RSxPQUFPLEVBQ0gscUJBQXFCLEVBQ3JCLHVCQUF1QixHQUUxQixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLHNFQUFzRTtBQUt0RTtJQUlJLCtCQUNvRCxPQUE0QjtRQUE1QixZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQUhoRixjQUFTLEdBQUcsSUFBSSxDQUFDO0lBSWQsQ0FBQztJQUVKLCtDQUFlLEdBQWY7UUFDSSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUMzQjtJQUNMLENBQUM7O2dEQVBJLE1BQU0sU0FBQyxxQkFBcUI7O0lBSGpDO1FBREMsS0FBSyxFQUFFOzREQUNTO0lBRlIscUJBQXFCO1FBSmpDLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxnQkFBZ0I7WUFDMUIsU0FBUyxFQUFFLHVCQUF1QjtTQUNyQyxDQUFDO1FBTU8sV0FBQSxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQTtPQUx6QixxQkFBcUIsQ0FhakM7SUFBRCw0QkFBQztDQUFBLEFBYkQsSUFhQztTQWJZLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBJbmplY3QsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgICBUVUlfQVVUT0ZPQ1VTX0hBTkRMRVIsXG4gICAgVFVJX0FVVE9GT0NVU19QUk9WSURFUlMsXG4gICAgVHVpQXV0b2ZvY3VzSGFuZGxlcixcbn0gZnJvbSAnLi9hdXRvZm9jdXMub3B0aW9ucyc7XG5cbi8vIFRPRE86IDMuMCBjaGFuZ2UgaW5wdXQgbmFtZSB0byB0dWlBdXRvRm9jdXMgYW5kIGhhbmRsZSBlbXB0eSBzdHJpbmdcbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3R1aUF1dG9Gb2N1c10nLFxuICAgIHByb3ZpZGVyczogVFVJX0FVVE9GT0NVU19QUk9WSURFUlMsXG59KVxuZXhwb3J0IGNsYXNzIFR1aUF1dG9Gb2N1c0RpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIEBJbnB1dCgpXG4gICAgYXV0b0ZvY3VzID0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFRVSV9BVVRPRk9DVVNfSEFORExFUikgcHJpdmF0ZSByZWFkb25seSBoYW5kbGVyOiBUdWlBdXRvZm9jdXNIYW5kbGVyLFxuICAgICkge31cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYXV0b0ZvY3VzKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZXIuc2V0Rm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,27 @@
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';
4
+ import { TuiDefaultAutofocusHandler } from './handlers/default.handler';
5
+ import { TuiIosAutofocusHandler } from './handlers/ios.handler';
6
+ export var TUI_AUTOFOCUS_HANDLER = new InjectionToken('Autofocusing handler');
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)
11
+ : new TuiDefaultAutofocusHandler(tuiFocusableComponent, elementRef, animationFrame$);
12
+ }
13
+ export var TUI_AUTOFOCUS_PROVIDERS = [
14
+ {
15
+ provide: TUI_AUTOFOCUS_HANDLER,
16
+ // TODO: replace to useClass in v3.0
17
+ useFactory: tuiAutofocusHandlerFactory,
18
+ deps: [
19
+ [new Optional(), new Self(), TUI_FOCUSABLE_ITEM_ACCESSOR],
20
+ ElementRef,
21
+ ANIMATION_FRAME,
22
+ Renderer2,
23
+ NgZone,
24
+ ],
25
+ },
26
+ ];
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2ZvY3VzLm9wdGlvbnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvYXV0by1mb2N1cy8iLCJzb3VyY2VzIjpbImF1dG9mb2N1cy5vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxVQUFVLEVBQ1YsTUFBTSxFQUNOLGNBQWMsRUFDZCxNQUFNLEVBQ04sUUFBUSxFQUNSLFNBQVMsRUFDVCxJQUFJLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRXBELE9BQU8sRUFBQywyQkFBMkIsRUFBRSxZQUFZLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUcvRSxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQU05RCxNQUFNLENBQUMsSUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FDbkQsc0JBQXNCLENBQ3pCLENBQUM7QUFFRixzQ0FBc0M7QUFDdEMsTUFBTSxVQUFVLDBCQUEwQixDQUN0QyxxQkFBeUQsRUFDekQsVUFBbUMsRUFDbkMsZUFBbUMsRUFDbkMsUUFBbUIsRUFDbkIsTUFBYztJQUVkLE9BQU8sTUFBTSxDQUFDLFlBQVksQ0FBQztRQUN2QixDQUFDLENBQUMsSUFBSSxzQkFBc0IsQ0FBQyxxQkFBcUIsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQztRQUNqRixDQUFDLENBQUMsSUFBSSwwQkFBMEIsQ0FDMUIscUJBQXFCLEVBQ3JCLFVBQVUsRUFDVixlQUFlLENBQ2xCLENBQUM7QUFDWixDQUFDO0FBRUQsTUFBTSxDQUFDLElBQU0sdUJBQXVCLEdBQUc7SUFDbkM7UUFDSSxPQUFPLEVBQUUscUJBQXFCO1FBQzlCLG9DQUFvQztRQUNwQyxVQUFVLEVBQUUsMEJBQTBCO1FBQ3RDLElBQUksRUFBRTtZQUNGLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLDJCQUEyQixDQUFDO1lBQ3pELFVBQVU7WUFDVixlQUFlO1lBQ2YsU0FBUztZQUNULE1BQU07U0FDVDtLQUNKO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRWxlbWVudFJlZixcbiAgICBpbmplY3QsXG4gICAgSW5qZWN0aW9uVG9rZW4sXG4gICAgTmdab25lLFxuICAgIE9wdGlvbmFsLFxuICAgIFJlbmRlcmVyMixcbiAgICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QU5JTUFUSU9OX0ZSQU1FfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcbmltcG9ydCB7VHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsIFRVSV9JU19BUFBMRX0gZnJvbSAnQHRhaWdhLXVpL2Nkay90b2tlbnMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtUdWlEZWZhdWx0QXV0b2ZvY3VzSGFuZGxlcn0gZnJvbSAnLi9oYW5kbGVycy9kZWZhdWx0LmhhbmRsZXInO1xuaW1wb3J0IHtUdWlJb3NBdXRvZm9jdXNIYW5kbGVyfSBmcm9tICcuL2hhbmRsZXJzL2lvcy5oYW5kbGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBUdWlBdXRvZm9jdXNIYW5kbGVyIHtcbiAgICBzZXRGb2N1cygpOiB2b2lkO1xufVxuXG5leHBvcnQgY29uc3QgVFVJX0FVVE9GT0NVU19IQU5ETEVSID0gbmV3IEluamVjdGlvblRva2VuPFR1aUF1dG9mb2N1c0hhbmRsZXI+KFxuICAgICdBdXRvZm9jdXNpbmcgaGFuZGxlcicsXG4pO1xuXG4vLyBUT0RPOiAzLjAgcmVtb3ZlIGluIGl2eSBjb21waWxhdGlvblxuZXhwb3J0IGZ1bmN0aW9uIHR1aUF1dG9mb2N1c0hhbmRsZXJGYWN0b3J5KFxuICAgIHR1aUZvY3VzYWJsZUNvbXBvbmVudDogVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yIHwgbnVsbCxcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBhbmltYXRpb25GcmFtZSQ6IE9ic2VydmFibGU8bnVtYmVyPixcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIG5nWm9uZTogTmdab25lLFxuKTogVHVpQXV0b2ZvY3VzSGFuZGxlciB7XG4gICAgcmV0dXJuIGluamVjdChUVUlfSVNfQVBQTEUpXG4gICAgICAgID8gbmV3IFR1aUlvc0F1dG9mb2N1c0hhbmRsZXIodHVpRm9jdXNhYmxlQ29tcG9uZW50LCBlbGVtZW50UmVmLCByZW5kZXJlciwgbmdab25lKVxuICAgICAgICA6IG5ldyBUdWlEZWZhdWx0QXV0b2ZvY3VzSGFuZGxlcihcbiAgICAgICAgICAgICAgdHVpRm9jdXNhYmxlQ29tcG9uZW50LFxuICAgICAgICAgICAgICBlbGVtZW50UmVmLFxuICAgICAgICAgICAgICBhbmltYXRpb25GcmFtZSQsXG4gICAgICAgICAgKTtcbn1cblxuZXhwb3J0IGNvbnN0IFRVSV9BVVRPRk9DVVNfUFJPVklERVJTID0gW1xuICAgIHtcbiAgICAgICAgcHJvdmlkZTogVFVJX0FVVE9GT0NVU19IQU5ETEVSLFxuICAgICAgICAvLyBUT0RPOiByZXBsYWNlIHRvIHVzZUNsYXNzIGluIHYzLjBcbiAgICAgICAgdXNlRmFjdG9yeTogdHVpQXV0b2ZvY3VzSGFuZGxlckZhY3RvcnksXG4gICAgICAgIGRlcHM6IFtcbiAgICAgICAgICAgIFtuZXcgT3B0aW9uYWwoKSwgbmV3IFNlbGYoKSwgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SXSxcbiAgICAgICAgICAgIEVsZW1lbnRSZWYsXG4gICAgICAgICAgICBBTklNQVRJT05fRlJBTUUsXG4gICAgICAgICAgICBSZW5kZXJlcjIsXG4gICAgICAgICAgICBOZ1pvbmUsXG4gICAgICAgIF0sXG4gICAgfSxcbl07XG4iXX0=
@@ -0,0 +1,34 @@
1
+ import { __decorate } from "tslib";
2
+ import { Directive, ElementRef } from '@angular/core';
3
+ var AbstractTuiAutofocusHandler = /** @class */ (function () {
4
+ function AbstractTuiAutofocusHandler(tuiFocusableComponent, elementRef) {
5
+ this.tuiFocusableComponent = tuiFocusableComponent;
6
+ this.elementRef = elementRef;
7
+ }
8
+ Object.defineProperty(AbstractTuiAutofocusHandler.prototype, "element", {
9
+ get: function () {
10
+ var _a;
11
+ return (((_a = this.tuiFocusableComponent) === null || _a === void 0 ? void 0 : _a.nativeFocusableElement) ||
12
+ this.elementRef.nativeElement);
13
+ },
14
+ enumerable: true,
15
+ configurable: true
16
+ });
17
+ Object.defineProperty(AbstractTuiAutofocusHandler.prototype, "isTextFieldElement", {
18
+ get: function () {
19
+ return this.element.matches('input, textarea');
20
+ },
21
+ enumerable: true,
22
+ configurable: true
23
+ });
24
+ AbstractTuiAutofocusHandler.ctorParameters = function () { return [
25
+ { type: undefined },
26
+ { type: ElementRef }
27
+ ]; };
28
+ AbstractTuiAutofocusHandler = __decorate([
29
+ Directive()
30
+ ], AbstractTuiAutofocusHandler);
31
+ return AbstractTuiAutofocusHandler;
32
+ }());
33
+ export { AbstractTuiAutofocusHandler };
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QuaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9hdXRvLWZvY3VzLyIsInNvdXJjZXMiOlsiaGFuZGxlcnMvYWJzdHJhY3QuaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFTcEQ7SUFDSSxxQ0FDdUIscUJBQXlELEVBQ3pELFVBQW1DO1FBRG5DLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBb0M7UUFDekQsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7SUFDdkQsQ0FBQztJQUVKLHNCQUFjLGdEQUFPO2FBQXJCOztZQUNJLE9BQU8sQ0FDSCxPQUFBLElBQUksQ0FBQyxxQkFBcUIsMENBQUUsc0JBQXNCO2dCQUNsRCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FDaEMsQ0FBQztRQUNOLENBQUM7OztPQUFBO0lBRUQsc0JBQWMsMkRBQWtCO2FBQWhDO1lBQ0ksT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ25ELENBQUM7OztPQUFBOzs7Z0JBWmtDLFVBQVU7O0lBSDNCLDJCQUEyQjtRQURoRCxTQUFTLEVBQUU7T0FDVSwyQkFBMkIsQ0FrQmhEO0lBQUQsa0NBQUM7Q0FBQSxBQWxCRCxJQWtCQztTQWxCcUIsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9pbnRlcmZhY2VzJztcblxuaW1wb3J0IHtUdWlBdXRvZm9jdXNIYW5kbGVyfSBmcm9tICcuLi9hdXRvZm9jdXMub3B0aW9ucyc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0VHVpQXV0b2ZvY3VzSGFuZGxlciBpbXBsZW1lbnRzIFR1aUF1dG9mb2N1c0hhbmRsZXIge1xuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IHR1aUZvY3VzYWJsZUNvbXBvbmVudDogVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yIHwgbnVsbCxcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICkge31cblxuICAgIHByb3RlY3RlZCBnZXQgZWxlbWVudCgpOiBUdWlOYXRpdmVGb2N1c2FibGVFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMudHVpRm9jdXNhYmxlQ29tcG9uZW50Py5uYXRpdmVGb2N1c2FibGVFbGVtZW50IHx8XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgaXNUZXh0RmllbGRFbGVtZW50KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm1hdGNoZXMoJ2lucHV0LCB0ZXh0YXJlYScpO1xuICAgIH1cblxuICAgIGFic3RyYWN0IHNldEZvY3VzKCk6IHZvaWQ7XG59XG4iXX0=
@@ -0,0 +1,43 @@
1
+ import { __decorate, __extends, __param } from "tslib";
2
+ import { Directive, ElementRef, Inject, Optional, Self } from '@angular/core';
3
+ import { ANIMATION_FRAME } from '@ng-web-apis/common';
4
+ import { POLLING_TIME } from '@taiga-ui/cdk/constants';
5
+ import { TUI_FOCUSABLE_ITEM_ACCESSOR } from '@taiga-ui/cdk/tokens';
6
+ import { Observable, race, timer } from 'rxjs';
7
+ import { map, skipWhile, take, throttleTime } from 'rxjs/operators';
8
+ import { AbstractTuiAutofocusHandler } from './abstract.handler';
9
+ var TIMEOUT = 1000;
10
+ var NG_ANIMATION_SELECTOR = '.ng-animating';
11
+ var TuiDefaultAutofocusHandler = /** @class */ (function (_super) {
12
+ __extends(TuiDefaultAutofocusHandler, _super);
13
+ function TuiDefaultAutofocusHandler(tuiFocusableComponent, elementRef, animationFrame$) {
14
+ var _this = _super.call(this, tuiFocusableComponent, elementRef) || this;
15
+ _this.animationFrame$ = animationFrame$;
16
+ return _this;
17
+ }
18
+ TuiDefaultAutofocusHandler.prototype.setFocus = function () {
19
+ var _this = this;
20
+ if (this.isTextFieldElement) {
21
+ race(timer(TIMEOUT), this.animationFrame$.pipe(throttleTime(POLLING_TIME), map(function () { return _this.element.closest(NG_ANIMATION_SELECTOR); }), skipWhile(Boolean), take(1))).subscribe(function () { return _this.element.focus(); });
22
+ }
23
+ else {
24
+ this.element.focus();
25
+ }
26
+ };
27
+ TuiDefaultAutofocusHandler.ctorParameters = function () { return [
28
+ { type: undefined, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [TUI_FOCUSABLE_ITEM_ACCESSOR,] }] },
29
+ { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
30
+ { type: Observable, decorators: [{ type: Inject, args: [ANIMATION_FRAME,] }] }
31
+ ]; };
32
+ TuiDefaultAutofocusHandler = __decorate([
33
+ Directive(),
34
+ __param(0, Optional()),
35
+ __param(0, Self()),
36
+ __param(0, Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)),
37
+ __param(1, Inject(ElementRef)),
38
+ __param(2, Inject(ANIMATION_FRAME))
39
+ ], TuiDefaultAutofocusHandler);
40
+ return TuiDefaultAutofocusHandler;
41
+ }(AbstractTuiAutofocusHandler));
42
+ export { TuiDefaultAutofocusHandler };
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC5oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2Nkay9kaXJlY3RpdmVzL2F1dG8tZm9jdXMvIiwic291cmNlcyI6WyJoYW5kbGVycy9kZWZhdWx0LmhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFckQsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDakUsT0FBTyxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUUvRCxJQUFNLE9BQU8sR0FBRyxJQUFJLENBQUM7QUFDckIsSUFBTSxxQkFBcUIsR0FBRyxlQUFlLENBQUM7QUFHOUM7SUFBZ0QsOENBQTJCO0lBQ3ZFLG9DQUlJLHFCQUF5RCxFQUNyQyxVQUFtQyxFQUNiLGVBQW1DO1FBTmpGLFlBUUksa0JBQU0scUJBQXFCLEVBQUUsVUFBVSxDQUFDLFNBQzNDO1FBSDZDLHFCQUFlLEdBQWYsZUFBZSxDQUFvQjs7SUFHakYsQ0FBQztJQUVELDZDQUFRLEdBQVI7UUFBQSxpQkFjQztRQWJHLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ3pCLElBQUksQ0FDQSxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQ3JCLFlBQVksQ0FBQyxZQUFZLENBQUMsRUFDMUIsR0FBRyxDQUFDLGNBQU0sT0FBQSxLQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxFQUEzQyxDQUEyQyxDQUFDLEVBQ3RELFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFDbEIsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUNWLENBQ0osQ0FBQyxTQUFTLENBQUMsY0FBTSxPQUFBLEtBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQXBCLENBQW9CLENBQUMsQ0FBQztTQUMzQzthQUFNO1lBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUN4QjtJQUNMLENBQUM7O2dEQXhCSSxRQUFRLFlBQ1IsSUFBSSxZQUNKLE1BQU0sU0FBQywyQkFBMkI7Z0JBRUgsVUFBVSx1QkFBekMsTUFBTSxTQUFDLFVBQVU7Z0JBQ3lDLFVBQVUsdUJBQXBFLE1BQU0sU0FBQyxlQUFlOztJQVBsQiwwQkFBMEI7UUFEdEMsU0FBUyxFQUFFO1FBR0gsV0FBQSxRQUFRLEVBQUUsQ0FBQTtRQUNWLFdBQUEsSUFBSSxFQUFFLENBQUE7UUFDTixXQUFBLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxDQUFBO1FBRW5DLFdBQUEsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ2xCLFdBQUEsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFBO09BUG5CLDBCQUEwQixDQTJCdEM7SUFBRCxpQ0FBQztDQUFBLEFBM0JELENBQWdELDJCQUEyQixHQTJCMUU7U0EzQlksMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEluamVjdCwgT3B0aW9uYWwsIFNlbGZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBTklNQVRJT05fRlJBTUV9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuaW1wb3J0IHtQT0xMSU5HX1RJTUV9IGZyb20gJ0B0YWlnYS11aS9jZGsvY29uc3RhbnRzJztcbmltcG9ydCB7VHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1J9IGZyb20gJ0B0YWlnYS11aS9jZGsvdG9rZW5zJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgcmFjZSwgdGltZXJ9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHNraXBXaGlsZSwgdGFrZSwgdGhyb3R0bGVUaW1lfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7QWJzdHJhY3RUdWlBdXRvZm9jdXNIYW5kbGVyfSBmcm9tICcuL2Fic3RyYWN0LmhhbmRsZXInO1xuXG5jb25zdCBUSU1FT1VUID0gMTAwMDtcbmNvbnN0IE5HX0FOSU1BVElPTl9TRUxFQ1RPUiA9ICcubmctYW5pbWF0aW5nJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgVHVpRGVmYXVsdEF1dG9mb2N1c0hhbmRsZXIgZXh0ZW5kcyBBYnN0cmFjdFR1aUF1dG9mb2N1c0hhbmRsZXIge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SKVxuICAgICAgICB0dWlGb2N1c2FibGVDb21wb25lbnQ6IFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvciB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoQU5JTUFUSU9OX0ZSQU1FKSBwcml2YXRlIHJlYWRvbmx5IGFuaW1hdGlvbkZyYW1lJDogT2JzZXJ2YWJsZTxudW1iZXI+LFxuICAgICkge1xuICAgICAgICBzdXBlcih0dWlGb2N1c2FibGVDb21wb25lbnQsIGVsZW1lbnRSZWYpO1xuICAgIH1cblxuICAgIHNldEZvY3VzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc1RleHRGaWVsZEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJhY2UoXG4gICAgICAgICAgICAgICAgdGltZXIoVElNRU9VVCksXG4gICAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb25GcmFtZSQucGlwZShcbiAgICAgICAgICAgICAgICAgICAgdGhyb3R0bGVUaW1lKFBPTExJTkdfVElNRSksXG4gICAgICAgICAgICAgICAgICAgIG1hcCgoKSA9PiB0aGlzLmVsZW1lbnQuY2xvc2VzdChOR19BTklNQVRJT05fU0VMRUNUT1IpKSxcbiAgICAgICAgICAgICAgICAgICAgc2tpcFdoaWxlKEJvb2xlYW4pLFxuICAgICAgICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICApLnN1YnNjcmliZSgoKSA9PiB0aGlzLmVsZW1lbnQuZm9jdXMoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==