@taiga-ui/kit 2.33.0 → 2.34.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 (469) hide show
  1. package/abstract/taiga-ui-kit-abstract.metadata.json +1 -1
  2. package/bundles/taiga-ui-kit-abstract.umd.js +2 -2
  3. package/bundles/taiga-ui-kit-abstract.umd.js.map +1 -1
  4. package/bundles/taiga-ui-kit-abstract.umd.min.js +1 -1
  5. package/bundles/taiga-ui-kit-abstract.umd.min.js.map +1 -1
  6. package/bundles/taiga-ui-kit-components-accordion.umd.js +2 -2
  7. package/bundles/taiga-ui-kit-components-accordion.umd.js.map +1 -1
  8. package/bundles/taiga-ui-kit-components-accordion.umd.min.js +1 -1
  9. package/bundles/taiga-ui-kit-components-accordion.umd.min.js.map +1 -1
  10. package/bundles/taiga-ui-kit-components-arrow.umd.js +14 -1
  11. package/bundles/taiga-ui-kit-components-arrow.umd.js.map +1 -1
  12. package/bundles/taiga-ui-kit-components-arrow.umd.min.js +1 -1
  13. package/bundles/taiga-ui-kit-components-arrow.umd.min.js.map +1 -1
  14. package/bundles/taiga-ui-kit-components-avatar.umd.js +2 -2
  15. package/bundles/taiga-ui-kit-components-avatar.umd.js.map +1 -1
  16. package/bundles/taiga-ui-kit-components-avatar.umd.min.js +2 -2
  17. package/bundles/taiga-ui-kit-components-avatar.umd.min.js.map +1 -1
  18. package/bundles/taiga-ui-kit-components-badge.umd.js +2 -2
  19. package/bundles/taiga-ui-kit-components-badge.umd.js.map +1 -1
  20. package/bundles/taiga-ui-kit-components-badge.umd.min.js +1 -1
  21. package/bundles/taiga-ui-kit-components-badge.umd.min.js.map +1 -1
  22. package/bundles/taiga-ui-kit-components-badged-content.umd.js +2 -2
  23. package/bundles/taiga-ui-kit-components-badged-content.umd.js.map +1 -1
  24. package/bundles/taiga-ui-kit-components-badged-content.umd.min.js +2 -2
  25. package/bundles/taiga-ui-kit-components-badged-content.umd.min.js.map +1 -1
  26. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.js +2 -2
  27. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.js.map +1 -1
  28. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.min.js +1 -1
  29. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.min.js.map +1 -1
  30. package/bundles/taiga-ui-kit-components-carousel.umd.js.map +1 -1
  31. package/bundles/taiga-ui-kit-components-carousel.umd.min.js.map +1 -1
  32. package/bundles/taiga-ui-kit-components-checkbox-block.umd.js +2 -2
  33. package/bundles/taiga-ui-kit-components-checkbox-block.umd.js.map +1 -1
  34. package/bundles/taiga-ui-kit-components-checkbox-block.umd.min.js +2 -2
  35. package/bundles/taiga-ui-kit-components-checkbox-block.umd.min.js.map +1 -1
  36. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js +2 -2
  37. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js.map +1 -1
  38. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.min.js +1 -1
  39. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.min.js.map +1 -1
  40. package/bundles/taiga-ui-kit-components-checkbox.umd.js +2 -2
  41. package/bundles/taiga-ui-kit-components-checkbox.umd.js.map +1 -1
  42. package/bundles/taiga-ui-kit-components-checkbox.umd.min.js +1 -1
  43. package/bundles/taiga-ui-kit-components-checkbox.umd.min.js.map +1 -1
  44. package/bundles/taiga-ui-kit-components-combo-box.umd.js +63 -21
  45. package/bundles/taiga-ui-kit-components-combo-box.umd.js.map +1 -1
  46. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js +2 -2
  47. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js.map +1 -1
  48. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js +17 -11
  49. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js.map +1 -1
  50. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.min.js +2 -2
  51. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.min.js.map +1 -1
  52. package/bundles/taiga-ui-kit-components-field-error.umd.js +10 -15
  53. package/bundles/taiga-ui-kit-components-field-error.umd.js.map +1 -1
  54. package/bundles/taiga-ui-kit-components-field-error.umd.min.js +1 -1
  55. package/bundles/taiga-ui-kit-components-field-error.umd.min.js.map +1 -1
  56. package/bundles/taiga-ui-kit-components-filter.umd.js +2 -2
  57. package/bundles/taiga-ui-kit-components-filter.umd.js.map +1 -1
  58. package/bundles/taiga-ui-kit-components-filter.umd.min.js +1 -1
  59. package/bundles/taiga-ui-kit-components-filter.umd.min.js.map +1 -1
  60. package/bundles/taiga-ui-kit-components-input-count.umd.js +7 -2
  61. package/bundles/taiga-ui-kit-components-input-count.umd.js.map +1 -1
  62. package/bundles/taiga-ui-kit-components-input-count.umd.min.js +1 -1
  63. package/bundles/taiga-ui-kit-components-input-count.umd.min.js.map +1 -1
  64. package/bundles/taiga-ui-kit-components-input-password.umd.js +5 -0
  65. package/bundles/taiga-ui-kit-components-input-password.umd.js.map +1 -1
  66. package/bundles/taiga-ui-kit-components-input-password.umd.min.js +1 -1
  67. package/bundles/taiga-ui-kit-components-input-password.umd.min.js.map +1 -1
  68. package/bundles/taiga-ui-kit-components-input-range.umd.js +1 -1
  69. package/bundles/taiga-ui-kit-components-input-range.umd.min.js +1 -1
  70. package/bundles/taiga-ui-kit-components-input-range.umd.min.js.map +1 -1
  71. package/bundles/taiga-ui-kit-components-input-slider.umd.js +1 -1
  72. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js +2 -2
  73. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js.map +1 -1
  74. package/bundles/taiga-ui-kit-components-input-tag.umd.js +42 -13
  75. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  76. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js +2 -2
  77. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js.map +1 -1
  78. package/bundles/taiga-ui-kit-components-input-time.umd.js +5 -0
  79. package/bundles/taiga-ui-kit-components-input-time.umd.js.map +1 -1
  80. package/bundles/taiga-ui-kit-components-input-time.umd.min.js +1 -1
  81. package/bundles/taiga-ui-kit-components-input-time.umd.min.js.map +1 -1
  82. package/bundles/taiga-ui-kit-components-marker-icon.umd.js +2 -2
  83. package/bundles/taiga-ui-kit-components-marker-icon.umd.js.map +1 -1
  84. package/bundles/taiga-ui-kit-components-marker-icon.umd.min.js +1 -1
  85. package/bundles/taiga-ui-kit-components-marker-icon.umd.min.js.map +1 -1
  86. package/bundles/taiga-ui-kit-components-multi-select.umd.js +34 -13
  87. package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
  88. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js +2 -2
  89. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js.map +1 -1
  90. package/bundles/taiga-ui-kit-components-radio-block.umd.js +2 -2
  91. package/bundles/taiga-ui-kit-components-radio-block.umd.js.map +1 -1
  92. package/bundles/taiga-ui-kit-components-radio-block.umd.min.js +1 -1
  93. package/bundles/taiga-ui-kit-components-radio-block.umd.min.js.map +1 -1
  94. package/bundles/taiga-ui-kit-components-radio-labeled.umd.js +2 -2
  95. package/bundles/taiga-ui-kit-components-radio-labeled.umd.js.map +1 -1
  96. package/bundles/taiga-ui-kit-components-radio-labeled.umd.min.js +1 -1
  97. package/bundles/taiga-ui-kit-components-radio-labeled.umd.min.js.map +1 -1
  98. package/bundles/taiga-ui-kit-components-radio-list.umd.js +2 -2
  99. package/bundles/taiga-ui-kit-components-radio-list.umd.js.map +1 -1
  100. package/bundles/taiga-ui-kit-components-radio-list.umd.min.js +1 -1
  101. package/bundles/taiga-ui-kit-components-radio-list.umd.min.js.map +1 -1
  102. package/bundles/taiga-ui-kit-components-radio.umd.js +7 -2
  103. package/bundles/taiga-ui-kit-components-radio.umd.js.map +1 -1
  104. package/bundles/taiga-ui-kit-components-radio.umd.min.js +1 -1
  105. package/bundles/taiga-ui-kit-components-radio.umd.min.js.map +1 -1
  106. package/bundles/taiga-ui-kit-components-range.umd.js +1 -1
  107. package/bundles/taiga-ui-kit-components-range.umd.min.js +1 -1
  108. package/bundles/taiga-ui-kit-components-range.umd.min.js.map +1 -1
  109. package/bundles/taiga-ui-kit-components-rating.umd.js +5 -0
  110. package/bundles/taiga-ui-kit-components-rating.umd.js.map +1 -1
  111. package/bundles/taiga-ui-kit-components-rating.umd.min.js +1 -1
  112. package/bundles/taiga-ui-kit-components-rating.umd.min.js.map +1 -1
  113. package/bundles/taiga-ui-kit-components-select.umd.js +35 -10
  114. package/bundles/taiga-ui-kit-components-select.umd.js.map +1 -1
  115. package/bundles/taiga-ui-kit-components-select.umd.min.js +2 -2
  116. package/bundles/taiga-ui-kit-components-select.umd.min.js.map +1 -1
  117. package/bundles/taiga-ui-kit-components-slider.umd.js +142 -27
  118. package/bundles/taiga-ui-kit-components-slider.umd.js.map +1 -1
  119. package/bundles/taiga-ui-kit-components-slider.umd.min.js +2 -2
  120. package/bundles/taiga-ui-kit-components-slider.umd.min.js.map +1 -1
  121. package/bundles/taiga-ui-kit-components-tag.umd.js +9 -3
  122. package/bundles/taiga-ui-kit-components-tag.umd.js.map +1 -1
  123. package/bundles/taiga-ui-kit-components-tag.umd.min.js +1 -1
  124. package/bundles/taiga-ui-kit-components-tag.umd.min.js.map +1 -1
  125. package/bundles/taiga-ui-kit-components-toggle.umd.js +7 -2
  126. package/bundles/taiga-ui-kit-components-toggle.umd.js.map +1 -1
  127. package/bundles/taiga-ui-kit-components-toggle.umd.min.js +1 -1
  128. package/bundles/taiga-ui-kit-components-toggle.umd.min.js.map +1 -1
  129. package/bundles/taiga-ui-kit-pipes-field-error.umd.js +389 -0
  130. package/bundles/taiga-ui-kit-pipes-field-error.umd.js.map +1 -0
  131. package/bundles/taiga-ui-kit-pipes-field-error.umd.min.js +16 -0
  132. package/bundles/taiga-ui-kit-pipes-field-error.umd.min.js.map +1 -0
  133. package/bundles/taiga-ui-kit-pipes.umd.js +12 -4
  134. package/bundles/taiga-ui-kit-pipes.umd.js.map +1 -1
  135. package/bundles/taiga-ui-kit-pipes.umd.min.js +1 -1
  136. package/bundles/taiga-ui-kit-tokens.umd.js +239 -4
  137. package/bundles/taiga-ui-kit-tokens.umd.js.map +1 -1
  138. package/bundles/taiga-ui-kit-tokens.umd.min.js +15 -1
  139. package/bundles/taiga-ui-kit-tokens.umd.min.js.map +1 -1
  140. package/components/accordion/taiga-ui-kit-components-accordion.metadata.json +1 -1
  141. package/components/arrow/arrow-options.d.ts +7 -5
  142. package/components/arrow/taiga-ui-kit-components-arrow.metadata.json +1 -1
  143. package/components/avatar/taiga-ui-kit-components-avatar.metadata.json +1 -1
  144. package/components/badge/taiga-ui-kit-components-badge.metadata.json +1 -1
  145. package/components/badged-content/taiga-ui-kit-components-badged-content.metadata.json +1 -1
  146. package/components/breadcrumbs/taiga-ui-kit-components-breadcrumbs.metadata.json +1 -1
  147. package/components/carousel/carousel-buttons.directive.d.ts +2 -2
  148. package/components/checkbox/checkbox.component.d.ts +2 -2
  149. package/components/checkbox/taiga-ui-kit-components-checkbox.metadata.json +1 -1
  150. package/components/checkbox-block/taiga-ui-kit-components-checkbox-block.metadata.json +1 -1
  151. package/components/checkbox-labeled/taiga-ui-kit-components-checkbox-labeled.metadata.json +1 -1
  152. package/components/combo-box/combo-box-strict.directive.d.ts +7 -0
  153. package/components/combo-box/combo-box.component.d.ts +8 -5
  154. package/components/combo-box/index.d.ts +1 -0
  155. package/components/combo-box/taiga-ui-kit-components-combo-box.metadata.json +1 -1
  156. package/components/data-list-wrapper/data-list-wrapper.component.d.ts +5 -3
  157. package/components/data-list-wrapper/taiga-ui-kit-components-data-list-wrapper.metadata.json +1 -1
  158. package/components/field-error/field-error.component.d.ts +1 -2
  159. package/components/field-error/field-error.module.d.ts +3 -0
  160. package/components/field-error/taiga-ui-kit-components-field-error.metadata.json +1 -1
  161. package/components/filter/taiga-ui-kit-components-filter.metadata.json +1 -1
  162. package/components/input-count/input-count-options.d.ts +10 -4
  163. package/components/input-count/input-count.component.d.ts +3 -3
  164. package/components/input-count/taiga-ui-kit-components-input-count.metadata.json +1 -1
  165. package/components/input-password/input-password-options.d.ts +10 -4
  166. package/components/input-password/input-password.component.d.ts +3 -3
  167. package/components/input-password/taiga-ui-kit-components-input-password.metadata.json +1 -1
  168. package/components/input-range/taiga-ui-kit-components-input-range.metadata.json +1 -1
  169. package/components/input-slider/taiga-ui-kit-components-input-slider.metadata.json +1 -1
  170. package/components/input-tag/index.d.ts +1 -0
  171. package/components/input-tag/input-tag-options.d.ts +7 -0
  172. package/components/input-tag/input-tag.component.d.ts +6 -2
  173. package/components/input-tag/taiga-ui-kit-components-input-tag.metadata.json +1 -1
  174. package/components/input-time/input-time-options.d.ts +10 -4
  175. package/components/input-time/input-time.component.d.ts +6 -6
  176. package/components/input-time/taiga-ui-kit-components-input-time.metadata.json +1 -1
  177. package/components/marker-icon/taiga-ui-kit-components-marker-icon.metadata.json +1 -1
  178. package/components/multi-select/index.d.ts +1 -0
  179. package/components/multi-select/multi-select-options.d.ts +10 -0
  180. package/components/multi-select/multi-select.component.d.ts +11 -7
  181. package/components/multi-select/taiga-ui-kit-components-multi-select.metadata.json +1 -1
  182. package/components/radio/radio-options.d.ts +10 -4
  183. package/components/radio/radio.component.d.ts +2 -2
  184. package/components/radio/taiga-ui-kit-components-radio.metadata.json +1 -1
  185. package/components/radio-block/taiga-ui-kit-components-radio-block.metadata.json +1 -1
  186. package/components/radio-labeled/taiga-ui-kit-components-radio-labeled.metadata.json +1 -1
  187. package/components/radio-list/taiga-ui-kit-components-radio-list.metadata.json +1 -1
  188. package/components/range/taiga-ui-kit-components-range.metadata.json +1 -1
  189. package/components/rating/rating-options.d.ts +2 -1
  190. package/components/rating/taiga-ui-kit-components-rating.metadata.json +1 -1
  191. package/components/select/index.d.ts +1 -0
  192. package/components/select/select-options.d.ts +9 -0
  193. package/components/select/select.component.d.ts +9 -4
  194. package/components/select/taiga-ui-kit-components-select.metadata.json +1 -1
  195. package/components/slider/index.d.ts +1 -0
  196. package/components/slider/slider-old.component.d.ts +19 -0
  197. package/components/slider/slider.component.d.ts +16 -13
  198. package/components/slider/taiga-ui-kit-components-slider.metadata.json +1 -1
  199. package/components/tag/tag.component.d.ts +1 -0
  200. package/components/tag/taiga-ui-kit-components-tag.metadata.json +1 -1
  201. package/components/toggle/taiga-ui-kit-components-toggle.metadata.json +1 -1
  202. package/components/toggle/toggle-options.d.ts +10 -4
  203. package/components/toggle/toggle.component.d.ts +3 -3
  204. package/esm2015/abstract/input-slider.js +2 -2
  205. package/esm2015/abstract/slider/slider.js +2 -2
  206. package/esm2015/components/accordion/accordion-item/accordion-item.component.js +3 -3
  207. package/esm2015/components/arrow/arrow-options.js +13 -2
  208. package/esm2015/components/avatar/avatar.component.js +3 -3
  209. package/esm2015/components/badge/badge.component.js +3 -3
  210. package/esm2015/components/badged-content/badged-content.component.js +3 -3
  211. package/esm2015/components/breadcrumbs/breadcrumbs.component.js +3 -3
  212. package/esm2015/components/carousel/carousel-buttons.directive.js +1 -1
  213. package/esm2015/components/checkbox/checkbox.component.js +3 -3
  214. package/esm2015/components/checkbox-block/checkbox-block.component.js +3 -3
  215. package/esm2015/components/checkbox-labeled/checkbox-labeled.component.js +3 -3
  216. package/esm2015/components/combo-box/combo-box-strict.directive.js +31 -0
  217. package/esm2015/components/combo-box/combo-box.component.js +23 -17
  218. package/esm2015/components/combo-box/combo-box.module.js +13 -3
  219. package/esm2015/components/combo-box/index.js +2 -1
  220. package/esm2015/components/data-list-wrapper/data-list-wrapper.component.js +17 -11
  221. package/esm2015/components/field-error/field-error.component.js +8 -12
  222. package/esm2015/components/field-error/field-error.module.js +6 -2
  223. package/esm2015/components/filter/filter.component.js +3 -3
  224. package/esm2015/components/input-count/input-count-options.js +5 -1
  225. package/esm2015/components/input-count/input-count.component.js +3 -3
  226. package/esm2015/components/input-password/input-password-options.js +5 -1
  227. package/esm2015/components/input-password/input-password.component.js +2 -2
  228. package/esm2015/components/input-range/input-range.component.js +1 -1
  229. package/esm2015/components/input-slider/input-slider.component.js +1 -1
  230. package/esm2015/components/input-tag/index.js +2 -1
  231. package/esm2015/components/input-tag/input-tag-options.js +9 -0
  232. package/esm2015/components/input-tag/input-tag.component.js +29 -13
  233. package/esm2015/components/input-time/input-time-options.js +5 -1
  234. package/esm2015/components/input-time/input-time.component.js +1 -1
  235. package/esm2015/components/marker-icon/marker-icon.component.js +3 -3
  236. package/esm2015/components/multi-select/index.js +2 -1
  237. package/esm2015/components/multi-select/multi-select-options.js +13 -0
  238. package/esm2015/components/multi-select/multi-select.component.js +19 -11
  239. package/esm2015/components/radio/radio-options.js +5 -1
  240. package/esm2015/components/radio/radio.component.js +3 -3
  241. package/esm2015/components/radio-block/radio-block.component.js +3 -3
  242. package/esm2015/components/radio-labeled/radio-labeled.component.js +3 -3
  243. package/esm2015/components/radio-list/radio-list.component.js +3 -3
  244. package/esm2015/components/range/range.component.js +1 -1
  245. package/esm2015/components/rating/rating-options.js +5 -1
  246. package/esm2015/components/select/index.js +2 -1
  247. package/esm2015/components/select/select-options.js +12 -0
  248. package/esm2015/components/select/select.component.js +21 -8
  249. package/esm2015/components/slider/index.js +2 -1
  250. package/esm2015/components/slider/slider-old.component.js +71 -0
  251. package/esm2015/components/slider/slider.component.js +66 -46
  252. package/esm2015/components/slider/slider.module.js +4 -3
  253. package/esm2015/components/tag/tag.component.js +10 -4
  254. package/esm2015/components/toggle/toggle-options.js +5 -1
  255. package/esm2015/components/toggle/toggle.component.js +3 -3
  256. package/esm2015/pipes/field-error/field-error-pipe.js +120 -0
  257. package/esm2015/pipes/field-error/field-error.module.js +13 -0
  258. package/esm2015/pipes/field-error/index.js +3 -0
  259. package/esm2015/pipes/field-error/taiga-ui-kit-pipes-field-error.js +5 -0
  260. package/esm2015/pipes/index.js +2 -1
  261. package/esm2015/tokens/index.js +2 -1
  262. package/esm2015/tokens/items-handlers.js +15 -0
  263. package/esm5/abstract/input-slider.js +2 -2
  264. package/esm5/abstract/slider/slider.js +2 -2
  265. package/esm5/components/accordion/accordion-item/accordion-item.component.js +3 -3
  266. package/esm5/components/arrow/arrow-options.js +14 -2
  267. package/esm5/components/avatar/avatar.component.js +3 -3
  268. package/esm5/components/badge/badge.component.js +3 -3
  269. package/esm5/components/badged-content/badged-content.component.js +3 -3
  270. package/esm5/components/breadcrumbs/breadcrumbs.component.js +3 -3
  271. package/esm5/components/carousel/carousel-buttons.directive.js +1 -1
  272. package/esm5/components/checkbox/checkbox.component.js +3 -3
  273. package/esm5/components/checkbox-block/checkbox-block.component.js +3 -3
  274. package/esm5/components/checkbox-labeled/checkbox-labeled.component.js +3 -3
  275. package/esm5/components/combo-box/combo-box-strict.directive.js +32 -0
  276. package/esm5/components/combo-box/combo-box.component.js +23 -17
  277. package/esm5/components/combo-box/combo-box.module.js +13 -3
  278. package/esm5/components/combo-box/index.js +2 -1
  279. package/esm5/components/data-list-wrapper/data-list-wrapper.component.js +18 -11
  280. package/esm5/components/field-error/field-error.component.js +8 -16
  281. package/esm5/components/field-error/field-error.module.js +6 -2
  282. package/esm5/components/filter/filter.component.js +3 -3
  283. package/esm5/components/input-count/input-count-options.js +6 -1
  284. package/esm5/components/input-count/input-count.component.js +3 -3
  285. package/esm5/components/input-password/input-password-options.js +6 -1
  286. package/esm5/components/input-password/input-password.component.js +2 -2
  287. package/esm5/components/input-range/input-range.component.js +1 -1
  288. package/esm5/components/input-slider/input-slider.component.js +1 -1
  289. package/esm5/components/input-tag/index.js +2 -1
  290. package/esm5/components/input-tag/input-tag-options.js +9 -0
  291. package/esm5/components/input-tag/input-tag.component.js +34 -14
  292. package/esm5/components/input-time/input-time-options.js +6 -1
  293. package/esm5/components/input-time/input-time.component.js +1 -1
  294. package/esm5/components/marker-icon/marker-icon.component.js +3 -3
  295. package/esm5/components/multi-select/index.js +2 -1
  296. package/esm5/components/multi-select/multi-select-options.js +14 -0
  297. package/esm5/components/multi-select/multi-select.component.js +19 -11
  298. package/esm5/components/radio/radio-options.js +6 -1
  299. package/esm5/components/radio/radio.component.js +3 -3
  300. package/esm5/components/radio-block/radio-block.component.js +3 -3
  301. package/esm5/components/radio-labeled/radio-labeled.component.js +3 -3
  302. package/esm5/components/radio-list/radio-list.component.js +3 -3
  303. package/esm5/components/range/range.component.js +1 -1
  304. package/esm5/components/rating/rating-options.js +6 -1
  305. package/esm5/components/select/index.js +2 -1
  306. package/esm5/components/select/select-options.js +13 -0
  307. package/esm5/components/select/select.component.js +21 -8
  308. package/esm5/components/slider/index.js +2 -1
  309. package/esm5/components/slider/slider-old.component.js +90 -0
  310. package/esm5/components/slider/slider.component.js +83 -53
  311. package/esm5/components/slider/slider.module.js +4 -3
  312. package/esm5/components/tag/tag.component.js +10 -4
  313. package/esm5/components/toggle/toggle-options.js +6 -1
  314. package/esm5/components/toggle/toggle.component.js +3 -3
  315. package/esm5/pipes/field-error/field-error-pipe.js +153 -0
  316. package/esm5/pipes/field-error/field-error.module.js +16 -0
  317. package/esm5/pipes/field-error/index.js +3 -0
  318. package/esm5/pipes/field-error/taiga-ui-kit-pipes-field-error.js +5 -0
  319. package/esm5/pipes/index.js +2 -1
  320. package/esm5/tokens/index.js +2 -1
  321. package/esm5/tokens/items-handlers.js +16 -0
  322. package/fesm2015/taiga-ui-kit-abstract.js +2 -2
  323. package/fesm2015/taiga-ui-kit-abstract.js.map +1 -1
  324. package/fesm2015/taiga-ui-kit-components-accordion.js +2 -2
  325. package/fesm2015/taiga-ui-kit-components-accordion.js.map +1 -1
  326. package/fesm2015/taiga-ui-kit-components-arrow.js +13 -2
  327. package/fesm2015/taiga-ui-kit-components-arrow.js.map +1 -1
  328. package/fesm2015/taiga-ui-kit-components-avatar.js +2 -2
  329. package/fesm2015/taiga-ui-kit-components-avatar.js.map +1 -1
  330. package/fesm2015/taiga-ui-kit-components-badge.js +2 -2
  331. package/fesm2015/taiga-ui-kit-components-badge.js.map +1 -1
  332. package/fesm2015/taiga-ui-kit-components-badged-content.js +2 -2
  333. package/fesm2015/taiga-ui-kit-components-badged-content.js.map +1 -1
  334. package/fesm2015/taiga-ui-kit-components-breadcrumbs.js +2 -2
  335. package/fesm2015/taiga-ui-kit-components-breadcrumbs.js.map +1 -1
  336. package/fesm2015/taiga-ui-kit-components-carousel.js.map +1 -1
  337. package/fesm2015/taiga-ui-kit-components-checkbox-block.js +2 -2
  338. package/fesm2015/taiga-ui-kit-components-checkbox-block.js.map +1 -1
  339. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js +2 -2
  340. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js.map +1 -1
  341. package/fesm2015/taiga-ui-kit-components-checkbox.js +2 -2
  342. package/fesm2015/taiga-ui-kit-components-checkbox.js.map +1 -1
  343. package/fesm2015/taiga-ui-kit-components-combo-box.js +61 -20
  344. package/fesm2015/taiga-ui-kit-components-combo-box.js.map +1 -1
  345. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js +16 -10
  346. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  347. package/fesm2015/taiga-ui-kit-components-field-error.js +12 -13
  348. package/fesm2015/taiga-ui-kit-components-field-error.js.map +1 -1
  349. package/fesm2015/taiga-ui-kit-components-filter.js +2 -2
  350. package/fesm2015/taiga-ui-kit-components-filter.js.map +1 -1
  351. package/fesm2015/taiga-ui-kit-components-input-count.js +7 -3
  352. package/fesm2015/taiga-ui-kit-components-input-count.js.map +1 -1
  353. package/fesm2015/taiga-ui-kit-components-input-password.js +5 -1
  354. package/fesm2015/taiga-ui-kit-components-input-password.js.map +1 -1
  355. package/fesm2015/taiga-ui-kit-components-input-range.js +1 -1
  356. package/fesm2015/taiga-ui-kit-components-input-slider.js +1 -1
  357. package/fesm2015/taiga-ui-kit-components-input-tag.js +37 -14
  358. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  359. package/fesm2015/taiga-ui-kit-components-input-time.js +5 -1
  360. package/fesm2015/taiga-ui-kit-components-input-time.js.map +1 -1
  361. package/fesm2015/taiga-ui-kit-components-marker-icon.js +2 -2
  362. package/fesm2015/taiga-ui-kit-components-marker-icon.js.map +1 -1
  363. package/fesm2015/taiga-ui-kit-components-multi-select.js +31 -12
  364. package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
  365. package/fesm2015/taiga-ui-kit-components-radio-block.js +2 -2
  366. package/fesm2015/taiga-ui-kit-components-radio-block.js.map +1 -1
  367. package/fesm2015/taiga-ui-kit-components-radio-labeled.js +2 -2
  368. package/fesm2015/taiga-ui-kit-components-radio-labeled.js.map +1 -1
  369. package/fesm2015/taiga-ui-kit-components-radio-list.js +2 -2
  370. package/fesm2015/taiga-ui-kit-components-radio-list.js.map +1 -1
  371. package/fesm2015/taiga-ui-kit-components-radio.js +7 -3
  372. package/fesm2015/taiga-ui-kit-components-radio.js.map +1 -1
  373. package/fesm2015/taiga-ui-kit-components-range.js +1 -1
  374. package/fesm2015/taiga-ui-kit-components-rating.js +5 -1
  375. package/fesm2015/taiga-ui-kit-components-rating.js.map +1 -1
  376. package/fesm2015/taiga-ui-kit-components-select.js +32 -9
  377. package/fesm2015/taiga-ui-kit-components-select.js.map +1 -1
  378. package/fesm2015/taiga-ui-kit-components-slider.js +100 -14
  379. package/fesm2015/taiga-ui-kit-components-slider.js.map +1 -1
  380. package/fesm2015/taiga-ui-kit-components-tag.js +9 -3
  381. package/fesm2015/taiga-ui-kit-components-tag.js.map +1 -1
  382. package/fesm2015/taiga-ui-kit-components-toggle.js +7 -3
  383. package/fesm2015/taiga-ui-kit-components-toggle.js.map +1 -1
  384. package/fesm2015/taiga-ui-kit-pipes-field-error.js +135 -0
  385. package/fesm2015/taiga-ui-kit-pipes-field-error.js.map +1 -0
  386. package/fesm2015/taiga-ui-kit-pipes.js +1 -0
  387. package/fesm2015/taiga-ui-kit-pipes.js.map +1 -1
  388. package/fesm2015/taiga-ui-kit-tokens.js +15 -1
  389. package/fesm2015/taiga-ui-kit-tokens.js.map +1 -1
  390. package/fesm5/taiga-ui-kit-abstract.js +2 -2
  391. package/fesm5/taiga-ui-kit-abstract.js.map +1 -1
  392. package/fesm5/taiga-ui-kit-components-accordion.js +2 -2
  393. package/fesm5/taiga-ui-kit-components-accordion.js.map +1 -1
  394. package/fesm5/taiga-ui-kit-components-arrow.js +14 -3
  395. package/fesm5/taiga-ui-kit-components-arrow.js.map +1 -1
  396. package/fesm5/taiga-ui-kit-components-avatar.js +2 -2
  397. package/fesm5/taiga-ui-kit-components-avatar.js.map +1 -1
  398. package/fesm5/taiga-ui-kit-components-badge.js +2 -2
  399. package/fesm5/taiga-ui-kit-components-badge.js.map +1 -1
  400. package/fesm5/taiga-ui-kit-components-badged-content.js +2 -2
  401. package/fesm5/taiga-ui-kit-components-badged-content.js.map +1 -1
  402. package/fesm5/taiga-ui-kit-components-breadcrumbs.js +2 -2
  403. package/fesm5/taiga-ui-kit-components-breadcrumbs.js.map +1 -1
  404. package/fesm5/taiga-ui-kit-components-carousel.js.map +1 -1
  405. package/fesm5/taiga-ui-kit-components-checkbox-block.js +2 -2
  406. package/fesm5/taiga-ui-kit-components-checkbox-block.js.map +1 -1
  407. package/fesm5/taiga-ui-kit-components-checkbox-labeled.js +2 -2
  408. package/fesm5/taiga-ui-kit-components-checkbox-labeled.js.map +1 -1
  409. package/fesm5/taiga-ui-kit-components-checkbox.js +2 -2
  410. package/fesm5/taiga-ui-kit-components-checkbox.js.map +1 -1
  411. package/fesm5/taiga-ui-kit-components-combo-box.js +62 -20
  412. package/fesm5/taiga-ui-kit-components-combo-box.js.map +1 -1
  413. package/fesm5/taiga-ui-kit-components-data-list-wrapper.js +17 -10
  414. package/fesm5/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  415. package/fesm5/taiga-ui-kit-components-field-error.js +12 -17
  416. package/fesm5/taiga-ui-kit-components-field-error.js.map +1 -1
  417. package/fesm5/taiga-ui-kit-components-filter.js +2 -2
  418. package/fesm5/taiga-ui-kit-components-filter.js.map +1 -1
  419. package/fesm5/taiga-ui-kit-components-input-count.js +8 -4
  420. package/fesm5/taiga-ui-kit-components-input-count.js.map +1 -1
  421. package/fesm5/taiga-ui-kit-components-input-password.js +6 -2
  422. package/fesm5/taiga-ui-kit-components-input-password.js.map +1 -1
  423. package/fesm5/taiga-ui-kit-components-input-range.js +1 -1
  424. package/fesm5/taiga-ui-kit-components-input-slider.js +1 -1
  425. package/fesm5/taiga-ui-kit-components-input-tag.js +42 -15
  426. package/fesm5/taiga-ui-kit-components-input-tag.js.map +1 -1
  427. package/fesm5/taiga-ui-kit-components-input-time.js +6 -2
  428. package/fesm5/taiga-ui-kit-components-input-time.js.map +1 -1
  429. package/fesm5/taiga-ui-kit-components-marker-icon.js +2 -2
  430. package/fesm5/taiga-ui-kit-components-marker-icon.js.map +1 -1
  431. package/fesm5/taiga-ui-kit-components-multi-select.js +32 -13
  432. package/fesm5/taiga-ui-kit-components-multi-select.js.map +1 -1
  433. package/fesm5/taiga-ui-kit-components-radio-block.js +2 -2
  434. package/fesm5/taiga-ui-kit-components-radio-block.js.map +1 -1
  435. package/fesm5/taiga-ui-kit-components-radio-labeled.js +2 -2
  436. package/fesm5/taiga-ui-kit-components-radio-labeled.js.map +1 -1
  437. package/fesm5/taiga-ui-kit-components-radio-list.js +2 -2
  438. package/fesm5/taiga-ui-kit-components-radio-list.js.map +1 -1
  439. package/fesm5/taiga-ui-kit-components-radio.js +8 -4
  440. package/fesm5/taiga-ui-kit-components-radio.js.map +1 -1
  441. package/fesm5/taiga-ui-kit-components-range.js +1 -1
  442. package/fesm5/taiga-ui-kit-components-rating.js +6 -2
  443. package/fesm5/taiga-ui-kit-components-rating.js.map +1 -1
  444. package/fesm5/taiga-ui-kit-components-select.js +33 -10
  445. package/fesm5/taiga-ui-kit-components-select.js.map +1 -1
  446. package/fesm5/taiga-ui-kit-components-slider.js +141 -26
  447. package/fesm5/taiga-ui-kit-components-slider.js.map +1 -1
  448. package/fesm5/taiga-ui-kit-components-tag.js +9 -3
  449. package/fesm5/taiga-ui-kit-components-tag.js.map +1 -1
  450. package/fesm5/taiga-ui-kit-components-toggle.js +8 -4
  451. package/fesm5/taiga-ui-kit-components-toggle.js.map +1 -1
  452. package/fesm5/taiga-ui-kit-pipes-field-error.js +171 -0
  453. package/fesm5/taiga-ui-kit-pipes-field-error.js.map +1 -0
  454. package/fesm5/taiga-ui-kit-pipes.js +1 -0
  455. package/fesm5/taiga-ui-kit-pipes.js.map +1 -1
  456. package/fesm5/taiga-ui-kit-tokens.js +16 -1
  457. package/fesm5/taiga-ui-kit-tokens.js.map +1 -1
  458. package/package.json +4 -4
  459. package/pipes/field-error/field-error-pipe.d.ts +29 -0
  460. package/pipes/field-error/field-error.module.d.ts +2 -0
  461. package/pipes/field-error/index.d.ts +2 -0
  462. package/pipes/field-error/package.json +13 -0
  463. package/pipes/field-error/taiga-ui-kit-pipes-field-error.d.ts +4 -0
  464. package/pipes/field-error/taiga-ui-kit-pipes-field-error.metadata.json +1 -0
  465. package/pipes/index.d.ts +1 -0
  466. package/pipes/taiga-ui-kit-pipes.metadata.json +1 -1
  467. package/tokens/index.d.ts +1 -0
  468. package/tokens/items-handlers.d.ts +10 -0
  469. package/tokens/taiga-ui-kit-tokens.metadata.json +1 -1
@@ -8,10 +8,11 @@ import { FIXED_DROPDOWN_CONTROLLER_PROVIDER } from '@taiga-ui/kit/providers';
8
8
  import { TUI_TAG_STATUS } from '@taiga-ui/kit/tokens';
9
9
  import { merge, Subject } from 'rxjs';
10
10
  import { filter, map, mapTo, switchMap, takeUntil } from 'rxjs/operators';
11
+ import { TUI_INPUT_TAG_OPTIONS } from './input-tag-options';
11
12
  var EVENT_Y_TO_X_COEFFICENT = 3;
12
13
  var TuiInputTagComponent = /** @class */ (function (_super) {
13
14
  __extends(TuiInputTagComponent, _super);
14
- function TuiInputTagComponent(control, changeDetectorRef, tuiScrollService, elementRef, appearance, modeDirective, tagStatus, hintController, controller) {
15
+ function TuiInputTagComponent(control, changeDetectorRef, tuiScrollService, elementRef, appearance, modeDirective, tagStatus, hintController, controller, options) {
15
16
  var _this = _super.call(this, control, changeDetectorRef) || this;
16
17
  _this.tuiScrollService = tuiScrollService;
17
18
  _this.elementRef = elementRef;
@@ -20,10 +21,13 @@ var TuiInputTagComponent = /** @class */ (function (_super) {
20
21
  _this.tagStatus = tagStatus;
21
22
  _this.hintController = hintController;
22
23
  _this.controller = controller;
24
+ _this.options = options;
23
25
  _this.tags = EMPTY_QUERY;
24
26
  _this.scrollToStart$ = new Subject();
25
27
  _this.scrollToEnd$ = new Subject();
28
+ // TODO: Remove in 3.0
26
29
  _this.allowSpaces = true;
30
+ _this.separator = _this.options.separator;
27
31
  _this.icon = '';
28
32
  _this.iconAlign = 'right';
29
33
  _this.search = '';
@@ -31,6 +35,7 @@ var TuiInputTagComponent = /** @class */ (function (_super) {
31
35
  _this.tagValidator = ALWAYS_TRUE_HANDLER;
32
36
  _this.expandable = true;
33
37
  _this.inputHidden = false;
38
+ _this.uniqueTags = _this.options.uniqueTags;
34
39
  _this.disabledItemHandler = ALWAYS_FALSE_HANDLER;
35
40
  _this.searchChange = new EventEmitter();
36
41
  _this.open = false;
@@ -109,7 +114,8 @@ var TuiInputTagComponent = /** @class */ (function (_super) {
109
114
  });
110
115
  Object.defineProperty(TuiInputTagComponent.prototype, "hasPlaceholder", {
111
116
  get: function () {
112
- return !this.labelOutside || (!this.hasValue && !this.hasExampleText);
117
+ return (!this.labelOutside ||
118
+ (!this.hasValue && (!this.hasExampleText || this.inputHidden)));
113
119
  },
114
120
  enumerable: true,
115
121
  configurable: true
@@ -239,14 +245,15 @@ var TuiInputTagComponent = /** @class */ (function (_super) {
239
245
  this.onScrollKeyDown(currentIndex, 1);
240
246
  }
241
247
  };
242
- TuiInputTagComponent.prototype.onTagEdited = function (value, editedTag) {
248
+ TuiInputTagComponent.prototype.onTagEdited = function (value, index) {
249
+ var _this = this;
243
250
  this.focusInput();
244
251
  this.updateValue(this.value
245
- .map(function (tag) {
246
- return tag !== editedTag
252
+ .map(function (tag, tagIndex) {
253
+ return tagIndex !== index
247
254
  ? tag
248
255
  : value
249
- .split(',')
256
+ .split(_this.separator)
250
257
  .map(function (tag) { return tag.trim(); })
251
258
  .filter(Boolean);
252
259
  })
@@ -262,7 +269,7 @@ var TuiInputTagComponent = /** @class */ (function (_super) {
262
269
  TuiInputTagComponent.prototype.onInput = function (value) {
263
270
  var _this = this;
264
271
  var array = this.allowSpaces
265
- ? value.split(',')
272
+ ? value.split(this.separator)
266
273
  : value.split(ALLOWED_SPACE_REGEXP);
267
274
  var tags = array
268
275
  .map(function (item) { return item.trim(); })
@@ -288,10 +295,13 @@ var TuiInputTagComponent = /** @class */ (function (_super) {
288
295
  this.open = false;
289
296
  };
290
297
  TuiInputTagComponent.prototype.updateValue = function (value) {
298
+ var _this = this;
291
299
  var seen = new Set();
292
300
  _super.prototype.updateValue.call(this, value
293
301
  .reverse()
294
- .filter(function (item) { return !!item && !seen.has(item) && seen.add(item); })
302
+ .filter(function (item) {
303
+ return !_this.uniqueTags || (!!item && !seen.has(item) && seen.add(item));
304
+ })
295
305
  .reverse());
296
306
  };
297
307
  TuiInputTagComponent.prototype.onScrollKeyDown = function (currentIndex, flag) {
@@ -367,7 +377,8 @@ var TuiInputTagComponent = /** @class */ (function (_super) {
367
377
  { type: TuiModeDirective, decorators: [{ type: Optional }, { type: Inject, args: [TuiModeDirective,] }] },
368
378
  { type: undefined, decorators: [{ type: Inject, args: [TUI_TAG_STATUS,] }] },
369
379
  { type: TuiHintControllerDirective, decorators: [{ type: Inject, args: [TUI_HINT_WATCHED_CONTROLLER,] }] },
370
- { type: TuiTextfieldController, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_WATCHED_CONTROLLER,] }] }
380
+ { type: TuiTextfieldController, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_WATCHED_CONTROLLER,] }] },
381
+ { type: undefined, decorators: [{ type: Inject, args: [TUI_INPUT_TAG_OPTIONS,] }] }
371
382
  ]; };
372
383
  __decorate([
373
384
  ViewChild(TuiHostedDropdownComponent)
@@ -391,6 +402,10 @@ var TuiInputTagComponent = /** @class */ (function (_super) {
391
402
  Input(),
392
403
  tuiDefaultProp()
393
404
  ], TuiInputTagComponent.prototype, "allowSpaces", void 0);
405
+ __decorate([
406
+ Input(),
407
+ tuiDefaultProp()
408
+ ], TuiInputTagComponent.prototype, "separator", void 0);
394
409
  __decorate([
395
410
  Input(),
396
411
  tuiDefaultProp()
@@ -420,6 +435,10 @@ var TuiInputTagComponent = /** @class */ (function (_super) {
420
435
  Input(),
421
436
  tuiDefaultProp()
422
437
  ], TuiInputTagComponent.prototype, "inputHidden", void 0);
438
+ __decorate([
439
+ Input(),
440
+ tuiDefaultProp()
441
+ ], TuiInputTagComponent.prototype, "uniqueTags", void 0);
423
442
  __decorate([
424
443
  Input(),
425
444
  tuiDefaultProp()
@@ -440,7 +459,7 @@ var TuiInputTagComponent = /** @class */ (function (_super) {
440
459
  ViewChild(TuiScrollbarComponent)
441
460
  ], TuiInputTagComponent.prototype, "scrollerSetter", null);
442
461
  __decorate([
443
- HostBinding('attr.data-tui-host-size')
462
+ HostBinding('attr.data-size')
444
463
  ], TuiInputTagComponent.prototype, "size", null);
445
464
  __decorate([
446
465
  HostBinding('class._label-outside')
@@ -449,7 +468,7 @@ var TuiInputTagComponent = /** @class */ (function (_super) {
449
468
  Component({
450
469
  selector: 'tui-input-tag',
451
470
  changeDetection: ChangeDetectionStrategy.OnPush,
452
- template: "<tui-hosted-dropdown\n class=\"hosted\"\n [canOpen]=\"canOpen\"\n [content]=\"datalist || ''\"\n [(open)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-wrapper\n [appearance]=\"appearance\"\n [readOnly]=\"readOnly\"\n [focused]=\"computedFocused\"\n [hovered]=\"computedHovered\"\n [disabled]=\"computedDisabled\"\n [invalid]=\"computedInvalid\"\n (tuiHoveredChange)=\"onHoveredChange($event)\"\n (mousedown)=\"onMouseDown($event)\"\n >\n <div class=\"content\">\n <div *ngIf=\"iconAlignLeft\" class=\"icons icons_left\">\n <tui-svg class=\"icon\" [src]=\"icon\"></tui-svg>\n </div>\n <div class=\"wrapper\">\n <div class=\"absolute-wrapper\">\n <div\n *ngIf=\"hasPlaceholder\"\n automation-id=\"tui-input-tag__placeholder\"\n class=\"placeholder\"\n [class.placeholder_raised]=\"placeholderRaised\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n <tui-scrollbar\n *ngIf=\"!expandable; else items\"\n class=\"scrollbar\"\n [hidden]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"items\"></ng-container>\n </tui-scrollbar>\n <ng-template #items>\n <div #tagsContainer class=\"tags\">\n <ng-container *ngIf=\"labelOutside; else text\">\n <tui-tag\n *ngFor=\"let item of value; index as index\"\n #tag\n automation-id=\"tui-input-tag__tag\"\n class=\"tag\"\n [status]=\"status\"\n [leftContent]=\"getLeftContent(item)\"\n [allowSpaces]=\"allowSpaces\"\n [tuiFocusable]=\"false\"\n [disabled]=\"computedDisabled || disabledItemHandler(item)\"\n [editable]=\"editable && !readOnly\"\n [hoverable]=\"!readOnly\"\n [removable]=\"!readOnly\"\n [maxLength]=\"controller.maxLength\"\n [size]=\"controller.size\"\n [value]=\"item.toString()\"\n (edited)=\"onTagEdited($event, item)\"\n (keydown.arrowLeft.prevent)=\"onTagKeyDownArrowLeft(index)\"\n (keydown.arrowRight.prevent)=\"onTagKeyDownArrowRight(index)\"\n ></tui-tag>\n </ng-container>\n <ng-template #text>\n <span\n *ngFor=\"let item of value\"\n class=\"text\"\n [class.text_disabled]=\"disabledItemHandler(item)\"\n [class.text_error]=\"!tagValidator(item)\"\n [innerText]=\"item\"\n ></span>\n </ng-template>\n <div\n class=\"input-wrapper\"\n [class.input-wrapper_collapsed]=\"computedDisabled || readOnly || inputHidden\"\n >\n <div class=\"ghost\">{{ search }}</div>\n <input\n #focusableElement\n type=\"text\"\n automation-id=\"tui-input-tag__native\"\n class=\"native\"\n [placeholder]=\"controller.exampleText\"\n [class.native_hidden]=\"inputHidden\"\n [attr.maxLength]=\"controller.maxLength\"\n [id]=\"id\"\n [disabled]=\"computedDisabled\"\n [readOnly]=\"readOnly || inputHidden\"\n [tuiFocusable]=\"computedFocusable\"\n [ngModel]=\"search\"\n (ngModelChange)=\"onInput($event)\"\n (keydown.arrowLeft)=\"onFieldKeyDownArrowLeft($event)\"\n (keydown.backspace)=\"onFieldKeyDownBackspace($event)\"\n (keydown.enter.prevent)=\"onFieldKeyDownEnter()\"\n />\n </div>\n </div>\n </ng-template>\n </div>\n <div *ngIf=\"hasRightIcons\" class=\"icons icons_right\">\n <tui-svg\n *ngIf=\"hasCleaner\"\n #cleaner\n automation-id=\"tui-input-tag__cleaner\"\n src=\"tuiIconCloseLarge\"\n class=\"cleaner\"\n (click.stop)=\"onCleanerClick()\"\n ></tui-svg>\n <tui-tooltip\n *ngIf=\"hasTooltip\"\n automation-id=\"tui-input-tag__tooltip\"\n describeId=\"placeholer_until_accesibility_is_added\"\n class=\"tooltip\"\n [direction]=\"hintController.direction\"\n [mode]=\"hintController.mode\"\n [content]=\"hintController.content\"\n [showDelay]=\"hintController.showDelay\"\n [hideDelay]=\"hintController.hideDelay\"\n ></tui-tooltip>\n <tui-svg\n *ngIf=\"iconAlignRight\"\n class=\"icon\"\n [src]=\"icon\"\n ></tui-svg>\n </div>\n </div>\n <ng-template #errorIcon>\n <tui-svg src=\"tuiIconAttention\" class=\"error-icon\"></tui-svg>\n </ng-template>\n </tui-wrapper>\n</tui-hosted-dropdown>\n",
471
+ template: "<tui-hosted-dropdown\n class=\"hosted\"\n [canOpen]=\"canOpen\"\n [content]=\"datalist || ''\"\n [(open)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-wrapper\n [appearance]=\"appearance\"\n [readOnly]=\"readOnly\"\n [focused]=\"computedFocused\"\n [hovered]=\"computedHovered\"\n [disabled]=\"computedDisabled\"\n [invalid]=\"computedInvalid\"\n (tuiHoveredChange)=\"onHoveredChange($event)\"\n (mousedown)=\"onMouseDown($event)\"\n >\n <div class=\"content\">\n <div *ngIf=\"iconAlignLeft\" class=\"icons icons_left\">\n <tui-svg class=\"icon\" [src]=\"icon\"></tui-svg>\n </div>\n <div class=\"wrapper\">\n <div class=\"absolute-wrapper\">\n <div\n *ngIf=\"hasPlaceholder\"\n automation-id=\"tui-input-tag__placeholder\"\n class=\"placeholder\"\n [class.placeholder_raised]=\"placeholderRaised\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n <tui-scrollbar\n *ngIf=\"!expandable; else items\"\n class=\"scrollbar\"\n [hidden]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"items\"></ng-container>\n </tui-scrollbar>\n <ng-template #items>\n <div #tagsContainer class=\"tags\">\n <ng-container *ngIf=\"labelOutside; else text\">\n <tui-tag\n *ngFor=\"let item of value; index as index\"\n #tag\n automation-id=\"tui-input-tag__tag\"\n class=\"tag\"\n [status]=\"status\"\n [leftContent]=\"getLeftContent(item)\"\n [allowSpaces]=\"allowSpaces\"\n [tuiFocusable]=\"false\"\n [disabled]=\"computedDisabled || disabledItemHandler(item)\"\n [editable]=\"editable && !readOnly\"\n [hoverable]=\"!readOnly\"\n [removable]=\"!readOnly\"\n [separator]=\"separator\"\n [maxLength]=\"controller.maxLength\"\n [size]=\"controller.size\"\n [value]=\"item.toString()\"\n (edited)=\"onTagEdited($event, index)\"\n (keydown.arrowLeft.prevent)=\"onTagKeyDownArrowLeft(index)\"\n (keydown.arrowRight.prevent)=\"onTagKeyDownArrowRight(index)\"\n ></tui-tag>\n </ng-container>\n <ng-template #text>\n <span\n *ngFor=\"let item of value\"\n class=\"text\"\n [class.text_disabled]=\"disabledItemHandler(item)\"\n [class.text_error]=\"!tagValidator(item)\"\n [innerText]=\"item\"\n ></span>\n </ng-template>\n <div\n class=\"input-wrapper\"\n [class.input-wrapper_collapsed]=\"computedDisabled || readOnly || inputHidden\"\n >\n <div class=\"ghost\">{{ search }}</div>\n <input\n #focusableElement\n type=\"text\"\n automation-id=\"tui-input-tag__native\"\n class=\"native\"\n [placeholder]=\"controller.exampleText\"\n [class.native_hidden]=\"inputHidden\"\n [attr.maxLength]=\"controller.maxLength\"\n [id]=\"id\"\n [disabled]=\"computedDisabled\"\n [readOnly]=\"readOnly || inputHidden\"\n [tuiFocusable]=\"computedFocusable\"\n [ngModel]=\"search\"\n (ngModelChange)=\"onInput($event)\"\n (keydown.arrowLeft)=\"onFieldKeyDownArrowLeft($event)\"\n (keydown.backspace)=\"onFieldKeyDownBackspace($event)\"\n (keydown.enter.prevent)=\"onFieldKeyDownEnter()\"\n />\n </div>\n </div>\n </ng-template>\n </div>\n <div *ngIf=\"hasRightIcons\" class=\"icons icons_right\">\n <tui-svg\n *ngIf=\"hasCleaner\"\n #cleaner\n automation-id=\"tui-input-tag__cleaner\"\n src=\"tuiIconCloseLarge\"\n class=\"cleaner\"\n (click.stop)=\"onCleanerClick()\"\n ></tui-svg>\n <tui-tooltip\n *ngIf=\"hasTooltip\"\n automation-id=\"tui-input-tag__tooltip\"\n describeId=\"placeholer_until_accesibility_is_added\"\n class=\"tooltip\"\n [direction]=\"hintController.direction\"\n [mode]=\"hintController.mode\"\n [content]=\"hintController.content\"\n [showDelay]=\"hintController.showDelay\"\n [hideDelay]=\"hintController.hideDelay\"\n ></tui-tooltip>\n <tui-svg\n *ngIf=\"iconAlignRight\"\n class=\"icon\"\n [src]=\"icon\"\n ></tui-svg>\n </div>\n </div>\n <ng-template #errorIcon>\n <tui-svg src=\"tuiIconAttention\" class=\"error-icon\"></tui-svg>\n </ng-template>\n </tui-wrapper>\n</tui-hosted-dropdown>\n",
453
472
  providers: [
454
473
  {
455
474
  provide: TUI_FOCUSABLE_ITEM_ACCESSOR,
@@ -463,7 +482,7 @@ var TuiInputTagComponent = /** @class */ (function (_super) {
463
482
  TEXTFIELD_CONTROLLER_PROVIDER,
464
483
  HINT_CONTROLLER_PROVIDER,
465
484
  ],
466
- styles: [":host{font:var(--tui-font-text-s);color:var(--tui-text-01);position:relative;display:block;border-radius:var(--tui-radius-m);text-align:left}:host[data-size='s']{height:var(--tui-height-s);min-height:var(--tui-height-s);max-height:var(--tui-height-s)}:host[data-size='m']{height:var(--tui-height-m);min-height:var(--tui-height-m);max-height:var(--tui-height-m)}:host[data-size='l']{height:var(--tui-height-l);min-height:var(--tui-height-l);max-height:var(--tui-height-l);font-size:.9375rem}.input{font:var(--tui-font-text-s);color:var(--tui-text-01);padding:0;border:0 solid transparent;border-radius:inherit;background:0 0;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;width:100%;height:100%;padding:0 var(--tui-padding-m);border-width:0 var(--border-end) 0 var(--border-start);border-inline-start-width:var(--border-start);border-inline-end-width:var(--border-end);text-indent:var(--text-indent);text-align:inherit;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-transform:inherit}.input:-webkit-autofill,.input:-webkit-autofill:focus,.input:-webkit-autofill:hover{border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01)!important;border-color:var(--tui-autofill);-webkit-box-shadow:0 0 0 1000px var(--tui-autofill) inset!important}.input :host-context(tui-primitive-textfield[data-mode=onDark]):-webkit-autofill,.input :host-context(tui-primitive-textfield[data-mode=onDark]):-webkit-autofill:focus,.input :host-context(tui-primitive-textfield[data-mode=onDark]):-webkit-autofill:hover,:host[data-mode=onDark] .input:-webkit-autofill,:host[data-mode=onDark] .input:-webkit-autofill:focus,:host[data-mode=onDark] .input:-webkit-autofill:hover{border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01-night)!important;border-color:var(--tui-autofill-night);-webkit-box-shadow:0 0 0 1000px var(--tui-autofill-night) inset!important}.input :host-context(tui-primitive-textfield[data-size='s']):not(tui-primitive-textfield),:host[data-size='s'] .input{padding:0 var(--tui-padding-s)}.input :host-context(tui-primitive-textfield[data-size='l']):not(tui-primitive-textfield),:host[data-size='l'] .input{padding:0 var(--tui-padding-l)}.input :host-context(tui-primitive-textfield._disabled),:host._disabled .input{pointer-events:none}.input :host-context(tui-primitive-textfield[data-size='l']:not(._label-outside)):not(tui-primitive-textfield),:host[data-size='l']:not(._label-outside) .input{padding-top:1.25rem}.input :host-context(tui-primitive-textfield[data-size='l']:not(._label-outside)):not(tui-primitive-textfield):-webkit-autofill+.content .placeholder,:host[data-size='l']:not(._label-outside) .input:-webkit-autofill+.content .placeholder{font-size:.8156rem;transform:translateY(-.625rem)}.input :host-context(tui-primitive-textfield[data-size='m']:not(._label-outside)):not(tui-primitive-textfield),:host[data-size='m']:not(._label-outside) .input{padding-top:1.125rem}.input :host-context(tui-primitive-textfield[data-size='m']:not(._label-outside)):not(tui-primitive-textfield):-webkit-autofill+.content .placeholder,:host[data-size='m']:not(._label-outside) .input:-webkit-autofill+.content .placeholder{font-size:.69rem;transform:translateY(-.5rem)}.input :host-context(tui-primitive-textfield._hidden),:host._hidden input.input{opacity:0;text-indent:-10em;-webkit-user-select:none}.filler{vertical-align:middle}.content{display:flex;height:100%;width:100%;padding:0 var(--tui-padding-m);box-sizing:border-box;align-items:center;overflow:hidden}:host[data-size='s'] .content{padding:0 var(--tui-padding-s)}:host[data-size='l'] .content{padding:0 var(--tui-padding-l)}.content:after{content:'';margin-right:-.25rem}:host[data-size='m'] .content:after{display:none}.wrapper{flex:1;min-width:0;-webkit-padding-end:.25rem;padding-inline-end:.25rem;-webkit-padding-start:0;padding-inline-start:0}.placeholder{transition-property:transform,font-size,color,letter-spacing;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;font:var(--tui-font-text-s);color:var(--tui-text-01);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;width:100%;font-size:.8125rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:var(--tui-text-02);pointer-events:none}.placeholder_raised{transform:translateY(-.625rem)}:host[data-size='m'] .placeholder_raised{font-size:.69rem;transform:translateY(-.5rem);letter-spacing:.025rem}:host._invalid:not(._focused) .placeholder_raised,:host._invalid:not(._focused)._hovered .placeholder_raised{color:var(--tui-error-fill)}:host[data-mode=onDark]._invalid:not(._focused) .placeholder_raised,:host[data-mode=onDark]._invalid:not(._focused)._hovered .placeholder_raised{color:var(--tui-error-fill-night)}:host._focused .placeholder,:host[data-size='l']._focused._label-outside .placeholder,:host[data-size='m']._focused._label-outside .placeholder{color:var(--tui-text-03)}:host[data-size='l'] .placeholder{font-size:.9375rem}:host[data-size='l'] .placeholder_raised{font-size:.8156rem}:host[data-size='l']._focused:not(._label-outside) .placeholder,:host[data-size='m']._focused:not(._label-outside) .placeholder{color:var(--tui-text-01)}:host[data-mode=onDark] .placeholder{color:var(--tui-text-02-night)}:host[data-size='l'][data-mode=onDark]._focused:not(._label-outside) .placeholder,:host[data-size='m'][data-mode=onDark]._focused:not(._label-outside) .placeholder{color:var(--tui-text-01-night)}:host[data-mode=onDark]._focused .placeholder,:host[data-size='l'][data-mode=onDark]._focused._label-outside .placeholder,:host[data-size='m'][data-mode=onDark]._focused._label-outside .placeholder{color:var(--tui-text-02-night)}@supports (-webkit-hyphens:none){.placeholder{transition-property:transform,color,letter-spacing}}.cleaner{transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;display:flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center;color:var(--tui-text-03);position:relative;box-sizing:border-box;cursor:pointer;transition-property:color,transform}.cleaner:hover{color:var(--tui-text-02)}:host._disabled .cleaner,:host._readonly .cleaner{pointer-events:none}:host[data-mode=onDark] .cleaner{color:var(--tui-text-03-night)}:host[data-mode=onDark] .cleaner:hover{color:var(--tui-text-01-night)}.icon{display:flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center;color:var(--tui-text-03)}:host[data-mode=onDark] .icon{color:var(--tui-text-03-night)}.icon_left{margin:0 .5rem 0 -.25rem;-webkit-margin-start:-.25rem;margin-inline-start:-.25rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}:host[data-size='s'] .icon_left{margin-right:.25rem;-webkit-margin-end:.25rem;margin-inline-end:.25rem}:host{cursor:text}:host._expandable{height:auto;max-height:none}:host._disabled{pointer-events:none}:host._readonly{cursor:default}.hosted{display:block;border-radius:inherit}.scrollbar{margin:0 -.25rem;padding:0 .25rem}.tags{display:flex;align-items:center;box-sizing:border-box}:host._expandable .tags{flex-wrap:wrap;white-space:normal}:host._readonly .tags{pointer-events:none}:host[data-tui-host-size='s'] .tags{min-height:var(--tui-height-s);padding:.25rem .25rem .25rem 0}:host[data-tui-host-size='m'] .tags{min-height:var(--tui-height-m);padding:.5rem .25rem .5rem 0}:host[data-tui-host-size='l'] .tags{min-height:var(--tui-height-l);padding:.625rem .25rem .625rem 0}:host[data-tui-host-size='m']:not(._label-outside) .tags{padding:1.1875rem 1rem 0 0}:host[data-tui-host-size='l']:not(._label-outside) .tags{padding:1.6875rem 1rem .5625rem 0}.tags :host[data-tui-host-size]{-webkit-padding-start:0;padding-inline-start:0;-webkit-padding-end:.25rem;padding-inline-end:.25rem}:host[data-tui-host-size]:not(._label-outside) .tags{-webkit-padding-end:1rem;padding-inline-end:1rem}.content{align-items:flex-start}.icons{display:flex;align-items:center;padding:0 0 0 .75rem;-webkit-padding-start:.75rem;padding-inline-start:.75rem;-webkit-padding-end:0;padding-inline-end:0}.icons_left{padding:0;margin:0 .5rem 0 -.25rem;-webkit-margin-start:-.25rem;margin-inline-start:-.25rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}:host._expandable .icons_right{margin:0 0 0 -.625rem;-webkit-margin-start:-.625rem;margin-inline-start:-.625rem;-webkit-margin-end:0;margin-inline-end:0}:host[data-tui-host-size='s'] .icons{height:var(--tui-height-s)}:host[data-tui-host-size='m'] .icons{height:var(--tui-height-m)}:host[data-tui-host-size='l'] .icons{height:var(--tui-height-l)}.absolute-wrapper{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center}:host[data-tui-host-size='m'] .absolute-wrapper{height:var(--tui-height-m)}:host[data-tui-host-size='l'] .absolute-wrapper{height:var(--tui-height-l)}.wrapper{position:relative;padding:0}.tag{margin:.125rem .5rem .125rem -.25rem;-webkit-margin-start:-.25rem;margin-inline-start:-.25rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem;max-width:100%;flex-shrink:0}.text:after{content:',\\00a0'}.text_disabled{color:var(--tui-text-03)}.text_error{color:var(--tui-negative)}:host:not(._expandable) .text{white-space:nowrap}:host:not(:focus-within) .text:last-of-type:after{content:''}.input-wrapper{position:relative;flex:1;max-width:100%}.input-wrapper_collapsed{flex:0;margin:0 0 0 -.5rem;-webkit-margin-start:-.5rem;margin-inline-start:-.5rem;-webkit-margin-end:0;margin-inline-end:0}:host[data-tui-host-size='s'] .input-wrapper{min-height:1.5rem}:host[data-tui-host-size='m'] .input-wrapper{min-height:calc(var(--tui-height-xs) + 2 * .125rem)}:host[data-tui-host-size='l'] .input-wrapper{min-height:calc(var(--tui-height-s) + 2 * .125rem)}:host:not(._label-outside) .input-wrapper{min-height:1.25rem}.ghost{visibility:hidden;white-space:pre;text-overflow:clip;min-width:.125rem}:host:not(._expandable) .ghost{min-width:2rem}.native{border:0;border-radius:inherit;background:0 0;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;width:100%;height:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box;padding:0;cursor:inherit}.native:-webkit-autofill,.native:-webkit-autofill:focus,.native:-webkit-autofill:hover{border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01)!important;border-color:var(--tui-autofill);-webkit-box-shadow:0 0 0 1000px var(--tui-autofill) inset!important}.native_hidden{opacity:0;text-indent:-10em}.native::-ms-input-placeholder{color:var(--tui-text-03);opacity:0}.native::placeholder{color:var(--tui-text-03);opacity:0}:host[data-mode=onDark] .native::-ms-input-placeholder{color:var(--tui-text-03-night)}:host[data-mode=onDark] .native::placeholder{color:var(--tui-text-03-night)}:host._focused .native:not(:read-only)::-ms-input-placeholder{opacity:1}:host._focused .native:not(:-moz-read-only)::placeholder{opacity:1}:host._focused .native:not(:read-only)::placeholder{opacity:1}.error-icon{display:block;color:var(--tui-error-fill);width:1rem;height:1rem}"]
485
+ styles: [":host{font:var(--tui-font-text-s);color:var(--tui-text-01);position:relative;display:block;border-radius:var(--tui-radius-m);text-align:left}:host[data-size='s']{height:var(--tui-height-s);min-height:var(--tui-height-s);max-height:var(--tui-height-s)}:host[data-size='m']{height:var(--tui-height-m);min-height:var(--tui-height-m);max-height:var(--tui-height-m)}:host[data-size='l']{height:var(--tui-height-l);min-height:var(--tui-height-l);max-height:var(--tui-height-l);font-size:.9375rem}.input{font:var(--tui-font-text-s);color:var(--tui-text-01);padding:0;border:0 solid transparent;border-radius:inherit;background:0 0;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;width:100%;height:100%;padding:0 var(--tui-padding-m);border-width:0 var(--border-end) 0 var(--border-start);border-inline-start-width:var(--border-start);border-inline-end-width:var(--border-end);text-indent:var(--text-indent);text-align:inherit;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-transform:inherit}.input:-webkit-autofill,.input:-webkit-autofill:focus,.input:-webkit-autofill:hover{border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01)!important;border-color:var(--tui-autofill);-webkit-box-shadow:0 0 0 1000px var(--tui-autofill) inset!important}.input :host-context(tui-primitive-textfield[data-mode=onDark]):-webkit-autofill,.input :host-context(tui-primitive-textfield[data-mode=onDark]):-webkit-autofill:focus,.input :host-context(tui-primitive-textfield[data-mode=onDark]):-webkit-autofill:hover,:host[data-mode=onDark] .input:-webkit-autofill,:host[data-mode=onDark] .input:-webkit-autofill:focus,:host[data-mode=onDark] .input:-webkit-autofill:hover{border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01-night)!important;border-color:var(--tui-autofill-night);-webkit-box-shadow:0 0 0 1000px var(--tui-autofill-night) inset!important}.input :host-context(tui-primitive-textfield[data-size='s']):not(tui-primitive-textfield),:host[data-size='s'] .input{padding:0 var(--tui-padding-s)}.input :host-context(tui-primitive-textfield[data-size='l']):not(tui-primitive-textfield),:host[data-size='l'] .input{padding:0 var(--tui-padding-l)}.input :host-context(tui-primitive-textfield._disabled),:host._disabled .input{pointer-events:none}.input :host-context(tui-primitive-textfield[data-size='l']:not(._label-outside)):not(tui-primitive-textfield),:host[data-size='l']:not(._label-outside) .input{padding-top:1.25rem}.input :host-context(tui-primitive-textfield[data-size='l']:not(._label-outside)):not(tui-primitive-textfield):-webkit-autofill+.content .placeholder,:host[data-size='l']:not(._label-outside) .input:-webkit-autofill+.content .placeholder{font-size:.8156rem;transform:translateY(-.625rem)}.input :host-context(tui-primitive-textfield[data-size='m']:not(._label-outside)):not(tui-primitive-textfield),:host[data-size='m']:not(._label-outside) .input{padding-top:1.125rem}.input :host-context(tui-primitive-textfield[data-size='m']:not(._label-outside)):not(tui-primitive-textfield):-webkit-autofill+.content .placeholder,:host[data-size='m']:not(._label-outside) .input:-webkit-autofill+.content .placeholder{font-size:.69rem;transform:translateY(-.5rem)}.input :host-context(tui-primitive-textfield._hidden),:host._hidden input.input{opacity:0;text-indent:-10em;-webkit-user-select:none}.filler{vertical-align:middle}.content{display:flex;height:100%;width:100%;padding:0 var(--tui-padding-m);box-sizing:border-box;align-items:center;overflow:hidden}:host[data-size='s'] .content{padding:0 var(--tui-padding-s)}:host[data-size='l'] .content{padding:0 var(--tui-padding-l)}.content:after{content:'';margin-right:-.25rem}:host[data-size='m'] .content:after{display:none}.wrapper{flex:1;min-width:0;-webkit-padding-end:.25rem;padding-inline-end:.25rem;-webkit-padding-start:0;padding-inline-start:0}.placeholder{transition-property:transform,font-size,color,letter-spacing;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;font:var(--tui-font-text-s);color:var(--tui-text-01);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;width:100%;font-size:.8125rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:var(--tui-text-02);pointer-events:none}.placeholder_raised{transform:translateY(-.625rem)}:host[data-size='m'] .placeholder_raised{font-size:.69rem;transform:translateY(-.5rem);letter-spacing:.025rem}:host._invalid:not(._focused) .placeholder_raised,:host._invalid:not(._focused)._hovered .placeholder_raised{color:var(--tui-error-fill)}:host[data-mode=onDark]._invalid:not(._focused) .placeholder_raised,:host[data-mode=onDark]._invalid:not(._focused)._hovered .placeholder_raised{color:var(--tui-error-fill-night)}:host._focused .placeholder,:host[data-size='l']._focused._label-outside .placeholder,:host[data-size='m']._focused._label-outside .placeholder{color:var(--tui-text-03)}:host[data-size='l'] .placeholder{font-size:.9375rem}:host[data-size='l'] .placeholder_raised{font-size:.8156rem}:host[data-size='l']._focused:not(._label-outside) .placeholder,:host[data-size='m']._focused:not(._label-outside) .placeholder{color:var(--tui-text-01)}:host[data-mode=onDark] .placeholder{color:var(--tui-text-02-night)}:host[data-size='l'][data-mode=onDark]._focused:not(._label-outside) .placeholder,:host[data-size='m'][data-mode=onDark]._focused:not(._label-outside) .placeholder{color:var(--tui-text-01-night)}:host[data-mode=onDark]._focused .placeholder,:host[data-size='l'][data-mode=onDark]._focused._label-outside .placeholder,:host[data-size='m'][data-mode=onDark]._focused._label-outside .placeholder{color:var(--tui-text-02-night)}@supports (-webkit-hyphens:none){.placeholder{transition-property:transform,color,letter-spacing}}.cleaner{transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;display:flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center;color:var(--tui-text-03);position:relative;box-sizing:border-box;cursor:pointer;transition-property:color,transform}.cleaner:hover{color:var(--tui-text-02)}:host._disabled .cleaner,:host._readonly .cleaner{pointer-events:none}:host[data-mode=onDark] .cleaner{color:var(--tui-text-03-night)}:host[data-mode=onDark] .cleaner:hover{color:var(--tui-text-01-night)}.icon{display:flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center;color:var(--tui-text-03)}:host[data-mode=onDark] .icon{color:var(--tui-text-03-night)}.icon_left{margin:0 .5rem 0 -.25rem;-webkit-margin-start:-.25rem;margin-inline-start:-.25rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}:host[data-size='s'] .icon_left{margin-right:.25rem;-webkit-margin-end:.25rem;margin-inline-end:.25rem}:host{cursor:text}:host._expandable{height:auto;max-height:none}:host._disabled{pointer-events:none}:host._readonly{cursor:default}.hosted{display:block;border-radius:inherit}.scrollbar{margin:0 -.25rem;padding:0 .25rem}.tags{display:flex;align-items:center;box-sizing:border-box}:host._expandable .tags{flex-wrap:wrap;white-space:normal}:host._readonly .tags{pointer-events:none}:host[data-size='s'] .tags{min-height:var(--tui-height-s);padding:.25rem .25rem .25rem 0}:host[data-size='m'] .tags{min-height:var(--tui-height-m);padding:.5rem .25rem .5rem 0}:host[data-size='l'] .tags{min-height:var(--tui-height-l);padding:.625rem .25rem .625rem 0}:host[data-size='m']:not(._label-outside) .tags{padding:1.1875rem 1rem 0 0}:host[data-size='l']:not(._label-outside) .tags{padding:1.6875rem 1rem .5625rem 0}.tags :host[data-size]{-webkit-padding-start:0;padding-inline-start:0;-webkit-padding-end:.25rem;padding-inline-end:.25rem}:host[data-size]:not(._label-outside) .tags{-webkit-padding-end:1rem;padding-inline-end:1rem}.content{align-items:flex-start}.icons{display:flex;align-items:center;padding:0 0 0 .75rem;-webkit-padding-start:.75rem;padding-inline-start:.75rem;-webkit-padding-end:0;padding-inline-end:0}.icons_left{padding:0;margin:0 .5rem 0 -.25rem;-webkit-margin-start:-.25rem;margin-inline-start:-.25rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}:host._expandable .icons_right{margin:0 0 0 -.625rem;-webkit-margin-start:-.625rem;margin-inline-start:-.625rem;-webkit-margin-end:0;margin-inline-end:0}:host[data-size='s'] .icons{height:var(--tui-height-s)}:host[data-size='m'] .icons{height:var(--tui-height-m)}:host[data-size='l'] .icons{height:var(--tui-height-l)}.absolute-wrapper{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center}:host[data-size='m'] .absolute-wrapper{height:var(--tui-height-m)}:host[data-size='l'] .absolute-wrapper{height:var(--tui-height-l)}.wrapper{position:relative;padding:0}.tag{margin:.125rem .5rem .125rem -.25rem;-webkit-margin-start:-.25rem;margin-inline-start:-.25rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem;max-width:100%;flex-shrink:0}.text:after{content:',\\00a0'}.text_disabled{color:var(--tui-text-03)}.text_error{color:var(--tui-negative)}:host:not(._expandable) .text{white-space:nowrap}:host:not(:focus-within) .text:last-of-type:after{content:''}.input-wrapper{position:relative;flex:1;max-width:100%}.input-wrapper_collapsed{flex:0;margin:0 0 0 -.5rem;-webkit-margin-start:-.5rem;margin-inline-start:-.5rem;-webkit-margin-end:0;margin-inline-end:0}:host[data-size='s'] .input-wrapper{min-height:1.5rem}:host[data-size='m'] .input-wrapper{min-height:calc(var(--tui-height-xs) + 2 * .125rem)}:host[data-size='l'] .input-wrapper{min-height:calc(var(--tui-height-s) + 2 * .125rem)}:host:not(._label-outside) .input-wrapper{min-height:1.25rem}.ghost{visibility:hidden;white-space:pre;text-overflow:clip;min-width:.125rem}:host:not(._expandable) .ghost{min-width:2rem}.native{border:0;border-radius:inherit;background:0 0;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;width:100%;height:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box;padding:0;cursor:inherit}.native:-webkit-autofill,.native:-webkit-autofill:focus,.native:-webkit-autofill:hover{border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01)!important;border-color:var(--tui-autofill);-webkit-box-shadow:0 0 0 1000px var(--tui-autofill) inset!important}.native_hidden{opacity:0;text-indent:-10em}.native::-ms-input-placeholder{color:var(--tui-text-03);opacity:0}.native::placeholder{color:var(--tui-text-03);opacity:0}:host[data-mode=onDark] .native::-ms-input-placeholder{color:var(--tui-text-03-night)}:host[data-mode=onDark] .native::placeholder{color:var(--tui-text-03-night)}:host._focused .native:not(:read-only)::-ms-input-placeholder{opacity:1}:host._focused .native:not(:-moz-read-only)::placeholder{opacity:1}:host._focused .native:not(:read-only)::placeholder{opacity:1}.error-icon{display:block;color:var(--tui-error-fill);width:1rem;height:1rem}"]
467
486
  }),
468
487
  __param(0, Optional()),
469
488
  __param(0, Self()),
@@ -476,9 +495,10 @@ var TuiInputTagComponent = /** @class */ (function (_super) {
476
495
  __param(5, Inject(TuiModeDirective)),
477
496
  __param(6, Inject(TUI_TAG_STATUS)),
478
497
  __param(7, Inject(TUI_HINT_WATCHED_CONTROLLER)),
479
- __param(8, Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER))
498
+ __param(8, Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER)),
499
+ __param(9, Inject(TUI_INPUT_TAG_OPTIONS))
480
500
  ], TuiInputTagComponent);
481
501
  return TuiInputTagComponent;
482
502
  }(AbstractTuiMultipleControl));
483
503
  export { TuiInputTagComponent };
484
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC10YWcvIiwic291cmNlcyI6WyJpbnB1dC10YWcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxFQUNULElBQUksRUFDSixXQUFXLEVBQ1gsU0FBUyxFQUNULFlBQVksR0FDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUNILDBCQUEwQixFQUMxQixvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLFdBQVcsRUFDWCxlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsMkJBQTJCLEVBQzNCLHNCQUFzQixFQUN0QixpQkFBaUIsRUFDakIsc0JBQXNCLEVBQ3RCLGNBQWMsRUFDZCwyQkFBMkIsRUFDM0IsZ0JBQWdCLEVBQ2hCLGNBQWMsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILHdCQUF3QixFQUN4Qiw2QkFBNkIsRUFDN0Isa0JBQWtCLEVBQ2xCLDJCQUEyQixFQUMzQix3QkFBd0IsRUFDeEIsZ0NBQWdDLEVBQ2hDLG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsMEJBQTBCLEVBQzFCLHNCQUFzQixFQUN0QiwwQkFBMEIsRUFDMUIsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQixRQUFRLEVBQ1IsUUFBUSxFQUNSLHNCQUFzQixHQUN6QixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFN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Z0JBQzdCLHdCQUF3QjthQUMzQjs7U0FDSixDQUFDO1FBeUZPLFdBQUEsUUFBUSxFQUFFLENBQUE7UUFDVixXQUFBLElBQUksRUFBRSxDQUFBO1FBQ04sV0FBQSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7UUFFakIsV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUN6QixXQUFBLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO1FBQ3hCLFdBQUEsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ2xCLFdBQUEsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUE7UUFDaEMsV0FBQSxRQUFRLEVBQUUsQ0FBQTtRQUNWLFdBQUEsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUE7UUFFeEIsV0FBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7UUFDdEIsV0FBQSxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtRQUVuQyxXQUFBLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFBO09BdEdwQyxvQkFBb0IsQ0FvYWhDO0lBQUQsMkJBQUM7Q0FBQSxBQXBhRCxDQUNZLDBCQUEwQixHQW1hckM7U0FwYVksb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2VsZixcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpTXVsdGlwbGVDb250cm9sLFxuICAgIEFMV0FZU19GQUxTRV9IQU5ETEVSLFxuICAgIEFMV0FZU19UUlVFX0hBTkRMRVIsXG4gICAgRU1QVFlfUVVFUlksXG4gICAgZ2V0QWN0dWFsVGFyZ2V0LFxuICAgIGlzTmF0aXZlRm9jdXNlZEluLFxuICAgIHByZXZlbnREZWZhdWx0LFxuICAgIHNldE5hdGl2ZUZvY3VzZWQsXG4gICAgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgIFR1aUFjdGl2ZVpvbmVEaXJlY3RpdmUsXG4gICAgVHVpQm9vbGVhbkhhbmRsZXIsXG4gICAgVHVpQ29udGV4dFdpdGhJbXBsaWNpdCxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgVHVpU2Nyb2xsU2VydmljZSxcbiAgICB0eXBlZEZyb21FdmVudCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIEhJTlRfQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICBURVhURklFTERfQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICBUVUlfREFUQV9MSVNUX0hPU1QsXG4gICAgVFVJX0hJTlRfV0FUQ0hFRF9DT05UUk9MTEVSLFxuICAgIFRVSV9URVhURklFTERfQVBQRUFSQU5DRSxcbiAgICBUVUlfVEVYVEZJRUxEX1dBVENIRURfQ09OVFJPTExFUixcbiAgICBUdWlEYXRhTGlzdERpcmVjdGl2ZSxcbiAgICBUdWlEYXRhTGlzdEhvc3QsXG4gICAgVHVpSGludENvbnRyb2xsZXJEaXJlY3RpdmUsXG4gICAgVHVpSG9yaXpvbnRhbERpcmVjdGlvbixcbiAgICBUdWlIb3N0ZWREcm9wZG93bkNvbXBvbmVudCxcbiAgICBUdWlNb2RlRGlyZWN0aXZlLFxuICAgIFR1aVNjcm9sbGJhckNvbXBvbmVudCxcbiAgICBUdWlTaXplTCxcbiAgICBUdWlTaXplUyxcbiAgICBUdWlUZXh0ZmllbGRDb250cm9sbGVyLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge0FMTE9XRURfU1BBQ0VfUkVHRVhQfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvdGFnJztcbmltcG9ydCB7RklYRURfRFJPUERPV05fQ09OVFJPTExFUl9QUk9WSURFUn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9wcm92aWRlcnMnO1xuaW1wb3J0IHtUVUlfVEFHX1NUQVRVU30gZnJvbSAnQHRhaWdhLXVpL2tpdC90b2tlbnMnO1xuaW1wb3J0IHtUdWlTdGF0dXNUfSBmcm9tICdAdGFpZ2EtdWkva2l0L3R5cGVzJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7bWVyZ2UsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcCwgbWFwVG8sIHN3aXRjaE1hcCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmNvbnN0IEVWRU5UX1lfVE9fWF9DT0VGRklDRU5UID0gMztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtdGFnJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtdGFnLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2lucHV0LXRhZy5zdHlsZS5sZXNzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR1aUlucHV0VGFnQ29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0RBVEFfTElTVF9IT1NULFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpSW5wdXRUYWdDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgICAgICBGSVhFRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgICAgICBURVhURklFTERfQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICAgICAgSElOVF9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0VGFnQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aU11bHRpcGxlQ29udHJvbDxzdHJpbmc+XG4gICAgaW1wbGVtZW50cyBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsIFR1aURhdGFMaXN0SG9zdDxzdHJpbmc+XG57XG4gICAgQFZpZXdDaGlsZChUdWlIb3N0ZWREcm9wZG93bkNvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRyb3Bkb3duPzogVHVpSG9zdGVkRHJvcGRvd25Db21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkKCdmb2N1c2FibGVFbGVtZW50JylcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvY3VzYWJsZUVsZW1lbnQ/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZCgndGFnc0NvbnRhaW5lcicpXG4gICAgcHJpdmF0ZSByZWFkb25seSB0YWdzQ29udGFpbmVyPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkcmVuKCd0YWcnLCB7cmVhZDogRWxlbWVudFJlZn0pXG4gICAgcHJpdmF0ZSByZWFkb25seSB0YWdzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+ID0gRU1QVFlfUVVFUlk7XG5cbiAgICBAVmlld0NoaWxkKCdjbGVhbmVyJywge3JlYWQ6IEVsZW1lbnRSZWZ9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2xlYW5lclN2Zz86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZChUdWlTY3JvbGxiYXJDb21wb25lbnQsIHtyZWFkOiBFbGVtZW50UmVmfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNjcm9sbEJhcj86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBzY3JvbGxUb1N0YXJ0JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzY3JvbGxUb0VuZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGFsbG93U3BhY2VzID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBpY29uID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaWNvbkFsaWduOiBUdWlIb3Jpem9udGFsRGlyZWN0aW9uID0gJ3JpZ2h0JztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzZWFyY2ggPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBlZGl0YWJsZSA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgdGFnVmFsaWRhdG9yOiBUdWlCb29sZWFuSGFuZGxlcjxzdHJpbmc+ID0gQUxXQVlTX1RSVUVfSEFORExFUjtcblxuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fZXhwYW5kYWJsZScpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBleHBhbmRhYmxlID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBpbnB1dEhpZGRlbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGRpc2FibGVkSXRlbUhhbmRsZXI6IFR1aUJvb2xlYW5IYW5kbGVyPHN0cmluZz4gPSBBTFdBWVNfRkFMU0VfSEFORExFUjtcblxuICAgIEBJbnB1dCgncHNldWRvRm9jdXNlZCcpXG4gICAgc2V0IHBzZXVkb0ZvY3VzZWRTZXR0ZXIodmFsdWU6IGJvb2xlYW4gfCBudWxsKSB7XG4gICAgICAgIGlmICghdmFsdWUgJiYgIXRoaXMuZm9jdXNlZCkge1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxUb1N0YXJ0JC5uZXh0KCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnBzZXVkb0ZvY3VzZWQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBzZWFyY2hDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIEBDb250ZW50Q2hpbGQoVHVpRGF0YUxpc3REaXJlY3RpdmUsIHtyZWFkOiBUZW1wbGF0ZVJlZn0pXG4gICAgcmVhZG9ubHkgZGF0YWxpc3Q/OiBUZW1wbGF0ZVJlZjxUdWlDb250ZXh0V2l0aEltcGxpY2l0PFR1aUFjdGl2ZVpvbmVEaXJlY3RpdmU+PjtcblxuICAgIEBWaWV3Q2hpbGQoJ2Vycm9ySWNvbicpXG4gICAgcmVhZG9ubHkgZXJyb3JJY29uVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjx7fT47XG5cbiAgICBAVmlld0NoaWxkKFR1aVNjcm9sbGJhckNvbXBvbmVudClcbiAgICBzZXQgc2Nyb2xsZXJTZXR0ZXIoc2Nyb2xsZXI6IFR1aVNjcm9sbGJhckNvbXBvbmVudCB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5pbml0U2Nyb2xsZXJTdWJzY3JpdGlvbihzY3JvbGxlcik7XG4gICAgfVxuXG4gICAgb3BlbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChUdWlTY3JvbGxTZXJ2aWNlKSBwcml2YXRlIHJlYWRvbmx5IHR1aVNjcm9sbFNlcnZpY2U6IFR1aVNjcm9sbFNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX0FQUEVBUkFOQ0UpIHJlYWRvbmx5IGFwcGVhcmFuY2U6IHN0cmluZyxcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChUdWlNb2RlRGlyZWN0aXZlKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1vZGVEaXJlY3RpdmU6IFR1aU1vZGVEaXJlY3RpdmUgfCBudWxsLFxuICAgICAgICBASW5qZWN0KFRVSV9UQUdfU1RBVFVTKSBwcml2YXRlIHJlYWRvbmx5IHRhZ1N0YXR1czogVHVpU3RhdHVzVCxcbiAgICAgICAgQEluamVjdChUVUlfSElOVF9XQVRDSEVEX0NPTlRST0xMRVIpXG4gICAgICAgIHJlYWRvbmx5IGhpbnRDb250cm9sbGVyOiBUdWlIaW50Q29udHJvbGxlckRpcmVjdGl2ZSxcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX1dBVENIRURfQ09OVFJPTExFUilcbiAgICAgICAgcmVhZG9ubHkgY29udHJvbGxlcjogVHVpVGV4dGZpZWxkQ29udHJvbGxlcixcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmZvY3VzYWJsZUVsZW1lbnQgfHwgdGhpcy5jb21wdXRlZERpc2FibGVkXG4gICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgIDogdGhpcy5mb2N1c2FibGVFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBpc05hdGl2ZUZvY3VzZWRJbih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkgfHxcbiAgICAgICAgICAgICghIXRoaXMuZHJvcGRvd24gJiYgdGhpcy5kcm9wZG93bi5mb2N1c2VkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXR1aS1ob3N0LXNpemUnKVxuICAgIGdldCBzaXplKCk6IFR1aVNpemVMIHwgVHVpU2l6ZVMge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyLnNpemU7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fbGFiZWwtb3V0c2lkZScpXG4gICAgZ2V0IGxhYmVsT3V0c2lkZSgpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3Qge3NpemUsIGxhYmVsT3V0c2lkZX0gPSB0aGlzLmNvbnRyb2xsZXI7XG5cbiAgICAgICAgcmV0dXJuIHNpemUgPT09ICdzJyB8fCBsYWJlbE91dHNpZGU7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0NsZWFuZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2xsZXIuY2xlYW5lciAmJiB0aGlzLmhhc1ZhbHVlICYmIHRoaXMuaW50ZXJhY3RpdmU7XG4gICAgfVxuXG4gICAgZ2V0IGhhc05hdGl2ZVZhbHVlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnNlYXJjaDtcbiAgICB9XG5cbiAgICBnZXQgaGFzVmFsdWUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMudmFsdWUubGVuZ3RoIHx8IHRoaXMuaGFzTmF0aXZlVmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGhhc1BsYWNlaG9sZGVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMubGFiZWxPdXRzaWRlIHx8ICghdGhpcy5oYXNWYWx1ZSAmJiAhdGhpcy5oYXNFeGFtcGxlVGV4dCk7XG4gICAgfVxuXG4gICAgZ2V0IHBsYWNlaG9sZGVyUmFpc2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgIXRoaXMubGFiZWxPdXRzaWRlICYmXG4gICAgICAgICAgICAoKHRoaXMuY29tcHV0ZWRGb2N1c2VkICYmICF0aGlzLnJlYWRPbmx5KSB8fCB0aGlzLmhhc1ZhbHVlKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBoYXNFeGFtcGxlVGV4dCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICEhdGhpcy5jb250cm9sbGVyLmV4YW1wbGVUZXh0ICYmXG4gICAgICAgICAgICB0aGlzLmNvbXB1dGVkRm9jdXNlZCAmJlxuICAgICAgICAgICAgIXRoaXMuaGFzVmFsdWUgJiZcbiAgICAgICAgICAgICF0aGlzLnJlYWRPbmx5XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGhhc1Rvb2x0aXAoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuaGludENvbnRyb2xsZXIuY29udGVudCAmJiAhdGhpcy5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBnZXQgaWNvbkFsaWduTGVmdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5pY29uICYmIHRoaXMuaWNvbkFsaWduID09PSAnbGVmdCc7XG4gICAgfVxuXG4gICAgZ2V0IGljb25BbGlnblJpZ2h0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmljb24gJiYgdGhpcy5pY29uQWxpZ24gPT09ICdyaWdodCc7XG4gICAgfVxuXG4gICAgZ2V0IGhhc1JpZ2h0SWNvbnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc0NsZWFuZXIgfHwgdGhpcy5oYXNUb29sdGlwIHx8IHRoaXMuaWNvbkFsaWduUmlnaHQ7XG4gICAgfVxuXG4gICAgZ2V0IHN0YXR1cygpOiBUdWlTdGF0dXNUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZURpcmVjdGl2ZSAmJiB0aGlzLm1vZGVEaXJlY3RpdmUubW9kZSA/ICdkZWZhdWx0JyA6IHRoaXMudGFnU3RhdHVzO1xuICAgIH1cblxuICAgIGdldCBjYW5PcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnRlcmFjdGl2ZSAmJiAhIXRoaXMuZGF0YWxpc3Q7XG4gICAgfVxuXG4gICAgZ2V0TGVmdENvbnRlbnQodGFnOiBzdHJpbmcpOiBQb2x5bW9ycGhldXNDb250ZW50IHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnRhZ1ZhbGlkYXRvcih0YWcpICYmIHRoaXMuZXJyb3JJY29uVGVtcGxhdGVcbiAgICAgICAgICAgID8gdGhpcy5lcnJvckljb25UZW1wbGF0ZVxuICAgICAgICAgICAgOiAnJztcbiAgICB9XG5cbiAgICBvbkNsZWFuZXJDbGljaygpIHtcbiAgICAgICAgdGhpcy51cGRhdGVTZWFyY2goJycpO1xuICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgIH1cblxuICAgIG9uQWN0aXZlWm9uZShhY3RpdmU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYWRkVGFnKCk7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChhY3RpdmUpO1xuXG4gICAgICAgIGlmICghdGhpcy5jb21wdXRlZEZvY3VzZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG9TdGFydCQubmV4dCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Nb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgY29uc3QgYWN0dWFsVGFyZ2V0ID0gZ2V0QWN0dWFsVGFyZ2V0KGV2ZW50KTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhdGhpcy5mb2N1c2FibGVFbGVtZW50IHx8XG4gICAgICAgICAgICBhY3R1YWxUYXJnZXQgPT09IHRoaXMuZm9jdXNhYmxlRWxlbWVudC5uYXRpdmVFbGVtZW50IHx8XG4gICAgICAgICAgICAvLyBUT0RPOiBpZnJhbWUgd2FybmluZ1xuICAgICAgICAgICAgIShldmVudC50YXJnZXQgaW5zdGFuY2VvZiBFbGVtZW50KSB8fFxuICAgICAgICAgICAgKHRoaXMuY2xlYW5lclN2ZyAmJiB0aGlzLmNsZWFuZXJTdmcubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB8fFxuICAgICAgICAgICAgKHRoaXMudGFnc0NvbnRhaW5lciAmJlxuICAgICAgICAgICAgICAgIGFjdHVhbFRhcmdldCAhPT0gdGhpcy50YWdzQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQgJiZcbiAgICAgICAgICAgICAgICB0aGlzLnRhZ3NDb250YWluZXIubmF0aXZlRWxlbWVudC5jb250YWlucyhhY3R1YWxUYXJnZXQpKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgIH1cblxuICAgIG9uRmllbGRLZXlEb3duQmFja3NwYWNlKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmICghdGhpcy5sYWJlbE91dHNpZGUgJiYgIXRoaXMuaGFzTmF0aXZlVmFsdWUgJiYgdGhpcy52YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZGVsZXRlTGFzdEVuYWJsZWRJdGVtKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9uRmllbGRLZXlEb3duQXJyb3dMZWZ0KGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRmllbGRLZXlEb3duQXJyb3dMZWZ0KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmICghdGhpcy5sYWJlbE91dHNpZGUgfHwgdGhpcy5oYXNOYXRpdmVWYWx1ZSB8fCAhdGhpcy52YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHNldE5hdGl2ZUZvY3VzZWQodGhpcy50YWdzLmxhc3QubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgb25GaWVsZEtleURvd25FbnRlcigpIHtcbiAgICAgICAgdGhpcy5hZGRUYWcoKTtcbiAgICAgICAgdGhpcy5zY3JvbGxUb0VuZCQubmV4dCgpO1xuICAgIH1cblxuICAgIG9uVGFnS2V5RG93bkFycm93TGVmdChjdXJyZW50SW5kZXg6IG51bWJlcikge1xuICAgICAgICBpZiAoY3VycmVudEluZGV4ID4gMCkge1xuICAgICAgICAgICAgdGhpcy5vblNjcm9sbEtleURvd24oY3VycmVudEluZGV4LCAtMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblRhZ0tleURvd25BcnJvd1JpZ2h0KGN1cnJlbnRJbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGlmIChjdXJyZW50SW5kZXggPT09IHRoaXMudmFsdWUubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9uU2Nyb2xsS2V5RG93bihjdXJyZW50SW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25UYWdFZGl0ZWQodmFsdWU6IHN0cmluZywgZWRpdGVkVGFnOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoXG4gICAgICAgICAgICB0aGlzLnZhbHVlXG4gICAgICAgICAgICAgICAgLm1hcCh0YWcgPT5cbiAgICAgICAgICAgICAgICAgICAgdGFnICE9PSBlZGl0ZWRUYWdcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdGFnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3BsaXQoJywnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCh0YWcgPT4gdGFnLnRyaW0oKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbiksXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5yZWR1Y2U8c3RyaW5nW10+KFxuICAgICAgICAgICAgICAgICAgICAocmVzdWx0LCBpdGVtOiBzdHJpbmcgfCBzdHJpbmdbXSkgPT4gcmVzdWx0LmNvbmNhdChpdGVtKSxcbiAgICAgICAgICAgICAgICAgICAgW10sXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBoYW5kbGVPcHRpb24oaXRlbTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgICAgICB0aGlzLnVwZGF0ZVNlYXJjaCgnJyk7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy52YWx1ZS5jb25jYXQoaXRlbSkpO1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zY3JvbGxUb0VuZCQubmV4dCgpO1xuICAgIH1cblxuICAgIG9uSW5wdXQodmFsdWU6IHN0cmluZykge1xuICAgICAgICBjb25zdCBhcnJheSA9IHRoaXMuYWxsb3dTcGFjZXNcbiAgICAgICAgICAgID8gdmFsdWUuc3BsaXQoJywnKVxuICAgICAgICAgICAgOiB2YWx1ZS5zcGxpdChBTExPV0VEX1NQQUNFX1JFR0VYUCk7XG4gICAgICAgIGNvbnN0IHRhZ3MgPSBhcnJheVxuICAgICAgICAgICAgLm1hcChpdGVtID0+IGl0ZW0udHJpbSgpKVxuICAgICAgICAgICAgLmZpbHRlcigoaXRlbSwgaW5kZXgsIHtsZW5ndGh9KSA9PiBpdGVtLmxlbmd0aCA+IDAgJiYgaW5kZXggIT09IGxlbmd0aCAtIDEpO1xuICAgICAgICBjb25zdCB2YWxpZGF0ZWQgPSB0YWdzLmZpbHRlcih0YWcgPT4gIXRoaXMuZGlzYWJsZWRJdGVtSGFuZGxlcih0YWcpKTtcblxuICAgICAgICBpZiAoYXJyYXkubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVTZWFyY2goYXJyYXlbYXJyYXkubGVuZ3RoIC0gMV0udHJpbSgpKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUoWy4uLnRoaXMudmFsdWUsIC4uLnZhbGlkYXRlZF0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVTZWFyY2godmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vcGVuID0gdGhpcy5oYXNOYXRpdmVWYWx1ZTtcbiAgICB9XG5cbiAgICBvbkhvdmVyZWRDaGFuZ2UoaG92ZXJlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZUhvdmVyZWQoaG92ZXJlZCk7XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZSgpIHtcbiAgICAgICAgc3VwZXIuc2V0RGlzYWJsZWRTdGF0ZSgpO1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdXBkYXRlVmFsdWUodmFsdWU6IEFycmF5PHN0cmluZz4pIHtcbiAgICAgICAgY29uc3Qgc2VlbiA9IG5ldyBTZXQoKTtcblxuICAgICAgICBzdXBlci51cGRhdGVWYWx1ZShcbiAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICAgICAgLnJldmVyc2UoKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoaXRlbSA9PiAhIWl0ZW0gJiYgIXNlZW4uaGFzKGl0ZW0pICYmIHNlZW4uYWRkKGl0ZW0pKVxuICAgICAgICAgICAgICAgIC5yZXZlcnNlKCksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblNjcm9sbEtleURvd24oY3VycmVudEluZGV4OiBudW1iZXIsIGZsYWc6IG51bWJlcikge1xuICAgICAgICBjb25zdCB0YWcgPSB0aGlzLnRhZ3MuZmluZCgoX2l0ZW0sIGluZGV4KSA9PiBpbmRleCA9PT0gY3VycmVudEluZGV4ICsgZmxhZyk7XG5cbiAgICAgICAgaWYgKCF0YWcgfHwgIXRoaXMuc2Nyb2xsQmFyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzZXROYXRpdmVGb2N1c2VkKHRhZy5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBmbGFnICogdGhpcy5zY3JvbGxCYXIubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCAtXG4gICAgICAgICAgICAgICAgZmxhZyAqIHRhZy5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQgLVxuICAgICAgICAgICAgICAgIHRhZy5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoIDxcbiAgICAgICAgICAgIDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbEJhci5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgKz1cbiAgICAgICAgICAgICAgICBmbGFnICogdGFnLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRTY3JvbGxlclN1YnNjcml0aW9uKHNjcm9sbGVyOiBUdWlTY3JvbGxiYXJDb21wb25lbnQgfCBudWxsKSB7XG4gICAgICAgIGlmICghc2Nyb2xsZXIgfHwgIXNjcm9sbGVyLmJyb3dzZXJTY3JvbGxSZWYpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHtuYXRpdmVFbGVtZW50fSA9IHNjcm9sbGVyLmJyb3dzZXJTY3JvbGxSZWY7XG5cbiAgICAgICAgY29uc3Qgd2hlZWwkID0gdHlwZWRGcm9tRXZlbnQobmF0aXZlRWxlbWVudCwgJ3doZWVsJywge3Bhc3NpdmU6IGZhbHNlfSkucGlwZShcbiAgICAgICAgICAgIGZpbHRlcihldmVudCA9PiBldmVudC5kZWx0YVggPT09IDAgJiYgdGhpcy5zaG91bGRTY3JvbGwobmF0aXZlRWxlbWVudCkpLFxuICAgICAgICAgICAgcHJldmVudERlZmF1bHQoKSxcbiAgICAgICAgICAgIG1hcCgoe2RlbHRhWX0pID0+XG4gICAgICAgICAgICAgICAgTWF0aC5tYXgobmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ICsgZGVsdGFZICogRVZFTlRfWV9UT19YX0NPRUZGSUNFTlQsIDApLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3Qgc3RhcnQkID0gdGhpcy5zY3JvbGxUb1N0YXJ0JC5waXBlKG1hcFRvKDApKTtcbiAgICAgICAgY29uc3QgZW5kJCA9IHRoaXMuc2Nyb2xsVG9FbmQkLnBpcGUobWFwKCgpID0+IG5hdGl2ZUVsZW1lbnQuc2Nyb2xsV2lkdGgpKTtcblxuICAgICAgICBtZXJnZSh3aGVlbCQsIHN0YXJ0JCwgZW5kJClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChsZWZ0ID0+IHRoaXMudHVpU2Nyb2xsU2VydmljZS5zY3JvbGwkKG5hdGl2ZUVsZW1lbnQsIDAsIGxlZnQpKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVTZWFyY2godmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5mb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzYWJsZUVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZWFyY2ggPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZWFyY2hDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzaG91bGRTY3JvbGwoe3Njcm9sbFdpZHRoLCBvZmZzZXRXaWR0aH06IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBzY3JvbGxXaWR0aCA+IG9mZnNldFdpZHRoO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkVGFnKCkge1xuICAgICAgICBjb25zdCBpbnB1dFZhbHVlID0gdGhpcy5zZWFyY2gudHJpbSgpO1xuXG4gICAgICAgIGlmICghaW5wdXRWYWx1ZSB8fCB0aGlzLmRpc2FibGVkSXRlbUhhbmRsZXIoaW5wdXRWYWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlU2VhcmNoKCcnKTtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh0aGlzLnZhbHVlLmNvbmNhdChpbnB1dFZhbHVlKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZWxldGVMYXN0RW5hYmxlZEl0ZW0oKSB7XG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gdGhpcy52YWx1ZS5sZW5ndGggLSAxOyBpbmRleCA+PSAwOyBpbmRleC0tKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWRJdGVtSGFuZGxlcih0aGlzLnZhbHVlW2luZGV4XSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKFtcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy52YWx1ZS5zbGljZSgwLCBpbmRleCksXG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMudmFsdWUuc2xpY2UoaW5kZXggKyAxLCB0aGlzLnZhbHVlLmxlbmd0aCksXG4gICAgICAgICAgICAgICAgXSk7XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZm9jdXNJbnB1dChwcmV2ZW50U2Nyb2xsOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICAgICAgaWYgKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgc2V0TmF0aXZlRm9jdXNlZCh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQsIHRydWUsIHByZXZlbnRTY3JvbGwpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
504
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC10YWcvIiwic291cmNlcyI6WyJpbnB1dC10YWcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxFQUNULElBQUksRUFDSixXQUFXLEVBQ1gsU0FBUyxFQUNULFlBQVksR0FDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUNILDBCQUEwQixFQUMxQixvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLFdBQVcsRUFDWCxlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsMkJBQTJCLEVBQzNCLHNCQUFzQixFQUN0QixpQkFBaUIsRUFDakIsc0JBQXNCLEVBQ3RCLGNBQWMsRUFDZCwyQkFBMkIsRUFDM0IsZ0JBQWdCLEVBQ2hCLGNBQWMsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILHdCQUF3QixFQUN4Qiw2QkFBNkIsRUFDN0Isa0JBQWtCLEVBQ2xCLDJCQUEyQixFQUMzQix3QkFBd0IsRUFDeEIsZ0NBQWdDLEVBQ2hDLG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsMEJBQTBCLEVBQzFCLHNCQUFzQixFQUN0QiwwQkFBMEIsRUFDMUIsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQixRQUFRLEVBQ1IsUUFBUSxFQUNSLHNCQUFzQixHQUN6QixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFN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cUIsQ0FBQyxDQUFBO09Bakh6QixvQkFBb0IsQ0FxYmhDO0lBQUQsMkJBQUM7Q0FBQSxBQXJiRCxDQUNZLDBCQUEwQixHQW9ickM7U0FyYlksb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2VsZixcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpTXVsdGlwbGVDb250cm9sLFxuICAgIEFMV0FZU19GQUxTRV9IQU5ETEVSLFxuICAgIEFMV0FZU19UUlVFX0hBTkRMRVIsXG4gICAgRU1QVFlfUVVFUlksXG4gICAgZ2V0QWN0dWFsVGFyZ2V0LFxuICAgIGlzTmF0aXZlRm9jdXNlZEluLFxuICAgIHByZXZlbnREZWZhdWx0LFxuICAgIHNldE5hdGl2ZUZvY3VzZWQsXG4gICAgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgIFR1aUFjdGl2ZVpvbmVEaXJlY3RpdmUsXG4gICAgVHVpQm9vbGVhbkhhbmRsZXIsXG4gICAgVHVpQ29udGV4dFdpdGhJbXBsaWNpdCxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgVHVpU2Nyb2xsU2VydmljZSxcbiAgICB0eXBlZEZyb21FdmVudCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIEhJTlRfQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICBURVhURklFTERfQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICBUVUlfREFUQV9MSVNUX0hPU1QsXG4gICAgVFVJX0hJTlRfV0FUQ0hFRF9DT05UUk9MTEVSLFxuICAgIFRVSV9URVhURklFTERfQVBQRUFSQU5DRSxcbiAgICBUVUlfVEVYVEZJRUxEX1dBVENIRURfQ09OVFJPTExFUixcbiAgICBUdWlEYXRhTGlzdERpcmVjdGl2ZSxcbiAgICBUdWlEYXRhTGlzdEhvc3QsXG4gICAgVHVpSGludENvbnRyb2xsZXJEaXJlY3RpdmUsXG4gICAgVHVpSG9yaXpvbnRhbERpcmVjdGlvbixcbiAgICBUdWlIb3N0ZWREcm9wZG93bkNvbXBvbmVudCxcbiAgICBUdWlNb2RlRGlyZWN0aXZlLFxuICAgIFR1aVNjcm9sbGJhckNvbXBvbmVudCxcbiAgICBUdWlTaXplTCxcbiAgICBUdWlTaXplUyxcbiAgICBUdWlUZXh0ZmllbGRDb250cm9sbGVyLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge0FMTE9XRURfU1BBQ0VfUkVHRVhQfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvdGFnJztcbmltcG9ydCB7RklYRURfRFJPUERPV05fQ09OVFJPTExFUl9QUk9WSURFUn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9wcm92aWRlcnMnO1xuaW1wb3J0IHtUVUlfVEFHX1NUQVRVU30gZnJvbSAnQHRhaWdhLXVpL2tpdC90b2tlbnMnO1xuaW1wb3J0IHtUdWlTdGF0dXNUfSBmcm9tICdAdGFpZ2EtdWkva2l0L3R5cGVzJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7bWVyZ2UsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcCwgbWFwVG8sIHN3aXRjaE1hcCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7VFVJX0lOUFVUX1RBR19PUFRJT05TLCBUdWlJbnB1dFRhZ09wdGlvbnN9IGZyb20gJy4vaW5wdXQtdGFnLW9wdGlvbnMnO1xuXG5jb25zdCBFVkVOVF9ZX1RPX1hfQ09FRkZJQ0VOVCA9IDM7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWlucHV0LXRhZycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LXRhZy50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC10YWcuc3R5bGUubGVzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUdWlJbnB1dFRhZ0NvbXBvbmVudCksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9EQVRBX0xJU1RfSE9TVCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR1aUlucHV0VGFnQ29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICAgICAgRklYRURfRFJPUERPV05fQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICAgICAgVEVYVEZJRUxEX0NPTlRST0xMRVJfUFJPVklERVIsXG4gICAgICAgIEhJTlRfQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dFRhZ0NvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlNdWx0aXBsZUNvbnRyb2w8c3RyaW5nPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLCBUdWlEYXRhTGlzdEhvc3Q8c3RyaW5nPlxue1xuICAgIEBWaWV3Q2hpbGQoVHVpSG9zdGVkRHJvcGRvd25Db21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBkcm9wZG93bj86IFR1aUhvc3RlZERyb3Bkb3duQ29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZCgnZm9jdXNhYmxlRWxlbWVudCcpXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb2N1c2FibGVFbGVtZW50PzogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAgIEBWaWV3Q2hpbGQoJ3RhZ3NDb250YWluZXInKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGFnc0NvbnRhaW5lcj86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZHJlbigndGFnJywge3JlYWQ6IEVsZW1lbnRSZWZ9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGFnczogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PiA9IEVNUFRZX1FVRVJZO1xuXG4gICAgQFZpZXdDaGlsZCgnY2xlYW5lcicsIHtyZWFkOiBFbGVtZW50UmVmfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNsZWFuZXJTdmc/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIEBWaWV3Q2hpbGQoVHVpU2Nyb2xsYmFyQ29tcG9uZW50LCB7cmVhZDogRWxlbWVudFJlZn0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBzY3JvbGxCYXI/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2Nyb2xsVG9TdGFydCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc2Nyb2xsVG9FbmQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8vIFRPRE86IFJlbW92ZSBpbiAzLjBcbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgYWxsb3dTcGFjZXMgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHNlcGFyYXRvcjogc3RyaW5nIHwgUmVnRXhwID0gdGhpcy5vcHRpb25zLnNlcGFyYXRvcjtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBpY29uID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaWNvbkFsaWduOiBUdWlIb3Jpem9udGFsRGlyZWN0aW9uID0gJ3JpZ2h0JztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzZWFyY2ggPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBlZGl0YWJsZSA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgdGFnVmFsaWRhdG9yOiBUdWlCb29sZWFuSGFuZGxlcjxzdHJpbmc+ID0gQUxXQVlTX1RSVUVfSEFORExFUjtcblxuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fZXhwYW5kYWJsZScpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBleHBhbmRhYmxlID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBpbnB1dEhpZGRlbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHVuaXF1ZVRhZ3MgPSB0aGlzLm9wdGlvbnMudW5pcXVlVGFncztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBkaXNhYmxlZEl0ZW1IYW5kbGVyOiBUdWlCb29sZWFuSGFuZGxlcjxzdHJpbmc+ID0gQUxXQVlTX0ZBTFNFX0hBTkRMRVI7XG5cbiAgICBASW5wdXQoJ3BzZXVkb0ZvY3VzZWQnKVxuICAgIHNldCBwc2V1ZG9Gb2N1c2VkU2V0dGVyKHZhbHVlOiBib29sZWFuIHwgbnVsbCkge1xuICAgICAgICBpZiAoIXZhbHVlICYmICF0aGlzLmZvY3VzZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG9TdGFydCQubmV4dCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wc2V1ZG9Gb2N1c2VkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgc2VhcmNoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBAQ29udGVudENoaWxkKFR1aURhdGFMaXN0RGlyZWN0aXZlLCB7cmVhZDogVGVtcGxhdGVSZWZ9KVxuICAgIHJlYWRvbmx5IGRhdGFsaXN0PzogVGVtcGxhdGVSZWY8VHVpQ29udGV4dFdpdGhJbXBsaWNpdDxUdWlBY3RpdmVab25lRGlyZWN0aXZlPj47XG5cbiAgICBAVmlld0NoaWxkKCdlcnJvckljb24nKVxuICAgIHJlYWRvbmx5IGVycm9ySWNvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8e30+O1xuXG4gICAgQFZpZXdDaGlsZChUdWlTY3JvbGxiYXJDb21wb25lbnQpXG4gICAgc2V0IHNjcm9sbGVyU2V0dGVyKHNjcm9sbGVyOiBUdWlTY3JvbGxiYXJDb21wb25lbnQgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuaW5pdFNjcm9sbGVyU3Vic2NyaXRpb24oc2Nyb2xsZXIpO1xuICAgIH1cblxuICAgIG9wZW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoVHVpU2Nyb2xsU2VydmljZSkgcHJpdmF0ZSByZWFkb25seSB0dWlTY3JvbGxTZXJ2aWNlOiBUdWlTY3JvbGxTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9BUFBFQVJBTkNFKSByZWFkb25seSBhcHBlYXJhbmNlOiBzdHJpbmcsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVHVpTW9kZURpcmVjdGl2ZSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtb2RlRGlyZWN0aXZlOiBUdWlNb2RlRGlyZWN0aXZlIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChUVUlfVEFHX1NUQVRVUykgcHJpdmF0ZSByZWFkb25seSB0YWdTdGF0dXM6IFR1aVN0YXR1c1QsXG4gICAgICAgIEBJbmplY3QoVFVJX0hJTlRfV0FUQ0hFRF9DT05UUk9MTEVSKVxuICAgICAgICByZWFkb25seSBoaW50Q29udHJvbGxlcjogVHVpSGludENvbnRyb2xsZXJEaXJlY3RpdmUsXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9XQVRDSEVEX0NPTlRST0xMRVIpXG4gICAgICAgIHJlYWRvbmx5IGNvbnRyb2xsZXI6IFR1aVRleHRmaWVsZENvbnRyb2xsZXIsXG4gICAgICAgIEBJbmplY3QoVFVJX0lOUFVUX1RBR19PUFRJT05TKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IFR1aUlucHV0VGFnT3B0aW9ucyxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmZvY3VzYWJsZUVsZW1lbnQgfHwgdGhpcy5jb21wdXRlZERpc2FibGVkXG4gICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgIDogdGhpcy5mb2N1c2FibGVFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBpc05hdGl2ZUZvY3VzZWRJbih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkgfHxcbiAgICAgICAgICAgICghIXRoaXMuZHJvcGRvd24gJiYgdGhpcy5kcm9wZG93bi5mb2N1c2VkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXNpemUnKVxuICAgIGdldCBzaXplKCk6IFR1aVNpemVMIHwgVHVpU2l6ZVMge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyLnNpemU7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fbGFiZWwtb3V0c2lkZScpXG4gICAgZ2V0IGxhYmVsT3V0c2lkZSgpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3Qge3NpemUsIGxhYmVsT3V0c2lkZX0gPSB0aGlzLmNvbnRyb2xsZXI7XG5cbiAgICAgICAgcmV0dXJuIHNpemUgPT09ICdzJyB8fCBsYWJlbE91dHNpZGU7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0NsZWFuZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2xsZXIuY2xlYW5lciAmJiB0aGlzLmhhc1ZhbHVlICYmIHRoaXMuaW50ZXJhY3RpdmU7XG4gICAgfVxuXG4gICAgZ2V0IGhhc05hdGl2ZVZhbHVlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnNlYXJjaDtcbiAgICB9XG5cbiAgICBnZXQgaGFzVmFsdWUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMudmFsdWUubGVuZ3RoIHx8IHRoaXMuaGFzTmF0aXZlVmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGhhc1BsYWNlaG9sZGVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgIXRoaXMubGFiZWxPdXRzaWRlIHx8XG4gICAgICAgICAgICAoIXRoaXMuaGFzVmFsdWUgJiYgKCF0aGlzLmhhc0V4YW1wbGVUZXh0IHx8IHRoaXMuaW5wdXRIaWRkZW4pKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBwbGFjZWhvbGRlclJhaXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICF0aGlzLmxhYmVsT3V0c2lkZSAmJlxuICAgICAgICAgICAgKCh0aGlzLmNvbXB1dGVkRm9jdXNlZCAmJiAhdGhpcy5yZWFkT25seSkgfHwgdGhpcy5oYXNWYWx1ZSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgaGFzRXhhbXBsZVRleHQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhIXRoaXMuY29udHJvbGxlci5leGFtcGxlVGV4dCAmJlxuICAgICAgICAgICAgdGhpcy5jb21wdXRlZEZvY3VzZWQgJiZcbiAgICAgICAgICAgICF0aGlzLmhhc1ZhbHVlICYmXG4gICAgICAgICAgICAhdGhpcy5yZWFkT25seVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBoYXNUb29sdGlwKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmhpbnRDb250cm9sbGVyLmNvbnRlbnQgJiYgIXRoaXMuZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgZ2V0IGljb25BbGlnbkxlZnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuaWNvbiAmJiB0aGlzLmljb25BbGlnbiA9PT0gJ2xlZnQnO1xuICAgIH1cblxuICAgIGdldCBpY29uQWxpZ25SaWdodCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5pY29uICYmIHRoaXMuaWNvbkFsaWduID09PSAncmlnaHQnO1xuICAgIH1cblxuICAgIGdldCBoYXNSaWdodEljb25zKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNDbGVhbmVyIHx8IHRoaXMuaGFzVG9vbHRpcCB8fCB0aGlzLmljb25BbGlnblJpZ2h0O1xuICAgIH1cblxuICAgIGdldCBzdGF0dXMoKTogVHVpU3RhdHVzVCB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZGVEaXJlY3RpdmUgJiYgdGhpcy5tb2RlRGlyZWN0aXZlLm1vZGUgPyAnZGVmYXVsdCcgOiB0aGlzLnRhZ1N0YXR1cztcbiAgICB9XG5cbiAgICBnZXQgY2FuT3BlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJhY3RpdmUgJiYgISF0aGlzLmRhdGFsaXN0O1xuICAgIH1cblxuICAgIGdldExlZnRDb250ZW50KHRhZzogc3RyaW5nKTogUG9seW1vcnBoZXVzQ29udGVudCB7XG4gICAgICAgIHJldHVybiAhdGhpcy50YWdWYWxpZGF0b3IodGFnKSAmJiB0aGlzLmVycm9ySWNvblRlbXBsYXRlXG4gICAgICAgICAgICA/IHRoaXMuZXJyb3JJY29uVGVtcGxhdGVcbiAgICAgICAgICAgIDogJyc7XG4gICAgfVxuXG4gICAgb25DbGVhbmVyQ2xpY2soKSB7XG4gICAgICAgIHRoaXMudXBkYXRlU2VhcmNoKCcnKTtcbiAgICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgICB0aGlzLmZvY3VzSW5wdXQoKTtcbiAgICB9XG5cbiAgICBvbkFjdGl2ZVpvbmUoYWN0aXZlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLmFkZFRhZygpO1xuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoYWN0aXZlKTtcblxuICAgICAgICBpZiAoIXRoaXMuY29tcHV0ZWRGb2N1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbFRvU3RhcnQkLm5leHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGFjdHVhbFRhcmdldCA9IGdldEFjdHVhbFRhcmdldChldmVudCk7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIXRoaXMuZm9jdXNhYmxlRWxlbWVudCB8fFxuICAgICAgICAgICAgYWN0dWFsVGFyZ2V0ID09PSB0aGlzLmZvY3VzYWJsZUVsZW1lbnQubmF0aXZlRWxlbWVudCB8fFxuICAgICAgICAgICAgLy8gVE9ETzogaWZyYW1lIHdhcm5pbmdcbiAgICAgICAgICAgICEoZXZlbnQudGFyZ2V0IGluc3RhbmNlb2YgRWxlbWVudCkgfHxcbiAgICAgICAgICAgICh0aGlzLmNsZWFuZXJTdmcgJiYgdGhpcy5jbGVhbmVyU3ZnLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkgfHxcbiAgICAgICAgICAgICh0aGlzLnRhZ3NDb250YWluZXIgJiZcbiAgICAgICAgICAgICAgICBhY3R1YWxUYXJnZXQgIT09IHRoaXMudGFnc0NvbnRhaW5lci5uYXRpdmVFbGVtZW50ICYmXG4gICAgICAgICAgICAgICAgdGhpcy50YWdzQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoYWN0dWFsVGFyZ2V0KSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmZvY3VzSW5wdXQoKTtcbiAgICB9XG5cbiAgICBvbkZpZWxkS2V5RG93bkJhY2tzcGFjZShldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAoIXRoaXMubGFiZWxPdXRzaWRlICYmICF0aGlzLmhhc05hdGl2ZVZhbHVlICYmIHRoaXMudmFsdWUubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmRlbGV0ZUxhc3RFbmFibGVkSXRlbSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5vbkZpZWxkS2V5RG93bkFycm93TGVmdChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkZpZWxkS2V5RG93bkFycm93TGVmdChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAoIXRoaXMubGFiZWxPdXRzaWRlIHx8IHRoaXMuaGFzTmF0aXZlVmFsdWUgfHwgIXRoaXMudmFsdWUubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBzZXROYXRpdmVGb2N1c2VkKHRoaXMudGFncy5sYXN0Lm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIG9uRmllbGRLZXlEb3duRW50ZXIoKSB7XG4gICAgICAgIHRoaXMuYWRkVGFnKCk7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9FbmQkLm5leHQoKTtcbiAgICB9XG5cbiAgICBvblRhZ0tleURvd25BcnJvd0xlZnQoY3VycmVudEluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKGN1cnJlbnRJbmRleCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMub25TY3JvbGxLZXlEb3duKGN1cnJlbnRJbmRleCwgLTEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25UYWdLZXlEb3duQXJyb3dSaWdodChjdXJyZW50SW5kZXg6IG51bWJlcikge1xuICAgICAgICBpZiAoY3VycmVudEluZGV4ID09PSB0aGlzLnZhbHVlLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5vblNjcm9sbEtleURvd24oY3VycmVudEluZGV4LCAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uVGFnRWRpdGVkKHZhbHVlOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoXG4gICAgICAgICAgICB0aGlzLnZhbHVlXG4gICAgICAgICAgICAgICAgLm1hcCgodGFnLCB0YWdJbmRleCkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGFnSW5kZXggIT09IGluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICA/IHRhZ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KHRoaXMuc2VwYXJhdG9yKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCh0YWcgPT4gdGFnLnRyaW0oKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbiksXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5yZWR1Y2U8c3RyaW5nW10+KFxuICAgICAgICAgICAgICAgICAgICAocmVzdWx0LCBpdGVtOiBzdHJpbmcgfCBzdHJpbmdbXSkgPT4gcmVzdWx0LmNvbmNhdChpdGVtKSxcbiAgICAgICAgICAgICAgICAgICAgW10sXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBoYW5kbGVPcHRpb24oaXRlbTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgICAgICB0aGlzLnVwZGF0ZVNlYXJjaCgnJyk7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy52YWx1ZS5jb25jYXQoaXRlbSkpO1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zY3JvbGxUb0VuZCQubmV4dCgpO1xuICAgIH1cblxuICAgIG9uSW5wdXQodmFsdWU6IHN0cmluZykge1xuICAgICAgICBjb25zdCBhcnJheSA9IHRoaXMuYWxsb3dTcGFjZXNcbiAgICAgICAgICAgID8gdmFsdWUuc3BsaXQodGhpcy5zZXBhcmF0b3IpXG4gICAgICAgICAgICA6IHZhbHVlLnNwbGl0KEFMTE9XRURfU1BBQ0VfUkVHRVhQKTtcbiAgICAgICAgY29uc3QgdGFncyA9IGFycmF5XG4gICAgICAgICAgICAubWFwKGl0ZW0gPT4gaXRlbS50cmltKCkpXG4gICAgICAgICAgICAuZmlsdGVyKChpdGVtLCBpbmRleCwge2xlbmd0aH0pID0+IGl0ZW0ubGVuZ3RoID4gMCAmJiBpbmRleCAhPT0gbGVuZ3RoIC0gMSk7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRlZCA9IHRhZ3MuZmlsdGVyKHRhZyA9PiAhdGhpcy5kaXNhYmxlZEl0ZW1IYW5kbGVyKHRhZykpO1xuXG4gICAgICAgIGlmIChhcnJheS5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVNlYXJjaChhcnJheVthcnJheS5sZW5ndGggLSAxXS50cmltKCkpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShbLi4udGhpcy52YWx1ZSwgLi4udmFsaWRhdGVkXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVNlYXJjaCh2YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9wZW4gPSB0aGlzLmhhc05hdGl2ZVZhbHVlO1xuICAgIH1cblxuICAgIG9uSG92ZXJlZENoYW5nZShob3ZlcmVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlSG92ZXJlZChob3ZlcmVkKTtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKCkge1xuICAgICAgICBzdXBlci5zZXREaXNhYmxlZFN0YXRlKCk7XG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB1cGRhdGVWYWx1ZSh2YWx1ZTogQXJyYXk8c3RyaW5nPikge1xuICAgICAgICBjb25zdCBzZWVuID0gbmV3IFNldCgpO1xuXG4gICAgICAgIHN1cGVyLnVwZGF0ZVZhbHVlKFxuICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgICAgICAucmV2ZXJzZSgpXG4gICAgICAgICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgaXRlbSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgIXRoaXMudW5pcXVlVGFncyB8fCAoISFpdGVtICYmICFzZWVuLmhhcyhpdGVtKSAmJiBzZWVuLmFkZChpdGVtKSksXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5yZXZlcnNlKCksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblNjcm9sbEtleURvd24oY3VycmVudEluZGV4OiBudW1iZXIsIGZsYWc6IG51bWJlcikge1xuICAgICAgICBjb25zdCB0YWcgPSB0aGlzLnRhZ3MuZmluZCgoX2l0ZW0sIGluZGV4KSA9PiBpbmRleCA9PT0gY3VycmVudEluZGV4ICsgZmxhZyk7XG5cbiAgICAgICAgaWYgKCF0YWcgfHwgIXRoaXMuc2Nyb2xsQmFyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzZXROYXRpdmVGb2N1c2VkKHRhZy5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBmbGFnICogdGhpcy5zY3JvbGxCYXIubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCAtXG4gICAgICAgICAgICAgICAgZmxhZyAqIHRhZy5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQgLVxuICAgICAgICAgICAgICAgIHRhZy5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoIDxcbiAgICAgICAgICAgIDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbEJhci5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgKz1cbiAgICAgICAgICAgICAgICBmbGFnICogdGFnLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRTY3JvbGxlclN1YnNjcml0aW9uKHNjcm9sbGVyOiBUdWlTY3JvbGxiYXJDb21wb25lbnQgfCBudWxsKSB7XG4gICAgICAgIGlmICghc2Nyb2xsZXIgfHwgIXNjcm9sbGVyLmJyb3dzZXJTY3JvbGxSZWYpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHtuYXRpdmVFbGVtZW50fSA9IHNjcm9sbGVyLmJyb3dzZXJTY3JvbGxSZWY7XG5cbiAgICAgICAgY29uc3Qgd2hlZWwkID0gdHlwZWRGcm9tRXZlbnQobmF0aXZlRWxlbWVudCwgJ3doZWVsJywge3Bhc3NpdmU6IGZhbHNlfSkucGlwZShcbiAgICAgICAgICAgIGZpbHRlcihldmVudCA9PiBldmVudC5kZWx0YVggPT09IDAgJiYgdGhpcy5zaG91bGRTY3JvbGwobmF0aXZlRWxlbWVudCkpLFxuICAgICAgICAgICAgcHJldmVudERlZmF1bHQoKSxcbiAgICAgICAgICAgIG1hcCgoe2RlbHRhWX0pID0+XG4gICAgICAgICAgICAgICAgTWF0aC5tYXgobmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ICsgZGVsdGFZICogRVZFTlRfWV9UT19YX0NPRUZGSUNFTlQsIDApLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3Qgc3RhcnQkID0gdGhpcy5zY3JvbGxUb1N0YXJ0JC5waXBlKG1hcFRvKDApKTtcbiAgICAgICAgY29uc3QgZW5kJCA9IHRoaXMuc2Nyb2xsVG9FbmQkLnBpcGUobWFwKCgpID0+IG5hdGl2ZUVsZW1lbnQuc2Nyb2xsV2lkdGgpKTtcblxuICAgICAgICBtZXJnZSh3aGVlbCQsIHN0YXJ0JCwgZW5kJClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChsZWZ0ID0+IHRoaXMudHVpU2Nyb2xsU2VydmljZS5zY3JvbGwkKG5hdGl2ZUVsZW1lbnQsIDAsIGxlZnQpKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVTZWFyY2godmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5mb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzYWJsZUVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZWFyY2ggPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZWFyY2hDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzaG91bGRTY3JvbGwoe3Njcm9sbFdpZHRoLCBvZmZzZXRXaWR0aH06IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBzY3JvbGxXaWR0aCA+IG9mZnNldFdpZHRoO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkVGFnKCkge1xuICAgICAgICBjb25zdCBpbnB1dFZhbHVlID0gdGhpcy5zZWFyY2gudHJpbSgpO1xuXG4gICAgICAgIGlmICghaW5wdXRWYWx1ZSB8fCB0aGlzLmRpc2FibGVkSXRlbUhhbmRsZXIoaW5wdXRWYWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlU2VhcmNoKCcnKTtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh0aGlzLnZhbHVlLmNvbmNhdChpbnB1dFZhbHVlKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZWxldGVMYXN0RW5hYmxlZEl0ZW0oKSB7XG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gdGhpcy52YWx1ZS5sZW5ndGggLSAxOyBpbmRleCA+PSAwOyBpbmRleC0tKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWRJdGVtSGFuZGxlcih0aGlzLnZhbHVlW2luZGV4XSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKFtcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy52YWx1ZS5zbGljZSgwLCBpbmRleCksXG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMudmFsdWUuc2xpY2UoaW5kZXggKyAxLCB0aGlzLnZhbHVlLmxlbmd0aCksXG4gICAgICAgICAgICAgICAgXSk7XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZm9jdXNJbnB1dChwcmV2ZW50U2Nyb2xsOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICAgICAgaWYgKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgc2V0TmF0aXZlRm9jdXNlZCh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQsIHRydWUsIHByZXZlbnRTY3JvbGwpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -1,3 +1,4 @@
1
+ import { __assign } from "tslib";
1
2
  import { InjectionToken } from '@angular/core';
2
3
  import { MAX_TIME_VALUES } from '@taiga-ui/kit/constants';
3
4
  // TODO: remove in ivy compilation
@@ -15,4 +16,8 @@ export var TUI_INPUT_TIME_DEFAULT_OPTIONS = {
15
16
  export var TUI_INPUT_TIME_OPTIONS = new InjectionToken('Default parameters for input time component', {
16
17
  factory: function () { return TUI_INPUT_TIME_DEFAULT_OPTIONS; },
17
18
  });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGltZS1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LXRpbWUvIiwic291cmNlcyI6WyJpbnB1dC10aW1lLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUc3QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFZeEQsa0NBQWtDO0FBQ2xDLE1BQU0sQ0FBQyxJQUFNLGVBQWUsR0FBRyxVQUFDLEVBQWdCO1FBQWYsd0JBQVM7SUFDdEMsT0FBQSxTQUFTLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGtCQUFrQjtBQUF0RCxDQUFzRCxDQUFDO0FBRTNELE1BQU0sQ0FBQyxJQUFNLDhCQUE4QixHQUFxQjtJQUM1RCxJQUFJLEVBQUUsZUFBZTtJQUNyQixJQUFJLEVBQUUsT0FBTztJQUNiLE9BQU8sRUFBRSxFQUFFO0lBQ1gsU0FBUyxFQUFFLGVBQWU7SUFDMUIsUUFBUSxFQUFFLEdBQUc7Q0FDaEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUNwRCw2Q0FBNkMsRUFDN0M7SUFDSSxPQUFPLEVBQUUsY0FBTSxPQUFBLDhCQUE4QixFQUE5QixDQUE4QjtDQUNoRCxDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGlvblRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHVpQ29udGV4dFdpdGhJbXBsaWNpdCwgVHVpVGltZU1vZGV9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUdWlTaXplTCwgVHVpU2l6ZVN9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7TUFYX1RJTUVfVkFMVUVTfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbnN0YW50cyc7XG5pbXBvcnQge1R1aVRpbWVGb3JtYXRQYXJ0c30gZnJvbSAnQHRhaWdhLXVpL2tpdC90eXBlcyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5wdXRUaW1lT3B0aW9ucyB7XG4gICAgcmVhZG9ubHkgaWNvbjogUG9seW1vcnBoZXVzQ29udGVudDxUdWlDb250ZXh0V2l0aEltcGxpY2l0PFR1aVNpemVTIHwgVHVpU2l6ZUw+PjtcbiAgICByZWFkb25seSBtb2RlOiBUdWlUaW1lTW9kZTtcbiAgICByZWFkb25seSBwb3N0Zml4OiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgbWF4VmFsdWVzOiBSZWNvcmQ8VHVpVGltZUZvcm1hdFBhcnRzLCBudW1iZXI+O1xuICAgIHJlYWRvbmx5IGl0ZW1TaXplOiBUdWlTaXplUyB8IFR1aVNpemVMO1xufVxuXG4vLyBUT0RPOiByZW1vdmUgaW4gaXZ5IGNvbXBpbGF0aW9uXG5leHBvcnQgY29uc3QgSU5QVVRfVElNRV9JQ09OID0gKHskaW1wbGljaXR9OiBhbnkpID0+XG4gICAgJGltcGxpY2l0ID09PSAncycgPyAndHVpSWNvblRpbWUnIDogJ3R1aUljb25UaW1lTGFyZ2UnO1xuXG5leHBvcnQgY29uc3QgVFVJX0lOUFVUX1RJTUVfREVGQVVMVF9PUFRJT05TOiBJbnB1dFRpbWVPcHRpb25zID0ge1xuICAgIGljb246IElOUFVUX1RJTUVfSUNPTixcbiAgICBtb2RlOiAnSEg6TU0nLFxuICAgIHBvc3RmaXg6ICcnLFxuICAgIG1heFZhbHVlczogTUFYX1RJTUVfVkFMVUVTLFxuICAgIGl0ZW1TaXplOiAnbScsXG59O1xuXG5leHBvcnQgY29uc3QgVFVJX0lOUFVUX1RJTUVfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJbnB1dFRpbWVPcHRpb25zPihcbiAgICAnRGVmYXVsdCBwYXJhbWV0ZXJzIGZvciBpbnB1dCB0aW1lIGNvbXBvbmVudCcsXG4gICAge1xuICAgICAgICBmYWN0b3J5OiAoKSA9PiBUVUlfSU5QVVRfVElNRV9ERUZBVUxUX09QVElPTlMsXG4gICAgfSxcbik7XG4iXX0=
19
+ export var tuiInputTimeOptionsProvider = function (options) { return ({
20
+ provide: TUI_INPUT_TIME_OPTIONS,
21
+ useValue: __assign(__assign({}, TUI_INPUT_TIME_DEFAULT_OPTIONS), options),
22
+ }); };
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGltZS1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LXRpbWUvIiwic291cmNlcyI6WyJpbnB1dC10aW1lLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxjQUFjLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBRzVELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQWtCeEQsa0NBQWtDO0FBQ2xDLE1BQU0sQ0FBQyxJQUFNLGVBQWUsR0FBRyxVQUFDLEVBQWdCO1FBQWYsd0JBQVM7SUFDdEMsT0FBQSxTQUFTLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGtCQUFrQjtBQUF0RCxDQUFzRCxDQUFDO0FBRTNELE1BQU0sQ0FBQyxJQUFNLDhCQUE4QixHQUF3QjtJQUMvRCxJQUFJLEVBQUUsZUFBZTtJQUNyQixJQUFJLEVBQUUsT0FBTztJQUNiLE9BQU8sRUFBRSxFQUFFO0lBQ1gsU0FBUyxFQUFFLGVBQWU7SUFDMUIsUUFBUSxFQUFFLEdBQUc7Q0FDaEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUNwRCw2Q0FBNkMsRUFDN0M7SUFDSSxPQUFPLEVBQUUsY0FBTSxPQUFBLDhCQUE4QixFQUE5QixDQUE4QjtDQUNoRCxDQUNKLENBQUM7QUFFRixNQUFNLENBQUMsSUFBTSwyQkFBMkIsR0FFbkIsVUFBQyxPQUFxQyxJQUFLLE9BQUEsQ0FBQztJQUM3RCxPQUFPLEVBQUUsc0JBQXNCO0lBQy9CLFFBQVEsd0JBQU0sOEJBQThCLEdBQUssT0FBTyxDQUFDO0NBQzVELENBQUMsRUFIOEQsQ0FHOUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0aW9uVG9rZW4sIFZhbHVlUHJvdmlkZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUdWlDb250ZXh0V2l0aEltcGxpY2l0LCBUdWlUaW1lTW9kZX0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1R1aVNpemVMLCBUdWlTaXplU30gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtNQVhfVElNRV9WQUxVRVN9IGZyb20gJ0B0YWlnYS11aS9raXQvY29uc3RhbnRzJztcbmltcG9ydCB7VHVpVGltZUZvcm1hdFBhcnRzfSBmcm9tICdAdGFpZ2EtdWkva2l0L3R5cGVzJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcblxuZXhwb3J0IGludGVyZmFjZSBUdWlJbnB1dFRpbWVPcHRpb25zIHtcbiAgICByZWFkb25seSBpY29uOiBQb2x5bW9ycGhldXNDb250ZW50PFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8VHVpU2l6ZVMgfCBUdWlTaXplTD4+O1xuICAgIHJlYWRvbmx5IG1vZGU6IFR1aVRpbWVNb2RlO1xuICAgIHJlYWRvbmx5IHBvc3RmaXg6IHN0cmluZztcbiAgICByZWFkb25seSBtYXhWYWx1ZXM6IFJlY29yZDxUdWlUaW1lRm9ybWF0UGFydHMsIG51bWJlcj47XG4gICAgcmVhZG9ubHkgaXRlbVNpemU6IFR1aVNpemVTIHwgVHVpU2l6ZUw7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQ6IHVzZSBUdWlJbnB1dFRpbWVPcHRpb25zIGluc3RlYWRcbiAqIHRvZG86IHJlbW92ZSBpbiAzLjBcbiAqL1xuZXhwb3J0IHR5cGUgSW5wdXRUaW1lT3B0aW9ucyA9IFR1aUlucHV0VGltZU9wdGlvbnM7XG5cbi8vIFRPRE86IHJlbW92ZSBpbiBpdnkgY29tcGlsYXRpb25cbmV4cG9ydCBjb25zdCBJTlBVVF9USU1FX0lDT04gPSAoeyRpbXBsaWNpdH06IGFueSkgPT5cbiAgICAkaW1wbGljaXQgPT09ICdzJyA/ICd0dWlJY29uVGltZScgOiAndHVpSWNvblRpbWVMYXJnZSc7XG5cbmV4cG9ydCBjb25zdCBUVUlfSU5QVVRfVElNRV9ERUZBVUxUX09QVElPTlM6IFR1aUlucHV0VGltZU9wdGlvbnMgPSB7XG4gICAgaWNvbjogSU5QVVRfVElNRV9JQ09OLFxuICAgIG1vZGU6ICdISDpNTScsXG4gICAgcG9zdGZpeDogJycsXG4gICAgbWF4VmFsdWVzOiBNQVhfVElNRV9WQUxVRVMsXG4gICAgaXRlbVNpemU6ICdtJyxcbn07XG5cbmV4cG9ydCBjb25zdCBUVUlfSU5QVVRfVElNRV9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPFR1aUlucHV0VGltZU9wdGlvbnM+KFxuICAgICdEZWZhdWx0IHBhcmFtZXRlcnMgZm9yIGlucHV0IHRpbWUgY29tcG9uZW50JyxcbiAgICB7XG4gICAgICAgIGZhY3Rvcnk6ICgpID0+IFRVSV9JTlBVVF9USU1FX0RFRkFVTFRfT1BUSU9OUyxcbiAgICB9LFxuKTtcblxuZXhwb3J0IGNvbnN0IHR1aUlucHV0VGltZU9wdGlvbnNQcm92aWRlcjogKFxuICAgIG9wdGlvbnM6IFBhcnRpYWw8VHVpSW5wdXRUaW1lT3B0aW9ucz4sXG4pID0+IFZhbHVlUHJvdmlkZXIgPSAob3B0aW9uczogUGFydGlhbDxUdWlJbnB1dFRpbWVPcHRpb25zPikgPT4gKHtcbiAgICBwcm92aWRlOiBUVUlfSU5QVVRfVElNRV9PUFRJT05TLFxuICAgIHVzZVZhbHVlOiB7Li4uVFVJX0lOUFVUX1RJTUVfREVGQVVMVF9PUFRJT05TLCAuLi5vcHRpb25zfSxcbn0pO1xuIl19
@@ -300,4 +300,4 @@ var TuiInputTimeComponent = /** @class */ (function (_super) {
300
300
  return TuiInputTimeComponent;
301
301
  }(AbstractTuiNullableControl));
302
302
  export { TuiInputTimeComponent };
303
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGltZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtdGltZS8iLCJzb3VyY2VzIjpbImlucHV0LXRpbWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsMEJBQTBCLEVBQzFCLG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLDJCQUEyQixFQUMzQixrQkFBa0IsRUFFbEIsY0FBYyxFQUVkLE9BQU8sRUFDUCxPQUFPLEdBR1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLDhCQUE4QixFQUFxQixNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBQyxrQ0FBa0MsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzNFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQ0gsOEJBQThCLEVBQzlCLGlCQUFpQixHQUNwQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLE9BQU8sRUFBbUIsc0JBQXNCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUU5RSxXQUFXO0FBY1g7SUFDWSx5Q0FBbUM7SUFnQzNDLCtCQUlJLE9BQXlCLEVBQ0UsaUJBQW9DLEVBRTlDLFVBQW1ELEVBRW5ELE9BQXlCO1FBVDlDLFlBV0ksa0JB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QUkvRDtRQUZDLEtBQUssRUFBRTtRQUNQLGNBQWMsRUFBRTt5REFDRjtJQUlmO1FBRkMsS0FBSyxFQUFFO1FBQ1AsY0FBYyxFQUFFO3VEQUNrQztJQUluRDtRQUZDLEtBQUssRUFBRTtRQUNQLGNBQWMsRUFBRTswREFDMkM7SUF1RTVEO1FBREMsT0FBTzsyREFHUDtJQUdEO1FBREMsWUFBWSxDQUFDLE9BQU8sQ0FBQzt3REFHckI7SUFzRkQ7UUFEQyxPQUFPOzhEQU9QO0lBR0Q7UUFEQyxPQUFPO3VEQU9QO0lBaE5RLHFCQUFxQjtRQWJqQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLHVuREFBeUM7WUFFekMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07WUFDL0MsU0FBUyxFQUFFO2dCQUNQO29CQUNJLE9BQU8sRUFBRSwyQkFBMkI7b0JBQ3BDLFdBQVcsRUFBRSxVQUFVLENBQUMsY0FBTSxPQUFBLHVCQUFxQixFQUFyQixDQUFxQixDQUFDO2lCQUN2RDtnQkFDRCxrQ0FBa0M7YUFDckM7O1NBQ0osQ0FBQztRQW1DTyxXQUFBLFFBQVEsRUFBRSxDQUFBO1FBQ1YsV0FBQSxJQUFJLEVBQUUsQ0FBQTtRQUNOLFdBQUEsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBRWpCLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFDekIsV0FBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7UUFFdEIsV0FBQSxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtPQXpDMUIscUJBQXFCLENBcVJqQztJQUFELDRCQUFDO0NBQUEsQUFyUkQsQ0FDWSwwQkFBMEIsR0FvUnJDO1NBclJZLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aU51bGxhYmxlQ29udHJvbCxcbiAgICBBTFdBWVNfRkFMU0VfSEFORExFUixcbiAgICBpc05hdGl2ZUZvY3VzZWQsXG4gICAgc2V0TmF0aXZlRm9jdXNlZCxcbiAgICBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgVFVJX1NUUklDVF9NQVRDSEVSLFxuICAgIFR1aUJvb2xlYW5IYW5kbGVyLFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICB0dWlQdXJlLFxuICAgIFR1aVRpbWUsXG4gICAgVHVpVGltZUxpa2UsXG4gICAgVHVpVGltZU1vZGUsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQsIFR1aVRleHRNYXNrT3B0aW9uc30gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtGSVhFRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSfSBmcm9tICdAdGFpZ2EtdWkva2l0L3Byb3ZpZGVycyc7XG5pbXBvcnQge1RVSV9USU1FX1RFWFRTfSBmcm9tICdAdGFpZ2EtdWkva2l0L3Rva2Vucyc7XG5pbXBvcnQge1xuICAgIHR1aUNyZWF0ZUF1dG9Db3JyZWN0ZWRUaW1lUGlwZSxcbiAgICB0dWlDcmVhdGVUaW1lTWFzayxcbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC91dGlscy9tYXNrJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge0lucHV0VGltZU9wdGlvbnMsIFRVSV9JTlBVVF9USU1FX09QVElPTlN9IGZyb20gJy4vaW5wdXQtdGltZS1vcHRpb25zJztcblxuLy8gQGR5bmFtaWNcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWlucHV0LXRpbWUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC10aW1lLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2lucHV0LXRpbWUuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUdWlJbnB1dFRpbWVDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgICAgICBGSVhFRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0VGltZUNvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2w8VHVpVGltZT5cbiAgICBpbXBsZW1lbnRzIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBWaWV3Q2hpbGQoVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkPzogVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGRpc2FibGVkSXRlbUhhbmRsZXI6IFR1aUJvb2xlYW5IYW5kbGVyPFR1aVRpbWU+ID0gQUxXQVlTX0ZBTFNFX0hBTkRMRVI7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaXRlbXM6IFJlYWRvbmx5QXJyYXk8VHVpVGltZT4gPSBbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBpdGVtU2l6ZTogSW5wdXRUaW1lT3B0aW9uc1snaXRlbVNpemUnXSA9IHRoaXMub3B0aW9ucy5pdGVtU2l6ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzdHJpY3QgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtb2RlOiBJbnB1dFRpbWVPcHRpb25zWydtb2RlJ10gPSB0aGlzLm9wdGlvbnMubW9kZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBwb3N0Zml4OiBJbnB1dFRpbWVPcHRpb25zWydwb3N0Zml4J10gPSB0aGlzLm9wdGlvbnMucG9zdGZpeDtcblxuICAgIG9wZW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoVFVJX1RJTUVfVEVYVFMpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdGltZVRleHRzJDogT2JzZXJ2YWJsZTxSZWNvcmQ8VHVpVGltZU1vZGUsIHN0cmluZz4+LFxuICAgICAgICBASW5qZWN0KFRVSV9JTlBVVF9USU1FX09QVElPTlMpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogSW5wdXRUaW1lT3B0aW9ucyxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dGZpZWxkID8gdGhpcy50ZXh0ZmllbGQubmF0aXZlRm9jdXNhYmxlRWxlbWVudCA6IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpc05hdGl2ZUZvY3VzZWQodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBnZXQgZmlsdGVyZWQoKTogUmVhZG9ubHlBcnJheTxUdWlUaW1lPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlcih0aGlzLml0ZW1zLCB0aGlzLm1vZGUsIHRoaXMuY29tcHV0ZWRTZWFyY2gpO1xuICAgIH1cblxuICAgIGdldCB0ZXh0TWFza09wdGlvbnMoKTogVHVpVGV4dE1hc2tPcHRpb25zIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsY3VsYXRlTWFzayh0aGlzLm1vZGUpO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlID8gdGhpcy52YWx1ZS50b1N0cmluZyh0aGlzLm1vZGUpIDogdGhpcy5uYXRpdmVWYWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRTZWFyY2goKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcHV0ZWRWYWx1ZS5sZW5ndGggIT09IHRoaXMubW9kZS5sZW5ndGggPyB0aGlzLmNvbXB1dGVkVmFsdWUgOiAnJztcbiAgICB9XG5cbiAgICBnZXQgaW5uZXJQc2V1ZG9Gb2N1c2VkKCk6IGJvb2xlYW4gfCBudWxsIHtcbiAgICAgICAgaWYgKHRoaXMucHNldWRvRm9jdXNlZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm9wZW4gfHwgdGhpcy5jb21wdXRlZEZvY3VzZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGljb24oKTogSW5wdXRUaW1lT3B0aW9uc1snaWNvbiddIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5pY29uO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50ID8gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LnZhbHVlIDogJyc7XG4gICAgfVxuXG4gICAgc2V0IG5hdGl2ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC52YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgZ2V0RmlsbGVyJChtb2RlOiBUdWlUaW1lTW9kZSk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRpbWVUZXh0cyQucGlwZShtYXAodGV4dHMgPT4gdGV4dHNbbW9kZV0pKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gICAgb25DbGljaygpIHtcbiAgICAgICAgdGhpcy5vcGVuID0gIXRoaXMub3BlbjtcbiAgICB9XG5cbiAgICBvblZhbHVlQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5vcGVuID0gISF0aGlzLml0ZW1zLmxlbmd0aDtcblxuICAgICAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbWF0Y2ggPSB0aGlzLmdldE1hdGNoKHZhbHVlKTtcblxuICAgICAgICBpZiAobWF0Y2ggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShtYXRjaCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWx1ZS5sZW5ndGggIT09IHRoaXMubW9kZS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUobnVsbCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRpbWUgPSBUdWlUaW1lLmZyb21TdHJpbmcodmFsdWUpO1xuXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy5zdHJpY3QgPyB0aGlzLmZpbmROZWFyZXN0VGltZUZyb21JdGVtcyh0aW1lKSA6IHRpbWUpO1xuICAgIH1cblxuICAgIG9uRm9jdXNlZChmb2N1c2VkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChmb2N1c2VkKTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBmb2N1c2VkIHx8XG4gICAgICAgICAgICB0aGlzLnZhbHVlICE9PSBudWxsIHx8XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlID09PSAnJyB8fFxuICAgICAgICAgICAgdGhpcy5tb2RlID09PSAnSEg6TU0nXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFyc2VkVGltZSA9IFR1aVRpbWUuZnJvbVN0cmluZyh0aGlzLm5hdGl2ZVZhbHVlKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHBhcnNlZFRpbWUpO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMubmF0aXZlVmFsdWUuZW5kc1dpdGgoJy4nKSB8fCB0aGlzLm5hdGl2ZVZhbHVlLmVuZHNXaXRoKCc6JykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gdGhpcy5uYXRpdmVWYWx1ZS5zbGljZSgwLCAtMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uSG92ZXJlZChob3ZlcmVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlSG92ZXJlZChob3ZlcmVkKTtcbiAgICB9XG5cbiAgICBvbkFycm93VXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuaXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnByb2Nlc3NBcnJvdyhldmVudCwgMSk7XG4gICAgfVxuXG4gICAgb25BcnJvd0Rvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuaXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnByb2Nlc3NBcnJvdyhldmVudCwgLTEpO1xuICAgIH1cblxuICAgIG9uTWVudUNsaWNrKGl0ZW06IFR1aVRpbWUpIHtcbiAgICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoaXRlbSk7XG4gICAgfVxuXG4gICAgb25PcGVuKG9wZW46IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5vcGVuID0gb3BlbjtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBUdWlUaW1lIHwgbnVsbCkge1xuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9IHZhbHVlID8gdGhpcy5jb21wdXRlZFZhbHVlIDogJyc7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGNhbGN1bGF0ZU1hc2sobW9kZTogVHVpVGltZU1vZGUpOiBUdWlUZXh0TWFza09wdGlvbnMge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWFzazogdHVpQ3JlYXRlVGltZU1hc2sobW9kZSwgdGhpcy5vcHRpb25zLm1heFZhbHVlcyksXG4gICAgICAgICAgICBwaXBlOiB0dWlDcmVhdGVBdXRvQ29ycmVjdGVkVGltZVBpcGUobW9kZSwgdGhpcy5vcHRpb25zLm1heFZhbHVlcyksXG4gICAgICAgICAgICBndWlkZTogZmFsc2UsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGZpbHRlcihcbiAgICAgICAgaXRlbXM6IFJlYWRvbmx5QXJyYXk8VHVpVGltZT4sXG4gICAgICAgIG1vZGU6IFR1aVRpbWVNb2RlLFxuICAgICAgICBzZWFyY2g6IHN0cmluZyxcbiAgICApOiBSZWFkb25seUFycmF5PFR1aVRpbWU+IHtcbiAgICAgICAgcmV0dXJuIGl0ZW1zLmZpbHRlcihpdGVtID0+IGl0ZW0udG9TdHJpbmcobW9kZSkuaW5jbHVkZXMoc2VhcmNoKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaW5kTmVhcmVzdFRpbWVGcm9tSXRlbXModmFsdWU6IFR1aVRpbWUpOiBUdWlUaW1lIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLml0ZW1zLnJlZHVjZSgocHJldmlvdXMsIGN1cnJlbnQpID0+XG4gICAgICAgICAgICBNYXRoLmFicyhjdXJyZW50LnRvQWJzb2x1dGVNaWxsaXNlY29uZHMoKSAtIHZhbHVlLnRvQWJzb2x1dGVNaWxsaXNlY29uZHMoKSkgPFxuICAgICAgICAgICAgTWF0aC5hYnMocHJldmlvdXMudG9BYnNvbHV0ZU1pbGxpc2Vjb25kcygpIC0gdmFsdWUudG9BYnNvbHV0ZU1pbGxpc2Vjb25kcygpKVxuICAgICAgICAgICAgICAgID8gY3VycmVudFxuICAgICAgICAgICAgICAgIDogcHJldmlvdXMsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRNYXRjaCh2YWx1ZTogc3RyaW5nKTogVHVpVGltZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbmQoaXRlbSA9PiBUVUlfU1RSSUNUX01BVENIRVIoaXRlbSwgdmFsdWUpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlKCkge1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3NBcnJvdyhldmVudDogS2V5Ym9hcmRFdmVudCwgc2hpZnQ6IC0xIHwgMSkge1xuICAgICAgICBjb25zdCB7dGFyZ2V0fSA9IGV2ZW50O1xuXG4gICAgICAgIC8vIFRPRE86IGlmcmFtZSB3YXJuaW5nXG4gICAgICAgIGlmICh0aGlzLnJlYWRPbmx5IHx8ICEodGFyZ2V0IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNlbGVjdGlvblN0YXJ0ID0gdGFyZ2V0LnNlbGVjdGlvblN0YXJ0IHx8IDA7XG5cbiAgICAgICAgdGhpcy5zaGlmdFRpbWUodGhpcy5jYWxjdWxhdGVTaGlmdChzZWxlY3Rpb25TdGFydCwgc2hpZnQpKTtcblxuICAgICAgICB0YXJnZXQuc2V0U2VsZWN0aW9uUmFuZ2Uoc2VsZWN0aW9uU3RhcnQsIHNlbGVjdGlvblN0YXJ0KTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbGN1bGF0ZVNoaWZ0KHNlbGVjdGlvblN0YXJ0OiBudW1iZXIsIHNoaWZ0OiBudW1iZXIpOiBUdWlUaW1lTGlrZSB7XG4gICAgICAgIGlmIChzZWxlY3Rpb25TdGFydCA8PSAyKSB7XG4gICAgICAgICAgICByZXR1cm4ge2hvdXJzOiBzaGlmdH07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2VsZWN0aW9uU3RhcnQgPD0gNSkge1xuICAgICAgICAgICAgcmV0dXJuIHttaW51dGVzOiBzaGlmdH07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2VsZWN0aW9uU3RhcnQgPD0gOCkge1xuICAgICAgICAgICAgcmV0dXJuIHtzZWNvbmRzOiBzaGlmdH07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge21zOiBzaGlmdH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzaGlmdFRpbWUoc2hpZnQ6IFR1aVRpbWVMaWtlKSB7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpbmNyZWFzZWRUaW1lID0gdGhpcy52YWx1ZS5zaGlmdChzaGlmdCk7XG5cbiAgICAgICAgLy8gTWFudWFsIHVwZGF0ZSBzbyB3ZSBjYW4gc2V0IGNhcmV0IHBvc2l0aW9uIHByb3Blcmx5XG4gICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSBpbmNyZWFzZWRUaW1lLnRvU3RyaW5nKHRoaXMubW9kZSk7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoaW5jcmVhc2VkVGltZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1c0lucHV0KHByZXZlbnRTY3JvbGw6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICBzZXROYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCwgdHJ1ZSwgcHJldmVudFNjcm9sbCk7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
303
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGltZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtdGltZS8iLCJzb3VyY2VzIjpbImlucHV0LXRpbWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsMEJBQTBCLEVBQzFCLG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLDJCQUEyQixFQUMzQixrQkFBa0IsRUFFbEIsY0FBYyxFQUVkLE9BQU8sRUFDUCxPQUFPLEdBR1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLDhCQUE4QixFQUFxQixNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBQyxrQ0FBa0MsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzNFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQ0gsOEJBQThCLEVBQzlCLGlCQUFpQixHQUNwQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLE9BQU8sRUFBQyxzQkFBc0IsRUFBc0IsTUFBTSxzQkFBc0IsQ0FBQztBQUVqRixXQUFXO0FBY1g7SUFDWSx5Q0FBbUM7SUFnQzNDLCtCQUlJLE9BQXlCLEVBQ0UsaUJBQW9DLEVBRTlDLFVBQW1ELEVBRW5ELE9BQTRCO1FBVGpELFlBV0ksa0JB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QUlsRTtRQUZDLEtBQUssRUFBRTtRQUNQLGNBQWMsRUFBRTt5REFDRjtJQUlmO1FBRkMsS0FBSyxFQUFFO1FBQ1AsY0FBYyxFQUFFO3VEQUNxQztJQUl0RDtRQUZDLEtBQUssRUFBRTtRQUNQLGNBQWMsRUFBRTswREFDOEM7SUF1RS9EO1FBREMsT0FBTzsyREFHUDtJQUdEO1FBREMsWUFBWSxDQUFDLE9BQU8sQ0FBQzt3REFHckI7SUFzRkQ7UUFEQyxPQUFPOzhEQU9QO0lBR0Q7UUFEQyxPQUFPO3VEQU9QO0lBaE5RLHFCQUFxQjtRQWJqQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLHVuREFBeUM7WUFFekMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07WUFDL0MsU0FBUyxFQUFFO2dCQUNQO29CQUNJLE9BQU8sRUFBRSwyQkFBMkI7b0JBQ3BDLFdBQVcsRUFBRSxVQUFVLENBQUMsY0FBTSxPQUFBLHVCQUFxQixFQUFyQixDQUFxQixDQUFDO2lCQUN2RDtnQkFDRCxrQ0FBa0M7YUFDckM7O1NBQ0osQ0FBQztRQW1DTyxXQUFBLFFBQVEsRUFBRSxDQUFBO1FBQ1YsV0FBQSxJQUFJLEVBQUUsQ0FBQTtRQUNOLFdBQUEsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBRWpCLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFDekIsV0FBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7UUFFdEIsV0FBQSxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtPQXpDMUIscUJBQXFCLENBcVJqQztJQUFELDRCQUFDO0NBQUEsQUFyUkQsQ0FDWSwwQkFBMEIsR0FvUnJDO1NBclJZLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aU51bGxhYmxlQ29udHJvbCxcbiAgICBBTFdBWVNfRkFMU0VfSEFORExFUixcbiAgICBpc05hdGl2ZUZvY3VzZWQsXG4gICAgc2V0TmF0aXZlRm9jdXNlZCxcbiAgICBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgVFVJX1NUUklDVF9NQVRDSEVSLFxuICAgIFR1aUJvb2xlYW5IYW5kbGVyLFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICB0dWlQdXJlLFxuICAgIFR1aVRpbWUsXG4gICAgVHVpVGltZUxpa2UsXG4gICAgVHVpVGltZU1vZGUsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQsIFR1aVRleHRNYXNrT3B0aW9uc30gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtGSVhFRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSfSBmcm9tICdAdGFpZ2EtdWkva2l0L3Byb3ZpZGVycyc7XG5pbXBvcnQge1RVSV9USU1FX1RFWFRTfSBmcm9tICdAdGFpZ2EtdWkva2l0L3Rva2Vucyc7XG5pbXBvcnQge1xuICAgIHR1aUNyZWF0ZUF1dG9Db3JyZWN0ZWRUaW1lUGlwZSxcbiAgICB0dWlDcmVhdGVUaW1lTWFzayxcbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC91dGlscy9tYXNrJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1RVSV9JTlBVVF9USU1FX09QVElPTlMsIFR1aUlucHV0VGltZU9wdGlvbnN9IGZyb20gJy4vaW5wdXQtdGltZS1vcHRpb25zJztcblxuLy8gQGR5bmFtaWNcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWlucHV0LXRpbWUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC10aW1lLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2lucHV0LXRpbWUuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUdWlJbnB1dFRpbWVDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgICAgICBGSVhFRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0VGltZUNvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2w8VHVpVGltZT5cbiAgICBpbXBsZW1lbnRzIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBWaWV3Q2hpbGQoVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkPzogVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGRpc2FibGVkSXRlbUhhbmRsZXI6IFR1aUJvb2xlYW5IYW5kbGVyPFR1aVRpbWU+ID0gQUxXQVlTX0ZBTFNFX0hBTkRMRVI7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaXRlbXM6IFJlYWRvbmx5QXJyYXk8VHVpVGltZT4gPSBbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBpdGVtU2l6ZTogVHVpSW5wdXRUaW1lT3B0aW9uc1snaXRlbVNpemUnXSA9IHRoaXMub3B0aW9ucy5pdGVtU2l6ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzdHJpY3QgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtb2RlOiBUdWlJbnB1dFRpbWVPcHRpb25zWydtb2RlJ10gPSB0aGlzLm9wdGlvbnMubW9kZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBwb3N0Zml4OiBUdWlJbnB1dFRpbWVPcHRpb25zWydwb3N0Zml4J10gPSB0aGlzLm9wdGlvbnMucG9zdGZpeDtcblxuICAgIG9wZW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoVFVJX1RJTUVfVEVYVFMpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdGltZVRleHRzJDogT2JzZXJ2YWJsZTxSZWNvcmQ8VHVpVGltZU1vZGUsIHN0cmluZz4+LFxuICAgICAgICBASW5qZWN0KFRVSV9JTlBVVF9USU1FX09QVElPTlMpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogVHVpSW5wdXRUaW1lT3B0aW9ucyxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dGZpZWxkID8gdGhpcy50ZXh0ZmllbGQubmF0aXZlRm9jdXNhYmxlRWxlbWVudCA6IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpc05hdGl2ZUZvY3VzZWQodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBnZXQgZmlsdGVyZWQoKTogUmVhZG9ubHlBcnJheTxUdWlUaW1lPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlcih0aGlzLml0ZW1zLCB0aGlzLm1vZGUsIHRoaXMuY29tcHV0ZWRTZWFyY2gpO1xuICAgIH1cblxuICAgIGdldCB0ZXh0TWFza09wdGlvbnMoKTogVHVpVGV4dE1hc2tPcHRpb25zIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsY3VsYXRlTWFzayh0aGlzLm1vZGUpO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlID8gdGhpcy52YWx1ZS50b1N0cmluZyh0aGlzLm1vZGUpIDogdGhpcy5uYXRpdmVWYWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRTZWFyY2goKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcHV0ZWRWYWx1ZS5sZW5ndGggIT09IHRoaXMubW9kZS5sZW5ndGggPyB0aGlzLmNvbXB1dGVkVmFsdWUgOiAnJztcbiAgICB9XG5cbiAgICBnZXQgaW5uZXJQc2V1ZG9Gb2N1c2VkKCk6IGJvb2xlYW4gfCBudWxsIHtcbiAgICAgICAgaWYgKHRoaXMucHNldWRvRm9jdXNlZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm9wZW4gfHwgdGhpcy5jb21wdXRlZEZvY3VzZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGljb24oKTogVHVpSW5wdXRUaW1lT3B0aW9uc1snaWNvbiddIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5pY29uO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50ID8gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LnZhbHVlIDogJyc7XG4gICAgfVxuXG4gICAgc2V0IG5hdGl2ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC52YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgZ2V0RmlsbGVyJChtb2RlOiBUdWlUaW1lTW9kZSk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRpbWVUZXh0cyQucGlwZShtYXAodGV4dHMgPT4gdGV4dHNbbW9kZV0pKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gICAgb25DbGljaygpIHtcbiAgICAgICAgdGhpcy5vcGVuID0gIXRoaXMub3BlbjtcbiAgICB9XG5cbiAgICBvblZhbHVlQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5vcGVuID0gISF0aGlzLml0ZW1zLmxlbmd0aDtcblxuICAgICAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbWF0Y2ggPSB0aGlzLmdldE1hdGNoKHZhbHVlKTtcblxuICAgICAgICBpZiAobWF0Y2ggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShtYXRjaCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWx1ZS5sZW5ndGggIT09IHRoaXMubW9kZS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUobnVsbCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRpbWUgPSBUdWlUaW1lLmZyb21TdHJpbmcodmFsdWUpO1xuXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy5zdHJpY3QgPyB0aGlzLmZpbmROZWFyZXN0VGltZUZyb21JdGVtcyh0aW1lKSA6IHRpbWUpO1xuICAgIH1cblxuICAgIG9uRm9jdXNlZChmb2N1c2VkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChmb2N1c2VkKTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBmb2N1c2VkIHx8XG4gICAgICAgICAgICB0aGlzLnZhbHVlICE9PSBudWxsIHx8XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlID09PSAnJyB8fFxuICAgICAgICAgICAgdGhpcy5tb2RlID09PSAnSEg6TU0nXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFyc2VkVGltZSA9IFR1aVRpbWUuZnJvbVN0cmluZyh0aGlzLm5hdGl2ZVZhbHVlKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHBhcnNlZFRpbWUpO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMubmF0aXZlVmFsdWUuZW5kc1dpdGgoJy4nKSB8fCB0aGlzLm5hdGl2ZVZhbHVlLmVuZHNXaXRoKCc6JykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gdGhpcy5uYXRpdmVWYWx1ZS5zbGljZSgwLCAtMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uSG92ZXJlZChob3ZlcmVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlSG92ZXJlZChob3ZlcmVkKTtcbiAgICB9XG5cbiAgICBvbkFycm93VXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuaXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnByb2Nlc3NBcnJvdyhldmVudCwgMSk7XG4gICAgfVxuXG4gICAgb25BcnJvd0Rvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuaXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnByb2Nlc3NBcnJvdyhldmVudCwgLTEpO1xuICAgIH1cblxuICAgIG9uTWVudUNsaWNrKGl0ZW06IFR1aVRpbWUpIHtcbiAgICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoaXRlbSk7XG4gICAgfVxuXG4gICAgb25PcGVuKG9wZW46IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5vcGVuID0gb3BlbjtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBUdWlUaW1lIHwgbnVsbCkge1xuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9IHZhbHVlID8gdGhpcy5jb21wdXRlZFZhbHVlIDogJyc7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGNhbGN1bGF0ZU1hc2sobW9kZTogVHVpVGltZU1vZGUpOiBUdWlUZXh0TWFza09wdGlvbnMge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWFzazogdHVpQ3JlYXRlVGltZU1hc2sobW9kZSwgdGhpcy5vcHRpb25zLm1heFZhbHVlcyksXG4gICAgICAgICAgICBwaXBlOiB0dWlDcmVhdGVBdXRvQ29ycmVjdGVkVGltZVBpcGUobW9kZSwgdGhpcy5vcHRpb25zLm1heFZhbHVlcyksXG4gICAgICAgICAgICBndWlkZTogZmFsc2UsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGZpbHRlcihcbiAgICAgICAgaXRlbXM6IFJlYWRvbmx5QXJyYXk8VHVpVGltZT4sXG4gICAgICAgIG1vZGU6IFR1aVRpbWVNb2RlLFxuICAgICAgICBzZWFyY2g6IHN0cmluZyxcbiAgICApOiBSZWFkb25seUFycmF5PFR1aVRpbWU+IHtcbiAgICAgICAgcmV0dXJuIGl0ZW1zLmZpbHRlcihpdGVtID0+IGl0ZW0udG9TdHJpbmcobW9kZSkuaW5jbHVkZXMoc2VhcmNoKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaW5kTmVhcmVzdFRpbWVGcm9tSXRlbXModmFsdWU6IFR1aVRpbWUpOiBUdWlUaW1lIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLml0ZW1zLnJlZHVjZSgocHJldmlvdXMsIGN1cnJlbnQpID0+XG4gICAgICAgICAgICBNYXRoLmFicyhjdXJyZW50LnRvQWJzb2x1dGVNaWxsaXNlY29uZHMoKSAtIHZhbHVlLnRvQWJzb2x1dGVNaWxsaXNlY29uZHMoKSkgPFxuICAgICAgICAgICAgTWF0aC5hYnMocHJldmlvdXMudG9BYnNvbHV0ZU1pbGxpc2Vjb25kcygpIC0gdmFsdWUudG9BYnNvbHV0ZU1pbGxpc2Vjb25kcygpKVxuICAgICAgICAgICAgICAgID8gY3VycmVudFxuICAgICAgICAgICAgICAgIDogcHJldmlvdXMsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRNYXRjaCh2YWx1ZTogc3RyaW5nKTogVHVpVGltZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbmQoaXRlbSA9PiBUVUlfU1RSSUNUX01BVENIRVIoaXRlbSwgdmFsdWUpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlKCkge1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3NBcnJvdyhldmVudDogS2V5Ym9hcmRFdmVudCwgc2hpZnQ6IC0xIHwgMSkge1xuICAgICAgICBjb25zdCB7dGFyZ2V0fSA9IGV2ZW50O1xuXG4gICAgICAgIC8vIFRPRE86IGlmcmFtZSB3YXJuaW5nXG4gICAgICAgIGlmICh0aGlzLnJlYWRPbmx5IHx8ICEodGFyZ2V0IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNlbGVjdGlvblN0YXJ0ID0gdGFyZ2V0LnNlbGVjdGlvblN0YXJ0IHx8IDA7XG5cbiAgICAgICAgdGhpcy5zaGlmdFRpbWUodGhpcy5jYWxjdWxhdGVTaGlmdChzZWxlY3Rpb25TdGFydCwgc2hpZnQpKTtcblxuICAgICAgICB0YXJnZXQuc2V0U2VsZWN0aW9uUmFuZ2Uoc2VsZWN0aW9uU3RhcnQsIHNlbGVjdGlvblN0YXJ0KTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbGN1bGF0ZVNoaWZ0KHNlbGVjdGlvblN0YXJ0OiBudW1iZXIsIHNoaWZ0OiBudW1iZXIpOiBUdWlUaW1lTGlrZSB7XG4gICAgICAgIGlmIChzZWxlY3Rpb25TdGFydCA8PSAyKSB7XG4gICAgICAgICAgICByZXR1cm4ge2hvdXJzOiBzaGlmdH07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2VsZWN0aW9uU3RhcnQgPD0gNSkge1xuICAgICAgICAgICAgcmV0dXJuIHttaW51dGVzOiBzaGlmdH07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2VsZWN0aW9uU3RhcnQgPD0gOCkge1xuICAgICAgICAgICAgcmV0dXJuIHtzZWNvbmRzOiBzaGlmdH07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge21zOiBzaGlmdH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzaGlmdFRpbWUoc2hpZnQ6IFR1aVRpbWVMaWtlKSB7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpbmNyZWFzZWRUaW1lID0gdGhpcy52YWx1ZS5zaGlmdChzaGlmdCk7XG5cbiAgICAgICAgLy8gTWFudWFsIHVwZGF0ZSBzbyB3ZSBjYW4gc2V0IGNhcmV0IHBvc2l0aW9uIHByb3Blcmx5XG4gICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSBpbmNyZWFzZWRUaW1lLnRvU3RyaW5nKHRoaXMubW9kZSk7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoaW5jcmVhc2VkVGltZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1c0lucHV0KHByZXZlbnRTY3JvbGw6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICBzZXROYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCwgdHJ1ZSwgcHJldmVudFNjcm9sbCk7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -33,7 +33,7 @@ var TuiMarkerIconComponent = /** @class */ (function () {
33
33
  ], TuiMarkerIconComponent.prototype, "mode", void 0);
34
34
  __decorate([
35
35
  Input(),
36
- HostBinding('attr.data-tui-host-size'),
36
+ HostBinding('attr.data-size'),
37
37
  tuiDefaultProp()
38
38
  ], TuiMarkerIconComponent.prototype, "size", void 0);
39
39
  __decorate([
@@ -49,7 +49,7 @@ var TuiMarkerIconComponent = /** @class */ (function () {
49
49
  template: "<tui-svg class=\"icon\" [src]=\"src\"></tui-svg>\n",
50
50
  changeDetection: ChangeDetectionStrategy.OnPush,
51
51
  providers: [TuiDestroyService, MODE_PROVIDER],
52
- styles: [":host{transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:100%;color:var(--tui-text-03);background-color:var(--tui-base-02);background-size:cover!important;transition-property:color,background-color}:host[data-tui-host-size=xs]{width:2rem;height:2rem}:host[data-tui-host-size='s']{width:3rem;height:3rem}:host[data-tui-host-size='m']{width:4rem;height:4rem}:host[data-tui-host-size='l']{width:6rem;height:6rem}:host[data-tui-host-size=xl]{width:8rem;height:8rem}:host[data-mode=primary]{color:var(--tui-primary-text);background-color:var(--tui-primary)}:host[data-mode=white]{color:var(--tui-text-03);background-color:var(--tui-base-01)}:host[data-mode=warning]{color:var(--tui-warning-fill);background-color:var(--tui-warning-bg)}:host[data-mode=secondary]{color:var(--tui-base-01);background-color:var(--tui-info-fill)}:host[data-mode=error]{color:var(--tui-error-fill);background-color:var(--tui-error-bg)}:host[data-mode=success]{color:var(--tui-success-fill);background-color:var(--tui-success-bg)}:host[data-mode=onDark]{color:var(--tui-base-01);background-color:var(--tui-clear-inverse)}:host[data-mode=link]{transition-property:color;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;cursor:pointer;color:var(--tui-link);background-color:var(--tui-secondary)}:host[data-mode=link]:hover{color:var(--tui-link-hover);background-color:var(--tui-secondary-hover)}:host[data-mode=link]:active{color:var(--tui-link-hover);background-color:var(--tui-secondary-active)}.icon{width:3rem;height:3rem}:host[data-tui-host-size=xs] .icon{transform:scale(.667)}:host[data-tui-host-size='m'] .icon{transform:scale(1.333)}:host[data-tui-host-size='l'] .icon{transform:scale(2)}:host[data-tui-host-size=xl] .icon{transform:scale(2.667)}"]
52
+ styles: [":host{transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:100%;color:var(--tui-text-03);background-color:var(--tui-base-02);background-size:cover!important;transition-property:color,background-color}:host[data-size=xs]{width:2rem;height:2rem}:host[data-size='s']{width:3rem;height:3rem}:host[data-size='m']{width:4rem;height:4rem}:host[data-size='l']{width:6rem;height:6rem}:host[data-size=xl]{width:8rem;height:8rem}:host[data-mode=primary]{color:var(--tui-primary-text);background-color:var(--tui-primary)}:host[data-mode=white]{color:var(--tui-text-03);background-color:var(--tui-base-01)}:host[data-mode=warning]{color:var(--tui-warning-fill);background-color:var(--tui-warning-bg)}:host[data-mode=secondary]{color:var(--tui-base-01);background-color:var(--tui-info-fill)}:host[data-mode=error]{color:var(--tui-error-fill);background-color:var(--tui-error-bg)}:host[data-mode=success]{color:var(--tui-success-fill);background-color:var(--tui-success-bg)}:host[data-mode=onDark]{color:var(--tui-base-01);background-color:var(--tui-clear-inverse)}:host[data-mode=link]{transition-property:color;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;cursor:pointer;color:var(--tui-link);background-color:var(--tui-secondary)}:host[data-mode=link]:hover{color:var(--tui-link-hover);background-color:var(--tui-secondary-hover)}:host[data-mode=link]:active{color:var(--tui-link-hover);background-color:var(--tui-secondary-active)}.icon{width:3rem;height:3rem}:host[data-size=xs] .icon{transform:scale(.667)}:host[data-size='m'] .icon{transform:scale(1.333)}:host[data-size='l'] .icon{transform:scale(2)}:host[data-size=xl] .icon{transform:scale(2.667)}"]
53
53
  }),
54
54
  __param(0, Inject(TuiDestroyService)),
55
55
  __param(1, Inject(TUI_MODE))
@@ -57,4 +57,4 @@ var TuiMarkerIconComponent = /** @class */ (function () {
57
57
  return TuiMarkerIconComponent;
58
58
  }());
59
59
  export { TuiMarkerIconComponent };
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2VyLWljb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL21hcmtlci1pY29uLyIsInNvdXJjZXMiOlsibWFya2VyLWljb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssR0FDUixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsY0FBYyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFDSCxhQUFhLEVBQ2IsUUFBUSxHQUlYLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNoQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFTekM7SUFnQkksZ0NBQytCLFFBQTZCLEVBQ3RDLEtBQXVDO1FBRjdELGlCQU9DO1FBdEJPLGVBQVUsR0FBeUIsSUFBSSxDQUFDO1FBSWhELFNBQUksR0FBOEIsSUFBSSxDQUFDO1FBS3ZDLFNBQUksR0FBMEIsR0FBRyxDQUFDO1FBSWxDLFFBQUcsR0FBRyxFQUFFLENBQUM7UUFNTCxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxVQUFBLElBQUk7WUFDMUMsS0FBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBSUQsc0JBQUksZ0RBQVk7UUFGaEIsaUJBQWlCO2FBRWpCO1lBQ0ksT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUM3RSxDQUFDOzs7T0FBQTs7Z0JBWndDLFVBQVUsdUJBQTlDLE1BQU0sU0FBQyxpQkFBaUI7Z0JBQ0EsVUFBVSx1QkFBbEMsTUFBTSxTQUFDLFFBQVE7O0lBYnBCO1FBRkMsS0FBSyxFQUFFO1FBQ1AsY0FBYyxFQUFFO3dEQUNzQjtJQUt2QztRQUhDLEtBQUssRUFBRTtRQUNQLFdBQVcsQ0FBQyx5QkFBeUIsQ0FBQztRQUN0QyxjQUFjLEVBQUU7d0RBQ2lCO0lBSWxDO1FBRkMsS0FBSyxFQUFFO1FBQ1AsY0FBYyxFQUFFO3VEQUNSO0lBYVQ7UUFEQyxXQUFXLENBQUMsZ0JBQWdCLENBQUM7OERBRzdCO0lBN0JRLHNCQUFzQjtRQVBsQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsaUJBQWlCO1lBQzNCLDhEQUEwQztZQUUxQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtZQUMvQyxTQUFTLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxhQUFhLENBQUM7O1NBQ2hELENBQUM7UUFrQk8sV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUN6QixXQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtPQWxCWixzQkFBc0IsQ0E4QmxDO0lBQUQsNkJBQUM7Q0FBQSxBQTlCRCxJQThCQztTQTlCWSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0dWlEZWZhdWx0UHJvcCwgVHVpRGVzdHJveVNlcnZpY2V9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBNT0RFX1BST1ZJREVSLFxuICAgIFRVSV9NT0RFLFxuICAgIFR1aUJyaWdodG5lc3MsXG4gICAgVHVpU2l6ZVhMLFxuICAgIFR1aVNpemVYUyxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUdWlNYXJrZXJJY29uTW9kZVR9IGZyb20gJ0B0YWlnYS11aS9raXQvdHlwZXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7dGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLW1hcmtlci1pY29uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWFya2VyLWljb24udGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbWFya2VyLWljb24uc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1R1aURlc3Ryb3lTZXJ2aWNlLCBNT0RFX1BST1ZJREVSXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpTWFya2VySWNvbkNvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSBnbG9iYWxNb2RlOiBUdWlCcmlnaHRuZXNzIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbW9kZTogVHVpTWFya2VySWNvbk1vZGVUIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXR1aS1ob3N0LXNpemUnKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc2l6ZTogVHVpU2l6ZVhTIHwgVHVpU2l6ZVhMID0gJ20nO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHNyYyA9ICcnO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVHVpRGVzdHJveVNlcnZpY2UpIGRlc3Ryb3kkOiBPYnNlcnZhYmxlPHVua25vd24+LFxuICAgICAgICBASW5qZWN0KFRVSV9NT0RFKSBtb2RlJDogT2JzZXJ2YWJsZTxUdWlCcmlnaHRuZXNzIHwgbnVsbD4sXG4gICAgKSB7XG4gICAgICAgIG1vZGUkLnBpcGUodGFrZVVudGlsKGRlc3Ryb3kkKSkuc3Vic2NyaWJlKG1vZGUgPT4ge1xuICAgICAgICAgICAgdGhpcy5nbG9iYWxNb2RlID0gbW9kZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogU2ltcGxpZnlcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1tb2RlJylcbiAgICBnZXQgY29tcHV0ZWRNb2RlKCk6IFR1aU1hcmtlckljb25Nb2RlVCB8ICdvbkRhcmsnIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmdsb2JhbE1vZGUgPT09ICdvbkRhcmsnICYmICF0aGlzLm1vZGUgPyAnb25EYXJrJyA6IHRoaXMubW9kZTtcbiAgICB9XG59XG4iXX0=
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2VyLWljb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL21hcmtlci1pY29uLyIsInNvdXJjZXMiOlsibWFya2VyLWljb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssR0FDUixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsY0FBYyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFDSCxhQUFhLEVBQ2IsUUFBUSxHQUlYLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNoQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFTekM7SUFnQkksZ0NBQytCLFFBQTZCLEVBQ3RDLEtBQXVDO1FBRjdELGlCQU9DO1FBdEJPLGVBQVUsR0FBeUIsSUFBSSxDQUFDO1FBSWhELFNBQUksR0FBOEIsSUFBSSxDQUFDO1FBS3ZDLFNBQUksR0FBMEIsR0FBRyxDQUFDO1FBSWxDLFFBQUcsR0FBRyxFQUFFLENBQUM7UUFNTCxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxVQUFBLElBQUk7WUFDMUMsS0FBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBSUQsc0JBQUksZ0RBQVk7UUFGaEIsaUJBQWlCO2FBRWpCO1lBQ0ksT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUM3RSxDQUFDOzs7T0FBQTs7Z0JBWndDLFVBQVUsdUJBQTlDLE1BQU0sU0FBQyxpQkFBaUI7Z0JBQ0EsVUFBVSx1QkFBbEMsTUFBTSxTQUFDLFFBQVE7O0lBYnBCO1FBRkMsS0FBSyxFQUFFO1FBQ1AsY0FBYyxFQUFFO3dEQUNzQjtJQUt2QztRQUhDLEtBQUssRUFBRTtRQUNQLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQztRQUM3QixjQUFjLEVBQUU7d0RBQ2lCO0lBSWxDO1FBRkMsS0FBSyxFQUFFO1FBQ1AsY0FBYyxFQUFFO3VEQUNSO0lBYVQ7UUFEQyxXQUFXLENBQUMsZ0JBQWdCLENBQUM7OERBRzdCO0lBN0JRLHNCQUFzQjtRQVBsQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsaUJBQWlCO1lBQzNCLDhEQUEwQztZQUUxQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtZQUMvQyxTQUFTLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxhQUFhLENBQUM7O1NBQ2hELENBQUM7UUFrQk8sV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUN6QixXQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtPQWxCWixzQkFBc0IsQ0E4QmxDO0lBQUQsNkJBQUM7Q0FBQSxBQTlCRCxJQThCQztTQTlCWSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0dWlEZWZhdWx0UHJvcCwgVHVpRGVzdHJveVNlcnZpY2V9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBNT0RFX1BST1ZJREVSLFxuICAgIFRVSV9NT0RFLFxuICAgIFR1aUJyaWdodG5lc3MsXG4gICAgVHVpU2l6ZVhMLFxuICAgIFR1aVNpemVYUyxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUdWlNYXJrZXJJY29uTW9kZVR9IGZyb20gJ0B0YWlnYS11aS9raXQvdHlwZXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7dGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLW1hcmtlci1pY29uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWFya2VyLWljb24udGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbWFya2VyLWljb24uc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1R1aURlc3Ryb3lTZXJ2aWNlLCBNT0RFX1BST1ZJREVSXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpTWFya2VySWNvbkNvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSBnbG9iYWxNb2RlOiBUdWlCcmlnaHRuZXNzIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbW9kZTogVHVpTWFya2VySWNvbk1vZGVUIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXNpemUnKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc2l6ZTogVHVpU2l6ZVhTIHwgVHVpU2l6ZVhMID0gJ20nO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHNyYyA9ICcnO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVHVpRGVzdHJveVNlcnZpY2UpIGRlc3Ryb3kkOiBPYnNlcnZhYmxlPHVua25vd24+LFxuICAgICAgICBASW5qZWN0KFRVSV9NT0RFKSBtb2RlJDogT2JzZXJ2YWJsZTxUdWlCcmlnaHRuZXNzIHwgbnVsbD4sXG4gICAgKSB7XG4gICAgICAgIG1vZGUkLnBpcGUodGFrZVVudGlsKGRlc3Ryb3kkKSkuc3Vic2NyaWJlKG1vZGUgPT4ge1xuICAgICAgICAgICAgdGhpcy5nbG9iYWxNb2RlID0gbW9kZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogU2ltcGxpZnlcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1tb2RlJylcbiAgICBnZXQgY29tcHV0ZWRNb2RlKCk6IFR1aU1hcmtlckljb25Nb2RlVCB8ICdvbkRhcmsnIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmdsb2JhbE1vZGUgPT09ICdvbkRhcmsnICYmICF0aGlzLm1vZGUgPyAnb25EYXJrJyA6IHRoaXMubW9kZTtcbiAgICB9XG59XG4iXX0=