@taiga-ui/kit 3.51.0 → 3.52.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 (847) hide show
  1. package/abstract/taiga-ui-kit-abstract.d.ts +3 -0
  2. package/bundles/taiga-ui-kit-abstract.umd.js +4 -0
  3. package/bundles/taiga-ui-kit-abstract.umd.js.map +1 -1
  4. package/bundles/taiga-ui-kit-classes.umd.js +7 -0
  5. package/bundles/taiga-ui-kit-classes.umd.js.map +1 -1
  6. package/bundles/taiga-ui-kit-components-accordion.umd.js +4 -0
  7. package/bundles/taiga-ui-kit-components-accordion.umd.js.map +1 -1
  8. package/bundles/taiga-ui-kit-components-action.umd.js +4 -0
  9. package/bundles/taiga-ui-kit-components-action.umd.js.map +1 -1
  10. package/bundles/taiga-ui-kit-components-arrow.umd.js +11 -0
  11. package/bundles/taiga-ui-kit-components-arrow.umd.js.map +1 -1
  12. package/bundles/taiga-ui-kit-components-avatar.umd.js +8 -0
  13. package/bundles/taiga-ui-kit-components-avatar.umd.js.map +1 -1
  14. package/bundles/taiga-ui-kit-components-badge.umd.js +4 -0
  15. package/bundles/taiga-ui-kit-components-badge.umd.js.map +1 -1
  16. package/bundles/taiga-ui-kit-components-badged-content.umd.js +4 -0
  17. package/bundles/taiga-ui-kit-components-badged-content.umd.js.map +1 -1
  18. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.js +4 -0
  19. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.js.map +1 -1
  20. package/bundles/taiga-ui-kit-components-calendar-month.umd.js +4 -0
  21. package/bundles/taiga-ui-kit-components-calendar-month.umd.js.map +1 -1
  22. package/bundles/taiga-ui-kit-components-calendar-range.umd.js +4 -0
  23. package/bundles/taiga-ui-kit-components-calendar-range.umd.js.map +1 -1
  24. package/bundles/taiga-ui-kit-components-carousel.umd.js +5 -0
  25. package/bundles/taiga-ui-kit-components-carousel.umd.js.map +1 -1
  26. package/bundles/taiga-ui-kit-components-checkbox-block.umd.js +5 -0
  27. package/bundles/taiga-ui-kit-components-checkbox-block.umd.js.map +1 -1
  28. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js +5 -0
  29. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js.map +1 -1
  30. package/bundles/taiga-ui-kit-components-checkbox.umd.js +5 -0
  31. package/bundles/taiga-ui-kit-components-checkbox.umd.js.map +1 -1
  32. package/bundles/taiga-ui-kit-components-combo-box.umd.js +5 -0
  33. package/bundles/taiga-ui-kit-components-combo-box.umd.js.map +1 -1
  34. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js +10 -3
  35. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js.map +1 -1
  36. package/bundles/taiga-ui-kit-components-elastic-container.umd.js +4 -0
  37. package/bundles/taiga-ui-kit-components-elastic-container.umd.js.map +1 -1
  38. package/bundles/taiga-ui-kit-components-files.umd.js +8 -0
  39. package/bundles/taiga-ui-kit-components-files.umd.js.map +1 -1
  40. package/bundles/taiga-ui-kit-components-filter.umd.js +5 -0
  41. package/bundles/taiga-ui-kit-components-filter.umd.js.map +1 -1
  42. package/bundles/taiga-ui-kit-components-input-copy.umd.js +4 -0
  43. package/bundles/taiga-ui-kit-components-input-copy.umd.js.map +1 -1
  44. package/bundles/taiga-ui-kit-components-input-count.umd.js +21 -0
  45. package/bundles/taiga-ui-kit-components-input-count.umd.js.map +1 -1
  46. package/bundles/taiga-ui-kit-components-input-date-multi.umd.js +720 -0
  47. package/bundles/taiga-ui-kit-components-input-date-multi.umd.js.map +1 -0
  48. package/bundles/taiga-ui-kit-components-input-date-range.umd.js +4 -0
  49. package/bundles/taiga-ui-kit-components-input-date-range.umd.js.map +1 -1
  50. package/bundles/taiga-ui-kit-components-input-date-time.umd.js +4 -0
  51. package/bundles/taiga-ui-kit-components-input-date-time.umd.js.map +1 -1
  52. package/bundles/taiga-ui-kit-components-input-date.umd.js +9 -0
  53. package/bundles/taiga-ui-kit-components-input-date.umd.js.map +1 -1
  54. package/bundles/taiga-ui-kit-components-input-files.umd.js +15 -1
  55. package/bundles/taiga-ui-kit-components-input-files.umd.js.map +1 -1
  56. package/bundles/taiga-ui-kit-components-input-inline.umd.js +6 -0
  57. package/bundles/taiga-ui-kit-components-input-inline.umd.js.map +1 -1
  58. package/bundles/taiga-ui-kit-components-input-month-range.umd.js +4 -0
  59. package/bundles/taiga-ui-kit-components-input-month-range.umd.js.map +1 -1
  60. package/bundles/taiga-ui-kit-components-input-month.umd.js +4 -0
  61. package/bundles/taiga-ui-kit-components-input-month.umd.js.map +1 -1
  62. package/bundles/taiga-ui-kit-components-input-number.umd.js +11 -0
  63. package/bundles/taiga-ui-kit-components-input-number.umd.js.map +1 -1
  64. package/bundles/taiga-ui-kit-components-input-password.umd.js +9 -0
  65. package/bundles/taiga-ui-kit-components-input-password.umd.js.map +1 -1
  66. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js +23 -0
  67. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js.map +1 -1
  68. package/bundles/taiga-ui-kit-components-input-phone.umd.js +33 -2
  69. package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
  70. package/bundles/taiga-ui-kit-components-input-range.umd.js +4 -0
  71. package/bundles/taiga-ui-kit-components-input-range.umd.js.map +1 -1
  72. package/bundles/taiga-ui-kit-components-input-slider.umd.js +6 -0
  73. package/bundles/taiga-ui-kit-components-input-slider.umd.js.map +1 -1
  74. package/bundles/taiga-ui-kit-components-input-tag.umd.js +17 -6
  75. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  76. package/bundles/taiga-ui-kit-components-input-time.umd.js +9 -0
  77. package/bundles/taiga-ui-kit-components-input-time.umd.js.map +1 -1
  78. package/bundles/taiga-ui-kit-components-input-year.umd.js +4 -0
  79. package/bundles/taiga-ui-kit-components-input-year.umd.js.map +1 -1
  80. package/bundles/taiga-ui-kit-components-input.umd.js +4 -0
  81. package/bundles/taiga-ui-kit-components-input.umd.js.map +1 -1
  82. package/bundles/taiga-ui-kit-components-island.umd.js +4 -0
  83. package/bundles/taiga-ui-kit-components-island.umd.js.map +1 -1
  84. package/bundles/taiga-ui-kit-components-items-with-more.umd.js +4 -0
  85. package/bundles/taiga-ui-kit-components-items-with-more.umd.js.map +1 -1
  86. package/bundles/taiga-ui-kit-components-line-clamp.umd.js +8 -0
  87. package/bundles/taiga-ui-kit-components-line-clamp.umd.js.map +1 -1
  88. package/bundles/taiga-ui-kit-components-marker-icon.umd.js +4 -0
  89. package/bundles/taiga-ui-kit-components-marker-icon.umd.js.map +1 -1
  90. package/bundles/taiga-ui-kit-components-multi-select-option.umd.js +4 -0
  91. package/bundles/taiga-ui-kit-components-multi-select-option.umd.js.map +1 -1
  92. package/bundles/taiga-ui-kit-components-multi-select.umd.js +8 -0
  93. package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
  94. package/bundles/taiga-ui-kit-components-pagination.umd.js +38 -0
  95. package/bundles/taiga-ui-kit-components-pagination.umd.js.map +1 -1
  96. package/bundles/taiga-ui-kit-components-pdf-viewer.umd.js +7 -0
  97. package/bundles/taiga-ui-kit-components-pdf-viewer.umd.js.map +1 -1
  98. package/bundles/taiga-ui-kit-components-progress.umd.js +6 -0
  99. package/bundles/taiga-ui-kit-components-progress.umd.js.map +1 -1
  100. package/bundles/taiga-ui-kit-components-prompt.umd.js +5 -0
  101. package/bundles/taiga-ui-kit-components-prompt.umd.js.map +1 -1
  102. package/bundles/taiga-ui-kit-components-push.umd.js +7 -0
  103. package/bundles/taiga-ui-kit-components-push.umd.js.map +1 -1
  104. package/bundles/taiga-ui-kit-components-radio-block.umd.js +5 -0
  105. package/bundles/taiga-ui-kit-components-radio-block.umd.js.map +1 -1
  106. package/bundles/taiga-ui-kit-components-radio-group.umd.js +4 -0
  107. package/bundles/taiga-ui-kit-components-radio-group.umd.js.map +1 -1
  108. package/bundles/taiga-ui-kit-components-radio-labeled.umd.js +5 -0
  109. package/bundles/taiga-ui-kit-components-radio-labeled.umd.js.map +1 -1
  110. package/bundles/taiga-ui-kit-components-radio-list.umd.js +6 -0
  111. package/bundles/taiga-ui-kit-components-radio-list.umd.js.map +1 -1
  112. package/bundles/taiga-ui-kit-components-radio.umd.js +8 -0
  113. package/bundles/taiga-ui-kit-components-radio.umd.js.map +1 -1
  114. package/bundles/taiga-ui-kit-components-range.umd.js +9 -0
  115. package/bundles/taiga-ui-kit-components-range.umd.js.map +1 -1
  116. package/bundles/taiga-ui-kit-components-rating.umd.js +7 -0
  117. package/bundles/taiga-ui-kit-components-rating.umd.js.map +1 -1
  118. package/bundles/taiga-ui-kit-components-routable-dialog.umd.js +4 -0
  119. package/bundles/taiga-ui-kit-components-routable-dialog.umd.js.map +1 -1
  120. package/bundles/taiga-ui-kit-components-select-option.umd.js +11 -0
  121. package/bundles/taiga-ui-kit-components-select-option.umd.js.map +1 -1
  122. package/bundles/taiga-ui-kit-components-select.umd.js +7 -0
  123. package/bundles/taiga-ui-kit-components-select.umd.js.map +1 -1
  124. package/bundles/taiga-ui-kit-components-slider.umd.js +39 -0
  125. package/bundles/taiga-ui-kit-components-slider.umd.js.map +1 -1
  126. package/bundles/taiga-ui-kit-components-stepper.umd.js +6 -0
  127. package/bundles/taiga-ui-kit-components-stepper.umd.js.map +1 -1
  128. package/bundles/taiga-ui-kit-components-tabs.umd.js +25 -1
  129. package/bundles/taiga-ui-kit-components-tabs.umd.js.map +1 -1
  130. package/bundles/taiga-ui-kit-components-tag.umd.js +9 -0
  131. package/bundles/taiga-ui-kit-components-tag.umd.js.map +1 -1
  132. package/bundles/taiga-ui-kit-components-textarea.umd.js +13 -0
  133. package/bundles/taiga-ui-kit-components-textarea.umd.js.map +1 -1
  134. package/bundles/taiga-ui-kit-components-tiles.umd.js +4 -0
  135. package/bundles/taiga-ui-kit-components-tiles.umd.js.map +1 -1
  136. package/bundles/taiga-ui-kit-components-toggle.umd.js +9 -0
  137. package/bundles/taiga-ui-kit-components-toggle.umd.js.map +1 -1
  138. package/bundles/taiga-ui-kit-components-tree.umd.js +28 -0
  139. package/bundles/taiga-ui-kit-components-tree.umd.js.map +1 -1
  140. package/bundles/taiga-ui-kit-components.umd.js +14 -4
  141. package/bundles/taiga-ui-kit-components.umd.js.map +1 -1
  142. package/bundles/taiga-ui-kit-constants.umd.js +19 -0
  143. package/bundles/taiga-ui-kit-constants.umd.js.map +1 -1
  144. package/bundles/taiga-ui-kit-directives-data-list-dropdown-manager.umd.js +5 -0
  145. package/bundles/taiga-ui-kit-directives-data-list-dropdown-manager.umd.js.map +1 -1
  146. package/bundles/taiga-ui-kit-directives-highlight.umd.js +4 -0
  147. package/bundles/taiga-ui-kit-directives-highlight.umd.js.map +1 -1
  148. package/bundles/taiga-ui-kit-directives-lazy-loading.umd.js +4 -0
  149. package/bundles/taiga-ui-kit-directives-lazy-loading.umd.js.map +1 -1
  150. package/bundles/taiga-ui-kit-directives-mask.umd.js +26 -0
  151. package/bundles/taiga-ui-kit-directives-mask.umd.js.map +1 -1
  152. package/bundles/taiga-ui-kit-directives-present.umd.js +15 -0
  153. package/bundles/taiga-ui-kit-directives-present.umd.js.map +1 -1
  154. package/bundles/taiga-ui-kit-directives-project-class.umd.js +7 -0
  155. package/bundles/taiga-ui-kit-directives-project-class.umd.js.map +1 -1
  156. package/bundles/taiga-ui-kit-directives-unfinished-validator.umd.js +7 -1
  157. package/bundles/taiga-ui-kit-directives-unfinished-validator.umd.js.map +1 -1
  158. package/bundles/taiga-ui-kit-directives-unmask-handler.umd.js +4 -0
  159. package/bundles/taiga-ui-kit-directives-unmask-handler.umd.js.map +1 -1
  160. package/bundles/taiga-ui-kit-directives-value-accessor.umd.js +4 -0
  161. package/bundles/taiga-ui-kit-directives-value-accessor.umd.js.map +1 -1
  162. package/bundles/taiga-ui-kit-directives.umd.js +4 -0
  163. package/bundles/taiga-ui-kit-directives.umd.js.map +1 -1
  164. package/bundles/taiga-ui-kit-interfaces.umd.js +3 -1
  165. package/bundles/taiga-ui-kit-interfaces.umd.js.map +1 -1
  166. package/bundles/taiga-ui-kit-internal-primitive-calendar-range.umd.js +10 -0
  167. package/bundles/taiga-ui-kit-internal-primitive-calendar-range.umd.js.map +1 -1
  168. package/bundles/taiga-ui-kit-internal.umd.js +4 -0
  169. package/bundles/taiga-ui-kit-internal.umd.js.map +1 -1
  170. package/bundles/taiga-ui-kit-pipes-field-error.umd.js +4 -0
  171. package/bundles/taiga-ui-kit-pipes-field-error.umd.js.map +1 -1
  172. package/bundles/taiga-ui-kit-pipes-filter-by-input.umd.js +7 -0
  173. package/bundles/taiga-ui-kit-pipes-filter-by-input.umd.js.map +1 -1
  174. package/bundles/taiga-ui-kit-pipes-iso-to-country-code.umd.js +4 -0
  175. package/bundles/taiga-ui-kit-pipes-iso-to-country-code.umd.js.map +1 -1
  176. package/bundles/taiga-ui-kit-pipes-sort-countries.umd.js +4 -0
  177. package/bundles/taiga-ui-kit-pipes-sort-countries.umd.js.map +1 -1
  178. package/bundles/taiga-ui-kit-pipes-stringify-content.umd.js +4 -0
  179. package/bundles/taiga-ui-kit-pipes-stringify-content.umd.js.map +1 -1
  180. package/bundles/taiga-ui-kit-pipes-stringify.umd.js +4 -0
  181. package/bundles/taiga-ui-kit-pipes-stringify.umd.js.map +1 -1
  182. package/bundles/taiga-ui-kit-pipes-to-country-code.umd.js +4 -0
  183. package/bundles/taiga-ui-kit-pipes-to-country-code.umd.js.map +1 -1
  184. package/bundles/taiga-ui-kit-pipes-to-year.umd.js +4 -0
  185. package/bundles/taiga-ui-kit-pipes-to-year.umd.js.map +1 -1
  186. package/bundles/taiga-ui-kit-pipes.umd.js +4 -0
  187. package/bundles/taiga-ui-kit-pipes.umd.js.map +1 -1
  188. package/bundles/taiga-ui-kit-providers.umd.js +4 -0
  189. package/bundles/taiga-ui-kit-providers.umd.js.map +1 -1
  190. package/bundles/taiga-ui-kit-services.umd.js +4 -0
  191. package/bundles/taiga-ui-kit-services.umd.js.map +1 -1
  192. package/bundles/taiga-ui-kit-tokens.umd.js +35 -0
  193. package/bundles/taiga-ui-kit-tokens.umd.js.map +1 -1
  194. package/bundles/taiga-ui-kit-types.umd.js +3 -1
  195. package/bundles/taiga-ui-kit-types.umd.js.map +1 -1
  196. package/bundles/taiga-ui-kit-utils-date.umd.js +22 -0
  197. package/bundles/taiga-ui-kit-utils-date.umd.js.map +1 -0
  198. package/bundles/taiga-ui-kit-utils-files.umd.js +4 -0
  199. package/bundles/taiga-ui-kit-utils-files.umd.js.map +1 -1
  200. package/bundles/taiga-ui-kit-utils-format.umd.js +10 -0
  201. package/bundles/taiga-ui-kit-utils-format.umd.js.map +1 -1
  202. package/bundles/taiga-ui-kit-utils-mask.umd.js +50 -0
  203. package/bundles/taiga-ui-kit-utils-mask.umd.js.map +1 -1
  204. package/bundles/taiga-ui-kit-utils-math.umd.js +7 -0
  205. package/bundles/taiga-ui-kit-utils-math.umd.js.map +1 -1
  206. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.js +10 -0
  207. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.js.map +1 -1
  208. package/bundles/taiga-ui-kit-utils-phone.umd.js +4 -0
  209. package/bundles/taiga-ui-kit-utils-phone.umd.js.map +1 -1
  210. package/bundles/taiga-ui-kit-utils.umd.js +14 -4
  211. package/bundles/taiga-ui-kit-utils.umd.js.map +1 -1
  212. package/bundles/taiga-ui-kit-validators.umd.js +4 -0
  213. package/bundles/taiga-ui-kit-validators.umd.js.map +1 -1
  214. package/bundles/taiga-ui-kit.umd.js +4 -0
  215. package/bundles/taiga-ui-kit.umd.js.map +1 -1
  216. package/classes/stringifiable-item.d.ts +3 -0
  217. package/classes/taiga-ui-kit-classes.d.ts +3 -0
  218. package/components/accordion/taiga-ui-kit-components-accordion.d.ts +3 -0
  219. package/components/action/taiga-ui-kit-components-action.d.ts +3 -0
  220. package/components/arrow/arrow.options.d.ts +4 -0
  221. package/components/arrow/arrow.providers.d.ts +3 -0
  222. package/components/arrow/taiga-ui-kit-components-arrow.d.ts +3 -0
  223. package/components/avatar/avatar.options.d.ts +4 -0
  224. package/components/avatar/taiga-ui-kit-components-avatar.d.ts +3 -0
  225. package/components/badge/taiga-ui-kit-components-badge.d.ts +3 -0
  226. package/components/badged-content/taiga-ui-kit-components-badged-content.d.ts +3 -0
  227. package/components/breadcrumbs/taiga-ui-kit-components-breadcrumbs.d.ts +3 -0
  228. package/components/calendar-month/taiga-ui-kit-components-calendar-month.d.ts +3 -0
  229. package/components/calendar-range/taiga-ui-kit-components-calendar-range.d.ts +3 -0
  230. package/components/carousel/taiga-ui-kit-components-carousel.d.ts +3 -0
  231. package/components/checkbox/checkbox.component.d.ts +1 -0
  232. package/components/checkbox/taiga-ui-kit-components-checkbox.d.ts +3 -0
  233. package/components/checkbox-block/checkbox-block.component.d.ts +1 -0
  234. package/components/checkbox-block/taiga-ui-kit-components-checkbox-block.d.ts +3 -0
  235. package/components/checkbox-labeled/checkbox-labeled.component.d.ts +1 -0
  236. package/components/checkbox-labeled/taiga-ui-kit-components-checkbox-labeled.d.ts +3 -0
  237. package/components/combo-box/combo-box.component.d.ts +1 -0
  238. package/components/combo-box/taiga-ui-kit-components-combo-box.d.ts +3 -0
  239. package/components/data-list-wrapper/data-list-wrapper.d.ts +3 -2
  240. package/components/data-list-wrapper/taiga-ui-kit-components-data-list-wrapper.d.ts +3 -0
  241. package/components/elastic-container/taiga-ui-kit-components-elastic-container.d.ts +3 -0
  242. package/components/files/file/file-options.d.ts +3 -0
  243. package/components/files/taiga-ui-kit-components-files.d.ts +3 -0
  244. package/components/filter/taiga-ui-kit-components-filter.d.ts +3 -0
  245. package/components/index.d.ts +1 -0
  246. package/components/input/taiga-ui-kit-components-input.d.ts +3 -0
  247. package/components/input-copy/taiga-ui-kit-components-input-copy.d.ts +3 -0
  248. package/components/input-count/input-count.component.d.ts +10 -0
  249. package/components/input-count/input-count.module.d.ts +3 -0
  250. package/components/input-count/input-count.options.d.ts +4 -0
  251. package/components/input-count/taiga-ui-kit-components-input-count.d.ts +3 -0
  252. package/components/input-date/input-date.component.d.ts +4 -0
  253. package/components/input-date/taiga-ui-kit-components-input-date.d.ts +3 -0
  254. package/components/input-date-multi/index.d.ts +2 -0
  255. package/components/input-date-multi/input-date-multi.component.d.ts +64 -0
  256. package/components/input-date-multi/input-date-multi.module.d.ts +14 -0
  257. package/components/input-date-multi/package.json +10 -0
  258. package/components/input-date-multi/taiga-ui-kit-components-input-date-multi.d.ts +5 -0
  259. package/components/input-date-range/taiga-ui-kit-components-input-date-range.d.ts +3 -0
  260. package/components/input-date-time/taiga-ui-kit-components-input-date-time.d.ts +3 -0
  261. package/components/input-files/input-files.component.d.ts +6 -0
  262. package/components/input-files/input-files.options.d.ts +8 -0
  263. package/components/input-files/taiga-ui-kit-components-input-files.d.ts +3 -0
  264. package/components/input-inline/taiga-ui-kit-components-input-inline.d.ts +3 -0
  265. package/components/input-month/taiga-ui-kit-components-input-month.d.ts +3 -0
  266. package/components/input-month-range/taiga-ui-kit-components-input-month-range.d.ts +3 -0
  267. package/components/input-number/input-number.component.d.ts +2 -0
  268. package/components/input-number/input-number.options.d.ts +4 -0
  269. package/components/input-number/taiga-ui-kit-components-input-number.d.ts +3 -0
  270. package/components/input-password/input-password.options.d.ts +4 -0
  271. package/components/input-password/taiga-ui-kit-components-input-password.d.ts +3 -0
  272. package/components/input-phone/input-phone.options.d.ts +3 -0
  273. package/components/input-phone/taiga-ui-kit-components-input-phone.d.ts +3 -0
  274. package/components/input-phone/utils/complete-phone-insertion-preprocessor.d.ts +7 -0
  275. package/components/input-phone/utils/create-phone-mask-expression.d.ts +6 -0
  276. package/components/input-phone-international/input-phone-international.component.d.ts +13 -0
  277. package/components/input-phone-international/input-phone-international.options.d.ts +3 -0
  278. package/components/input-phone-international/taiga-ui-kit-components-input-phone-international.d.ts +3 -0
  279. package/components/input-range/taiga-ui-kit-components-input-range.d.ts +3 -0
  280. package/components/input-slider/input-slider.component.d.ts +2 -0
  281. package/components/input-slider/taiga-ui-kit-components-input-slider.d.ts +3 -0
  282. package/components/input-tag/input-tag.component.d.ts +1 -1
  283. package/components/input-tag/input-tag.options.d.ts +3 -0
  284. package/components/input-tag/taiga-ui-kit-components-input-tag.d.ts +3 -0
  285. package/components/input-time/input-time.component.d.ts +1 -0
  286. package/components/input-time/input-time.options.d.ts +3 -0
  287. package/components/input-time/taiga-ui-kit-components-input-time.d.ts +3 -0
  288. package/components/input-year/taiga-ui-kit-components-input-year.d.ts +3 -0
  289. package/components/island/taiga-ui-kit-components-island.d.ts +3 -0
  290. package/components/items-with-more/taiga-ui-kit-components-items-with-more.d.ts +3 -0
  291. package/components/line-clamp/line-clamp.options.d.ts +3 -0
  292. package/components/line-clamp/taiga-ui-kit-components-line-clamp.d.ts +3 -0
  293. package/components/marker-icon/taiga-ui-kit-components-marker-icon.d.ts +3 -0
  294. package/components/multi-select/multi-select.options.d.ts +3 -0
  295. package/components/multi-select/taiga-ui-kit-components-multi-select.d.ts +3 -0
  296. package/components/multi-select-option/taiga-ui-kit-components-multi-select-option.d.ts +3 -0
  297. package/components/pagination/pagination.component.d.ts +37 -0
  298. package/components/pagination/taiga-ui-kit-components-pagination.d.ts +3 -0
  299. package/components/pdf-viewer/pdf-viewer.options.d.ts +3 -0
  300. package/components/pdf-viewer/taiga-ui-kit-components-pdf-viewer.d.ts +3 -0
  301. package/components/progress/taiga-ui-kit-components-progress.d.ts +3 -0
  302. package/components/prompt/taiga-ui-kit-components-prompt.d.ts +3 -0
  303. package/components/push/push.options.d.ts +3 -0
  304. package/components/push/taiga-ui-kit-components-push.d.ts +3 -0
  305. package/components/radio/radio.options.d.ts +4 -0
  306. package/components/radio/taiga-ui-kit-components-radio.d.ts +3 -0
  307. package/components/radio-block/radio-block.component.d.ts +1 -0
  308. package/components/radio-block/taiga-ui-kit-components-radio-block.d.ts +3 -0
  309. package/components/radio-group/taiga-ui-kit-components-radio-group.d.ts +3 -0
  310. package/components/radio-labeled/radio-labeled.component.d.ts +1 -0
  311. package/components/radio-labeled/taiga-ui-kit-components-radio-labeled.d.ts +3 -0
  312. package/components/radio-list/radio-list.component.d.ts +1 -0
  313. package/components/radio-list/taiga-ui-kit-components-radio-list.d.ts +3 -0
  314. package/components/range/range-change.directive.d.ts +4 -0
  315. package/components/range/taiga-ui-kit-components-range.d.ts +3 -0
  316. package/components/rating/rating.options.d.ts +3 -0
  317. package/components/rating/taiga-ui-kit-components-rating.d.ts +3 -0
  318. package/components/routable-dialog/taiga-ui-kit-components-routable-dialog.d.ts +3 -0
  319. package/components/select/select.options.d.ts +3 -0
  320. package/components/select/taiga-ui-kit-components-select.d.ts +3 -0
  321. package/components/select-option/taiga-ui-kit-components-select-option.d.ts +3 -0
  322. package/components/slider/helpers/slider-readonly.directive.d.ts +4 -0
  323. package/components/slider/slider.options.d.ts +3 -0
  324. package/components/slider/taiga-ui-kit-components-slider.d.ts +3 -0
  325. package/components/stepper/taiga-ui-kit-components-stepper.d.ts +3 -0
  326. package/components/tabs/tab/tab.providers.d.ts +3 -0
  327. package/components/tabs/tabs/tabs.component.d.ts +2 -0
  328. package/components/tabs/tabs.options.d.ts +3 -0
  329. package/components/tabs/taiga-ui-kit-components-tabs.d.ts +3 -0
  330. package/components/tag/tag.options.d.ts +4 -0
  331. package/components/tag/taiga-ui-kit-components-tag.d.ts +3 -0
  332. package/components/taiga-ui-kit-components.d.ts +3 -0
  333. package/components/textarea/deprecated.d.ts +9 -0
  334. package/components/textarea/taiga-ui-kit-components-textarea.d.ts +3 -0
  335. package/components/tiles/taiga-ui-kit-components-tiles.d.ts +3 -0
  336. package/components/toggle/taiga-ui-kit-components-toggle.d.ts +3 -0
  337. package/components/toggle/toggle.component.d.ts +1 -0
  338. package/components/toggle/toggle.options.d.ts +4 -0
  339. package/components/tree/misc/tree.tokens.d.ts +24 -0
  340. package/components/tree/taiga-ui-kit-components-tree.d.ts +3 -0
  341. package/constants/empty-mask.d.ts +4 -0
  342. package/constants/group-class-names.d.ts +4 -0
  343. package/constants/masks.d.ts +4 -0
  344. package/constants/math.d.ts +3 -0
  345. package/constants/taiga-ui-kit-constants.d.ts +3 -0
  346. package/directives/data-list-dropdown-manager/taiga-ui-kit-directives-data-list-dropdown-manager.d.ts +3 -0
  347. package/directives/highlight/taiga-ui-kit-directives-highlight.d.ts +3 -0
  348. package/directives/lazy-loading/taiga-ui-kit-directives-lazy-loading.d.ts +3 -0
  349. package/directives/mask/legacy-mask.d.ts +21 -0
  350. package/directives/mask/taiga-ui-kit-directives-mask.d.ts +3 -0
  351. package/directives/present/present.directive.d.ts +11 -0
  352. package/directives/present/taiga-ui-kit-directives-present.d.ts +3 -0
  353. package/directives/project-class/project-class.directive.d.ts +3 -0
  354. package/directives/project-class/taiga-ui-kit-directives-project-class.d.ts +3 -0
  355. package/directives/taiga-ui-kit-directives.d.ts +3 -0
  356. package/directives/unfinished-validator/taiga-ui-kit-directives-unfinished-validator.d.ts +3 -0
  357. package/directives/unmask-handler/taiga-ui-kit-directives-unmask-handler.d.ts +3 -0
  358. package/directives/value-accessor/taiga-ui-kit-directives-value-accessor.d.ts +3 -0
  359. package/esm2015/abstract/taiga-ui-kit-abstract.js +4 -1
  360. package/esm2015/classes/stringifiable-item.js +4 -1
  361. package/esm2015/classes/taiga-ui-kit-classes.js +4 -1
  362. package/esm2015/components/accordion/taiga-ui-kit-components-accordion.js +4 -1
  363. package/esm2015/components/action/taiga-ui-kit-components-action.js +4 -1
  364. package/esm2015/components/arrow/arrow.options.js +5 -1
  365. package/esm2015/components/arrow/arrow.providers.js +4 -1
  366. package/esm2015/components/arrow/taiga-ui-kit-components-arrow.js +4 -1
  367. package/esm2015/components/avatar/avatar.options.js +5 -1
  368. package/esm2015/components/avatar/taiga-ui-kit-components-avatar.js +4 -1
  369. package/esm2015/components/badge/taiga-ui-kit-components-badge.js +4 -1
  370. package/esm2015/components/badged-content/taiga-ui-kit-components-badged-content.js +4 -1
  371. package/esm2015/components/breadcrumbs/taiga-ui-kit-components-breadcrumbs.js +4 -1
  372. package/esm2015/components/calendar-month/taiga-ui-kit-components-calendar-month.js +4 -1
  373. package/esm2015/components/calendar-range/taiga-ui-kit-components-calendar-range.js +4 -1
  374. package/esm2015/components/carousel/carousel-scroll.directive.js +2 -1
  375. package/esm2015/components/carousel/taiga-ui-kit-components-carousel.js +4 -1
  376. package/esm2015/components/checkbox/checkbox.component.js +2 -1
  377. package/esm2015/components/checkbox/taiga-ui-kit-components-checkbox.js +4 -1
  378. package/esm2015/components/checkbox-block/checkbox-block.component.js +2 -1
  379. package/esm2015/components/checkbox-block/taiga-ui-kit-components-checkbox-block.js +4 -1
  380. package/esm2015/components/checkbox-labeled/checkbox-labeled.component.js +2 -1
  381. package/esm2015/components/checkbox-labeled/taiga-ui-kit-components-checkbox-labeled.js +4 -1
  382. package/esm2015/components/combo-box/combo-box.component.js +2 -1
  383. package/esm2015/components/combo-box/taiga-ui-kit-components-combo-box.js +4 -1
  384. package/esm2015/components/data-list-wrapper/data-list-group-wrapper.component.js +2 -2
  385. package/esm2015/components/data-list-wrapper/data-list-wrapper.component.js +2 -2
  386. package/esm2015/components/data-list-wrapper/data-list-wrapper.js +6 -3
  387. package/esm2015/components/data-list-wrapper/taiga-ui-kit-components-data-list-wrapper.js +4 -1
  388. package/esm2015/components/elastic-container/taiga-ui-kit-components-elastic-container.js +4 -1
  389. package/esm2015/components/files/file/file-options.js +4 -1
  390. package/esm2015/components/files/file/file.component.js +2 -1
  391. package/esm2015/components/files/taiga-ui-kit-components-files.js +4 -1
  392. package/esm2015/components/filter/filter.component.js +2 -1
  393. package/esm2015/components/filter/taiga-ui-kit-components-filter.js +4 -1
  394. package/esm2015/components/index.js +2 -1
  395. package/esm2015/components/input/taiga-ui-kit-components-input.js +4 -1
  396. package/esm2015/components/input-copy/taiga-ui-kit-components-input-copy.js +4 -1
  397. package/esm2015/components/input-count/input-count.component.js +11 -1
  398. package/esm2015/components/input-count/input-count.module.js +4 -1
  399. package/esm2015/components/input-count/input-count.options.js +5 -1
  400. package/esm2015/components/input-count/taiga-ui-kit-components-input-count.js +4 -1
  401. package/esm2015/components/input-date/input-date.component.js +6 -1
  402. package/esm2015/components/input-date/taiga-ui-kit-components-input-date.js +4 -1
  403. package/esm2015/components/input-date-multi/index.js +3 -0
  404. package/esm2015/components/input-date-multi/input-date-multi.component.js +272 -0
  405. package/esm2015/components/input-date-multi/input-date-multi.module.js +64 -0
  406. package/esm2015/components/input-date-multi/taiga-ui-kit-components-input-date-multi.js +5 -0
  407. package/esm2015/components/input-date-range/taiga-ui-kit-components-input-date-range.js +4 -1
  408. package/esm2015/components/input-date-time/taiga-ui-kit-components-input-date-time.js +4 -1
  409. package/esm2015/components/input-files/input-files.component.js +9 -1
  410. package/esm2015/components/input-files/input-files.directive.js +2 -1
  411. package/esm2015/components/input-files/input-files.options.js +5 -2
  412. package/esm2015/components/input-files/taiga-ui-kit-components-input-files.js +4 -1
  413. package/esm2015/components/input-inline/input-inline.component.js +3 -1
  414. package/esm2015/components/input-inline/taiga-ui-kit-components-input-inline.js +4 -1
  415. package/esm2015/components/input-month/taiga-ui-kit-components-input-month.js +4 -1
  416. package/esm2015/components/input-month-range/taiga-ui-kit-components-input-month-range.js +4 -1
  417. package/esm2015/components/input-number/input-number.component.js +4 -1
  418. package/esm2015/components/input-number/input-number.options.js +5 -1
  419. package/esm2015/components/input-number/taiga-ui-kit-components-input-number.js +4 -1
  420. package/esm2015/components/input-password/input-password.options.js +6 -1
  421. package/esm2015/components/input-password/taiga-ui-kit-components-input-password.js +4 -1
  422. package/esm2015/components/input-phone/input-phone.options.js +4 -1
  423. package/esm2015/components/input-phone/taiga-ui-kit-components-input-phone.js +4 -1
  424. package/esm2015/components/input-phone/utils/complete-phone-insertion-preprocessor.js +21 -3
  425. package/esm2015/components/input-phone/utils/create-phone-mask-expression.js +7 -1
  426. package/esm2015/components/input-phone-international/input-phone-international.component.js +17 -1
  427. package/esm2015/components/input-phone-international/input-phone-international.options.js +4 -1
  428. package/esm2015/components/input-phone-international/taiga-ui-kit-components-input-phone-international.js +4 -1
  429. package/esm2015/components/input-range/taiga-ui-kit-components-input-range.js +4 -1
  430. package/esm2015/components/input-slider/input-slider.component.js +3 -1
  431. package/esm2015/components/input-slider/taiga-ui-kit-components-input-slider.js +4 -1
  432. package/esm2015/components/input-tag/input-tag.component.js +6 -2
  433. package/esm2015/components/input-tag/input-tag.options.js +4 -1
  434. package/esm2015/components/input-tag/taiga-ui-kit-components-input-tag.js +4 -1
  435. package/esm2015/components/input-time/input-time.component.js +3 -1
  436. package/esm2015/components/input-time/input-time.options.js +4 -1
  437. package/esm2015/components/input-time/taiga-ui-kit-components-input-time.js +4 -1
  438. package/esm2015/components/input-year/taiga-ui-kit-components-input-year.js +4 -1
  439. package/esm2015/components/island/taiga-ui-kit-components-island.js +4 -1
  440. package/esm2015/components/items-with-more/taiga-ui-kit-components-items-with-more.js +4 -1
  441. package/esm2015/components/line-clamp/line-clamp.component.js +2 -1
  442. package/esm2015/components/line-clamp/line-clamp.options.js +4 -1
  443. package/esm2015/components/line-clamp/taiga-ui-kit-components-line-clamp.js +4 -1
  444. package/esm2015/components/marker-icon/taiga-ui-kit-components-marker-icon.js +4 -1
  445. package/esm2015/components/multi-select/multi-select.component.js +2 -1
  446. package/esm2015/components/multi-select/multi-select.options.js +4 -1
  447. package/esm2015/components/multi-select/taiga-ui-kit-components-multi-select.js +4 -1
  448. package/esm2015/components/multi-select-option/taiga-ui-kit-components-multi-select-option.js +4 -1
  449. package/esm2015/components/pagination/pagination.component.js +35 -1
  450. package/esm2015/components/pagination/taiga-ui-kit-components-pagination.js +4 -1
  451. package/esm2015/components/pdf-viewer/pdf-viewer.options.js +4 -1
  452. package/esm2015/components/pdf-viewer/taiga-ui-kit-components-pdf-viewer.js +4 -1
  453. package/esm2015/components/progress/progress-bar/progress-color-segments.directive.js +2 -1
  454. package/esm2015/components/progress/progress-circle/progress-circle.component.js +2 -1
  455. package/esm2015/components/progress/taiga-ui-kit-components-progress.js +4 -1
  456. package/esm2015/components/prompt/prompt.component.js +2 -1
  457. package/esm2015/components/prompt/taiga-ui-kit-components-prompt.js +4 -1
  458. package/esm2015/components/push/push.options.js +4 -1
  459. package/esm2015/components/push/taiga-ui-kit-components-push.js +4 -1
  460. package/esm2015/components/radio/radio.options.js +5 -1
  461. package/esm2015/components/radio/taiga-ui-kit-components-radio.js +4 -1
  462. package/esm2015/components/radio-block/radio-block.component.js +2 -1
  463. package/esm2015/components/radio-block/taiga-ui-kit-components-radio-block.js +4 -1
  464. package/esm2015/components/radio-group/taiga-ui-kit-components-radio-group.js +4 -1
  465. package/esm2015/components/radio-labeled/radio-labeled.component.js +2 -1
  466. package/esm2015/components/radio-labeled/taiga-ui-kit-components-radio-labeled.js +4 -1
  467. package/esm2015/components/radio-list/radio-list.component.js +3 -1
  468. package/esm2015/components/radio-list/taiga-ui-kit-components-radio-list.js +4 -1
  469. package/esm2015/components/range/range-change.directive.js +5 -1
  470. package/esm2015/components/range/range.component.js +2 -1
  471. package/esm2015/components/range/taiga-ui-kit-components-range.js +4 -1
  472. package/esm2015/components/rating/rating.options.js +4 -1
  473. package/esm2015/components/rating/taiga-ui-kit-components-rating.js +4 -1
  474. package/esm2015/components/routable-dialog/taiga-ui-kit-components-routable-dialog.js +4 -1
  475. package/esm2015/components/select/select.options.js +4 -1
  476. package/esm2015/components/select/taiga-ui-kit-components-select.js +4 -1
  477. package/esm2015/components/select-option/select-option.component.js +8 -1
  478. package/esm2015/components/select-option/taiga-ui-kit-components-select-option.js +4 -1
  479. package/esm2015/components/slider/helpers/slider-readonly.directive.js +9 -1
  480. package/esm2015/components/slider/slider.component.js +25 -1
  481. package/esm2015/components/slider/slider.options.js +4 -1
  482. package/esm2015/components/slider/taiga-ui-kit-components-slider.js +4 -1
  483. package/esm2015/components/stepper/stepper.component.js +3 -1
  484. package/esm2015/components/stepper/taiga-ui-kit-components-stepper.js +4 -1
  485. package/esm2015/components/tabs/tab/tab.component.js +9 -1
  486. package/esm2015/components/tabs/tab/tab.providers.js +4 -1
  487. package/esm2015/components/tabs/tabs/tabs.component.js +3 -1
  488. package/esm2015/components/tabs/tabs-with-more/tabs-with-more.component.js +3 -1
  489. package/esm2015/components/tabs/tabs-with-more/tabs-with-more.providers.js +4 -2
  490. package/esm2015/components/tabs/tabs.options.js +4 -1
  491. package/esm2015/components/tabs/taiga-ui-kit-components-tabs.js +4 -1
  492. package/esm2015/components/tag/tag.component.js +2 -1
  493. package/esm2015/components/tag/tag.options.js +5 -1
  494. package/esm2015/components/tag/taiga-ui-kit-components-tag.js +4 -1
  495. package/esm2015/components/taiga-ui-kit-components.js +4 -1
  496. package/esm2015/components/textarea/deprecated.js +10 -1
  497. package/esm2015/components/textarea/taiga-ui-kit-components-textarea.js +4 -1
  498. package/esm2015/components/tiles/taiga-ui-kit-components-tiles.js +4 -1
  499. package/esm2015/components/toggle/taiga-ui-kit-components-toggle.js +4 -1
  500. package/esm2015/components/toggle/toggle.component.js +2 -1
  501. package/esm2015/components/toggle/toggle.options.js +5 -1
  502. package/esm2015/components/tree/components/tree-item/tree-item.component.js +2 -1
  503. package/esm2015/components/tree/components/tree-item/tree-item.providers.js +2 -1
  504. package/esm2015/components/tree/components/tree-item-content/tree-item-content.component.js +2 -1
  505. package/esm2015/components/tree/misc/tree.tokens.js +25 -1
  506. package/esm2015/components/tree/taiga-ui-kit-components-tree.js +4 -1
  507. package/esm2015/constants/empty-mask.js +5 -1
  508. package/esm2015/constants/group-class-names.js +5 -1
  509. package/esm2015/constants/masks.js +5 -1
  510. package/esm2015/constants/math.js +4 -1
  511. package/esm2015/constants/taiga-ui-kit-constants.js +4 -1
  512. package/esm2015/directives/data-list-dropdown-manager/data-list-dropdown-manager.directive.js +2 -1
  513. package/esm2015/directives/data-list-dropdown-manager/taiga-ui-kit-directives-data-list-dropdown-manager.js +4 -1
  514. package/esm2015/directives/highlight/taiga-ui-kit-directives-highlight.js +4 -1
  515. package/esm2015/directives/lazy-loading/taiga-ui-kit-directives-lazy-loading.js +4 -1
  516. package/esm2015/directives/mask/legacy-mask.js +31 -1
  517. package/esm2015/directives/mask/taiga-ui-kit-directives-mask.js +4 -1
  518. package/esm2015/directives/present/present.directive.js +12 -1
  519. package/esm2015/directives/present/taiga-ui-kit-directives-present.js +4 -1
  520. package/esm2015/directives/project-class/project-class.directive.js +4 -1
  521. package/esm2015/directives/project-class/taiga-ui-kit-directives-project-class.js +4 -1
  522. package/esm2015/directives/taiga-ui-kit-directives.js +4 -1
  523. package/esm2015/directives/unfinished-validator/taiga-ui-kit-directives-unfinished-validator.js +4 -1
  524. package/esm2015/directives/unfinished-validator/unfinished-validator.directive.js +4 -2
  525. package/esm2015/directives/unmask-handler/taiga-ui-kit-directives-unmask-handler.js +4 -1
  526. package/esm2015/directives/value-accessor/taiga-ui-kit-directives-value-accessor.js +4 -1
  527. package/esm2015/interfaces/taiga-ui-kit-interfaces.js +4 -1
  528. package/esm2015/internal/primitive-calendar-range/primitive-calendar-range.component.js +4 -1
  529. package/esm2015/internal/primitive-calendar-range/primitive-calendar-range.module.js +4 -1
  530. package/esm2015/internal/primitive-calendar-range/taiga-ui-kit-internal-primitive-calendar-range.js +4 -1
  531. package/esm2015/internal/taiga-ui-kit-internal.js +4 -1
  532. package/esm2015/pipes/field-error/taiga-ui-kit-pipes-field-error.js +4 -1
  533. package/esm2015/pipes/filter-by-input/filter-by-input-with.pipe.js +4 -1
  534. package/esm2015/pipes/filter-by-input/taiga-ui-kit-pipes-filter-by-input.js +4 -1
  535. package/esm2015/pipes/iso-to-country-code/taiga-ui-kit-pipes-iso-to-country-code.js +4 -1
  536. package/esm2015/pipes/sort-countries/taiga-ui-kit-pipes-sort-countries.js +4 -1
  537. package/esm2015/pipes/stringify/taiga-ui-kit-pipes-stringify.js +4 -1
  538. package/esm2015/pipes/stringify-content/taiga-ui-kit-pipes-stringify-content.js +4 -1
  539. package/esm2015/pipes/taiga-ui-kit-pipes.js +4 -1
  540. package/esm2015/pipes/to-country-code/taiga-ui-kit-pipes-to-country-code.js +4 -1
  541. package/esm2015/pipes/to-year/taiga-ui-kit-pipes-to-year.js +4 -1
  542. package/esm2015/providers/taiga-ui-kit-providers.js +4 -1
  543. package/esm2015/services/taiga-ui-kit-services.js +4 -1
  544. package/esm2015/taiga-ui-kit.js +4 -1
  545. package/esm2015/tokens/calendar-date-stream.js +4 -1
  546. package/esm2015/tokens/date-inputs-value-transformers.js +11 -1
  547. package/esm2015/tokens/input-date-options.js +4 -1
  548. package/esm2015/tokens/items-handlers.js +4 -1
  549. package/esm2015/tokens/mobile-calendar.js +4 -1
  550. package/esm2015/tokens/month-formatter.js +4 -1
  551. package/esm2015/tokens/tab-margin.js +4 -1
  552. package/esm2015/tokens/taiga-ui-kit-tokens.js +4 -1
  553. package/esm2015/tokens/validation-errors.js +4 -1
  554. package/esm2015/types/taiga-ui-kit-types.js +4 -1
  555. package/esm2015/utils/date/index.js +2 -0
  556. package/esm2015/utils/date/taiga-ui-kit-utils-date.js +5 -0
  557. package/esm2015/utils/date/update.js +6 -0
  558. package/esm2015/utils/files/taiga-ui-kit-utils-files.js +4 -1
  559. package/esm2015/utils/format/string-hash-to-hsl.js +7 -1
  560. package/esm2015/utils/format/taiga-ui-kit-utils-format.js +4 -1
  561. package/esm2015/utils/index.js +2 -1
  562. package/esm2015/utils/mask/create-auto-corrected-date-pipe.js +9 -1
  563. package/esm2015/utils/mask/create-auto-corrected-date-range-pipe.js +17 -1
  564. package/esm2015/utils/mask/create-auto-corrected-date-time-pipe.js +5 -1
  565. package/esm2015/utils/mask/create-auto-corrected-time-pipe.js +7 -1
  566. package/esm2015/utils/mask/create-date-mask.js +5 -1
  567. package/esm2015/utils/mask/create-date-range-mask.js +5 -1
  568. package/esm2015/utils/mask/create-time-mask.js +5 -1
  569. package/esm2015/utils/mask/taiga-ui-kit-utils-mask.js +4 -1
  570. package/esm2015/utils/math/horizontal-direction-to-number.js +4 -1
  571. package/esm2015/utils/math/taiga-ui-kit-utils-math.js +4 -1
  572. package/esm2015/utils/miscellaneous/get-precision.js +4 -1
  573. package/esm2015/utils/miscellaneous/replay-control-value-changes-factory.js +4 -1
  574. package/esm2015/utils/miscellaneous/taiga-ui-kit-utils-miscellaneous.js +4 -1
  575. package/esm2015/utils/phone/taiga-ui-kit-utils-phone.js +4 -1
  576. package/esm2015/utils/taiga-ui-kit-utils.js +4 -1
  577. package/esm2015/validators/taiga-ui-kit-validators.js +4 -1
  578. package/fesm2015/taiga-ui-kit-abstract.js +4 -0
  579. package/fesm2015/taiga-ui-kit-abstract.js.map +1 -1
  580. package/fesm2015/taiga-ui-kit-classes.js +7 -0
  581. package/fesm2015/taiga-ui-kit-classes.js.map +1 -1
  582. package/fesm2015/taiga-ui-kit-components-accordion.js +4 -0
  583. package/fesm2015/taiga-ui-kit-components-accordion.js.map +1 -1
  584. package/fesm2015/taiga-ui-kit-components-action.js +4 -0
  585. package/fesm2015/taiga-ui-kit-components-action.js.map +1 -1
  586. package/fesm2015/taiga-ui-kit-components-arrow.js +11 -0
  587. package/fesm2015/taiga-ui-kit-components-arrow.js.map +1 -1
  588. package/fesm2015/taiga-ui-kit-components-avatar.js +8 -0
  589. package/fesm2015/taiga-ui-kit-components-avatar.js.map +1 -1
  590. package/fesm2015/taiga-ui-kit-components-badge.js +4 -0
  591. package/fesm2015/taiga-ui-kit-components-badge.js.map +1 -1
  592. package/fesm2015/taiga-ui-kit-components-badged-content.js +4 -0
  593. package/fesm2015/taiga-ui-kit-components-badged-content.js.map +1 -1
  594. package/fesm2015/taiga-ui-kit-components-breadcrumbs.js +4 -0
  595. package/fesm2015/taiga-ui-kit-components-breadcrumbs.js.map +1 -1
  596. package/fesm2015/taiga-ui-kit-components-calendar-month.js +4 -0
  597. package/fesm2015/taiga-ui-kit-components-calendar-month.js.map +1 -1
  598. package/fesm2015/taiga-ui-kit-components-calendar-range.js +4 -0
  599. package/fesm2015/taiga-ui-kit-components-calendar-range.js.map +1 -1
  600. package/fesm2015/taiga-ui-kit-components-carousel.js +5 -0
  601. package/fesm2015/taiga-ui-kit-components-carousel.js.map +1 -1
  602. package/fesm2015/taiga-ui-kit-components-checkbox-block.js +5 -0
  603. package/fesm2015/taiga-ui-kit-components-checkbox-block.js.map +1 -1
  604. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js +5 -0
  605. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js.map +1 -1
  606. package/fesm2015/taiga-ui-kit-components-checkbox.js +5 -0
  607. package/fesm2015/taiga-ui-kit-components-checkbox.js.map +1 -1
  608. package/fesm2015/taiga-ui-kit-components-combo-box.js +5 -0
  609. package/fesm2015/taiga-ui-kit-components-combo-box.js.map +1 -1
  610. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js +11 -4
  611. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  612. package/fesm2015/taiga-ui-kit-components-elastic-container.js +4 -0
  613. package/fesm2015/taiga-ui-kit-components-elastic-container.js.map +1 -1
  614. package/fesm2015/taiga-ui-kit-components-files.js +8 -0
  615. package/fesm2015/taiga-ui-kit-components-files.js.map +1 -1
  616. package/fesm2015/taiga-ui-kit-components-filter.js +5 -0
  617. package/fesm2015/taiga-ui-kit-components-filter.js.map +1 -1
  618. package/fesm2015/taiga-ui-kit-components-input-copy.js +4 -0
  619. package/fesm2015/taiga-ui-kit-components-input-copy.js.map +1 -1
  620. package/fesm2015/taiga-ui-kit-components-input-count.js +21 -0
  621. package/fesm2015/taiga-ui-kit-components-input-count.js.map +1 -1
  622. package/fesm2015/taiga-ui-kit-components-input-date-multi.js +335 -0
  623. package/fesm2015/taiga-ui-kit-components-input-date-multi.js.map +1 -0
  624. package/fesm2015/taiga-ui-kit-components-input-date-range.js +4 -0
  625. package/fesm2015/taiga-ui-kit-components-input-date-range.js.map +1 -1
  626. package/fesm2015/taiga-ui-kit-components-input-date-time.js +4 -0
  627. package/fesm2015/taiga-ui-kit-components-input-date-time.js.map +1 -1
  628. package/fesm2015/taiga-ui-kit-components-input-date.js +9 -0
  629. package/fesm2015/taiga-ui-kit-components-input-date.js.map +1 -1
  630. package/fesm2015/taiga-ui-kit-components-input-files.js +15 -1
  631. package/fesm2015/taiga-ui-kit-components-input-files.js.map +1 -1
  632. package/fesm2015/taiga-ui-kit-components-input-inline.js +6 -0
  633. package/fesm2015/taiga-ui-kit-components-input-inline.js.map +1 -1
  634. package/fesm2015/taiga-ui-kit-components-input-month-range.js +4 -0
  635. package/fesm2015/taiga-ui-kit-components-input-month-range.js.map +1 -1
  636. package/fesm2015/taiga-ui-kit-components-input-month.js +4 -0
  637. package/fesm2015/taiga-ui-kit-components-input-month.js.map +1 -1
  638. package/fesm2015/taiga-ui-kit-components-input-number.js +11 -0
  639. package/fesm2015/taiga-ui-kit-components-input-number.js.map +1 -1
  640. package/fesm2015/taiga-ui-kit-components-input-password.js +9 -0
  641. package/fesm2015/taiga-ui-kit-components-input-password.js.map +1 -1
  642. package/fesm2015/taiga-ui-kit-components-input-phone-international.js +23 -0
  643. package/fesm2015/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  644. package/fesm2015/taiga-ui-kit-components-input-phone.js +33 -2
  645. package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
  646. package/fesm2015/taiga-ui-kit-components-input-range.js +4 -0
  647. package/fesm2015/taiga-ui-kit-components-input-range.js.map +1 -1
  648. package/fesm2015/taiga-ui-kit-components-input-slider.js +6 -0
  649. package/fesm2015/taiga-ui-kit-components-input-slider.js.map +1 -1
  650. package/fesm2015/taiga-ui-kit-components-input-tag.js +12 -1
  651. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  652. package/fesm2015/taiga-ui-kit-components-input-time.js +9 -0
  653. package/fesm2015/taiga-ui-kit-components-input-time.js.map +1 -1
  654. package/fesm2015/taiga-ui-kit-components-input-year.js +4 -0
  655. package/fesm2015/taiga-ui-kit-components-input-year.js.map +1 -1
  656. package/fesm2015/taiga-ui-kit-components-input.js +4 -0
  657. package/fesm2015/taiga-ui-kit-components-input.js.map +1 -1
  658. package/fesm2015/taiga-ui-kit-components-island.js +4 -0
  659. package/fesm2015/taiga-ui-kit-components-island.js.map +1 -1
  660. package/fesm2015/taiga-ui-kit-components-items-with-more.js +4 -0
  661. package/fesm2015/taiga-ui-kit-components-items-with-more.js.map +1 -1
  662. package/fesm2015/taiga-ui-kit-components-line-clamp.js +8 -0
  663. package/fesm2015/taiga-ui-kit-components-line-clamp.js.map +1 -1
  664. package/fesm2015/taiga-ui-kit-components-marker-icon.js +4 -0
  665. package/fesm2015/taiga-ui-kit-components-marker-icon.js.map +1 -1
  666. package/fesm2015/taiga-ui-kit-components-multi-select-option.js +4 -0
  667. package/fesm2015/taiga-ui-kit-components-multi-select-option.js.map +1 -1
  668. package/fesm2015/taiga-ui-kit-components-multi-select.js +8 -0
  669. package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
  670. package/fesm2015/taiga-ui-kit-components-pagination.js +38 -0
  671. package/fesm2015/taiga-ui-kit-components-pagination.js.map +1 -1
  672. package/fesm2015/taiga-ui-kit-components-pdf-viewer.js +7 -0
  673. package/fesm2015/taiga-ui-kit-components-pdf-viewer.js.map +1 -1
  674. package/fesm2015/taiga-ui-kit-components-progress.js +6 -0
  675. package/fesm2015/taiga-ui-kit-components-progress.js.map +1 -1
  676. package/fesm2015/taiga-ui-kit-components-prompt.js +5 -0
  677. package/fesm2015/taiga-ui-kit-components-prompt.js.map +1 -1
  678. package/fesm2015/taiga-ui-kit-components-push.js +7 -0
  679. package/fesm2015/taiga-ui-kit-components-push.js.map +1 -1
  680. package/fesm2015/taiga-ui-kit-components-radio-block.js +5 -0
  681. package/fesm2015/taiga-ui-kit-components-radio-block.js.map +1 -1
  682. package/fesm2015/taiga-ui-kit-components-radio-group.js +4 -0
  683. package/fesm2015/taiga-ui-kit-components-radio-group.js.map +1 -1
  684. package/fesm2015/taiga-ui-kit-components-radio-labeled.js +5 -0
  685. package/fesm2015/taiga-ui-kit-components-radio-labeled.js.map +1 -1
  686. package/fesm2015/taiga-ui-kit-components-radio-list.js +6 -0
  687. package/fesm2015/taiga-ui-kit-components-radio-list.js.map +1 -1
  688. package/fesm2015/taiga-ui-kit-components-radio.js +8 -0
  689. package/fesm2015/taiga-ui-kit-components-radio.js.map +1 -1
  690. package/fesm2015/taiga-ui-kit-components-range.js +9 -0
  691. package/fesm2015/taiga-ui-kit-components-range.js.map +1 -1
  692. package/fesm2015/taiga-ui-kit-components-rating.js +7 -0
  693. package/fesm2015/taiga-ui-kit-components-rating.js.map +1 -1
  694. package/fesm2015/taiga-ui-kit-components-routable-dialog.js +4 -0
  695. package/fesm2015/taiga-ui-kit-components-routable-dialog.js.map +1 -1
  696. package/fesm2015/taiga-ui-kit-components-select-option.js +11 -0
  697. package/fesm2015/taiga-ui-kit-components-select-option.js.map +1 -1
  698. package/fesm2015/taiga-ui-kit-components-select.js +7 -0
  699. package/fesm2015/taiga-ui-kit-components-select.js.map +1 -1
  700. package/fesm2015/taiga-ui-kit-components-slider.js +39 -0
  701. package/fesm2015/taiga-ui-kit-components-slider.js.map +1 -1
  702. package/fesm2015/taiga-ui-kit-components-stepper.js +6 -0
  703. package/fesm2015/taiga-ui-kit-components-stepper.js.map +1 -1
  704. package/fesm2015/taiga-ui-kit-components-tabs.js +25 -1
  705. package/fesm2015/taiga-ui-kit-components-tabs.js.map +1 -1
  706. package/fesm2015/taiga-ui-kit-components-tag.js +9 -0
  707. package/fesm2015/taiga-ui-kit-components-tag.js.map +1 -1
  708. package/fesm2015/taiga-ui-kit-components-textarea.js +13 -0
  709. package/fesm2015/taiga-ui-kit-components-textarea.js.map +1 -1
  710. package/fesm2015/taiga-ui-kit-components-tiles.js +4 -0
  711. package/fesm2015/taiga-ui-kit-components-tiles.js.map +1 -1
  712. package/fesm2015/taiga-ui-kit-components-toggle.js +9 -0
  713. package/fesm2015/taiga-ui-kit-components-toggle.js.map +1 -1
  714. package/fesm2015/taiga-ui-kit-components-tree.js +28 -0
  715. package/fesm2015/taiga-ui-kit-components-tree.js.map +1 -1
  716. package/fesm2015/taiga-ui-kit-components.js +5 -0
  717. package/fesm2015/taiga-ui-kit-components.js.map +1 -1
  718. package/fesm2015/taiga-ui-kit-constants.js +19 -0
  719. package/fesm2015/taiga-ui-kit-constants.js.map +1 -1
  720. package/fesm2015/taiga-ui-kit-directives-data-list-dropdown-manager.js +5 -0
  721. package/fesm2015/taiga-ui-kit-directives-data-list-dropdown-manager.js.map +1 -1
  722. package/fesm2015/taiga-ui-kit-directives-highlight.js +4 -0
  723. package/fesm2015/taiga-ui-kit-directives-highlight.js.map +1 -1
  724. package/fesm2015/taiga-ui-kit-directives-lazy-loading.js +4 -0
  725. package/fesm2015/taiga-ui-kit-directives-lazy-loading.js.map +1 -1
  726. package/fesm2015/taiga-ui-kit-directives-mask.js +26 -0
  727. package/fesm2015/taiga-ui-kit-directives-mask.js.map +1 -1
  728. package/fesm2015/taiga-ui-kit-directives-present.js +15 -0
  729. package/fesm2015/taiga-ui-kit-directives-present.js.map +1 -1
  730. package/fesm2015/taiga-ui-kit-directives-project-class.js +7 -0
  731. package/fesm2015/taiga-ui-kit-directives-project-class.js.map +1 -1
  732. package/fesm2015/taiga-ui-kit-directives-unfinished-validator.js +7 -1
  733. package/fesm2015/taiga-ui-kit-directives-unfinished-validator.js.map +1 -1
  734. package/fesm2015/taiga-ui-kit-directives-unmask-handler.js +4 -0
  735. package/fesm2015/taiga-ui-kit-directives-unmask-handler.js.map +1 -1
  736. package/fesm2015/taiga-ui-kit-directives-value-accessor.js +4 -0
  737. package/fesm2015/taiga-ui-kit-directives-value-accessor.js.map +1 -1
  738. package/fesm2015/taiga-ui-kit-directives.js +4 -0
  739. package/fesm2015/taiga-ui-kit-directives.js.map +1 -1
  740. package/fesm2015/taiga-ui-kit-interfaces.js +3 -1
  741. package/fesm2015/taiga-ui-kit-interfaces.js.map +1 -1
  742. package/fesm2015/taiga-ui-kit-internal-primitive-calendar-range.js +10 -0
  743. package/fesm2015/taiga-ui-kit-internal-primitive-calendar-range.js.map +1 -1
  744. package/fesm2015/taiga-ui-kit-internal.js +4 -0
  745. package/fesm2015/taiga-ui-kit-internal.js.map +1 -1
  746. package/fesm2015/taiga-ui-kit-pipes-field-error.js +4 -0
  747. package/fesm2015/taiga-ui-kit-pipes-field-error.js.map +1 -1
  748. package/fesm2015/taiga-ui-kit-pipes-filter-by-input.js +7 -0
  749. package/fesm2015/taiga-ui-kit-pipes-filter-by-input.js.map +1 -1
  750. package/fesm2015/taiga-ui-kit-pipes-iso-to-country-code.js +4 -0
  751. package/fesm2015/taiga-ui-kit-pipes-iso-to-country-code.js.map +1 -1
  752. package/fesm2015/taiga-ui-kit-pipes-sort-countries.js +4 -0
  753. package/fesm2015/taiga-ui-kit-pipes-sort-countries.js.map +1 -1
  754. package/fesm2015/taiga-ui-kit-pipes-stringify-content.js +4 -0
  755. package/fesm2015/taiga-ui-kit-pipes-stringify-content.js.map +1 -1
  756. package/fesm2015/taiga-ui-kit-pipes-stringify.js +4 -0
  757. package/fesm2015/taiga-ui-kit-pipes-stringify.js.map +1 -1
  758. package/fesm2015/taiga-ui-kit-pipes-to-country-code.js +4 -0
  759. package/fesm2015/taiga-ui-kit-pipes-to-country-code.js.map +1 -1
  760. package/fesm2015/taiga-ui-kit-pipes-to-year.js +4 -0
  761. package/fesm2015/taiga-ui-kit-pipes-to-year.js.map +1 -1
  762. package/fesm2015/taiga-ui-kit-pipes.js +4 -0
  763. package/fesm2015/taiga-ui-kit-pipes.js.map +1 -1
  764. package/fesm2015/taiga-ui-kit-providers.js +4 -0
  765. package/fesm2015/taiga-ui-kit-providers.js.map +1 -1
  766. package/fesm2015/taiga-ui-kit-services.js +4 -0
  767. package/fesm2015/taiga-ui-kit-services.js.map +1 -1
  768. package/fesm2015/taiga-ui-kit-tokens.js +35 -0
  769. package/fesm2015/taiga-ui-kit-tokens.js.map +1 -1
  770. package/fesm2015/taiga-ui-kit-types.js +3 -1
  771. package/fesm2015/taiga-ui-kit-types.js.map +1 -1
  772. package/fesm2015/taiga-ui-kit-utils-date.js +12 -0
  773. package/fesm2015/taiga-ui-kit-utils-date.js.map +1 -0
  774. package/fesm2015/taiga-ui-kit-utils-files.js +4 -0
  775. package/fesm2015/taiga-ui-kit-utils-files.js.map +1 -1
  776. package/fesm2015/taiga-ui-kit-utils-format.js +10 -0
  777. package/fesm2015/taiga-ui-kit-utils-format.js.map +1 -1
  778. package/fesm2015/taiga-ui-kit-utils-mask.js +50 -0
  779. package/fesm2015/taiga-ui-kit-utils-mask.js.map +1 -1
  780. package/fesm2015/taiga-ui-kit-utils-math.js +7 -0
  781. package/fesm2015/taiga-ui-kit-utils-math.js.map +1 -1
  782. package/fesm2015/taiga-ui-kit-utils-miscellaneous.js +10 -0
  783. package/fesm2015/taiga-ui-kit-utils-miscellaneous.js.map +1 -1
  784. package/fesm2015/taiga-ui-kit-utils-phone.js +4 -0
  785. package/fesm2015/taiga-ui-kit-utils-phone.js.map +1 -1
  786. package/fesm2015/taiga-ui-kit-utils.js +5 -0
  787. package/fesm2015/taiga-ui-kit-utils.js.map +1 -1
  788. package/fesm2015/taiga-ui-kit-validators.js +4 -0
  789. package/fesm2015/taiga-ui-kit-validators.js.map +1 -1
  790. package/fesm2015/taiga-ui-kit.js +4 -0
  791. package/fesm2015/taiga-ui-kit.js.map +1 -1
  792. package/interfaces/taiga-ui-kit-interfaces.d.ts +3 -0
  793. package/internal/primitive-calendar-range/primitive-calendar-range.component.d.ts +3 -0
  794. package/internal/primitive-calendar-range/primitive-calendar-range.module.d.ts +3 -0
  795. package/internal/primitive-calendar-range/taiga-ui-kit-internal-primitive-calendar-range.d.ts +3 -0
  796. package/internal/taiga-ui-kit-internal.d.ts +3 -0
  797. package/package.json +5 -5
  798. package/pipes/field-error/taiga-ui-kit-pipes-field-error.d.ts +3 -0
  799. package/pipes/filter-by-input/filter-by-input-with.pipe.d.ts +3 -0
  800. package/pipes/filter-by-input/filter-by-input.base.d.ts +4 -0
  801. package/pipes/filter-by-input/taiga-ui-kit-pipes-filter-by-input.d.ts +3 -0
  802. package/pipes/iso-to-country-code/taiga-ui-kit-pipes-iso-to-country-code.d.ts +3 -0
  803. package/pipes/sort-countries/taiga-ui-kit-pipes-sort-countries.d.ts +3 -0
  804. package/pipes/stringify/taiga-ui-kit-pipes-stringify.d.ts +3 -0
  805. package/pipes/stringify-content/taiga-ui-kit-pipes-stringify-content.d.ts +3 -0
  806. package/pipes/taiga-ui-kit-pipes.d.ts +3 -0
  807. package/pipes/to-country-code/taiga-ui-kit-pipes-to-country-code.d.ts +3 -0
  808. package/pipes/to-year/taiga-ui-kit-pipes-to-year.d.ts +3 -0
  809. package/providers/taiga-ui-kit-providers.d.ts +3 -0
  810. package/services/taiga-ui-kit-services.d.ts +3 -0
  811. package/taiga-ui-kit.d.ts +3 -0
  812. package/tokens/calendar-date-stream.d.ts +3 -0
  813. package/tokens/date-inputs-value-transformers.d.ts +9 -0
  814. package/tokens/input-date-options.d.ts +3 -0
  815. package/tokens/items-handlers.d.ts +3 -0
  816. package/tokens/mobile-calendar.d.ts +3 -0
  817. package/tokens/month-formatter.d.ts +3 -0
  818. package/tokens/tab-margin.d.ts +3 -0
  819. package/tokens/taiga-ui-kit-tokens.d.ts +3 -0
  820. package/tokens/validation-errors.d.ts +3 -0
  821. package/types/file-state.d.ts +3 -0
  822. package/types/key-steps.d.ts +18 -0
  823. package/types/taiga-ui-kit-types.d.ts +3 -0
  824. package/utils/date/index.d.ts +1 -0
  825. package/utils/date/package.json +10 -0
  826. package/utils/date/taiga-ui-kit-utils-date.d.ts +5 -0
  827. package/utils/date/update.d.ts +2 -0
  828. package/utils/files/taiga-ui-kit-utils-files.d.ts +3 -0
  829. package/utils/format/string-hash-to-hsl.d.ts +5 -0
  830. package/utils/format/taiga-ui-kit-utils-format.d.ts +3 -0
  831. package/utils/index.d.ts +1 -0
  832. package/utils/mask/create-auto-corrected-date-pipe.d.ts +12 -0
  833. package/utils/mask/create-auto-corrected-date-range-pipe.d.ts +16 -0
  834. package/utils/mask/create-auto-corrected-date-time-pipe.d.ts +4 -0
  835. package/utils/mask/create-auto-corrected-time-pipe.d.ts +6 -0
  836. package/utils/mask/create-date-mask.d.ts +4 -0
  837. package/utils/mask/create-date-range-mask.d.ts +4 -0
  838. package/utils/mask/create-time-mask.d.ts +4 -0
  839. package/utils/mask/taiga-ui-kit-utils-mask.d.ts +3 -0
  840. package/utils/math/horizontal-direction-to-number.d.ts +3 -0
  841. package/utils/math/taiga-ui-kit-utils-math.d.ts +3 -0
  842. package/utils/miscellaneous/get-precision.d.ts +3 -0
  843. package/utils/miscellaneous/replay-control-value-changes-factory.d.ts +3 -0
  844. package/utils/miscellaneous/taiga-ui-kit-utils-miscellaneous.d.ts +3 -0
  845. package/utils/phone/taiga-ui-kit-utils-phone.d.ts +3 -0
  846. package/utils/taiga-ui-kit-utils.d.ts +3 -0
  847. package/validators/taiga-ui-kit-validators.d.ts +3 -0
@@ -0,0 +1,272 @@
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, HostListener, Inject, Injector, Input, Optional, Self, ViewChild, } from '@angular/core';
2
+ import { NgControl } from '@angular/forms';
3
+ import { maskitoDateOptionsGenerator } from '@maskito/kit';
4
+ import { AbstractTuiMultipleControl, ALWAYS_FALSE_HANDLER, changeDateSeparator, TUI_DATE_FORMAT, TUI_DATE_SEPARATOR, TUI_IS_MOBILE, tuiAsControl, tuiAsFocusableItemAccessor, tuiDateClamp, TuiDay, tuiIsString, TuiMonth, } from '@taiga-ui/cdk';
5
+ import { TUI_DEFAULT_MARKER_HANDLER, TUI_TEXTFIELD_SIZE, TuiDialogService, TuiPrimitiveTextfieldComponent, } from '@taiga-ui/core';
6
+ import { TuiInputTagComponent } from '@taiga-ui/kit/components/input-tag';
7
+ import { TUI_DATE_TEXTS, TUI_DATE_VALUE_TRANSFORMER, TUI_DONE_WORD, TUI_INPUT_DATE_OPTIONS, TUI_MOBILE_CALENDAR, tuiDateStreamWithTransformer, } from '@taiga-ui/kit/tokens';
8
+ import { tuiImmutableUpdateInputDateMulti } from '@taiga-ui/kit/utils';
9
+ import { PolymorpheusComponent } from '@tinkoff/ng-polymorpheus';
10
+ import { map, takeUntil } from 'rxjs/operators';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "@taiga-ui/core";
13
+ import * as i2 from "@taiga-ui/kit/components/input-tag";
14
+ import * as i3 from "@maskito/angular";
15
+ import * as i4 from "@angular/forms";
16
+ import * as i5 from "@tinkoff/ng-polymorpheus";
17
+ import * as i6 from "@taiga-ui/cdk";
18
+ import * as i7 from "@angular/common";
19
+ import * as i8 from "rxjs";
20
+ export class TuiInputDateMultiComponent extends AbstractTuiMultipleControl {
21
+ constructor(control, cdr, injector, isMobile, dialogs, mobileCalendar, dateFormat, dateSeparator, dateTexts$, valueTransformer, options, textfieldSize, doneWord$) {
22
+ var _a, _b;
23
+ super(control, cdr, valueTransformer);
24
+ this.injector = injector;
25
+ this.isMobile = isMobile;
26
+ this.dialogs = dialogs;
27
+ this.mobileCalendar = mobileCalendar;
28
+ this.dateFormat = dateFormat;
29
+ this.dateSeparator = dateSeparator;
30
+ this.dateTexts$ = dateTexts$;
31
+ this.valueTransformer = valueTransformer;
32
+ this.options = options;
33
+ this.textfieldSize = textfieldSize;
34
+ this.doneWord$ = doneWord$;
35
+ this.month = null;
36
+ this.min = this.options.min;
37
+ this.max = this.options.max;
38
+ this.disabledItemHandler = ALWAYS_FALSE_HANDLER;
39
+ this.markerHandler = TUI_DEFAULT_MARKER_HANDLER;
40
+ this.defaultActiveYearMonth = TuiMonth.currentLocal();
41
+ this.expandable = false;
42
+ this.inputHidden = false;
43
+ this.editable = true;
44
+ this.search = '';
45
+ this.placeholder = '';
46
+ this.rows = Infinity;
47
+ this.maskitoOptions = maskitoDateOptionsGenerator({
48
+ mode: 'dd/mm/yyyy',
49
+ separator: '.',
50
+ min: (_a = this.min) === null || _a === void 0 ? void 0 : _a.toLocalNativeDate(),
51
+ max: (_b = this.max) === null || _b === void 0 ? void 0 : _b.toLocalNativeDate(),
52
+ });
53
+ this.open = false;
54
+ this.filler$ = this.dateTexts$.pipe(map(dateTexts => changeDateSeparator(dateTexts[this.dateFormat], this.dateSeparator)));
55
+ this.tagValidator = (tag) => {
56
+ var _a, _b, _c;
57
+ const { year, month, day } = tuiIsString(tag)
58
+ ? TuiDay.parseRawDateString(tag)
59
+ : tag;
60
+ const date = new TuiDay(year, month, day);
61
+ return ((_c = (TuiDay.isValidDay(year, month, day) &&
62
+ ((_a = this.min) === null || _a === void 0 ? void 0 : _a.dayBefore(date)) &&
63
+ ((_b = this.max) === null || _b === void 0 ? void 0 : _b.dayAfter(date)))) !== null && _c !== void 0 ? _c : false);
64
+ };
65
+ this.disabledItemHandlerWrapper = handler => stringifiable => tuiIsString(stringifiable) || handler(stringifiable.item);
66
+ }
67
+ onClick() {
68
+ if (!this.isMobile) {
69
+ this.open = !this.open;
70
+ }
71
+ }
72
+ get size() {
73
+ return this.textfieldSize.size;
74
+ }
75
+ get nativeDropdownMode() {
76
+ return this.isMobile && !this.editable;
77
+ }
78
+ get computedMin() {
79
+ var _a;
80
+ return (_a = this.min) !== null && _a !== void 0 ? _a : this.options.min;
81
+ }
82
+ get computedMax() {
83
+ var _a;
84
+ return (_a = this.max) !== null && _a !== void 0 ? _a : this.options.max;
85
+ }
86
+ get nativeFocusableElement() {
87
+ var _a;
88
+ return ((_a = this.textfield) === null || _a === void 0 ? void 0 : _a.nativeFocusableElement) || null;
89
+ }
90
+ get focused() {
91
+ var _a;
92
+ return !!((_a = this.textfield) === null || _a === void 0 ? void 0 : _a.focused);
93
+ }
94
+ get computedMobile() {
95
+ return this.isMobile && !!this.mobileCalendar;
96
+ }
97
+ get calendarIcon() {
98
+ return this.options.icon;
99
+ }
100
+ get computedActiveYearMonth() {
101
+ return (this.month ||
102
+ this.value[this.value.length - 1] ||
103
+ tuiDateClamp(this.defaultActiveYearMonth, this.computedMin, this.computedMax));
104
+ }
105
+ get canOpen() {
106
+ return this.interactive && !this.computedMobile;
107
+ }
108
+ onIconClick() {
109
+ if (!this.computedMobile || !this.mobileCalendar) {
110
+ return;
111
+ }
112
+ this.dialogs
113
+ .open(new PolymorpheusComponent(this.mobileCalendar, this.injector), {
114
+ size: 'fullscreen',
115
+ closeable: false,
116
+ data: {
117
+ single: false,
118
+ min: this.min,
119
+ max: this.max,
120
+ disabledItemHandler: this.disabledItemHandler,
121
+ },
122
+ })
123
+ .pipe(takeUntil(this.destroy$))
124
+ .subscribe(value => {
125
+ this.value = value;
126
+ });
127
+ }
128
+ onEnter(search) {
129
+ if (!this.tagValidator(search)) {
130
+ return;
131
+ }
132
+ this.value = tuiImmutableUpdateInputDateMulti(this.value, TuiDay.normalizeParse(search));
133
+ if (this.inputTag) {
134
+ this.inputTag.search = '';
135
+ }
136
+ this.done();
137
+ }
138
+ onValueChange(value) {
139
+ var _a;
140
+ (_a = this.control) === null || _a === void 0 ? void 0 : _a.updateValueAndValidity({ emitEvent: false });
141
+ if (!value.length) {
142
+ this.onOpenChange(true);
143
+ }
144
+ this.value = value;
145
+ }
146
+ onDayClick(value) {
147
+ this.value = tuiImmutableUpdateInputDateMulti(this.value, value);
148
+ }
149
+ done() {
150
+ this.open = false;
151
+ }
152
+ onMonthChange(month) {
153
+ this.month = month;
154
+ }
155
+ onOpenChange(open) {
156
+ this.open = open;
157
+ }
158
+ onFocused(focused) {
159
+ this.updateFocused(focused);
160
+ }
161
+ setDisabledState() {
162
+ super.setDisabledState();
163
+ this.open = false;
164
+ }
165
+ }
166
+ TuiInputDateMultiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateMultiComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token: Injector }, { token: TUI_IS_MOBILE }, { token: TuiDialogService }, { token: TUI_MOBILE_CALENDAR, optional: true }, { token: TUI_DATE_FORMAT }, { token: TUI_DATE_SEPARATOR }, { token: TUI_DATE_TEXTS }, { token: TUI_DATE_VALUE_TRANSFORMER, optional: true }, { token: TUI_INPUT_DATE_OPTIONS }, { token: TUI_TEXTFIELD_SIZE }, { token: TUI_DONE_WORD }], target: i0.ɵɵFactoryTarget.Component });
167
+ TuiInputDateMultiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiInputDateMultiComponent, selector: "tui-input-date[multiple]", inputs: { min: "min", max: "max", disabledItemHandler: "disabledItemHandler", markerHandler: "markerHandler", defaultActiveYearMonth: "defaultActiveYearMonth", expandable: "expandable", inputHidden: "inputHidden", editable: "editable", search: "search", placeholder: "placeholder", rows: "rows", tagValidator: "tagValidator" }, host: { listeners: { "click": "onClick()" }, properties: { "class._editable": "this.editable", "attr.data-size": "this.size" } }, providers: [
168
+ tuiAsFocusableItemAccessor(TuiInputDateMultiComponent),
169
+ tuiAsControl(TuiInputDateMultiComponent),
170
+ tuiDateStreamWithTransformer(TUI_DATE_VALUE_TRANSFORMER),
171
+ ], viewQueries: [{ propertyName: "textfield", first: true, predicate: TuiPrimitiveTextfieldComponent, descendants: true }, { propertyName: "inputTag", first: true, predicate: TuiInputTagComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<tui-hosted-dropdown\n class=\"t-hosted\"\n [canOpen]=\"canOpen\"\n [content]=\"dropdown\"\n [open]=\"open && canOpen\"\n (openChange)=\"onOpenChange($event)\"\n>\n <tui-input-tag\n #inputTag\n class=\"t-input\"\n [disabled]=\"disabled\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerWrapper\"\n [editable]=\"editable\"\n [expandable]=\"expandable\"\n [inputHidden]=\"inputHidden\"\n [maskito]=\"maskitoOptions\"\n [nativeId]=\"nativeId\"\n [ngModel]=\"value\"\n [placeholder]=\"placeholder\"\n [pseudoFocus]=\"pseudoFocus\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoInvalid]=\"computedInvalid\"\n [readOnly]=\"readOnly\"\n [removable]=\"!nativeDropdownMode\"\n [rows]=\"rows\"\n [tagValidator]=\"tagValidator\"\n [tuiTextfieldFiller]=\"(filler$ | async) || ''\"\n [tuiTextfieldIcon]=\"calendarIcon && iconContent\"\n (keydown.enter)=\"onEnter(inputTag.search || '')\"\n (ngModelChange)=\"onValueChange($event)\"\n >\n <ng-content></ng-content>\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n ></ng-content>\n </tui-input-tag>\n\n <ng-template #iconContent>\n <tui-svg\n *polymorpheusOutlet=\"calendarIcon as src; context: {$implicit: size}\"\n appearance=\"icon\"\n tuiWrapper\n [class.t-icon]=\"!computedDisabled\"\n [src]=\"src\"\n (click)=\"onIconClick()\"\n ></tui-svg>\n </ng-template>\n\n <ng-template #dropdown>\n <tui-calendar\n [disabledItemHandler]=\"disabledItemHandler\"\n [markerHandler]=\"markerHandler\"\n [max]=\"computedMax\"\n [min]=\"computedMin\"\n [month]=\"computedActiveYearMonth\"\n [value]=\"value\"\n (dayClick)=\"onDayClick($event)\"\n (monthChange)=\"onMonthChange($event)\"\n (mousedown.silent.prevent)=\"(0)\"\n ></tui-calendar>\n <div\n class=\"t-button\"\n (mousedown.silent.prevent)=\"(0)\"\n >\n <button\n tuiLink\n type=\"button\"\n (click)=\"done()\"\n >\n {{ doneWord$ | async }}\n </button>\n </div>\n </ng-template>\n</tui-hosted-dropdown>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:left}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}.t-icon{pointer-events:auto}.t-button{display:flex;height:2.75rem;justify-content:center;box-shadow:inset 0 1px var(--tui-base-03)}.t-button button{flex:1;text-align:center}.t-native-input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;pointer-events:auto;font-size:2rem}\n"], components: [{ type: i1.TuiHostedDropdownComponent, selector: "tui-hosted-dropdown", inputs: ["content", "sided", "canOpen", "open"], outputs: ["openChange", "focusedChange"] }, { type: i2.TuiInputTagComponent, selector: "tui-input-tag", inputs: ["separator", "search", "editable", "tagValidator", "expandable", "rows", "inputHidden", "uniqueTags", "maxLength", "placeholder", "removable", "disabledItemHandler", "pseudoFocused"], outputs: ["searchChange"] }, { type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i1.TuiCalendarComponent, selector: "tui-calendar", inputs: ["month", "disabledItemHandler", "min", "max", "minViewedMonth", "maxViewedMonth", "hoveredItem", "showAdjacent", "markerHandler", "value"], outputs: ["dayClick", "monthChange", "hoveredItemChange"] }, { type: i1.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }], directives: [{ type: i3.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1.TuiTextfieldFillerDirective, selector: "[tuiTextfieldFiller]", inputs: ["tuiTextfieldFiller"] }, { type: i1.TuiTextfieldIconDirective, selector: "[tuiTextfieldIcon]", inputs: ["tuiTextfieldIcon"] }, { type: i5.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { type: i1.TuiWrapperDirective, selector: "[tuiWrapper]", inputs: ["disabled", "readOnly", "hover", "active", "focus", "invalid", "appearance"] }], pipes: { "tuiMapper": i6.TuiMapperPipe, "async": i7.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
172
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateMultiComponent, decorators: [{
173
+ type: Component,
174
+ args: [{
175
+ selector: 'tui-input-date[multiple]',
176
+ templateUrl: './input-date-multi.template.html',
177
+ styleUrls: ['../input-date/input-date.style.less'],
178
+ changeDetection: ChangeDetectionStrategy.OnPush,
179
+ providers: [
180
+ tuiAsFocusableItemAccessor(TuiInputDateMultiComponent),
181
+ tuiAsControl(TuiInputDateMultiComponent),
182
+ tuiDateStreamWithTransformer(TUI_DATE_VALUE_TRANSFORMER),
183
+ ],
184
+ }]
185
+ }], ctorParameters: function () { return [{ type: i4.NgControl, decorators: [{
186
+ type: Optional
187
+ }, {
188
+ type: Self
189
+ }, {
190
+ type: Inject,
191
+ args: [NgControl]
192
+ }] }, { type: i0.ChangeDetectorRef, decorators: [{
193
+ type: Inject,
194
+ args: [ChangeDetectorRef]
195
+ }] }, { type: i0.Injector, decorators: [{
196
+ type: Inject,
197
+ args: [Injector]
198
+ }] }, { type: undefined, decorators: [{
199
+ type: Inject,
200
+ args: [TUI_IS_MOBILE]
201
+ }] }, { type: i1.TuiDialogService, decorators: [{
202
+ type: Inject,
203
+ args: [TuiDialogService]
204
+ }] }, { type: i0.Type, decorators: [{
205
+ type: Optional
206
+ }, {
207
+ type: Inject,
208
+ args: [TUI_MOBILE_CALENDAR]
209
+ }] }, { type: undefined, decorators: [{
210
+ type: Inject,
211
+ args: [TUI_DATE_FORMAT]
212
+ }] }, { type: undefined, decorators: [{
213
+ type: Inject,
214
+ args: [TUI_DATE_SEPARATOR]
215
+ }] }, { type: i8.Observable, decorators: [{
216
+ type: Inject,
217
+ args: [TUI_DATE_TEXTS]
218
+ }] }, { type: i6.AbstractTuiValueTransformer, decorators: [{
219
+ type: Optional
220
+ }, {
221
+ type: Inject,
222
+ args: [TUI_DATE_VALUE_TRANSFORMER]
223
+ }] }, { type: undefined, decorators: [{
224
+ type: Inject,
225
+ args: [TUI_INPUT_DATE_OPTIONS]
226
+ }] }, { type: i1.TuiTextfieldSizeDirective, decorators: [{
227
+ type: Inject,
228
+ args: [TUI_TEXTFIELD_SIZE]
229
+ }] }, { type: i8.Observable, decorators: [{
230
+ type: Inject,
231
+ args: [TUI_DONE_WORD]
232
+ }] }]; }, propDecorators: { textfield: [{
233
+ type: ViewChild,
234
+ args: [TuiPrimitiveTextfieldComponent]
235
+ }], inputTag: [{
236
+ type: ViewChild,
237
+ args: [TuiInputTagComponent]
238
+ }], min: [{
239
+ type: Input
240
+ }], max: [{
241
+ type: Input
242
+ }], disabledItemHandler: [{
243
+ type: Input
244
+ }], markerHandler: [{
245
+ type: Input
246
+ }], defaultActiveYearMonth: [{
247
+ type: Input
248
+ }], expandable: [{
249
+ type: Input
250
+ }], inputHidden: [{
251
+ type: Input
252
+ }], editable: [{
253
+ type: Input
254
+ }, {
255
+ type: HostBinding,
256
+ args: ['class._editable']
257
+ }], search: [{
258
+ type: Input
259
+ }], placeholder: [{
260
+ type: Input
261
+ }], rows: [{
262
+ type: Input
263
+ }], tagValidator: [{
264
+ type: Input
265
+ }], onClick: [{
266
+ type: HostListener,
267
+ args: ['click']
268
+ }], size: [{
269
+ type: HostBinding,
270
+ args: ['attr.data-size']
271
+ }] } });
272
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS1tdWx0aS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9pbnB1dC1kYXRlLW11bHRpL2lucHV0LWRhdGUtbXVsdGkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS1tdWx0aS9pbnB1dC1kYXRlLW11bHRpLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBQ0wsUUFBUSxFQUNSLElBQUksRUFFSixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXpDLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUN6RCxPQUFPLEVBQ0gsMEJBQTBCLEVBRTFCLG9CQUFvQixFQUNwQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsWUFBWSxFQUNaLDBCQUEwQixFQUUxQixZQUFZLEVBRVosTUFBTSxFQUVOLFdBQVcsRUFFWCxRQUFRLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILDBCQUEwQixFQUMxQixrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBRWhCLDhCQUE4QixHQUtqQyxNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFDSCxjQUFjLEVBQ2QsMEJBQTBCLEVBQzFCLGFBQWEsRUFDYixzQkFBc0IsRUFDdEIsbUJBQW1CLEVBQ25CLDRCQUE0QixHQUUvQixNQUFN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QixNQUFNOzJCQUFDLGdCQUFnQjs7MEJBQ3ZCLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsbUJBQW1COzswQkFFMUIsTUFBTTsyQkFBQyxlQUFlOzswQkFDdEIsTUFBTTsyQkFBQyxrQkFBa0I7OzBCQUN6QixNQUFNOzJCQUFDLGNBQWM7OzBCQUVyQixRQUFROzswQkFDUixNQUFNOzJCQUFDLDBCQUEwQjs7MEJBSWpDLE1BQU07MkJBQUMsc0JBQXNCOzswQkFDN0IsTUFBTTsyQkFBQyxrQkFBa0I7OzBCQUV6QixNQUFNOzJCQUFDLGFBQWE7NENBaEZSLFNBQVM7c0JBRHpCLFNBQVM7dUJBQUMsOEJBQThCO2dCQUl4QixRQUFRO3NCQUR4QixTQUFTO3VCQUFDLG9CQUFvQjtnQkFNL0IsR0FBRztzQkFERixLQUFLO2dCQUlOLEdBQUc7c0JBREYsS0FBSztnQkFJTixtQkFBbUI7c0JBRGxCLEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixLQUFLO2dCQUlOLHNCQUFzQjtzQkFEckIsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLO2dCQUtOLFFBQVE7c0JBRlAsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxpQkFBaUI7Z0JBSTlCLE1BQU07c0JBREwsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQWdETixZQUFZO3NCQURYLEtBQUs7Z0JBZ0JOLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPO2dCQWNqQixJQUFJO3NCQURQLFdBQVc7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFR5cGUsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge01hc2tpdG9PcHRpb25zfSBmcm9tICdAbWFza2l0by9jb3JlJztcbmltcG9ydCB7bWFza2l0b0RhdGVPcHRpb25zR2VuZXJhdG9yfSBmcm9tICdAbWFza2l0by9raXQnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aU11bHRpcGxlQ29udHJvbCxcbiAgICBBYnN0cmFjdFR1aVZhbHVlVHJhbnNmb3JtZXIsXG4gICAgQUxXQVlTX0ZBTFNFX0hBTkRMRVIsXG4gICAgY2hhbmdlRGF0ZVNlcGFyYXRvcixcbiAgICBUVUlfREFURV9GT1JNQVQsXG4gICAgVFVJX0RBVEVfU0VQQVJBVE9SLFxuICAgIFRVSV9JU19NT0JJTEUsXG4gICAgdHVpQXNDb250cm9sLFxuICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yLFxuICAgIFR1aUJvb2xlYW5IYW5kbGVyLFxuICAgIHR1aURhdGVDbGFtcCxcbiAgICBUdWlEYXRlTW9kZSxcbiAgICBUdWlEYXksXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIHR1aUlzU3RyaW5nLFxuICAgIFR1aU1hcHBlcixcbiAgICBUdWlNb250aCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIFRVSV9ERUZBVUxUX01BUktFUl9IQU5ETEVSLFxuICAgIFRVSV9URVhURklFTERfU0laRSxcbiAgICBUdWlEaWFsb2dTZXJ2aWNlLFxuICAgIFR1aU1hcmtlckhhbmRsZXIsXG4gICAgVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgIFR1aVNpemVMLFxuICAgIFR1aVNpemVTLFxuICAgIFR1aVRleHRmaWVsZFNpemVEaXJlY3RpdmUsXG4gICAgVHVpV2l0aE9wdGlvbmFsTWluTWF4LFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1R1aVN0cmluZ2lmaWFibGVJdGVtfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NsYXNzZXMnO1xuaW1wb3J0IHtUdWlJbnB1dFRhZ0NvbXBvbmVudH0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LXRhZyc7XG5pbXBvcnQge1xuICAgIFRVSV9EQVRFX1RFWFRTLFxuICAgIFRVSV9EQVRFX1ZBTFVFX1RSQU5TRk9STUVSLFxuICAgIFRVSV9ET05FX1dPUkQsXG4gICAgVFVJX0lOUFVUX0RBVEVfT1BUSU9OUyxcbiAgICBUVUlfTU9CSUxFX0NBTEVOREFSLFxuICAgIHR1aURhdGVTdHJlYW1XaXRoVHJhbnNmb3JtZXIsXG4gICAgVHVpSW5wdXREYXRlT3B0aW9ucyxcbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC90b2tlbnMnO1xuaW1wb3J0IHt0dWlJbW11dGFibGVVcGRhdGVJbnB1dERhdGVNdWx0aX0gZnJvbSAnQHRhaWdhLXVpL2tpdC91dGlscyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbXBvbmVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWlucHV0LWRhdGVbbXVsdGlwbGVdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtZGF0ZS1tdWx0aS50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi4vaW5wdXQtZGF0ZS9pbnB1dC1kYXRlLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgdHVpQXNGb2N1c2FibGVJdGVtQWNjZXNzb3IoVHVpSW5wdXREYXRlTXVsdGlDb21wb25lbnQpLFxuICAgICAgICB0dWlBc0NvbnRyb2woVHVpSW5wdXREYXRlTXVsdGlDb21wb25lbnQpLFxuICAgICAgICB0dWlEYXRlU3RyZWFtV2l0aFRyYW5zZm9ybWVyKFRVSV9EQVRFX1ZBTFVFX1RSQU5TRk9STUVSKSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dERhdGVNdWx0aUNvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlNdWx0aXBsZUNvbnRyb2w8VHVpRGF5PlxuICAgIGltcGxlbWVudHMgVHVpV2l0aE9wdGlvbmFsTWluTWF4PFR1aURheT4sIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBWaWV3Q2hpbGQoVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkPzogVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZChUdWlJbnB1dFRhZ0NvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlucHV0VGFnPzogVHVpSW5wdXRUYWdDb21wb25lbnQ7XG5cbiAgICBwcml2YXRlIG1vbnRoOiBUdWlNb250aCB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBtaW46IFR1aURheSB8IG51bGwgPSB0aGlzLm9wdGlvbnMubWluO1xuXG4gICAgQElucHV0KClcbiAgICBtYXg6IFR1aURheSB8IG51bGwgPSB0aGlzLm9wdGlvbnMubWF4O1xuXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlZEl0ZW1IYW5kbGVyOiBUdWlCb29sZWFuSGFuZGxlcjxUdWlEYXk+ID0gQUxXQVlTX0ZBTFNFX0hBTkRMRVI7XG5cbiAgICBASW5wdXQoKVxuICAgIG1hcmtlckhhbmRsZXI6IFR1aU1hcmtlckhhbmRsZXIgPSBUVUlfREVGQVVMVF9NQVJLRVJfSEFORExFUjtcblxuICAgIEBJbnB1dCgpXG4gICAgZGVmYXVsdEFjdGl2ZVllYXJNb250aCA9IFR1aU1vbnRoLmN1cnJlbnRMb2NhbCgpO1xuXG4gICAgQElucHV0KClcbiAgICBleHBhbmRhYmxlID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIGlucHV0SGlkZGVuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX2VkaXRhYmxlJylcbiAgICBlZGl0YWJsZSA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHNlYXJjaDogc3RyaW5nIHwgbnVsbCA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBwbGFjZWhvbGRlciA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICByb3dzID0gSW5maW5pdHk7XG5cbiAgICBtYXNraXRvT3B0aW9uczogTWFza2l0b09wdGlvbnMgPSBtYXNraXRvRGF0ZU9wdGlvbnNHZW5lcmF0b3Ioe1xuICAgICAgICBtb2RlOiAnZGQvbW0veXl5eScsXG4gICAgICAgIHNlcGFyYXRvcjogJy4nLFxuICAgICAgICBtaW46IHRoaXMubWluPy50b0xvY2FsTmF0aXZlRGF0ZSgpLFxuICAgICAgICBtYXg6IHRoaXMubWF4Py50b0xvY2FsTmF0aXZlRGF0ZSgpLFxuICAgIH0pO1xuXG4gICAgb3BlbiA9IGZhbHNlO1xuXG4gICAgcmVhZG9ubHkgZmlsbGVyJDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy5kYXRlVGV4dHMkLnBpcGUoXG4gICAgICAgIG1hcChkYXRlVGV4dHMgPT5cbiAgICAgICAgICAgIGNoYW5nZURhdGVTZXBhcmF0b3IoZGF0ZVRleHRzW3RoaXMuZGF0ZUZvcm1hdF0sIHRoaXMuZGF0ZVNlcGFyYXRvciksXG4gICAgICAgICksXG4gICAgKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KEluamVjdG9yKSBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgQEluamVjdChUVUlfSVNfTU9CSUxFKSByZWFkb25seSBpc01vYmlsZTogYm9vbGVhbixcbiAgICAgICAgQEluamVjdChUdWlEaWFsb2dTZXJ2aWNlKSBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ3M6IFR1aURpYWxvZ1NlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVFVJX01PQklMRV9DQUxFTkRBUilcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtb2JpbGVDYWxlbmRhcjogVHlwZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoVFVJX0RBVEVfRk9STUFUKSByZWFkb25seSBkYXRlRm9ybWF0OiBUdWlEYXRlTW9kZSxcbiAgICAgICAgQEluamVjdChUVUlfREFURV9TRVBBUkFUT1IpIHJlYWRvbmx5IGRhdGVTZXBhcmF0b3I6IHN0cmluZyxcbiAgICAgICAgQEluamVjdChUVUlfREFURV9URVhUUylcbiAgICAgICAgcmVhZG9ubHkgZGF0ZVRleHRzJDogT2JzZXJ2YWJsZTxSZWNvcmQ8VHVpRGF0ZU1vZGUsIHN0cmluZz4+LFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KFRVSV9EQVRFX1ZBTFVFX1RSQU5TRk9STUVSKVxuICAgICAgICBvdmVycmlkZSByZWFkb25seSB2YWx1ZVRyYW5zZm9ybWVyOiBBYnN0cmFjdFR1aVZhbHVlVHJhbnNmb3JtZXI8XG4gICAgICAgICAgICByZWFkb25seSBUdWlEYXlbXVxuICAgICAgICA+IHwgbnVsbCxcbiAgICAgICAgQEluamVjdChUVUlfSU5QVVRfREFURV9PUFRJT05TKSBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IFR1aUlucHV0RGF0ZU9wdGlvbnMsXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9TSVpFKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZFNpemU6IFR1aVRleHRmaWVsZFNpemVEaXJlY3RpdmUsXG4gICAgICAgIEBJbmplY3QoVFVJX0RPTkVfV09SRCkgcmVhZG9ubHkgZG9uZVdvcmQkOiBPYnNlcnZhYmxlPHN0cmluZz4sXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNvbnRyb2wsIGNkciwgdmFsdWVUcmFuc2Zvcm1lcik7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICB0YWdWYWxpZGF0b3I6IFR1aUJvb2xlYW5IYW5kbGVyPHN0cmluZz4gPSAodGFnOiBUdWlEYXkgfCBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3Qge3llYXIsIG1vbnRoLCBkYXl9ID0gdHVpSXNTdHJpbmcodGFnKVxuICAgICAgICAgICAgPyBUdWlEYXkucGFyc2VSYXdEYXRlU3RyaW5nKHRhZylcbiAgICAgICAgICAgIDogdGFnO1xuICAgICAgICBjb25zdCBkYXRlID0gbmV3IFR1aURheSh5ZWFyLCBtb250aCwgZGF5KTtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKFR1aURheS5pc1ZhbGlkRGF5KHllYXIsIG1vbnRoLCBkYXkpICYmXG4gICAgICAgICAgICAgICAgdGhpcy5taW4/LmRheUJlZm9yZShkYXRlKSAmJlxuICAgICAgICAgICAgICAgIHRoaXMubWF4Py5kYXlBZnRlcihkYXRlKSkgPz9cbiAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICk7XG4gICAgfTtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgICBvbkNsaWNrKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNNb2JpbGUpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbiA9ICF0aGlzLm9wZW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZWFkb25seSBkaXNhYmxlZEl0ZW1IYW5kbGVyV3JhcHBlcjogVHVpTWFwcGVyPFxuICAgICAgICBUdWlCb29sZWFuSGFuZGxlcjxzdHJpbmc+IHwgVHVpQm9vbGVhbkhhbmRsZXI8VHVpRGF5PixcbiAgICAgICAgVHVpQm9vbGVhbkhhbmRsZXI8VHVpU3RyaW5naWZpYWJsZUl0ZW08YW55PiB8IHN0cmluZz5cbiAgICA+ID0gaGFuZGxlciA9PiBzdHJpbmdpZmlhYmxlID0+XG4gICAgICAgIHR1aUlzU3RyaW5nKHN0cmluZ2lmaWFibGUpIHx8IGhhbmRsZXIoc3RyaW5naWZpYWJsZS5pdGVtKTtcblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXNpemUnKVxuICAgIGdldCBzaXplKCk6IFR1aVNpemVMIHwgVHVpU2l6ZVMge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0ZmllbGRTaXplLnNpemU7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZURyb3Bkb3duTW9kZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNNb2JpbGUgJiYgIXRoaXMuZWRpdGFibGU7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkTWluKCk6IFR1aURheSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbiA/PyB0aGlzLm9wdGlvbnMubWluO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZE1heCgpOiBUdWlEYXkge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXggPz8gdGhpcy5vcHRpb25zLm1heDtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRmaWVsZD8ubmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8fCBudWxsO1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnRleHRmaWVsZD8uZm9jdXNlZDtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRNb2JpbGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzTW9iaWxlICYmICEhdGhpcy5tb2JpbGVDYWxlbmRhcjtcbiAgICB9XG5cbiAgICBnZXQgY2FsZW5kYXJJY29uKCk6IFR1aUlucHV0RGF0ZU9wdGlvbnNbJ2ljb24nXSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuaWNvbjtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRBY3RpdmVZZWFyTW9udGgoKTogVHVpTW9udGgge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5tb250aCB8fFxuICAgICAgICAgICAgdGhpcy52YWx1ZVt0aGlzLnZhbHVlLmxlbmd0aCAtIDFdIHx8XG4gICAgICAgICAgICB0dWlEYXRlQ2xhbXAodGhpcy5kZWZhdWx0QWN0aXZlWWVhck1vbnRoLCB0aGlzLmNvbXB1dGVkTWluLCB0aGlzLmNvbXB1dGVkTWF4KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBjYW5PcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnRlcmFjdGl2ZSAmJiAhdGhpcy5jb21wdXRlZE1vYmlsZTtcbiAgICB9XG5cbiAgICBvbkljb25DbGljaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbXB1dGVkTW9iaWxlIHx8ICF0aGlzLm1vYmlsZUNhbGVuZGFyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRpYWxvZ3NcbiAgICAgICAgICAgIC5vcGVuPHJlYWRvbmx5IFR1aURheVtdPihcbiAgICAgICAgICAgICAgICBuZXcgUG9seW1vcnBoZXVzQ29tcG9uZW50KHRoaXMubW9iaWxlQ2FsZW5kYXIsIHRoaXMuaW5qZWN0b3IpLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogJ2Z1bGxzY3JlZW4nLFxuICAgICAgICAgICAgICAgICAgICBjbG9zZWFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzaW5nbGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWluOiB0aGlzLm1pbixcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heDogdGhpcy5tYXgsXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZEl0ZW1IYW5kbGVyOiB0aGlzLmRpc2FibGVkSXRlbUhhbmRsZXIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uRW50ZXIoc2VhcmNoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnRhZ1ZhbGlkYXRvcihzZWFyY2gpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnZhbHVlID0gdHVpSW1tdXRhYmxlVXBkYXRlSW5wdXREYXRlTXVsdGkoXG4gICAgICAgICAgICB0aGlzLnZhbHVlLFxuICAgICAgICAgICAgVHVpRGF5Lm5vcm1hbGl6ZVBhcnNlKHNlYXJjaCksXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKHRoaXMuaW5wdXRUYWcpIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRUYWcuc2VhcmNoID0gJyc7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRvbmUoKTtcbiAgICB9XG5cbiAgICBvblZhbHVlQ2hhbmdlKHZhbHVlOiByZWFkb25seSBUdWlEYXlbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRyb2w/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe2VtaXRFdmVudDogZmFsc2V9KTtcblxuICAgICAgICBpZiAoIXZhbHVlLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5vbk9wZW5DaGFuZ2UodHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgb25EYXlDbGljayh2YWx1ZTogVHVpRGF5KTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB0dWlJbW11dGFibGVVcGRhdGVJbnB1dERhdGVNdWx0aSh0aGlzLnZhbHVlLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgZG9uZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb25Nb250aENoYW5nZShtb250aDogVHVpTW9udGgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb250aCA9IG1vbnRoO1xuICAgIH1cblxuICAgIG9uT3BlbkNoYW5nZShvcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3BlbiA9IG9wZW47XG4gICAgfVxuXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIHNldERpc2FibGVkU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLnNldERpc2FibGVkU3RhdGUoKTtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxufVxuIiwiPHR1aS1ob3N0ZWQtZHJvcGRvd25cbiAgICBjbGFzcz1cInQtaG9zdGVkXCJcbiAgICBbY2FuT3Blbl09XCJjYW5PcGVuXCJcbiAgICBbY29udGVudF09XCJkcm9wZG93blwiXG4gICAgW29wZW5dPVwib3BlbiAmJiBjYW5PcGVuXCJcbiAgICAob3BlbkNoYW5nZSk9XCJvbk9wZW5DaGFuZ2UoJGV2ZW50KVwiXG4+XG4gICAgPHR1aS1pbnB1dC10YWdcbiAgICAgICAgI2lucHV0VGFnXG4gICAgICAgIGNsYXNzPVwidC1pbnB1dFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtkaXNhYmxlZEl0ZW1IYW5kbGVyXT1cImRpc2FibGVkSXRlbUhhbmRsZXIgfCB0dWlNYXBwZXI6IGRpc2FibGVkSXRlbUhhbmRsZXJXcmFwcGVyXCJcbiAgICAgICAgW2VkaXRhYmxlXT1cImVkaXRhYmxlXCJcbiAgICAgICAgW2V4cGFuZGFibGVdPVwiZXhwYW5kYWJsZVwiXG4gICAgICAgIFtpbnB1dEhpZGRlbl09XCJpbnB1dEhpZGRlblwiXG4gICAgICAgIFttYXNraXRvXT1cIm1hc2tpdG9PcHRpb25zXCJcbiAgICAgICAgW25hdGl2ZUlkXT1cIm5hdGl2ZUlkXCJcbiAgICAgICAgW25nTW9kZWxdPVwidmFsdWVcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICBbcHNldWRvRm9jdXNdPVwicHNldWRvRm9jdXNcIlxuICAgICAgICBbcHNldWRvSG92ZXJdPVwicHNldWRvSG92ZXJcIlxuICAgICAgICBbcHNldWRvSW52YWxpZF09XCJjb21wdXRlZEludmFsaWRcIlxuICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgICAgICBbcmVtb3ZhYmxlXT1cIiFuYXRpdmVEcm9wZG93bk1vZGVcIlxuICAgICAgICBbcm93c109XCJyb3dzXCJcbiAgICAgICAgW3RhZ1ZhbGlkYXRvcl09XCJ0YWdWYWxpZGF0b3JcIlxuICAgICAgICBbdHVpVGV4dGZpZWxkRmlsbGVyXT1cIihmaWxsZXIkIHwgYXN5bmMpIHx8ICcnXCJcbiAgICAgICAgW3R1aVRleHRmaWVsZEljb25dPVwiY2FsZW5kYXJJY29uICYmIGljb25Db250ZW50XCJcbiAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25FbnRlcihpbnB1dFRhZy5zZWFyY2ggfHwgJycpXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPG5nLWNvbnRlbnRcbiAgICAgICAgICAgIG5nUHJvamVjdEFzPVwiaW5wdXRcIlxuICAgICAgICAgICAgc2VsZWN0PVwiaW5wdXRcIlxuICAgICAgICA+PC9uZy1jb250ZW50PlxuICAgIDwvdHVpLWlucHV0LXRhZz5cblxuICAgIDxuZy10ZW1wbGF0ZSAjaWNvbkNvbnRlbnQ+XG4gICAgICAgIDx0dWktc3ZnXG4gICAgICAgICAgICAqcG9seW1vcnBoZXVzT3V0bGV0PVwiY2FsZW5kYXJJY29uIGFzIHNyYzsgY29udGV4dDogeyRpbXBsaWNpdDogc2l6ZX1cIlxuICAgICAgICAgICAgYXBwZWFyYW5jZT1cImljb25cIlxuICAgICAgICAgICAgdHVpV3JhcHBlclxuICAgICAgICAgICAgW2NsYXNzLnQtaWNvbl09XCIhY29tcHV0ZWREaXNhYmxlZFwiXG4gICAgICAgICAgICBbc3JjXT1cInNyY1wiXG4gICAgICAgICAgICAoY2xpY2spPVwib25JY29uQ2xpY2soKVwiXG4gICAgICAgID48L3R1aS1zdmc+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAjZHJvcGRvd24+XG4gICAgICAgIDx0dWktY2FsZW5kYXJcbiAgICAgICAgICAgIFtkaXNhYmxlZEl0ZW1IYW5kbGVyXT1cImRpc2FibGVkSXRlbUhhbmRsZXJcIlxuICAgICAgICAgICAgW21hcmtlckhhbmRsZXJdPVwibWFya2VySGFuZGxlclwiXG4gICAgICAgICAgICBbbWF4XT1cImNvbXB1dGVkTWF4XCJcbiAgICAgICAgICAgIFttaW5dPVwiY29tcHV0ZWRNaW5cIlxuICAgICAgICAgICAgW21vbnRoXT1cImNvbXB1dGVkQWN0aXZlWWVhck1vbnRoXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgICAgICAoZGF5Q2xpY2spPVwib25EYXlDbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgIChtb250aENoYW5nZSk9XCJvbk1vbnRoQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgKG1vdXNlZG93bi5zaWxlbnQucHJldmVudCk9XCIoMClcIlxuICAgICAgICA+PC90dWktY2FsZW5kYXI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwidC1idXR0b25cIlxuICAgICAgICAgICAgKG1vdXNlZG93bi5zaWxlbnQucHJldmVudCk9XCIoMClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHVpTGlua1xuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJkb25lKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGRvbmVXb3JkJCB8IGFzeW5jIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvdHVpLWhvc3RlZC1kcm9wZG93bj5cbiJdfQ==
@@ -0,0 +1,64 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { MaskitoModule } from '@maskito/angular';
5
+ import { TuiMapperPipeModule } from '@taiga-ui/cdk';
6
+ import { TuiCalendarModule, TuiHostedDropdownModule, TuiLinkModule, TuiPrimitiveTextfieldModule, TuiSvgModule, TuiTextfieldControllerModule, TuiWrapperModule, } from '@taiga-ui/core';
7
+ import { TuiInputTagModule } from '@taiga-ui/kit/components/input-tag';
8
+ import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
9
+ import { TuiInputDateMultiComponent } from './input-date-multi.component';
10
+ import * as i0 from "@angular/core";
11
+ export class TuiInputDateMultiModule {
12
+ }
13
+ TuiInputDateMultiModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateMultiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ TuiInputDateMultiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateMultiModule, declarations: [TuiInputDateMultiComponent], imports: [CommonModule,
15
+ MaskitoModule,
16
+ PolymorpheusModule,
17
+ TuiWrapperModule,
18
+ TuiCalendarModule,
19
+ TuiSvgModule,
20
+ TuiLinkModule,
21
+ TuiInputTagModule,
22
+ FormsModule,
23
+ TuiMapperPipeModule,
24
+ TuiHostedDropdownModule,
25
+ TuiTextfieldControllerModule,
26
+ TuiPrimitiveTextfieldModule], exports: [TuiInputDateMultiComponent] });
27
+ TuiInputDateMultiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateMultiModule, imports: [[
28
+ CommonModule,
29
+ MaskitoModule,
30
+ PolymorpheusModule,
31
+ TuiWrapperModule,
32
+ TuiCalendarModule,
33
+ TuiSvgModule,
34
+ TuiLinkModule,
35
+ TuiInputTagModule,
36
+ FormsModule,
37
+ TuiMapperPipeModule,
38
+ TuiHostedDropdownModule,
39
+ TuiTextfieldControllerModule,
40
+ TuiPrimitiveTextfieldModule,
41
+ ]] });
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateMultiModule, decorators: [{
43
+ type: NgModule,
44
+ args: [{
45
+ imports: [
46
+ CommonModule,
47
+ MaskitoModule,
48
+ PolymorpheusModule,
49
+ TuiWrapperModule,
50
+ TuiCalendarModule,
51
+ TuiSvgModule,
52
+ TuiLinkModule,
53
+ TuiInputTagModule,
54
+ FormsModule,
55
+ TuiMapperPipeModule,
56
+ TuiHostedDropdownModule,
57
+ TuiTextfieldControllerModule,
58
+ TuiPrimitiveTextfieldModule,
59
+ ],
60
+ declarations: [TuiInputDateMultiComponent],
61
+ exports: [TuiInputDateMultiComponent],
62
+ }]
63
+ }] });
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS1tdWx0aS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9pbnB1dC1kYXRlLW11bHRpL2lucHV0LWRhdGUtbXVsdGkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLGFBQWEsRUFDYiwyQkFBMkIsRUFDM0IsWUFBWSxFQUNaLDRCQUE0QixFQUM1QixnQkFBZ0IsR0FDbkIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUU1RCxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQzs7QUFxQnhFLE1BQU0sT0FBTyx1QkFBdUI7O3FIQUF2Qix1QkFBdUI7c0hBQXZCLHVCQUF1QixpQkFIakIsMEJBQTBCLGFBZHJDLFlBQVk7UUFDWixhQUFhO1FBQ2Isa0JBQWtCO1FBQ2xCLGdCQUFnQjtRQUNoQixpQkFBaUI7UUFDakIsWUFBWTtRQUNaLGFBQWE7UUFDYixpQkFBaUI7UUFDakIsV0FBVztRQUNYLG1CQUFtQjtRQUNuQix1QkFBdUI7UUFDdkIsNEJBQTRCO1FBQzVCLDJCQUEyQixhQUdyQiwwQkFBMEI7c0hBRTNCLHVCQUF1QixZQWxCdkI7WUFDTCxZQUFZO1lBQ1osYUFBYTtZQUNiLGtCQUFrQjtZQUNsQixnQkFBZ0I7WUFDaEIsaUJBQWlCO1lBQ2pCLFlBQVk7WUFDWixhQUFhO1lBQ2IsaUJBQWlCO1lBQ2pCLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsdUJBQXVCO1lBQ3ZCLDRCQUE0QjtZQUM1QiwyQkFBMkI7U0FDOUI7NEZBSVEsdUJBQXVCO2tCQW5CbkMsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixpQkFBaUI7d0JBQ2pCLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQix1QkFBdUI7d0JBQ3ZCLDRCQUE0Qjt3QkFDNUIsMkJBQTJCO3FCQUM5QjtvQkFDRCxZQUFZLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztvQkFDMUMsT0FBTyxFQUFFLENBQUMsMEJBQTBCLENBQUM7aUJBQ3hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TWFza2l0b01vZHVsZX0gZnJvbSAnQG1hc2tpdG8vYW5ndWxhcic7XG5pbXBvcnQge1R1aU1hcHBlclBpcGVNb2R1bGV9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBUdWlDYWxlbmRhck1vZHVsZSxcbiAgICBUdWlIb3N0ZWREcm9wZG93bk1vZHVsZSxcbiAgICBUdWlMaW5rTW9kdWxlLFxuICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZE1vZHVsZSxcbiAgICBUdWlTdmdNb2R1bGUsXG4gICAgVHVpVGV4dGZpZWxkQ29udHJvbGxlck1vZHVsZSxcbiAgICBUdWlXcmFwcGVyTW9kdWxlLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1R1aUlucHV0VGFnTW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtdGFnJztcbmltcG9ydCB7UG9seW1vcnBoZXVzTW9kdWxlfSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuXG5pbXBvcnQge1R1aUlucHV0RGF0ZU11bHRpQ29tcG9uZW50fSBmcm9tICcuL2lucHV0LWRhdGUtbXVsdGkuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTWFza2l0b01vZHVsZSxcbiAgICAgICAgUG9seW1vcnBoZXVzTW9kdWxlLFxuICAgICAgICBUdWlXcmFwcGVyTW9kdWxlLFxuICAgICAgICBUdWlDYWxlbmRhck1vZHVsZSxcbiAgICAgICAgVHVpU3ZnTW9kdWxlLFxuICAgICAgICBUdWlMaW5rTW9kdWxlLFxuICAgICAgICBUdWlJbnB1dFRhZ01vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFR1aU1hcHBlclBpcGVNb2R1bGUsXG4gICAgICAgIFR1aUhvc3RlZERyb3Bkb3duTW9kdWxlLFxuICAgICAgICBUdWlUZXh0ZmllbGRDb250cm9sbGVyTW9kdWxlLFxuICAgICAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRNb2R1bGUsXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtUdWlJbnB1dERhdGVNdWx0aUNvbXBvbmVudF0sXG4gICAgZXhwb3J0czogW1R1aUlucHV0RGF0ZU11bHRpQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXREYXRlTXVsdGlNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFpZ2EtdWkta2l0LWNvbXBvbmVudHMtaW5wdXQtZGF0ZS1tdWx0aS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL2lucHV0LWRhdGUtbXVsdGkvdGFpZ2EtdWkta2l0LWNvbXBvbmVudHMtaW5wdXQtZGF0ZS1tdWx0aS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -1,2 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
1
4
  export * from './index';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFpZ2EtdWkta2l0LWNvbXBvbmVudHMtaW5wdXQtZGF0ZS1yYW5nZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL2lucHV0LWRhdGUtcmFuZ2UvdGFpZ2EtdWkta2l0LWNvbXBvbmVudHMtaW5wdXQtZGF0ZS1yYW5nZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFpZ2EtdWkta2l0LWNvbXBvbmVudHMtaW5wdXQtZGF0ZS1yYW5nZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL2lucHV0LWRhdGUtcmFuZ2UvdGFpZ2EtdWkta2l0LWNvbXBvbmVudHMtaW5wdXQtZGF0ZS1yYW5nZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -1,2 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
1
4
  export * from './index';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFpZ2EtdWkta2l0LWNvbXBvbmVudHMtaW5wdXQtZGF0ZS10aW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS10aW1lL3RhaWdhLXVpLWtpdC1jb21wb25lbnRzLWlucHV0LWRhdGUtdGltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFpZ2EtdWkta2l0LWNvbXBvbmVudHMtaW5wdXQtZGF0ZS10aW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS10aW1lL3RhaWdhLXVpLWtpdC1jb21wb25lbnRzLWlucHV0LWRhdGUtdGltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -7,6 +7,7 @@ import { TUI_INPUT_FILE_TEXTS } from '@taiga-ui/kit/tokens';
7
7
  import { tuiGetAcceptArray } from '@taiga-ui/kit/utils/files';
8
8
  import { of } from 'rxjs';
9
9
  import { map } from 'rxjs/operators';
10
+ // eslint-disable-next-line import/no-cycle
10
11
  import { TuiInputFilesDirective } from './input-files.directive';
11
12
  import { TUI_INPUT_FILES_OPTIONS } from './input-files.options';
12
13
  import * as i0 from "@angular/core";
@@ -24,7 +25,13 @@ export class TuiInputFilesComponent extends AbstractTuiNullableControl {
24
25
  this.inputFileTexts$ = inputFileTexts$;
25
26
  this.options = options;
26
27
  this.dataTransfer = null;
28
+ /**
29
+ * @deprecated: use `<input tuiInputFiles accept="image/*" />`
30
+ */
27
31
  this.accept = this.options.accepts;
32
+ /**
33
+ * @deprecated: use `<input tuiInputFiles multiple />`
34
+ */
28
35
  this.multiple = this.options.multiple;
29
36
  this.size = this.options.size;
30
37
  this.maxFileSize = this.options.maxFileSize;
@@ -110,6 +117,7 @@ export class TuiInputFilesComponent extends AbstractTuiNullableControl {
110
117
  return Array.isArray(value) ? value : [value];
111
118
  }
112
119
  processSelectedFiles(files) {
120
+ // IE11 after selecting a file through the open dialog generates a second event passing an empty FileList.
113
121
  if (!(files === null || files === void 0 ? void 0 : files.length)) {
114
122
  return;
115
123
  }
@@ -234,4 +242,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
234
242
  type: HostListener,
235
243
  args: ['change']
236
244
  }], computeLink$: [], computeLabel$: [], getValueArray: [] } });
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmlsZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtZmlsZXMvaW5wdXQtZmlsZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtZmlsZXMvaW5wdXQtZmlsZXMudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFFWixZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUNKLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsMEJBQTBCLEVBQzFCLFdBQVcsRUFDWCxhQUFhLEVBQ2IsMEJBQTBCLEVBRzFCLGtCQUFrQixFQUVsQixPQUFPLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGFBQWEsRUFBVyxNQUFNLGdCQUFnQixDQUFDO0FBRXZELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBRTVELE9BQU8sRUFBYSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBR25DLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sRUFBQyx1QkFBdUIsRUFBdUIsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7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WUFBWSxNQWlCWixhQUFhLE1BMEJiLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBTZWxmLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aU51bGxhYmxlQ29udHJvbCxcbiAgICBFTVBUWV9BUlJBWSxcbiAgICBUVUlfSVNfTU9CSUxFLFxuICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yLFxuICAgIFR1aUNvbnRleHRXaXRoSW1wbGljaXQsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIHR1aUlzTmF0aXZlRm9jdXNlZCxcbiAgICBUdWlOYXRpdmVGb2N1c2FibGVFbGVtZW50LFxuICAgIHR1aVB1cmUsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtNT0RFX1BST1ZJREVSLCBUdWlTaXplTH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUdWlGaWxlTGlrZX0gZnJvbSAnQHRhaWdhLXVpL2tpdC9pbnRlcmZhY2VzJztcbmltcG9ydCB7VFVJX0lOUFVUX0ZJTEVfVEVYVFN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7dHVpR2V0QWNjZXB0QXJyYXl9IGZyb20gJ0B0YWlnYS11aS9raXQvdXRpbHMvZmlsZXMnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWN5Y2xlXG5pbXBvcnQge1R1aUlucHV0RmlsZXNEaXJlY3RpdmV9IGZyb20gJy4vaW5wdXQtZmlsZXMuZGlyZWN0aXZlJztcbmltcG9ydCB7VFVJX0lOUFVUX0ZJTEVTX09QVElPTlMsIFR1aUlucHV0RmlsZXNPcHRpb25zfSBmcm9tICcuL2lucHV0LWZpbGVzLm9wdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1maWxlcycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWZpbGVzLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2lucHV0LWZpbGVzLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW01PREVfUFJPVklERVIsIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yKFR1aUlucHV0RmlsZXNDb21wb25lbnQpXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXRGaWxlc0NvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2w8VHVpRmlsZUxpa2UgfCByZWFkb25seSBUdWlGaWxlTGlrZVtdPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQFZpZXdDaGlsZCgnaW5wdXQnKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5wdXQ/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgcHJpdmF0ZSBkYXRhVHJhbnNmZXI6IERhdGFUcmFuc2ZlciB8IG51bGwgPSBudWxsO1xuXG4gICAgQENvbnRlbnRDaGlsZChmb3J3YXJkUmVmKCgpID0+IFR1aUlucHV0RmlsZXNEaXJlY3RpdmUpKVxuICAgIHJlYWRvbmx5IG5hdGl2ZUlucHV0PzogVHVpSW5wdXRGaWxlc0RpcmVjdGl2ZTtcblxuICAgIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpXG4gICAgcmVhZG9ubHkgdGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxUdWlDb250ZXh0V2l0aEltcGxpY2l0PGJvb2xlYW4+PjtcblxuICAgIEBWaWV3Q2hpbGQoJ2Zvcm1hdFJlamVjdGlvbicpXG4gICAgcmVhZG9ubHkgZm9ybWF0UmVqZWN0aW9uITogUG9seW1vcnBoZXVzQ29udGVudDtcblxuICAgIEBWaWV3Q2hpbGQoJ21heFNpemVSZWplY3Rpb24nKVxuICAgIHJlYWRvbmx5IG1heFNpemVSZWplY3Rpb24hOiBQb2x5bW9ycGhldXNDb250ZW50O1xuXG4gICAgQElucHV0KClcbiAgICBsaW5rOiBQb2x5bW9ycGhldXNDb250ZW50O1xuXG4gICAgQElucHV0KClcbiAgICBsYWJlbDogUG9seW1vcnBoZXVzQ29udGVudDtcblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkOiB1c2UgYDxpbnB1dCB0dWlJbnB1dEZpbGVzIGFjY2VwdD1cImltYWdlLypcIiAvPmBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGFjY2VwdCA9IHRoaXMub3B0aW9ucy5hY2NlcHRzO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQ6IHVzZSBgPGlucHV0IHR1aUlucHV0RmlsZXMgbXVsdGlwbGUgLz5gXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBtdWx0aXBsZSA9IHRoaXMub3B0aW9ucy5tdWx0aXBsZTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2l6ZTogVHVpU2l6ZUwgPSB0aGlzLm9wdGlvbnMuc2l6ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgbWF4RmlsZVNpemUgPSB0aGlzLm9wdGlvbnMubWF4RmlsZVNpemU7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSByZWplY3QgPSBuZXcgRXZlbnRFbWl0dGVyPFR1aUZpbGVMaWtlIHwgcmVhZG9ubHkgVHVpRmlsZUxpa2VbXT4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKVxuICAgICAgICBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KFRVSV9JU19NT0JJTEUpXG4gICAgICAgIHJlYWRvbmx5IGlzTW9iaWxlOiBib29sZWFuLFxuICAgICAgICBASW5qZWN0KFRVSV9JTlBVVF9GSUxFX1RFWFRTKVxuICAgICAgICByZWFkb25seSBpbnB1dEZpbGVUZXh0cyQ6IE9ic2VydmFibGU8XG4gICAgICAgICAgICBSZWNvcmQ8XG4gICAgICAgICAgICAgICAgfCAnZGVmYXVsdExhYmVsTXVsdGlwbGUnXG4gICAgICAgICAgICAgICAgfCAnZGVmYXVsdExhYmVsU2luZ2xlJ1xuICAgICAgICAgICAgICAgIHwgJ2RlZmF1bHRMaW5rTXVsdGlwbGUnXG4gICAgICAgICAgICAgICAgfCAnZGVmYXVsdExpbmtTaW5nbGUnXG4gICAgICAgICAgICAgICAgfCAnZHJvcCdcbiAgICAgICAgICAgICAgICB8ICdkcm9wTXVsdGlwbGUnXG4gICAgICAgICAgICAgICAgfCAnZm9ybWF0UmVqZWN0aW9uUmVhc29uJ1xuICAgICAgICAgICAgICAgIHwgJ21heFNpemVSZWplY3Rpb25SZWFzb24nLFxuICAgICAgICAgICAgICAgIHN0cmluZ1xuICAgICAgICAgICAgPlxuICAgICAgICA+LFxuICAgICAgICBASW5qZWN0KFRVSV9JTlBVVF9GSUxFU19PUFRJT05TKVxuICAgICAgICByZWFkb25seSBvcHRpb25zOiBUdWlJbnB1dEZpbGVzT3B0aW9ucyxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2RyKTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRNdWx0aXBsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlSW5wdXQ/Lm11bHRpcGxlID8/IHRoaXMubXVsdGlwbGU7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkQWNjZXB0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUlucHV0Py5hY2NlcHQgPz8gdGhpcy5hY2NlcHQ7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudCB8fCBudWxsO1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHVpSXNOYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkUHNldWRvSG92ZXJlZCgpOiBib29sZWFuIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnBzZXVkb0hvdmVyID8/ICh0aGlzLmZpbGVEcmFnZ2VkIHx8IG51bGwpO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZExpbmskKCk6IE9ic2VydmFibGU8UG9seW1vcnBoZXVzQ29udGVudD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlTGluayQodGhpcy5maWxlRHJhZ2dlZCwgdGhpcy5jb21wdXRlZE11bHRpcGxlLCB0aGlzLmxpbmspO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZExhYmVsJCgpOiBPYnNlcnZhYmxlPFBvbHltb3JwaGV1c0NvbnRlbnQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcHV0ZUxhYmVsJChcbiAgICAgICAgICAgIHRoaXMuaXNNb2JpbGUsXG4gICAgICAgICAgICB0aGlzLmZpbGVEcmFnZ2VkLFxuICAgICAgICAgICAgdGhpcy5jb21wdXRlZE11bHRpcGxlLFxuICAgICAgICAgICAgdGhpcy5sYWJlbCxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgZmlsZURyYWdnZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuZGF0YVRyYW5zZmVyPy50eXBlcy5pbmNsdWRlcygnRmlsZXMnKTtcbiAgICB9XG5cbiAgICBnZXQgYXJyYXlWYWx1ZSgpOiByZWFkb25seSBUdWlGaWxlTGlrZVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsdWVBcnJheSh0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdmb2N1c2luJywgWyd0cnVlJ10pXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXNvdXQnLCBbJ2ZhbHNlJ10pXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NoYW5nZScpXG4gICAgb25GaWxlc1NlbGVjdGVkKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbnB1dCA9IHRoaXMubmF0aXZlSW5wdXQ/LmlucHV0ID8/IHRoaXMuaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKCFpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wcm9jZXNzU2VsZWN0ZWRGaWxlcyhpbnB1dC5maWxlcyk7XG5cbiAgICAgICAgaW5wdXQudmFsdWUgPSAnJztcbiAgICB9XG5cbiAgICBvbkRyb3BwZWQoZXZlbnQ6IERhdGFUcmFuc2Zlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnByb2Nlc3NTZWxlY3RlZEZpbGVzKGV2ZW50LmZpbGVzKTtcbiAgICB9XG5cbiAgICBvbkRyYWdPdmVyKGRhdGFUcmFuc2ZlcjogRGF0YVRyYW5zZmVyIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGFUcmFuc2ZlciA9IGRhdGFUcmFuc2ZlcjtcbiAgICB9XG5cbiAgICByZW1vdmVGaWxlKHJlbW92ZWRGaWxlOiBUdWlGaWxlTGlrZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5jb21wdXRlZE11bHRpcGxlXG4gICAgICAgICAgICA/IHRoaXMuYXJyYXlWYWx1ZS5maWx0ZXIoZmlsZSA9PiBmaWxlICE9PSByZW1vdmVkRmlsZSlcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgY29tcHV0ZUxpbmskKFxuICAgICAgICBmaWxlRHJhZ2dlZDogYm9vbGVhbixcbiAgICAgICAgbXVsdGlwbGU6IGJvb2xlYW4sXG4gICAgICAgIGxpbms6IFBvbHltb3JwaGV1c0NvbnRlbnQsXG4gICAgKTogT2JzZXJ2YWJsZTxQb2x5bW9ycGhldXNDb250ZW50PiB7XG4gICAgICAgIHJldHVybiBmaWxlRHJhZ2dlZFxuICAgICAgICAgICAgPyBvZignJylcbiAgICAgICAgICAgIDogdGhpcy5pbnB1dEZpbGVUZXh0cyQucGlwZShcbiAgICAgICAgICAgICAgICAgIG1hcCh0ZXh0cyA9PlxuICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxlICYmICFsaW5rXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gdGV4dHMuZGVmYXVsdExpbmtNdWx0aXBsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IGxpbmsgfHwgdGV4dHMuZGVmYXVsdExpbmtTaW5nbGUsXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICApO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBjb21wdXRlTGFiZWwkKFxuICAgICAgICBpc01vYmlsZTogYm9vbGVhbixcbiAgICAgICAgZmlsZURyYWdnZWQ6IGJvb2xlYW4sXG4gICAgICAgIG11bHRpcGxlOiBib29sZWFuLFxuICAgICAgICBsYWJlbDogUG9seW1vcnBoZXVzQ29udGVudCxcbiAgICApOiBPYnNlcnZhYmxlPFBvbHltb3JwaGV1c0NvbnRlbnQ+IHtcbiAgICAgICAgaWYgKGlzTW9iaWxlKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoJycpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpbGVEcmFnZ2VkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pbnB1dEZpbGVUZXh0cyQucGlwZShcbiAgICAgICAgICAgICAgICBtYXAodGV4dHMgPT4gKG11bHRpcGxlID8gdGV4dHMuZHJvcE11bHRpcGxlIDogdGV4dHMuZHJvcCkpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0RmlsZVRleHRzJC5waXBlKFxuICAgICAgICAgICAgbWFwKHRleHRzID0+XG4gICAgICAgICAgICAgICAgbXVsdGlwbGUgJiYgIWxhYmVsXG4gICAgICAgICAgICAgICAgICAgID8gdGV4dHMuZGVmYXVsdExhYmVsTXVsdGlwbGVcbiAgICAgICAgICAgICAgICAgICAgOiBsYWJlbCB8fCB0ZXh0cy5kZWZhdWx0TGFiZWxTaW5nbGUsXG4gICAgICAgICAgICApLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBnZXRWYWx1ZUFycmF5KFxuICAgICAgICB2YWx1ZTogVHVpRmlsZUxpa2UgfCByZWFkb25seSBUdWlGaWxlTGlrZVtdIHwgbnVsbCxcbiAgICApOiByZWFkb25seSBUdWlGaWxlTGlrZVtdIHtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIEVNUFRZX0FSUkFZO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvY2Vzc1NlbGVjdGVkRmlsZXMoZmlsZXM6IEZpbGVMaXN0IHwgbnVsbCk6IHZvaWQge1xuICAgICAgICAvLyBJRTExIGFmdGVyIHNlbGVjdGluZyBhIGZpbGUgdGhyb3VnaCB0aGUgb3BlbiBkaWFsb2cgZ2VuZXJhdGVzIGEgc2Vjb25kIGV2ZW50IHBhc3NpbmcgYW4gZW1wdHkgRmlsZUxpc3QuXG4gICAgICAgIGlmICghZmlsZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXJyb3JzOiBSZWNvcmQ8XG4gICAgICAgICAgICAnZm9ybWF0UmVqZWN0aW9uJyB8ICdtYXhTaXplUmVqZWN0aW9uJyxcbiAgICAgICAgICAgIFBvbHltb3JwaGV1c0NvbnRlbnRcbiAgICAgICAgPiA9IHtcbiAgICAgICAgICAgIGZvcm1hdFJlamVjdGlvbjogdGhpcy5mb3JtYXRSZWplY3Rpb24sXG4gICAgICAgICAgICBtYXhTaXplUmVqZWN0aW9uOiB0aGlzLm1heFNpemVSZWplY3Rpb24sXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgbmV3RmlsZXMgPSB0aGlzLmNvbXB1dGVkTXVsdGlwbGUgPyBBcnJheS5mcm9tKGZpbGVzKSA6IFtmaWxlc1swXV07XG4gICAgICAgIGNvbnN0IHRvb0JpZ0ZpbGVzID0gbmV3RmlsZXMuZmlsdGVyKGZpbGUgPT4gZmlsZS5zaXplID4gdGhpcy5tYXhGaWxlU2l6ZSk7XG4gICAgICAgIGNvbnN0IHdyb25nRm9ybWF0RmlsZXMgPSBuZXdGaWxlcy5maWx0ZXIoXG4gICAgICAgICAgICBmaWxlID0+ICF0aGlzLmlzRm9ybWF0QWNjZXB0YWJsZShmaWxlKSAmJiAhdG9vQmlnRmlsZXMuaW5jbHVkZXMoZmlsZSksXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGFjY2VwdGVkRmlsZXMgPSBuZXdGaWxlcy5maWx0ZXIoXG4gICAgICAgICAgICBmaWxlID0+ICF0b29CaWdGaWxlcy5pbmNsdWRlcyhmaWxlKSAmJiAhd3JvbmdGb3JtYXRGaWxlcy5pbmNsdWRlcyhmaWxlKSxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAodG9vQmlnRmlsZXMubGVuZ3RoIHx8IHdyb25nRm9ybWF0RmlsZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnJlamVjdEZpbGVzKFtcbiAgICAgICAgICAgICAgICAuLi50b29CaWdGaWxlcy5tYXAoZmlsZSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBmaWxlLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IGZpbGUudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogZmlsZS5zaXplLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBlcnJvcnMubWF4U2l6ZVJlamVjdGlvbixcbiAgICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICAgICAgLi4ud3JvbmdGb3JtYXRGaWxlcy5tYXAoZmlsZSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBmaWxlLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IGZpbGUudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogZmlsZS5zaXplLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBlcnJvcnMuZm9ybWF0UmVqZWN0aW9uLFxuICAgICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuY29tcHV0ZWRNdWx0aXBsZVxuICAgICAgICAgICAgPyBbLi4udGhpcy5hcnJheVZhbHVlLCAuLi5hY2NlcHRlZEZpbGVzXVxuICAgICAgICAgICAgOiBhY2NlcHRlZEZpbGVzWzBdIHx8IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0Zvcm1hdEFjY2VwdGFibGUoZmlsZTogRmlsZSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuY29tcHV0ZWRBY2NlcHQpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXh0ZW5zaW9uID0gYC4keyhmaWxlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKSB8fCAnJykudG9Mb3dlckNhc2UoKX1gO1xuXG4gICAgICAgIHJldHVybiB0dWlHZXRBY2NlcHRBcnJheSh0aGlzLmNvbXB1dGVkQWNjZXB0KS5zb21lKFxuICAgICAgICAgICAgZm9ybWF0ID0+XG4gICAgICAgICAgICAgICAgZm9ybWF0ID09PSBleHRlbnNpb24gfHxcbiAgICAgICAgICAgICAgICBmb3JtYXQgPT09IGZpbGUudHlwZSB8fFxuICAgICAgICAgICAgICAgIChmb3JtYXQuc3BsaXQoJy8nKVsxXSA9PT0gJyonICYmXG4gICAgICAgICAgICAgICAgICAgIGZpbGUudHlwZS5zcGxpdCgnLycpWzBdID09PSBmb3JtYXQuc3BsaXQoJy8nKVswXSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWplY3RGaWxlcyhyZWplY3RlZEZpbGVzOiByZWFkb25seSBUdWlGaWxlTGlrZVtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVqZWN0LmVtaXQodGhpcy5jb21wdXRlZE11bHRpcGxlID8gcmVqZWN0ZWRGaWxlcyA6IHJlamVjdGVkRmlsZXNbMF0pO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBhcHBlYXJhbmNlPVwiaW5wdXQtZmlsZVwiXG4gICAgdHVpV3JhcHBlclxuICAgIGNsYXNzPVwidC13cmFwcGVyXCJcbiAgICBbYWN0aXZlXT1cInBzZXVkb0FjdGl2ZVwiXG4gICAgW2NsYXNzLl9tb2JpbGVdPVwiaXNNb2JpbGVcIlxuICAgIFtkaXNhYmxlZF09XCJjb21wdXRlZERpc2FibGVkXCJcbiAgICBbZm9jdXNdPVwiY29tcHV0ZWRGb2N1c2VkXCJcbiAgICBbaG92ZXJdPVwicHNldWRvSG92ZXIgfHwgZmlsZURyYWdnZWQgfHwgbnVsbFwiXG4+XG4gICAgPGxhYmVsXG4gICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktaW5wdXQtZmlsZV9fbGFiZWxcIlxuICAgICAgICBjbGFzcz1cInQtbGFiZWxcIlxuICAgICAgICAobW91c2Vkb3duLnByZXZlbnQuc2lsZW50KT1cIigwKVwiXG4gICAgICAgICh0dWlEcm9wcGFibGVEcmFnT3ZlckNoYW5nZSk9XCJvbkRyYWdPdmVyKCRldmVudClcIlxuICAgICAgICAodHVpRHJvcHBhYmxlRHJvcHBlZCk9XCJvbkRyb3BwZWQoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidC1kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlIHx8IG51bGw7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGZpbGVEcmFnZ2VkfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiF0ZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgIDxhIHR1aUxpbms+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnBvbHltb3JwaGV1c091dGxldD1cImNvbXB1dGVkTGluayQgfCBhc3luYyBhcyB0ZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyB0ZXh0IH19XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAqcG9seW1vcnBoZXVzT3V0bGV0PVwiY29tcHV0ZWRMYWJlbCQgfCBhc3luYyBhcyB0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgW3RleHRDb250ZW50XT1cInRleHRcIlxuICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhcmVhZE9ubHkgJiYgIWNvbXB1dGVkRGlzYWJsZWRcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImlucHV0XCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgI2lucHV0XG4gICAgICAgICAgICAgICAgdGl0bGU9XCJcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInQtbmF0aXZlXCJcbiAgICAgICAgICAgICAgICBbYWNjZXB0XT1cImFjY2VwdFwiXG4gICAgICAgICAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgICAgICAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICAgICAgICAgICAgICAgIFt0dWlGb2N1c2FibGVdPVwiZm9jdXNhYmxlXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbGFiZWw+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNmb3JtYXRSZWplY3Rpb24+XG4gICAge3sgKGlucHV0RmlsZVRleHRzJCB8IGFzeW5jKT8uZm9ybWF0UmVqZWN0aW9uUmVhc29uIHx8ICcnIH19XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI21heFNpemVSZWplY3Rpb24+XG4gICAge3sgbWF4RmlsZVNpemUgfCB0dWlNYXhTaXplUmVqZWN0aW9uRXJyb3IgfCBhc3luYyB9fVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
245
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmlsZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtZmlsZXMvaW5wdXQtZmlsZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtZmlsZXMvaW5wdXQtZmlsZXMudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFFWixZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUNKLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsMEJBQTBCLEVBQzFCLFdBQVcsRUFDWCxhQUFhLEVBQ2IsMEJBQTBCLEVBRzFCLGtCQUFrQixFQUVsQixPQUFPLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGFBQWEsRUFBVyxNQUFNLGdCQUFnQixDQUFDO0FBRXZELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBRTVELE9BQU8sRUFBYSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLDJDQUEyQztBQUMzQyxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsdUJBQXVCLEVBQXVCLE1BQU0sdUJB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TyxDQUFDO2dCQU1uQyxlQUFlO3NCQURkLFlBQVk7dUJBQUMsUUFBUTtnQkE0QmQsWUFBWSxNQWlCWixhQUFhLE1BMEJiLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBTZWxmLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aU51bGxhYmxlQ29udHJvbCxcbiAgICBFTVBUWV9BUlJBWSxcbiAgICBUVUlfSVNfTU9CSUxFLFxuICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yLFxuICAgIFR1aUNvbnRleHRXaXRoSW1wbGljaXQsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIHR1aUlzTmF0aXZlRm9jdXNlZCxcbiAgICBUdWlOYXRpdmVGb2N1c2FibGVFbGVtZW50LFxuICAgIHR1aVB1cmUsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtNT0RFX1BST1ZJREVSLCBUdWlTaXplTH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUdWlGaWxlTGlrZX0gZnJvbSAnQHRhaWdhLXVpL2tpdC9pbnRlcmZhY2VzJztcbmltcG9ydCB7VFVJX0lOUFVUX0ZJTEVfVEVYVFN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7dHVpR2V0QWNjZXB0QXJyYXl9IGZyb20gJ0B0YWlnYS11aS9raXQvdXRpbHMvZmlsZXMnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWN5Y2xlXG5pbXBvcnQge1R1aUlucHV0RmlsZXNEaXJlY3RpdmV9IGZyb20gJy4vaW5wdXQtZmlsZXMuZGlyZWN0aXZlJztcbmltcG9ydCB7VFVJX0lOUFVUX0ZJTEVTX09QVElPTlMsIFR1aUlucHV0RmlsZXNPcHRpb25zfSBmcm9tICcuL2lucHV0LWZpbGVzLm9wdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1maWxlcycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWZpbGVzLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2lucHV0LWZpbGVzLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW01PREVfUFJPVklERVIsIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yKFR1aUlucHV0RmlsZXNDb21wb25lbnQpXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXRGaWxlc0NvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2w8VHVpRmlsZUxpa2UgfCByZWFkb25seSBUdWlGaWxlTGlrZVtdPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQFZpZXdDaGlsZCgnaW5wdXQnKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5wdXQ/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgcHJpdmF0ZSBkYXRhVHJhbnNmZXI6IERhdGFUcmFuc2ZlciB8IG51bGwgPSBudWxsO1xuXG4gICAgQENvbnRlbnRDaGlsZChmb3J3YXJkUmVmKCgpID0+IFR1aUlucHV0RmlsZXNEaXJlY3RpdmUpKVxuICAgIHJlYWRvbmx5IG5hdGl2ZUlucHV0PzogVHVpSW5wdXRGaWxlc0RpcmVjdGl2ZTtcblxuICAgIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpXG4gICAgcmVhZG9ubHkgdGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxUdWlDb250ZXh0V2l0aEltcGxpY2l0PGJvb2xlYW4+PjtcblxuICAgIEBWaWV3Q2hpbGQoJ2Zvcm1hdFJlamVjdGlvbicpXG4gICAgcmVhZG9ubHkgZm9ybWF0UmVqZWN0aW9uITogUG9seW1vcnBoZXVzQ29udGVudDtcblxuICAgIEBWaWV3Q2hpbGQoJ21heFNpemVSZWplY3Rpb24nKVxuICAgIHJlYWRvbmx5IG1heFNpemVSZWplY3Rpb24hOiBQb2x5bW9ycGhldXNDb250ZW50O1xuXG4gICAgQElucHV0KClcbiAgICBsaW5rOiBQb2x5bW9ycGhldXNDb250ZW50O1xuXG4gICAgQElucHV0KClcbiAgICBsYWJlbDogUG9seW1vcnBoZXVzQ29udGVudDtcblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkOiB1c2UgYDxpbnB1dCB0dWlJbnB1dEZpbGVzIGFjY2VwdD1cImltYWdlLypcIiAvPmBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGFjY2VwdCA9IHRoaXMub3B0aW9ucy5hY2NlcHRzO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQ6IHVzZSBgPGlucHV0IHR1aUlucHV0RmlsZXMgbXVsdGlwbGUgLz5gXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBtdWx0aXBsZSA9IHRoaXMub3B0aW9ucy5tdWx0aXBsZTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2l6ZTogVHVpU2l6ZUwgPSB0aGlzLm9wdGlvbnMuc2l6ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgbWF4RmlsZVNpemUgPSB0aGlzLm9wdGlvbnMubWF4RmlsZVNpemU7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSByZWplY3QgPSBuZXcgRXZlbnRFbWl0dGVyPFR1aUZpbGVMaWtlIHwgcmVhZG9ubHkgVHVpRmlsZUxpa2VbXT4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKVxuICAgICAgICBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KFRVSV9JU19NT0JJTEUpXG4gICAgICAgIHJlYWRvbmx5IGlzTW9iaWxlOiBib29sZWFuLFxuICAgICAgICBASW5qZWN0KFRVSV9JTlBVVF9GSUxFX1RFWFRTKVxuICAgICAgICByZWFkb25seSBpbnB1dEZpbGVUZXh0cyQ6IE9ic2VydmFibGU8XG4gICAgICAgICAgICBSZWNvcmQ8XG4gICAgICAgICAgICAgICAgfCAnZGVmYXVsdExhYmVsTXVsdGlwbGUnXG4gICAgICAgICAgICAgICAgfCAnZGVmYXVsdExhYmVsU2luZ2xlJ1xuICAgICAgICAgICAgICAgIHwgJ2RlZmF1bHRMaW5rTXVsdGlwbGUnXG4gICAgICAgICAgICAgICAgfCAnZGVmYXVsdExpbmtTaW5nbGUnXG4gICAgICAgICAgICAgICAgfCAnZHJvcCdcbiAgICAgICAgICAgICAgICB8ICdkcm9wTXVsdGlwbGUnXG4gICAgICAgICAgICAgICAgfCAnZm9ybWF0UmVqZWN0aW9uUmVhc29uJ1xuICAgICAgICAgICAgICAgIHwgJ21heFNpemVSZWplY3Rpb25SZWFzb24nLFxuICAgICAgICAgICAgICAgIHN0cmluZ1xuICAgICAgICAgICAgPlxuICAgICAgICA+LFxuICAgICAgICBASW5qZWN0KFRVSV9JTlBVVF9GSUxFU19PUFRJT05TKVxuICAgICAgICByZWFkb25seSBvcHRpb25zOiBUdWlJbnB1dEZpbGVzT3B0aW9ucyxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2RyKTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRNdWx0aXBsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlSW5wdXQ/Lm11bHRpcGxlID8/IHRoaXMubXVsdGlwbGU7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkQWNjZXB0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUlucHV0Py5hY2NlcHQgPz8gdGhpcy5hY2NlcHQ7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudCB8fCBudWxsO1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHVpSXNOYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkUHNldWRvSG92ZXJlZCgpOiBib29sZWFuIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnBzZXVkb0hvdmVyID8/ICh0aGlzLmZpbGVEcmFnZ2VkIHx8IG51bGwpO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZExpbmskKCk6IE9ic2VydmFibGU8UG9seW1vcnBoZXVzQ29udGVudD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlTGluayQodGhpcy5maWxlRHJhZ2dlZCwgdGhpcy5jb21wdXRlZE11bHRpcGxlLCB0aGlzLmxpbmspO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZExhYmVsJCgpOiBPYnNlcnZhYmxlPFBvbHltb3JwaGV1c0NvbnRlbnQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcHV0ZUxhYmVsJChcbiAgICAgICAgICAgIHRoaXMuaXNNb2JpbGUsXG4gICAgICAgICAgICB0aGlzLmZpbGVEcmFnZ2VkLFxuICAgICAgICAgICAgdGhpcy5jb21wdXRlZE11bHRpcGxlLFxuICAgICAgICAgICAgdGhpcy5sYWJlbCxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgZmlsZURyYWdnZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuZGF0YVRyYW5zZmVyPy50eXBlcy5pbmNsdWRlcygnRmlsZXMnKTtcbiAgICB9XG5cbiAgICBnZXQgYXJyYXlWYWx1ZSgpOiByZWFkb25seSBUdWlGaWxlTGlrZVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsdWVBcnJheSh0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdmb2N1c2luJywgWyd0cnVlJ10pXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXNvdXQnLCBbJ2ZhbHNlJ10pXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NoYW5nZScpXG4gICAgb25GaWxlc1NlbGVjdGVkKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbnB1dCA9IHRoaXMubmF0aXZlSW5wdXQ/LmlucHV0ID8/IHRoaXMuaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKCFpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wcm9jZXNzU2VsZWN0ZWRGaWxlcyhpbnB1dC5maWxlcyk7XG5cbiAgICAgICAgaW5wdXQudmFsdWUgPSAnJztcbiAgICB9XG5cbiAgICBvbkRyb3BwZWQoZXZlbnQ6IERhdGFUcmFuc2Zlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnByb2Nlc3NTZWxlY3RlZEZpbGVzKGV2ZW50LmZpbGVzKTtcbiAgICB9XG5cbiAgICBvbkRyYWdPdmVyKGRhdGFUcmFuc2ZlcjogRGF0YVRyYW5zZmVyIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGFUcmFuc2ZlciA9IGRhdGFUcmFuc2ZlcjtcbiAgICB9XG5cbiAgICByZW1vdmVGaWxlKHJlbW92ZWRGaWxlOiBUdWlGaWxlTGlrZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5jb21wdXRlZE11bHRpcGxlXG4gICAgICAgICAgICA/IHRoaXMuYXJyYXlWYWx1ZS5maWx0ZXIoZmlsZSA9PiBmaWxlICE9PSByZW1vdmVkRmlsZSlcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgY29tcHV0ZUxpbmskKFxuICAgICAgICBmaWxlRHJhZ2dlZDogYm9vbGVhbixcbiAgICAgICAgbXVsdGlwbGU6IGJvb2xlYW4sXG4gICAgICAgIGxpbms6IFBvbHltb3JwaGV1c0NvbnRlbnQsXG4gICAgKTogT2JzZXJ2YWJsZTxQb2x5bW9ycGhldXNDb250ZW50PiB7XG4gICAgICAgIHJldHVybiBmaWxlRHJhZ2dlZFxuICAgICAgICAgICAgPyBvZignJylcbiAgICAgICAgICAgIDogdGhpcy5pbnB1dEZpbGVUZXh0cyQucGlwZShcbiAgICAgICAgICAgICAgICAgIG1hcCh0ZXh0cyA9PlxuICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxlICYmICFsaW5rXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gdGV4dHMuZGVmYXVsdExpbmtNdWx0aXBsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IGxpbmsgfHwgdGV4dHMuZGVmYXVsdExpbmtTaW5nbGUsXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICApO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBjb21wdXRlTGFiZWwkKFxuICAgICAgICBpc01vYmlsZTogYm9vbGVhbixcbiAgICAgICAgZmlsZURyYWdnZWQ6IGJvb2xlYW4sXG4gICAgICAgIG11bHRpcGxlOiBib29sZWFuLFxuICAgICAgICBsYWJlbDogUG9seW1vcnBoZXVzQ29udGVudCxcbiAgICApOiBPYnNlcnZhYmxlPFBvbHltb3JwaGV1c0NvbnRlbnQ+IHtcbiAgICAgICAgaWYgKGlzTW9iaWxlKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoJycpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpbGVEcmFnZ2VkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pbnB1dEZpbGVUZXh0cyQucGlwZShcbiAgICAgICAgICAgICAgICBtYXAodGV4dHMgPT4gKG11bHRpcGxlID8gdGV4dHMuZHJvcE11bHRpcGxlIDogdGV4dHMuZHJvcCkpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0RmlsZVRleHRzJC5waXBlKFxuICAgICAgICAgICAgbWFwKHRleHRzID0+XG4gICAgICAgICAgICAgICAgbXVsdGlwbGUgJiYgIWxhYmVsXG4gICAgICAgICAgICAgICAgICAgID8gdGV4dHMuZGVmYXVsdExhYmVsTXVsdGlwbGVcbiAgICAgICAgICAgICAgICAgICAgOiBsYWJlbCB8fCB0ZXh0cy5kZWZhdWx0TGFiZWxTaW5nbGUsXG4gICAgICAgICAgICApLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBnZXRWYWx1ZUFycmF5KFxuICAgICAgICB2YWx1ZTogVHVpRmlsZUxpa2UgfCByZWFkb25seSBUdWlGaWxlTGlrZVtdIHwgbnVsbCxcbiAgICApOiByZWFkb25seSBUdWlGaWxlTGlrZVtdIHtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIEVNUFRZX0FSUkFZO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvY2Vzc1NlbGVjdGVkRmlsZXMoZmlsZXM6IEZpbGVMaXN0IHwgbnVsbCk6IHZvaWQge1xuICAgICAgICAvLyBJRTExIGFmdGVyIHNlbGVjdGluZyBhIGZpbGUgdGhyb3VnaCB0aGUgb3BlbiBkaWFsb2cgZ2VuZXJhdGVzIGEgc2Vjb25kIGV2ZW50IHBhc3NpbmcgYW4gZW1wdHkgRmlsZUxpc3QuXG4gICAgICAgIGlmICghZmlsZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXJyb3JzOiBSZWNvcmQ8XG4gICAgICAgICAgICAnZm9ybWF0UmVqZWN0aW9uJyB8ICdtYXhTaXplUmVqZWN0aW9uJyxcbiAgICAgICAgICAgIFBvbHltb3JwaGV1c0NvbnRlbnRcbiAgICAgICAgPiA9IHtcbiAgICAgICAgICAgIGZvcm1hdFJlamVjdGlvbjogdGhpcy5mb3JtYXRSZWplY3Rpb24sXG4gICAgICAgICAgICBtYXhTaXplUmVqZWN0aW9uOiB0aGlzLm1heFNpemVSZWplY3Rpb24sXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgbmV3RmlsZXMgPSB0aGlzLmNvbXB1dGVkTXVsdGlwbGUgPyBBcnJheS5mcm9tKGZpbGVzKSA6IFtmaWxlc1swXV07XG4gICAgICAgIGNvbnN0IHRvb0JpZ0ZpbGVzID0gbmV3RmlsZXMuZmlsdGVyKGZpbGUgPT4gZmlsZS5zaXplID4gdGhpcy5tYXhGaWxlU2l6ZSk7XG4gICAgICAgIGNvbnN0IHdyb25nRm9ybWF0RmlsZXMgPSBuZXdGaWxlcy5maWx0ZXIoXG4gICAgICAgICAgICBmaWxlID0+ICF0aGlzLmlzRm9ybWF0QWNjZXB0YWJsZShmaWxlKSAmJiAhdG9vQmlnRmlsZXMuaW5jbHVkZXMoZmlsZSksXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGFjY2VwdGVkRmlsZXMgPSBuZXdGaWxlcy5maWx0ZXIoXG4gICAgICAgICAgICBmaWxlID0+ICF0b29CaWdGaWxlcy5pbmNsdWRlcyhmaWxlKSAmJiAhd3JvbmdGb3JtYXRGaWxlcy5pbmNsdWRlcyhmaWxlKSxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAodG9vQmlnRmlsZXMubGVuZ3RoIHx8IHdyb25nRm9ybWF0RmlsZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnJlamVjdEZpbGVzKFtcbiAgICAgICAgICAgICAgICAuLi50b29CaWdGaWxlcy5tYXAoZmlsZSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBmaWxlLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IGZpbGUudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogZmlsZS5zaXplLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBlcnJvcnMubWF4U2l6ZVJlamVjdGlvbixcbiAgICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICAgICAgLi4ud3JvbmdGb3JtYXRGaWxlcy5tYXAoZmlsZSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBmaWxlLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IGZpbGUudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogZmlsZS5zaXplLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBlcnJvcnMuZm9ybWF0UmVqZWN0aW9uLFxuICAgICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuY29tcHV0ZWRNdWx0aXBsZVxuICAgICAgICAgICAgPyBbLi4udGhpcy5hcnJheVZhbHVlLCAuLi5hY2NlcHRlZEZpbGVzXVxuICAgICAgICAgICAgOiBhY2NlcHRlZEZpbGVzWzBdIHx8IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0Zvcm1hdEFjY2VwdGFibGUoZmlsZTogRmlsZSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuY29tcHV0ZWRBY2NlcHQpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXh0ZW5zaW9uID0gYC4keyhmaWxlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKSB8fCAnJykudG9Mb3dlckNhc2UoKX1gO1xuXG4gICAgICAgIHJldHVybiB0dWlHZXRBY2NlcHRBcnJheSh0aGlzLmNvbXB1dGVkQWNjZXB0KS5zb21lKFxuICAgICAgICAgICAgZm9ybWF0ID0+XG4gICAgICAgICAgICAgICAgZm9ybWF0ID09PSBleHRlbnNpb24gfHxcbiAgICAgICAgICAgICAgICBmb3JtYXQgPT09IGZpbGUudHlwZSB8fFxuICAgICAgICAgICAgICAgIChmb3JtYXQuc3BsaXQoJy8nKVsxXSA9PT0gJyonICYmXG4gICAgICAgICAgICAgICAgICAgIGZpbGUudHlwZS5zcGxpdCgnLycpWzBdID09PSBmb3JtYXQuc3BsaXQoJy8nKVswXSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWplY3RGaWxlcyhyZWplY3RlZEZpbGVzOiByZWFkb25seSBUdWlGaWxlTGlrZVtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVqZWN0LmVtaXQodGhpcy5jb21wdXRlZE11bHRpcGxlID8gcmVqZWN0ZWRGaWxlcyA6IHJlamVjdGVkRmlsZXNbMF0pO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBhcHBlYXJhbmNlPVwiaW5wdXQtZmlsZVwiXG4gICAgdHVpV3JhcHBlclxuICAgIGNsYXNzPVwidC13cmFwcGVyXCJcbiAgICBbYWN0aXZlXT1cInBzZXVkb0FjdGl2ZVwiXG4gICAgW2NsYXNzLl9tb2JpbGVdPVwiaXNNb2JpbGVcIlxuICAgIFtkaXNhYmxlZF09XCJjb21wdXRlZERpc2FibGVkXCJcbiAgICBbZm9jdXNdPVwiY29tcHV0ZWRGb2N1c2VkXCJcbiAgICBbaG92ZXJdPVwicHNldWRvSG92ZXIgfHwgZmlsZURyYWdnZWQgfHwgbnVsbFwiXG4+XG4gICAgPGxhYmVsXG4gICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktaW5wdXQtZmlsZV9fbGFiZWxcIlxuICAgICAgICBjbGFzcz1cInQtbGFiZWxcIlxuICAgICAgICAobW91c2Vkb3duLnByZXZlbnQuc2lsZW50KT1cIigwKVwiXG4gICAgICAgICh0dWlEcm9wcGFibGVEcmFnT3ZlckNoYW5nZSk9XCJvbkRyYWdPdmVyKCRldmVudClcIlxuICAgICAgICAodHVpRHJvcHBhYmxlRHJvcHBlZCk9XCJvbkRyb3BwZWQoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidC1kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlIHx8IG51bGw7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGZpbGVEcmFnZ2VkfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiF0ZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgIDxhIHR1aUxpbms+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnBvbHltb3JwaGV1c091dGxldD1cImNvbXB1dGVkTGluayQgfCBhc3luYyBhcyB0ZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyB0ZXh0IH19XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAqcG9seW1vcnBoZXVzT3V0bGV0PVwiY29tcHV0ZWRMYWJlbCQgfCBhc3luYyBhcyB0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgW3RleHRDb250ZW50XT1cInRleHRcIlxuICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhcmVhZE9ubHkgJiYgIWNvbXB1dGVkRGlzYWJsZWRcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImlucHV0XCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgI2lucHV0XG4gICAgICAgICAgICAgICAgdGl0bGU9XCJcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInQtbmF0aXZlXCJcbiAgICAgICAgICAgICAgICBbYWNjZXB0XT1cImFjY2VwdFwiXG4gICAgICAgICAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgICAgICAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICAgICAgICAgICAgICAgIFt0dWlGb2N1c2FibGVdPVwiZm9jdXNhYmxlXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbGFiZWw+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNmb3JtYXRSZWplY3Rpb24+XG4gICAge3sgKGlucHV0RmlsZVRleHRzJCB8IGFzeW5jKT8uZm9ybWF0UmVqZWN0aW9uUmVhc29uIHx8ICcnIH19XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI21heFNpemVSZWplY3Rpb24+XG4gICAge3sgbWF4RmlsZVNpemUgfCB0dWlNYXhTaXplUmVqZWN0aW9uRXJyb3IgfCBhc3luYyB9fVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,5 +1,6 @@
1
1
  import { Directive, ElementRef, forwardRef, HostBinding, Inject } from '@angular/core';
2
2
  import { TuiIdService } from '@taiga-ui/cdk';
3
+ // eslint-disable-next-line import/no-cycle
3
4
  import { TuiInputFilesComponent } from './input-files.component';
4
5
  import { TUI_INPUT_FILES_OPTIONS } from './input-files.options';
5
6
  import * as i0 from "@angular/core";
@@ -73,4 +74,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
73
74
  type: HostBinding,
74
75
  args: ['attr.capture']
75
76
  }] } });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmlsZXMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtZmlsZXMvaW5wdXQtZmlsZXMuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFDLHVCQUF1QixFQUF1QixNQUFNLHVCQUF1QixDQUFDOzs7O0FBU3BGLE1BQU0sT0FBTyxzQkFBc0I7SUFDL0IsWUFFYSxJQUE0QixFQUNBLEVBQWdDLEVBQzlCLFNBQXVCLEVBQ1osT0FBNkI7UUFIdEUsU0FBSSxHQUFKLElBQUksQ0FBd0I7UUFDQSxPQUFFLEdBQUYsRUFBRSxDQUE4QjtRQUM5QixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBQ1osWUFBTyxHQUFQLE9BQU8sQ0FBc0I7SUFDaEYsQ0FBQztJQUVKLElBQ0ksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQ0ksRUFBRTtRQUNGLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakUsQ0FBQztJQUVELElBQ0ksTUFBTTs7UUFDTixPQUFPLE1BQUEsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsTUFBTSxtQ0FBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUNoRSxDQUFDO0lBRUQsSUFDSSxRQUFROztRQUNSLE9BQU8sTUFBQSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLG1DQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQ25FLENBQUM7SUFFRCxJQUNJLE9BQU87O1FBQ1AsT0FBTyxNQUFBLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsbUNBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDakYsQ0FBQztJQUVELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUM7SUFDakMsQ0FBQzs7b0hBcENRLHNCQUFzQixrQkFFbkIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixDQUFDLGFBRXhDLFVBQVUsYUFDVixZQUFZLGFBQ1osdUJBQXVCO3dHQU4xQixzQkFBc0I7NEZBQXRCLHNCQUFzQjtrQkFQbEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxJQUFJLEVBQUU7d0JBQ0YsSUFBSSxFQUFFLE1BQU07d0JBQ1osS0FBSyxFQUFFLFVBQVU7cUJBQ3BCO2lCQUNKOzswQkFHUSxNQUFNOzJCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQzs7MEJBRS9DLE1BQU07MkJBQUMsVUFBVTs7MEJBQ2pCLE1BQU07MkJBQUMsWUFBWTs7MEJBQ25CLE1BQU07MkJBQUMsdUJBQXVCOzRDQUkvQixRQUFRO3NCQURYLFdBQVc7dUJBQUMsVUFBVTtnQkFNbkIsRUFBRTtzQkFETCxXQUFXO3VCQUFDLElBQUk7Z0JBTWIsTUFBTTtzQkFEVCxXQUFXO3VCQUFDLFFBQVE7Z0JBTWpCLFFBQVE7c0JBRFgsV0FBVzt1QkFBQyxVQUFVO2dCQU1uQixPQUFPO3NCQURWLFdBQVc7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBmb3J3YXJkUmVmLCBIb3N0QmluZGluZywgSW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHVpSWRTZXJ2aWNlfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1jeWNsZVxuaW1wb3J0IHtUdWlJbnB1dEZpbGVzQ29tcG9uZW50fSBmcm9tICcuL2lucHV0LWZpbGVzLmNvbXBvbmVudCc7XG5pbXBvcnQge1RVSV9JTlBVVF9GSUxFU19PUFRJT05TLCBUdWlJbnB1dEZpbGVzT3B0aW9uc30gZnJvbSAnLi9pbnB1dC1maWxlcy5vcHRpb25zJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdpbnB1dFt0dWlJbnB1dEZpbGVzXScsXG4gICAgaG9zdDoge1xuICAgICAgICB0eXBlOiAnZmlsZScsXG4gICAgICAgIGNsYXNzOiAndC1uYXRpdmUnLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0RmlsZXNEaXJlY3RpdmUge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gVHVpSW5wdXRGaWxlc0NvbXBvbmVudCkpXG4gICAgICAgIHJlYWRvbmx5IGhvc3Q6IFR1aUlucHV0RmlsZXNDb21wb25lbnQsXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikgcHJpdmF0ZSByZWFkb25seSBlbDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PixcbiAgICAgICAgQEluamVjdChUdWlJZFNlcnZpY2UpIHByaXZhdGUgcmVhZG9ubHkgaWRTZXJ2aWNlOiBUdWlJZFNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoVFVJX0lOUFVUX0ZJTEVTX09QVElPTlMpIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogVHVpSW5wdXRGaWxlc09wdGlvbnMsXG4gICAgKSB7fVxuXG4gICAgQEhvc3RCaW5kaW5nKCd0YWJJbmRleCcpXG4gICAgZ2V0IHRhYkluZGV4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3QuZm9jdXNhYmxlID8gMCA6IC0xO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnaWQnKVxuICAgIGdldCBpZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5lbC5uYXRpdmVFbGVtZW50LmlkIHx8IHRoaXMuaWRTZXJ2aWNlLmdlbmVyYXRlKCk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhY2NlcHQnKVxuICAgIGdldCBhY2NlcHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWwubmF0aXZlRWxlbWVudC5hY2NlcHQgPz8gdGhpcy5vcHRpb25zLmFjY2VwdHM7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdtdWx0aXBsZScpXG4gICAgZ2V0IG11bHRpcGxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm11bHRpcGxlID8/IHRoaXMub3B0aW9ucy5tdWx0aXBsZTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuY2FwdHVyZScpXG4gICAgZ2V0IGNhcHR1cmUoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdjYXB0dXJlJykgPz8gdGhpcy5vcHRpb25zLmNhcHR1cmU7XG4gICAgfVxuXG4gICAgZ2V0IGlucHV0KCk6IEhUTUxJbnB1dEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgIH1cbn1cbiJdfQ==
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmlsZXMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtZmlsZXMvaW5wdXQtZmlsZXMuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFM0MsMkNBQTJDO0FBQzNDLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sRUFBQyx1QkFBdUIsRUFBdUIsTUFBTSx1QkFBdUIsQ0FBQzs7OztBQVNwRixNQUFNLE9BQU8sc0JBQXNCO0lBQy9CLFlBRWEsSUFBNEIsRUFDQSxFQUFnQyxFQUM5QixTQUF1QixFQUNaLE9BQTZCO1FBSHRFLFNBQUksR0FBSixJQUFJLENBQXdCO1FBQ0EsT0FBRSxHQUFGLEVBQUUsQ0FBOEI7UUFDOUIsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUNaLFlBQU8sR0FBUCxPQUFPLENBQXNCO0lBQ2hGLENBQUM7SUFFSixJQUNJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUNJLEVBQUU7UUFDRixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pFLENBQUM7SUFFRCxJQUNJLE1BQU07O1FBQ04sT0FBTyxNQUFBLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLE1BQU0sbUNBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDaEUsQ0FBQztJQUVELElBQ0ksUUFBUTs7UUFDUixPQUFPLE1BQUEsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxtQ0FBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUNuRSxDQUFDO0lBRUQsSUFDSSxPQUFPOztRQUNQLE9BQU8sTUFBQSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLG1DQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO0lBQ2pGLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDO0lBQ2pDLENBQUM7O29IQXBDUSxzQkFBc0Isa0JBRW5CLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxhQUV4QyxVQUFVLGFBQ1YsWUFBWSxhQUNaLHVCQUF1Qjt3R0FOMUIsc0JBQXNCOzRGQUF0QixzQkFBc0I7a0JBUGxDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsSUFBSSxFQUFFO3dCQUNGLElBQUksRUFBRSxNQUFNO3dCQUNaLEtBQUssRUFBRSxVQUFVO3FCQUNwQjtpQkFDSjs7MEJBR1EsTUFBTTsyQkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsc0JBQXNCLENBQUM7OzBCQUUvQyxNQUFNOzJCQUFDLFVBQVU7OzBCQUNqQixNQUFNOzJCQUFDLFlBQVk7OzBCQUNuQixNQUFNOzJCQUFDLHVCQUF1Qjs0Q0FJL0IsUUFBUTtzQkFEWCxXQUFXO3VCQUFDLFVBQVU7Z0JBTW5CLEVBQUU7c0JBREwsV0FBVzt1QkFBQyxJQUFJO2dCQU1iLE1BQU07c0JBRFQsV0FBVzt1QkFBQyxRQUFRO2dCQU1qQixRQUFRO3NCQURYLFdBQVc7dUJBQUMsVUFBVTtnQkFNbkIsT0FBTztzQkFEVixXQUFXO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSG9zdEJpbmRpbmcsIEluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1R1aUlkU2VydmljZX0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tY3ljbGVcbmltcG9ydCB7VHVpSW5wdXRGaWxlc0NvbXBvbmVudH0gZnJvbSAnLi9pbnB1dC1maWxlcy5jb21wb25lbnQnO1xuaW1wb3J0IHtUVUlfSU5QVVRfRklMRVNfT1BUSU9OUywgVHVpSW5wdXRGaWxlc09wdGlvbnN9IGZyb20gJy4vaW5wdXQtZmlsZXMub3B0aW9ucyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnaW5wdXRbdHVpSW5wdXRGaWxlc10nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgdHlwZTogJ2ZpbGUnLFxuICAgICAgICBjbGFzczogJ3QtbmF0aXZlJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dEZpbGVzRGlyZWN0aXZlIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IFR1aUlucHV0RmlsZXNDb21wb25lbnQpKVxuICAgICAgICByZWFkb25seSBob3N0OiBUdWlJbnB1dEZpbGVzQ29tcG9uZW50LFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWw6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoVHVpSWRTZXJ2aWNlKSBwcml2YXRlIHJlYWRvbmx5IGlkU2VydmljZTogVHVpSWRTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KFRVSV9JTlBVVF9GSUxFU19PUFRJT05TKSBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IFR1aUlucHV0RmlsZXNPcHRpb25zLFxuICAgICkge31cblxuICAgIEBIb3N0QmluZGluZygndGFiSW5kZXgnKVxuICAgIGdldCB0YWJJbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0LmZvY3VzYWJsZSA/IDAgOiAtMTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2lkJylcbiAgICBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWwubmF0aXZlRWxlbWVudC5pZCB8fCB0aGlzLmlkU2VydmljZS5nZW5lcmF0ZSgpO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnYWNjZXB0JylcbiAgICBnZXQgYWNjZXB0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuYWNjZXB0ID8/IHRoaXMub3B0aW9ucy5hY2NlcHRzO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnbXVsdGlwbGUnKVxuICAgIGdldCBtdWx0aXBsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWwubmF0aXZlRWxlbWVudC5tdWx0aXBsZSA/PyB0aGlzLm9wdGlvbnMubXVsdGlwbGU7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmNhcHR1cmUnKVxuICAgIGdldCBjYXB0dXJlKCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5lbC5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgnY2FwdHVyZScpID8/IHRoaXMub3B0aW9ucy5jYXB0dXJlO1xuICAgIH1cblxuICAgIGdldCBpbnB1dCgpOiBIVE1MSW5wdXRFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgICB9XG59XG4iXX0=