@taiga-ui/kit 2.40.0 → 2.41.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 (553) hide show
  1. package/abstract/input-slider.d.ts +27 -9
  2. package/abstract/slider/slider.d.ts +3 -6
  3. package/abstract/taiga-ui-kit-abstract.metadata.json +1 -1
  4. package/bundles/taiga-ui-kit-abstract.umd.js +43 -64
  5. package/bundles/taiga-ui-kit-abstract.umd.js.map +1 -1
  6. package/bundles/taiga-ui-kit-abstract.umd.min.js +2 -2
  7. package/bundles/taiga-ui-kit-abstract.umd.min.js.map +1 -1
  8. package/bundles/taiga-ui-kit-components-accordion.umd.js +1 -1
  9. package/bundles/taiga-ui-kit-components-accordion.umd.js.map +1 -1
  10. package/bundles/taiga-ui-kit-components-accordion.umd.min.js +1 -1
  11. package/bundles/taiga-ui-kit-components-accordion.umd.min.js.map +1 -1
  12. package/bundles/taiga-ui-kit-components-action.umd.js +1 -1
  13. package/bundles/taiga-ui-kit-components-action.umd.js.map +1 -1
  14. package/bundles/taiga-ui-kit-components-action.umd.min.js +1 -1
  15. package/bundles/taiga-ui-kit-components-action.umd.min.js.map +1 -1
  16. package/bundles/taiga-ui-kit-components-avatar.umd.js +27 -5
  17. package/bundles/taiga-ui-kit-components-avatar.umd.js.map +1 -1
  18. package/bundles/taiga-ui-kit-components-avatar.umd.min.js +2 -2
  19. package/bundles/taiga-ui-kit-components-avatar.umd.min.js.map +1 -1
  20. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.js +1 -1
  21. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.js.map +1 -1
  22. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.min.js +1 -1
  23. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.min.js.map +1 -1
  24. package/bundles/taiga-ui-kit-components-calendar-month.umd.js +1 -1
  25. package/bundles/taiga-ui-kit-components-calendar-month.umd.js.map +1 -1
  26. package/bundles/taiga-ui-kit-components-calendar-month.umd.min.js +1 -1
  27. package/bundles/taiga-ui-kit-components-calendar-month.umd.min.js.map +1 -1
  28. package/bundles/taiga-ui-kit-components-carousel.umd.js +1 -1
  29. package/bundles/taiga-ui-kit-components-carousel.umd.js.map +1 -1
  30. package/bundles/taiga-ui-kit-components-carousel.umd.min.js +1 -1
  31. package/bundles/taiga-ui-kit-components-carousel.umd.min.js.map +1 -1
  32. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js +1 -1
  33. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js.map +1 -1
  34. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.min.js +1 -1
  35. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.min.js.map +1 -1
  36. package/bundles/taiga-ui-kit-components-checkbox.umd.js +1 -1
  37. package/bundles/taiga-ui-kit-components-checkbox.umd.min.js +1 -1
  38. package/bundles/taiga-ui-kit-components-checkbox.umd.min.js.map +1 -1
  39. package/bundles/taiga-ui-kit-components-combo-box.umd.js +1 -1
  40. package/bundles/taiga-ui-kit-components-combo-box.umd.js.map +1 -1
  41. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js +1 -1
  42. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js.map +1 -1
  43. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js +2 -2
  44. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js.map +1 -1
  45. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.min.js +1 -1
  46. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.min.js.map +1 -1
  47. package/bundles/taiga-ui-kit-components-files.umd.js +3 -3
  48. package/bundles/taiga-ui-kit-components-files.umd.js.map +1 -1
  49. package/bundles/taiga-ui-kit-components-files.umd.min.js +1 -1
  50. package/bundles/taiga-ui-kit-components-files.umd.min.js.map +1 -1
  51. package/bundles/taiga-ui-kit-components-filter.umd.js +1 -1
  52. package/bundles/taiga-ui-kit-components-filter.umd.js.map +1 -1
  53. package/bundles/taiga-ui-kit-components-filter.umd.min.js +1 -1
  54. package/bundles/taiga-ui-kit-components-filter.umd.min.js.map +1 -1
  55. package/bundles/taiga-ui-kit-components-input-copy.umd.js +1 -1
  56. package/bundles/taiga-ui-kit-components-input-copy.umd.js.map +1 -1
  57. package/bundles/taiga-ui-kit-components-input-copy.umd.min.js +1 -1
  58. package/bundles/taiga-ui-kit-components-input-copy.umd.min.js.map +1 -1
  59. package/bundles/taiga-ui-kit-components-input-count.umd.js +1 -1
  60. package/bundles/taiga-ui-kit-components-input-count.umd.js.map +1 -1
  61. package/bundles/taiga-ui-kit-components-input-count.umd.min.js +1 -1
  62. package/bundles/taiga-ui-kit-components-input-count.umd.min.js.map +1 -1
  63. package/bundles/taiga-ui-kit-components-input-date-range.umd.js +1 -1
  64. package/bundles/taiga-ui-kit-components-input-date-range.umd.js.map +1 -1
  65. package/bundles/taiga-ui-kit-components-input-date-range.umd.min.js +1 -1
  66. package/bundles/taiga-ui-kit-components-input-date-range.umd.min.js.map +1 -1
  67. package/bundles/taiga-ui-kit-components-input-date-time.umd.js +1 -1
  68. package/bundles/taiga-ui-kit-components-input-date-time.umd.js.map +1 -1
  69. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js +1 -1
  70. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js.map +1 -1
  71. package/bundles/taiga-ui-kit-components-input-date.umd.js +1 -1
  72. package/bundles/taiga-ui-kit-components-input-date.umd.js.map +1 -1
  73. package/bundles/taiga-ui-kit-components-input-date.umd.min.js +1 -1
  74. package/bundles/taiga-ui-kit-components-input-date.umd.min.js.map +1 -1
  75. package/bundles/taiga-ui-kit-components-input-file.umd.js +1 -1
  76. package/bundles/taiga-ui-kit-components-input-file.umd.js.map +1 -1
  77. package/bundles/taiga-ui-kit-components-input-file.umd.min.js +2 -2
  78. package/bundles/taiga-ui-kit-components-input-file.umd.min.js.map +1 -1
  79. package/bundles/taiga-ui-kit-components-input-files.umd.js +1 -1
  80. package/bundles/taiga-ui-kit-components-input-files.umd.min.js +2 -2
  81. package/bundles/taiga-ui-kit-components-input-files.umd.min.js.map +1 -1
  82. package/bundles/taiga-ui-kit-components-input-month-range.umd.js +1 -1
  83. package/bundles/taiga-ui-kit-components-input-month-range.umd.js.map +1 -1
  84. package/bundles/taiga-ui-kit-components-input-month-range.umd.min.js +1 -1
  85. package/bundles/taiga-ui-kit-components-input-month-range.umd.min.js.map +1 -1
  86. package/bundles/taiga-ui-kit-components-input-month.umd.js +1 -1
  87. package/bundles/taiga-ui-kit-components-input-month.umd.js.map +1 -1
  88. package/bundles/taiga-ui-kit-components-input-month.umd.min.js +1 -1
  89. package/bundles/taiga-ui-kit-components-input-month.umd.min.js.map +1 -1
  90. package/bundles/taiga-ui-kit-components-input-number.umd.js +2 -2
  91. package/bundles/taiga-ui-kit-components-input-number.umd.js.map +1 -1
  92. package/bundles/taiga-ui-kit-components-input-number.umd.min.js +1 -1
  93. package/bundles/taiga-ui-kit-components-input-number.umd.min.js.map +1 -1
  94. package/bundles/taiga-ui-kit-components-input-password.umd.js +1 -1
  95. package/bundles/taiga-ui-kit-components-input-password.umd.js.map +1 -1
  96. package/bundles/taiga-ui-kit-components-input-password.umd.min.js +1 -1
  97. package/bundles/taiga-ui-kit-components-input-password.umd.min.js.map +1 -1
  98. package/bundles/taiga-ui-kit-components-input-phone.umd.js +1 -1
  99. package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
  100. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js +1 -1
  101. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js.map +1 -1
  102. package/bundles/taiga-ui-kit-components-input-range.umd.js +196 -164
  103. package/bundles/taiga-ui-kit-components-input-range.umd.js.map +1 -1
  104. package/bundles/taiga-ui-kit-components-input-range.umd.min.js +2 -2
  105. package/bundles/taiga-ui-kit-components-input-range.umd.min.js.map +1 -1
  106. package/bundles/taiga-ui-kit-components-input-slider.umd.js +6 -18
  107. package/bundles/taiga-ui-kit-components-input-slider.umd.js.map +1 -1
  108. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js +1 -1
  109. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js.map +1 -1
  110. package/bundles/taiga-ui-kit-components-input-tag.umd.js +5 -5
  111. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  112. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js +1 -1
  113. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js.map +1 -1
  114. package/bundles/taiga-ui-kit-components-input.umd.js +1 -1
  115. package/bundles/taiga-ui-kit-components-input.umd.js.map +1 -1
  116. package/bundles/taiga-ui-kit-components-input.umd.min.js +1 -1
  117. package/bundles/taiga-ui-kit-components-input.umd.min.js.map +1 -1
  118. package/bundles/taiga-ui-kit-components-marker-icon.umd.js +1 -1
  119. package/bundles/taiga-ui-kit-components-marker-icon.umd.js.map +1 -1
  120. package/bundles/taiga-ui-kit-components-marker-icon.umd.min.js +1 -1
  121. package/bundles/taiga-ui-kit-components-marker-icon.umd.min.js.map +1 -1
  122. package/bundles/taiga-ui-kit-components-multi-select.umd.js +1 -1
  123. package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
  124. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js +1 -1
  125. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js.map +1 -1
  126. package/bundles/taiga-ui-kit-components-pagination.umd.js +1 -1
  127. package/bundles/taiga-ui-kit-components-pagination.umd.js.map +1 -1
  128. package/bundles/taiga-ui-kit-components-pagination.umd.min.js +1 -1
  129. package/bundles/taiga-ui-kit-components-pagination.umd.min.js.map +1 -1
  130. package/bundles/taiga-ui-kit-components-pdf-viewer.umd.js +1 -1
  131. package/bundles/taiga-ui-kit-components-pdf-viewer.umd.js.map +1 -1
  132. package/bundles/taiga-ui-kit-components-pdf-viewer.umd.min.js +1 -1
  133. package/bundles/taiga-ui-kit-components-pdf-viewer.umd.min.js.map +1 -1
  134. package/bundles/taiga-ui-kit-components-progress.umd.js +2 -2
  135. package/bundles/taiga-ui-kit-components-progress.umd.js.map +1 -1
  136. package/bundles/taiga-ui-kit-components-progress.umd.min.js +1 -1
  137. package/bundles/taiga-ui-kit-components-progress.umd.min.js.map +1 -1
  138. package/bundles/taiga-ui-kit-components-radio.umd.js +2 -2
  139. package/bundles/taiga-ui-kit-components-radio.umd.js.map +1 -1
  140. package/bundles/taiga-ui-kit-components-radio.umd.min.js +1 -1
  141. package/bundles/taiga-ui-kit-components-radio.umd.min.js.map +1 -1
  142. package/bundles/taiga-ui-kit-components-range.umd.js +221 -31
  143. package/bundles/taiga-ui-kit-components-range.umd.js.map +1 -1
  144. package/bundles/taiga-ui-kit-components-range.umd.min.js +2 -2
  145. package/bundles/taiga-ui-kit-components-range.umd.min.js.map +1 -1
  146. package/bundles/taiga-ui-kit-components-rating.umd.js +1 -1
  147. package/bundles/taiga-ui-kit-components-rating.umd.js.map +1 -1
  148. package/bundles/taiga-ui-kit-components-rating.umd.min.js +1 -1
  149. package/bundles/taiga-ui-kit-components-rating.umd.min.js.map +1 -1
  150. package/bundles/taiga-ui-kit-components-select.umd.js +1 -1
  151. package/bundles/taiga-ui-kit-components-select.umd.js.map +1 -1
  152. package/bundles/taiga-ui-kit-components-select.umd.min.js +1 -1
  153. package/bundles/taiga-ui-kit-components-select.umd.min.js.map +1 -1
  154. package/bundles/taiga-ui-kit-components-slider.umd.js +62 -6
  155. package/bundles/taiga-ui-kit-components-slider.umd.js.map +1 -1
  156. package/bundles/taiga-ui-kit-components-slider.umd.min.js +1 -1
  157. package/bundles/taiga-ui-kit-components-slider.umd.min.js.map +1 -1
  158. package/bundles/taiga-ui-kit-components-stepper.umd.js +1 -1
  159. package/bundles/taiga-ui-kit-components-stepper.umd.js.map +1 -1
  160. package/bundles/taiga-ui-kit-components-stepper.umd.min.js +2 -2
  161. package/bundles/taiga-ui-kit-components-stepper.umd.min.js.map +1 -1
  162. package/bundles/taiga-ui-kit-components-tabs.umd.js +38 -36
  163. package/bundles/taiga-ui-kit-components-tabs.umd.js.map +1 -1
  164. package/bundles/taiga-ui-kit-components-tabs.umd.min.js +1 -1
  165. package/bundles/taiga-ui-kit-components-tabs.umd.min.js.map +1 -1
  166. package/bundles/taiga-ui-kit-components-tag.umd.js +2 -2
  167. package/bundles/taiga-ui-kit-components-tag.umd.js.map +1 -1
  168. package/bundles/taiga-ui-kit-components-tag.umd.min.js +1 -1
  169. package/bundles/taiga-ui-kit-components-tag.umd.min.js.map +1 -1
  170. package/bundles/taiga-ui-kit-components-text-area.umd.js +2 -2
  171. package/bundles/taiga-ui-kit-components-text-area.umd.js.map +1 -1
  172. package/bundles/taiga-ui-kit-components-text-area.umd.min.js +1 -1
  173. package/bundles/taiga-ui-kit-components-text-area.umd.min.js.map +1 -1
  174. package/bundles/taiga-ui-kit-components-toggle.umd.js +1 -1
  175. package/bundles/taiga-ui-kit-components-toggle.umd.min.js +1 -1
  176. package/bundles/taiga-ui-kit-components-toggle.umd.min.js.map +1 -1
  177. package/bundles/taiga-ui-kit-tokens.umd.js +6 -0
  178. package/bundles/taiga-ui-kit-tokens.umd.js.map +1 -1
  179. package/bundles/taiga-ui-kit-tokens.umd.min.js +1 -1
  180. package/bundles/taiga-ui-kit-tokens.umd.min.js.map +1 -1
  181. package/components/accordion/taiga-ui-kit-components-accordion.metadata.json +1 -1
  182. package/components/action/taiga-ui-kit-components-action.metadata.json +1 -1
  183. package/components/avatar/avatar-options.d.ts +11 -0
  184. package/components/avatar/avatar.component.d.ts +4 -2
  185. package/components/avatar/index.d.ts +1 -0
  186. package/components/avatar/taiga-ui-kit-components-avatar.metadata.json +1 -1
  187. package/components/breadcrumbs/taiga-ui-kit-components-breadcrumbs.metadata.json +1 -1
  188. package/components/calendar-month/taiga-ui-kit-components-calendar-month.metadata.json +1 -1
  189. package/components/carousel/taiga-ui-kit-components-carousel.metadata.json +1 -1
  190. package/components/checkbox/taiga-ui-kit-components-checkbox.metadata.json +1 -1
  191. package/components/checkbox-labeled/taiga-ui-kit-components-checkbox-labeled.metadata.json +1 -1
  192. package/components/combo-box/taiga-ui-kit-components-combo-box.metadata.json +1 -1
  193. package/components/data-list-wrapper/taiga-ui-kit-components-data-list-wrapper.metadata.json +1 -1
  194. package/components/files/taiga-ui-kit-components-files.metadata.json +1 -1
  195. package/components/filter/taiga-ui-kit-components-filter.metadata.json +1 -1
  196. package/components/input/taiga-ui-kit-components-input.metadata.json +1 -1
  197. package/components/input-copy/taiga-ui-kit-components-input-copy.metadata.json +1 -1
  198. package/components/input-count/taiga-ui-kit-components-input-count.metadata.json +1 -1
  199. package/components/input-date/taiga-ui-kit-components-input-date.metadata.json +1 -1
  200. package/components/input-date-range/taiga-ui-kit-components-input-date-range.metadata.json +1 -1
  201. package/components/input-date-time/taiga-ui-kit-components-input-date-time.metadata.json +1 -1
  202. package/components/input-file/taiga-ui-kit-components-input-file.metadata.json +1 -1
  203. package/components/input-files/taiga-ui-kit-components-input-files.metadata.json +1 -1
  204. package/components/input-month/taiga-ui-kit-components-input-month.metadata.json +1 -1
  205. package/components/input-month-range/taiga-ui-kit-components-input-month-range.metadata.json +1 -1
  206. package/components/input-number/taiga-ui-kit-components-input-number.metadata.json +1 -1
  207. package/components/input-password/taiga-ui-kit-components-input-password.metadata.json +1 -1
  208. package/components/input-phone/taiga-ui-kit-components-input-phone.metadata.json +1 -1
  209. package/components/input-range/input-range.component.d.ts +44 -31
  210. package/components/input-range/taiga-ui-kit-components-input-range.metadata.json +1 -1
  211. package/components/input-slider/input-slider.component.d.ts +2 -8
  212. package/components/input-slider/taiga-ui-kit-components-input-slider.metadata.json +1 -1
  213. package/components/input-tag/input-tag.component.d.ts +1 -1
  214. package/components/input-tag/taiga-ui-kit-components-input-tag.metadata.json +1 -1
  215. package/components/marker-icon/taiga-ui-kit-components-marker-icon.metadata.json +1 -1
  216. package/components/multi-select/taiga-ui-kit-components-multi-select.metadata.json +1 -1
  217. package/components/pagination/taiga-ui-kit-components-pagination.metadata.json +1 -1
  218. package/components/pdf-viewer/taiga-ui-kit-components-pdf-viewer.metadata.json +1 -1
  219. package/components/progress/taiga-ui-kit-components-progress.metadata.json +1 -1
  220. package/components/radio/taiga-ui-kit-components-radio.metadata.json +1 -1
  221. package/components/range/index.d.ts +1 -0
  222. package/components/range/range-change.directive.d.ts +20 -0
  223. package/components/range/range.component.d.ts +33 -5
  224. package/components/range/taiga-ui-kit-components-range.metadata.json +1 -1
  225. package/components/rating/taiga-ui-kit-components-rating.metadata.json +1 -1
  226. package/components/select/taiga-ui-kit-components-select.metadata.json +1 -1
  227. package/components/slider/index.d.ts +1 -0
  228. package/components/slider/slider-old.component.d.ts +3 -1
  229. package/components/slider/slider-readonly.directive.d.ts +9 -0
  230. package/components/slider/taiga-ui-kit-components-slider.metadata.json +1 -1
  231. package/components/stepper/taiga-ui-kit-components-stepper.metadata.json +1 -1
  232. package/components/tabs/index.d.ts +0 -1
  233. package/components/tabs/tab/tab.component.d.ts +2 -1
  234. package/components/tabs/tabs/tabs.component.d.ts +2 -3
  235. package/components/tabs/tabs-with-more/tabs-with-more.component.d.ts +4 -1
  236. package/components/tabs/taiga-ui-kit-components-tabs.metadata.json +1 -1
  237. package/components/tag/taiga-ui-kit-components-tag.metadata.json +1 -1
  238. package/components/text-area/taiga-ui-kit-components-text-area.metadata.json +1 -1
  239. package/components/toggle/taiga-ui-kit-components-toggle.metadata.json +1 -1
  240. package/esm2015/abstract/input-slider.js +30 -37
  241. package/esm2015/abstract/slider/slider.js +13 -19
  242. package/esm2015/components/accordion/accordion-item/accordion-item.component.js +2 -2
  243. package/esm2015/components/action/action.component.js +2 -2
  244. package/esm2015/components/avatar/avatar-options.js +15 -0
  245. package/esm2015/components/avatar/avatar.component.js +14 -8
  246. package/esm2015/components/avatar/index.js +2 -1
  247. package/esm2015/components/breadcrumbs/breadcrumbs-wrapper.component.js +2 -2
  248. package/esm2015/components/calendar-month/calendar-month.component.js +2 -2
  249. package/esm2015/components/carousel/carousel.component.js +2 -2
  250. package/esm2015/components/checkbox/checkbox.component.js +1 -1
  251. package/esm2015/components/checkbox-labeled/checkbox-labeled.component.js +2 -2
  252. package/esm2015/components/combo-box/combo-box.component.js +2 -2
  253. package/esm2015/components/data-list-wrapper/data-list-group-wrapper.component.js +2 -2
  254. package/esm2015/components/data-list-wrapper/data-list-wrapper.component.js +2 -2
  255. package/esm2015/components/files/file/file.component.js +2 -2
  256. package/esm2015/components/files/files.component.js +3 -3
  257. package/esm2015/components/filter/filter.component.js +2 -2
  258. package/esm2015/components/input/input.component.js +2 -2
  259. package/esm2015/components/input-copy/input-copy.component.js +2 -2
  260. package/esm2015/components/input-count/input-count.component.js +2 -2
  261. package/esm2015/components/input-date/input-date.component.js +2 -2
  262. package/esm2015/components/input-date-range/input-date-range.component.js +2 -2
  263. package/esm2015/components/input-date-time/input-date-time.component.js +2 -2
  264. package/esm2015/components/input-file/file/file.component.js +2 -2
  265. package/esm2015/components/input-files/input-files.component.js +1 -1
  266. package/esm2015/components/input-month/input-month.component.js +2 -2
  267. package/esm2015/components/input-month-range/input-month-range.component.js +2 -2
  268. package/esm2015/components/input-number/input-number.component.js +3 -3
  269. package/esm2015/components/input-password/input-password.component.js +2 -2
  270. package/esm2015/components/input-phone/input-phone.component.js +2 -2
  271. package/esm2015/components/input-range/input-range.component.js +192 -156
  272. package/esm2015/components/input-range/input-range.module.js +13 -15
  273. package/esm2015/components/input-slider/input-slider.component.js +8 -20
  274. package/esm2015/components/input-tag/input-tag.component.js +6 -6
  275. package/esm2015/components/marker-icon/marker-icon.component.js +2 -2
  276. package/esm2015/components/multi-select/multi-select.component.js +2 -2
  277. package/esm2015/components/pagination/pagination.component.js +2 -2
  278. package/esm2015/components/pdf-viewer/pdf-viewer.component.js +2 -2
  279. package/esm2015/components/progress/progress-circle/progress-circle.component.js +2 -2
  280. package/esm2015/components/progress/progress-segmented/progress-segmented.component.js +2 -2
  281. package/esm2015/components/radio/radio.component.js +3 -3
  282. package/esm2015/components/range/index.js +2 -1
  283. package/esm2015/components/range/range-change.directive.js +83 -0
  284. package/esm2015/components/range/range.component.js +118 -28
  285. package/esm2015/components/range/range.module.js +10 -7
  286. package/esm2015/components/rating/rating.component.js +2 -2
  287. package/esm2015/components/select/select.component.js +2 -2
  288. package/esm2015/components/slider/index.js +2 -1
  289. package/esm2015/components/slider/slider-key-steps.directive.js +2 -2
  290. package/esm2015/components/slider/slider-old.component.js +11 -5
  291. package/esm2015/components/slider/slider-readonly.directive.js +50 -0
  292. package/esm2015/components/slider/slider.component.js +1 -1
  293. package/esm2015/components/slider/slider.module.js +4 -1
  294. package/esm2015/components/stepper/step/step.component.js +2 -2
  295. package/esm2015/components/tabs/index.js +1 -2
  296. package/esm2015/components/tabs/tab/tab.component.js +13 -9
  297. package/esm2015/components/tabs/tabs/tabs.component.js +5 -11
  298. package/esm2015/components/tabs/tabs-with-more/tabs-with-more.component.js +24 -16
  299. package/esm2015/components/tabs/underline/underline.component.js +2 -2
  300. package/esm2015/components/tag/tag.component.js +3 -3
  301. package/esm2015/components/text-area/text-area.component.js +3 -3
  302. package/esm2015/components/toggle/toggle.component.js +1 -1
  303. package/esm2015/tokens/index.js +2 -1
  304. package/esm2015/tokens/mobile-aware.js +2 -1
  305. package/esm2015/tokens/tab-margin.js +5 -0
  306. package/esm5/abstract/input-slider.js +30 -48
  307. package/esm5/abstract/slider/slider.js +13 -19
  308. package/esm5/components/accordion/accordion-item/accordion-item.component.js +2 -2
  309. package/esm5/components/action/action.component.js +2 -2
  310. package/esm5/components/avatar/avatar-options.js +16 -0
  311. package/esm5/components/avatar/avatar.component.js +14 -8
  312. package/esm5/components/avatar/index.js +2 -1
  313. package/esm5/components/breadcrumbs/breadcrumbs-wrapper.component.js +2 -2
  314. package/esm5/components/calendar-month/calendar-month.component.js +2 -2
  315. package/esm5/components/carousel/carousel.component.js +2 -2
  316. package/esm5/components/checkbox/checkbox.component.js +1 -1
  317. package/esm5/components/checkbox-labeled/checkbox-labeled.component.js +2 -2
  318. package/esm5/components/combo-box/combo-box.component.js +2 -2
  319. package/esm5/components/data-list-wrapper/data-list-group-wrapper.component.js +2 -2
  320. package/esm5/components/data-list-wrapper/data-list-wrapper.component.js +2 -2
  321. package/esm5/components/files/file/file.component.js +2 -2
  322. package/esm5/components/files/files.component.js +3 -3
  323. package/esm5/components/filter/filter.component.js +2 -2
  324. package/esm5/components/input/input.component.js +2 -2
  325. package/esm5/components/input-copy/input-copy.component.js +2 -2
  326. package/esm5/components/input-count/input-count.component.js +2 -2
  327. package/esm5/components/input-date/input-date.component.js +2 -2
  328. package/esm5/components/input-date-range/input-date-range.component.js +2 -2
  329. package/esm5/components/input-date-time/input-date-time.component.js +2 -2
  330. package/esm5/components/input-file/file/file.component.js +2 -2
  331. package/esm5/components/input-files/input-files.component.js +1 -1
  332. package/esm5/components/input-month/input-month.component.js +2 -2
  333. package/esm5/components/input-month-range/input-month-range.component.js +2 -2
  334. package/esm5/components/input-number/input-number.component.js +3 -3
  335. package/esm5/components/input-password/input-password.component.js +2 -2
  336. package/esm5/components/input-phone/input-phone.component.js +2 -2
  337. package/esm5/components/input-range/input-range.component.js +194 -157
  338. package/esm5/components/input-range/input-range.module.js +13 -15
  339. package/esm5/components/input-slider/input-slider.component.js +8 -20
  340. package/esm5/components/input-tag/input-tag.component.js +6 -6
  341. package/esm5/components/marker-icon/marker-icon.component.js +2 -2
  342. package/esm5/components/multi-select/multi-select.component.js +2 -2
  343. package/esm5/components/pagination/pagination.component.js +2 -2
  344. package/esm5/components/pdf-viewer/pdf-viewer.component.js +2 -2
  345. package/esm5/components/progress/progress-circle/progress-circle.component.js +2 -2
  346. package/esm5/components/progress/progress-segmented/progress-segmented.component.js +2 -2
  347. package/esm5/components/radio/radio.component.js +3 -3
  348. package/esm5/components/range/index.js +2 -1
  349. package/esm5/components/range/range-change.directive.js +101 -0
  350. package/esm5/components/range/range.component.js +126 -29
  351. package/esm5/components/range/range.module.js +10 -7
  352. package/esm5/components/rating/rating.component.js +2 -2
  353. package/esm5/components/select/select.component.js +2 -2
  354. package/esm5/components/slider/index.js +2 -1
  355. package/esm5/components/slider/slider-key-steps.directive.js +2 -2
  356. package/esm5/components/slider/slider-old.component.js +11 -5
  357. package/esm5/components/slider/slider-readonly.directive.js +51 -0
  358. package/esm5/components/slider/slider.component.js +1 -1
  359. package/esm5/components/slider/slider.module.js +4 -1
  360. package/esm5/components/stepper/step/step.component.js +2 -2
  361. package/esm5/components/tabs/index.js +1 -2
  362. package/esm5/components/tabs/tab/tab.component.js +13 -9
  363. package/esm5/components/tabs/tabs/tabs.component.js +5 -15
  364. package/esm5/components/tabs/tabs-with-more/tabs-with-more.component.js +27 -16
  365. package/esm5/components/tabs/underline/underline.component.js +2 -2
  366. package/esm5/components/tag/tag.component.js +3 -3
  367. package/esm5/components/text-area/text-area.component.js +3 -3
  368. package/esm5/components/toggle/toggle.component.js +1 -1
  369. package/esm5/tokens/index.js +2 -1
  370. package/esm5/tokens/mobile-aware.js +2 -1
  371. package/esm5/tokens/tab-margin.js +5 -0
  372. package/fesm2015/taiga-ui-kit-abstract.js +43 -55
  373. package/fesm2015/taiga-ui-kit-abstract.js.map +1 -1
  374. package/fesm2015/taiga-ui-kit-components-accordion.js +1 -1
  375. package/fesm2015/taiga-ui-kit-components-accordion.js.map +1 -1
  376. package/fesm2015/taiga-ui-kit-components-action.js +1 -1
  377. package/fesm2015/taiga-ui-kit-components-action.js.map +1 -1
  378. package/fesm2015/taiga-ui-kit-components-avatar.js +27 -8
  379. package/fesm2015/taiga-ui-kit-components-avatar.js.map +1 -1
  380. package/fesm2015/taiga-ui-kit-components-breadcrumbs.js +1 -1
  381. package/fesm2015/taiga-ui-kit-components-breadcrumbs.js.map +1 -1
  382. package/fesm2015/taiga-ui-kit-components-calendar-month.js +1 -1
  383. package/fesm2015/taiga-ui-kit-components-calendar-month.js.map +1 -1
  384. package/fesm2015/taiga-ui-kit-components-carousel.js +1 -1
  385. package/fesm2015/taiga-ui-kit-components-carousel.js.map +1 -1
  386. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js +1 -1
  387. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js.map +1 -1
  388. package/fesm2015/taiga-ui-kit-components-checkbox.js +1 -1
  389. package/fesm2015/taiga-ui-kit-components-combo-box.js +1 -1
  390. package/fesm2015/taiga-ui-kit-components-combo-box.js.map +1 -1
  391. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js +2 -2
  392. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  393. package/fesm2015/taiga-ui-kit-components-files.js +3 -3
  394. package/fesm2015/taiga-ui-kit-components-files.js.map +1 -1
  395. package/fesm2015/taiga-ui-kit-components-filter.js +1 -1
  396. package/fesm2015/taiga-ui-kit-components-filter.js.map +1 -1
  397. package/fesm2015/taiga-ui-kit-components-input-copy.js +1 -1
  398. package/fesm2015/taiga-ui-kit-components-input-copy.js.map +1 -1
  399. package/fesm2015/taiga-ui-kit-components-input-count.js +1 -1
  400. package/fesm2015/taiga-ui-kit-components-input-count.js.map +1 -1
  401. package/fesm2015/taiga-ui-kit-components-input-date-range.js +1 -1
  402. package/fesm2015/taiga-ui-kit-components-input-date-range.js.map +1 -1
  403. package/fesm2015/taiga-ui-kit-components-input-date-time.js +1 -1
  404. package/fesm2015/taiga-ui-kit-components-input-date-time.js.map +1 -1
  405. package/fesm2015/taiga-ui-kit-components-input-date.js +1 -1
  406. package/fesm2015/taiga-ui-kit-components-input-date.js.map +1 -1
  407. package/fesm2015/taiga-ui-kit-components-input-file.js +1 -1
  408. package/fesm2015/taiga-ui-kit-components-input-file.js.map +1 -1
  409. package/fesm2015/taiga-ui-kit-components-input-files.js +1 -1
  410. package/fesm2015/taiga-ui-kit-components-input-month-range.js +1 -1
  411. package/fesm2015/taiga-ui-kit-components-input-month-range.js.map +1 -1
  412. package/fesm2015/taiga-ui-kit-components-input-month.js +1 -1
  413. package/fesm2015/taiga-ui-kit-components-input-month.js.map +1 -1
  414. package/fesm2015/taiga-ui-kit-components-input-number.js +2 -2
  415. package/fesm2015/taiga-ui-kit-components-input-number.js.map +1 -1
  416. package/fesm2015/taiga-ui-kit-components-input-password.js +1 -1
  417. package/fesm2015/taiga-ui-kit-components-input-password.js.map +1 -1
  418. package/fesm2015/taiga-ui-kit-components-input-phone.js +1 -1
  419. package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
  420. package/fesm2015/taiga-ui-kit-components-input-range.js +198 -167
  421. package/fesm2015/taiga-ui-kit-components-input-range.js.map +1 -1
  422. package/fesm2015/taiga-ui-kit-components-input-slider.js +7 -19
  423. package/fesm2015/taiga-ui-kit-components-input-slider.js.map +1 -1
  424. package/fesm2015/taiga-ui-kit-components-input-tag.js +5 -5
  425. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  426. package/fesm2015/taiga-ui-kit-components-input.js +1 -1
  427. package/fesm2015/taiga-ui-kit-components-input.js.map +1 -1
  428. package/fesm2015/taiga-ui-kit-components-marker-icon.js +1 -1
  429. package/fesm2015/taiga-ui-kit-components-marker-icon.js.map +1 -1
  430. package/fesm2015/taiga-ui-kit-components-multi-select.js +1 -1
  431. package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
  432. package/fesm2015/taiga-ui-kit-components-pagination.js +1 -1
  433. package/fesm2015/taiga-ui-kit-components-pagination.js.map +1 -1
  434. package/fesm2015/taiga-ui-kit-components-pdf-viewer.js +1 -1
  435. package/fesm2015/taiga-ui-kit-components-pdf-viewer.js.map +1 -1
  436. package/fesm2015/taiga-ui-kit-components-progress.js +2 -2
  437. package/fesm2015/taiga-ui-kit-components-progress.js.map +1 -1
  438. package/fesm2015/taiga-ui-kit-components-radio.js +2 -2
  439. package/fesm2015/taiga-ui-kit-components-radio.js.map +1 -1
  440. package/fesm2015/taiga-ui-kit-components-range.js +199 -34
  441. package/fesm2015/taiga-ui-kit-components-range.js.map +1 -1
  442. package/fesm2015/taiga-ui-kit-components-rating.js +1 -1
  443. package/fesm2015/taiga-ui-kit-components-rating.js.map +1 -1
  444. package/fesm2015/taiga-ui-kit-components-select.js +1 -1
  445. package/fesm2015/taiga-ui-kit-components-select.js.map +1 -1
  446. package/fesm2015/taiga-ui-kit-components-slider.js +61 -7
  447. package/fesm2015/taiga-ui-kit-components-slider.js.map +1 -1
  448. package/fesm2015/taiga-ui-kit-components-stepper.js +1 -1
  449. package/fesm2015/taiga-ui-kit-components-stepper.js.map +1 -1
  450. package/fesm2015/taiga-ui-kit-components-tabs.js +39 -34
  451. package/fesm2015/taiga-ui-kit-components-tabs.js.map +1 -1
  452. package/fesm2015/taiga-ui-kit-components-tag.js +2 -2
  453. package/fesm2015/taiga-ui-kit-components-tag.js.map +1 -1
  454. package/fesm2015/taiga-ui-kit-components-text-area.js +2 -2
  455. package/fesm2015/taiga-ui-kit-components-text-area.js.map +1 -1
  456. package/fesm2015/taiga-ui-kit-components-toggle.js +1 -1
  457. package/fesm2015/taiga-ui-kit-tokens.js +6 -1
  458. package/fesm2015/taiga-ui-kit-tokens.js.map +1 -1
  459. package/fesm5/taiga-ui-kit-abstract.js +43 -66
  460. package/fesm5/taiga-ui-kit-abstract.js.map +1 -1
  461. package/fesm5/taiga-ui-kit-components-accordion.js +1 -1
  462. package/fesm5/taiga-ui-kit-components-accordion.js.map +1 -1
  463. package/fesm5/taiga-ui-kit-components-action.js +1 -1
  464. package/fesm5/taiga-ui-kit-components-action.js.map +1 -1
  465. package/fesm5/taiga-ui-kit-components-avatar.js +27 -8
  466. package/fesm5/taiga-ui-kit-components-avatar.js.map +1 -1
  467. package/fesm5/taiga-ui-kit-components-breadcrumbs.js +1 -1
  468. package/fesm5/taiga-ui-kit-components-breadcrumbs.js.map +1 -1
  469. package/fesm5/taiga-ui-kit-components-calendar-month.js +1 -1
  470. package/fesm5/taiga-ui-kit-components-calendar-month.js.map +1 -1
  471. package/fesm5/taiga-ui-kit-components-carousel.js +1 -1
  472. package/fesm5/taiga-ui-kit-components-carousel.js.map +1 -1
  473. package/fesm5/taiga-ui-kit-components-checkbox-labeled.js +1 -1
  474. package/fesm5/taiga-ui-kit-components-checkbox-labeled.js.map +1 -1
  475. package/fesm5/taiga-ui-kit-components-checkbox.js +1 -1
  476. package/fesm5/taiga-ui-kit-components-combo-box.js +1 -1
  477. package/fesm5/taiga-ui-kit-components-combo-box.js.map +1 -1
  478. package/fesm5/taiga-ui-kit-components-data-list-wrapper.js +2 -2
  479. package/fesm5/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  480. package/fesm5/taiga-ui-kit-components-files.js +3 -3
  481. package/fesm5/taiga-ui-kit-components-files.js.map +1 -1
  482. package/fesm5/taiga-ui-kit-components-filter.js +1 -1
  483. package/fesm5/taiga-ui-kit-components-filter.js.map +1 -1
  484. package/fesm5/taiga-ui-kit-components-input-copy.js +1 -1
  485. package/fesm5/taiga-ui-kit-components-input-copy.js.map +1 -1
  486. package/fesm5/taiga-ui-kit-components-input-count.js +1 -1
  487. package/fesm5/taiga-ui-kit-components-input-count.js.map +1 -1
  488. package/fesm5/taiga-ui-kit-components-input-date-range.js +1 -1
  489. package/fesm5/taiga-ui-kit-components-input-date-range.js.map +1 -1
  490. package/fesm5/taiga-ui-kit-components-input-date-time.js +1 -1
  491. package/fesm5/taiga-ui-kit-components-input-date-time.js.map +1 -1
  492. package/fesm5/taiga-ui-kit-components-input-date.js +1 -1
  493. package/fesm5/taiga-ui-kit-components-input-date.js.map +1 -1
  494. package/fesm5/taiga-ui-kit-components-input-file.js +1 -1
  495. package/fesm5/taiga-ui-kit-components-input-file.js.map +1 -1
  496. package/fesm5/taiga-ui-kit-components-input-files.js +1 -1
  497. package/fesm5/taiga-ui-kit-components-input-month-range.js +1 -1
  498. package/fesm5/taiga-ui-kit-components-input-month-range.js.map +1 -1
  499. package/fesm5/taiga-ui-kit-components-input-month.js +1 -1
  500. package/fesm5/taiga-ui-kit-components-input-month.js.map +1 -1
  501. package/fesm5/taiga-ui-kit-components-input-number.js +2 -2
  502. package/fesm5/taiga-ui-kit-components-input-number.js.map +1 -1
  503. package/fesm5/taiga-ui-kit-components-input-password.js +1 -1
  504. package/fesm5/taiga-ui-kit-components-input-password.js.map +1 -1
  505. package/fesm5/taiga-ui-kit-components-input-phone.js +1 -1
  506. package/fesm5/taiga-ui-kit-components-input-phone.js.map +1 -1
  507. package/fesm5/taiga-ui-kit-components-input-range.js +200 -168
  508. package/fesm5/taiga-ui-kit-components-input-range.js.map +1 -1
  509. package/fesm5/taiga-ui-kit-components-input-slider.js +7 -19
  510. package/fesm5/taiga-ui-kit-components-input-slider.js.map +1 -1
  511. package/fesm5/taiga-ui-kit-components-input-tag.js +5 -5
  512. package/fesm5/taiga-ui-kit-components-input-tag.js.map +1 -1
  513. package/fesm5/taiga-ui-kit-components-input.js +1 -1
  514. package/fesm5/taiga-ui-kit-components-input.js.map +1 -1
  515. package/fesm5/taiga-ui-kit-components-marker-icon.js +1 -1
  516. package/fesm5/taiga-ui-kit-components-marker-icon.js.map +1 -1
  517. package/fesm5/taiga-ui-kit-components-multi-select.js +1 -1
  518. package/fesm5/taiga-ui-kit-components-multi-select.js.map +1 -1
  519. package/fesm5/taiga-ui-kit-components-pagination.js +1 -1
  520. package/fesm5/taiga-ui-kit-components-pagination.js.map +1 -1
  521. package/fesm5/taiga-ui-kit-components-pdf-viewer.js +1 -1
  522. package/fesm5/taiga-ui-kit-components-pdf-viewer.js.map +1 -1
  523. package/fesm5/taiga-ui-kit-components-progress.js +2 -2
  524. package/fesm5/taiga-ui-kit-components-progress.js.map +1 -1
  525. package/fesm5/taiga-ui-kit-components-radio.js +2 -2
  526. package/fesm5/taiga-ui-kit-components-radio.js.map +1 -1
  527. package/fesm5/taiga-ui-kit-components-range.js +225 -35
  528. package/fesm5/taiga-ui-kit-components-range.js.map +1 -1
  529. package/fesm5/taiga-ui-kit-components-rating.js +1 -1
  530. package/fesm5/taiga-ui-kit-components-rating.js.map +1 -1
  531. package/fesm5/taiga-ui-kit-components-select.js +1 -1
  532. package/fesm5/taiga-ui-kit-components-select.js.map +1 -1
  533. package/fesm5/taiga-ui-kit-components-slider.js +62 -7
  534. package/fesm5/taiga-ui-kit-components-slider.js.map +1 -1
  535. package/fesm5/taiga-ui-kit-components-stepper.js +1 -1
  536. package/fesm5/taiga-ui-kit-components-stepper.js.map +1 -1
  537. package/fesm5/taiga-ui-kit-components-tabs.js +42 -38
  538. package/fesm5/taiga-ui-kit-components-tabs.js.map +1 -1
  539. package/fesm5/taiga-ui-kit-components-tag.js +2 -2
  540. package/fesm5/taiga-ui-kit-components-tag.js.map +1 -1
  541. package/fesm5/taiga-ui-kit-components-text-area.js +2 -2
  542. package/fesm5/taiga-ui-kit-components-text-area.js.map +1 -1
  543. package/fesm5/taiga-ui-kit-components-toggle.js +1 -1
  544. package/fesm5/taiga-ui-kit-tokens.js +6 -1
  545. package/fesm5/taiga-ui-kit-tokens.js.map +1 -1
  546. package/package.json +4 -4
  547. package/tokens/index.d.ts +1 -0
  548. package/tokens/mobile-aware.d.ts +1 -0
  549. package/tokens/tab-margin.d.ts +2 -0
  550. package/tokens/taiga-ui-kit-tokens.metadata.json +1 -1
  551. package/components/tabs/tabs.const.d.ts +0 -2
  552. package/esm2015/components/tabs/tabs.const.js +0 -3
  553. package/esm5/components/tabs/tabs.const.js +0 -3
@@ -216,7 +216,7 @@ __decorate([
216
216
  TuiInputNumberComponent = TuiInputNumberComponent_1 = __decorate([
217
217
  Component({
218
218
  selector: 'tui-input-number',
219
- template: "<tui-primitive-textfield\n tuiValueAccessor\n tuiTextfieldInputMode=\"decimal\"\n class=\"textfield\"\n [pseudoHovered]=\"computedHovered\"\n [pseudoFocused]=\"computedFocused\"\n [pseudoPressed]=\"computedPressed\"\n [invalid]=\"computedInvalid\"\n [tuiTextfieldMaxLength]=\"calculatedMaxLength\"\n [readOnly]=\"readOnly\"\n [disabled]=\"computedDisabled\"\n [textMask]=\"isNegativeAllowed | tuiMapper: mask:decimal:precision:nativeFocusableElement\"\n [value]=\"computedValue\"\n [prefix]=\"prefix\"\n [postfix]=\"postfix\"\n [focusable]=\"focusable\"\n (valueChange)=\"onValueChange($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (focusedChange)=\"onFocused($event)\"\n (pressedChange)=\"onPressed($event)\"\n (keydown)=\"onKeyDown($event)\"\n>\n <ng-content></ng-content>\n <ng-content select=\"input\" ngProjectAs=\"input\"></ng-content>\n <div\n *ngIf=\"polymorpheusValueContent\"\n polymorpheus-outlet\n [content]=\"valueContent\"\n ></div>\n</tui-primitive-textfield>\n\n<ng-template #valueContent>\n <ng-content select=\"[polymorpheus-outlet]\"></ng-content>\n</ng-template>\n",
219
+ template: "<tui-primitive-textfield\n tuiValueAccessor\n tuiTextfieldInputMode=\"decimal\"\n class=\"textfield\"\n [pseudoHovered]=\"computedHovered\"\n [pseudoFocused]=\"computedFocused\"\n [pseudoPressed]=\"computedPressed\"\n [invalid]=\"computedInvalid\"\n [tuiTextfieldMaxLength]=\"calculatedMaxLength\"\n [readOnly]=\"readOnly\"\n [disabled]=\"computedDisabled\"\n [textMask]=\"isNegativeAllowed | tuiMapper: mask:decimal:precision:nativeFocusableElement\"\n [value]=\"computedValue\"\n [prefix]=\"prefix\"\n [postfix]=\"postfix\"\n [focusable]=\"focusable\"\n (valueChange)=\"onValueChange($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (focusedChange)=\"onFocused($event)\"\n (pressedChange)=\"onPressed($event)\"\n (keydown)=\"onKeyDown($event)\"\n>\n <ng-content></ng-content>\n <ng-content\n select=\"input\"\n ngProjectAs=\"input\"\n ></ng-content>\n <div\n *ngIf=\"polymorpheusValueContent\"\n polymorpheus-outlet\n class=\"t-value-content\"\n [content]=\"valueContent\"\n ></div>\n</tui-primitive-textfield>\n\n<ng-template #valueContent>\n <ng-content select=\"[polymorpheus-outlet]\"></ng-content>\n</ng-template>\n",
220
220
  changeDetection: ChangeDetectionStrategy.OnPush,
221
221
  providers: [
222
222
  {
@@ -228,7 +228,7 @@ TuiInputNumberComponent = TuiInputNumberComponent_1 = __decorate([
228
228
  useExisting: forwardRef(() => TuiInputNumberComponent_1),
229
229
  },
230
230
  ],
231
- styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:left}.textfield{border-radius:inherit;text-align:inherit}"]
231
+ styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:left}.textfield{border-radius:inherit;text-align:inherit}.t-value-content{width:100%}"]
232
232
  }),
233
233
  __param(0, Optional()),
234
234
  __param(0, Self()),
@@ -238,4 +238,4 @@ TuiInputNumberComponent = TuiInputNumberComponent_1 = __decorate([
238
238
  __param(3, Inject(TUI_IS_IOS))
239
239
  ], TuiInputNumberComponent);
240
240
  export { TuiInputNumberComponent };
241
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1udW1iZXIvIiwic291cmNlcyI6WyJpbnB1dC1udW1iZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLElBQUksRUFDSixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsMEJBQTBCLEVBQzFCLDJCQUEyQixFQUMzQixVQUFVLEVBQ1YsY0FBYyxHQUlqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsWUFBWSxFQUNaLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsMEJBQTBCLEVBRTFCLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsZ0NBQWdDLEVBQ2hDLG1CQUFtQixFQUVuQixpQ0FBaUMsRUFDakMsOEJBQThCLEdBRWpDLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFHckUsTUFBTSxrQkFBa0IsR0FBRyxFQUFFLENBQUM7QUFFOUIsV0FBVztBQWlCWCxJQUFhLHVCQUF1QiwrQkFBcEMsTUFBYSx1QkFDVCxTQUFRLDBCQUFrQztJQWlDMUMsWUFJSSxPQUF5QixFQUV6QixpQkFBb0MsRUFFbkIsWUFBa0MsRUFDZCxLQUFjO1FBRW5ELEtBQUssQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUhqQixpQkFBWSxHQUFaLFlBQVksQ0FBc0I7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUFTO1FB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O0FBR2I7SUFEQyxZQUFZLENBQUMsMkJBQTJCLENBQUM7eUVBQ0U7QUF5RDVDO0lBREMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO3FEQWlCckM7QUF6R1EsdUJBQXVCO0lBaEJuQyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsa0JBQWtCO1FBQzVCLDhxQ0FBMkM7UUFFM0MsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07UUFDL0MsU0FBUyxFQUFFO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLDJCQUEyQjtnQkFDcEMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx5QkFBdUIsQ0FBQzthQUN6RDtZQUNEO2dCQUNJLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMseUJBQXVCLENBQUM7YUFDekQ7U0FDSjs7S0FDSixDQUFDO0lBb0NPLFdBQUEsUUFBUSxFQUFFLENBQUE7SUFDVixXQUFBLElBQUksRUFBRSxDQUFBO0lBQ04sV0FBQSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7SUFFakIsV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUV6QixXQUFBLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0lBRXpCLFdBQUEsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0dBM0NkLHVCQUF1QixDQXNTbkM7U0F0U1ksdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aUNvbnRyb2wsXG4gICAgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2wsXG4gICAgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgIFRVSV9JU19JT1MsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIFR1aUlucHV0TW9kZVQsXG4gICAgVHVpTWFwcGVyLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgZm9ybWF0TnVtYmVyLFxuICAgIGdldEZyYWN0aW9uUGFydFBhZGRlZCxcbiAgICBtYXNrZWRNb25leVZhbHVlSXNFbXB0eSxcbiAgICBtYXNrZWROdW1iZXJTdHJpbmdUb051bWJlcixcbiAgICBOdW1iZXJGb3JtYXRTZXR0aW5ncyxcbiAgICBUVUlfREVDSU1BTF9TWU1CT0xTLFxuICAgIFRVSV9OVU1CRVJfRk9STUFULFxuICAgIHR1aUNyZWF0ZUF1dG9Db3JyZWN0ZWROdW1iZXJQaXBlLFxuICAgIHR1aUNyZWF0ZU51bWJlck1hc2ssXG4gICAgVHVpRGVjaW1hbFQsXG4gICAgdHVpRW5hYmxlQXV0b0NvcnJlY3REZWNpbWFsU3ltYm9sLFxuICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudCxcbiAgICBUdWlUZXh0TWFza09wdGlvbnMsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7UG9seW1vcnBoZXVzT3V0bGV0Q29tcG9uZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtUZXh0TWFza0NvbmZpZ30gZnJvbSAnYW5ndWxhcjItdGV4dC1tYXNrJztcblxuY29uc3QgREVGQVVMVF9NQVhfTEVOR1RIID0gMTg7XG5cbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1udW1iZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1udW1iZXIudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtbnVtYmVyLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpSW5wdXROdW1iZXJDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBBYnN0cmFjdFR1aUNvbnRyb2wsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUdWlJbnB1dE51bWJlckNvbXBvbmVudCksXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXROdW1iZXJDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sPG51bWJlcj5cbiAgICBpbXBsZW1lbnRzIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBWaWV3Q2hpbGQoVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJpbWl0aXZlVGV4dGZpZWxkPzogVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1pbiA9IC1JbmZpbml0eTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtYXggPSBJbmZpbml0eTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBkZWNpbWFsOiBUdWlEZWNpbWFsVCA9ICdub3QtemVybyc7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgcHJlY2lzaW9uID0gMjtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBwcmVmaXggPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBwb3N0Zml4ID0gJyc7XG5cbiAgICBAQ29udGVudENoaWxkKFBvbHltb3JwaGV1c091dGxldENvbXBvbmVudClcbiAgICByZWFkb25seSBwb2x5bW9ycGhldXNWYWx1ZUNvbnRlbnQ/OiB1bmtub3duO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpXG4gICAgICAgIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChUVUlfTlVNQkVSX0ZPUk1BVClcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBudW1iZXJGb3JtYXQ6IE51bWJlckZvcm1hdFNldHRpbmdzLFxuICAgICAgICBASW5qZWN0KFRVSV9JU19JT1MpIHByaXZhdGUgcmVhZG9ubHkgaXNJT1M6IGJvb2xlYW4sXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNvbnRyb2wsIGNoYW5nZURldGVjdG9yUmVmKTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiAhdGhpcy5wcmltaXRpdmVUZXh0ZmllbGQgfHwgdGhpcy5jb21wdXRlZERpc2FibGVkXG4gICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgIDogdGhpcy5wcmltaXRpdmVUZXh0ZmllbGQubmF0aXZlRm9jdXNhYmxlRWxlbWVudDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5wcmltaXRpdmVUZXh0ZmllbGQgJiYgdGhpcy5wcmltaXRpdmVUZXh0ZmllbGQuZm9jdXNlZDtcbiAgICB9XG5cbiAgICBnZXQgaXNOZWdhdGl2ZUFsbG93ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbiA8IDA7XG4gICAgfVxuXG4gICAgZ2V0IGlucHV0TW9kZSgpOiBUdWlJbnB1dE1vZGVUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVjaW1hbCA9PT0gJ25ldmVyJyA/ICdudW1lcmljJyA6ICdkZWNpbWFsJztcbiAgICB9XG5cbiAgICBnZXQgY2FsY3VsYXRlZE1heExlbmd0aCgpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBkZWNpbWFsUGFydCA9XG4gICAgICAgICAgICB0aGlzLmRlY2ltYWwgIT09ICduZXZlcicgJiZcbiAgICAgICAgICAgIHRoaXMubmF0aXZlVmFsdWUuaW5jbHVkZXModGhpcy5udW1iZXJGb3JtYXQuZGVjaW1hbFNlcGFyYXRvcik7XG4gICAgICAgIGNvbnN0IHByZWNpc2lvbiA9IGRlY2ltYWxQYXJ0ID8gdGhpcy5wcmVjaXNpb24gKyAxIDogMDtcbiAgICAgICAgY29uc3QgdGFrZVRob3VzYW5kID0gdGhpcy5udW1iZXJGb3JtYXQudGhvdXNhbmRTZXBhcmF0b3IucmVwZWF0KDUpLmxlbmd0aDtcblxuICAgICAgICByZXR1cm4gREVGQVVMVF9NQVhfTEVOR1RIICsgcHJlY2lzaW9uICsgdGFrZVRob3VzYW5kO1xuICAgIH1cblxuICAgIGdldCBmb3JtYXR0ZWRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRGb3JtYXR0ZWRWYWx1ZSh0aGlzLnZhbHVlIHx8IDApO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLmZvY3VzZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZVZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUgPT09IG51bGwgPyAnJyA6IHRoaXMuZm9ybWF0dGVkVmFsdWU7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi4wJywgWyckZXZlbnQnXSlcbiAgICBvblplcm8oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgY29uc3QgZGVjaW1hbCA9XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlLnNwbGl0KHRoaXMubnVtYmVyRm9ybWF0LmRlY2ltYWxTZXBhcmF0b3IpWzFdIHx8ICcnO1xuICAgICAgICBjb25zdCB7bmF0aXZlRm9jdXNhYmxlRWxlbWVudH0gPSB0aGlzO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGRlY2ltYWwubGVuZ3RoIDwgdGhpcy5wcmVjaXNpb24gfHxcbiAgICAgICAgICAgICFuYXRpdmVGb2N1c2FibGVFbGVtZW50IHx8XG4gICAgICAgICAgICAhbmF0aXZlRm9jdXNhYmxlRWxlbWVudC5zZWxlY3Rpb25TdGFydCB8fFxuICAgICAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZVtuYXRpdmVGb2N1c2FibGVFbGVtZW50LnNlbGVjdGlvblN0YXJ0XSAhPT0gJzAnXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgbmF0aXZlRm9jdXNhYmxlRWxlbWVudC5zZWxlY3Rpb25TdGFydCsrO1xuICAgIH1cblxuICAgIG1hc2s6IFR1aU1hcHBlcjxib29sZWFuLCBUZXh0TWFza0NvbmZpZz4gPSAoXG4gICAgICAgIGFsbG93TmVnYXRpdmU6IGJvb2xlYW4sXG4gICAgICAgIGRlY2ltYWw6IFR1aURlY2ltYWxULFxuICAgICAgICBkZWNpbWFsTGltaXQ6IG51bWJlcixcbiAgICAgICAgbmF0aXZlRm9jdXNhYmxlRWxlbWVudDogSFRNTElucHV0RWxlbWVudCB8IG51bGwsXG4gICAgKSA9PlxuICAgICAgICAoe1xuICAgICAgICAgICAgbWFzazogdHVpQ3JlYXRlTnVtYmVyTWFzayh7XG4gICAgICAgICAgICAgICAgYWxsb3dOZWdhdGl2ZSxcbiAgICAgICAgICAgICAgICBkZWNpbWFsTGltaXQsXG4gICAgICAgICAgICAgICAgYWxsb3dEZWNpbWFsOiBkZWNpbWFsICE9PSAnbmV2ZXInLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVEZWNpbWFsOiBkZWNpbWFsID09PSAnYWx3YXlzJyxcbiAgICAgICAgICAgICAgICBkZWNpbWFsU3ltYm9sOiB0aGlzLm51bWJlckZvcm1hdC5kZWNpbWFsU2VwYXJhdG9yLFxuICAgICAgICAgICAgICAgIHRob3VzYW5kU3ltYm9sOiB0aGlzLm51bWJlckZvcm1hdC50aG91c2FuZFNlcGFyYXRvcixcbiAgICAgICAgICAgICAgICBhdXRvQ29ycmVjdERlY2ltYWxTeW1ib2w6IHR1aUVuYWJsZUF1dG9Db3JyZWN0RGVjaW1hbFN5bWJvbChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQsXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgcGlwZTogdHVpQ3JlYXRlQXV0b0NvcnJlY3RlZE51bWJlclBpcGUoXG4gICAgICAgICAgICAgICAgZGVjaW1hbCA9PT0gJ2Fsd2F5cycgPyBkZWNpbWFsTGltaXQgOiAwLFxuICAgICAgICAgICAgICAgIHRoaXMubnVtYmVyRm9ybWF0LmRlY2ltYWxTZXBhcmF0b3IsXG4gICAgICAgICAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQudGhvdXNhbmRTZXBhcmF0b3IsXG4gICAgICAgICAgICAgICAgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCxcbiAgICAgICAgICAgICAgICBhbGxvd05lZ2F0aXZlLFxuICAgICAgICAgICAgICAgIHRoaXMuaXNJT1MsXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgZ3VpZGU6IGZhbHNlLFxuICAgICAgICB9IGFzIFR1aVRleHRNYXNrT3B0aW9ucyBhcyB1bmtub3duIGFzIFRleHRNYXNrQ29uZmlnKTtcblxuICAgIG9uVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAobWFza2VkTW9uZXlWYWx1ZUlzRW1wdHkodmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKG51bGwpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc05hdGl2ZVZhbHVlTm90RmluaXNoZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNhcHBlZCA9IHRoaXMuYWJzb2x1dGVDYXBJbnB1dFZhbHVlKHZhbHVlKTtcblxuICAgICAgICBpZiAoY2FwcGVkID09PSBudWxsIHx8IGlzTmFOKGNhcHBlZCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoY2FwcGVkKTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBjYXBwZWQgIT09XG4gICAgICAgICAgICBtYXNrZWROdW1iZXJTdHJpbmdUb051bWJlcihcbiAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICB0aGlzLm51bWJlckZvcm1hdC5kZWNpbWFsU2VwYXJhdG9yLFxuICAgICAgICAgICAgICAgIHRoaXMubnVtYmVyRm9ybWF0LnRob3VzYW5kU2VwYXJhdG9yLFxuICAgICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSB0aGlzLmZvcm1hdHRlZFZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmICghVFVJX0RFQ0lNQUxfU1lNQk9MUy5pbmNsdWRlcyhldmVudC5rZXkpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5kZWNpbWFsID09PSAnbmV2ZXInKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5uYXRpdmVWYWx1ZS5pbmNsdWRlcyh0aGlzLm51bWJlckZvcm1hdC5kZWNpbWFsU2VwYXJhdG9yKSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRBZnRlckNvbW1hKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkZvY3VzZWQoZm9jdXNlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoZm9jdXNlZCk7XG5cbiAgICAgICAgaWYgKGZvY3VzZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5hdGl2ZU51bWJlclZhbHVlID0gdGhpcy5uYXRpdmVOdW1iZXJWYWx1ZTtcblxuICAgICAgICBpZiAoaXNOYU4obmF0aXZlTnVtYmVyVmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFyKCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNsYW1wZWQgPSBNYXRoLm1pbih0aGlzLm1heCwgTWF0aC5tYXgodGhpcy5taW4sIG5hdGl2ZU51bWJlclZhbHVlKSk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShjbGFtcGVkKTtcbiAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9IHRoaXMuZm9ybWF0dGVkVmFsdWU7XG4gICAgfVxuXG4gICAgb25Ib3ZlcmVkKGhvdmVyZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVIb3ZlcmVkKGhvdmVyZWQpO1xuICAgIH1cblxuICAgIG9uUHJlc3NlZChwcmVzc2VkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlUHJlc3NlZChwcmVzc2VkKTtcbiAgICB9XG5cbiAgICBnZXRGb3JtYXR0ZWRWYWx1ZSh2YWx1ZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgYWJzVmFsdWUgPSBNYXRoLmFicyh2YWx1ZSk7XG4gICAgICAgIGNvbnN0IGhhc0ZyYWN0aW9uID0gYWJzVmFsdWUgJSAxID4gMDtcbiAgICAgICAgbGV0IGxpbWl0ID0gdGhpcy5kZWNpbWFsID09PSAnYWx3YXlzJyB8fCBoYXNGcmFjdGlvbiA/IHRoaXMucHJlY2lzaW9uIDogMDtcblxuICAgICAgICBjb25zdCBmcmFjdGlvbiA9IGhhc0ZyYWN0aW9uID8gZ2V0RnJhY3Rpb25QYXJ0UGFkZGVkKHZhbHVlLCB0aGlzLnByZWNpc2lvbikgOiAnJztcblxuICAgICAgICBpZiAodGhpcy5mb2N1c2VkICYmIHRoaXMuZGVjaW1hbCAhPT0gJ2Fsd2F5cycpIHtcbiAgICAgICAgICAgIGxpbWl0ID0gZnJhY3Rpb24ubGVuZ3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZvcm1hdE51bWJlcihcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgbGltaXQsXG4gICAgICAgICAgICB0aGlzLm51bWJlckZvcm1hdC5kZWNpbWFsU2VwYXJhdG9yLFxuICAgICAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQudGhvdXNhbmRTZXBhcmF0b3IsXG4gICAgICAgICAgICB0aGlzLm51bWJlckZvcm1hdC56ZXJvUGFkZGluZyxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpc05hdGl2ZVZhbHVlTm90RmluaXNoZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IG5hdGl2ZU51bWJlclZhbHVlID0gdGhpcy5uYXRpdmVOdW1iZXJWYWx1ZTtcblxuICAgICAgICByZXR1cm4gbmF0aXZlTnVtYmVyVmFsdWUgPCAwXG4gICAgICAgICAgICA/IG5hdGl2ZU51bWJlclZhbHVlID4gdGhpcy5tYXhcbiAgICAgICAgICAgIDogbmF0aXZlTnVtYmVyVmFsdWUgPCB0aGlzLm1pbjtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCA/IHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC52YWx1ZSA6ICcnO1xuICAgIH1cblxuICAgIHNldCBuYXRpdmVWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghdGhpcy5wcmltaXRpdmVUZXh0ZmllbGQgfHwgIXRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wcmltaXRpdmVUZXh0ZmllbGQudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgbmF0aXZlTnVtYmVyVmFsdWUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIG1hc2tlZE51bWJlclN0cmluZ1RvTnVtYmVyKFxuICAgICAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSxcbiAgICAgICAgICAgIHRoaXMubnVtYmVyRm9ybWF0LmRlY2ltYWxTZXBhcmF0b3IsXG4gICAgICAgICAgICB0aGlzLm51bWJlckZvcm1hdC50aG91c2FuZFNlcGFyYXRvcixcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsZWFyKCkge1xuICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gJyc7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUobnVsbCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhYnNvbHV0ZUNhcElucHV0VmFsdWUoaW5wdXRWYWx1ZTogc3RyaW5nKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gbWFza2VkTnVtYmVyU3RyaW5nVG9OdW1iZXIoXG4gICAgICAgICAgICBpbnB1dFZhbHVlLFxuICAgICAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQuZGVjaW1hbFNlcGFyYXRvcixcbiAgICAgICAgICAgIHRoaXMubnVtYmVyRm9ybWF0LnRob3VzYW5kU2VwYXJhdG9yLFxuICAgICAgICApO1xuICAgICAgICBjb25zdCBjYXBwZWQgPVxuICAgICAgICAgICAgdmFsdWUgPCAwXG4gICAgICAgICAgICAgICAgPyBNYXRoLm1heChNYXRoLm1heCh0aGlzLm1pbiwgTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIpLCB2YWx1ZSlcbiAgICAgICAgICAgICAgICA6IE1hdGgubWluKHZhbHVlLCBNYXRoLm1pbih0aGlzLm1heCwgTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpKTtcbiAgICAgICAgY29uc3QgaW5lbGlnaWJsZVZhbHVlID0gaXNOYU4oY2FwcGVkKSB8fCBjYXBwZWQgPCB0aGlzLm1pbiB8fCBjYXBwZWQgPiB0aGlzLm1heDtcblxuICAgICAgICByZXR1cm4gaW5lbGlnaWJsZVZhbHVlID8gbnVsbCA6IGNhcHBlZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldENhcmV0QWZ0ZXJDb21tYSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGFmdGVyQ29tbWFQb3NpdGlvbiA9IHRoaXMubmF0aXZlVmFsdWUubGVuZ3RoIC0gdGhpcy5wcmVjaXNpb247XG5cbiAgICAgICAgdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgICAgYWZ0ZXJDb21tYVBvc2l0aW9uLFxuICAgICAgICAgICAgYWZ0ZXJDb21tYVBvc2l0aW9uLFxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
241
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1udW1iZXIvIiwic291cmNlcyI6WyJpbnB1dC1udW1iZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLElBQUksRUFDSixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsMEJBQTBCLEVBQzFCLDJCQUEyQixFQUMzQixVQUFVLEVBQ1YsY0FBYyxHQUlqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsWUFBWSxFQUNaLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsMEJBQTBCLEVBRTFCLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsZ0NBQWdDLEVBQ2hDLG1CQUFtQixFQUVuQixpQ0FBaUMsRUFDakMsOEJBQThCLEdBRWpDLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFHckUsTUFBTSxrQkFBa0IsR0FBRyxFQUFFLENBQUM7QUFFOUIsV0FBVztBQWlCWCxJQUFhLHVCQUF1QiwrQkFBcEMsTUFBYSx1QkFDVCxTQUFRLDBCQUFrQztJQWlDMUMsWUFJSSxPQUF5QixFQUV6QixpQkFBb0MsRUFFbkIsWUFBa0MsRUFDZCxLQUFjO1FBRW5ELEtBQUssQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUhqQixpQkFBWSxHQUFaLFlBQVksQ0FBc0I7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUFTO1FB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O0FBR2I7SUFEQyxZQUFZLENBQUMsMkJBQTJCLENBQUM7eUVBQ0U7QUF5RDVDO0lBREMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO3FEQWlCckM7QUF6R1EsdUJBQXVCO0lBaEJuQyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsa0JBQWtCO1FBQzVCLHl1Q0FBMkM7UUFFM0MsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07UUFDL0MsU0FBUyxFQUFFO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLDJCQUEyQjtnQkFDcEMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx5QkFBdUIsQ0FBQzthQUN6RDtZQUNEO2dCQUNJLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMseUJBQXVCLENBQUM7YUFDekQ7U0FDSjs7S0FDSixDQUFDO0lBb0NPLFdBQUEsUUFBUSxFQUFFLENBQUE7SUFDVixXQUFBLElBQUksRUFBRSxDQUFBO0lBQ04sV0FBQSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7SUFFakIsV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUV6QixXQUFBLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0lBRXpCLFdBQUEsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0dBM0NkLHVCQUF1QixDQXNTbkM7U0F0U1ksdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aUNvbnRyb2wsXG4gICAgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2wsXG4gICAgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgIFRVSV9JU19JT1MsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIFR1aUlucHV0TW9kZVQsXG4gICAgVHVpTWFwcGVyLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgZm9ybWF0TnVtYmVyLFxuICAgIGdldEZyYWN0aW9uUGFydFBhZGRlZCxcbiAgICBtYXNrZWRNb25leVZhbHVlSXNFbXB0eSxcbiAgICBtYXNrZWROdW1iZXJTdHJpbmdUb051bWJlcixcbiAgICBOdW1iZXJGb3JtYXRTZXR0aW5ncyxcbiAgICBUVUlfREVDSU1BTF9TWU1CT0xTLFxuICAgIFRVSV9OVU1CRVJfRk9STUFULFxuICAgIHR1aUNyZWF0ZUF1dG9Db3JyZWN0ZWROdW1iZXJQaXBlLFxuICAgIHR1aUNyZWF0ZU51bWJlck1hc2ssXG4gICAgVHVpRGVjaW1hbFQsXG4gICAgdHVpRW5hYmxlQXV0b0NvcnJlY3REZWNpbWFsU3ltYm9sLFxuICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudCxcbiAgICBUdWlUZXh0TWFza09wdGlvbnMsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7UG9seW1vcnBoZXVzT3V0bGV0Q29tcG9uZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtUZXh0TWFza0NvbmZpZ30gZnJvbSAnYW5ndWxhcjItdGV4dC1tYXNrJztcblxuY29uc3QgREVGQVVMVF9NQVhfTEVOR1RIID0gMTg7XG5cbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1udW1iZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1udW1iZXIudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtbnVtYmVyLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpSW5wdXROdW1iZXJDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBBYnN0cmFjdFR1aUNvbnRyb2wsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUdWlJbnB1dE51bWJlckNvbXBvbmVudCksXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXROdW1iZXJDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sPG51bWJlcj5cbiAgICBpbXBsZW1lbnRzIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBWaWV3Q2hpbGQoVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJpbWl0aXZlVGV4dGZpZWxkPzogVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1pbiA9IC1JbmZpbml0eTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtYXggPSBJbmZpbml0eTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBkZWNpbWFsOiBUdWlEZWNpbWFsVCA9ICdub3QtemVybyc7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgcHJlY2lzaW9uID0gMjtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBwcmVmaXggPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBwb3N0Zml4ID0gJyc7XG5cbiAgICBAQ29udGVudENoaWxkKFBvbHltb3JwaGV1c091dGxldENvbXBvbmVudClcbiAgICByZWFkb25seSBwb2x5bW9ycGhldXNWYWx1ZUNvbnRlbnQ/OiB1bmtub3duO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpXG4gICAgICAgIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChUVUlfTlVNQkVSX0ZPUk1BVClcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBudW1iZXJGb3JtYXQ6IE51bWJlckZvcm1hdFNldHRpbmdzLFxuICAgICAgICBASW5qZWN0KFRVSV9JU19JT1MpIHByaXZhdGUgcmVhZG9ubHkgaXNJT1M6IGJvb2xlYW4sXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNvbnRyb2wsIGNoYW5nZURldGVjdG9yUmVmKTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiAhdGhpcy5wcmltaXRpdmVUZXh0ZmllbGQgfHwgdGhpcy5jb21wdXRlZERpc2FibGVkXG4gICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgIDogdGhpcy5wcmltaXRpdmVUZXh0ZmllbGQubmF0aXZlRm9jdXNhYmxlRWxlbWVudDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5wcmltaXRpdmVUZXh0ZmllbGQgJiYgdGhpcy5wcmltaXRpdmVUZXh0ZmllbGQuZm9jdXNlZDtcbiAgICB9XG5cbiAgICBnZXQgaXNOZWdhdGl2ZUFsbG93ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbiA8IDA7XG4gICAgfVxuXG4gICAgZ2V0IGlucHV0TW9kZSgpOiBUdWlJbnB1dE1vZGVUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVjaW1hbCA9PT0gJ25ldmVyJyA/ICdudW1lcmljJyA6ICdkZWNpbWFsJztcbiAgICB9XG5cbiAgICBnZXQgY2FsY3VsYXRlZE1heExlbmd0aCgpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBkZWNpbWFsUGFydCA9XG4gICAgICAgICAgICB0aGlzLmRlY2ltYWwgIT09ICduZXZlcicgJiZcbiAgICAgICAgICAgIHRoaXMubmF0aXZlVmFsdWUuaW5jbHVkZXModGhpcy5udW1iZXJGb3JtYXQuZGVjaW1hbFNlcGFyYXRvcik7XG4gICAgICAgIGNvbnN0IHByZWNpc2lvbiA9IGRlY2ltYWxQYXJ0ID8gdGhpcy5wcmVjaXNpb24gKyAxIDogMDtcbiAgICAgICAgY29uc3QgdGFrZVRob3VzYW5kID0gdGhpcy5udW1iZXJGb3JtYXQudGhvdXNhbmRTZXBhcmF0b3IucmVwZWF0KDUpLmxlbmd0aDtcblxuICAgICAgICByZXR1cm4gREVGQVVMVF9NQVhfTEVOR1RIICsgcHJlY2lzaW9uICsgdGFrZVRob3VzYW5kO1xuICAgIH1cblxuICAgIGdldCBmb3JtYXR0ZWRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRGb3JtYXR0ZWRWYWx1ZSh0aGlzLnZhbHVlIHx8IDApO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLmZvY3VzZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZVZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUgPT09IG51bGwgPyAnJyA6IHRoaXMuZm9ybWF0dGVkVmFsdWU7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi4wJywgWyckZXZlbnQnXSlcbiAgICBvblplcm8oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgY29uc3QgZGVjaW1hbCA9XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlLnNwbGl0KHRoaXMubnVtYmVyRm9ybWF0LmRlY2ltYWxTZXBhcmF0b3IpWzFdIHx8ICcnO1xuICAgICAgICBjb25zdCB7bmF0aXZlRm9jdXNhYmxlRWxlbWVudH0gPSB0aGlzO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGRlY2ltYWwubGVuZ3RoIDwgdGhpcy5wcmVjaXNpb24gfHxcbiAgICAgICAgICAgICFuYXRpdmVGb2N1c2FibGVFbGVtZW50IHx8XG4gICAgICAgICAgICAhbmF0aXZlRm9jdXNhYmxlRWxlbWVudC5zZWxlY3Rpb25TdGFydCB8fFxuICAgICAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZVtuYXRpdmVGb2N1c2FibGVFbGVtZW50LnNlbGVjdGlvblN0YXJ0XSAhPT0gJzAnXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgbmF0aXZlRm9jdXNhYmxlRWxlbWVudC5zZWxlY3Rpb25TdGFydCsrO1xuICAgIH1cblxuICAgIG1hc2s6IFR1aU1hcHBlcjxib29sZWFuLCBUZXh0TWFza0NvbmZpZz4gPSAoXG4gICAgICAgIGFsbG93TmVnYXRpdmU6IGJvb2xlYW4sXG4gICAgICAgIGRlY2ltYWw6IFR1aURlY2ltYWxULFxuICAgICAgICBkZWNpbWFsTGltaXQ6IG51bWJlcixcbiAgICAgICAgbmF0aXZlRm9jdXNhYmxlRWxlbWVudDogSFRNTElucHV0RWxlbWVudCB8IG51bGwsXG4gICAgKSA9PlxuICAgICAgICAoe1xuICAgICAgICAgICAgbWFzazogdHVpQ3JlYXRlTnVtYmVyTWFzayh7XG4gICAgICAgICAgICAgICAgYWxsb3dOZWdhdGl2ZSxcbiAgICAgICAgICAgICAgICBkZWNpbWFsTGltaXQsXG4gICAgICAgICAgICAgICAgYWxsb3dEZWNpbWFsOiBkZWNpbWFsICE9PSAnbmV2ZXInLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVEZWNpbWFsOiBkZWNpbWFsID09PSAnYWx3YXlzJyxcbiAgICAgICAgICAgICAgICBkZWNpbWFsU3ltYm9sOiB0aGlzLm51bWJlckZvcm1hdC5kZWNpbWFsU2VwYXJhdG9yLFxuICAgICAgICAgICAgICAgIHRob3VzYW5kU3ltYm9sOiB0aGlzLm51bWJlckZvcm1hdC50aG91c2FuZFNlcGFyYXRvcixcbiAgICAgICAgICAgICAgICBhdXRvQ29ycmVjdERlY2ltYWxTeW1ib2w6IHR1aUVuYWJsZUF1dG9Db3JyZWN0RGVjaW1hbFN5bWJvbChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQsXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgcGlwZTogdHVpQ3JlYXRlQXV0b0NvcnJlY3RlZE51bWJlclBpcGUoXG4gICAgICAgICAgICAgICAgZGVjaW1hbCA9PT0gJ2Fsd2F5cycgPyBkZWNpbWFsTGltaXQgOiAwLFxuICAgICAgICAgICAgICAgIHRoaXMubnVtYmVyRm9ybWF0LmRlY2ltYWxTZXBhcmF0b3IsXG4gICAgICAgICAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQudGhvdXNhbmRTZXBhcmF0b3IsXG4gICAgICAgICAgICAgICAgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCxcbiAgICAgICAgICAgICAgICBhbGxvd05lZ2F0aXZlLFxuICAgICAgICAgICAgICAgIHRoaXMuaXNJT1MsXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgZ3VpZGU6IGZhbHNlLFxuICAgICAgICB9IGFzIFR1aVRleHRNYXNrT3B0aW9ucyBhcyB1bmtub3duIGFzIFRleHRNYXNrQ29uZmlnKTtcblxuICAgIG9uVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAobWFza2VkTW9uZXlWYWx1ZUlzRW1wdHkodmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKG51bGwpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc05hdGl2ZVZhbHVlTm90RmluaXNoZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNhcHBlZCA9IHRoaXMuYWJzb2x1dGVDYXBJbnB1dFZhbHVlKHZhbHVlKTtcblxuICAgICAgICBpZiAoY2FwcGVkID09PSBudWxsIHx8IGlzTmFOKGNhcHBlZCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoY2FwcGVkKTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBjYXBwZWQgIT09XG4gICAgICAgICAgICBtYXNrZWROdW1iZXJTdHJpbmdUb051bWJlcihcbiAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICB0aGlzLm51bWJlckZvcm1hdC5kZWNpbWFsU2VwYXJhdG9yLFxuICAgICAgICAgICAgICAgIHRoaXMubnVtYmVyRm9ybWF0LnRob3VzYW5kU2VwYXJhdG9yLFxuICAgICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSB0aGlzLmZvcm1hdHRlZFZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmICghVFVJX0RFQ0lNQUxfU1lNQk9MUy5pbmNsdWRlcyhldmVudC5rZXkpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5kZWNpbWFsID09PSAnbmV2ZXInKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5uYXRpdmVWYWx1ZS5pbmNsdWRlcyh0aGlzLm51bWJlckZvcm1hdC5kZWNpbWFsU2VwYXJhdG9yKSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRBZnRlckNvbW1hKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkZvY3VzZWQoZm9jdXNlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoZm9jdXNlZCk7XG5cbiAgICAgICAgaWYgKGZvY3VzZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5hdGl2ZU51bWJlclZhbHVlID0gdGhpcy5uYXRpdmVOdW1iZXJWYWx1ZTtcblxuICAgICAgICBpZiAoaXNOYU4obmF0aXZlTnVtYmVyVmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFyKCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNsYW1wZWQgPSBNYXRoLm1pbih0aGlzLm1heCwgTWF0aC5tYXgodGhpcy5taW4sIG5hdGl2ZU51bWJlclZhbHVlKSk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShjbGFtcGVkKTtcbiAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9IHRoaXMuZm9ybWF0dGVkVmFsdWU7XG4gICAgfVxuXG4gICAgb25Ib3ZlcmVkKGhvdmVyZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVIb3ZlcmVkKGhvdmVyZWQpO1xuICAgIH1cblxuICAgIG9uUHJlc3NlZChwcmVzc2VkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlUHJlc3NlZChwcmVzc2VkKTtcbiAgICB9XG5cbiAgICBnZXRGb3JtYXR0ZWRWYWx1ZSh2YWx1ZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgYWJzVmFsdWUgPSBNYXRoLmFicyh2YWx1ZSk7XG4gICAgICAgIGNvbnN0IGhhc0ZyYWN0aW9uID0gYWJzVmFsdWUgJSAxID4gMDtcbiAgICAgICAgbGV0IGxpbWl0ID0gdGhpcy5kZWNpbWFsID09PSAnYWx3YXlzJyB8fCBoYXNGcmFjdGlvbiA/IHRoaXMucHJlY2lzaW9uIDogMDtcblxuICAgICAgICBjb25zdCBmcmFjdGlvbiA9IGhhc0ZyYWN0aW9uID8gZ2V0RnJhY3Rpb25QYXJ0UGFkZGVkKHZhbHVlLCB0aGlzLnByZWNpc2lvbikgOiAnJztcblxuICAgICAgICBpZiAodGhpcy5mb2N1c2VkICYmIHRoaXMuZGVjaW1hbCAhPT0gJ2Fsd2F5cycpIHtcbiAgICAgICAgICAgIGxpbWl0ID0gZnJhY3Rpb24ubGVuZ3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZvcm1hdE51bWJlcihcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgbGltaXQsXG4gICAgICAgICAgICB0aGlzLm51bWJlckZvcm1hdC5kZWNpbWFsU2VwYXJhdG9yLFxuICAgICAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQudGhvdXNhbmRTZXBhcmF0b3IsXG4gICAgICAgICAgICB0aGlzLm51bWJlckZvcm1hdC56ZXJvUGFkZGluZyxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpc05hdGl2ZVZhbHVlTm90RmluaXNoZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IG5hdGl2ZU51bWJlclZhbHVlID0gdGhpcy5uYXRpdmVOdW1iZXJWYWx1ZTtcblxuICAgICAgICByZXR1cm4gbmF0aXZlTnVtYmVyVmFsdWUgPCAwXG4gICAgICAgICAgICA/IG5hdGl2ZU51bWJlclZhbHVlID4gdGhpcy5tYXhcbiAgICAgICAgICAgIDogbmF0aXZlTnVtYmVyVmFsdWUgPCB0aGlzLm1pbjtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCA/IHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC52YWx1ZSA6ICcnO1xuICAgIH1cblxuICAgIHNldCBuYXRpdmVWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghdGhpcy5wcmltaXRpdmVUZXh0ZmllbGQgfHwgIXRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wcmltaXRpdmVUZXh0ZmllbGQudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgbmF0aXZlTnVtYmVyVmFsdWUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIG1hc2tlZE51bWJlclN0cmluZ1RvTnVtYmVyKFxuICAgICAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSxcbiAgICAgICAgICAgIHRoaXMubnVtYmVyRm9ybWF0LmRlY2ltYWxTZXBhcmF0b3IsXG4gICAgICAgICAgICB0aGlzLm51bWJlckZvcm1hdC50aG91c2FuZFNlcGFyYXRvcixcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsZWFyKCkge1xuICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gJyc7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUobnVsbCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhYnNvbHV0ZUNhcElucHV0VmFsdWUoaW5wdXRWYWx1ZTogc3RyaW5nKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gbWFza2VkTnVtYmVyU3RyaW5nVG9OdW1iZXIoXG4gICAgICAgICAgICBpbnB1dFZhbHVlLFxuICAgICAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQuZGVjaW1hbFNlcGFyYXRvcixcbiAgICAgICAgICAgIHRoaXMubnVtYmVyRm9ybWF0LnRob3VzYW5kU2VwYXJhdG9yLFxuICAgICAgICApO1xuICAgICAgICBjb25zdCBjYXBwZWQgPVxuICAgICAgICAgICAgdmFsdWUgPCAwXG4gICAgICAgICAgICAgICAgPyBNYXRoLm1heChNYXRoLm1heCh0aGlzLm1pbiwgTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIpLCB2YWx1ZSlcbiAgICAgICAgICAgICAgICA6IE1hdGgubWluKHZhbHVlLCBNYXRoLm1pbih0aGlzLm1heCwgTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpKTtcbiAgICAgICAgY29uc3QgaW5lbGlnaWJsZVZhbHVlID0gaXNOYU4oY2FwcGVkKSB8fCBjYXBwZWQgPCB0aGlzLm1pbiB8fCBjYXBwZWQgPiB0aGlzLm1heDtcblxuICAgICAgICByZXR1cm4gaW5lbGlnaWJsZVZhbHVlID8gbnVsbCA6IGNhcHBlZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldENhcmV0QWZ0ZXJDb21tYSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGFmdGVyQ29tbWFQb3NpdGlvbiA9IHRoaXMubmF0aXZlVmFsdWUubGVuZ3RoIC0gdGhpcy5wcmVjaXNpb247XG5cbiAgICAgICAgdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgICAgYWZ0ZXJDb21tYVBvc2l0aW9uLFxuICAgICAgICAgICAgYWZ0ZXJDb21tYVBvc2l0aW9uLFxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
@@ -80,7 +80,7 @@ __decorate([
80
80
  TuiInputPasswordComponent = TuiInputPasswordComponent_1 = __decorate([
81
81
  Component({
82
82
  selector: 'tui-input-password',
83
- template: "<tui-primitive-textfield\n class=\"textfield\"\n [pseudoFocused]=\"pseudoFocused\"\n [pseudoHovered]=\"pseudoHovered\"\n [pseudoPressed]=\"pseudoPressed\"\n [invalid]=\"computedInvalid\"\n [focusable]=\"focusable\"\n [nativeId]=\"nativeId\"\n [tuiTextfieldType]=\"inputType\"\n [disabled]=\"computedDisabled\"\n [readOnly]=\"readOnly\"\n [iconContent]=\"interactive ? iconContent : null\"\n [value]=\"value\"\n (valueChange)=\"onValueChange($event)\"\n (focusedChange)=\"onFocused($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (pressedChange)=\"onPressed($event)\"\n>\n <ng-content></ng-content>\n <ng-content select=\"input\" ngProjectAs=\"input\"></ng-content>\n</tui-primitive-textfield>\n\n<ng-template #iconContent=\"polymorpheus\" [polymorpheus]=\"type\">\n <span\n *tuiLet=\"passwordTexts$ | async as texts\"\n polymorpheus-outlet\n [content]=\"icon\"\n [context]=\"context\"\n >\n <ng-template let-icon>\n <tui-svg\n automation-id=\"tui-password__icon\"\n tuiHintId=\"not_required\"\n class=\"icon\"\n [tuiHint]=\"texts[0] && texts[1] && hintContent\"\n [tuiHintDirection]=\"hintController.direction\"\n [tuiHintMode]=\"computedMode$ | async\"\n [src]=\"icon\"\n (click)=\"togglePasswordVisibility()\"\n ></tui-svg>\n </ng-template>\n\n <ng-template #hintContent=\"polymorpheus\" polymorpheus>\n {{ isPasswordHidden ? texts[0] : texts[1] }}\n </ng-template>\n </span>\n</ng-template>\n",
83
+ template: "<tui-primitive-textfield\n class=\"textfield\"\n [pseudoFocused]=\"pseudoFocused\"\n [pseudoHovered]=\"pseudoHovered\"\n [pseudoPressed]=\"pseudoPressed\"\n [invalid]=\"computedInvalid\"\n [focusable]=\"focusable\"\n [nativeId]=\"nativeId\"\n [tuiTextfieldType]=\"inputType\"\n [disabled]=\"computedDisabled\"\n [readOnly]=\"readOnly\"\n [iconContent]=\"interactive ? iconContent : null\"\n [value]=\"value\"\n (valueChange)=\"onValueChange($event)\"\n (focusedChange)=\"onFocused($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (pressedChange)=\"onPressed($event)\"\n>\n <ng-content></ng-content>\n <ng-content\n select=\"input\"\n ngProjectAs=\"input\"\n ></ng-content>\n</tui-primitive-textfield>\n\n<ng-template\n #iconContent=\"polymorpheus\"\n [polymorpheus]=\"type\"\n>\n <span\n *tuiLet=\"passwordTexts$ | async as texts\"\n polymorpheus-outlet\n [content]=\"icon\"\n [context]=\"context\"\n >\n <ng-template let-icon>\n <tui-svg\n automation-id=\"tui-password__icon\"\n tuiHintId=\"not_required\"\n class=\"icon\"\n [tuiHint]=\"texts[0] && texts[1] && hintContent\"\n [tuiHintDirection]=\"hintController.direction\"\n [tuiHintMode]=\"computedMode$ | async\"\n [src]=\"icon\"\n (click)=\"togglePasswordVisibility()\"\n ></tui-svg>\n </ng-template>\n\n <ng-template\n #hintContent=\"polymorpheus\"\n polymorpheus\n >\n {{ isPasswordHidden ? texts[0] : texts[1] }}\n </ng-template>\n </span>\n</ng-template>\n",
84
84
  changeDetection: ChangeDetectionStrategy.OnPush,
85
85
  providers: [
86
86
  {
@@ -107,4 +107,4 @@ TuiInputPasswordComponent = TuiInputPasswordComponent_1 = __decorate([
107
107
  __param(6, Inject(TUI_MODE))
108
108
  ], TuiInputPasswordComponent);
109
109
  export { TuiInputPasswordComponent };
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGFzc3dvcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LXBhc3N3b3JkLyIsInNvdXJjZXMiOlsiaW5wdXQtcGFzc3dvcmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sUUFBUSxFQUNSLElBQUksRUFDSixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsMkJBQTJCLEVBSzNCLE9BQU8sR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsd0JBQXdCLEVBQ3hCLGFBQWEsRUFDYiwyQkFBMkIsRUFDM0IsUUFBUSxFQUNSLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsMEJBQTBCLEVBQzFCLFlBQVksRUFDWiw4QkFBOEIsRUFDOUIsUUFBUSxFQUNSLFFBQVEsRUFDUix5QkFBeUIsR0FDNUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RCxPQUFPLEVBQUMsYUFBYSxFQUFFLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTlDLE9BQU8sRUFDSCwwQkFBMEIsR0FFN0IsTUFBTSwwQkFBMEIsQ0FBQztBQUVsQyxXQUFXO0FBbUJYLElBQWEseUJBQXlCLGlDQUF0QyxNQUFhLHlCQUNULFNBQVEsa0JBQTBCO0lBcUJsQyxZQUlJLE9BQXlCLEVBQ0UsaUJBQW9DLEVBRTlDLGFBQXdDLEVBRWhELGNBQTRDLEVBRTVDLE9BQWdDLEVBRWhD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QyxDQUFBO0lBRW5DLFdBQUEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0dBcENaLHlCQUF5QixDQThGckM7U0E5RlkseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbmplY3QsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlDb250cm9sLFxuICAgIFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0LFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICBUdWlJbnB1dFR5cGVULFxuICAgIFR1aU5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQsXG4gICAgdHVpUHVyZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIEhJTlRfQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICBNT0RFX1BST1ZJREVSLFxuICAgIFRVSV9ISU5UX1dBVENIRURfQ09OVFJPTExFUixcbiAgICBUVUlfTU9ERSxcbiAgICBUVUlfVEVYVEZJRUxEX1NJWkUsXG4gICAgVHVpQnJpZ2h0bmVzcyxcbiAgICBUdWlIaW50Q29udHJvbGxlckRpcmVjdGl2ZSxcbiAgICBUdWlIaW50TW9kZVQsXG4gICAgVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgIFR1aVNpemVMLFxuICAgIFR1aVNpemVTLFxuICAgIFR1aVRleHRmaWVsZFNpemVEaXJlY3RpdmUsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7VFVJX1BBU1NXT1JEX1RFWFRTfSBmcm9tICdAdGFpZ2EtdWkva2l0L3Rva2Vucyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge2NvbWJpbmVMYXRlc3QsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHN0YXJ0V2l0aH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICAgIFRVSV9JTlBVVF9QQVNTV09SRF9PUFRJT05TLFxuICAgIFR1aUlucHV0UGFzc3dvcmRPcHRpb25zLFxufSBmcm9tICcuL2lucHV0LXBhc3N3b3JkLW9wdGlvbnMnO1xuXG4vLyBAZHluYW1pY1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtcGFzc3dvcmQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1wYXNzd29yZC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC1wYXNzd29yZC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR1aUlucHV0UGFzc3dvcmRDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBBYnN0cmFjdFR1aUNvbnRyb2wsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUdWlJbnB1dFBhc3N3b3JkQ29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICAgICAgSElOVF9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgICAgICBNT0RFX1BST1ZJREVSLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0UGFzc3dvcmRDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpQ29udHJvbDxzdHJpbmc+XG4gICAgaW1wbGVtZW50cyBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3JcbntcbiAgICBAVmlld0NoaWxkKFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZD86IFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudDtcblxuICAgIGlzUGFzc3dvcmRIaWRkZW4gPSB0cnVlO1xuXG4gICAgcmVhZG9ubHkgY29tcHV0ZWRNb2RlJDogT2JzZXJ2YWJsZTxUdWlIaW50TW9kZVQgfCBudWxsPiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLm1vZGUkLnBpcGUobWFwKHZhbCA9PiAodmFsID09PSAnb25EYXJrJyA/ICdvbkRhcmsnIDogbnVsbCkpKSxcbiAgICAgICAgdGhpcy5oaW50Q29udHJvbGxlci5jaGFuZ2UkLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgobnVsbCksXG4gICAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5oaW50Q29udHJvbGxlci5tb2RlKSxcbiAgICAgICAgKSxcbiAgICBdKS5waXBlKFxuICAgICAgICBtYXAoKFttb2RlLCBjb250cm9sbGVyXSkgPT4gY29udHJvbGxlciB8fCBtb2RlKSxcbiAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICk7XG5cbiAgICByZWFkb25seSB0eXBlITogVHVpQ29udGV4dFdpdGhJbXBsaWNpdDxUdWlTaXplUyB8IFR1aVNpemVMPjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9TSVpFKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZFNpemU6IFR1aVRleHRmaWVsZFNpemVEaXJlY3RpdmUsXG4gICAgICAgIEBJbmplY3QoVFVJX1BBU1NXT1JEX1RFWFRTKVxuICAgICAgICByZWFkb25seSBwYXNzd29yZFRleHRzJDogT2JzZXJ2YWJsZTxbc3RyaW5nLCBzdHJpbmddPixcbiAgICAgICAgQEluamVjdChUVUlfSU5QVVRfUEFTU1dPUkRfT1BUSU9OUylcbiAgICAgICAgcmVhZG9ubHkgb3B0aW9uczogVHVpSW5wdXRQYXNzd29yZE9wdGlvbnMsXG4gICAgICAgIEBJbmplY3QoVFVJX0hJTlRfV0FUQ0hFRF9DT05UUk9MTEVSKVxuICAgICAgICByZWFkb25seSBoaW50Q29udHJvbGxlcjogVHVpSGludENvbnRyb2xsZXJEaXJlY3RpdmUsXG4gICAgICAgIEBJbmplY3QoVFVJX01PREUpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbW9kZSQ6IE9ic2VydmFibGU8VHVpQnJpZ2h0bmVzcyB8IG51bGw+LFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlZERpc2FibGVkIHx8ICF0aGlzLnRleHRmaWVsZFxuICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICA6IHRoaXMudGV4dGZpZWxkLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMudGV4dGZpZWxkICYmIHRoaXMudGV4dGZpZWxkLmZvY3VzZWQ7XG4gICAgfVxuXG4gICAgZ2V0IGljb24oKTogUG9seW1vcnBoZXVzQ29udGVudDxUdWlDb250ZXh0V2l0aEltcGxpY2l0PFR1aVNpemVTIHwgVHVpU2l6ZUw+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzUGFzc3dvcmRIaWRkZW4gPyB0aGlzLm9wdGlvbnMuaWNvbnMuaGlkZSA6IHRoaXMub3B0aW9ucy5pY29ucy5zaG93O1xuICAgIH1cblxuICAgIGdldCBjb250ZXh0KCk6IFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8VHVpU2l6ZVMgfCBUdWlTaXplTD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDb250ZXh0KHRoaXMudGV4dGZpZWxkU2l6ZS5zaXplKTtcbiAgICB9XG5cbiAgICBnZXQgaW5wdXRUeXBlKCk6IFR1aUlucHV0VHlwZVQge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1Bhc3N3b3JkSGlkZGVuIHx8ICF0aGlzLmludGVyYWN0aXZlID8gJ3Bhc3N3b3JkJyA6ICd0ZXh0JztcbiAgICB9XG5cbiAgICBvblZhbHVlQ2hhbmdlKHRleHRWYWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUodGV4dFZhbHVlKTtcbiAgICB9XG5cbiAgICBvbkZvY3VzZWQoZm9jdXNlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoZm9jdXNlZCk7XG4gICAgfVxuXG4gICAgb25Ib3ZlcmVkKGhvdmVyZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVIb3ZlcmVkKGhvdmVyZWQpO1xuICAgIH1cblxuICAgIG9uUHJlc3NlZChwcmVzc2VkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlUHJlc3NlZChwcmVzc2VkKTtcbiAgICB9XG5cbiAgICB0b2dnbGVQYXNzd29yZFZpc2liaWxpdHkoKSB7XG4gICAgICAgIHRoaXMuaXNQYXNzd29yZEhpZGRlbiA9ICF0aGlzLmlzUGFzc3dvcmRIaWRkZW47XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZhbGxiYWNrVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBnZXRDb250ZXh0KFxuICAgICAgICAkaW1wbGljaXQ6IFR1aVNpemVTIHwgVHVpU2l6ZUwsXG4gICAgKTogVHVpQ29udGV4dFdpdGhJbXBsaWNpdDxUdWlTaXplUyB8IFR1aVNpemVMPiB7XG4gICAgICAgIHJldHVybiB7JGltcGxpY2l0fTtcbiAgICB9XG59XG4iXX0=
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGFzc3dvcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LXBhc3N3b3JkLyIsInNvdXJjZXMiOlsiaW5wdXQtcGFzc3dvcmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sUUFBUSxFQUNSLElBQUksRUFDSixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsMkJBQTJCLEVBSzNCLE9BQU8sR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsd0JBQXdCLEVBQ3hCLGFBQWEsRUFDYiwyQkFBMkIsRUFDM0IsUUFBUSxFQUNSLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsMEJBQTBCLEVBQzFCLFlBQVksRUFDWiw4QkFBOEIsRUFDOUIsUUFBUSxFQUNSLFFBQVEsRUFDUix5QkFBeUIsR0FDNUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RCxPQUFPLEVBQUMsYUFBYSxFQUFFLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTlDLE9BQU8sRUFDSCwwQkFBMEIsR0FFN0IsTUFBTSwwQkFBMEIsQ0FBQztBQUVsQyxXQUFXO0FBbUJYLElBQWEseUJBQXlCLGlDQUF0QyxNQUFhLHlCQUNULFNBQVEsa0JBQTBCO0lBcUJsQyxZQUlJLE9BQXlCLEVBQ0UsaUJBQW9DLEVBRTlDLGFBQXdDLEVBRWhELGNBQTRDLEVBRTVDLE9BQWdDLEVBRWhD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QyxDQUFBO0lBRW5DLFdBQUEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0dBcENaLHlCQUF5QixDQThGckM7U0E5RlkseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbmplY3QsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlDb250cm9sLFxuICAgIFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0LFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICBUdWlJbnB1dFR5cGVULFxuICAgIFR1aU5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQsXG4gICAgdHVpUHVyZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIEhJTlRfQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICBNT0RFX1BST1ZJREVSLFxuICAgIFRVSV9ISU5UX1dBVENIRURfQ09OVFJPTExFUixcbiAgICBUVUlfTU9ERSxcbiAgICBUVUlfVEVYVEZJRUxEX1NJWkUsXG4gICAgVHVpQnJpZ2h0bmVzcyxcbiAgICBUdWlIaW50Q29udHJvbGxlckRpcmVjdGl2ZSxcbiAgICBUdWlIaW50TW9kZVQsXG4gICAgVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgIFR1aVNpemVMLFxuICAgIFR1aVNpemVTLFxuICAgIFR1aVRleHRmaWVsZFNpemVEaXJlY3RpdmUsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7VFVJX1BBU1NXT1JEX1RFWFRTfSBmcm9tICdAdGFpZ2EtdWkva2l0L3Rva2Vucyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge2NvbWJpbmVMYXRlc3QsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHN0YXJ0V2l0aH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICAgIFRVSV9JTlBVVF9QQVNTV09SRF9PUFRJT05TLFxuICAgIFR1aUlucHV0UGFzc3dvcmRPcHRpb25zLFxufSBmcm9tICcuL2lucHV0LXBhc3N3b3JkLW9wdGlvbnMnO1xuXG4vLyBAZHluYW1pY1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtcGFzc3dvcmQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1wYXNzd29yZC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC1wYXNzd29yZC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR1aUlucHV0UGFzc3dvcmRDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBBYnN0cmFjdFR1aUNvbnRyb2wsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUdWlJbnB1dFBhc3N3b3JkQ29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICAgICAgSElOVF9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgICAgICBNT0RFX1BST1ZJREVSLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0UGFzc3dvcmRDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpQ29udHJvbDxzdHJpbmc+XG4gICAgaW1wbGVtZW50cyBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3JcbntcbiAgICBAVmlld0NoaWxkKFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZD86IFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudDtcblxuICAgIGlzUGFzc3dvcmRIaWRkZW4gPSB0cnVlO1xuXG4gICAgcmVhZG9ubHkgY29tcHV0ZWRNb2RlJDogT2JzZXJ2YWJsZTxUdWlIaW50TW9kZVQgfCBudWxsPiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLm1vZGUkLnBpcGUobWFwKHZhbCA9PiAodmFsID09PSAnb25EYXJrJyA/ICdvbkRhcmsnIDogbnVsbCkpKSxcbiAgICAgICAgdGhpcy5oaW50Q29udHJvbGxlci5jaGFuZ2UkLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgobnVsbCksXG4gICAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5oaW50Q29udHJvbGxlci5tb2RlKSxcbiAgICAgICAgKSxcbiAgICBdKS5waXBlKFxuICAgICAgICBtYXAoKFttb2RlLCBjb250cm9sbGVyXSkgPT4gY29udHJvbGxlciB8fCBtb2RlKSxcbiAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICk7XG5cbiAgICByZWFkb25seSB0eXBlITogVHVpQ29udGV4dFdpdGhJbXBsaWNpdDxUdWlTaXplUyB8IFR1aVNpemVMPjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9TSVpFKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZFNpemU6IFR1aVRleHRmaWVsZFNpemVEaXJlY3RpdmUsXG4gICAgICAgIEBJbmplY3QoVFVJX1BBU1NXT1JEX1RFWFRTKVxuICAgICAgICByZWFkb25seSBwYXNzd29yZFRleHRzJDogT2JzZXJ2YWJsZTxbc3RyaW5nLCBzdHJpbmddPixcbiAgICAgICAgQEluamVjdChUVUlfSU5QVVRfUEFTU1dPUkRfT1BUSU9OUylcbiAgICAgICAgcmVhZG9ubHkgb3B0aW9uczogVHVpSW5wdXRQYXNzd29yZE9wdGlvbnMsXG4gICAgICAgIEBJbmplY3QoVFVJX0hJTlRfV0FUQ0hFRF9DT05UUk9MTEVSKVxuICAgICAgICByZWFkb25seSBoaW50Q29udHJvbGxlcjogVHVpSGludENvbnRyb2xsZXJEaXJlY3RpdmUsXG4gICAgICAgIEBJbmplY3QoVFVJX01PREUpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbW9kZSQ6IE9ic2VydmFibGU8VHVpQnJpZ2h0bmVzcyB8IG51bGw+LFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlZERpc2FibGVkIHx8ICF0aGlzLnRleHRmaWVsZFxuICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICA6IHRoaXMudGV4dGZpZWxkLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMudGV4dGZpZWxkICYmIHRoaXMudGV4dGZpZWxkLmZvY3VzZWQ7XG4gICAgfVxuXG4gICAgZ2V0IGljb24oKTogUG9seW1vcnBoZXVzQ29udGVudDxUdWlDb250ZXh0V2l0aEltcGxpY2l0PFR1aVNpemVTIHwgVHVpU2l6ZUw+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzUGFzc3dvcmRIaWRkZW4gPyB0aGlzLm9wdGlvbnMuaWNvbnMuaGlkZSA6IHRoaXMub3B0aW9ucy5pY29ucy5zaG93O1xuICAgIH1cblxuICAgIGdldCBjb250ZXh0KCk6IFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8VHVpU2l6ZVMgfCBUdWlTaXplTD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDb250ZXh0KHRoaXMudGV4dGZpZWxkU2l6ZS5zaXplKTtcbiAgICB9XG5cbiAgICBnZXQgaW5wdXRUeXBlKCk6IFR1aUlucHV0VHlwZVQge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1Bhc3N3b3JkSGlkZGVuIHx8ICF0aGlzLmludGVyYWN0aXZlID8gJ3Bhc3N3b3JkJyA6ICd0ZXh0JztcbiAgICB9XG5cbiAgICBvblZhbHVlQ2hhbmdlKHRleHRWYWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUodGV4dFZhbHVlKTtcbiAgICB9XG5cbiAgICBvbkZvY3VzZWQoZm9jdXNlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoZm9jdXNlZCk7XG4gICAgfVxuXG4gICAgb25Ib3ZlcmVkKGhvdmVyZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVIb3ZlcmVkKGhvdmVyZWQpO1xuICAgIH1cblxuICAgIG9uUHJlc3NlZChwcmVzc2VkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlUHJlc3NlZChwcmVzc2VkKTtcbiAgICB9XG5cbiAgICB0b2dnbGVQYXNzd29yZFZpc2liaWxpdHkoKSB7XG4gICAgICAgIHRoaXMuaXNQYXNzd29yZEhpZGRlbiA9ICF0aGlzLmlzUGFzc3dvcmRIaWRkZW47XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZhbGxiYWNrVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBnZXRDb250ZXh0KFxuICAgICAgICAkaW1wbGljaXQ6IFR1aVNpemVTIHwgVHVpU2l6ZUwsXG4gICAgKTogVHVpQ29udGV4dFdpdGhJbXBsaWNpdDxUdWlTaXplUyB8IFR1aVNpemVMPiB7XG4gICAgICAgIHJldHVybiB7JGltcGxpY2l0fTtcbiAgICB9XG59XG4iXX0=
@@ -232,7 +232,7 @@ __decorate([
232
232
  TuiInputPhoneComponent = __decorate([
233
233
  Component({
234
234
  selector: 'tui-input-phone',
235
- template: "<tui-hosted-dropdown\n class=\"hosted\"\n [canOpen]=\"canOpen\"\n [content]=\"datalist || ''\"\n [(open)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n tuiValueAccessor\n tuiTextfieldType=\"tel\"\n class=\"textfield\"\n [tuiTextfieldInputMode]=\"inputMode\"\n [pseudoHovered]=\"pseudoHovered\"\n [pseudoFocused]=\"computedFocused\"\n [invalid]=\"computedInvalid\"\n [nativeId]=\"nativeId\"\n [readOnly]=\"readOnly\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"focusable\"\n [textMask]=\"textMaskOptions\"\n [value]=\"computedValue\"\n [tuiTextfieldCleaner]=\"canClean\"\n (valueChange)=\"onValueChange($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (drop)=\"onDrop($event)\"\n (keydown.backspace)=\"onBackspace($event)\"\n (paste.prevent)=\"onPaste($event)\"\n >\n <ng-content></ng-content>\n <ng-content select=\"input\" ngProjectAs=\"input\"></ng-content>\n </tui-primitive-textfield>\n</tui-hosted-dropdown>\n",
235
+ template: "<tui-hosted-dropdown\n class=\"hosted\"\n [canOpen]=\"canOpen\"\n [content]=\"datalist || ''\"\n [(open)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n tuiValueAccessor\n tuiTextfieldType=\"tel\"\n class=\"textfield\"\n [tuiTextfieldInputMode]=\"inputMode\"\n [pseudoHovered]=\"pseudoHovered\"\n [pseudoFocused]=\"computedFocused\"\n [invalid]=\"computedInvalid\"\n [nativeId]=\"nativeId\"\n [readOnly]=\"readOnly\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"focusable\"\n [textMask]=\"textMaskOptions\"\n [value]=\"computedValue\"\n [tuiTextfieldCleaner]=\"canClean\"\n (valueChange)=\"onValueChange($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (drop)=\"onDrop($event)\"\n (keydown.backspace)=\"onBackspace($event)\"\n (paste.prevent)=\"onPaste($event)\"\n >\n <ng-content></ng-content>\n <ng-content\n select=\"input\"\n ngProjectAs=\"input\"\n ></ng-content>\n </tui-primitive-textfield>\n</tui-hosted-dropdown>\n",
236
236
  changeDetection: ChangeDetectionStrategy.OnPush,
237
237
  providers: INPUT_PHONE_PROVIDERS,
238
238
  styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:left}:host._disabled{pointer-events:none}.hosted{display:block;border-radius:inherit}.textfield{border-radius:inherit;text-align:inherit}"]
@@ -248,4 +248,4 @@ export { TuiInputPhoneComponent };
248
248
  function isText(value) {
249
249
  return isNaN(parseInt(value.replace(TUI_MASK_SYMBOLS_REGEXP, ''), 10));
250
250
  }
251
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGhvbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LXBob25lLyIsInNvdXJjZXMiOlsiaW5wdXQtcGhvbmUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUNKLFdBQVcsRUFDWCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsb0JBQW9CLEVBQ3BCLGVBQWUsRUFDZixnQkFBZ0IsRUFHaEIsY0FBYyxFQUdkLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsV0FBVyxFQUNYLHVCQUF1QixFQUN2QixxQkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLGVBQWUsRUFDZiwwQkFBMEIsRUFDMUIsOEJBQThCLEVBQzlCLDRCQUE0QixFQUM1QixrQkFBa0IsR0FDckIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRWhDLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRWhGLFdBQVc7QUFRWCxJQUFhLHNCQUFzQixHQUFuQyxNQUFhLHNCQUNULFNBQVEsa0JBQTBCO0lBOERsQyxZQUlJLE9BQXlCLEVBQ0UsaUJBQW9DLEVBRS9ELFVBQStCLEVBRWQsZ0JBQThDO1FBRS9ELEtBQUssQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUZqQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQThCO1FB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RWpCLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFDekIsV0FBQSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUV4QixXQUFBLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO0dBdkV6QixzQkFBc0IsQ0FrU2xDO1NBbFNZLHNCQUFzQjtBQW9TbkMsU0FBUyxNQUFNLENBQUMsS0FBYTtJQUN6QixPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzNFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgU2VsZixcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlDb250cm9sLFxuICAgIGdldENsaXBib2FyZERhdGFUZXh0LFxuICAgIGlzTmF0aXZlRm9jdXNlZCxcbiAgICBzZXROYXRpdmVGb2N1c2VkLFxuICAgIFR1aUFjdGl2ZVpvbmVEaXJlY3RpdmUsXG4gICAgVHVpQ29udGV4dFdpdGhJbXBsaWNpdCxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgVHVpSW5wdXRNb2RlVCxcbiAgICB0dWlSZXF1aXJlZFNldHRlcixcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIGZvcm1hdFBob25lLFxuICAgIFRVSV9NQVNLX1NZTUJPTFNfUkVHRVhQLFxuICAgIFRVSV9URVhURklFTERfQ0xFQU5FUixcbiAgICBUdWlEYXRhTGlzdERpcmVjdGl2ZSxcbiAgICBUdWlEYXRhTGlzdEhvc3QsXG4gICAgVHVpSG9zdGVkRHJvcGRvd25Db21wb25lbnQsXG4gICAgVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgIFR1aVRleHRmaWVsZENsZWFuZXJEaXJlY3RpdmUsXG4gICAgVHVpVGV4dE1hc2tPcHRpb25zLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1RleHRNYXNrQ29uZmlnfSBmcm9tICdhbmd1bGFyMi10ZXh0LW1hc2snO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtJTlBVVF9QSE9ORV9QUk9WSURFUlMsIFNFTEVDVElPTl9TVFJFQU19IGZyb20gJy4vaW5wdXQtcGhvbmUucHJvdmlkZXJzJztcblxuLy8gQGR5bmFtaWNcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWlucHV0LXBob25lJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtcGhvbmUudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtcGhvbmUuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogSU5QVVRfUEhPTkVfUFJPVklERVJTLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dFBob25lQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aUNvbnRyb2w8c3RyaW5nPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLCBUdWlEYXRhTGlzdEhvc3Q8c3RyaW5nPlxue1xuICAgIEBWaWV3Q2hpbGQoVHVpSG9zdGVkRHJvcGRvd25Db21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBkcm9wZG93bj86IFR1aUhvc3RlZERyb3Bkb3duQ29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZChUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGQ/OiBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQ7XG5cbiAgICBASW5wdXQoJ2NvdW50cnlDb2RlJylcbiAgICBAdHVpUmVxdWlyZWRTZXR0ZXIoKVxuICAgIHNldCBjb3VudHJ5Q29kZVNldHRlcihjb3VudHJ5Q29kZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWVXaXRoTmV3Q291bnRyeUNvZGUoY291bnRyeUNvZGUpO1xuICAgICAgICB0aGlzLmNvdW50cnlDb2RlID0gY291bnRyeUNvZGU7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHBob25lTWFza0FmdGVyQ291bnRyeUNvZGUgPSAnKCMjIykgIyMjLSMjLSMjJztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBhbGxvd1RleHQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzZWFyY2ggPSAnJztcblxuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHNlYXJjaENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgQENvbnRlbnRDaGlsZChUdWlEYXRhTGlzdERpcmVjdGl2ZSwge3JlYWQ6IFRlbXBsYXRlUmVmfSlcbiAgICByZWFkb25seSBkYXRhbGlzdD86IFRlbXBsYXRlUmVmPFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8VHVpQWN0aXZlWm9uZURpcmVjdGl2ZT4+O1xuXG4gICAgcmVhZG9ubHkgdGV4dE1hc2tPcHRpb25zOiBUZXh0TWFza0NvbmZpZyA9IHtcbiAgICAgICAgbWFzazogdmFsdWUgPT5cbiAgICAgICAgICAgIHRoaXMuYWxsb3dUZXh0ICYmICF0aGlzLnZhbHVlICYmIGlzVGV4dCh2YWx1ZSkgJiYgdmFsdWUgIT09ICcrJ1xuICAgICAgICAgICAgICAgID8gZmFsc2VcbiAgICAgICAgICAgICAgICA6IFtcbiAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmNvdW50cnlDb2RlLnNwbGl0KCcnKSxcbiAgICAgICAgICAgICAgICAgICAgICAnICcsXG4gICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5waG9uZU1hc2tBZnRlckNvdW50cnlDb2RlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9bXiNcXC0gKCldKy9nLCAnJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KCcnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKGl0ZW0gPT4gKGl0ZW0gPT09ICcjJyA/IC9cXGQvIDogaXRlbSkpLFxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgcGlwZTogdmFsdWUgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuYWxsb3dUZXh0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdmFsdWUgPT09ICcnICYmIHRoaXMuZm9jdXNlZCAmJiAhdGhpcy5yZWFkT25seVxuICAgICAgICAgICAgICAgID8gYCR7dGhpcy5jb3VudHJ5Q29kZX0gYFxuICAgICAgICAgICAgICAgIDogdmFsdWUucmVwbGFjZSgvLSQvLCAnJyk7XG4gICAgICAgIH0sXG4gICAgICAgIGd1aWRlOiBmYWxzZSxcbiAgICB9IGFzIFR1aVRleHRNYXNrT3B0aW9ucyBhcyB1bmtub3duIGFzIFRleHRNYXNrQ29uZmlnO1xuXG4gICAgY291bnRyeUNvZGUgPSAnKzcnO1xuXG4gICAgb3BlbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChTRUxFQ1RJT05fU1RSRUFNKVxuICAgICAgICBzZWxlY3Rpb24kOiBPYnNlcnZhYmxlPHVua25vd24+LFxuICAgICAgICBASW5qZWN0KFRVSV9URVhURklFTERfQ0xFQU5FUilcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGRDbGVhbmVyOiBUdWlUZXh0ZmllbGRDbGVhbmVyRGlyZWN0aXZlLFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICAgICAgc2VsZWN0aW9uJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnRleHRmaWVsZCB8fCB0aGlzLmNvbXB1dGVkRGlzYWJsZWRcbiAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgOiB0aGlzLnRleHRmaWVsZC5uYXRpdmVGb2N1c2FibGVFbGVtZW50O1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgaXNOYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkgfHxcbiAgICAgICAgICAgICghIXRoaXMuZHJvcGRvd24gJiYgdGhpcy5kcm9wZG93bi5mb2N1c2VkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlXG4gICAgICAgICAgICA/IGZvcm1hdFBob25lKHRoaXMudmFsdWUsIHRoaXMuY291bnRyeUNvZGUsIHRoaXMucGhvbmVNYXNrQWZ0ZXJDb3VudHJ5Q29kZSlcbiAgICAgICAgICAgIDogdGhpcy5zZWFyY2ggfHwgJyc7XG4gICAgfVxuXG4gICAgZ2V0IGlucHV0TW9kZSgpOiBUdWlJbnB1dE1vZGVUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWxsb3dUZXh0ID8gJ3RleHQnIDogJ251bWVyaWMnO1xuICAgIH1cblxuICAgIGdldCBjYW5PcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnRlcmFjdGl2ZSAmJiAhIXRoaXMuZGF0YWxpc3Q7XG4gICAgfVxuXG4gICAgZ2V0IGNhbkNsZWFuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlZFZhbHVlICE9PSB0aGlzLmNvdW50cnlDb2RlICYmIHRoaXMudGV4dGZpZWxkQ2xlYW5lci5jbGVhbmVyO1xuICAgIH1cblxuICAgIG9uSG92ZXJlZChob3ZlcmVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlSG92ZXJlZChob3ZlcmVkKTtcbiAgICB9XG5cbiAgICBvbkRyb3AoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgICAgICBpZiAoIWV2ZW50LmRhdGFUcmFuc2Zlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRWYWx1ZVdpdGhvdXRQcmVmaXgoZXZlbnQuZGF0YVRyYW5zZmVyLmdldERhdGEoJ3RleHQnKSk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25QYXN0ZShldmVudDogQ2xpcGJvYXJkRXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZVdpdGhvdXRQcmVmaXgoZ2V0Q2xpcGJvYXJkRGF0YVRleHQoZXZlbnQpKTtcbiAgICB9XG5cbiAgICBvbkFjdGl2ZVpvbmUoYWN0aXZlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChhY3RpdmUpO1xuXG4gICAgICAgIGlmIChhY3RpdmUgJiYgIXRoaXMuY29tcHV0ZWRWYWx1ZSAmJiAhdGhpcy5yZWFkT25seSAmJiAhdGhpcy5hbGxvd1RleHQpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlU2VhcmNoKHRoaXMuY291bnRyeUNvZGUpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmNvbXB1dGVkVmFsdWUgPT09IHRoaXMuY291bnRyeUNvZGUgfHxcbiAgICAgICAgICAgICh0aGlzLnNlYXJjaCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIGlzTmFOKHBhcnNlSW50KHRoaXMuc2VhcmNoLnJlcGxhY2UoVFVJX01BU0tfU1lNQk9MU19SRUdFWFAsICcnKSwgMTApKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVNlYXJjaCgnJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkJhY2tzcGFjZShldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAodGFyZ2V0LnNlbGVjdGlvblN0YXJ0IHx8IDApIDw9IHRoaXMubm9uUmVtb3ZhYmxlTGVuZ3RoICYmXG4gICAgICAgICAgICB0YXJnZXQuc2VsZWN0aW9uU3RhcnQgPT09IHRhcmdldC5zZWxlY3Rpb25FbmRcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHZhbHVlID0gdmFsdWUgPT09ICcnID8gdGhpcy5jb3VudHJ5Q29kZSA6IHZhbHVlO1xuXG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IGlzVGV4dCh2YWx1ZSkgPyB2YWx1ZSA6IHZhbHVlLnJlcGxhY2UoVFVJX01BU0tfU1lNQk9MU19SRUdFWFAsICcnKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZVNlYXJjaChwYXJzZWQpO1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHBhcnNlZCA9PT0gdGhpcy5jb3VudHJ5Q29kZSB8fCBpc1RleHQocGFyc2VkKSA/ICcnIDogcGFyc2VkKTtcbiAgICAgICAgdGhpcy5vcGVuID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBoYW5kbGVPcHRpb24oaXRlbTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKGl0ZW0pO1xuICAgICAgICB0aGlzLnVwZGF0ZVNlYXJjaCgnJyk7XG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGUoKSB7XG4gICAgICAgIHN1cGVyLnNldERpc2FibGVkU3RhdGUoKTtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCkge1xuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy51cGRhdGVTZWFyY2goJycpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRGYWxsYmFja1ZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBjYXJldElzSW5Gb3JiaWRkZW5BcmVhKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCB7bmF0aXZlRm9jdXNhYmxlRWxlbWVudH0gPSB0aGlzO1xuXG4gICAgICAgIGlmICghbmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qge3NlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmR9ID0gbmF0aXZlRm9jdXNhYmxlRWxlbWVudDtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgaXNOYXRpdmVGb2N1c2VkKG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpICYmXG4gICAgICAgICAgICBzZWxlY3Rpb25TdGFydCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgc2VsZWN0aW9uU3RhcnQgPCB0aGlzLm5vblJlbW92YWJsZUxlbmd0aCAmJlxuICAgICAgICAgICAgc2VsZWN0aW9uU3RhcnQgPT09IHNlbGVjdGlvbkVuZFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IG5vblJlbW92YWJsZUxlbmd0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1RleHRWYWx1ZSA/IDAgOiB0aGlzLmNvdW50cnlDb2RlLmxlbmd0aCArIDE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgbWF4UGhvbmVMZW5ndGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuY291bnRyeUNvZGUubGVuZ3RoICtcbiAgICAgICAgICAgIHRoaXMucGhvbmVNYXNrQWZ0ZXJDb3VudHJ5Q29kZS5yZXBsYWNlKC9bXiNdKy9nLCAnJykubGVuZ3RoXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNUZXh0VmFsdWUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuc2VhcmNoICYmIGlzVGV4dCh0aGlzLnNlYXJjaCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRDYXJldFBvc2l0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5jYXJldElzSW5Gb3JiaWRkZW5BcmVhICYmICEhdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgICAgICAgdGhpcy5ub25SZW1vdmFibGVMZW5ndGgsXG4gICAgICAgICAgICAgICAgdGhpcy5ub25SZW1vdmFibGVMZW5ndGgsXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRWYWx1ZVdpdGhvdXRQcmVmaXgodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vcGVuID0gdHJ1ZTtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh0aGlzLmNsZWFuVmFsdWUodmFsdWUpKTtcbiAgICAgICAgdGhpcy51cGRhdGVTZWFyY2goXG4gICAgICAgICAgICB0aGlzLmFsbG93VGV4dCAmJiBpc1RleHQodmFsdWUpXG4gICAgICAgICAgICAgICAgPyB2YWx1ZVxuICAgICAgICAgICAgICAgIDogdmFsdWUucmVwbGFjZShUVUlfTUFTS19TWU1CT0xTX1JFR0VYUCwgJycpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xlYW5WYWx1ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgcmVnOiBSZWdFeHAgPVxuICAgICAgICAgICAgdGhpcy5jb3VudHJ5Q29kZSA9PT0gJys3J1xuICAgICAgICAgICAgICAgID8gL143fF44L1xuICAgICAgICAgICAgICAgIDogbmV3IFJlZ0V4cCh0aGlzLmNvdW50cnlDb2RlLnN1YnN0cmluZygxKSk7XG4gICAgICAgIGNvbnN0IG9sZFZhbHVlRXhpc3QgPVxuICAgICAgICAgICAgdGhpcy52YWx1ZS5sZW5ndGggPiB0aGlzLmNvdW50cnlDb2RlLmxlbmd0aCAmJlxuICAgICAgICAgICAgdGhpcy52YWx1ZS5sZW5ndGggPCB0aGlzLm1heFBob25lTGVuZ3RoO1xuICAgICAgICBjb25zdCBuZXdWYWx1ZUxlbmd0aCA9IHZhbHVlLnJlcGxhY2UoVFVJX01BU0tfU1lNQk9MU19SRUdFWFAsICcnKS5sZW5ndGg7XG4gICAgICAgIGNvbnN0IGNsZWFuTmV3VmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC9bXjAtOV0rL2csICcnKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uTGVuZ3RoID0gU3RyaW5nKGdldFNlbGVjdGlvbigpKS5sZW5ndGg7XG5cbiAgICAgICAgaWYgKG9sZFZhbHVlRXhpc3QgJiYgc2VsZWN0aW9uTGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7dGhpcy52YWx1ZX0ke2NsZWFuTmV3VmFsdWV9YC5zbGljZSgwLCB0aGlzLm1heFBob25lTGVuZ3RoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChuZXdWYWx1ZUxlbmd0aCA8IHRoaXMubWF4UGhvbmVMZW5ndGggLSAxKSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7dGhpcy5jb3VudHJ5Q29kZX0ke2NsZWFuTmV3VmFsdWV9YC5zbGljZSgwLCB0aGlzLm1heFBob25lTGVuZ3RoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBgJHt0aGlzLmNvdW50cnlDb2RlfSR7Y2xlYW5OZXdWYWx1ZS5yZXBsYWNlKHJlZywgJycpfWAuc2xpY2UoXG4gICAgICAgICAgICAwLFxuICAgICAgICAgICAgdGhpcy5tYXhQaG9uZUxlbmd0aCxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZvY3VzSW5wdXQoKSB7XG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHNldE5hdGl2ZUZvY3VzZWQodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LCB0cnVlLCB0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlU2VhcmNoKHNlYXJjaDogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLnNlYXJjaCA9PT0gc2VhcmNoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlYXJjaCA9IHNlYXJjaDtcbiAgICAgICAgdGhpcy5zZWFyY2hDaGFuZ2UuZW1pdChzZWFyY2gpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlVmFsdWVXaXRoTmV3Q291bnRyeUNvZGUobmV3Q291bnRyeUNvZGU6IHN0cmluZykge1xuICAgICAgICBpZiAoIXRoaXMuaXNUZXh0VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy52YWx1ZS5yZXBsYWNlKHRoaXMuY291bnRyeUNvZGUsIG5ld0NvdW50cnlDb2RlKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmZ1bmN0aW9uIGlzVGV4dCh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzTmFOKHBhcnNlSW50KHZhbHVlLnJlcGxhY2UoVFVJX01BU0tfU1lNQk9MU19SRUdFWFAsICcnKSwgMTApKTtcbn1cbiJdfQ==
251
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGhvbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LXBob25lLyIsInNvdXJjZXMiOlsiaW5wdXQtcGhvbmUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUNKLFdBQVcsRUFDWCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsb0JBQW9CLEVBQ3BCLGVBQWUsRUFDZixnQkFBZ0IsRUFHaEIsY0FBYyxFQUdkLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsV0FBVyxFQUNYLHVCQUF1QixFQUN2QixxQkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLGVBQWUsRUFDZiwwQkFBMEIsRUFDMUIsOEJBQThCLEVBQzlCLDRCQUE0QixFQUM1QixrQkFBa0IsR0FDckIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRWhDLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRWhGLFdBQVc7QUFRWCxJQUFhLHNCQUFzQixHQUFuQyxNQUFhLHNCQUNULFNBQVEsa0JBQTBCO0lBOERsQyxZQUlJLE9BQXlCLEVBQ0UsaUJBQW9DLEVBRS9ELFVBQStCLEVBRWQsZ0JBQThDO1FBRS9ELEtBQUssQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUZqQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQThCO1FB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RWpCLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFDekIsV0FBQSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUV4QixXQUFBLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO0dBdkV6QixzQkFBc0IsQ0FrU2xDO1NBbFNZLHNCQUFzQjtBQW9TbkMsU0FBUyxNQUFNLENBQUMsS0FBYTtJQUN6QixPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzNFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgU2VsZixcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlDb250cm9sLFxuICAgIGdldENsaXBib2FyZERhdGFUZXh0LFxuICAgIGlzTmF0aXZlRm9jdXNlZCxcbiAgICBzZXROYXRpdmVGb2N1c2VkLFxuICAgIFR1aUFjdGl2ZVpvbmVEaXJlY3RpdmUsXG4gICAgVHVpQ29udGV4dFdpdGhJbXBsaWNpdCxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgVHVpSW5wdXRNb2RlVCxcbiAgICB0dWlSZXF1aXJlZFNldHRlcixcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIGZvcm1hdFBob25lLFxuICAgIFRVSV9NQVNLX1NZTUJPTFNfUkVHRVhQLFxuICAgIFRVSV9URVhURklFTERfQ0xFQU5FUixcbiAgICBUdWlEYXRhTGlzdERpcmVjdGl2ZSxcbiAgICBUdWlEYXRhTGlzdEhvc3QsXG4gICAgVHVpSG9zdGVkRHJvcGRvd25Db21wb25lbnQsXG4gICAgVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgIFR1aVRleHRmaWVsZENsZWFuZXJEaXJlY3RpdmUsXG4gICAgVHVpVGV4dE1hc2tPcHRpb25zLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1RleHRNYXNrQ29uZmlnfSBmcm9tICdhbmd1bGFyMi10ZXh0LW1hc2snO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtJTlBVVF9QSE9ORV9QUk9WSURFUlMsIFNFTEVDVElPTl9TVFJFQU19IGZyb20gJy4vaW5wdXQtcGhvbmUucHJvdmlkZXJzJztcblxuLy8gQGR5bmFtaWNcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWlucHV0LXBob25lJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtcGhvbmUudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtcGhvbmUuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogSU5QVVRfUEhPTkVfUFJPVklERVJTLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dFBob25lQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aUNvbnRyb2w8c3RyaW5nPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLCBUdWlEYXRhTGlzdEhvc3Q8c3RyaW5nPlxue1xuICAgIEBWaWV3Q2hpbGQoVHVpSG9zdGVkRHJvcGRvd25Db21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBkcm9wZG93bj86IFR1aUhvc3RlZERyb3Bkb3duQ29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZChUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGQ/OiBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQ7XG5cbiAgICBASW5wdXQoJ2NvdW50cnlDb2RlJylcbiAgICBAdHVpUmVxdWlyZWRTZXR0ZXIoKVxuICAgIHNldCBjb3VudHJ5Q29kZVNldHRlcihjb3VudHJ5Q29kZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWVXaXRoTmV3Q291bnRyeUNvZGUoY291bnRyeUNvZGUpO1xuICAgICAgICB0aGlzLmNvdW50cnlDb2RlID0gY291bnRyeUNvZGU7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHBob25lTWFza0FmdGVyQ291bnRyeUNvZGUgPSAnKCMjIykgIyMjLSMjLSMjJztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBhbGxvd1RleHQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzZWFyY2ggPSAnJztcblxuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHNlYXJjaENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgQENvbnRlbnRDaGlsZChUdWlEYXRhTGlzdERpcmVjdGl2ZSwge3JlYWQ6IFRlbXBsYXRlUmVmfSlcbiAgICByZWFkb25seSBkYXRhbGlzdD86IFRlbXBsYXRlUmVmPFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8VHVpQWN0aXZlWm9uZURpcmVjdGl2ZT4+O1xuXG4gICAgcmVhZG9ubHkgdGV4dE1hc2tPcHRpb25zOiBUZXh0TWFza0NvbmZpZyA9IHtcbiAgICAgICAgbWFzazogdmFsdWUgPT5cbiAgICAgICAgICAgIHRoaXMuYWxsb3dUZXh0ICYmICF0aGlzLnZhbHVlICYmIGlzVGV4dCh2YWx1ZSkgJiYgdmFsdWUgIT09ICcrJ1xuICAgICAgICAgICAgICAgID8gZmFsc2VcbiAgICAgICAgICAgICAgICA6IFtcbiAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmNvdW50cnlDb2RlLnNwbGl0KCcnKSxcbiAgICAgICAgICAgICAgICAgICAgICAnICcsXG4gICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5waG9uZU1hc2tBZnRlckNvdW50cnlDb2RlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9bXiNcXC0gKCldKy9nLCAnJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KCcnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKGl0ZW0gPT4gKGl0ZW0gPT09ICcjJyA/IC9cXGQvIDogaXRlbSkpLFxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgcGlwZTogdmFsdWUgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuYWxsb3dUZXh0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdmFsdWUgPT09ICcnICYmIHRoaXMuZm9jdXNlZCAmJiAhdGhpcy5yZWFkT25seVxuICAgICAgICAgICAgICAgID8gYCR7dGhpcy5jb3VudHJ5Q29kZX0gYFxuICAgICAgICAgICAgICAgIDogdmFsdWUucmVwbGFjZSgvLSQvLCAnJyk7XG4gICAgICAgIH0sXG4gICAgICAgIGd1aWRlOiBmYWxzZSxcbiAgICB9IGFzIFR1aVRleHRNYXNrT3B0aW9ucyBhcyB1bmtub3duIGFzIFRleHRNYXNrQ29uZmlnO1xuXG4gICAgY291bnRyeUNvZGUgPSAnKzcnO1xuXG4gICAgb3BlbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChTRUxFQ1RJT05fU1RSRUFNKVxuICAgICAgICBzZWxlY3Rpb24kOiBPYnNlcnZhYmxlPHVua25vd24+LFxuICAgICAgICBASW5qZWN0KFRVSV9URVhURklFTERfQ0xFQU5FUilcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGRDbGVhbmVyOiBUdWlUZXh0ZmllbGRDbGVhbmVyRGlyZWN0aXZlLFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICAgICAgc2VsZWN0aW9uJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnRleHRmaWVsZCB8fCB0aGlzLmNvbXB1dGVkRGlzYWJsZWRcbiAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgOiB0aGlzLnRleHRmaWVsZC5uYXRpdmVGb2N1c2FibGVFbGVtZW50O1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgaXNOYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkgfHxcbiAgICAgICAgICAgICghIXRoaXMuZHJvcGRvd24gJiYgdGhpcy5kcm9wZG93bi5mb2N1c2VkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlXG4gICAgICAgICAgICA/IGZvcm1hdFBob25lKHRoaXMudmFsdWUsIHRoaXMuY291bnRyeUNvZGUsIHRoaXMucGhvbmVNYXNrQWZ0ZXJDb3VudHJ5Q29kZSlcbiAgICAgICAgICAgIDogdGhpcy5zZWFyY2ggfHwgJyc7XG4gICAgfVxuXG4gICAgZ2V0IGlucHV0TW9kZSgpOiBUdWlJbnB1dE1vZGVUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWxsb3dUZXh0ID8gJ3RleHQnIDogJ251bWVyaWMnO1xuICAgIH1cblxuICAgIGdldCBjYW5PcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnRlcmFjdGl2ZSAmJiAhIXRoaXMuZGF0YWxpc3Q7XG4gICAgfVxuXG4gICAgZ2V0IGNhbkNsZWFuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlZFZhbHVlICE9PSB0aGlzLmNvdW50cnlDb2RlICYmIHRoaXMudGV4dGZpZWxkQ2xlYW5lci5jbGVhbmVyO1xuICAgIH1cblxuICAgIG9uSG92ZXJlZChob3ZlcmVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlSG92ZXJlZChob3ZlcmVkKTtcbiAgICB9XG5cbiAgICBvbkRyb3AoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgICAgICBpZiAoIWV2ZW50LmRhdGFUcmFuc2Zlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRWYWx1ZVdpdGhvdXRQcmVmaXgoZXZlbnQuZGF0YVRyYW5zZmVyLmdldERhdGEoJ3RleHQnKSk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25QYXN0ZShldmVudDogQ2xpcGJvYXJkRXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZVdpdGhvdXRQcmVmaXgoZ2V0Q2xpcGJvYXJkRGF0YVRleHQoZXZlbnQpKTtcbiAgICB9XG5cbiAgICBvbkFjdGl2ZVpvbmUoYWN0aXZlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChhY3RpdmUpO1xuXG4gICAgICAgIGlmIChhY3RpdmUgJiYgIXRoaXMuY29tcHV0ZWRWYWx1ZSAmJiAhdGhpcy5yZWFkT25seSAmJiAhdGhpcy5hbGxvd1RleHQpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlU2VhcmNoKHRoaXMuY291bnRyeUNvZGUpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmNvbXB1dGVkVmFsdWUgPT09IHRoaXMuY291bnRyeUNvZGUgfHxcbiAgICAgICAgICAgICh0aGlzLnNlYXJjaCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIGlzTmFOKHBhcnNlSW50KHRoaXMuc2VhcmNoLnJlcGxhY2UoVFVJX01BU0tfU1lNQk9MU19SRUdFWFAsICcnKSwgMTApKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVNlYXJjaCgnJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkJhY2tzcGFjZShldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAodGFyZ2V0LnNlbGVjdGlvblN0YXJ0IHx8IDApIDw9IHRoaXMubm9uUmVtb3ZhYmxlTGVuZ3RoICYmXG4gICAgICAgICAgICB0YXJnZXQuc2VsZWN0aW9uU3RhcnQgPT09IHRhcmdldC5zZWxlY3Rpb25FbmRcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHZhbHVlID0gdmFsdWUgPT09ICcnID8gdGhpcy5jb3VudHJ5Q29kZSA6IHZhbHVlO1xuXG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IGlzVGV4dCh2YWx1ZSkgPyB2YWx1ZSA6IHZhbHVlLnJlcGxhY2UoVFVJX01BU0tfU1lNQk9MU19SRUdFWFAsICcnKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZVNlYXJjaChwYXJzZWQpO1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHBhcnNlZCA9PT0gdGhpcy5jb3VudHJ5Q29kZSB8fCBpc1RleHQocGFyc2VkKSA/ICcnIDogcGFyc2VkKTtcbiAgICAgICAgdGhpcy5vcGVuID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBoYW5kbGVPcHRpb24oaXRlbTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKGl0ZW0pO1xuICAgICAgICB0aGlzLnVwZGF0ZVNlYXJjaCgnJyk7XG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGUoKSB7XG4gICAgICAgIHN1cGVyLnNldERpc2FibGVkU3RhdGUoKTtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCkge1xuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy51cGRhdGVTZWFyY2goJycpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRGYWxsYmFja1ZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBjYXJldElzSW5Gb3JiaWRkZW5BcmVhKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCB7bmF0aXZlRm9jdXNhYmxlRWxlbWVudH0gPSB0aGlzO1xuXG4gICAgICAgIGlmICghbmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qge3NlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmR9ID0gbmF0aXZlRm9jdXNhYmxlRWxlbWVudDtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgaXNOYXRpdmVGb2N1c2VkKG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpICYmXG4gICAgICAgICAgICBzZWxlY3Rpb25TdGFydCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgc2VsZWN0aW9uU3RhcnQgPCB0aGlzLm5vblJlbW92YWJsZUxlbmd0aCAmJlxuICAgICAgICAgICAgc2VsZWN0aW9uU3RhcnQgPT09IHNlbGVjdGlvbkVuZFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IG5vblJlbW92YWJsZUxlbmd0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1RleHRWYWx1ZSA/IDAgOiB0aGlzLmNvdW50cnlDb2RlLmxlbmd0aCArIDE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgbWF4UGhvbmVMZW5ndGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuY291bnRyeUNvZGUubGVuZ3RoICtcbiAgICAgICAgICAgIHRoaXMucGhvbmVNYXNrQWZ0ZXJDb3VudHJ5Q29kZS5yZXBsYWNlKC9bXiNdKy9nLCAnJykubGVuZ3RoXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNUZXh0VmFsdWUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuc2VhcmNoICYmIGlzVGV4dCh0aGlzLnNlYXJjaCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRDYXJldFBvc2l0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5jYXJldElzSW5Gb3JiaWRkZW5BcmVhICYmICEhdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgICAgICAgdGhpcy5ub25SZW1vdmFibGVMZW5ndGgsXG4gICAgICAgICAgICAgICAgdGhpcy5ub25SZW1vdmFibGVMZW5ndGgsXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRWYWx1ZVdpdGhvdXRQcmVmaXgodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vcGVuID0gdHJ1ZTtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh0aGlzLmNsZWFuVmFsdWUodmFsdWUpKTtcbiAgICAgICAgdGhpcy51cGRhdGVTZWFyY2goXG4gICAgICAgICAgICB0aGlzLmFsbG93VGV4dCAmJiBpc1RleHQodmFsdWUpXG4gICAgICAgICAgICAgICAgPyB2YWx1ZVxuICAgICAgICAgICAgICAgIDogdmFsdWUucmVwbGFjZShUVUlfTUFTS19TWU1CT0xTX1JFR0VYUCwgJycpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xlYW5WYWx1ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgcmVnOiBSZWdFeHAgPVxuICAgICAgICAgICAgdGhpcy5jb3VudHJ5Q29kZSA9PT0gJys3J1xuICAgICAgICAgICAgICAgID8gL143fF44L1xuICAgICAgICAgICAgICAgIDogbmV3IFJlZ0V4cCh0aGlzLmNvdW50cnlDb2RlLnN1YnN0cmluZygxKSk7XG4gICAgICAgIGNvbnN0IG9sZFZhbHVlRXhpc3QgPVxuICAgICAgICAgICAgdGhpcy52YWx1ZS5sZW5ndGggPiB0aGlzLmNvdW50cnlDb2RlLmxlbmd0aCAmJlxuICAgICAgICAgICAgdGhpcy52YWx1ZS5sZW5ndGggPCB0aGlzLm1heFBob25lTGVuZ3RoO1xuICAgICAgICBjb25zdCBuZXdWYWx1ZUxlbmd0aCA9IHZhbHVlLnJlcGxhY2UoVFVJX01BU0tfU1lNQk9MU19SRUdFWFAsICcnKS5sZW5ndGg7XG4gICAgICAgIGNvbnN0IGNsZWFuTmV3VmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC9bXjAtOV0rL2csICcnKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uTGVuZ3RoID0gU3RyaW5nKGdldFNlbGVjdGlvbigpKS5sZW5ndGg7XG5cbiAgICAgICAgaWYgKG9sZFZhbHVlRXhpc3QgJiYgc2VsZWN0aW9uTGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7dGhpcy52YWx1ZX0ke2NsZWFuTmV3VmFsdWV9YC5zbGljZSgwLCB0aGlzLm1heFBob25lTGVuZ3RoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChuZXdWYWx1ZUxlbmd0aCA8IHRoaXMubWF4UGhvbmVMZW5ndGggLSAxKSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7dGhpcy5jb3VudHJ5Q29kZX0ke2NsZWFuTmV3VmFsdWV9YC5zbGljZSgwLCB0aGlzLm1heFBob25lTGVuZ3RoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBgJHt0aGlzLmNvdW50cnlDb2RlfSR7Y2xlYW5OZXdWYWx1ZS5yZXBsYWNlKHJlZywgJycpfWAuc2xpY2UoXG4gICAgICAgICAgICAwLFxuICAgICAgICAgICAgdGhpcy5tYXhQaG9uZUxlbmd0aCxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZvY3VzSW5wdXQoKSB7XG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHNldE5hdGl2ZUZvY3VzZWQodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LCB0cnVlLCB0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlU2VhcmNoKHNlYXJjaDogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLnNlYXJjaCA9PT0gc2VhcmNoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlYXJjaCA9IHNlYXJjaDtcbiAgICAgICAgdGhpcy5zZWFyY2hDaGFuZ2UuZW1pdChzZWFyY2gpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlVmFsdWVXaXRoTmV3Q291bnRyeUNvZGUobmV3Q291bnRyeUNvZGU6IHN0cmluZykge1xuICAgICAgICBpZiAoIXRoaXMuaXNUZXh0VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy52YWx1ZS5yZXBsYWNlKHRoaXMuY291bnRyeUNvZGUsIG5ld0NvdW50cnlDb2RlKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmZ1bmN0aW9uIGlzVGV4dCh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzTmFOKHBhcnNlSW50KHZhbHVlLnJlcGxhY2UoVFVJX01BU0tfU1lNQk9MU19SRUdFWFAsICcnKSwgMTApKTtcbn1cbiJdfQ==