@taiga-ui/core 2.75.0 → 2.77.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 (588) hide show
  1. package/abstract/abstract-dropdown.d.ts +2 -2
  2. package/abstract/taiga-ui-core-abstract.metadata.json +1 -1
  3. package/bundles/taiga-ui-core-abstract.umd.js +49 -2
  4. package/bundles/taiga-ui-core-abstract.umd.js.map +1 -1
  5. package/bundles/taiga-ui-core-abstract.umd.min.js.map +1 -1
  6. package/bundles/taiga-ui-core-components-alert.umd.js +55 -10
  7. package/bundles/taiga-ui-core-components-alert.umd.js.map +1 -1
  8. package/bundles/taiga-ui-core-components-alert.umd.min.js.map +1 -1
  9. package/bundles/taiga-ui-core-components-button.umd.js +60 -15
  10. package/bundles/taiga-ui-core-components-button.umd.js.map +1 -1
  11. package/bundles/taiga-ui-core-components-button.umd.min.js.map +1 -1
  12. package/bundles/taiga-ui-core-components-calendar.umd.js +47 -2
  13. package/bundles/taiga-ui-core-components-calendar.umd.js.map +1 -1
  14. package/bundles/taiga-ui-core-components-calendar.umd.min.js.map +1 -1
  15. package/bundles/taiga-ui-core-components-data-list.umd.js +83 -39
  16. package/bundles/taiga-ui-core-components-data-list.umd.js.map +1 -1
  17. package/bundles/taiga-ui-core-components-data-list.umd.min.js +1 -1
  18. package/bundles/taiga-ui-core-components-data-list.umd.min.js.map +1 -1
  19. package/bundles/taiga-ui-core-components-dialog.umd.js +79 -36
  20. package/bundles/taiga-ui-core-components-dialog.umd.js.map +1 -1
  21. package/bundles/taiga-ui-core-components-dialog.umd.min.js +1 -1
  22. package/bundles/taiga-ui-core-components-dialog.umd.min.js.map +1 -1
  23. package/bundles/taiga-ui-core-components-dropdown-box.umd.js +84 -39
  24. package/bundles/taiga-ui-core-components-dropdown-box.umd.js.map +1 -1
  25. package/bundles/taiga-ui-core-components-dropdown-box.umd.min.js.map +1 -1
  26. package/bundles/taiga-ui-core-components-error.umd.js +50 -5
  27. package/bundles/taiga-ui-core-components-error.umd.js.map +1 -1
  28. package/bundles/taiga-ui-core-components-error.umd.min.js.map +1 -1
  29. package/bundles/taiga-ui-core-components-expand.umd.js +58 -13
  30. package/bundles/taiga-ui-core-components-expand.umd.js.map +1 -1
  31. package/bundles/taiga-ui-core-components-expand.umd.min.js.map +1 -1
  32. package/bundles/taiga-ui-core-components-group.umd.js +64 -19
  33. package/bundles/taiga-ui-core-components-group.umd.js.map +1 -1
  34. package/bundles/taiga-ui-core-components-group.umd.min.js.map +1 -1
  35. package/bundles/taiga-ui-core-components-hints-host.umd.js +93 -48
  36. package/bundles/taiga-ui-core-components-hints-host.umd.js.map +1 -1
  37. package/bundles/taiga-ui-core-components-hints-host.umd.min.js.map +1 -1
  38. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js +56 -11
  39. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js.map +1 -1
  40. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.min.js.map +1 -1
  41. package/bundles/taiga-ui-core-components-label.umd.js +51 -6
  42. package/bundles/taiga-ui-core-components-label.umd.js.map +1 -1
  43. package/bundles/taiga-ui-core-components-label.umd.min.js +1 -1
  44. package/bundles/taiga-ui-core-components-label.umd.min.js.map +1 -1
  45. package/bundles/taiga-ui-core-components-link.umd.js +57 -12
  46. package/bundles/taiga-ui-core-components-link.umd.js.map +1 -1
  47. package/bundles/taiga-ui-core-components-link.umd.min.js.map +1 -1
  48. package/bundles/taiga-ui-core-components-loader.umd.js +48 -3
  49. package/bundles/taiga-ui-core-components-loader.umd.js.map +1 -1
  50. package/bundles/taiga-ui-core-components-loader.umd.min.js.map +1 -1
  51. package/bundles/taiga-ui-core-components-notification.umd.js +54 -9
  52. package/bundles/taiga-ui-core-components-notification.umd.js.map +1 -1
  53. package/bundles/taiga-ui-core-components-notification.umd.min.js.map +1 -1
  54. package/bundles/taiga-ui-core-components-primitive-calendar.umd.js +48 -3
  55. package/bundles/taiga-ui-core-components-primitive-calendar.umd.js.map +1 -1
  56. package/bundles/taiga-ui-core-components-primitive-calendar.umd.min.js.map +1 -1
  57. package/bundles/taiga-ui-core-components-primitive-checkbox.umd.js +49 -4
  58. package/bundles/taiga-ui-core-components-primitive-checkbox.umd.js.map +1 -1
  59. package/bundles/taiga-ui-core-components-primitive-checkbox.umd.min.js.map +1 -1
  60. package/bundles/taiga-ui-core-components-primitive-spin-button.umd.js +48 -3
  61. package/bundles/taiga-ui-core-components-primitive-spin-button.umd.js.map +1 -1
  62. package/bundles/taiga-ui-core-components-primitive-spin-button.umd.min.js.map +1 -1
  63. package/bundles/taiga-ui-core-components-primitive-textfield.umd.js +97 -52
  64. package/bundles/taiga-ui-core-components-primitive-textfield.umd.js.map +1 -1
  65. package/bundles/taiga-ui-core-components-primitive-textfield.umd.min.js.map +1 -1
  66. package/bundles/taiga-ui-core-components-primitive-year-picker.umd.js +48 -3
  67. package/bundles/taiga-ui-core-components-primitive-year-picker.umd.js.map +1 -1
  68. package/bundles/taiga-ui-core-components-primitive-year-picker.umd.min.js.map +1 -1
  69. package/bundles/taiga-ui-core-components-root.umd.js +50 -5
  70. package/bundles/taiga-ui-core-components-root.umd.js.map +1 -1
  71. package/bundles/taiga-ui-core-components-root.umd.min.js.map +1 -1
  72. package/bundles/taiga-ui-core-components-scroll-controls.umd.js +72 -27
  73. package/bundles/taiga-ui-core-components-scroll-controls.umd.js.map +1 -1
  74. package/bundles/taiga-ui-core-components-scroll-controls.umd.min.js.map +1 -1
  75. package/bundles/taiga-ui-core-components-scrollbar.umd.js +54 -9
  76. package/bundles/taiga-ui-core-components-scrollbar.umd.js.map +1 -1
  77. package/bundles/taiga-ui-core-components-scrollbar.umd.min.js.map +1 -1
  78. package/bundles/taiga-ui-core-components-svg.umd.js +61 -16
  79. package/bundles/taiga-ui-core-components-svg.umd.js.map +1 -1
  80. package/bundles/taiga-ui-core-components-svg.umd.min.js.map +1 -1
  81. package/bundles/taiga-ui-core-components-theme-night.umd.js +48 -3
  82. package/bundles/taiga-ui-core-components-theme-night.umd.js.map +1 -1
  83. package/bundles/taiga-ui-core-components-theme-night.umd.min.js.map +1 -1
  84. package/bundles/taiga-ui-core-components-tooltip.umd.js +53 -8
  85. package/bundles/taiga-ui-core-components-tooltip.umd.js.map +1 -1
  86. package/bundles/taiga-ui-core-components-tooltip.umd.min.js.map +1 -1
  87. package/bundles/taiga-ui-core-directives-color.umd.js +52 -7
  88. package/bundles/taiga-ui-core-directives-color.umd.js.map +1 -1
  89. package/bundles/taiga-ui-core-directives-color.umd.min.js.map +1 -1
  90. package/bundles/taiga-ui-core-directives-described-by.umd.js +50 -5
  91. package/bundles/taiga-ui-core-directives-described-by.umd.js.map +1 -1
  92. package/bundles/taiga-ui-core-directives-described-by.umd.min.js.map +1 -1
  93. package/bundles/taiga-ui-core-directives-dropdown-controller.umd.js +55 -10
  94. package/bundles/taiga-ui-core-directives-dropdown-controller.umd.js.map +1 -1
  95. package/bundles/taiga-ui-core-directives-dropdown-controller.umd.min.js.map +1 -1
  96. package/bundles/taiga-ui-core-directives-dropdown.umd.js +48 -3
  97. package/bundles/taiga-ui-core-directives-dropdown.umd.js.map +1 -1
  98. package/bundles/taiga-ui-core-directives-dropdown.umd.min.js.map +1 -1
  99. package/bundles/taiga-ui-core-directives-hint-controller.umd.js +52 -7
  100. package/bundles/taiga-ui-core-directives-hint-controller.umd.js.map +1 -1
  101. package/bundles/taiga-ui-core-directives-hint-controller.umd.min.js.map +1 -1
  102. package/bundles/taiga-ui-core-directives-hint.umd.js +51 -6
  103. package/bundles/taiga-ui-core-directives-hint.umd.js.map +1 -1
  104. package/bundles/taiga-ui-core-directives-hint.umd.min.js.map +1 -1
  105. package/bundles/taiga-ui-core-directives-manual-hint.umd.js +49 -4
  106. package/bundles/taiga-ui-core-directives-manual-hint.umd.js.map +1 -1
  107. package/bundles/taiga-ui-core-directives-manual-hint.umd.min.js.map +1 -1
  108. package/bundles/taiga-ui-core-directives-mask-accessor.umd.js +47 -2
  109. package/bundles/taiga-ui-core-directives-mask-accessor.umd.js.map +1 -1
  110. package/bundles/taiga-ui-core-directives-mask-accessor.umd.min.js.map +1 -1
  111. package/bundles/taiga-ui-core-directives-mode.umd.js +48 -3
  112. package/bundles/taiga-ui-core-directives-mode.umd.js.map +1 -1
  113. package/bundles/taiga-ui-core-directives-mode.umd.min.js.map +1 -1
  114. package/bundles/taiga-ui-core-directives-pointer-hint.umd.js +50 -5
  115. package/bundles/taiga-ui-core-directives-pointer-hint.umd.js.map +1 -1
  116. package/bundles/taiga-ui-core-directives-pointer-hint.umd.min.js.map +1 -1
  117. package/bundles/taiga-ui-core-directives-scroll-into-view.umd.js +47 -2
  118. package/bundles/taiga-ui-core-directives-scroll-into-view.umd.js.map +1 -1
  119. package/bundles/taiga-ui-core-directives-scroll-into-view.umd.min.js.map +1 -1
  120. package/bundles/taiga-ui-core-directives-table-mode.umd.js +48 -3
  121. package/bundles/taiga-ui-core-directives-table-mode.umd.js.map +1 -1
  122. package/bundles/taiga-ui-core-directives-table-mode.umd.min.js.map +1 -1
  123. package/bundles/taiga-ui-core-directives-textfield-controller.umd.js +79 -34
  124. package/bundles/taiga-ui-core-directives-textfield-controller.umd.js.map +1 -1
  125. package/bundles/taiga-ui-core-directives-textfield-controller.umd.min.js.map +1 -1
  126. package/bundles/taiga-ui-core-directives-wrapper.umd.js +55 -10
  127. package/bundles/taiga-ui-core-directives-wrapper.umd.js.map +1 -1
  128. package/bundles/taiga-ui-core-directives-wrapper.umd.min.js.map +1 -1
  129. package/bundles/taiga-ui-core-internal-primitive-year-month-pagination.umd.js +47 -2
  130. package/bundles/taiga-ui-core-internal-primitive-year-month-pagination.umd.js.map +1 -1
  131. package/bundles/taiga-ui-core-internal-primitive-year-month-pagination.umd.min.js.map +1 -1
  132. package/bundles/taiga-ui-core-internal-svg-defs-host.umd.js +47 -2
  133. package/bundles/taiga-ui-core-internal-svg-defs-host.umd.js.map +1 -1
  134. package/bundles/taiga-ui-core-internal-svg-defs-host.umd.min.js.map +1 -1
  135. package/bundles/taiga-ui-core-pipes-calendar-sheet.umd.js +47 -2
  136. package/bundles/taiga-ui-core-pipes-calendar-sheet.umd.js.map +1 -1
  137. package/bundles/taiga-ui-core-pipes-calendar-sheet.umd.min.js.map +1 -1
  138. package/bundles/taiga-ui-core-pipes-format-date.umd.js +46 -1
  139. package/bundles/taiga-ui-core-pipes-format-date.umd.js.map +1 -1
  140. package/bundles/taiga-ui-core-pipes-format-date.umd.min.js.map +1 -1
  141. package/bundles/taiga-ui-core-pipes-format-number.umd.js +46 -1
  142. package/bundles/taiga-ui-core-pipes-format-number.umd.js.map +1 -1
  143. package/bundles/taiga-ui-core-pipes-format-number.umd.min.js.map +1 -1
  144. package/bundles/taiga-ui-core-pipes-format-phone.umd.js +46 -1
  145. package/bundles/taiga-ui-core-pipes-format-phone.umd.js.map +1 -1
  146. package/bundles/taiga-ui-core-pipes-format-phone.umd.min.js.map +1 -1
  147. package/bundles/taiga-ui-core-pipes-month.umd.js +46 -1
  148. package/bundles/taiga-ui-core-pipes-month.umd.js.map +1 -1
  149. package/bundles/taiga-ui-core-pipes-month.umd.min.js.map +1 -1
  150. package/bundles/taiga-ui-core-pipes-pluralize.umd.js +46 -1
  151. package/bundles/taiga-ui-core-pipes-pluralize.umd.js.map +1 -1
  152. package/bundles/taiga-ui-core-pipes-pluralize.umd.min.js.map +1 -1
  153. package/bundles/taiga-ui-core-services.umd.js +46 -1
  154. package/bundles/taiga-ui-core-services.umd.js.map +1 -1
  155. package/bundles/taiga-ui-core-services.umd.min.js.map +1 -1
  156. package/bundles/taiga-ui-core-tokens.umd.js +46 -1
  157. package/bundles/taiga-ui-core-tokens.umd.js.map +1 -1
  158. package/bundles/taiga-ui-core-tokens.umd.min.js.map +1 -1
  159. package/bundles/taiga-ui-core-utils-dom.umd.js +1 -3
  160. package/bundles/taiga-ui-core-utils-dom.umd.js.map +1 -1
  161. package/bundles/taiga-ui-core-utils-dom.umd.min.js +1 -1
  162. package/bundles/taiga-ui-core-utils-dom.umd.min.js.map +1 -1
  163. package/bundles/taiga-ui-core-utils-format.umd.js +46 -1
  164. package/bundles/taiga-ui-core-utils-format.umd.js.map +1 -1
  165. package/bundles/taiga-ui-core-utils-format.umd.min.js.map +1 -1
  166. package/bundles/taiga-ui-core-utils-mask.umd.js +47 -2
  167. package/bundles/taiga-ui-core-utils-mask.umd.js.map +1 -1
  168. package/bundles/taiga-ui-core-utils-mask.umd.min.js.map +1 -1
  169. package/bundles/taiga-ui-core-utils-polyfills.umd.js.map +1 -1
  170. package/bundles/taiga-ui-core-utils-polyfills.umd.min.js.map +1 -1
  171. package/components/button/button-options.d.ts +3 -3
  172. package/components/button/button.component.d.ts +2 -2
  173. package/components/calendar/calendar.component.d.ts +1 -1
  174. package/components/data-list/option/option.component.d.ts +1 -1
  175. package/components/dialog/taiga-ui-core-components-dialog.metadata.json +1 -1
  176. package/components/dropdown-box/dropdown-box.component.d.ts +3 -3
  177. package/components/label/taiga-ui-core-components-label.metadata.json +1 -1
  178. package/components/link/link.component.d.ts +1 -1
  179. package/components/loader/loader.component.d.ts +1 -1
  180. package/components/notification/notification.component.d.ts +1 -1
  181. package/components/primitive-calendar/primitive-calendar.component.d.ts +2 -2
  182. package/components/primitive-textfield/primitive-textfield.component.d.ts +2 -2
  183. package/components/primitive-year-picker/primitive-year-picker.component.d.ts +1 -1
  184. package/components/svg/svg.component.d.ts +1 -1
  185. package/components/svg/taiga-ui-core-components-svg.metadata.json +1 -1
  186. package/constants/version.d.ts +1 -1
  187. package/directives/dropdown-controller/taiga-ui-core-directives-dropdown-controller.metadata.json +1 -1
  188. package/directives/textfield-controller/textfield-size.directive.d.ts +1 -1
  189. package/directives/textfield-controller/textfield.controller.d.ts +1 -1
  190. package/esm2015/abstract/abstract-dropdown.js +1 -1
  191. package/esm2015/abstract/abstract-textfield-host.js +7 -3
  192. package/esm2015/components/alert/alert.component.js +10 -10
  193. package/esm2015/components/button/button-options.js +1 -1
  194. package/esm2015/components/button/button.component.js +15 -15
  195. package/esm2015/components/calendar/calendar.component.js +2 -2
  196. package/esm2015/components/data-list/data-list-dropdown-manager.directive.js +9 -10
  197. package/esm2015/components/data-list/data-list.component.js +12 -12
  198. package/esm2015/components/data-list/data-list.directive.js +2 -2
  199. package/esm2015/components/data-list/opt-group.directive.js +5 -5
  200. package/esm2015/components/data-list/option/option.component.js +13 -13
  201. package/esm2015/components/dialog/dialog.component.js +12 -12
  202. package/esm2015/components/dialog/dialog.directive.js +4 -4
  203. package/esm2015/components/dialog/dialog.providers.js +22 -17
  204. package/esm2015/components/dropdown-box/dropdown-box.component.js +39 -39
  205. package/esm2015/components/error/error.component.js +5 -5
  206. package/esm2015/components/expand/expand-content.directive.js +2 -2
  207. package/esm2015/components/expand/expand.component.js +12 -12
  208. package/esm2015/components/group/group-styles.component.js +2 -2
  209. package/esm2015/components/group/group.component.js +4 -4
  210. package/esm2015/components/group/group.directive.js +15 -15
  211. package/esm2015/components/hints-host/hint-box/hint-box.component.js +46 -46
  212. package/esm2015/components/hints-host/hints-host.component.js +3 -3
  213. package/esm2015/components/hosted-dropdown/hosted-dropdown-connector.directive.js +2 -2
  214. package/esm2015/components/hosted-dropdown/hosted-dropdown.component.js +10 -10
  215. package/esm2015/components/label/label.component.js +6 -6
  216. package/esm2015/components/link/link.component.js +12 -12
  217. package/esm2015/components/loader/loader.component.js +3 -3
  218. package/esm2015/components/notification/notification.component.js +9 -9
  219. package/esm2015/components/primitive-calendar/primitive-calendar.component.js +3 -3
  220. package/esm2015/components/primitive-checkbox/primitive-checkbox.component.js +4 -4
  221. package/esm2015/components/primitive-spin-button/primitive-spin-button.component.js +3 -3
  222. package/esm2015/components/primitive-textfield/primitive-textfield.component.js +28 -28
  223. package/esm2015/components/primitive-textfield/primitive-textfield.directive.js +2 -2
  224. package/esm2015/components/primitive-textfield/textfield/textfield.component.js +13 -13
  225. package/esm2015/components/primitive-textfield/value-decoration/value-decoration.component.js +12 -12
  226. package/esm2015/components/primitive-year-picker/primitive-year-picker.component.js +3 -3
  227. package/esm2015/components/root/root.component.js +5 -5
  228. package/esm2015/components/scroll-controls/scroll-controls.component.js +4 -4
  229. package/esm2015/components/scroll-controls/scrollbar-wrapper.directive.js +2 -2
  230. package/esm2015/components/scroll-controls/scrollbar.directive.js +23 -23
  231. package/esm2015/components/scrollbar/scroll-ref.directive.js +2 -2
  232. package/esm2015/components/scrollbar/scrollable.directive.js +2 -2
  233. package/esm2015/components/scrollbar/scrollbar.component.js +7 -7
  234. package/esm2015/components/svg/svg.component.js +16 -16
  235. package/esm2015/components/theme-night/theme-night.component.js +3 -3
  236. package/esm2015/components/tooltip/tooltip.component.js +8 -8
  237. package/esm2015/directives/color/color.directive.js +7 -7
  238. package/esm2015/directives/described-by/described-by.directive.js +5 -5
  239. package/esm2015/directives/dropdown/dropdown.directive.js +3 -3
  240. package/esm2015/directives/dropdown-controller/dropdown-controller.directive.js +10 -10
  241. package/esm2015/directives/hint/hint.directive.js +6 -6
  242. package/esm2015/directives/hint-controller/hint-controller.directive.js +7 -7
  243. package/esm2015/directives/manual-hint/manual-hint.directive.js +4 -4
  244. package/esm2015/directives/mask-accessor/mask-accessor.directive.js +2 -2
  245. package/esm2015/directives/mode/mode.directive.js +3 -3
  246. package/esm2015/directives/pointer-hint/pointer-hint.directive.js +5 -5
  247. package/esm2015/directives/scroll-into-view/scroll-into-view.directive.js +2 -2
  248. package/esm2015/directives/table-mode/table-mode.directive.js +3 -3
  249. package/esm2015/directives/textfield-controller/textfield-autocomplete.directive.js +5 -5
  250. package/esm2015/directives/textfield-controller/textfield-cleaner.directive.js +4 -4
  251. package/esm2015/directives/textfield-controller/textfield-custom-content.directive.js +5 -5
  252. package/esm2015/directives/textfield-controller/textfield-example-text.directive.js +5 -5
  253. package/esm2015/directives/textfield-controller/textfield-input-mode.directive.js +5 -5
  254. package/esm2015/directives/textfield-controller/textfield-label-outside.directive.js +4 -4
  255. package/esm2015/directives/textfield-controller/textfield-max-length.directive.js +4 -4
  256. package/esm2015/directives/textfield-controller/textfield-size.directive.js +5 -5
  257. package/esm2015/directives/textfield-controller/textfield-type.directive.js +5 -5
  258. package/esm2015/directives/textfield-controller/textfield.controller.js +1 -1
  259. package/esm2015/directives/wrapper/wrapper.directive.js +10 -10
  260. package/esm2015/interfaces/alert-options.js +1 -1
  261. package/esm2015/interfaces/dropdown-directive.js +1 -1
  262. package/esm2015/interfaces/hint.js +1 -1
  263. package/esm2015/interfaces/notification-options.js +1 -1
  264. package/esm2015/interfaces/number-format-settings.js +1 -1
  265. package/esm2015/internal/primitive-year-month-pagination/primitive-year-month-pagination.component.js +2 -2
  266. package/esm2015/internal/svg-defs-host/svg-defs-host.component.js +2 -2
  267. package/esm2015/mask/text-mask-list.js +1 -1
  268. package/esm2015/mask/text-mask-pipe-handler.js +1 -1
  269. package/esm2015/pipes/calendar-sheet/utils.js +2 -2
  270. package/esm2015/pipes/format-date/format-date.pipe.js +1 -1
  271. package/esm2015/types/brightness.js +1 -1
  272. package/esm2015/types/decimal-symbol.js +1 -1
  273. package/esm2015/types/decimal.js +1 -1
  274. package/esm2015/types/dialog-size.js +1 -1
  275. package/esm2015/types/direction.js +1 -1
  276. package/esm2015/types/dropdown-width.js +1 -1
  277. package/esm2015/types/marker-handler.js +1 -1
  278. package/esm2015/types/option-role.js +1 -1
  279. package/esm2015/types/orientation.js +1 -1
  280. package/esm2015/types/size.js +1 -1
  281. package/esm2015/utils/dom/get-safe-area-size.js +1 -1
  282. package/esm2015/utils/dom/process-icon.js +2 -4
  283. package/esm2015/utils/mask/create-number-mask.js +2 -2
  284. package/esm2015/utils/polyfills/inner-html.js +3 -3
  285. package/esm5/abstract/abstract-dropdown.js +1 -1
  286. package/esm5/abstract/abstract-textfield-host.js +4 -2
  287. package/esm5/components/alert/alert.component.js +10 -10
  288. package/esm5/components/button/button-options.js +1 -1
  289. package/esm5/components/button/button.component.js +15 -15
  290. package/esm5/components/calendar/calendar.component.js +2 -2
  291. package/esm5/components/data-list/data-list-dropdown-manager.directive.js +10 -11
  292. package/esm5/components/data-list/data-list.component.js +12 -12
  293. package/esm5/components/data-list/data-list.directive.js +2 -2
  294. package/esm5/components/data-list/opt-group.directive.js +5 -5
  295. package/esm5/components/data-list/option/option.component.js +13 -13
  296. package/esm5/components/dialog/dialog.component.js +12 -12
  297. package/esm5/components/dialog/dialog.directive.js +4 -4
  298. package/esm5/components/dialog/dialog.providers.js +22 -24
  299. package/esm5/components/dropdown-box/dropdown-box.component.js +39 -39
  300. package/esm5/components/error/error.component.js +5 -5
  301. package/esm5/components/expand/expand-content.directive.js +2 -2
  302. package/esm5/components/expand/expand.component.js +12 -12
  303. package/esm5/components/group/group-styles.component.js +2 -2
  304. package/esm5/components/group/group.component.js +4 -4
  305. package/esm5/components/group/group.directive.js +15 -15
  306. package/esm5/components/hints-host/hint-box/hint-box.component.js +46 -46
  307. package/esm5/components/hints-host/hints-host.component.js +3 -3
  308. package/esm5/components/hosted-dropdown/hosted-dropdown-connector.directive.js +2 -2
  309. package/esm5/components/hosted-dropdown/hosted-dropdown.component.js +10 -10
  310. package/esm5/components/label/label.component.js +6 -6
  311. package/esm5/components/link/link.component.js +12 -12
  312. package/esm5/components/loader/loader.component.js +3 -3
  313. package/esm5/components/notification/notification.component.js +9 -9
  314. package/esm5/components/primitive-calendar/primitive-calendar.component.js +3 -3
  315. package/esm5/components/primitive-checkbox/primitive-checkbox.component.js +4 -4
  316. package/esm5/components/primitive-spin-button/primitive-spin-button.component.js +3 -3
  317. package/esm5/components/primitive-textfield/primitive-textfield.component.js +28 -28
  318. package/esm5/components/primitive-textfield/primitive-textfield.directive.js +2 -2
  319. package/esm5/components/primitive-textfield/textfield/textfield.component.js +13 -13
  320. package/esm5/components/primitive-textfield/value-decoration/value-decoration.component.js +12 -12
  321. package/esm5/components/primitive-year-picker/primitive-year-picker.component.js +3 -3
  322. package/esm5/components/root/root.component.js +5 -5
  323. package/esm5/components/scroll-controls/scroll-controls.component.js +4 -4
  324. package/esm5/components/scroll-controls/scrollbar-wrapper.directive.js +2 -2
  325. package/esm5/components/scroll-controls/scrollbar.directive.js +23 -23
  326. package/esm5/components/scrollbar/scroll-ref.directive.js +2 -2
  327. package/esm5/components/scrollbar/scrollable.directive.js +2 -2
  328. package/esm5/components/scrollbar/scrollbar.component.js +7 -7
  329. package/esm5/components/svg/svg.component.js +16 -16
  330. package/esm5/components/theme-night/theme-night.component.js +3 -3
  331. package/esm5/components/tooltip/tooltip.component.js +8 -8
  332. package/esm5/directives/color/color.directive.js +7 -7
  333. package/esm5/directives/described-by/described-by.directive.js +5 -5
  334. package/esm5/directives/dropdown/dropdown.directive.js +3 -3
  335. package/esm5/directives/dropdown-controller/dropdown-controller.directive.js +10 -10
  336. package/esm5/directives/hint/hint.directive.js +6 -6
  337. package/esm5/directives/hint-controller/hint-controller.directive.js +7 -7
  338. package/esm5/directives/manual-hint/manual-hint.directive.js +4 -4
  339. package/esm5/directives/mask-accessor/mask-accessor.directive.js +2 -2
  340. package/esm5/directives/mode/mode.directive.js +3 -3
  341. package/esm5/directives/pointer-hint/pointer-hint.directive.js +5 -5
  342. package/esm5/directives/scroll-into-view/scroll-into-view.directive.js +2 -2
  343. package/esm5/directives/table-mode/table-mode.directive.js +3 -3
  344. package/esm5/directives/textfield-controller/textfield-autocomplete.directive.js +5 -5
  345. package/esm5/directives/textfield-controller/textfield-cleaner.directive.js +4 -4
  346. package/esm5/directives/textfield-controller/textfield-custom-content.directive.js +5 -5
  347. package/esm5/directives/textfield-controller/textfield-example-text.directive.js +5 -5
  348. package/esm5/directives/textfield-controller/textfield-input-mode.directive.js +5 -5
  349. package/esm5/directives/textfield-controller/textfield-label-outside.directive.js +4 -4
  350. package/esm5/directives/textfield-controller/textfield-max-length.directive.js +4 -4
  351. package/esm5/directives/textfield-controller/textfield-size.directive.js +5 -5
  352. package/esm5/directives/textfield-controller/textfield-type.directive.js +5 -5
  353. package/esm5/directives/textfield-controller/textfield.controller.js +1 -1
  354. package/esm5/directives/wrapper/wrapper.directive.js +10 -10
  355. package/esm5/interfaces/alert-options.js +1 -1
  356. package/esm5/interfaces/dropdown-directive.js +1 -1
  357. package/esm5/interfaces/hint.js +1 -1
  358. package/esm5/interfaces/notification-options.js +1 -1
  359. package/esm5/interfaces/number-format-settings.js +1 -1
  360. package/esm5/internal/primitive-year-month-pagination/primitive-year-month-pagination.component.js +2 -2
  361. package/esm5/internal/svg-defs-host/svg-defs-host.component.js +2 -2
  362. package/esm5/mask/text-mask-list.js +1 -1
  363. package/esm5/mask/text-mask-pipe-handler.js +1 -1
  364. package/esm5/pipes/calendar-sheet/utils.js +2 -2
  365. package/esm5/pipes/format-date/format-date.pipe.js +1 -1
  366. package/esm5/types/brightness.js +1 -1
  367. package/esm5/types/decimal-symbol.js +1 -1
  368. package/esm5/types/decimal.js +1 -1
  369. package/esm5/types/dialog-size.js +1 -1
  370. package/esm5/types/direction.js +1 -1
  371. package/esm5/types/dropdown-width.js +1 -1
  372. package/esm5/types/marker-handler.js +1 -1
  373. package/esm5/types/option-role.js +1 -1
  374. package/esm5/types/orientation.js +1 -1
  375. package/esm5/types/size.js +1 -1
  376. package/esm5/utils/dom/get-safe-area-size.js +1 -1
  377. package/esm5/utils/dom/process-icon.js +2 -4
  378. package/esm5/utils/mask/create-number-mask.js +2 -2
  379. package/esm5/utils/polyfills/inner-html.js +1 -1
  380. package/fesm2015/taiga-ui-core-abstract.js +6 -2
  381. package/fesm2015/taiga-ui-core-abstract.js.map +1 -1
  382. package/fesm2015/taiga-ui-core-components-alert.js +9 -9
  383. package/fesm2015/taiga-ui-core-components-alert.js.map +1 -1
  384. package/fesm2015/taiga-ui-core-components-button.js +14 -14
  385. package/fesm2015/taiga-ui-core-components-button.js.map +1 -1
  386. package/fesm2015/taiga-ui-core-components-calendar.js +1 -1
  387. package/fesm2015/taiga-ui-core-components-calendar.js.map +1 -1
  388. package/fesm2015/taiga-ui-core-components-data-list.js +36 -37
  389. package/fesm2015/taiga-ui-core-components-data-list.js.map +1 -1
  390. package/fesm2015/taiga-ui-core-components-dialog.js +35 -30
  391. package/fesm2015/taiga-ui-core-components-dialog.js.map +1 -1
  392. package/fesm2015/taiga-ui-core-components-dropdown-box.js +38 -38
  393. package/fesm2015/taiga-ui-core-components-dropdown-box.js.map +1 -1
  394. package/fesm2015/taiga-ui-core-components-error.js +4 -4
  395. package/fesm2015/taiga-ui-core-components-error.js.map +1 -1
  396. package/fesm2015/taiga-ui-core-components-expand.js +12 -12
  397. package/fesm2015/taiga-ui-core-components-expand.js.map +1 -1
  398. package/fesm2015/taiga-ui-core-components-group.js +18 -18
  399. package/fesm2015/taiga-ui-core-components-group.js.map +1 -1
  400. package/fesm2015/taiga-ui-core-components-hints-host.js +47 -47
  401. package/fesm2015/taiga-ui-core-components-hints-host.js.map +1 -1
  402. package/fesm2015/taiga-ui-core-components-hosted-dropdown.js +10 -10
  403. package/fesm2015/taiga-ui-core-components-hosted-dropdown.js.map +1 -1
  404. package/fesm2015/taiga-ui-core-components-label.js +5 -5
  405. package/fesm2015/taiga-ui-core-components-label.js.map +1 -1
  406. package/fesm2015/taiga-ui-core-components-link.js +11 -11
  407. package/fesm2015/taiga-ui-core-components-link.js.map +1 -1
  408. package/fesm2015/taiga-ui-core-components-loader.js +2 -2
  409. package/fesm2015/taiga-ui-core-components-loader.js.map +1 -1
  410. package/fesm2015/taiga-ui-core-components-notification.js +8 -8
  411. package/fesm2015/taiga-ui-core-components-notification.js.map +1 -1
  412. package/fesm2015/taiga-ui-core-components-primitive-calendar.js +2 -2
  413. package/fesm2015/taiga-ui-core-components-primitive-calendar.js.map +1 -1
  414. package/fesm2015/taiga-ui-core-components-primitive-checkbox.js +3 -3
  415. package/fesm2015/taiga-ui-core-components-primitive-checkbox.js.map +1 -1
  416. package/fesm2015/taiga-ui-core-components-primitive-spin-button.js +2 -2
  417. package/fesm2015/taiga-ui-core-components-primitive-spin-button.js.map +1 -1
  418. package/fesm2015/taiga-ui-core-components-primitive-textfield.js +51 -51
  419. package/fesm2015/taiga-ui-core-components-primitive-textfield.js.map +1 -1
  420. package/fesm2015/taiga-ui-core-components-primitive-year-picker.js +2 -2
  421. package/fesm2015/taiga-ui-core-components-primitive-year-picker.js.map +1 -1
  422. package/fesm2015/taiga-ui-core-components-root.js +4 -4
  423. package/fesm2015/taiga-ui-core-components-root.js.map +1 -1
  424. package/fesm2015/taiga-ui-core-components-scroll-controls.js +26 -26
  425. package/fesm2015/taiga-ui-core-components-scroll-controls.js.map +1 -1
  426. package/fesm2015/taiga-ui-core-components-scrollbar.js +8 -8
  427. package/fesm2015/taiga-ui-core-components-scrollbar.js.map +1 -1
  428. package/fesm2015/taiga-ui-core-components-svg.js +15 -15
  429. package/fesm2015/taiga-ui-core-components-svg.js.map +1 -1
  430. package/fesm2015/taiga-ui-core-components-theme-night.js +2 -2
  431. package/fesm2015/taiga-ui-core-components-theme-night.js.map +1 -1
  432. package/fesm2015/taiga-ui-core-components-tooltip.js +7 -7
  433. package/fesm2015/taiga-ui-core-components-tooltip.js.map +1 -1
  434. package/fesm2015/taiga-ui-core-directives-color.js +6 -6
  435. package/fesm2015/taiga-ui-core-directives-color.js.map +1 -1
  436. package/fesm2015/taiga-ui-core-directives-described-by.js +4 -4
  437. package/fesm2015/taiga-ui-core-directives-described-by.js.map +1 -1
  438. package/fesm2015/taiga-ui-core-directives-dropdown-controller.js +9 -9
  439. package/fesm2015/taiga-ui-core-directives-dropdown-controller.js.map +1 -1
  440. package/fesm2015/taiga-ui-core-directives-dropdown.js +2 -2
  441. package/fesm2015/taiga-ui-core-directives-dropdown.js.map +1 -1
  442. package/fesm2015/taiga-ui-core-directives-hint-controller.js +6 -6
  443. package/fesm2015/taiga-ui-core-directives-hint-controller.js.map +1 -1
  444. package/fesm2015/taiga-ui-core-directives-hint.js +5 -5
  445. package/fesm2015/taiga-ui-core-directives-hint.js.map +1 -1
  446. package/fesm2015/taiga-ui-core-directives-manual-hint.js +3 -3
  447. package/fesm2015/taiga-ui-core-directives-manual-hint.js.map +1 -1
  448. package/fesm2015/taiga-ui-core-directives-mask-accessor.js +1 -1
  449. package/fesm2015/taiga-ui-core-directives-mask-accessor.js.map +1 -1
  450. package/fesm2015/taiga-ui-core-directives-mode.js +2 -2
  451. package/fesm2015/taiga-ui-core-directives-mode.js.map +1 -1
  452. package/fesm2015/taiga-ui-core-directives-pointer-hint.js +4 -4
  453. package/fesm2015/taiga-ui-core-directives-pointer-hint.js.map +1 -1
  454. package/fesm2015/taiga-ui-core-directives-scroll-into-view.js +1 -1
  455. package/fesm2015/taiga-ui-core-directives-scroll-into-view.js.map +1 -1
  456. package/fesm2015/taiga-ui-core-directives-table-mode.js +2 -2
  457. package/fesm2015/taiga-ui-core-directives-table-mode.js.map +1 -1
  458. package/fesm2015/taiga-ui-core-directives-textfield-controller.js +33 -33
  459. package/fesm2015/taiga-ui-core-directives-textfield-controller.js.map +1 -1
  460. package/fesm2015/taiga-ui-core-directives-wrapper.js +9 -9
  461. package/fesm2015/taiga-ui-core-directives-wrapper.js.map +1 -1
  462. package/fesm2015/taiga-ui-core-internal-primitive-year-month-pagination.js +1 -1
  463. package/fesm2015/taiga-ui-core-internal-primitive-year-month-pagination.js.map +1 -1
  464. package/fesm2015/taiga-ui-core-internal-svg-defs-host.js +1 -1
  465. package/fesm2015/taiga-ui-core-internal-svg-defs-host.js.map +1 -1
  466. package/fesm2015/taiga-ui-core-pipes-calendar-sheet.js +1 -1
  467. package/fesm2015/taiga-ui-core-pipes-calendar-sheet.js.map +1 -1
  468. package/fesm2015/taiga-ui-core-pipes-format-date.js.map +1 -1
  469. package/fesm2015/taiga-ui-core-utils-dom.js +1 -3
  470. package/fesm2015/taiga-ui-core-utils-dom.js.map +1 -1
  471. package/fesm2015/taiga-ui-core-utils-mask.js +1 -1
  472. package/fesm2015/taiga-ui-core-utils-mask.js.map +1 -1
  473. package/fesm2015/taiga-ui-core-utils-polyfills.js +2 -2
  474. package/fesm2015/taiga-ui-core-utils-polyfills.js.map +1 -1
  475. package/fesm5/taiga-ui-core-abstract.js +3 -1
  476. package/fesm5/taiga-ui-core-abstract.js.map +1 -1
  477. package/fesm5/taiga-ui-core-components-alert.js +9 -9
  478. package/fesm5/taiga-ui-core-components-alert.js.map +1 -1
  479. package/fesm5/taiga-ui-core-components-button.js +14 -14
  480. package/fesm5/taiga-ui-core-components-button.js.map +1 -1
  481. package/fesm5/taiga-ui-core-components-calendar.js +1 -1
  482. package/fesm5/taiga-ui-core-components-calendar.js.map +1 -1
  483. package/fesm5/taiga-ui-core-components-data-list.js +37 -38
  484. package/fesm5/taiga-ui-core-components-data-list.js.map +1 -1
  485. package/fesm5/taiga-ui-core-components-dialog.js +35 -37
  486. package/fesm5/taiga-ui-core-components-dialog.js.map +1 -1
  487. package/fesm5/taiga-ui-core-components-dropdown-box.js +38 -38
  488. package/fesm5/taiga-ui-core-components-dropdown-box.js.map +1 -1
  489. package/fesm5/taiga-ui-core-components-error.js +4 -4
  490. package/fesm5/taiga-ui-core-components-error.js.map +1 -1
  491. package/fesm5/taiga-ui-core-components-expand.js +12 -12
  492. package/fesm5/taiga-ui-core-components-expand.js.map +1 -1
  493. package/fesm5/taiga-ui-core-components-group.js +18 -18
  494. package/fesm5/taiga-ui-core-components-group.js.map +1 -1
  495. package/fesm5/taiga-ui-core-components-hints-host.js +47 -47
  496. package/fesm5/taiga-ui-core-components-hints-host.js.map +1 -1
  497. package/fesm5/taiga-ui-core-components-hosted-dropdown.js +10 -10
  498. package/fesm5/taiga-ui-core-components-hosted-dropdown.js.map +1 -1
  499. package/fesm5/taiga-ui-core-components-label.js +5 -5
  500. package/fesm5/taiga-ui-core-components-label.js.map +1 -1
  501. package/fesm5/taiga-ui-core-components-link.js +11 -11
  502. package/fesm5/taiga-ui-core-components-link.js.map +1 -1
  503. package/fesm5/taiga-ui-core-components-loader.js +2 -2
  504. package/fesm5/taiga-ui-core-components-loader.js.map +1 -1
  505. package/fesm5/taiga-ui-core-components-notification.js +8 -8
  506. package/fesm5/taiga-ui-core-components-notification.js.map +1 -1
  507. package/fesm5/taiga-ui-core-components-primitive-calendar.js +2 -2
  508. package/fesm5/taiga-ui-core-components-primitive-calendar.js.map +1 -1
  509. package/fesm5/taiga-ui-core-components-primitive-checkbox.js +3 -3
  510. package/fesm5/taiga-ui-core-components-primitive-checkbox.js.map +1 -1
  511. package/fesm5/taiga-ui-core-components-primitive-spin-button.js +2 -2
  512. package/fesm5/taiga-ui-core-components-primitive-spin-button.js.map +1 -1
  513. package/fesm5/taiga-ui-core-components-primitive-textfield.js +51 -51
  514. package/fesm5/taiga-ui-core-components-primitive-textfield.js.map +1 -1
  515. package/fesm5/taiga-ui-core-components-primitive-year-picker.js +2 -2
  516. package/fesm5/taiga-ui-core-components-primitive-year-picker.js.map +1 -1
  517. package/fesm5/taiga-ui-core-components-root.js +4 -4
  518. package/fesm5/taiga-ui-core-components-root.js.map +1 -1
  519. package/fesm5/taiga-ui-core-components-scroll-controls.js +26 -26
  520. package/fesm5/taiga-ui-core-components-scroll-controls.js.map +1 -1
  521. package/fesm5/taiga-ui-core-components-scrollbar.js +8 -8
  522. package/fesm5/taiga-ui-core-components-scrollbar.js.map +1 -1
  523. package/fesm5/taiga-ui-core-components-svg.js +15 -15
  524. package/fesm5/taiga-ui-core-components-svg.js.map +1 -1
  525. package/fesm5/taiga-ui-core-components-theme-night.js +2 -2
  526. package/fesm5/taiga-ui-core-components-theme-night.js.map +1 -1
  527. package/fesm5/taiga-ui-core-components-tooltip.js +7 -7
  528. package/fesm5/taiga-ui-core-components-tooltip.js.map +1 -1
  529. package/fesm5/taiga-ui-core-directives-color.js +6 -6
  530. package/fesm5/taiga-ui-core-directives-color.js.map +1 -1
  531. package/fesm5/taiga-ui-core-directives-described-by.js +4 -4
  532. package/fesm5/taiga-ui-core-directives-described-by.js.map +1 -1
  533. package/fesm5/taiga-ui-core-directives-dropdown-controller.js +9 -9
  534. package/fesm5/taiga-ui-core-directives-dropdown-controller.js.map +1 -1
  535. package/fesm5/taiga-ui-core-directives-dropdown.js +2 -2
  536. package/fesm5/taiga-ui-core-directives-dropdown.js.map +1 -1
  537. package/fesm5/taiga-ui-core-directives-hint-controller.js +6 -6
  538. package/fesm5/taiga-ui-core-directives-hint-controller.js.map +1 -1
  539. package/fesm5/taiga-ui-core-directives-hint.js +5 -5
  540. package/fesm5/taiga-ui-core-directives-hint.js.map +1 -1
  541. package/fesm5/taiga-ui-core-directives-manual-hint.js +3 -3
  542. package/fesm5/taiga-ui-core-directives-manual-hint.js.map +1 -1
  543. package/fesm5/taiga-ui-core-directives-mask-accessor.js +1 -1
  544. package/fesm5/taiga-ui-core-directives-mask-accessor.js.map +1 -1
  545. package/fesm5/taiga-ui-core-directives-mode.js +2 -2
  546. package/fesm5/taiga-ui-core-directives-mode.js.map +1 -1
  547. package/fesm5/taiga-ui-core-directives-pointer-hint.js +4 -4
  548. package/fesm5/taiga-ui-core-directives-pointer-hint.js.map +1 -1
  549. package/fesm5/taiga-ui-core-directives-scroll-into-view.js +1 -1
  550. package/fesm5/taiga-ui-core-directives-scroll-into-view.js.map +1 -1
  551. package/fesm5/taiga-ui-core-directives-table-mode.js +2 -2
  552. package/fesm5/taiga-ui-core-directives-table-mode.js.map +1 -1
  553. package/fesm5/taiga-ui-core-directives-textfield-controller.js +33 -33
  554. package/fesm5/taiga-ui-core-directives-textfield-controller.js.map +1 -1
  555. package/fesm5/taiga-ui-core-directives-wrapper.js +9 -9
  556. package/fesm5/taiga-ui-core-directives-wrapper.js.map +1 -1
  557. package/fesm5/taiga-ui-core-internal-primitive-year-month-pagination.js +1 -1
  558. package/fesm5/taiga-ui-core-internal-primitive-year-month-pagination.js.map +1 -1
  559. package/fesm5/taiga-ui-core-internal-svg-defs-host.js +1 -1
  560. package/fesm5/taiga-ui-core-internal-svg-defs-host.js.map +1 -1
  561. package/fesm5/taiga-ui-core-pipes-calendar-sheet.js +1 -1
  562. package/fesm5/taiga-ui-core-pipes-calendar-sheet.js.map +1 -1
  563. package/fesm5/taiga-ui-core-pipes-format-date.js.map +1 -1
  564. package/fesm5/taiga-ui-core-utils-dom.js +1 -3
  565. package/fesm5/taiga-ui-core-utils-dom.js.map +1 -1
  566. package/fesm5/taiga-ui-core-utils-mask.js +1 -1
  567. package/fesm5/taiga-ui-core-utils-mask.js.map +1 -1
  568. package/fesm5/taiga-ui-core-utils-polyfills.js.map +1 -1
  569. package/interfaces/alert-options.d.ts +1 -1
  570. package/interfaces/dropdown-directive.d.ts +2 -2
  571. package/interfaces/hint.d.ts +1 -1
  572. package/interfaces/notification-options.d.ts +1 -1
  573. package/interfaces/number-format-settings.d.ts +1 -2
  574. package/mask/text-mask-list.d.ts +1 -1
  575. package/mask/text-mask-pipe-handler.d.ts +1 -1
  576. package/package.json +4 -4
  577. package/pipes/format-date/format-date.pipe.d.ts +1 -1
  578. package/tokens/dropdown-directive.d.ts +1 -1
  579. package/types/brightness.d.ts +1 -1
  580. package/types/decimal-symbol.d.ts +1 -1
  581. package/types/decimal.d.ts +1 -1
  582. package/types/dialog-size.d.ts +1 -1
  583. package/types/direction.d.ts +2 -2
  584. package/types/dropdown-width.d.ts +1 -1
  585. package/types/marker-handler.d.ts +1 -1
  586. package/types/option-role.d.ts +1 -1
  587. package/types/orientation.d.ts +1 -1
  588. package/types/size.d.ts +2 -2
@@ -6,7 +6,7 @@ import { TUI_ANIMATIONS_DURATION, TUI_CLOSE_WORD } from '@taiga-ui/core/tokens';
6
6
  import { POLYMORPHEUS_CONTEXT } from '@tinkoff/ng-polymorpheus';
7
7
  import { Observable } from 'rxjs';
8
8
  import { TUI_DIALOG_CLOSE_STREAM, TUI_DIALOG_PROVIDERS } from './dialog.providers';
9
- const REQUIRED_ERROR = new Error(`Required dialog was dismissed`);
9
+ const REQUIRED_ERROR = new Error('Required dialog was dismissed');
10
10
  // @dynamic
11
11
  let TuiDialogComponent = class TuiDialogComponent {
12
12
  constructor(duration, isMobile, context, close$, closeWord$) {
@@ -15,16 +15,16 @@ let TuiDialogComponent = class TuiDialogComponent {
15
15
  this.context = context;
16
16
  this.closeWord$ = closeWord$;
17
17
  this.animation = {
18
- value: ``,
18
+ value: '',
19
19
  params: {
20
- start: `40px`,
20
+ start: '40px',
21
21
  duration: this.duration,
22
22
  },
23
23
  };
24
24
  this.fullscreenAnimation = {
25
- value: ``,
25
+ value: '',
26
26
  params: {
27
- start: `100vh`,
27
+ start: '100vh',
28
28
  duration: this.duration,
29
29
  },
30
30
  };
@@ -39,7 +39,7 @@ let TuiDialogComponent = class TuiDialogComponent {
39
39
  return this.context.header;
40
40
  }
41
41
  get slideInTop() {
42
- return this.size === `fullscreen` || this.size === `page` || this.isMobile
42
+ return this.size === 'fullscreen' || this.size === 'page' || this.isMobile
43
43
  ? this.fullscreenAnimation
44
44
  : this.animation;
45
45
  }
@@ -60,18 +60,18 @@ TuiDialogComponent.ctorParameters = () => [
60
60
  { type: Observable, decorators: [{ type: Inject, args: [TUI_CLOSE_WORD,] }] }
61
61
  ];
62
62
  __decorate([
63
- HostBinding(`attr.data-size`)
63
+ HostBinding('attr.data-size')
64
64
  ], TuiDialogComponent.prototype, "size", null);
65
65
  __decorate([
66
- HostBinding(`class._centered`)
66
+ HostBinding('class._centered')
67
67
  ], TuiDialogComponent.prototype, "header", null);
68
68
  __decorate([
69
- HostBinding(`@tuiSlideInTop`),
70
- HostBinding(`@tuiFadeIn`)
69
+ HostBinding('@tuiSlideInTop'),
70
+ HostBinding('@tuiFadeIn')
71
71
  ], TuiDialogComponent.prototype, "slideInTop", null);
72
72
  TuiDialogComponent = __decorate([
73
73
  Component({
74
- selector: `tui-dialog`,
74
+ selector: 'tui-dialog',
75
75
  template: "<header\n *ngIf=\"header\"\n polymorpheus-outlet\n class=\"t-header\"\n [content]=\"header\"\n [context]=\"context\"\n></header>\n<div class=\"t-content\">\n <h2\n class=\"t-heading\"\n [id]=\"context.id\"\n [textContent]=\"context.label\"\n ></h2>\n <section\n polymorpheus-outlet\n [context]=\"context\"\n [content]=\"context.content\"\n >\n <ng-template let-text>\n {{ text }}\n <div class=\"t-buttons\">\n <button\n tuiButton\n size=\"m\"\n (click)=\"context.$implicit.complete()\"\n >\n {{ $any(context.data)?.button || 'OK' }}\n </button>\n </div>\n </ng-template>\n </section>\n</div>\n<div\n *ngIf=\"context.closeable\"\n class=\"t-wrapper\"\n>\n <button\n tuiIconButton\n tuiPreventDefault=\"mousedown\"\n automation-id=\"tui-dialog__close\"\n size=\"s\"\n appearance=\"\"\n icon=\"tuiIconCloseLarge\"\n shape=\"rounded\"\n class=\"t-close\"\n [title]=\"closeWord$ | async\"\n (click)=\"close()\"\n ></button>\n</div>\n",
76
76
  changeDetection: ChangeDetectionStrategy.OnPush,
77
77
  providers: TUI_DIALOG_PROVIDERS,
@@ -85,4 +85,4 @@ TuiDialogComponent = __decorate([
85
85
  __param(4, Inject(TUI_CLOSE_WORD))
86
86
  ], TuiDialogComponent);
87
87
  export { TuiDialogComponent };
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZGlhbG9nLyIsInNvdXJjZXMiOlsiZGlhbG9nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBQyxhQUFhLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFDLFNBQVMsRUFBRSxhQUFhLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUVuRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFOUUsT0FBTyxFQUFDLG9CQUFvQixFQUFzQixNQUFNLDBCQUEwQixDQUFDO0FBQ25GLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFaEMsT0FBTyxFQUFDLHVCQUF1QixFQUFFLG9CQUFvQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFakYsTUFBTSxjQUFjLEdBQUcsSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztBQUVsRSxXQUFXO0FBU1gsSUFBYSxrQkFBa0IsR0FBL0IsTUFBYSxrQkFBa0I7SUFpQjNCLFlBQ3NELFFBQWdCLEVBQzFCLFFBQWlCLEVBRWhELE9BQTBDLEVBRW5ELE1BQTJCLEVBQ00sVUFBOEI7UUFOYixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQzFCLGFBQVEsR0FBUixRQUFRLENBQVM7UUFFaEQsWUFBTyxHQUFQLE9BQU8sQ0FBbUM7UUFHbEIsZUFBVSxHQUFWLFVBQVUsQ0FBb0I7UUF2QmxELGNBQVMsR0FBRztZQUN6QixLQUFLLEVBQUUsRUFBRTtZQUNULE1BQU0sRUFBRTtnQkFDSixLQUFLLEVBQUUsTUFBTTtnQkFDYixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7YUFDMUI7U0FDSyxDQUFDO1FBRU0sd0JBQW1CLEdBQUc7WUFDbkMsS0FBSyxFQUFFLEVBQUU7WUFDVCxNQUFNLEVBQUU7Z0JBQ0osS0FBSyxFQUFFLE9BQU87Z0JBQ2QsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2FBQzFCO1NBQ0ssQ0FBQztRQVdQLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFHRCxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQzdCLENBQUM7SUFHRCxJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQy9CLENBQUM7SUFJRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssWUFBWSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRO1lBQ3RFLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CO1lBQzFCLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDaEQ7YUFBTTtZQUNILElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3JDO0lBQ0wsQ0FBQztDQUNKLENBQUE7O3lDQXRDUSxNQUFNLFNBQUMsdUJBQXVCOzBDQUM5QixNQUFNLFNBQUMsYUFBYTs0Q0FDcEIsTUFBTSxTQUFDLG9CQUFvQjtZQUdwQixVQUFVLHVCQURqQixNQUFNLFNBQUMsdUJBQXVCO1lBRWMsVUFBVSx1QkFBdEQsTUFBTSxTQUFDLGNBQWM7O0FBUTFCO0lBREMsV0FBVyxDQUFDLGdCQUFnQixDQUFDOzhDQUc3QjtBQUdEO0lBREMsV0FBVyxDQUFDLGlCQUFpQixDQUFDO2dEQUc5QjtBQUlEO0lBRkMsV0FBVyxDQUFDLGdCQUFnQixDQUFDO0lBQzdCLFdBQVcsQ0FBQyxZQUFZLENBQUM7b0RBS3pCO0FBL0NRLGtCQUFrQjtJQVI5QixTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsWUFBWTtRQUN0Qiw4dUNBQXFDO1FBRXJDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO1FBQy9DLFNBQVMsRUFBRSxvQkFBb0I7UUFDL0IsVUFBVSxFQUFFLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQzs7S0FDekMsQ0FBQztJQW1CTyxXQUFBLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO0lBQy9CLFdBQUEsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQ3JCLFdBQUEsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUE7SUFFNUIsV0FBQSxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtJQUUvQixXQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQTtHQXhCbEIsa0JBQWtCLENBd0Q5QjtTQXhEWSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUVUlfSVNfTU9CSUxFLCBUdWlEaWFsb2d9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHt0dWlGYWRlSW4sIHR1aVNsaWRlSW5Ub3B9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtUdWlBbmltYXRpb25PcHRpb25zLCBUdWlEaWFsb2dPcHRpb25zfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9pbnRlcmZhY2VzJztcbmltcG9ydCB7VFVJX0FOSU1BVElPTlNfRFVSQVRJT04sIFRVSV9DTE9TRV9XT1JEfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHtUdWlEaWFsb2dTaXplfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90eXBlcyc7XG5pbXBvcnQge1BPTFlNT1JQSEVVU19DT05URVhULCBQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtUVUlfRElBTE9HX0NMT1NFX1NUUkVBTSwgVFVJX0RJQUxPR19QUk9WSURFUlN9IGZyb20gJy4vZGlhbG9nLnByb3ZpZGVycyc7XG5cbmNvbnN0IFJFUVVJUkVEX0VSUk9SID0gbmV3IEVycm9yKGBSZXF1aXJlZCBkaWFsb2cgd2FzIGRpc21pc3NlZGApO1xuXG4vLyBAZHluYW1pY1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IGB0dWktZGlhbG9nYCxcbiAgICB0ZW1wbGF0ZVVybDogYC4vZGlhbG9nLnRlbXBsYXRlLmh0bWxgLFxuICAgIHN0eWxlVXJsczogW2AuL2RpYWxvZy5zdHlsZS5sZXNzYF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBUVUlfRElBTE9HX1BST1ZJREVSUyxcbiAgICBhbmltYXRpb25zOiBbdHVpU2xpZGVJblRvcCwgdHVpRmFkZUluXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpRGlhbG9nQ29tcG9uZW50PE8sIEk+IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFuaW1hdGlvbiA9IHtcbiAgICAgICAgdmFsdWU6IGBgLFxuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgIHN0YXJ0OiBgNDBweGAsXG4gICAgICAgICAgICBkdXJhdGlvbjogdGhpcy5kdXJhdGlvbixcbiAgICAgICAgfSxcbiAgICB9IGFzIGNvbnN0O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBmdWxsc2NyZWVuQW5pbWF0aW9uID0ge1xuICAgICAgICB2YWx1ZTogYGAsXG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgc3RhcnQ6IGAxMDB2aGAsXG4gICAgICAgICAgICBkdXJhdGlvbjogdGhpcy5kdXJhdGlvbixcbiAgICAgICAgfSxcbiAgICB9IGFzIGNvbnN0O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVFVJX0FOSU1BVElPTlNfRFVSQVRJT04pIHByaXZhdGUgcmVhZG9ubHkgZHVyYXRpb246IG51bWJlcixcbiAgICAgICAgQEluamVjdChUVUlfSVNfTU9CSUxFKSBwcml2YXRlIHJlYWRvbmx5IGlzTW9iaWxlOiBib29sZWFuLFxuICAgICAgICBASW5qZWN0KFBPTFlNT1JQSEVVU19DT05URVhUKVxuICAgICAgICByZWFkb25seSBjb250ZXh0OiBUdWlEaWFsb2c8VHVpRGlhbG9nT3B0aW9uczxJPiwgTz4sXG4gICAgICAgIEBJbmplY3QoVFVJX0RJQUxPR19DTE9TRV9TVFJFQU0pXG4gICAgICAgIGNsb3NlJDogT2JzZXJ2YWJsZTx1bmtub3duPixcbiAgICAgICAgQEluamVjdChUVUlfQ0xPU0VfV09SRCkgcmVhZG9ubHkgY2xvc2VXb3JkJDogT2JzZXJ2YWJsZTxzdHJpbmc+LFxuICAgICkge1xuICAgICAgICBjbG9zZSQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKGBhdHRyLmRhdGEtc2l6ZWApXG4gICAgZ2V0IHNpemUoKTogVHVpRGlhbG9nU2l6ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRleHQuc2l6ZTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoYGNsYXNzLl9jZW50ZXJlZGApXG4gICAgZ2V0IGhlYWRlcigpOiBQb2x5bW9ycGhldXNDb250ZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGV4dC5oZWFkZXI7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKGBAdHVpU2xpZGVJblRvcGApXG4gICAgQEhvc3RCaW5kaW5nKGBAdHVpRmFkZUluYClcbiAgICBnZXQgc2xpZGVJblRvcCgpOiBUdWlBbmltYXRpb25PcHRpb25zIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2l6ZSA9PT0gYGZ1bGxzY3JlZW5gIHx8IHRoaXMuc2l6ZSA9PT0gYHBhZ2VgIHx8IHRoaXMuaXNNb2JpbGVcbiAgICAgICAgICAgID8gdGhpcy5mdWxsc2NyZWVuQW5pbWF0aW9uXG4gICAgICAgICAgICA6IHRoaXMuYW5pbWF0aW9uO1xuICAgIH1cblxuICAgIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb250ZXh0LnJlcXVpcmVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQuJGltcGxpY2l0LmVycm9yKFJFUVVJUkVEX0VSUk9SKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC4kaW1wbGljaXQuY29tcGxldGUoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZGlhbG9nLyIsInNvdXJjZXMiOlsiZGlhbG9nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBQyxhQUFhLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFDLFNBQVMsRUFBRSxhQUFhLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUVuRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFOUUsT0FBTyxFQUFDLG9CQUFvQixFQUFzQixNQUFNLDBCQUEwQixDQUFDO0FBQ25GLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFaEMsT0FBTyxFQUFDLHVCQUF1QixFQUFFLG9CQUFvQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFakYsTUFBTSxjQUFjLEdBQUcsSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztBQUVsRSxXQUFXO0FBU1gsSUFBYSxrQkFBa0IsR0FBL0IsTUFBYSxrQkFBa0I7SUFpQjNCLFlBQ3NELFFBQWdCLEVBQzFCLFFBQWlCLEVBRWhELE9BQTBDLEVBRW5ELE1BQTJCLEVBQ00sVUFBOEI7UUFOYixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQzFCLGFBQVEsR0FBUixRQUFRLENBQVM7UUFFaEQsWUFBTyxHQUFQLE9BQU8sQ0FBbUM7UUFHbEIsZUFBVSxHQUFWLFVBQVUsQ0FBb0I7UUF2QmxELGNBQVMsR0FBRztZQUN6QixLQUFLLEVBQUUsRUFBRTtZQUNULE1BQU0sRUFBRTtnQkFDSixLQUFLLEVBQUUsTUFBTTtnQkFDYixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7YUFDMUI7U0FDSyxDQUFDO1FBRU0sd0JBQW1CLEdBQUc7WUFDbkMsS0FBSyxFQUFFLEVBQUU7WUFDVCxNQUFNLEVBQUU7Z0JBQ0osS0FBSyxFQUFFLE9BQU87Z0JBQ2QsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2FBQzFCO1NBQ0ssQ0FBQztRQVdQLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFHRCxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQzdCLENBQUM7SUFHRCxJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQy9CLENBQUM7SUFJRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssWUFBWSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRO1lBQ3RFLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CO1lBQzFCLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDaEQ7YUFBTTtZQUNILElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3JDO0lBQ0wsQ0FBQztDQUNKLENBQUE7O3lDQXRDUSxNQUFNLFNBQUMsdUJBQXVCOzBDQUM5QixNQUFNLFNBQUMsYUFBYTs0Q0FDcEIsTUFBTSxTQUFDLG9CQUFvQjtZQUdwQixVQUFVLHVCQURqQixNQUFNLFNBQUMsdUJBQXVCO1lBRWMsVUFBVSx1QkFBdEQsTUFBTSxTQUFDLGNBQWM7O0FBUTFCO0lBREMsV0FBVyxDQUFDLGdCQUFnQixDQUFDOzhDQUc3QjtBQUdEO0lBREMsV0FBVyxDQUFDLGlCQUFpQixDQUFDO2dEQUc5QjtBQUlEO0lBRkMsV0FBVyxDQUFDLGdCQUFnQixDQUFDO0lBQzdCLFdBQVcsQ0FBQyxZQUFZLENBQUM7b0RBS3pCO0FBL0NRLGtCQUFrQjtJQVI5QixTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsWUFBWTtRQUN0Qiw4dUNBQXFDO1FBRXJDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO1FBQy9DLFNBQVMsRUFBRSxvQkFBb0I7UUFDL0IsVUFBVSxFQUFFLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQzs7S0FDekMsQ0FBQztJQW1CTyxXQUFBLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO0lBQy9CLFdBQUEsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQ3JCLFdBQUEsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUE7SUFFNUIsV0FBQSxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtJQUUvQixXQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQTtHQXhCbEIsa0JBQWtCLENBd0Q5QjtTQXhEWSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUVUlfSVNfTU9CSUxFLCBUdWlEaWFsb2d9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHt0dWlGYWRlSW4sIHR1aVNsaWRlSW5Ub3B9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtUdWlBbmltYXRpb25PcHRpb25zLCBUdWlEaWFsb2dPcHRpb25zfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9pbnRlcmZhY2VzJztcbmltcG9ydCB7VFVJX0FOSU1BVElPTlNfRFVSQVRJT04sIFRVSV9DTE9TRV9XT1JEfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHtUdWlEaWFsb2dTaXplfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90eXBlcyc7XG5pbXBvcnQge1BPTFlNT1JQSEVVU19DT05URVhULCBQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtUVUlfRElBTE9HX0NMT1NFX1NUUkVBTSwgVFVJX0RJQUxPR19QUk9WSURFUlN9IGZyb20gJy4vZGlhbG9nLnByb3ZpZGVycyc7XG5cbmNvbnN0IFJFUVVJUkVEX0VSUk9SID0gbmV3IEVycm9yKCdSZXF1aXJlZCBkaWFsb2cgd2FzIGRpc21pc3NlZCcpO1xuXG4vLyBAZHluYW1pY1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktZGlhbG9nJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGlhbG9nLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RpYWxvZy5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBUVUlfRElBTE9HX1BST1ZJREVSUyxcbiAgICBhbmltYXRpb25zOiBbdHVpU2xpZGVJblRvcCwgdHVpRmFkZUluXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpRGlhbG9nQ29tcG9uZW50PE8sIEk+IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFuaW1hdGlvbiA9IHtcbiAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgIHN0YXJ0OiAnNDBweCcsXG4gICAgICAgICAgICBkdXJhdGlvbjogdGhpcy5kdXJhdGlvbixcbiAgICAgICAgfSxcbiAgICB9IGFzIGNvbnN0O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBmdWxsc2NyZWVuQW5pbWF0aW9uID0ge1xuICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgc3RhcnQ6ICcxMDB2aCcsXG4gICAgICAgICAgICBkdXJhdGlvbjogdGhpcy5kdXJhdGlvbixcbiAgICAgICAgfSxcbiAgICB9IGFzIGNvbnN0O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVFVJX0FOSU1BVElPTlNfRFVSQVRJT04pIHByaXZhdGUgcmVhZG9ubHkgZHVyYXRpb246IG51bWJlcixcbiAgICAgICAgQEluamVjdChUVUlfSVNfTU9CSUxFKSBwcml2YXRlIHJlYWRvbmx5IGlzTW9iaWxlOiBib29sZWFuLFxuICAgICAgICBASW5qZWN0KFBPTFlNT1JQSEVVU19DT05URVhUKVxuICAgICAgICByZWFkb25seSBjb250ZXh0OiBUdWlEaWFsb2c8VHVpRGlhbG9nT3B0aW9uczxJPiwgTz4sXG4gICAgICAgIEBJbmplY3QoVFVJX0RJQUxPR19DTE9TRV9TVFJFQU0pXG4gICAgICAgIGNsb3NlJDogT2JzZXJ2YWJsZTx1bmtub3duPixcbiAgICAgICAgQEluamVjdChUVUlfQ0xPU0VfV09SRCkgcmVhZG9ubHkgY2xvc2VXb3JkJDogT2JzZXJ2YWJsZTxzdHJpbmc+LFxuICAgICkge1xuICAgICAgICBjbG9zZSQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtc2l6ZScpXG4gICAgZ2V0IHNpemUoKTogVHVpRGlhbG9nU2l6ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRleHQuc2l6ZTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9jZW50ZXJlZCcpXG4gICAgZ2V0IGhlYWRlcigpOiBQb2x5bW9ycGhldXNDb250ZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGV4dC5oZWFkZXI7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdAdHVpU2xpZGVJblRvcCcpXG4gICAgQEhvc3RCaW5kaW5nKCdAdHVpRmFkZUluJylcbiAgICBnZXQgc2xpZGVJblRvcCgpOiBUdWlBbmltYXRpb25PcHRpb25zIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2l6ZSA9PT0gJ2Z1bGxzY3JlZW4nIHx8IHRoaXMuc2l6ZSA9PT0gJ3BhZ2UnIHx8IHRoaXMuaXNNb2JpbGVcbiAgICAgICAgICAgID8gdGhpcy5mdWxsc2NyZWVuQW5pbWF0aW9uXG4gICAgICAgICAgICA6IHRoaXMuYW5pbWF0aW9uO1xuICAgIH1cblxuICAgIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb250ZXh0LnJlcXVpcmVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQuJGltcGxpY2l0LmVycm9yKFJFUVVJUkVEX0VSUk9SKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC4kaW1wbGljaXQuY29tcGxldGUoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -6,16 +6,16 @@ let TuiDialogDirective = class TuiDialogDirective extends AbstractTuiDialogDirec
6
6
  };
7
7
  TuiDialogDirective = __decorate([
8
8
  Directive({
9
- selector: `ng-template[tuiDialog]`,
9
+ selector: 'ng-template[tuiDialog]',
10
10
  providers: [
11
11
  {
12
12
  provide: AbstractTuiDialogService,
13
13
  useExisting: TuiDialogService,
14
14
  },
15
15
  ],
16
- inputs: [`options: tuiDialogOptions`, `open: tuiDialog`],
17
- outputs: [`openChange: tuiDialogChange`],
16
+ inputs: ['options: tuiDialogOptions', 'open: tuiDialog'],
17
+ outputs: ['openChange: tuiDialogChange'],
18
18
  })
19
19
  ], TuiDialogDirective);
20
20
  export { TuiDialogDirective };
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZGlhbG9nLyIsInNvdXJjZXMiOlsiZGlhbG9nLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEVBQUMsMEJBQTBCLEVBQUUsd0JBQXdCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHbkYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFhbEQsSUFBYSxrQkFBa0IsR0FBL0IsTUFBYSxrQkFBc0IsU0FBUSwwQkFFMUM7Q0FBRyxDQUFBO0FBRlMsa0JBQWtCO0lBWDlCLFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSx3QkFBd0I7UUFDbEMsU0FBUyxFQUFFO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLHdCQUF3QjtnQkFDakMsV0FBVyxFQUFFLGdCQUFnQjthQUNoQztTQUNKO1FBQ0QsTUFBTSxFQUFFLENBQUMsMkJBQTJCLEVBQUUsaUJBQWlCLENBQUM7UUFDeEQsT0FBTyxFQUFFLENBQUMsNkJBQTZCLENBQUM7S0FDM0MsQ0FBQztHQUNXLGtCQUFrQixDQUUzQjtTQUZTLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWJzdHJhY3RUdWlEaWFsb2dEaXJlY3RpdmUsIEFic3RyYWN0VHVpRGlhbG9nU2VydmljZX0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1R1aURpYWxvZ09wdGlvbnN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2ludGVyZmFjZXMnO1xuXG5pbXBvcnQge1R1aURpYWxvZ1NlcnZpY2V9IGZyb20gJy4vZGlhbG9nLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogYG5nLXRlbXBsYXRlW3R1aURpYWxvZ11gLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBBYnN0cmFjdFR1aURpYWxvZ1NlcnZpY2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogVHVpRGlhbG9nU2VydmljZSxcbiAgICAgICAgfSxcbiAgICBdLFxuICAgIGlucHV0czogW2BvcHRpb25zOiB0dWlEaWFsb2dPcHRpb25zYCwgYG9wZW46IHR1aURpYWxvZ2BdLFxuICAgIG91dHB1dHM6IFtgb3BlbkNoYW5nZTogdHVpRGlhbG9nQ2hhbmdlYF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aURpYWxvZ0RpcmVjdGl2ZTxUPiBleHRlbmRzIEFic3RyYWN0VHVpRGlhbG9nRGlyZWN0aXZlPFxuICAgIFR1aURpYWxvZ09wdGlvbnM8VD5cbj4ge31cbiJdfQ==
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZGlhbG9nLyIsInNvdXJjZXMiOlsiZGlhbG9nLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEVBQUMsMEJBQTBCLEVBQUUsd0JBQXdCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHbkYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFhbEQsSUFBYSxrQkFBa0IsR0FBL0IsTUFBYSxrQkFBc0IsU0FBUSwwQkFFMUM7Q0FBRyxDQUFBO0FBRlMsa0JBQWtCO0lBWDlCLFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSx3QkFBd0I7UUFDbEMsU0FBUyxFQUFFO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLHdCQUF3QjtnQkFDakMsV0FBVyxFQUFFLGdCQUFnQjthQUNoQztTQUNKO1FBQ0QsTUFBTSxFQUFFLENBQUMsMkJBQTJCLEVBQUUsaUJBQWlCLENBQUM7UUFDeEQsT0FBTyxFQUFFLENBQUMsNkJBQTZCLENBQUM7S0FDM0MsQ0FBQztHQUNXLGtCQUFrQixDQUUzQjtTQUZTLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWJzdHJhY3RUdWlEaWFsb2dEaXJlY3RpdmUsIEFic3RyYWN0VHVpRGlhbG9nU2VydmljZX0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1R1aURpYWxvZ09wdGlvbnN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2ludGVyZmFjZXMnO1xuXG5pbXBvcnQge1R1aURpYWxvZ1NlcnZpY2V9IGZyb20gJy4vZGlhbG9nLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW3R1aURpYWxvZ10nLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBBYnN0cmFjdFR1aURpYWxvZ1NlcnZpY2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogVHVpRGlhbG9nU2VydmljZSxcbiAgICAgICAgfSxcbiAgICBdLFxuICAgIGlucHV0czogWydvcHRpb25zOiB0dWlEaWFsb2dPcHRpb25zJywgJ29wZW46IHR1aURpYWxvZyddLFxuICAgIG91dHB1dHM6IFsnb3BlbkNoYW5nZTogdHVpRGlhbG9nQ2hhbmdlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFR1aURpYWxvZ0RpcmVjdGl2ZTxUPiBleHRlbmRzIEFic3RyYWN0VHVpRGlhbG9nRGlyZWN0aXZlPFxuICAgIFR1aURpYWxvZ09wdGlvbnM8VD5cbj4ge31cbiJdfQ==
@@ -1,11 +1,11 @@
1
1
  import { DOCUMENT } from '@angular/common';
2
2
  import { ElementRef, InjectionToken } from '@angular/core';
3
3
  import { WINDOW } from '@ng-web-apis/common';
4
- import { containsOrAfter, isCurrentTarget, TuiDestroyService, typedFromEvent, } from '@taiga-ui/cdk';
4
+ import { getActualTarget, isCurrentTarget, tuiContainsOrAfter, TuiDestroyService, tuiIsElement, typedFromEvent, } from '@taiga-ui/cdk';
5
5
  import { tuiGetViewportWidth } from '@taiga-ui/core/utils/dom';
6
6
  import { POLYMORPHEUS_CONTEXT } from '@tinkoff/ng-polymorpheus';
7
7
  import { EMPTY, merge } from 'rxjs';
8
- import { filter, switchMapTo, take, takeUntil } from 'rxjs/operators';
8
+ import { filter, switchMap, take, takeUntil } from 'rxjs/operators';
9
9
  export const TUI_DIALOGS_CLOSE = new InjectionToken(`A stream to close dialogs`, {
10
10
  factory: () => EMPTY,
11
11
  });
@@ -13,20 +13,25 @@ const SCROLLBAR_PLACEHOLDER = 17;
13
13
  // eslint-disable-next-line @typescript-eslint/naming-convention
14
14
  export function dialogCloseStreamFactory(documentRef, windowRef, { nativeElement }, close$, destroy$, { dismissible }) {
15
15
  return dismissible
16
- ? merge(typedFromEvent(nativeElement, `click`).pipe(filter(isCurrentTarget)), typedFromEvent(documentRef, `keydown`).pipe(
17
- // TODO: iframe warning
18
- filter(({ key, target }) => key === `Escape` &&
19
- target instanceof Element &&
20
- (!containsOrAfter(nativeElement, target) ||
21
- nativeElement.contains(target)))), typedFromEvent(documentRef, `mousedown`).pipe(
22
- // TODO: iframe warning
23
- filter(({ target, clientX }) => target instanceof Element &&
24
- tuiGetViewportWidth(windowRef) - clientX >
25
- SCROLLBAR_PLACEHOLDER &&
26
- !containsOrAfter(nativeElement, target)), switchMapTo(typedFromEvent(documentRef, `mouseup`).pipe(take(1),
27
- // TODO: iframe warning
28
- filter(({ target }) => target instanceof Element &&
29
- !containsOrAfter(nativeElement, target))))), close$).pipe(takeUntil(destroy$))
16
+ ? merge(typedFromEvent(nativeElement, `click`).pipe(filter(isCurrentTarget)), typedFromEvent(documentRef, `keydown`).pipe(filter(event => {
17
+ const key = event.key;
18
+ const target = getActualTarget(event);
19
+ return (key === `Escape` &&
20
+ tuiIsElement(target) &&
21
+ (!tuiContainsOrAfter(nativeElement, target) ||
22
+ nativeElement.contains(target)));
23
+ })), typedFromEvent(documentRef, `mousedown`).pipe(filter(event => {
24
+ const target = getActualTarget(event);
25
+ const clientX = event.clientX;
26
+ return (tuiIsElement(target) &&
27
+ tuiGetViewportWidth(windowRef) - clientX >
28
+ SCROLLBAR_PLACEHOLDER &&
29
+ !tuiContainsOrAfter(nativeElement, target));
30
+ }), switchMap(() => typedFromEvent(documentRef, `mouseup`).pipe(take(1), filter(event => {
31
+ const target = getActualTarget(event);
32
+ return (tuiIsElement(target) &&
33
+ !tuiContainsOrAfter(nativeElement, target));
34
+ })))), close$).pipe(takeUntil(destroy$))
30
35
  : close$;
31
36
  }
32
37
  export const TUI_DIALOG_CLOSE_STREAM = new InjectionToken(`Dialogs closing stream`);
@@ -45,4 +50,4 @@ export const TUI_DIALOG_PROVIDERS = [
45
50
  useFactory: dialogCloseStreamFactory,
46
51
  },
47
52
  ];
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnByb3ZpZGVycy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZGlhbG9nLyIsInNvdXJjZXMiOlsiZGlhbG9nLnByb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFDLFVBQVUsRUFBRSxjQUFjLEVBQVcsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sRUFDSCxlQUFlLEVBQ2YsZUFBZSxFQUNmLGlCQUFpQixFQUVqQixjQUFjLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzdELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FDL0MsMkJBQTJCLEVBQzNCO0lBQ0ksT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUs7Q0FDdkIsQ0FDSixDQUFDO0FBRUYsTUFBTSxxQkFBcUIsR0FBRyxFQUFFLENBQUM7QUFFakMsZ0VBQWdFO0FBQ2hFLE1BQU0sVUFBVSx3QkFBd0IsQ0FDcEMsV0FBcUIsRUFDckIsU0FBaUIsRUFDakIsRUFBQyxhQUFhLEVBQTBCLEVBQ3hDLE1BQXdCLEVBQ3hCLFFBQTBCLEVBQzFCLEVBQUMsV0FBVyxFQUFnRDtJQUU1RCxPQUFPLFdBQVc7UUFDZCxDQUFDLENBQUMsS0FBSyxDQUNELGNBQWMsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUNwRSxjQUFjLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDLElBQUk7UUFDdkMsdUJBQXVCO1FBQ3ZCLE1BQU0sQ0FDRixDQUFDLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxFQUFFLEVBQUUsQ0FDZCxHQUFHLEtBQUssUUFBUTtZQUNoQixNQUFNLFlBQVksT0FBTztZQUN6QixDQUFDLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUM7Z0JBQ3BDLGFBQWEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FDMUMsQ0FDSixFQUNELGNBQWMsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUMsSUFBSTtRQUN6Qyx1QkFBdUI7UUFDdkIsTUFBTSxDQUNGLENBQUMsRUFBQyxNQUFNLEVBQUUsT0FBTyxFQUFDLEVBQUUsRUFBRSxDQUNsQixNQUFNLFlBQVksT0FBTztZQUN6QixtQkFBbUIsQ0FBQyxTQUFTLENBQUMsR0FBRyxPQUFPO2dCQUNwQyxxQkFBcUI7WUFDekIsQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUM5QyxFQUNELFdBQVcsQ0FDUCxjQUFjLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FDdkMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNQLHVCQUF1QjtRQUN2QixNQUFNLENBQ0YsQ0FBQyxFQUFDLE1BQU0sRUFBQyxFQUFFLEVBQUUsQ0FDVCxNQUFNLFlBQVksT0FBTztZQUN6QixDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQzlDLENBQ0osQ0FDSixDQUNKLEVBQ0QsTUFBTSxDQUNULENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3QixDQUFDLENBQUMsTUFBTSxDQUFDO0FBQ2pCLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLGNBQWMsQ0FDckQsd0JBQXdCLENBQzNCLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBZTtJQUM1QyxpQkFBaUI7SUFDakI7UUFDSSxPQUFPLEVBQUUsdUJBQXVCO1FBQ2hDLElBQUksRUFBRTtZQUNGLFFBQVE7WUFDUixNQUFNO1lBQ04sVUFBVTtZQUNWLGlCQUFpQjtZQUNqQixpQkFBaUI7WUFDakIsb0JBQW9CO1NBQ3ZCO1FBQ0QsVUFBVSxFQUFFLHdCQUF3QjtLQUN2QztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtFbGVtZW50UmVmLCBJbmplY3Rpb25Ub2tlbiwgUHJvdmlkZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtXSU5ET1d9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBjb250YWluc09yQWZ0ZXIsXG4gICAgaXNDdXJyZW50VGFyZ2V0LFxuICAgIFR1aURlc3Ryb3lTZXJ2aWNlLFxuICAgIFR1aURpYWxvZyxcbiAgICB0eXBlZEZyb21FdmVudCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1R1aURpYWxvZ09wdGlvbnN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2ludGVyZmFjZXMnO1xuaW1wb3J0IHt0dWlHZXRWaWV3cG9ydFdpZHRofSBmcm9tICdAdGFpZ2EtdWkvY29yZS91dGlscy9kb20nO1xuaW1wb3J0IHtQT0xZTU9SUEhFVVNfQ09OVEVYVH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7RU1QVFksIG1lcmdlLCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZmlsdGVyLCBzd2l0Y2hNYXBUbywgdGFrZSwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBjb25zdCBUVUlfRElBTE9HU19DTE9TRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxPYnNlcnZhYmxlPHVua25vd24+PihcbiAgICBgQSBzdHJlYW0gdG8gY2xvc2UgZGlhbG9nc2AsXG4gICAge1xuICAgICAgICBmYWN0b3J5OiAoKSA9PiBFTVBUWSxcbiAgICB9LFxuKTtcblxuY29uc3QgU0NST0xMQkFSX1BMQUNFSE9MREVSID0gMTc7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBmdW5jdGlvbiBkaWFsb2dDbG9zZVN0cmVhbUZhY3RvcnkoXG4gICAgZG9jdW1lbnRSZWY6IERvY3VtZW50LFxuICAgIHdpbmRvd1JlZjogV2luZG93LFxuICAgIHtuYXRpdmVFbGVtZW50fTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgY2xvc2UkOiBPYnNlcnZhYmxlPHZvaWQ+LFxuICAgIGRlc3Ryb3kkOiBPYnNlcnZhYmxlPHZvaWQ+LFxuICAgIHtkaXNtaXNzaWJsZX06IFR1aURpYWxvZzxUdWlEaWFsb2dPcHRpb25zPHVua25vd24+LCB1bmtub3duPixcbik6IE9ic2VydmFibGU8dW5rbm93bj4ge1xuICAgIHJldHVybiBkaXNtaXNzaWJsZVxuICAgICAgICA/IG1lcmdlKFxuICAgICAgICAgICAgICB0eXBlZEZyb21FdmVudChuYXRpdmVFbGVtZW50LCBgY2xpY2tgKS5waXBlKGZpbHRlcihpc0N1cnJlbnRUYXJnZXQpKSxcbiAgICAgICAgICAgICAgdHlwZWRGcm9tRXZlbnQoZG9jdW1lbnRSZWYsIGBrZXlkb3duYCkucGlwZShcbiAgICAgICAgICAgICAgICAgIC8vIFRPRE86IGlmcmFtZSB3YXJuaW5nXG4gICAgICAgICAgICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgICAgKHtrZXksIHRhcmdldH0pID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9PT0gYEVzY2FwZWAgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0IGluc3RhbmNlb2YgRWxlbWVudCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoIWNvbnRhaW5zT3JBZnRlcihuYXRpdmVFbGVtZW50LCB0YXJnZXQpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXRpdmVFbGVtZW50LmNvbnRhaW5zKHRhcmdldCkpLFxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgdHlwZWRGcm9tRXZlbnQoZG9jdW1lbnRSZWYsIGBtb3VzZWRvd25gKS5waXBlKFxuICAgICAgICAgICAgICAgICAgLy8gVE9ETzogaWZyYW1lIHdhcm5pbmdcbiAgICAgICAgICAgICAgICAgIGZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgICAoe3RhcmdldCwgY2xpZW50WH0pID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldCBpbnN0YW5jZW9mIEVsZW1lbnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHVpR2V0Vmlld3BvcnRXaWR0aCh3aW5kb3dSZWYpIC0gY2xpZW50WCA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTQ1JPTExCQVJfUExBQ0VIT0xERVIgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIWNvbnRhaW5zT3JBZnRlcihuYXRpdmVFbGVtZW50LCB0YXJnZXQpLFxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcFRvKFxuICAgICAgICAgICAgICAgICAgICAgIHR5cGVkRnJvbUV2ZW50KGRvY3VtZW50UmVmLCBgbW91c2V1cGApLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IGlmcmFtZSB3YXJuaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh7dGFyZ2V0fSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQgaW5zdGFuY2VvZiBFbGVtZW50ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWNvbnRhaW5zT3JBZnRlcihuYXRpdmVFbGVtZW50LCB0YXJnZXQpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICBjbG9zZSQsXG4gICAgICAgICAgKS5waXBlKHRha2VVbnRpbChkZXN0cm95JCkpXG4gICAgICAgIDogY2xvc2UkO1xufVxuXG5leHBvcnQgY29uc3QgVFVJX0RJQUxPR19DTE9TRV9TVFJFQU0gPSBuZXcgSW5qZWN0aW9uVG9rZW48T2JzZXJ2YWJsZTx1bmtub3duPj4oXG4gICAgYERpYWxvZ3MgY2xvc2luZyBzdHJlYW1gLFxuKTtcbmV4cG9ydCBjb25zdCBUVUlfRElBTE9HX1BST1ZJREVSUzogUHJvdmlkZXJbXSA9IFtcbiAgICBUdWlEZXN0cm95U2VydmljZSxcbiAgICB7XG4gICAgICAgIHByb3ZpZGU6IFRVSV9ESUFMT0dfQ0xPU0VfU1RSRUFNLFxuICAgICAgICBkZXBzOiBbXG4gICAgICAgICAgICBET0NVTUVOVCxcbiAgICAgICAgICAgIFdJTkRPVyxcbiAgICAgICAgICAgIEVsZW1lbnRSZWYsXG4gICAgICAgICAgICBUVUlfRElBTE9HU19DTE9TRSxcbiAgICAgICAgICAgIFR1aURlc3Ryb3lTZXJ2aWNlLFxuICAgICAgICAgICAgUE9MWU1PUlBIRVVTX0NPTlRFWFQsXG4gICAgICAgIF0sXG4gICAgICAgIHVzZUZhY3Rvcnk6IGRpYWxvZ0Nsb3NlU3RyZWFtRmFjdG9yeSxcbiAgICB9LFxuXTtcbiJdfQ==
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnByb3ZpZGVycy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZGlhbG9nLyIsInNvdXJjZXMiOlsiZGlhbG9nLnByb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFDLFVBQVUsRUFBRSxjQUFjLEVBQVcsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sRUFDSCxlQUFlLEVBQ2YsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixpQkFBaUIsRUFFakIsWUFBWSxFQUNaLGNBQWMsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDOUQsT0FBTyxFQUFDLEtBQUssRUFBRSxLQUFLLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUMvQywyQkFBMkIsRUFDM0I7SUFDSSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSztDQUN2QixDQUNKLENBQUM7QUFFRixNQUFNLHFCQUFxQixHQUFHLEVBQUUsQ0FBQztBQUVqQyxnRUFBZ0U7QUFDaEUsTUFBTSxVQUFVLHdCQUF3QixDQUNwQyxXQUFxQixFQUNyQixTQUFpQixFQUNqQixFQUFDLGFBQWEsRUFBMEIsRUFDeEMsTUFBd0IsRUFDeEIsUUFBMEIsRUFDMUIsRUFBQyxXQUFXLEVBQWdEO0lBRTVELE9BQU8sV0FBVztRQUNkLENBQUMsQ0FBQyxLQUFLLENBQ0QsY0FBYyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEVBQ3BFLGNBQWMsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUN2QyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDWCxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1lBQ3RCLE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUV0QyxPQUFPLENBQ0gsR0FBRyxLQUFLLFFBQVE7Z0JBQ2hCLFlBQVksQ0FBQyxNQUFNLENBQUM7Z0JBQ3BCLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDO29CQUN2QyxhQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQ3RDLENBQUM7UUFDTixDQUFDLENBQUMsQ0FDTCxFQUNELGNBQWMsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUN6QyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDWCxNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUU5QixPQUFPLENBQ0gsWUFBWSxDQUFDLE1BQU0sQ0FBQztnQkFDcEIsbUJBQW1CLENBQUMsU0FBUyxDQUFDLEdBQUcsT0FBTztvQkFDcEMscUJBQXFCO2dCQUN6QixDQUFDLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FDN0MsQ0FBQztRQUNOLENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FDWCxjQUFjLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FDdkMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNYLE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUV0QyxPQUFPLENBQ0gsWUFBWSxDQUFDLE1BQU0sQ0FBQztnQkFDcEIsQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQzdDLENBQUM7UUFDTixDQUFDLENBQUMsQ0FDTCxDQUNKLENBQ0osRUFDRCxNQUFNLENBQ1QsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFDakIsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLElBQUksY0FBYyxDQUNyRCx3QkFBd0IsQ0FDM0IsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFlO0lBQzVDLGlCQUFpQjtJQUNqQjtRQUNJLE9BQU8sRUFBRSx1QkFBdUI7UUFDaEMsSUFBSSxFQUFFO1lBQ0YsUUFBUTtZQUNSLE1BQU07WUFDTixVQUFVO1lBQ1YsaUJBQWlCO1lBQ2pCLGlCQUFpQjtZQUNqQixvQkFBb0I7U0FDdkI7UUFDRCxVQUFVLEVBQUUsd0JBQXdCO0tBQ3ZDO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0VsZW1lbnRSZWYsIEluamVjdGlvblRva2VuLCBQcm92aWRlcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1dJTkRPV30gZnJvbSAnQG5nLXdlYi1hcGlzL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIGdldEFjdHVhbFRhcmdldCxcbiAgICBpc0N1cnJlbnRUYXJnZXQsXG4gICAgdHVpQ29udGFpbnNPckFmdGVyLFxuICAgIFR1aURlc3Ryb3lTZXJ2aWNlLFxuICAgIFR1aURpYWxvZyxcbiAgICB0dWlJc0VsZW1lbnQsXG4gICAgdHlwZWRGcm9tRXZlbnQsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUdWlEaWFsb2dPcHRpb25zfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9pbnRlcmZhY2VzJztcbmltcG9ydCB7dHVpR2V0Vmlld3BvcnRXaWR0aH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdXRpbHMvZG9tJztcbmltcG9ydCB7UE9MWU1PUlBIRVVTX0NPTlRFWFR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge0VNUFRZLCBtZXJnZSwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpbHRlciwgc3dpdGNoTWFwLCB0YWtlLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGNvbnN0IFRVSV9ESUFMT0dTX0NMT1NFID0gbmV3IEluamVjdGlvblRva2VuPE9ic2VydmFibGU8dW5rbm93bj4+KFxuICAgIGBBIHN0cmVhbSB0byBjbG9zZSBkaWFsb2dzYCxcbiAgICB7XG4gICAgICAgIGZhY3Rvcnk6ICgpID0+IEVNUFRZLFxuICAgIH0sXG4pO1xuXG5jb25zdCBTQ1JPTExCQVJfUExBQ0VIT0xERVIgPSAxNztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGZ1bmN0aW9uIGRpYWxvZ0Nsb3NlU3RyZWFtRmFjdG9yeShcbiAgICBkb2N1bWVudFJlZjogRG9jdW1lbnQsXG4gICAgd2luZG93UmVmOiBXaW5kb3csXG4gICAge25hdGl2ZUVsZW1lbnR9OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBjbG9zZSQ6IE9ic2VydmFibGU8dm9pZD4sXG4gICAgZGVzdHJveSQ6IE9ic2VydmFibGU8dm9pZD4sXG4gICAge2Rpc21pc3NpYmxlfTogVHVpRGlhbG9nPFR1aURpYWxvZ09wdGlvbnM8dW5rbm93bj4sIHVua25vd24+LFxuKTogT2JzZXJ2YWJsZTx1bmtub3duPiB7XG4gICAgcmV0dXJuIGRpc21pc3NpYmxlXG4gICAgICAgID8gbWVyZ2UoXG4gICAgICAgICAgICAgIHR5cGVkRnJvbUV2ZW50KG5hdGl2ZUVsZW1lbnQsIGBjbGlja2ApLnBpcGUoZmlsdGVyKGlzQ3VycmVudFRhcmdldCkpLFxuICAgICAgICAgICAgICB0eXBlZEZyb21FdmVudChkb2N1bWVudFJlZiwgYGtleWRvd25gKS5waXBlKFxuICAgICAgICAgICAgICAgICAgZmlsdGVyKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBldmVudC5rZXk7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZ2V0QWN0dWFsVGFyZ2V0KGV2ZW50KTtcblxuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9PT0gYEVzY2FwZWAgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHVpSXNFbGVtZW50KHRhcmdldCkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKCF0dWlDb250YWluc09yQWZ0ZXIobmF0aXZlRWxlbWVudCwgdGFyZ2V0KSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF0aXZlRWxlbWVudC5jb250YWlucyh0YXJnZXQpKVxuICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgdHlwZWRGcm9tRXZlbnQoZG9jdW1lbnRSZWYsIGBtb3VzZWRvd25gKS5waXBlKFxuICAgICAgICAgICAgICAgICAgZmlsdGVyKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBnZXRBY3R1YWxUYXJnZXQoZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNsaWVudFggPSBldmVudC5jbGllbnRYO1xuXG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHVpSXNFbGVtZW50KHRhcmdldCkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHVpR2V0Vmlld3BvcnRXaWR0aCh3aW5kb3dSZWYpIC0gY2xpZW50WCA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTQ1JPTExCQVJfUExBQ0VIT0xERVIgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIXR1aUNvbnRhaW5zT3JBZnRlcihuYXRpdmVFbGVtZW50LCB0YXJnZXQpXG4gICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZWRGcm9tRXZlbnQoZG9jdW1lbnRSZWYsIGBtb3VzZXVwYCkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGdldEFjdHVhbFRhcmdldChldmVudCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHVpSXNFbGVtZW50KHRhcmdldCkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhdHVpQ29udGFpbnNPckFmdGVyKG5hdGl2ZUVsZW1lbnQsIHRhcmdldClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICBjbG9zZSQsXG4gICAgICAgICAgKS5waXBlKHRha2VVbnRpbChkZXN0cm95JCkpXG4gICAgICAgIDogY2xvc2UkO1xufVxuXG5leHBvcnQgY29uc3QgVFVJX0RJQUxPR19DTE9TRV9TVFJFQU0gPSBuZXcgSW5qZWN0aW9uVG9rZW48T2JzZXJ2YWJsZTx1bmtub3duPj4oXG4gICAgYERpYWxvZ3MgY2xvc2luZyBzdHJlYW1gLFxuKTtcbmV4cG9ydCBjb25zdCBUVUlfRElBTE9HX1BST1ZJREVSUzogUHJvdmlkZXJbXSA9IFtcbiAgICBUdWlEZXN0cm95U2VydmljZSxcbiAgICB7XG4gICAgICAgIHByb3ZpZGU6IFRVSV9ESUFMT0dfQ0xPU0VfU1RSRUFNLFxuICAgICAgICBkZXBzOiBbXG4gICAgICAgICAgICBET0NVTUVOVCxcbiAgICAgICAgICAgIFdJTkRPVyxcbiAgICAgICAgICAgIEVsZW1lbnRSZWYsXG4gICAgICAgICAgICBUVUlfRElBTE9HU19DTE9TRSxcbiAgICAgICAgICAgIFR1aURlc3Ryb3lTZXJ2aWNlLFxuICAgICAgICAgICAgUE9MWU1PUlBIRVVTX0NPTlRFWFQsXG4gICAgICAgIF0sXG4gICAgICAgIHVzZUZhY3Rvcnk6IGRpYWxvZ0Nsb3NlU3RyZWFtRmFjdG9yeSxcbiAgICB9LFxuXTtcbiJdfQ==
@@ -27,14 +27,14 @@ let TuiDropdownBoxComponent = class TuiDropdownBoxComponent {
27
27
  * Is previous position on top (to prevent jumping up and down on scroll)
28
28
  */
29
29
  this.prevDirectionIsTop = false;
30
- merge(animationFrame$.pipe(throttleTime(POLLING_TIME)), this.directive.refresh$, fromEvent(this.windowRef, `resize`))
30
+ merge(animationFrame$.pipe(throttleTime(POLLING_TIME)), this.directive.refresh$, fromEvent(this.windowRef, 'resize'))
31
31
  .pipe(tuiZonefree(ngZone), takeUntil(destroy$))
32
32
  .subscribe(() => {
33
33
  this.calculatePositionAndSize();
34
34
  });
35
35
  }
36
36
  get overscroll() {
37
- return this.inModal ? `all` : `scroll`;
37
+ return this.inModal ? 'all' : 'scroll';
38
38
  }
39
39
  getContext(context, activeZone) {
40
40
  return Object.assign(Object.assign({}, context), { activeZone });
@@ -50,11 +50,11 @@ let TuiDropdownBoxComponent = class TuiDropdownBoxComponent {
50
50
  }
51
51
  get inModal() {
52
52
  // @awful TODO: get rid of component tag name dependency
53
- return !!this.directive.host.closest(`tui-dialog-host`);
53
+ return !!this.directive.host.closest('tui-dialog-host');
54
54
  }
55
55
  get inOption() {
56
56
  // @awful TODO: get rid of component tag name dependency
57
- return !!this.directive.host.closest(`[tuiOption]`);
57
+ return !!this.directive.host.closest('[tuiOption]');
58
58
  }
59
59
  calculatePositionAndSize() {
60
60
  const { clientRect } = this.directive;
@@ -62,7 +62,7 @@ let TuiDropdownBoxComponent = class TuiDropdownBoxComponent {
62
62
  const hostRect = this.directive.fixed
63
63
  ? this.portalHost.fixedPositionOffset()
64
64
  : this.portalHost.clientRect;
65
- style.position = this.directive.fixed ? `fixed` : `absolute`;
65
+ style.position = this.directive.fixed ? 'fixed' : 'absolute';
66
66
  this.calculateVerticalPosition(style, clientRect, hostRect);
67
67
  this.calculateHorizontalPosition(style, clientRect, hostRect);
68
68
  this.calculateWidth(style, clientRect);
@@ -76,23 +76,23 @@ let TuiDropdownBoxComponent = class TuiDropdownBoxComponent {
76
76
  const isDropdownSizeActuallyFitsViewport = dropdownRect.right <= screenWidth && dropdownRect.left >= 0;
77
77
  let finalAlign = this.directive.align;
78
78
  switch (this.directive.align) {
79
- case `left`:
79
+ case 'left':
80
80
  if (isDropdownSizeHypotheticallyFitsViewport &&
81
81
  dropdownRect.right > screenWidth) {
82
- finalAlign = `right`;
82
+ finalAlign = 'right';
83
83
  }
84
84
  break;
85
- case `right`:
85
+ case 'right':
86
86
  if (isDropdownSizeHypotheticallyFitsViewport && dropdownRect.left < 0) {
87
- finalAlign = `left`;
87
+ finalAlign = 'left';
88
88
  }
89
89
  break;
90
90
  }
91
- if (style.right === `auto` && isDropdownSizeActuallyFitsViewport) {
92
- finalAlign = `left`;
91
+ if (style.right === 'auto' && isDropdownSizeActuallyFitsViewport) {
92
+ finalAlign = 'left';
93
93
  }
94
- if (style.left === `auto` && isDropdownSizeActuallyFitsViewport) {
95
- finalAlign = `right`;
94
+ if (style.left === 'auto' && isDropdownSizeActuallyFitsViewport) {
95
+ finalAlign = 'right';
96
96
  }
97
97
  return finalAlign;
98
98
  }
@@ -111,26 +111,26 @@ let TuiDropdownBoxComponent = class TuiDropdownBoxComponent {
111
111
  const right = Math.floor(hostRect.right - directiveRect.right - offset);
112
112
  const viewportWidth = tuiGetViewportWidth(this.windowRef);
113
113
  switch (this.getFinalAlign(style, directiveRect)) {
114
- case `left`:
114
+ case 'left':
115
115
  if (right + DEFAULT_MARGIN > viewportWidth ||
116
116
  inRange(left + DEFAULT_MARGIN, 0, viewportWidth)) {
117
117
  style.left = px(left);
118
- style.right = `auto`;
118
+ style.right = 'auto';
119
119
  }
120
120
  else {
121
- style.left = `auto`;
121
+ style.left = 'auto';
122
122
  style.right = px(right);
123
123
  }
124
124
  break;
125
- case `right`:
125
+ case 'right':
126
126
  if (inRange(right + DEFAULT_MARGIN, 0, viewportWidth) ||
127
127
  left + DEFAULT_MARGIN > viewportWidth) {
128
- style.left = `auto`;
128
+ style.left = 'auto';
129
129
  style.right = px(right);
130
130
  }
131
131
  else {
132
132
  style.left = px(left);
133
- style.right = `auto`;
133
+ style.right = 'auto';
134
134
  }
135
135
  break;
136
136
  }
@@ -153,11 +153,11 @@ let TuiDropdownBoxComponent = class TuiDropdownBoxComponent {
153
153
  const bottomAvailableHeight = windowHeight - directiveRect.bottom - offset;
154
154
  const finalDirection = this.getFinalDirection(directiveRect);
155
155
  const optionOffset = this.inOption ? DEFAULT_MARGIN * 2 : 0;
156
- this.prevDirectionIsTop = finalDirection === `top`;
157
- if (finalDirection === `top`) {
156
+ this.prevDirectionIsTop = finalDirection === 'top';
157
+ if (finalDirection === 'top') {
158
158
  this.dropdownAnimation = this.animationBottom;
159
159
  style.maxHeight = px(Math.min(boxHeightLimit, topAvailableHeight));
160
- style.top = `auto`;
160
+ style.top = 'auto';
161
161
  style.bottom = px(hostRect.bottom -
162
162
  directiveRect.top -
163
163
  DEFAULT_MARGIN +
@@ -172,7 +172,7 @@ let TuiDropdownBoxComponent = class TuiDropdownBoxComponent {
172
172
  DEFAULT_MARGIN +
173
173
  offset -
174
174
  optionOffset);
175
- style.bottom = `auto`;
175
+ style.bottom = 'auto';
176
176
  }
177
177
  }
178
178
  getFinalDirection(directiveRect) {
@@ -186,14 +186,14 @@ let TuiDropdownBoxComponent = class TuiDropdownBoxComponent {
186
186
  let finalDirection = null;
187
187
  // Given direction is applied if we can fit the box in the limits that way
188
188
  switch (this.directive.direction) {
189
- case `top`:
189
+ case 'top':
190
190
  if (topAvailableHeight >= this.directive.minHeight) {
191
- finalDirection = `top`;
191
+ finalDirection = 'top';
192
192
  }
193
193
  break;
194
- case `bottom`:
194
+ case 'bottom':
195
195
  if (bottomAvailableHeight >= this.directive.minHeight) {
196
- finalDirection = `bottom`;
196
+ finalDirection = 'bottom';
197
197
  }
198
198
  break;
199
199
  }
@@ -208,15 +208,15 @@ let TuiDropdownBoxComponent = class TuiDropdownBoxComponent {
208
208
  // If there is enough space to fit below without scroll,
209
209
  // choose 'bottom', unless it was previously on the top
210
210
  if (this.prevDirectionIsTop && topAvailableHeight >= visualHeight) {
211
- finalDirection = `top`;
211
+ finalDirection = 'top';
212
212
  }
213
213
  else if (bottomAvailableHeight >= visualHeight) {
214
- finalDirection = `bottom`;
214
+ finalDirection = 'bottom';
215
215
  }
216
216
  else {
217
217
  // Corner case — select direction with more space
218
218
  finalDirection =
219
- bottomAvailableHeight >= topAvailableHeight ? `bottom` : `top`;
219
+ bottomAvailableHeight >= topAvailableHeight ? 'bottom' : 'top';
220
220
  }
221
221
  }
222
222
  return finalDirection;
@@ -229,16 +229,16 @@ let TuiDropdownBoxComponent = class TuiDropdownBoxComponent {
229
229
  */
230
230
  calculateWidth(style, directiveRect) {
231
231
  style.width =
232
- this.directive.limitMinWidth === `fixed` && !this.directive.sided
232
+ this.directive.limitMinWidth === 'fixed' && !this.directive.sided
233
233
  ? px(directiveRect.width)
234
- : ``;
235
- if (this.directive.limitMinWidth === `min` && !this.directive.sided) {
234
+ : '';
235
+ if (this.directive.limitMinWidth === 'min' && !this.directive.sided) {
236
236
  style.minWidth = px(directiveRect.width);
237
237
  style.maxWidth = px(DEFAULT_MAX_WIDTH);
238
238
  return;
239
239
  }
240
- style.minWidth = ``;
241
- style.maxWidth = ``;
240
+ style.minWidth = '';
241
+ style.maxWidth = '';
242
242
  }
243
243
  moveFocusOutside(previous) {
244
244
  const { host } = this.directive;
@@ -263,10 +263,10 @@ TuiDropdownBoxComponent.ctorParameters = () => [
263
263
  { type: Observable, decorators: [{ type: Inject, args: [ANIMATION_FRAME,] }] }
264
264
  ];
265
265
  __decorate([
266
- HostBinding(`@tuiDropdownAnimation`)
266
+ HostBinding('@tuiDropdownAnimation')
267
267
  ], TuiDropdownBoxComponent.prototype, "dropdownAnimation", void 0);
268
268
  __decorate([
269
- ViewChild(`content`, { read: ElementRef })
269
+ ViewChild('content', { read: ElementRef })
270
270
  ], TuiDropdownBoxComponent.prototype, "contentElementRef", void 0);
271
271
  __decorate([
272
272
  tuiPure
@@ -279,7 +279,7 @@ __decorate([
279
279
  ], TuiDropdownBoxComponent.prototype, "inOption", null);
280
280
  TuiDropdownBoxComponent = __decorate([
281
281
  Component({
282
- selector: `tui-dropdown-box`,
282
+ selector: 'tui-dropdown-box',
283
283
  template: "<div\n #activeZone=\"tuiActiveZone\"\n class=\"t-wrapper\"\n [tuiOverscroll]=\"overscroll\"\n [tuiMode]=\"null\"\n [tuiActiveZoneParent]=\"directive.activeZone || null\"\n>\n <tui-scrollbar class=\"t-scroll\">\n <div\n tabindex=\"0\"\n (focus)=\"onTopFocus()\"\n ></div>\n <div\n #content\n polymorpheus-outlet\n class=\"t-content\"\n [content]=\"directive.content\"\n [context]=\"getContext(directive.context, activeZone)\"\n ></div>\n <div\n tabindex=\"0\"\n (focus)=\"onBottomFocus()\"\n ></div>\n </tui-scrollbar>\n</div>\n",
284
284
  changeDetection: ChangeDetectionStrategy.Default,
285
285
  providers: [TuiDestroyService],
@@ -296,4 +296,4 @@ TuiDropdownBoxComponent = __decorate([
296
296
  __param(7, Inject(ANIMATION_FRAME))
297
297
  ], TuiDropdownBoxComponent);
298
298
  export { TuiDropdownBoxComponent };
299
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZHJvcGRvd24tYm94LyIsInNvdXJjZXMiOlsiZHJvcGRvd24tYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUNILGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQ0gsOEJBQThCLEVBQzlCLG1CQUFtQixFQUNuQixPQUFPLEVBQ1AsWUFBWSxFQUNaLEVBQUUsRUFDRixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsa0JBQWtCLEVBQ2xCLE9BQU8sRUFDUCxXQUFXLEdBQ2QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFDLGNBQWMsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRzNFLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRXBGLE9BQU8sRUFBQyxjQUFjLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RDs7R0FFRztBQUNILG9CQUFvQjtBQUNwQiw4RkFBOEY7QUFDOUYsV0FBVztBQVNYLElBQWEsdUJB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QkFBa0I7UUFDNUIsNnJCQUEyQztRQUUzQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsT0FBTztRQUNoRCxTQUFTLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztRQUM5QixVQUFVLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQzs7S0FDckMsQ0FBQztJQXdCTyxXQUFBLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0lBRXpCLFdBQUEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2QsV0FBQSxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtJQUM5QixXQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNkLFdBQUEsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ2xCLFdBQUEsTUFBTSxDQUFDLDhCQUE4QixDQUFDLENBQUE7SUFFdEMsV0FBQSxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQTtJQUM3QixXQUFBLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQTtHQWhDbkIsdUJBQXVCLENBc1ZuQztTQXRWWSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FuaW1hdGlvbk9wdGlvbnN9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdDaGVja2VkLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBOZ1pvbmUsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QU5JTUFUSU9OX0ZSQU1FLCBXSU5ET1d9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aVBvcnRhbEhvc3RDb21wb25lbnQsXG4gICAgZ2V0Q2xvc2VzdEZvY3VzYWJsZSxcbiAgICBpblJhbmdlLFxuICAgIFBPTExJTkdfVElNRSxcbiAgICBweCxcbiAgICBUdWlBY3RpdmVab25lRGlyZWN0aXZlLFxuICAgIHR1aUFzc2VydElzSFRNTEVsZW1lbnQsXG4gICAgVHVpRGVzdHJveVNlcnZpY2UsXG4gICAgVHVpRHJvcGRvd25Ib3N0Q29tcG9uZW50LFxuICAgIFR1aU92ZXJzY3JvbGxNb2RlVCxcbiAgICB0dWlQdXJlLFxuICAgIHR1aVpvbmVmcmVlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7dHVpRHJvcGRvd25BbmltYXRpb259IGZyb20gJ0B0YWlnYS11aS9jb3JlL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtERUZBVUxUX01BUkdJTiwgREVGQVVMVF9NQVhfV0lEVEh9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbnN0YW50cyc7XG5pbXBvcnQge1R1aURyb3Bkb3duQW5pbWF0aW9ufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9lbnVtcyc7XG5pbXBvcnQge1R1aUFuaW1hdGlvbk9wdGlvbnMsIFR1aURyb3Bkb3dufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9pbnRlcmZhY2VzJztcbmltcG9ydCB7VFVJX0FOSU1BVElPTl9PUFRJT05TLCBUVUlfRFJPUERPV05fRElSRUNUSVZFfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHtUdWlIb3Jpem9udGFsRGlyZWN0aW9uLCBUdWlWZXJ0aWNhbERpcmVjdGlvbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHtnZXRTY3JlZW5XaWR0aCwgdHVpR2V0Vmlld3BvcnRXaWR0aH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdXRpbHMvZG9tJztcbmltcG9ydCB7ZnJvbUV2ZW50LCBtZXJnZSwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3Rha2VVbnRpbCwgdGhyb3R0bGVUaW1lfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8qKlxuICogIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgdG8gc2hvdyB0ZW1wbGF0ZSBpbiBhIHBvcnRhbCB1c2luZyBkZWZhdWx0IHN0eWxlIG9mIHdoaXRlIHJvdW5kZWQgYm94IHdpdGggYSBzaGFkb3dcbiAqL1xuLy8gQGJhZCBUT0RPOiBPblB1c2hcbi8vIEFtYmllbnQgdHlwZSBjYW5ub3QgYmUgdXNlZCB3aXRob3V0IGR5bmFtaWMgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMjMzOTVcbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogYHR1aS1kcm9wZG93bi1ib3hgLFxuICAgIHRlbXBsYXRlVXJsOiBgLi9kcm9wZG93bi1ib3gudGVtcGxhdGUuaHRtbGAsXG4gICAgc3R5bGVVcmxzOiBbYC4vZHJvcGRvd24tYm94LnN0eWxlLmxlc3NgXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXG4gICAgcHJvdmlkZXJzOiBbVHVpRGVzdHJveVNlcnZpY2VdLFxuICAgIGFuaW1hdGlvbnM6IFt0dWlEcm9wZG93bkFuaW1hdGlvbl0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aURyb3Bkb3duQm94Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhbmltYXRpb25Ub3AgPSB7XG4gICAgICAgIHZhbHVlOiBUdWlEcm9wZG93bkFuaW1hdGlvbi5GYWRlSW5Ub3AsXG4gICAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbmltYXRpb25Cb3R0b20gPSB7XG4gICAgICAgIHZhbHVlOiBUdWlEcm9wZG93bkFuaW1hdGlvbi5GYWRlSW5Cb3R0b20sXG4gICAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogSXMgcHJldmlvdXMgcG9zaXRpb24gb24gdG9wICh0byBwcmV2ZW50IGp1bXBpbmcgdXAgYW5kIGRvd24gb24gc2Nyb2xsKVxuICAgICAqL1xuICAgIHByaXZhdGUgcHJldkRpcmVjdGlvbklzVG9wID0gZmFsc2U7XG5cbiAgICBASG9zdEJpbmRpbmcoYEB0dWlEcm9wZG93bkFuaW1hdGlvbmApXG4gICAgZHJvcGRvd25BbmltYXRpb24hOiBUdWlBbmltYXRpb25PcHRpb25zO1xuXG4gICAgQFZpZXdDaGlsZChgY29udGVudGAsIHtyZWFkOiBFbGVtZW50UmVmfSlcbiAgICByZWFkb25seSBjb250ZW50RWxlbWVudFJlZj86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVHVpRGVzdHJveVNlcnZpY2UpXG4gICAgICAgIGRlc3Ryb3kkOiBUdWlEZXN0cm95U2VydmljZSxcbiAgICAgICAgQEluamVjdChOZ1pvbmUpIG5nWm9uZTogTmdab25lLFxuICAgICAgICBASW5qZWN0KFRVSV9EUk9QRE9XTl9ESVJFQ1RJVkUpIHJlYWRvbmx5IGRpcmVjdGl2ZTogVHVpRHJvcGRvd24sXG4gICAgICAgIEBJbmplY3QoV0lORE9XKSBwcml2YXRlIHJlYWRvbmx5IHdpbmRvd1JlZjogV2luZG93LFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoQWJzdHJhY3RUdWlQb3J0YWxIb3N0Q29tcG9uZW50KVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHBvcnRhbEhvc3Q6IFR1aURyb3Bkb3duSG9zdENvbXBvbmVudCxcbiAgICAgICAgQEluamVjdChUVUlfQU5JTUFUSU9OX09QVElPTlMpIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogQW5pbWF0aW9uT3B0aW9ucyxcbiAgICAgICAgQEluamVjdChBTklNQVRJT05fRlJBTUUpIGFuaW1hdGlvbkZyYW1lJDogT2JzZXJ2YWJsZTxudW1iZXI+LFxuICAgICkge1xuICAgICAgICBtZXJnZShcbiAgICAgICAgICAgIGFuaW1hdGlvbkZyYW1lJC5waXBlKHRocm90dGxlVGltZShQT0xMSU5HX1RJTUUpKSxcbiAgICAgICAgICAgIHRoaXMuZGlyZWN0aXZlLnJlZnJlc2gkLFxuICAgICAgICAgICAgZnJvbUV2ZW50KHRoaXMud2luZG93UmVmLCBgcmVzaXplYCksXG4gICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKHR1aVpvbmVmcmVlKG5nWm9uZSksIHRha2VVbnRpbChkZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZVBvc2l0aW9uQW5kU2l6ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IG92ZXJzY3JvbGwoKTogVHVpT3ZlcnNjcm9sbE1vZGVUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5Nb2RhbCA/IGBhbGxgIDogYHNjcm9sbGA7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBnZXRDb250ZXh0PFQgZXh0ZW5kcyBvYmplY3Q+KFxuICAgICAgICBjb250ZXh0PzogVCxcbiAgICAgICAgYWN0aXZlWm9uZT86IFR1aUFjdGl2ZVpvbmVEaXJlY3RpdmUsXG4gICAgKTpcbiAgICAgICAgfCAoVCAmIHthY3RpdmVab25lPzogVHVpQWN0aXZlWm9uZURpcmVjdGl2ZX0pXG4gICAgICAgIHwge2FjdGl2ZVpvbmU/OiBUdWlBY3RpdmVab25lRGlyZWN0aXZlfSB7XG4gICAgICAgIHJldHVybiB7Li4uY29udGV4dCwgYWN0aXZlWm9uZX07XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNhbGN1bGF0ZVBvc2l0aW9uQW5kU2l6ZSgpO1xuICAgIH1cblxuICAgIG9uVG9wRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW92ZUZvY3VzT3V0c2lkZSh0cnVlKTtcbiAgICB9XG5cbiAgICBvbkJvdHRvbUZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vdmVGb2N1c091dHNpZGUoZmFsc2UpO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBnZXQgaW5Nb2RhbCgpOiBib29sZWFuIHtcbiAgICAgICAgLy8gQGF3ZnVsIFRPRE86IGdldCByaWQgb2YgY29tcG9uZW50IHRhZyBuYW1lIGRlcGVuZGVuY3lcbiAgICAgICAgcmV0dXJuICEhdGhpcy5kaXJlY3RpdmUuaG9zdC5jbG9zZXN0KGB0dWktZGlhbG9nLWhvc3RgKTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgZ2V0IGluT3B0aW9uKCk6IGJvb2xlYW4ge1xuICAgICAgICAvLyBAYXdmdWwgVE9ETzogZ2V0IHJpZCBvZiBjb21wb25lbnQgdGFnIG5hbWUgZGVwZW5kZW5jeVxuICAgICAgICByZXR1cm4gISF0aGlzLmRpcmVjdGl2ZS5ob3N0LmNsb3Nlc3QoYFt0dWlPcHRpb25dYCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVQb3NpdGlvbkFuZFNpemUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHtjbGllbnRSZWN0fSA9IHRoaXMuZGlyZWN0aXZlO1xuICAgICAgICBjb25zdCB7c3R5bGV9ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGhvc3RSZWN0ID0gdGhpcy5kaXJlY3RpdmUuZml4ZWRcbiAgICAgICAgICAgID8gdGhpcy5wb3J0YWxIb3N0LmZpeGVkUG9zaXRpb25PZmZzZXQoKVxuICAgICAgICAgICAgOiB0aGlzLnBvcnRhbEhvc3QuY2xpZW50UmVjdDtcblxuICAgICAgICBzdHlsZS5wb3NpdGlvbiA9IHRoaXMuZGlyZWN0aXZlLmZpeGVkID8gYGZpeGVkYCA6IGBhYnNvbHV0ZWA7XG5cbiAgICAgICAgdGhpcy5jYWxjdWxhdGVWZXJ0aWNhbFBvc2l0aW9uKHN0eWxlLCBjbGllbnRSZWN0LCBob3N0UmVjdCk7XG4gICAgICAgIHRoaXMuY2FsY3VsYXRlSG9yaXpvbnRhbFBvc2l0aW9uKHN0eWxlLCBjbGllbnRSZWN0LCBob3N0UmVjdCk7XG4gICAgICAgIHRoaXMuY2FsY3VsYXRlV2lkdGgoc3R5bGUsIGNsaWVudFJlY3QpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RmluYWxBbGlnbihcbiAgICAgICAgc3R5bGU6IENTU1N0eWxlRGVjbGFyYXRpb24sXG4gICAgICAgIGRpcmVjdGl2ZVJlY3Q6IENsaWVudFJlY3QsXG4gICAgKTogVHVpSG9yaXpvbnRhbERpcmVjdGlvbiB7XG4gICAgICAgIGNvbnN0IGRyb3Bkb3duUmVjdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCBkcm9wZG93bldpZHRoID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICAgIGNvbnN0IHNjcmVlbldpZHRoID0gZ2V0U2NyZWVuV2lkdGgodGhpcy53aW5kb3dSZWYuZG9jdW1lbnQpO1xuICAgICAgICBjb25zdCBpc0Ryb3Bkb3duU2l6ZUh5cG90aGV0aWNhbGx5Rml0c1ZpZXdwb3J0ID1cbiAgICAgICAgICAgIGRpcmVjdGl2ZVJlY3QubGVmdCArIGRyb3Bkb3duV2lkdGggPCBzY3JlZW5XaWR0aCB8fFxuICAgICAgICAgICAgZGlyZWN0aXZlUmVjdC5yaWdodCAtIGRyb3Bkb3duV2lkdGggPiAwO1xuICAgICAgICBjb25zdCBpc0Ryb3Bkb3duU2l6ZUFjdHVhbGx5Rml0c1ZpZXdwb3J0ID1cbiAgICAgICAgICAgIGRyb3Bkb3duUmVjdC5yaWdodCA8PSBzY3JlZW5XaWR0aCAmJiBkcm9wZG93blJlY3QubGVmdCA+PSAwO1xuICAgICAgICBsZXQgZmluYWxBbGlnbjogVHVpSG9yaXpvbnRhbERpcmVjdGlvbiA9IHRoaXMuZGlyZWN0aXZlLmFsaWduO1xuXG4gICAgICAgIHN3aXRjaCAodGhpcy5kaXJlY3RpdmUuYWxpZ24pIHtcbiAgICAgICAgICAgIGNhc2UgYGxlZnRgOlxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgaXNEcm9wZG93blNpemVIeXBvdGhldGljYWxseUZpdHNWaWV3cG9ydCAmJlxuICAgICAgICAgICAgICAgICAgICBkcm9wZG93blJlY3QucmlnaHQgPiBzY3JlZW5XaWR0aFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBmaW5hbEFsaWduID0gYHJpZ2h0YDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgYHJpZ2h0YDpcbiAgICAgICAgICAgICAgICBpZiAoaXNEcm9wZG93blNpemVIeXBvdGhldGljYWxseUZpdHNWaWV3cG9ydCAmJiBkcm9wZG93blJlY3QubGVmdCA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgZmluYWxBbGlnbiA9IGBsZWZ0YDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdHlsZS5yaWdodCA9PT0gYGF1dG9gICYmIGlzRHJvcGRvd25TaXplQWN0dWFsbHlGaXRzVmlld3BvcnQpIHtcbiAgICAgICAgICAgIGZpbmFsQWxpZ24gPSBgbGVmdGA7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3R5bGUubGVmdCA9PT0gYGF1dG9gICYmIGlzRHJvcGRvd25TaXplQWN0dWFsbHlGaXRzVmlld3BvcnQpIHtcbiAgICAgICAgICAgIGZpbmFsQWxpZ24gPSBgcmlnaHRgO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZpbmFsQWxpZ247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyBob3Jpem9udGFsIHBvc2l0aW9uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3R5bGUgZHJvcGRvd25Cb3ggZWxlbWVudFJlZiBzdHlsZXMgb2JqZWN0XG4gICAgICogQHBhcmFtIGRpcmVjdGl2ZVJlY3QgQ2xpZW50UmVjdCBvZiBob3N0aW5nIGRpcmVjdGl2ZVxuICAgICAqIEBwYXJhbSBob3N0UmVjdCBDbGllbnRSZWN0IG9mICBwb3J0YWwgaG9zdFxuICAgICAqL1xuICAgIHByaXZhdGUgY2FsY3VsYXRlSG9yaXpvbnRhbFBvc2l0aW9uKFxuICAgICAgICBzdHlsZTogQ1NTU3R5bGVEZWNsYXJhdGlvbixcbiAgICAgICAgZGlyZWN0aXZlUmVjdDogQ2xpZW50UmVjdCxcbiAgICAgICAgaG9zdFJlY3Q6IENsaWVudFJlY3QsXG4gICAgKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IHRoaXMuZGlyZWN0aXZlLnNpZGVkXG4gICAgICAgICAgICA/IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoICsgREVGQVVMVF9NQVJHSU5cbiAgICAgICAgICAgIDogMDtcbiAgICAgICAgY29uc3QgbGVmdCA9IE1hdGguY2VpbChkaXJlY3RpdmVSZWN0LmxlZnQgLSBob3N0UmVjdC5sZWZ0IC0gb2Zmc2V0KTtcbiAgICAgICAgY29uc3QgcmlnaHQgPSBNYXRoLmZsb29yKGhvc3RSZWN0LnJpZ2h0IC0gZGlyZWN0aXZlUmVjdC5yaWdodCAtIG9mZnNldCk7XG4gICAgICAgIGNvbnN0IHZpZXdwb3J0V2lkdGggPSB0dWlHZXRWaWV3cG9ydFdpZHRoKHRoaXMud2luZG93UmVmKTtcblxuICAgICAgICBzd2l0Y2ggKHRoaXMuZ2V0RmluYWxBbGlnbihzdHlsZSwgZGlyZWN0aXZlUmVjdCkpIHtcbiAgICAgICAgICAgIGNhc2UgYGxlZnRgOlxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQgKyBERUZBVUxUX01BUkdJTiA+IHZpZXdwb3J0V2lkdGggfHxcbiAgICAgICAgICAgICAgICAgICAgaW5SYW5nZShsZWZ0ICsgREVGQVVMVF9NQVJHSU4sIDAsIHZpZXdwb3J0V2lkdGgpXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlLmxlZnQgPSBweChsZWZ0KTtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUucmlnaHQgPSBgYXV0b2A7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUubGVmdCA9IGBhdXRvYDtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUucmlnaHQgPSBweChyaWdodCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIGByaWdodGA6XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBpblJhbmdlKHJpZ2h0ICsgREVGQVVMVF9NQVJHSU4sIDAsIHZpZXdwb3J0V2lkdGgpIHx8XG4gICAgICAgICAgICAgICAgICAgIGxlZnQgKyBERUZBVUxUX01BUkdJTiA+IHZpZXdwb3J0V2lkdGhcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUubGVmdCA9IGBhdXRvYDtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUucmlnaHQgPSBweChyaWdodCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUubGVmdCA9IHB4KGxlZnQpO1xuICAgICAgICAgICAgICAgICAgICBzdHlsZS5yaWdodCA9IGBhdXRvYDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgdmVydGljYWwgcG9zaXRpb24gYW5kIGhlaWdodFxuICAgICAqXG4gICAgICogQHBhcmFtIHN0eWxlIGRyb3Bkb3duQm94IGVsZW1lbnRSZWYgc3R5bGVzIG9iamVjdFxuICAgICAqIEBwYXJhbSBkaXJlY3RpdmVSZWN0IENsaWVudFJlY3Qgb2YgaG9zdGluZyBkaXJlY3RpdmVcbiAgICAgKiBAcGFyYW0gaG9zdFJlY3QgQ2xpZW50UmVjdCBvZiAgcG9ydGFsIGhvc3RcbiAgICAgKi9cbiAgICBwcml2YXRlIGNhbGN1bGF0ZVZlcnRpY2FsUG9zaXRpb24oXG4gICAgICAgIHN0eWxlOiBDU1NTdHlsZURlY2xhcmF0aW9uLFxuICAgICAgICBkaXJlY3RpdmVSZWN0OiBDbGllbnRSZWN0LFxuICAgICAgICBob3N0UmVjdDogQ2xpZW50UmVjdCxcbiAgICApOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgd2luZG93SGVpZ2h0ID0gdGhpcy53aW5kb3dSZWYuaW5uZXJIZWlnaHQ7XG4gICAgICAgIC8vIE1heGltdW0gaGVpZ2h0IG9mIHRoZSBib3hcbiAgICAgICAgY29uc3QgYm94SGVpZ2h0TGltaXQgPSBNYXRoLm1pbihcbiAgICAgICAgICAgIHRoaXMuZGlyZWN0aXZlLm1heEhlaWdodCxcbiAgICAgICAgICAgIHdpbmRvd0hlaWdodCAtIERFRkFVTFRfTUFSR0lOICogMixcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gdGhpcy5kaXJlY3RpdmUuc2lkZWRcbiAgICAgICAgICAgID8gREVGQVVMVF9NQVJHSU4gLSBkaXJlY3RpdmVSZWN0LmhlaWdodFxuICAgICAgICAgICAgOiBERUZBVUxUX01BUkdJTiAqIDI7XG4gICAgICAgIGNvbnN0IHRvcEF2YWlsYWJsZUhlaWdodCA9IGRpcmVjdGl2ZVJlY3QudG9wIC0gb2Zmc2V0O1xuICAgICAgICBjb25zdCBib3R0b21BdmFpbGFibGVIZWlnaHQgPSB3aW5kb3dIZWlnaHQgLSBkaXJlY3RpdmVSZWN0LmJvdHRvbSAtIG9mZnNldDtcbiAgICAgICAgY29uc3QgZmluYWxEaXJlY3Rpb24gPSB0aGlzLmdldEZpbmFsRGlyZWN0aW9uKGRpcmVjdGl2ZVJlY3QpO1xuICAgICAgICBjb25zdCBvcHRpb25PZmZzZXQgPSB0aGlzLmluT3B0aW9uID8gREVGQVVMVF9NQVJHSU4gKiAyIDogMDtcblxuICAgICAgICB0aGlzLnByZXZEaXJlY3Rpb25Jc1RvcCA9IGZpbmFsRGlyZWN0aW9uID09PSBgdG9wYDtcblxuICAgICAgICBpZiAoZmluYWxEaXJlY3Rpb24gPT09IGB0b3BgKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duQW5pbWF0aW9uID0gdGhpcy5hbmltYXRpb25Cb3R0b207XG5cbiAgICAgICAgICAgIHN0eWxlLm1heEhlaWdodCA9IHB4KE1hdGgubWluKGJveEhlaWdodExpbWl0LCB0b3BBdmFpbGFibGVIZWlnaHQpKTtcbiAgICAgICAgICAgIHN0eWxlLnRvcCA9IGBhdXRvYDtcbiAgICAgICAgICAgIHN0eWxlLmJvdHRvbSA9IHB4KFxuICAgICAgICAgICAgICAgIGhvc3RSZWN0LmJvdHRvbSAtXG4gICAgICAgICAgICAgICAgICAgIGRpcmVjdGl2ZVJlY3QudG9wIC1cbiAgICAgICAgICAgICAgICAgICAgREVGQVVMVF9NQVJHSU4gK1xuICAgICAgICAgICAgICAgICAgICBvZmZzZXQgLVxuICAgICAgICAgICAgICAgICAgICBvcHRpb25PZmZzZXQsXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93bkFuaW1hdGlvbiA9IHRoaXMuYW5pbWF0aW9uVG9wO1xuXG4gICAgICAgICAgICBzdHlsZS5tYXhIZWlnaHQgPSBweChNYXRoLm1pbihib3hIZWlnaHRMaW1pdCwgYm90dG9tQXZhaWxhYmxlSGVpZ2h0KSk7XG4gICAgICAgICAgICBzdHlsZS50b3AgPSBweChcbiAgICAgICAgICAgICAgICBkaXJlY3RpdmVSZWN0LmJvdHRvbSAtXG4gICAgICAgICAgICAgICAgICAgIGhvc3RSZWN0LnRvcCAtXG4gICAgICAgICAgICAgICAgICAgIERFRkFVTFRfTUFSR0lOICtcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0IC1cbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uT2Zmc2V0LFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHN0eWxlLmJvdHRvbSA9IGBhdXRvYDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RmluYWxEaXJlY3Rpb24oZGlyZWN0aXZlUmVjdDogQ2xpZW50UmVjdCk6IFR1aVZlcnRpY2FsRGlyZWN0aW9uIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IHdpbmRvd0hlaWdodCA9IHRoaXMud2luZG93UmVmLmlubmVySGVpZ2h0O1xuICAgICAgICBjb25zdCBvZmZzZXQgPSB0aGlzLmRpcmVjdGl2ZS5zaWRlZFxuICAgICAgICAgICAgPyBERUZBVUxUX01BUkdJTiAtIGRpcmVjdGl2ZVJlY3QuaGVpZ2h0XG4gICAgICAgICAgICA6IERFRkFVTFRfTUFSR0lOICogMjtcblxuICAgICAgICAvLyBNYXhpbXVtIHNwYWNlIGF2YWlsYWJsZSBvbiB0b3AgYW5kIG9uIHRoZSBib3R0b20gaW4gdGhlIHZpZXdwb3J0XG4gICAgICAgIGNvbnN0IHRvcEF2YWlsYWJsZUhlaWdodCA9IGRpcmVjdGl2ZVJlY3QudG9wIC0gb2Zmc2V0O1xuICAgICAgICBjb25zdCBib3R0b21BdmFpbGFibGVIZWlnaHQgPSB3aW5kb3dIZWlnaHQgLSBkaXJlY3RpdmVSZWN0LmJvdHRvbSAtIG9mZnNldDtcblxuICAgICAgICBsZXQgZmluYWxEaXJlY3Rpb246IFR1aVZlcnRpY2FsRGlyZWN0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgICAgICAgLy8gR2l2ZW4gZGlyZWN0aW9uIGlzIGFwcGxpZWQgaWYgd2UgY2FuIGZpdCB0aGUgYm94IGluIHRoZSBsaW1pdHMgdGhhdCB3YXlcbiAgICAgICAgc3dpdGNoICh0aGlzLmRpcmVjdGl2ZS5kaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIGNhc2UgYHRvcGA6XG4gICAgICAgICAgICAgICAgaWYgKHRvcEF2YWlsYWJsZUhlaWdodCA+PSB0aGlzLmRpcmVjdGl2ZS5taW5IZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgZmluYWxEaXJlY3Rpb24gPSBgdG9wYDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgYGJvdHRvbWA6XG4gICAgICAgICAgICAgICAgaWYgKGJvdHRvbUF2YWlsYWJsZUhlaWdodCA+PSB0aGlzLmRpcmVjdGl2ZS5taW5IZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgZmluYWxEaXJlY3Rpb24gPSBgYm90dG9tYDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE1heGltdW0gaGVpZ2h0IG9mIHRoZSBib3hcbiAgICAgICAgY29uc3QgYm94SGVpZ2h0TGltaXQgPSBNYXRoLm1pbihcbiAgICAgICAgICAgIHRoaXMuZGlyZWN0aXZlLm1heEhlaWdodCxcbiAgICAgICAgICAgIHdpbmRvd0hlaWdodCAtIERFRkFVTFRfTUFSR0lOICogMixcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBDaG9vc2UgZGlyZWN0aW9uIGlmIGdpdmVuIGRpcmVjdGlvbiBkaWQgbm90IGZpdFxuICAgICAgICBpZiAoZmluYWxEaXJlY3Rpb24gPT09IG51bGwgJiYgdGhpcy5jb250ZW50RWxlbWVudFJlZikge1xuICAgICAgICAgICAgLy8gQm94IGhlaWdodCBpZiBpdCBmaXRzIHdpdGhvdXQgc2Nyb2xsXG4gICAgICAgICAgICBjb25zdCB2aXN1YWxIZWlnaHQgPSBNYXRoLm1pbihcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0ICtcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCAtXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQpLFxuICAgICAgICAgICAgICAgIGJveEhlaWdodExpbWl0LFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgZW5vdWdoIHNwYWNlIHRvIGZpdCBiZWxvdyB3aXRob3V0IHNjcm9sbCxcbiAgICAgICAgICAgIC8vIGNob29zZSAnYm90dG9tJywgdW5sZXNzIGl0IHdhcyBwcmV2aW91c2x5IG9uIHRoZSB0b3BcbiAgICAgICAgICAgIGlmICh0aGlzLnByZXZEaXJlY3Rpb25Jc1RvcCAmJiB0b3BBdmFpbGFibGVIZWlnaHQgPj0gdmlzdWFsSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgZmluYWxEaXJlY3Rpb24gPSBgdG9wYDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYm90dG9tQXZhaWxhYmxlSGVpZ2h0ID49IHZpc3VhbEhlaWdodCkge1xuICAgICAgICAgICAgICAgIGZpbmFsRGlyZWN0aW9uID0gYGJvdHRvbWA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIENvcm5lciBjYXNlIOKAlCBzZWxlY3QgZGlyZWN0aW9uIHdpdGggbW9yZSBzcGFjZVxuICAgICAgICAgICAgICAgIGZpbmFsRGlyZWN0aW9uID1cbiAgICAgICAgICAgICAgICAgICAgYm90dG9tQXZhaWxhYmxlSGVpZ2h0ID49IHRvcEF2YWlsYWJsZUhlaWdodCA/IGBib3R0b21gIDogYHRvcGA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmluYWxEaXJlY3Rpb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB3aWR0aFxuICAgICAqXG4gICAgICogQHBhcmFtIHN0eWxlIGRyb3Bkb3duQm94IGVsZW1lbnRSZWYgc3R5bGVzIG9iamVjdFxuICAgICAqIEBwYXJhbSBkaXJlY3RpdmVSZWN0IENsaWVudFJlY3Qgb2YgaG9zdGluZyBkaXJlY3RpdmVcbiAgICAgKi9cbiAgICBwcml2YXRlIGNhbGN1bGF0ZVdpZHRoKHN0eWxlOiBDU1NTdHlsZURlY2xhcmF0aW9uLCBkaXJlY3RpdmVSZWN0OiBDbGllbnRSZWN0KTogdm9pZCB7XG4gICAgICAgIHN0eWxlLndpZHRoID1cbiAgICAgICAgICAgIHRoaXMuZGlyZWN0aXZlLmxpbWl0TWluV2lkdGggPT09IGBmaXhlZGAgJiYgIXRoaXMuZGlyZWN0aXZlLnNpZGVkXG4gICAgICAgICAgICAgICAgPyBweChkaXJlY3RpdmVSZWN0LndpZHRoKVxuICAgICAgICAgICAgICAgIDogYGA7XG5cbiAgICAgICAgaWYgKHRoaXMuZGlyZWN0aXZlLmxpbWl0TWluV2lkdGggPT09IGBtaW5gICYmICF0aGlzLmRpcmVjdGl2ZS5zaWRlZCkge1xuICAgICAgICAgICAgc3R5bGUubWluV2lkdGggPSBweChkaXJlY3RpdmVSZWN0LndpZHRoKTtcbiAgICAgICAgICAgIHN0eWxlLm1heFdpZHRoID0gcHgoREVGQVVMVF9NQVhfV0lEVEgpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzdHlsZS5taW5XaWR0aCA9IGBgO1xuICAgICAgICBzdHlsZS5tYXhXaWR0aCA9IGBgO1xuICAgIH1cblxuICAgIHByaXZhdGUgbW92ZUZvY3VzT3V0c2lkZShwcmV2aW91czogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBjb25zdCB7aG9zdH0gPSB0aGlzLmRpcmVjdGl2ZTtcbiAgICAgICAgY29uc3Qge293bmVyRG9jdW1lbnR9ID0gaG9zdDtcbiAgICAgICAgY29uc3Qgcm9vdCA9IG93bmVyRG9jdW1lbnQgPyBvd25lckRvY3VtZW50LmJvZHkgOiBob3N0O1xuXG4gICAgICAgIHR1aUFzc2VydElzSFRNTEVsZW1lbnQoaG9zdCk7XG5cbiAgICAgICAgbGV0IGZvY3VzYWJsZSA9IGdldENsb3Nlc3RGb2N1c2FibGUoaG9zdCwgcHJldmlvdXMsIHJvb3QpO1xuXG4gICAgICAgIHdoaWxlIChmb2N1c2FibGUgIT09IG51bGwgJiYgaG9zdC5jb250YWlucyhmb2N1c2FibGUpKSB7XG4gICAgICAgICAgICBmb2N1c2FibGUgPSBnZXRDbG9zZXN0Rm9jdXNhYmxlKGZvY3VzYWJsZSwgcHJldmlvdXMsIHJvb3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9jdXNhYmxlPy5mb2N1cygpO1xuICAgIH1cbn1cbiJdfQ==
299
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZHJvcGRvd24tYm94LyIsInNvdXJjZXMiOlsiZHJvcGRvd24tYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUNILGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQ0gsOEJBQThCLEVBQzlCLG1CQUFtQixFQUNuQixPQUFPLEVBQ1AsWUFBWSxFQUNaLEVBQUUsRUFDRixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsa0JBQWtCLEVBQ2xCLE9BQU8sRUFDUCxXQUFXLEdBQ2QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFDLGNBQWMsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRzNFLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRXBGLE9BQU8sRUFBQyxjQUFjLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RDs7R0FFRztBQUNILG9CQUFvQjtBQUNwQiw4RkFBOEY7QUFDOUYsV0FBVztBQVNYLElBQWEsdUJB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QkFBa0I7UUFDNUIsNnJCQUEyQztRQUUzQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsT0FBTztRQUNoRCxTQUFTLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztRQUM5QixVQUFVLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQzs7S0FDckMsQ0FBQztJQXdCTyxXQUFBLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0lBRXpCLFdBQUEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2QsV0FBQSxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtJQUM5QixXQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNkLFdBQUEsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ2xCLFdBQUEsTUFBTSxDQUFDLDhCQUE4QixDQUFDLENBQUE7SUFFdEMsV0FBQSxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQTtJQUM3QixXQUFBLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQTtHQWhDbkIsdUJBQXVCLENBc1ZuQztTQXRWWSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FuaW1hdGlvbk9wdGlvbnN9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdDaGVja2VkLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBOZ1pvbmUsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QU5JTUFUSU9OX0ZSQU1FLCBXSU5ET1d9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aVBvcnRhbEhvc3RDb21wb25lbnQsXG4gICAgZ2V0Q2xvc2VzdEZvY3VzYWJsZSxcbiAgICBpblJhbmdlLFxuICAgIFBPTExJTkdfVElNRSxcbiAgICBweCxcbiAgICBUdWlBY3RpdmVab25lRGlyZWN0aXZlLFxuICAgIHR1aUFzc2VydElzSFRNTEVsZW1lbnQsXG4gICAgVHVpRGVzdHJveVNlcnZpY2UsXG4gICAgVHVpRHJvcGRvd25Ib3N0Q29tcG9uZW50LFxuICAgIFR1aU92ZXJzY3JvbGxNb2RlVCxcbiAgICB0dWlQdXJlLFxuICAgIHR1aVpvbmVmcmVlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7dHVpRHJvcGRvd25BbmltYXRpb259IGZyb20gJ0B0YWlnYS11aS9jb3JlL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtERUZBVUxUX01BUkdJTiwgREVGQVVMVF9NQVhfV0lEVEh9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbnN0YW50cyc7XG5pbXBvcnQge1R1aURyb3Bkb3duQW5pbWF0aW9ufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9lbnVtcyc7XG5pbXBvcnQge1R1aUFuaW1hdGlvbk9wdGlvbnMsIFR1aURyb3Bkb3dufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9pbnRlcmZhY2VzJztcbmltcG9ydCB7VFVJX0FOSU1BVElPTl9PUFRJT05TLCBUVUlfRFJPUERPV05fRElSRUNUSVZFfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHtUdWlIb3Jpem9udGFsRGlyZWN0aW9uLCBUdWlWZXJ0aWNhbERpcmVjdGlvbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHtnZXRTY3JlZW5XaWR0aCwgdHVpR2V0Vmlld3BvcnRXaWR0aH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdXRpbHMvZG9tJztcbmltcG9ydCB7ZnJvbUV2ZW50LCBtZXJnZSwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3Rha2VVbnRpbCwgdGhyb3R0bGVUaW1lfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8qKlxuICogIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgdG8gc2hvdyB0ZW1wbGF0ZSBpbiBhIHBvcnRhbCB1c2luZyBkZWZhdWx0IHN0eWxlIG9mIHdoaXRlIHJvdW5kZWQgYm94IHdpdGggYSBzaGFkb3dcbiAqL1xuLy8gQGJhZCBUT0RPOiBPblB1c2hcbi8vIEFtYmllbnQgdHlwZSBjYW5ub3QgYmUgdXNlZCB3aXRob3V0IGR5bmFtaWMgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMjMzOTVcbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1kcm9wZG93bi1ib3gnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi1ib3gudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24tYm94LnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXG4gICAgcHJvdmlkZXJzOiBbVHVpRGVzdHJveVNlcnZpY2VdLFxuICAgIGFuaW1hdGlvbnM6IFt0dWlEcm9wZG93bkFuaW1hdGlvbl0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aURyb3Bkb3duQm94Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhbmltYXRpb25Ub3AgPSB7XG4gICAgICAgIHZhbHVlOiBUdWlEcm9wZG93bkFuaW1hdGlvbi5GYWRlSW5Ub3AsXG4gICAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbmltYXRpb25Cb3R0b20gPSB7XG4gICAgICAgIHZhbHVlOiBUdWlEcm9wZG93bkFuaW1hdGlvbi5GYWRlSW5Cb3R0b20sXG4gICAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogSXMgcHJldmlvdXMgcG9zaXRpb24gb24gdG9wICh0byBwcmV2ZW50IGp1bXBpbmcgdXAgYW5kIGRvd24gb24gc2Nyb2xsKVxuICAgICAqL1xuICAgIHByaXZhdGUgcHJldkRpcmVjdGlvbklzVG9wID0gZmFsc2U7XG5cbiAgICBASG9zdEJpbmRpbmcoJ0B0dWlEcm9wZG93bkFuaW1hdGlvbicpXG4gICAgZHJvcGRvd25BbmltYXRpb24hOiBUdWlBbmltYXRpb25PcHRpb25zO1xuXG4gICAgQFZpZXdDaGlsZCgnY29udGVudCcsIHtyZWFkOiBFbGVtZW50UmVmfSlcbiAgICByZWFkb25seSBjb250ZW50RWxlbWVudFJlZj86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVHVpRGVzdHJveVNlcnZpY2UpXG4gICAgICAgIGRlc3Ryb3kkOiBUdWlEZXN0cm95U2VydmljZSxcbiAgICAgICAgQEluamVjdChOZ1pvbmUpIG5nWm9uZTogTmdab25lLFxuICAgICAgICBASW5qZWN0KFRVSV9EUk9QRE9XTl9ESVJFQ1RJVkUpIHJlYWRvbmx5IGRpcmVjdGl2ZTogVHVpRHJvcGRvd24sXG4gICAgICAgIEBJbmplY3QoV0lORE9XKSBwcml2YXRlIHJlYWRvbmx5IHdpbmRvd1JlZjogV2luZG93LFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoQWJzdHJhY3RUdWlQb3J0YWxIb3N0Q29tcG9uZW50KVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHBvcnRhbEhvc3Q6IFR1aURyb3Bkb3duSG9zdENvbXBvbmVudCxcbiAgICAgICAgQEluamVjdChUVUlfQU5JTUFUSU9OX09QVElPTlMpIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogQW5pbWF0aW9uT3B0aW9ucyxcbiAgICAgICAgQEluamVjdChBTklNQVRJT05fRlJBTUUpIGFuaW1hdGlvbkZyYW1lJDogT2JzZXJ2YWJsZTxudW1iZXI+LFxuICAgICkge1xuICAgICAgICBtZXJnZShcbiAgICAgICAgICAgIGFuaW1hdGlvbkZyYW1lJC5waXBlKHRocm90dGxlVGltZShQT0xMSU5HX1RJTUUpKSxcbiAgICAgICAgICAgIHRoaXMuZGlyZWN0aXZlLnJlZnJlc2gkLFxuICAgICAgICAgICAgZnJvbUV2ZW50KHRoaXMud2luZG93UmVmLCAncmVzaXplJyksXG4gICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKHR1aVpvbmVmcmVlKG5nWm9uZSksIHRha2VVbnRpbChkZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZVBvc2l0aW9uQW5kU2l6ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IG92ZXJzY3JvbGwoKTogVHVpT3ZlcnNjcm9sbE1vZGVUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5Nb2RhbCA/ICdhbGwnIDogJ3Njcm9sbCc7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBnZXRDb250ZXh0PFQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+PihcbiAgICAgICAgY29udGV4dD86IFQsXG4gICAgICAgIGFjdGl2ZVpvbmU/OiBUdWlBY3RpdmVab25lRGlyZWN0aXZlLFxuICAgICk6XG4gICAgICAgIHwge2FjdGl2ZVpvbmU/OiBUdWlBY3RpdmVab25lRGlyZWN0aXZlfVxuICAgICAgICB8IChUICYge2FjdGl2ZVpvbmU/OiBUdWlBY3RpdmVab25lRGlyZWN0aXZlfSkge1xuICAgICAgICByZXR1cm4gey4uLmNvbnRleHQsIGFjdGl2ZVpvbmV9O1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVQb3NpdGlvbkFuZFNpemUoKTtcbiAgICB9XG5cbiAgICBvblRvcEZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vdmVGb2N1c091dHNpZGUodHJ1ZSk7XG4gICAgfVxuXG4gICAgb25Cb3R0b21Gb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb3ZlRm9jdXNPdXRzaWRlKGZhbHNlKTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgZ2V0IGluTW9kYWwoKTogYm9vbGVhbiB7XG4gICAgICAgIC8vIEBhd2Z1bCBUT0RPOiBnZXQgcmlkIG9mIGNvbXBvbmVudCB0YWcgbmFtZSBkZXBlbmRlbmN5XG4gICAgICAgIHJldHVybiAhIXRoaXMuZGlyZWN0aXZlLmhvc3QuY2xvc2VzdCgndHVpLWRpYWxvZy1ob3N0Jyk7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGdldCBpbk9wdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgLy8gQGF3ZnVsIFRPRE86IGdldCByaWQgb2YgY29tcG9uZW50IHRhZyBuYW1lIGRlcGVuZGVuY3lcbiAgICAgICAgcmV0dXJuICEhdGhpcy5kaXJlY3RpdmUuaG9zdC5jbG9zZXN0KCdbdHVpT3B0aW9uXScpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlUG9zaXRpb25BbmRTaXplKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB7Y2xpZW50UmVjdH0gPSB0aGlzLmRpcmVjdGl2ZTtcbiAgICAgICAgY29uc3Qge3N0eWxlfSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBob3N0UmVjdCA9IHRoaXMuZGlyZWN0aXZlLmZpeGVkXG4gICAgICAgICAgICA/IHRoaXMucG9ydGFsSG9zdC5maXhlZFBvc2l0aW9uT2Zmc2V0KClcbiAgICAgICAgICAgIDogdGhpcy5wb3J0YWxIb3N0LmNsaWVudFJlY3Q7XG5cbiAgICAgICAgc3R5bGUucG9zaXRpb24gPSB0aGlzLmRpcmVjdGl2ZS5maXhlZCA/ICdmaXhlZCcgOiAnYWJzb2x1dGUnO1xuXG4gICAgICAgIHRoaXMuY2FsY3VsYXRlVmVydGljYWxQb3NpdGlvbihzdHlsZSwgY2xpZW50UmVjdCwgaG9zdFJlY3QpO1xuICAgICAgICB0aGlzLmNhbGN1bGF0ZUhvcml6b250YWxQb3NpdGlvbihzdHlsZSwgY2xpZW50UmVjdCwgaG9zdFJlY3QpO1xuICAgICAgICB0aGlzLmNhbGN1bGF0ZVdpZHRoKHN0eWxlLCBjbGllbnRSZWN0KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZpbmFsQWxpZ24oXG4gICAgICAgIHN0eWxlOiBDU1NTdHlsZURlY2xhcmF0aW9uLFxuICAgICAgICBkaXJlY3RpdmVSZWN0OiBDbGllbnRSZWN0LFxuICAgICk6IFR1aUhvcml6b250YWxEaXJlY3Rpb24ge1xuICAgICAgICBjb25zdCBkcm9wZG93blJlY3QgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgZHJvcGRvd25XaWR0aCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgICBjb25zdCBzY3JlZW5XaWR0aCA9IGdldFNjcmVlbldpZHRoKHRoaXMud2luZG93UmVmLmRvY3VtZW50KTtcbiAgICAgICAgY29uc3QgaXNEcm9wZG93blNpemVIeXBvdGhldGljYWxseUZpdHNWaWV3cG9ydCA9XG4gICAgICAgICAgICBkaXJlY3RpdmVSZWN0LmxlZnQgKyBkcm9wZG93bldpZHRoIDwgc2NyZWVuV2lkdGggfHxcbiAgICAgICAgICAgIGRpcmVjdGl2ZVJlY3QucmlnaHQgLSBkcm9wZG93bldpZHRoID4gMDtcbiAgICAgICAgY29uc3QgaXNEcm9wZG93blNpemVBY3R1YWxseUZpdHNWaWV3cG9ydCA9XG4gICAgICAgICAgICBkcm9wZG93blJlY3QucmlnaHQgPD0gc2NyZWVuV2lkdGggJiYgZHJvcGRvd25SZWN0LmxlZnQgPj0gMDtcbiAgICAgICAgbGV0IGZpbmFsQWxpZ246IFR1aUhvcml6b250YWxEaXJlY3Rpb24gPSB0aGlzLmRpcmVjdGl2ZS5hbGlnbjtcblxuICAgICAgICBzd2l0Y2ggKHRoaXMuZGlyZWN0aXZlLmFsaWduKSB7XG4gICAgICAgICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIGlzRHJvcGRvd25TaXplSHlwb3RoZXRpY2FsbHlGaXRzVmlld3BvcnQgJiZcbiAgICAgICAgICAgICAgICAgICAgZHJvcGRvd25SZWN0LnJpZ2h0ID4gc2NyZWVuV2lkdGhcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgZmluYWxBbGlnbiA9ICdyaWdodCc7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgICAgICAgICAgaWYgKGlzRHJvcGRvd25TaXplSHlwb3RoZXRpY2FsbHlGaXRzVmlld3BvcnQgJiYgZHJvcGRvd25SZWN0LmxlZnQgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbmFsQWxpZ24gPSAnbGVmdCc7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3R5bGUucmlnaHQgPT09ICdhdXRvJyAmJiBpc0Ryb3Bkb3duU2l6ZUFjdHVhbGx5Rml0c1ZpZXdwb3J0KSB7XG4gICAgICAgICAgICBmaW5hbEFsaWduID0gJ2xlZnQnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN0eWxlLmxlZnQgPT09ICdhdXRvJyAmJiBpc0Ryb3Bkb3duU2l6ZUFjdHVhbGx5Rml0c1ZpZXdwb3J0KSB7XG4gICAgICAgICAgICBmaW5hbEFsaWduID0gJ3JpZ2h0JztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmaW5hbEFsaWduO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgaG9yaXpvbnRhbCBwb3NpdGlvblxuICAgICAqXG4gICAgICogQHBhcmFtIHN0eWxlIGRyb3Bkb3duQm94IGVsZW1lbnRSZWYgc3R5bGVzIG9iamVjdFxuICAgICAqIEBwYXJhbSBkaXJlY3RpdmVSZWN0IENsaWVudFJlY3Qgb2YgaG9zdGluZyBkaXJlY3RpdmVcbiAgICAgKiBAcGFyYW0gaG9zdFJlY3QgQ2xpZW50UmVjdCBvZiAgcG9ydGFsIGhvc3RcbiAgICAgKi9cbiAgICBwcml2YXRlIGNhbGN1bGF0ZUhvcml6b250YWxQb3NpdGlvbihcbiAgICAgICAgc3R5bGU6IENTU1N0eWxlRGVjbGFyYXRpb24sXG4gICAgICAgIGRpcmVjdGl2ZVJlY3Q6IENsaWVudFJlY3QsXG4gICAgICAgIGhvc3RSZWN0OiBDbGllbnRSZWN0LFxuICAgICk6IHZvaWQge1xuICAgICAgICBjb25zdCBvZmZzZXQgPSB0aGlzLmRpcmVjdGl2ZS5zaWRlZFxuICAgICAgICAgICAgPyB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCArIERFRkFVTFRfTUFSR0lOXG4gICAgICAgICAgICA6IDA7XG4gICAgICAgIGNvbnN0IGxlZnQgPSBNYXRoLmNlaWwoZGlyZWN0aXZlUmVjdC5sZWZ0IC0gaG9zdFJlY3QubGVmdCAtIG9mZnNldCk7XG4gICAgICAgIGNvbnN0IHJpZ2h0ID0gTWF0aC5mbG9vcihob3N0UmVjdC5yaWdodCAtIGRpcmVjdGl2ZVJlY3QucmlnaHQgLSBvZmZzZXQpO1xuICAgICAgICBjb25zdCB2aWV3cG9ydFdpZHRoID0gdHVpR2V0Vmlld3BvcnRXaWR0aCh0aGlzLndpbmRvd1JlZik7XG5cbiAgICAgICAgc3dpdGNoICh0aGlzLmdldEZpbmFsQWxpZ24oc3R5bGUsIGRpcmVjdGl2ZVJlY3QpKSB7XG4gICAgICAgICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0ICsgREVGQVVMVF9NQVJHSU4gPiB2aWV3cG9ydFdpZHRoIHx8XG4gICAgICAgICAgICAgICAgICAgIGluUmFuZ2UobGVmdCArIERFRkFVTFRfTUFSR0lOLCAwLCB2aWV3cG9ydFdpZHRoKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBzdHlsZS5sZWZ0ID0gcHgobGVmdCk7XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlLnJpZ2h0ID0gJ2F1dG8nO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlLmxlZnQgPSAnYXV0byc7XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlLnJpZ2h0ID0gcHgocmlnaHQpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgaW5SYW5nZShyaWdodCArIERFRkFVTFRfTUFSR0lOLCAwLCB2aWV3cG9ydFdpZHRoKSB8fFxuICAgICAgICAgICAgICAgICAgICBsZWZ0ICsgREVGQVVMVF9NQVJHSU4gPiB2aWV3cG9ydFdpZHRoXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlLmxlZnQgPSAnYXV0byc7XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlLnJpZ2h0ID0gcHgocmlnaHQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlLmxlZnQgPSBweChsZWZ0KTtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUucmlnaHQgPSAnYXV0byc7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIHZlcnRpY2FsIHBvc2l0aW9uIGFuZCBoZWlnaHRcbiAgICAgKlxuICAgICAqIEBwYXJhbSBzdHlsZSBkcm9wZG93bkJveCBlbGVtZW50UmVmIHN0eWxlcyBvYmplY3RcbiAgICAgKiBAcGFyYW0gZGlyZWN0aXZlUmVjdCBDbGllbnRSZWN0IG9mIGhvc3RpbmcgZGlyZWN0aXZlXG4gICAgICogQHBhcmFtIGhvc3RSZWN0IENsaWVudFJlY3Qgb2YgIHBvcnRhbCBob3N0XG4gICAgICovXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVWZXJ0aWNhbFBvc2l0aW9uKFxuICAgICAgICBzdHlsZTogQ1NTU3R5bGVEZWNsYXJhdGlvbixcbiAgICAgICAgZGlyZWN0aXZlUmVjdDogQ2xpZW50UmVjdCxcbiAgICAgICAgaG9zdFJlY3Q6IENsaWVudFJlY3QsXG4gICAgKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHdpbmRvd0hlaWdodCA9IHRoaXMud2luZG93UmVmLmlubmVySGVpZ2h0O1xuICAgICAgICAvLyBNYXhpbXVtIGhlaWdodCBvZiB0aGUgYm94XG4gICAgICAgIGNvbnN0IGJveEhlaWdodExpbWl0ID0gTWF0aC5taW4oXG4gICAgICAgICAgICB0aGlzLmRpcmVjdGl2ZS5tYXhIZWlnaHQsXG4gICAgICAgICAgICB3aW5kb3dIZWlnaHQgLSBERUZBVUxUX01BUkdJTiAqIDIsXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IHRoaXMuZGlyZWN0aXZlLnNpZGVkXG4gICAgICAgICAgICA/IERFRkFVTFRfTUFSR0lOIC0gZGlyZWN0aXZlUmVjdC5oZWlnaHRcbiAgICAgICAgICAgIDogREVGQVVMVF9NQVJHSU4gKiAyO1xuICAgICAgICBjb25zdCB0b3BBdmFpbGFibGVIZWlnaHQgPSBkaXJlY3RpdmVSZWN0LnRvcCAtIG9mZnNldDtcbiAgICAgICAgY29uc3QgYm90dG9tQXZhaWxhYmxlSGVpZ2h0ID0gd2luZG93SGVpZ2h0IC0gZGlyZWN0aXZlUmVjdC5ib3R0b20gLSBvZmZzZXQ7XG4gICAgICAgIGNvbnN0IGZpbmFsRGlyZWN0aW9uID0gdGhpcy5nZXRGaW5hbERpcmVjdGlvbihkaXJlY3RpdmVSZWN0KTtcbiAgICAgICAgY29uc3Qgb3B0aW9uT2Zmc2V0ID0gdGhpcy5pbk9wdGlvbiA/IERFRkFVTFRfTUFSR0lOICogMiA6IDA7XG5cbiAgICAgICAgdGhpcy5wcmV2RGlyZWN0aW9uSXNUb3AgPSBmaW5hbERpcmVjdGlvbiA9PT0gJ3RvcCc7XG5cbiAgICAgICAgaWYgKGZpbmFsRGlyZWN0aW9uID09PSAndG9wJykge1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93bkFuaW1hdGlvbiA9IHRoaXMuYW5pbWF0aW9uQm90dG9tO1xuXG4gICAgICAgICAgICBzdHlsZS5tYXhIZWlnaHQgPSBweChNYXRoLm1pbihib3hIZWlnaHRMaW1pdCwgdG9wQXZhaWxhYmxlSGVpZ2h0KSk7XG4gICAgICAgICAgICBzdHlsZS50b3AgPSAnYXV0byc7XG4gICAgICAgICAgICBzdHlsZS5ib3R0b20gPSBweChcbiAgICAgICAgICAgICAgICBob3N0UmVjdC5ib3R0b20gLVxuICAgICAgICAgICAgICAgICAgICBkaXJlY3RpdmVSZWN0LnRvcCAtXG4gICAgICAgICAgICAgICAgICAgIERFRkFVTFRfTUFSR0lOICtcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0IC1cbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uT2Zmc2V0LFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd25BbmltYXRpb24gPSB0aGlzLmFuaW1hdGlvblRvcDtcblxuICAgICAgICAgICAgc3R5bGUubWF4SGVpZ2h0ID0gcHgoTWF0aC5taW4oYm94SGVpZ2h0TGltaXQsIGJvdHRvbUF2YWlsYWJsZUhlaWdodCkpO1xuICAgICAgICAgICAgc3R5bGUudG9wID0gcHgoXG4gICAgICAgICAgICAgICAgZGlyZWN0aXZlUmVjdC5ib3R0b20gLVxuICAgICAgICAgICAgICAgICAgICBob3N0UmVjdC50b3AgLVxuICAgICAgICAgICAgICAgICAgICBERUZBVUxUX01BUkdJTiArXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldCAtXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbk9mZnNldCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBzdHlsZS5ib3R0b20gPSAnYXV0byc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZpbmFsRGlyZWN0aW9uKGRpcmVjdGl2ZVJlY3Q6IENsaWVudFJlY3QpOiBUdWlWZXJ0aWNhbERpcmVjdGlvbiB8IG51bGwge1xuICAgICAgICBjb25zdCB3aW5kb3dIZWlnaHQgPSB0aGlzLndpbmRvd1JlZi5pbm5lckhlaWdodDtcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gdGhpcy5kaXJlY3RpdmUuc2lkZWRcbiAgICAgICAgICAgID8gREVGQVVMVF9NQVJHSU4gLSBkaXJlY3RpdmVSZWN0LmhlaWdodFxuICAgICAgICAgICAgOiBERUZBVUxUX01BUkdJTiAqIDI7XG5cbiAgICAgICAgLy8gTWF4aW11bSBzcGFjZSBhdmFpbGFibGUgb24gdG9wIGFuZCBvbiB0aGUgYm90dG9tIGluIHRoZSB2aWV3cG9ydFxuICAgICAgICBjb25zdCB0b3BBdmFpbGFibGVIZWlnaHQgPSBkaXJlY3RpdmVSZWN0LnRvcCAtIG9mZnNldDtcbiAgICAgICAgY29uc3QgYm90dG9tQXZhaWxhYmxlSGVpZ2h0ID0gd2luZG93SGVpZ2h0IC0gZGlyZWN0aXZlUmVjdC5ib3R0b20gLSBvZmZzZXQ7XG5cbiAgICAgICAgbGV0IGZpbmFsRGlyZWN0aW9uOiBUdWlWZXJ0aWNhbERpcmVjdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gICAgICAgIC8vIEdpdmVuIGRpcmVjdGlvbiBpcyBhcHBsaWVkIGlmIHdlIGNhbiBmaXQgdGhlIGJveCBpbiB0aGUgbGltaXRzIHRoYXQgd2F5XG4gICAgICAgIHN3aXRjaCAodGhpcy5kaXJlY3RpdmUuZGlyZWN0aW9uKSB7XG4gICAgICAgICAgICBjYXNlICd0b3AnOlxuICAgICAgICAgICAgICAgIGlmICh0b3BBdmFpbGFibGVIZWlnaHQgPj0gdGhpcy5kaXJlY3RpdmUubWluSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbmFsRGlyZWN0aW9uID0gJ3RvcCc7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICAgICAgICAgIGlmIChib3R0b21BdmFpbGFibGVIZWlnaHQgPj0gdGhpcy5kaXJlY3RpdmUubWluSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbmFsRGlyZWN0aW9uID0gJ2JvdHRvbSc7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBNYXhpbXVtIGhlaWdodCBvZiB0aGUgYm94XG4gICAgICAgIGNvbnN0IGJveEhlaWdodExpbWl0ID0gTWF0aC5taW4oXG4gICAgICAgICAgICB0aGlzLmRpcmVjdGl2ZS5tYXhIZWlnaHQsXG4gICAgICAgICAgICB3aW5kb3dIZWlnaHQgLSBERUZBVUxUX01BUkdJTiAqIDIsXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gQ2hvb3NlIGRpcmVjdGlvbiBpZiBnaXZlbiBkaXJlY3Rpb24gZGlkIG5vdCBmaXRcbiAgICAgICAgaWYgKGZpbmFsRGlyZWN0aW9uID09PSBudWxsICYmIHRoaXMuY29udGVudEVsZW1lbnRSZWYpIHtcbiAgICAgICAgICAgIC8vIEJveCBoZWlnaHQgaWYgaXQgZml0cyB3aXRob3V0IHNjcm9sbFxuICAgICAgICAgICAgY29uc3QgdmlzdWFsSGVpZ2h0ID0gTWF0aC5taW4oXG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCArXG4gICAgICAgICAgICAgICAgICAgICh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgLVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0KSxcbiAgICAgICAgICAgICAgICBib3hIZWlnaHRMaW1pdCxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIC8vIElmIHRoZXJlIGlzIGVub3VnaCBzcGFjZSB0byBmaXQgYmVsb3cgd2l0aG91dCBzY3JvbGwsXG4gICAgICAgICAgICAvLyBjaG9vc2UgJ2JvdHRvbScsIHVubGVzcyBpdCB3YXMgcHJldmlvdXNseSBvbiB0aGUgdG9wXG4gICAgICAgICAgICBpZiAodGhpcy5wcmV2RGlyZWN0aW9uSXNUb3AgJiYgdG9wQXZhaWxhYmxlSGVpZ2h0ID49IHZpc3VhbEhlaWdodCkge1xuICAgICAgICAgICAgICAgIGZpbmFsRGlyZWN0aW9uID0gJ3RvcCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGJvdHRvbUF2YWlsYWJsZUhlaWdodCA+PSB2aXN1YWxIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICBmaW5hbERpcmVjdGlvbiA9ICdib3R0b20nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBDb3JuZXIgY2FzZSDigJQgc2VsZWN0IGRpcmVjdGlvbiB3aXRoIG1vcmUgc3BhY2VcbiAgICAgICAgICAgICAgICBmaW5hbERpcmVjdGlvbiA9XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbUF2YWlsYWJsZUhlaWdodCA+PSB0b3BBdmFpbGFibGVIZWlnaHQgPyAnYm90dG9tJyA6ICd0b3AnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZpbmFsRGlyZWN0aW9uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgd2lkdGhcbiAgICAgKlxuICAgICAqIEBwYXJhbSBzdHlsZSBkcm9wZG93bkJveCBlbGVtZW50UmVmIHN0eWxlcyBvYmplY3RcbiAgICAgKiBAcGFyYW0gZGlyZWN0aXZlUmVjdCBDbGllbnRSZWN0IG9mIGhvc3RpbmcgZGlyZWN0aXZlXG4gICAgICovXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVXaWR0aChzdHlsZTogQ1NTU3R5bGVEZWNsYXJhdGlvbiwgZGlyZWN0aXZlUmVjdDogQ2xpZW50UmVjdCk6IHZvaWQge1xuICAgICAgICBzdHlsZS53aWR0aCA9XG4gICAgICAgICAgICB0aGlzLmRpcmVjdGl2ZS5saW1pdE1pbldpZHRoID09PSAnZml4ZWQnICYmICF0aGlzLmRpcmVjdGl2ZS5zaWRlZFxuICAgICAgICAgICAgICAgID8gcHgoZGlyZWN0aXZlUmVjdC53aWR0aClcbiAgICAgICAgICAgICAgICA6ICcnO1xuXG4gICAgICAgIGlmICh0aGlzLmRpcmVjdGl2ZS5saW1pdE1pbldpZHRoID09PSAnbWluJyAmJiAhdGhpcy5kaXJlY3RpdmUuc2lkZWQpIHtcbiAgICAgICAgICAgIHN0eWxlLm1pbldpZHRoID0gcHgoZGlyZWN0aXZlUmVjdC53aWR0aCk7XG4gICAgICAgICAgICBzdHlsZS5tYXhXaWR0aCA9IHB4KERFRkFVTFRfTUFYX1dJRFRIKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgc3R5bGUubWluV2lkdGggPSAnJztcbiAgICAgICAgc3R5bGUubWF4V2lkdGggPSAnJztcbiAgICB9XG5cbiAgICBwcml2YXRlIG1vdmVGb2N1c091dHNpZGUocHJldmlvdXM6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgY29uc3Qge2hvc3R9ID0gdGhpcy5kaXJlY3RpdmU7XG4gICAgICAgIGNvbnN0IHtvd25lckRvY3VtZW50fSA9IGhvc3Q7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBvd25lckRvY3VtZW50ID8gb3duZXJEb2N1bWVudC5ib2R5IDogaG9zdDtcblxuICAgICAgICB0dWlBc3NlcnRJc0hUTUxFbGVtZW50KGhvc3QpO1xuXG4gICAgICAgIGxldCBmb2N1c2FibGUgPSBnZXRDbG9zZXN0Rm9jdXNhYmxlKGhvc3QsIHByZXZpb3VzLCByb290KTtcblxuICAgICAgICB3aGlsZSAoZm9jdXNhYmxlICE9PSBudWxsICYmIGhvc3QuY29udGFpbnMoZm9jdXNhYmxlKSkge1xuICAgICAgICAgICAgZm9jdXNhYmxlID0gZ2V0Q2xvc2VzdEZvY3VzYWJsZShmb2N1c2FibGUsIHByZXZpb3VzLCByb290KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvY3VzYWJsZT8uZm9jdXMoKTtcbiAgICB9XG59XG4iXX0=