@taiga-ui/kit 2.30.0 → 2.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (910) hide show
  1. package/abstract/taiga-ui-kit-abstract.metadata.json +1 -1
  2. package/bundles/taiga-ui-kit-abstract.umd.js +7 -6
  3. package/bundles/taiga-ui-kit-abstract.umd.js.map +1 -1
  4. package/bundles/taiga-ui-kit-abstract.umd.min.js +2 -2
  5. package/bundles/taiga-ui-kit-abstract.umd.min.js.map +1 -1
  6. package/bundles/taiga-ui-kit-components-accordion.umd.js +3 -3
  7. package/bundles/taiga-ui-kit-components-accordion.umd.js.map +1 -1
  8. package/bundles/taiga-ui-kit-components-accordion.umd.min.js +1 -1
  9. package/bundles/taiga-ui-kit-components-accordion.umd.min.js.map +1 -1
  10. package/bundles/taiga-ui-kit-components-arrow.umd.js +44 -8
  11. package/bundles/taiga-ui-kit-components-arrow.umd.js.map +1 -1
  12. package/bundles/taiga-ui-kit-components-arrow.umd.min.js +2 -2
  13. package/bundles/taiga-ui-kit-components-arrow.umd.min.js.map +1 -1
  14. package/bundles/taiga-ui-kit-components-avatar.umd.js +2 -2
  15. package/bundles/taiga-ui-kit-components-avatar.umd.js.map +1 -1
  16. package/bundles/taiga-ui-kit-components-avatar.umd.min.js +2 -2
  17. package/bundles/taiga-ui-kit-components-avatar.umd.min.js.map +1 -1
  18. package/bundles/taiga-ui-kit-components-badge.umd.js +2 -2
  19. package/bundles/taiga-ui-kit-components-badge.umd.js.map +1 -1
  20. package/bundles/taiga-ui-kit-components-badge.umd.min.js +1 -1
  21. package/bundles/taiga-ui-kit-components-badge.umd.min.js.map +1 -1
  22. package/bundles/taiga-ui-kit-components-badged-content.umd.js +2 -2
  23. package/bundles/taiga-ui-kit-components-badged-content.umd.js.map +1 -1
  24. package/bundles/taiga-ui-kit-components-badged-content.umd.min.js +2 -2
  25. package/bundles/taiga-ui-kit-components-badged-content.umd.min.js.map +1 -1
  26. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.js +2 -2
  27. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.js.map +1 -1
  28. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.min.js +1 -1
  29. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.min.js.map +1 -1
  30. package/bundles/taiga-ui-kit-components-calendar-month.umd.js +4 -1
  31. package/bundles/taiga-ui-kit-components-calendar-month.umd.js.map +1 -1
  32. package/bundles/taiga-ui-kit-components-calendar-month.umd.min.js +2 -2
  33. package/bundles/taiga-ui-kit-components-calendar-month.umd.min.js.map +1 -1
  34. package/bundles/taiga-ui-kit-components-carousel.umd.js +5 -4
  35. package/bundles/taiga-ui-kit-components-carousel.umd.js.map +1 -1
  36. package/bundles/taiga-ui-kit-components-carousel.umd.min.js +1 -1
  37. package/bundles/taiga-ui-kit-components-carousel.umd.min.js.map +1 -1
  38. package/bundles/taiga-ui-kit-components-checkbox-block.umd.js +2 -2
  39. package/bundles/taiga-ui-kit-components-checkbox-block.umd.js.map +1 -1
  40. package/bundles/taiga-ui-kit-components-checkbox-block.umd.min.js +2 -2
  41. package/bundles/taiga-ui-kit-components-checkbox-block.umd.min.js.map +1 -1
  42. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js +2 -2
  43. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js.map +1 -1
  44. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.min.js +1 -1
  45. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.min.js.map +1 -1
  46. package/bundles/taiga-ui-kit-components-checkbox.umd.js +3 -3
  47. package/bundles/taiga-ui-kit-components-checkbox.umd.js.map +1 -1
  48. package/bundles/taiga-ui-kit-components-checkbox.umd.min.js +1 -1
  49. package/bundles/taiga-ui-kit-components-checkbox.umd.min.js.map +1 -1
  50. package/bundles/taiga-ui-kit-components-combo-box.umd.js +129 -56
  51. package/bundles/taiga-ui-kit-components-combo-box.umd.js.map +1 -1
  52. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js +2 -2
  53. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js.map +1 -1
  54. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js +17 -11
  55. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js.map +1 -1
  56. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.min.js +2 -2
  57. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.min.js.map +1 -1
  58. package/bundles/taiga-ui-kit-components-field-error.umd.js +10 -15
  59. package/bundles/taiga-ui-kit-components-field-error.umd.js.map +1 -1
  60. package/bundles/taiga-ui-kit-components-field-error.umd.min.js +1 -1
  61. package/bundles/taiga-ui-kit-components-field-error.umd.min.js.map +1 -1
  62. package/bundles/taiga-ui-kit-components-filter.umd.js +2 -2
  63. package/bundles/taiga-ui-kit-components-filter.umd.js.map +1 -1
  64. package/bundles/taiga-ui-kit-components-filter.umd.min.js +1 -1
  65. package/bundles/taiga-ui-kit-components-filter.umd.min.js.map +1 -1
  66. package/bundles/taiga-ui-kit-components-input-copy.umd.js +47 -17
  67. package/bundles/taiga-ui-kit-components-input-copy.umd.js.map +1 -1
  68. package/bundles/taiga-ui-kit-components-input-copy.umd.min.js +2 -2
  69. package/bundles/taiga-ui-kit-components-input-copy.umd.min.js.map +1 -1
  70. package/bundles/taiga-ui-kit-components-input-count.umd.js +45 -11
  71. package/bundles/taiga-ui-kit-components-input-count.umd.js.map +1 -1
  72. package/bundles/taiga-ui-kit-components-input-count.umd.min.js +1 -1
  73. package/bundles/taiga-ui-kit-components-input-count.umd.min.js.map +1 -1
  74. package/bundles/taiga-ui-kit-components-input-date-range.umd.js +80 -28
  75. package/bundles/taiga-ui-kit-components-input-date-range.umd.js.map +1 -1
  76. package/bundles/taiga-ui-kit-components-input-date-range.umd.min.js +2 -2
  77. package/bundles/taiga-ui-kit-components-input-date-range.umd.min.js.map +1 -1
  78. package/bundles/taiga-ui-kit-components-input-date-time.umd.js +80 -36
  79. package/bundles/taiga-ui-kit-components-input-date-time.umd.js.map +1 -1
  80. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js +2 -2
  81. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js.map +1 -1
  82. package/bundles/taiga-ui-kit-components-input-date.umd.js +76 -28
  83. package/bundles/taiga-ui-kit-components-input-date.umd.js.map +1 -1
  84. package/bundles/taiga-ui-kit-components-input-date.umd.min.js +2 -2
  85. package/bundles/taiga-ui-kit-components-input-date.umd.min.js.map +1 -1
  86. package/bundles/taiga-ui-kit-components-input-file.umd.js +1 -8
  87. package/bundles/taiga-ui-kit-components-input-file.umd.js.map +1 -1
  88. package/bundles/taiga-ui-kit-components-input-file.umd.min.js +1 -1
  89. package/bundles/taiga-ui-kit-components-input-file.umd.min.js.map +1 -1
  90. package/bundles/taiga-ui-kit-components-input-inline.umd.js +2 -15
  91. package/bundles/taiga-ui-kit-components-input-inline.umd.js.map +1 -1
  92. package/bundles/taiga-ui-kit-components-input-inline.umd.min.js +1 -1
  93. package/bundles/taiga-ui-kit-components-input-inline.umd.min.js.map +1 -1
  94. package/bundles/taiga-ui-kit-components-input-month-range.umd.js +52 -10
  95. package/bundles/taiga-ui-kit-components-input-month-range.umd.js.map +1 -1
  96. package/bundles/taiga-ui-kit-components-input-month-range.umd.min.js +1 -1
  97. package/bundles/taiga-ui-kit-components-input-month-range.umd.min.js.map +1 -1
  98. package/bundles/taiga-ui-kit-components-input-month.umd.js +48 -10
  99. package/bundles/taiga-ui-kit-components-input-month.umd.js.map +1 -1
  100. package/bundles/taiga-ui-kit-components-input-month.umd.min.js +1 -1
  101. package/bundles/taiga-ui-kit-components-input-month.umd.min.js.map +1 -1
  102. package/bundles/taiga-ui-kit-components-input-number.umd.js +52 -10
  103. package/bundles/taiga-ui-kit-components-input-number.umd.js.map +1 -1
  104. package/bundles/taiga-ui-kit-components-input-number.umd.min.js +2 -2
  105. package/bundles/taiga-ui-kit-components-input-number.umd.min.js.map +1 -1
  106. package/bundles/taiga-ui-kit-components-input-password.umd.js +50 -11
  107. package/bundles/taiga-ui-kit-components-input-password.umd.js.map +1 -1
  108. package/bundles/taiga-ui-kit-components-input-password.umd.min.js +1 -1
  109. package/bundles/taiga-ui-kit-components-input-password.umd.min.js.map +1 -1
  110. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js +51 -23
  111. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js.map +1 -1
  112. package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js +1 -1
  113. package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js.map +1 -1
  114. package/bundles/taiga-ui-kit-components-input-phone.umd.js +59 -23
  115. package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
  116. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js +1 -1
  117. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js.map +1 -1
  118. package/bundles/taiga-ui-kit-components-input-range.umd.js +8 -5
  119. package/bundles/taiga-ui-kit-components-input-range.umd.js.map +1 -1
  120. package/bundles/taiga-ui-kit-components-input-range.umd.min.js +2 -2
  121. package/bundles/taiga-ui-kit-components-input-range.umd.min.js.map +1 -1
  122. package/bundles/taiga-ui-kit-components-input-slider.umd.js +8 -5
  123. package/bundles/taiga-ui-kit-components-input-slider.umd.js.map +1 -1
  124. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js +2 -2
  125. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js.map +1 -1
  126. package/bundles/taiga-ui-kit-components-input-tag.umd.js +44 -15
  127. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  128. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js +2 -2
  129. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js.map +1 -1
  130. package/bundles/taiga-ui-kit-components-input-time.umd.js +19 -14
  131. package/bundles/taiga-ui-kit-components-input-time.umd.js.map +1 -1
  132. package/bundles/taiga-ui-kit-components-input-time.umd.min.js +2 -2
  133. package/bundles/taiga-ui-kit-components-input-time.umd.min.js.map +1 -1
  134. package/bundles/taiga-ui-kit-components-input.umd.js +33 -4
  135. package/bundles/taiga-ui-kit-components-input.umd.js.map +1 -1
  136. package/bundles/taiga-ui-kit-components-input.umd.min.js +1 -1
  137. package/bundles/taiga-ui-kit-components-input.umd.min.js.map +1 -1
  138. package/bundles/taiga-ui-kit-components-marker-icon.umd.js +2 -2
  139. package/bundles/taiga-ui-kit-components-marker-icon.umd.js.map +1 -1
  140. package/bundles/taiga-ui-kit-components-marker-icon.umd.min.js +1 -1
  141. package/bundles/taiga-ui-kit-components-marker-icon.umd.min.js.map +1 -1
  142. package/bundles/taiga-ui-kit-components-multi-select.umd.js +50 -23
  143. package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
  144. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js +2 -2
  145. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js.map +1 -1
  146. package/bundles/taiga-ui-kit-components-radio-block.umd.js +2 -2
  147. package/bundles/taiga-ui-kit-components-radio-block.umd.js.map +1 -1
  148. package/bundles/taiga-ui-kit-components-radio-block.umd.min.js +1 -1
  149. package/bundles/taiga-ui-kit-components-radio-block.umd.min.js.map +1 -1
  150. package/bundles/taiga-ui-kit-components-radio-labeled.umd.js +2 -2
  151. package/bundles/taiga-ui-kit-components-radio-labeled.umd.js.map +1 -1
  152. package/bundles/taiga-ui-kit-components-radio-labeled.umd.min.js +1 -1
  153. package/bundles/taiga-ui-kit-components-radio-labeled.umd.min.js.map +1 -1
  154. package/bundles/taiga-ui-kit-components-radio-list.umd.js +2 -2
  155. package/bundles/taiga-ui-kit-components-radio-list.umd.js.map +1 -1
  156. package/bundles/taiga-ui-kit-components-radio-list.umd.min.js +1 -1
  157. package/bundles/taiga-ui-kit-components-radio-list.umd.min.js.map +1 -1
  158. package/bundles/taiga-ui-kit-components-radio.umd.js +7 -2
  159. package/bundles/taiga-ui-kit-components-radio.umd.js.map +1 -1
  160. package/bundles/taiga-ui-kit-components-radio.umd.min.js +1 -1
  161. package/bundles/taiga-ui-kit-components-radio.umd.min.js.map +1 -1
  162. package/bundles/taiga-ui-kit-components-range.umd.js +1 -1
  163. package/bundles/taiga-ui-kit-components-range.umd.min.js +1 -1
  164. package/bundles/taiga-ui-kit-components-range.umd.min.js.map +1 -1
  165. package/bundles/taiga-ui-kit-components-rating.umd.js +373 -0
  166. package/bundles/taiga-ui-kit-components-rating.umd.js.map +1 -0
  167. package/bundles/taiga-ui-kit-components-rating.umd.min.js +16 -0
  168. package/bundles/taiga-ui-kit-components-rating.umd.min.js.map +1 -0
  169. package/bundles/taiga-ui-kit-components-select.umd.js +107 -43
  170. package/bundles/taiga-ui-kit-components-select.umd.js.map +1 -1
  171. package/bundles/taiga-ui-kit-components-select.umd.min.js +2 -2
  172. package/bundles/taiga-ui-kit-components-select.umd.min.js.map +1 -1
  173. package/bundles/taiga-ui-kit-components-slider.umd.js +142 -27
  174. package/bundles/taiga-ui-kit-components-slider.umd.js.map +1 -1
  175. package/bundles/taiga-ui-kit-components-slider.umd.min.js +2 -2
  176. package/bundles/taiga-ui-kit-components-slider.umd.min.js.map +1 -1
  177. package/bundles/taiga-ui-kit-components-stepper.umd.js +1 -1
  178. package/bundles/taiga-ui-kit-components-stepper.umd.js.map +1 -1
  179. package/bundles/taiga-ui-kit-components-stepper.umd.min.js +1 -1
  180. package/bundles/taiga-ui-kit-components-stepper.umd.min.js.map +1 -1
  181. package/bundles/taiga-ui-kit-components-tabs.umd.js +1 -1
  182. package/bundles/taiga-ui-kit-components-tabs.umd.js.map +1 -1
  183. package/bundles/taiga-ui-kit-components-tabs.umd.min.js +1 -1
  184. package/bundles/taiga-ui-kit-components-tabs.umd.min.js.map +1 -1
  185. package/bundles/taiga-ui-kit-components-tag.umd.js +11 -5
  186. package/bundles/taiga-ui-kit-components-tag.umd.js.map +1 -1
  187. package/bundles/taiga-ui-kit-components-tag.umd.min.js +1 -1
  188. package/bundles/taiga-ui-kit-components-tag.umd.min.js.map +1 -1
  189. package/bundles/taiga-ui-kit-components-text-area.umd.js +8 -6
  190. package/bundles/taiga-ui-kit-components-text-area.umd.js.map +1 -1
  191. package/bundles/taiga-ui-kit-components-text-area.umd.min.js +1 -1
  192. package/bundles/taiga-ui-kit-components-text-area.umd.min.js.map +1 -1
  193. package/bundles/taiga-ui-kit-components-toggle.umd.js +7 -2
  194. package/bundles/taiga-ui-kit-components-toggle.umd.js.map +1 -1
  195. package/bundles/taiga-ui-kit-components-toggle.umd.min.js +1 -1
  196. package/bundles/taiga-ui-kit-components-toggle.umd.min.js.map +1 -1
  197. package/bundles/taiga-ui-kit-components.umd.js +12 -4
  198. package/bundles/taiga-ui-kit-components.umd.js.map +1 -1
  199. package/bundles/taiga-ui-kit-components.umd.min.js +1 -1
  200. package/bundles/taiga-ui-kit-constants.umd.js +8 -0
  201. package/bundles/taiga-ui-kit-constants.umd.js.map +1 -1
  202. package/bundles/taiga-ui-kit-constants.umd.min.js +1 -1
  203. package/bundles/taiga-ui-kit-constants.umd.min.js.map +1 -1
  204. package/bundles/taiga-ui-kit-pipes-field-error.umd.js +389 -0
  205. package/bundles/taiga-ui-kit-pipes-field-error.umd.js.map +1 -0
  206. package/bundles/taiga-ui-kit-pipes-field-error.umd.min.js +16 -0
  207. package/bundles/taiga-ui-kit-pipes-field-error.umd.min.js.map +1 -0
  208. package/bundles/taiga-ui-kit-pipes.umd.js +12 -4
  209. package/bundles/taiga-ui-kit-pipes.umd.js.map +1 -1
  210. package/bundles/taiga-ui-kit-pipes.umd.min.js +1 -1
  211. package/bundles/taiga-ui-kit-providers.umd.js +6 -5
  212. package/bundles/taiga-ui-kit-providers.umd.js.map +1 -1
  213. package/bundles/taiga-ui-kit-providers.umd.min.js +1 -1
  214. package/bundles/taiga-ui-kit-providers.umd.min.js.map +1 -1
  215. package/bundles/taiga-ui-kit-tokens.umd.js +246 -4
  216. package/bundles/taiga-ui-kit-tokens.umd.js.map +1 -1
  217. package/bundles/taiga-ui-kit-tokens.umd.min.js +15 -1
  218. package/bundles/taiga-ui-kit-tokens.umd.min.js.map +1 -1
  219. package/bundles/taiga-ui-kit-utils-mask.umd.js +17 -8
  220. package/bundles/taiga-ui-kit-utils-mask.umd.js.map +1 -1
  221. package/bundles/taiga-ui-kit-utils-mask.umd.min.js +1 -1
  222. package/bundles/taiga-ui-kit-utils-mask.umd.min.js.map +1 -1
  223. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.js +241 -6
  224. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.js.map +1 -1
  225. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.min.js +15 -1
  226. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.min.js.map +1 -1
  227. package/components/accordion/taiga-ui-kit-components-accordion.metadata.json +1 -1
  228. package/components/arrow/arrow-options.d.ts +18 -0
  229. package/components/arrow/arrow.component.d.ts +5 -3
  230. package/components/arrow/index.d.ts +1 -0
  231. package/components/arrow/taiga-ui-kit-components-arrow.metadata.json +1 -1
  232. package/components/avatar/taiga-ui-kit-components-avatar.metadata.json +1 -1
  233. package/components/badge/taiga-ui-kit-components-badge.metadata.json +1 -1
  234. package/components/badged-content/taiga-ui-kit-components-badged-content.metadata.json +1 -1
  235. package/components/breadcrumbs/taiga-ui-kit-components-breadcrumbs.metadata.json +1 -1
  236. package/components/calendar-month/taiga-ui-kit-components-calendar-month.metadata.json +1 -1
  237. package/components/carousel/carousel-buttons.directive.d.ts +2 -2
  238. package/components/carousel/taiga-ui-kit-components-carousel.metadata.json +1 -1
  239. package/components/checkbox/checkbox.component.d.ts +2 -2
  240. package/components/checkbox/taiga-ui-kit-components-checkbox.metadata.json +1 -1
  241. package/components/checkbox-block/taiga-ui-kit-components-checkbox-block.metadata.json +1 -1
  242. package/components/checkbox-labeled/taiga-ui-kit-components-checkbox-labeled.metadata.json +1 -1
  243. package/components/combo-box/combo-box-strict.directive.d.ts +7 -0
  244. package/components/combo-box/combo-box.component.d.ts +11 -8
  245. package/components/combo-box/combo-box.directive.d.ts +6 -0
  246. package/components/combo-box/combo-box.providers.d.ts +2 -0
  247. package/components/combo-box/index.d.ts +3 -0
  248. package/components/combo-box/taiga-ui-kit-components-combo-box.metadata.json +1 -1
  249. package/components/data-list-wrapper/data-list-wrapper.component.d.ts +5 -3
  250. package/components/data-list-wrapper/taiga-ui-kit-components-data-list-wrapper.metadata.json +1 -1
  251. package/components/field-error/field-error.component.d.ts +1 -2
  252. package/components/field-error/field-error.module.d.ts +3 -0
  253. package/components/field-error/taiga-ui-kit-components-field-error.metadata.json +1 -1
  254. package/components/filter/taiga-ui-kit-components-filter.metadata.json +1 -1
  255. package/components/index.d.ts +1 -0
  256. package/components/input/index.d.ts +1 -0
  257. package/components/input/input.directive.d.ts +5 -0
  258. package/components/input/taiga-ui-kit-components-input.metadata.json +1 -1
  259. package/components/input-copy/index.d.ts +2 -0
  260. package/components/input-copy/input-copy.directive.d.ts +5 -0
  261. package/components/input-copy/input-copy.providers.d.ts +2 -0
  262. package/components/input-copy/taiga-ui-kit-components-input-copy.metadata.json +1 -1
  263. package/components/input-count/index.d.ts +1 -0
  264. package/components/input-count/input-count-options.d.ts +10 -4
  265. package/components/input-count/input-count.component.d.ts +3 -3
  266. package/components/input-count/input-count.directive.d.ts +6 -0
  267. package/components/input-count/taiga-ui-kit-components-input-count.metadata.json +1 -1
  268. package/components/input-date/index.d.ts +2 -0
  269. package/components/input-date/input-date.component.d.ts +3 -4
  270. package/components/input-date/input-date.directive.d.ts +7 -0
  271. package/components/input-date/input-date.providers.d.ts +4 -0
  272. package/components/input-date/taiga-ui-kit-components-input-date.metadata.json +1 -1
  273. package/components/input-date-range/index.d.ts +2 -0
  274. package/components/input-date-range/input-date-range.component.d.ts +3 -4
  275. package/components/input-date-range/input-date-range.directive.d.ts +7 -0
  276. package/components/input-date-range/input-date-range.providers.d.ts +4 -0
  277. package/components/input-date-range/taiga-ui-kit-components-input-date-range.metadata.json +1 -1
  278. package/components/input-date-time/index.d.ts +2 -0
  279. package/components/input-date-time/input-date-time.component.d.ts +3 -5
  280. package/components/input-date-time/input-date-time.directive.d.ts +7 -0
  281. package/components/input-date-time/input-date-time.providers.d.ts +4 -0
  282. package/components/input-date-time/taiga-ui-kit-components-input-date-time.metadata.json +1 -1
  283. package/components/input-file/input-file.component.d.ts +0 -1
  284. package/components/input-file/taiga-ui-kit-components-input-file.metadata.json +1 -1
  285. package/components/input-inline/input-inline.component.d.ts +0 -1
  286. package/components/input-inline/taiga-ui-kit-components-input-inline.metadata.json +1 -1
  287. package/components/input-month/index.d.ts +1 -0
  288. package/components/input-month/input-month.component.d.ts +2 -3
  289. package/components/input-month/input-month.directive.d.ts +7 -0
  290. package/components/input-month/taiga-ui-kit-components-input-month.metadata.json +1 -1
  291. package/components/input-month-range/index.d.ts +1 -0
  292. package/components/input-month-range/input-month-range.component.d.ts +2 -3
  293. package/components/input-month-range/input-month-range.directive.d.ts +7 -0
  294. package/components/input-month-range/taiga-ui-kit-components-input-month-range.metadata.json +1 -1
  295. package/components/input-number/index.d.ts +1 -0
  296. package/components/input-number/input-number.component.d.ts +1 -1
  297. package/components/input-number/input-number.directive.d.ts +7 -0
  298. package/components/input-number/taiga-ui-kit-components-input-number.metadata.json +1 -1
  299. package/components/input-password/index.d.ts +1 -0
  300. package/components/input-password/input-password-options.d.ts +10 -4
  301. package/components/input-password/input-password.component.d.ts +3 -4
  302. package/components/input-password/input-password.directive.d.ts +8 -0
  303. package/components/input-password/taiga-ui-kit-components-input-password.metadata.json +1 -1
  304. package/components/input-phone/index.d.ts +1 -0
  305. package/components/input-phone/input-phone.component.d.ts +1 -1
  306. package/components/input-phone/input-phone.directive.d.ts +7 -0
  307. package/components/input-phone/taiga-ui-kit-components-input-phone.metadata.json +1 -1
  308. package/components/input-phone-international/const/countries.d.ts +15 -7
  309. package/components/input-phone-international/index.d.ts +2 -0
  310. package/components/input-phone-international/input-phone-international.component.d.ts +4 -3
  311. package/components/input-phone-international/taiga-ui-kit-components-input-phone-international.metadata.json +1 -1
  312. package/components/input-phone-international/tokens/countries-masks.d.ts +3 -0
  313. package/components/input-phone-international/utils/extract-value-from-event.d.ts +1 -0
  314. package/components/input-range/input-range.component.d.ts +2 -1
  315. package/components/input-range/taiga-ui-kit-components-input-range.metadata.json +1 -1
  316. package/components/input-slider/input-slider.component.d.ts +2 -1
  317. package/components/input-slider/taiga-ui-kit-components-input-slider.metadata.json +1 -1
  318. package/components/input-tag/index.d.ts +1 -0
  319. package/components/input-tag/input-tag-options.d.ts +7 -0
  320. package/components/input-tag/input-tag.component.d.ts +6 -2
  321. package/components/input-tag/taiga-ui-kit-components-input-tag.metadata.json +1 -1
  322. package/components/input-time/input-time-options.d.ts +13 -4
  323. package/components/input-time/input-time.component.d.ts +9 -10
  324. package/components/input-time/taiga-ui-kit-components-input-time.metadata.json +1 -1
  325. package/components/marker-icon/taiga-ui-kit-components-marker-icon.metadata.json +1 -1
  326. package/components/multi-select/index.d.ts +1 -0
  327. package/components/multi-select/multi-select-options.d.ts +10 -0
  328. package/components/multi-select/multi-select.component.d.ts +14 -8
  329. package/components/multi-select/taiga-ui-kit-components-multi-select.metadata.json +1 -1
  330. package/components/radio/radio-options.d.ts +10 -4
  331. package/components/radio/radio.component.d.ts +2 -2
  332. package/components/radio/taiga-ui-kit-components-radio.metadata.json +1 -1
  333. package/components/radio-block/taiga-ui-kit-components-radio-block.metadata.json +1 -1
  334. package/components/radio-labeled/taiga-ui-kit-components-radio-labeled.metadata.json +1 -1
  335. package/components/radio-list/taiga-ui-kit-components-radio-list.metadata.json +1 -1
  336. package/components/range/taiga-ui-kit-components-range.metadata.json +1 -1
  337. package/components/rating/index.d.ts +3 -0
  338. package/components/rating/package.json +13 -0
  339. package/components/rating/rating-options.d.ts +10 -0
  340. package/components/rating/rating.component.d.ts +21 -0
  341. package/components/rating/rating.module.d.ts +2 -0
  342. package/components/rating/taiga-ui-kit-components-rating.d.ts +4 -0
  343. package/components/rating/taiga-ui-kit-components-rating.metadata.json +1 -0
  344. package/components/select/index.d.ts +3 -0
  345. package/components/select/select-options.d.ts +9 -0
  346. package/components/select/select.component.d.ts +11 -6
  347. package/components/select/select.directive.d.ts +7 -0
  348. package/components/select/select.providers.d.ts +2 -0
  349. package/components/select/taiga-ui-kit-components-select.metadata.json +1 -1
  350. package/components/slider/index.d.ts +1 -0
  351. package/components/slider/slider-old.component.d.ts +19 -0
  352. package/components/slider/slider.component.d.ts +16 -13
  353. package/components/slider/taiga-ui-kit-components-slider.metadata.json +1 -1
  354. package/components/stepper/taiga-ui-kit-components-stepper.metadata.json +1 -1
  355. package/components/tabs/taiga-ui-kit-components-tabs.metadata.json +1 -1
  356. package/components/tag/tag.component.d.ts +1 -0
  357. package/components/tag/taiga-ui-kit-components-tag.metadata.json +1 -1
  358. package/components/taiga-ui-kit-components.metadata.json +1 -1
  359. package/components/text-area/taiga-ui-kit-components-text-area.metadata.json +1 -1
  360. package/components/toggle/taiga-ui-kit-components-toggle.metadata.json +1 -1
  361. package/components/toggle/toggle-options.d.ts +10 -4
  362. package/components/toggle/toggle.component.d.ts +3 -3
  363. package/constants/index.d.ts +1 -0
  364. package/constants/max-time-values.d.ts +2 -0
  365. package/constants/taiga-ui-kit-constants.metadata.json +1 -1
  366. package/esm2015/abstract/input-slider.js +4 -2
  367. package/esm2015/abstract/slider/slider.js +2 -2
  368. package/esm2015/components/accordion/accordion-item/accordion-item.component.js +3 -3
  369. package/esm2015/components/accordion/accordion.component.js +3 -3
  370. package/esm2015/components/arrow/arrow-options.js +28 -0
  371. package/esm2015/components/arrow/arrow.component.js +12 -8
  372. package/esm2015/components/arrow/arrow.module.js +3 -2
  373. package/esm2015/components/arrow/index.js +2 -1
  374. package/esm2015/components/avatar/avatar.component.js +3 -3
  375. package/esm2015/components/badge/badge.component.js +3 -3
  376. package/esm2015/components/badged-content/badged-content.component.js +3 -3
  377. package/esm2015/components/breadcrumbs/breadcrumbs.component.js +3 -3
  378. package/esm2015/components/calendar-month/calendar-month.component.js +5 -2
  379. package/esm2015/components/carousel/carousel-buttons.directive.js +1 -1
  380. package/esm2015/components/carousel/carousel-scroll.directive.js +5 -4
  381. package/esm2015/components/carousel/carousel.component.js +1 -1
  382. package/esm2015/components/checkbox/checkbox.component.js +4 -4
  383. package/esm2015/components/checkbox-block/checkbox-block.component.js +3 -3
  384. package/esm2015/components/checkbox-labeled/checkbox-labeled.component.js +3 -3
  385. package/esm2015/components/combo-box/combo-box-strict.directive.js +31 -0
  386. package/esm2015/components/combo-box/combo-box.component.js +41 -55
  387. package/esm2015/components/combo-box/combo-box.directive.js +25 -0
  388. package/esm2015/components/combo-box/combo-box.module.js +15 -4
  389. package/esm2015/components/combo-box/combo-box.providers.js +28 -0
  390. package/esm2015/components/combo-box/index.js +4 -1
  391. package/esm2015/components/data-list-wrapper/data-list-wrapper.component.js +17 -11
  392. package/esm2015/components/field-error/field-error.component.js +8 -12
  393. package/esm2015/components/field-error/field-error.module.js +6 -2
  394. package/esm2015/components/filter/filter.component.js +3 -3
  395. package/esm2015/components/index.js +2 -1
  396. package/esm2015/components/input/index.js +2 -1
  397. package/esm2015/components/input/input.component.js +3 -3
  398. package/esm2015/components/input/input.directive.js +22 -0
  399. package/esm2015/components/input/input.module.js +5 -4
  400. package/esm2015/components/input/input.providers.js +6 -2
  401. package/esm2015/components/input-copy/index.js +3 -1
  402. package/esm2015/components/input-copy/input-copy.component.js +8 -15
  403. package/esm2015/components/input-copy/input-copy.directive.js +22 -0
  404. package/esm2015/components/input-copy/input-copy.module.js +5 -4
  405. package/esm2015/components/input-copy/input-copy.providers.js +16 -0
  406. package/esm2015/components/input-count/index.js +2 -1
  407. package/esm2015/components/input-count/input-count-options.js +5 -1
  408. package/esm2015/components/input-count/input-count.component.js +10 -10
  409. package/esm2015/components/input-count/input-count.directive.js +26 -0
  410. package/esm2015/components/input-count/input-count.module.js +5 -4
  411. package/esm2015/components/input-date/index.js +3 -1
  412. package/esm2015/components/input-date/input-date.component.js +19 -29
  413. package/esm2015/components/input-date/input-date.directive.js +28 -0
  414. package/esm2015/components/input-date/input-date.module.js +5 -4
  415. package/esm2015/components/input-date/input-date.providers.js +29 -0
  416. package/esm2015/components/input-date-range/index.js +3 -1
  417. package/esm2015/components/input-date-range/input-date-range.component.js +19 -29
  418. package/esm2015/components/input-date-range/input-date-range.directive.js +28 -0
  419. package/esm2015/components/input-date-range/input-date-range.module.js +9 -4
  420. package/esm2015/components/input-date-range/input-date-range.providers.js +29 -0
  421. package/esm2015/components/input-date-time/index.js +3 -1
  422. package/esm2015/components/input-date-time/input-date-time.component.js +19 -33
  423. package/esm2015/components/input-date-time/input-date-time.directive.js +28 -0
  424. package/esm2015/components/input-date-time/input-date-time.module.js +9 -4
  425. package/esm2015/components/input-date-time/input-date-time.providers.js +29 -0
  426. package/esm2015/components/input-file/input-file.component.js +2 -5
  427. package/esm2015/components/input-inline/input-inline.component.js +4 -13
  428. package/esm2015/components/input-month/index.js +2 -1
  429. package/esm2015/components/input-month/input-month.component.js +7 -6
  430. package/esm2015/components/input-month/input-month.directive.js +30 -0
  431. package/esm2015/components/input-month/input-month.module.js +5 -4
  432. package/esm2015/components/input-month-range/index.js +2 -1
  433. package/esm2015/components/input-month-range/input-month-range.component.js +7 -6
  434. package/esm2015/components/input-month-range/input-month-range.directive.js +30 -0
  435. package/esm2015/components/input-month-range/input-month-range.module.js +9 -4
  436. package/esm2015/components/input-number/index.js +2 -1
  437. package/esm2015/components/input-number/input-number.component.js +16 -10
  438. package/esm2015/components/input-number/input-number.directive.js +29 -0
  439. package/esm2015/components/input-number/input-number.module.js +5 -4
  440. package/esm2015/components/input-password/index.js +2 -1
  441. package/esm2015/components/input-password/input-password-options.js +5 -1
  442. package/esm2015/components/input-password/input-password.component.js +8 -7
  443. package/esm2015/components/input-password/input-password.directive.js +30 -0
  444. package/esm2015/components/input-password/input-password.module.js +9 -4
  445. package/esm2015/components/input-phone/index.js +2 -1
  446. package/esm2015/components/input-phone/input-phone.component.js +14 -25
  447. package/esm2015/components/input-phone/input-phone.directive.js +29 -0
  448. package/esm2015/components/input-phone/input-phone.module.js +5 -4
  449. package/esm2015/components/input-phone/input-phone.providers.js +17 -3
  450. package/esm2015/components/input-phone-international/const/countries.js +14 -5
  451. package/esm2015/components/input-phone-international/index.js +3 -1
  452. package/esm2015/components/input-phone-international/input-phone-international.component.js +24 -22
  453. package/esm2015/components/input-phone-international/tokens/countries-masks.js +6 -0
  454. package/esm2015/components/input-phone-international/utils/extract-value-from-event.js +9 -0
  455. package/esm2015/components/input-range/input-range.component.js +10 -7
  456. package/esm2015/components/input-slider/input-slider.component.js +10 -7
  457. package/esm2015/components/input-tag/index.js +2 -1
  458. package/esm2015/components/input-tag/input-tag-options.js +9 -0
  459. package/esm2015/components/input-tag/input-tag.component.js +31 -15
  460. package/esm2015/components/input-time/input-time-options.js +8 -1
  461. package/esm2015/components/input-time/input-time.component.js +10 -8
  462. package/esm2015/components/marker-icon/marker-icon.component.js +3 -3
  463. package/esm2015/components/multi-select/index.js +2 -1
  464. package/esm2015/components/multi-select/multi-select-options.js +13 -0
  465. package/esm2015/components/multi-select/multi-select.component.js +31 -17
  466. package/esm2015/components/multi-select/multi-select.module.js +3 -1
  467. package/esm2015/components/radio/radio-options.js +5 -1
  468. package/esm2015/components/radio/radio.component.js +3 -3
  469. package/esm2015/components/radio-block/radio-block.component.js +3 -3
  470. package/esm2015/components/radio-labeled/radio-labeled.component.js +3 -3
  471. package/esm2015/components/radio-list/radio-list.component.js +3 -3
  472. package/esm2015/components/range/range.component.js +1 -1
  473. package/esm2015/components/rating/index.js +4 -0
  474. package/esm2015/components/rating/rating-options.js +15 -0
  475. package/esm2015/components/rating/rating.component.js +91 -0
  476. package/esm2015/components/rating/rating.module.js +23 -0
  477. package/esm2015/components/rating/taiga-ui-kit-components-rating.js +5 -0
  478. package/esm2015/components/select/index.js +4 -1
  479. package/esm2015/components/select/select-options.js +12 -0
  480. package/esm2015/components/select/select.component.js +36 -42
  481. package/esm2015/components/select/select.directive.js +28 -0
  482. package/esm2015/components/select/select.module.js +5 -4
  483. package/esm2015/components/select/select.providers.js +28 -0
  484. package/esm2015/components/slider/index.js +2 -1
  485. package/esm2015/components/slider/slider-old.component.js +71 -0
  486. package/esm2015/components/slider/slider.component.js +66 -46
  487. package/esm2015/components/slider/slider.module.js +4 -3
  488. package/esm2015/components/stepper/step/step.component.js +3 -3
  489. package/esm2015/components/tabs/tab/tab.providers.js +3 -3
  490. package/esm2015/components/tag/tag.component.js +12 -6
  491. package/esm2015/components/text-area/text-area.component.js +9 -6
  492. package/esm2015/components/text-area/text-area.module.js +2 -3
  493. package/esm2015/components/toggle/toggle-options.js +5 -1
  494. package/esm2015/components/toggle/toggle.component.js +3 -3
  495. package/esm2015/constants/index.js +2 -1
  496. package/esm2015/constants/max-time-values.js +7 -0
  497. package/esm2015/pipes/field-error/field-error-pipe.js +120 -0
  498. package/esm2015/pipes/field-error/field-error.module.js +13 -0
  499. package/esm2015/pipes/field-error/index.js +3 -0
  500. package/esm2015/pipes/field-error/taiga-ui-kit-pipes-field-error.js +5 -0
  501. package/esm2015/pipes/index.js +2 -1
  502. package/esm2015/providers/value-accessor.provider.js +3 -2
  503. package/esm2015/tokens/date-inputs-value-transformers.js +5 -0
  504. package/esm2015/tokens/index.js +3 -1
  505. package/esm2015/tokens/items-handlers.js +15 -0
  506. package/esm2015/types/index.js +1 -1
  507. package/esm2015/types/time-format-parts.js +1 -0
  508. package/esm2015/utils/mask/create-auto-corrected-time-pipe.js +7 -6
  509. package/esm2015/utils/mask/create-time-mask.js +16 -8
  510. package/esm2015/utils/miscellaneous/get-precision.js +8 -0
  511. package/esm2015/utils/miscellaneous/index.js +2 -1
  512. package/esm2015/utils/miscellaneous/replay-control-value-changes-factory.js +10 -4
  513. package/esm5/abstract/input-slider.js +4 -2
  514. package/esm5/abstract/slider/slider.js +2 -2
  515. package/esm5/components/accordion/accordion-item/accordion-item.component.js +3 -3
  516. package/esm5/components/accordion/accordion.component.js +3 -3
  517. package/esm5/components/arrow/arrow-options.js +29 -0
  518. package/esm5/components/arrow/arrow.component.js +12 -8
  519. package/esm5/components/arrow/arrow.module.js +3 -2
  520. package/esm5/components/arrow/index.js +2 -1
  521. package/esm5/components/avatar/avatar.component.js +3 -3
  522. package/esm5/components/badge/badge.component.js +3 -3
  523. package/esm5/components/badged-content/badged-content.component.js +3 -3
  524. package/esm5/components/breadcrumbs/breadcrumbs.component.js +3 -3
  525. package/esm5/components/calendar-month/calendar-month.component.js +5 -2
  526. package/esm5/components/carousel/carousel-buttons.directive.js +1 -1
  527. package/esm5/components/carousel/carousel-scroll.directive.js +5 -4
  528. package/esm5/components/carousel/carousel.component.js +1 -1
  529. package/esm5/components/checkbox/checkbox.component.js +4 -4
  530. package/esm5/components/checkbox-block/checkbox-block.component.js +3 -3
  531. package/esm5/components/checkbox-labeled/checkbox-labeled.component.js +3 -3
  532. package/esm5/components/combo-box/combo-box-strict.directive.js +32 -0
  533. package/esm5/components/combo-box/combo-box.component.js +40 -59
  534. package/esm5/components/combo-box/combo-box.directive.js +35 -0
  535. package/esm5/components/combo-box/combo-box.module.js +15 -4
  536. package/esm5/components/combo-box/combo-box.providers.js +28 -0
  537. package/esm5/components/combo-box/index.js +4 -1
  538. package/esm5/components/data-list-wrapper/data-list-wrapper.component.js +18 -11
  539. package/esm5/components/field-error/field-error.component.js +8 -16
  540. package/esm5/components/field-error/field-error.module.js +6 -2
  541. package/esm5/components/filter/filter.component.js +3 -3
  542. package/esm5/components/index.js +2 -1
  543. package/esm5/components/input/index.js +2 -1
  544. package/esm5/components/input/input.component.js +3 -3
  545. package/esm5/components/input/input.directive.js +28 -0
  546. package/esm5/components/input/input.module.js +5 -4
  547. package/esm5/components/input/input.providers.js +6 -2
  548. package/esm5/components/input-copy/index.js +3 -1
  549. package/esm5/components/input-copy/input-copy.component.js +7 -15
  550. package/esm5/components/input-copy/input-copy.directive.js +28 -0
  551. package/esm5/components/input-copy/input-copy.module.js +5 -4
  552. package/esm5/components/input-copy/input-copy.providers.js +16 -0
  553. package/esm5/components/input-count/index.js +2 -1
  554. package/esm5/components/input-count/input-count-options.js +6 -1
  555. package/esm5/components/input-count/input-count.component.js +10 -10
  556. package/esm5/components/input-count/input-count.directive.js +32 -0
  557. package/esm5/components/input-count/input-count.module.js +5 -4
  558. package/esm5/components/input-date/index.js +3 -1
  559. package/esm5/components/input-date/input-date.component.js +18 -29
  560. package/esm5/components/input-date/input-date.directive.js +38 -0
  561. package/esm5/components/input-date/input-date.module.js +5 -4
  562. package/esm5/components/input-date/input-date.providers.js +29 -0
  563. package/esm5/components/input-date-range/index.js +3 -1
  564. package/esm5/components/input-date-range/input-date-range.component.js +18 -29
  565. package/esm5/components/input-date-range/input-date-range.directive.js +38 -0
  566. package/esm5/components/input-date-range/input-date-range.module.js +9 -4
  567. package/esm5/components/input-date-range/input-date-range.providers.js +29 -0
  568. package/esm5/components/input-date-time/index.js +3 -1
  569. package/esm5/components/input-date-time/input-date-time.component.js +18 -37
  570. package/esm5/components/input-date-time/input-date-time.directive.js +38 -0
  571. package/esm5/components/input-date-time/input-date-time.module.js +9 -4
  572. package/esm5/components/input-date-time/input-date-time.providers.js +29 -0
  573. package/esm5/components/input-file/input-file.component.js +2 -9
  574. package/esm5/components/input-inline/input-inline.component.js +4 -17
  575. package/esm5/components/input-month/index.js +2 -1
  576. package/esm5/components/input-month/input-month.component.js +7 -10
  577. package/esm5/components/input-month/input-month.directive.js +44 -0
  578. package/esm5/components/input-month/input-month.module.js +5 -4
  579. package/esm5/components/input-month-range/index.js +2 -1
  580. package/esm5/components/input-month-range/input-month-range.component.js +7 -10
  581. package/esm5/components/input-month-range/input-month-range.directive.js +44 -0
  582. package/esm5/components/input-month-range/input-month-range.module.js +9 -4
  583. package/esm5/components/input-number/index.js +2 -1
  584. package/esm5/components/input-number/input-number.component.js +16 -10
  585. package/esm5/components/input-number/input-number.directive.js +39 -0
  586. package/esm5/components/input-number/input-number.module.js +5 -4
  587. package/esm5/components/input-password/index.js +2 -1
  588. package/esm5/components/input-password/input-password-options.js +6 -1
  589. package/esm5/components/input-password/input-password.component.js +8 -11
  590. package/esm5/components/input-password/input-password.directive.js +36 -0
  591. package/esm5/components/input-password/input-password.module.js +9 -4
  592. package/esm5/components/input-phone/index.js +2 -1
  593. package/esm5/components/input-phone/input-phone.component.js +13 -25
  594. package/esm5/components/input-phone/input-phone.directive.js +39 -0
  595. package/esm5/components/input-phone/input-phone.module.js +5 -4
  596. package/esm5/components/input-phone/input-phone.providers.js +17 -3
  597. package/esm5/components/input-phone-international/const/countries.js +14 -5
  598. package/esm5/components/input-phone-international/index.js +3 -1
  599. package/esm5/components/input-phone-international/input-phone-international.component.js +28 -22
  600. package/esm5/components/input-phone-international/tokens/countries-masks.js +6 -0
  601. package/esm5/components/input-phone-international/utils/extract-value-from-event.js +9 -0
  602. package/esm5/components/input-range/input-range.component.js +10 -7
  603. package/esm5/components/input-slider/input-slider.component.js +10 -7
  604. package/esm5/components/input-tag/index.js +2 -1
  605. package/esm5/components/input-tag/input-tag-options.js +9 -0
  606. package/esm5/components/input-tag/input-tag.component.js +36 -16
  607. package/esm5/components/input-time/input-time-options.js +9 -1
  608. package/esm5/components/input-time/input-time.component.js +10 -12
  609. package/esm5/components/marker-icon/marker-icon.component.js +3 -3
  610. package/esm5/components/multi-select/index.js +2 -1
  611. package/esm5/components/multi-select/multi-select-options.js +14 -0
  612. package/esm5/components/multi-select/multi-select.component.js +35 -21
  613. package/esm5/components/multi-select/multi-select.module.js +3 -1
  614. package/esm5/components/radio/radio-options.js +6 -1
  615. package/esm5/components/radio/radio.component.js +3 -3
  616. package/esm5/components/radio-block/radio-block.component.js +3 -3
  617. package/esm5/components/radio-labeled/radio-labeled.component.js +3 -3
  618. package/esm5/components/radio-list/radio-list.component.js +3 -3
  619. package/esm5/components/range/range.component.js +1 -1
  620. package/esm5/components/rating/index.js +4 -0
  621. package/esm5/components/rating/rating-options.js +16 -0
  622. package/esm5/components/rating/rating.component.js +111 -0
  623. package/esm5/components/rating/rating.module.js +26 -0
  624. package/esm5/components/rating/taiga-ui-kit-components-rating.js +5 -0
  625. package/esm5/components/select/index.js +4 -1
  626. package/esm5/components/select/select-options.js +13 -0
  627. package/esm5/components/select/select.component.js +35 -46
  628. package/esm5/components/select/select.directive.js +42 -0
  629. package/esm5/components/select/select.module.js +5 -4
  630. package/esm5/components/select/select.providers.js +28 -0
  631. package/esm5/components/slider/index.js +2 -1
  632. package/esm5/components/slider/slider-old.component.js +90 -0
  633. package/esm5/components/slider/slider.component.js +83 -53
  634. package/esm5/components/slider/slider.module.js +4 -3
  635. package/esm5/components/stepper/step/step.component.js +3 -3
  636. package/esm5/components/tabs/tab/tab.providers.js +3 -3
  637. package/esm5/components/tag/tag.component.js +12 -6
  638. package/esm5/components/text-area/text-area.component.js +9 -6
  639. package/esm5/components/text-area/text-area.module.js +2 -3
  640. package/esm5/components/toggle/toggle-options.js +6 -1
  641. package/esm5/components/toggle/toggle.component.js +3 -3
  642. package/esm5/constants/index.js +2 -1
  643. package/esm5/constants/max-time-values.js +7 -0
  644. package/esm5/pipes/field-error/field-error-pipe.js +153 -0
  645. package/esm5/pipes/field-error/field-error.module.js +16 -0
  646. package/esm5/pipes/field-error/index.js +3 -0
  647. package/esm5/pipes/field-error/taiga-ui-kit-pipes-field-error.js +5 -0
  648. package/esm5/pipes/index.js +2 -1
  649. package/esm5/providers/value-accessor.provider.js +3 -2
  650. package/esm5/tokens/date-inputs-value-transformers.js +5 -0
  651. package/esm5/tokens/index.js +3 -1
  652. package/esm5/tokens/items-handlers.js +16 -0
  653. package/esm5/types/index.js +1 -1
  654. package/esm5/types/time-format-parts.js +1 -0
  655. package/esm5/utils/mask/create-auto-corrected-time-pipe.js +8 -5
  656. package/esm5/utils/mask/create-time-mask.js +15 -7
  657. package/esm5/utils/miscellaneous/get-precision.js +9 -0
  658. package/esm5/utils/miscellaneous/index.js +2 -1
  659. package/esm5/utils/miscellaneous/replay-control-value-changes-factory.js +12 -4
  660. package/fesm2015/taiga-ui-kit-abstract.js +4 -2
  661. package/fesm2015/taiga-ui-kit-abstract.js.map +1 -1
  662. package/fesm2015/taiga-ui-kit-components-accordion.js +4 -4
  663. package/fesm2015/taiga-ui-kit-components-accordion.js.map +1 -1
  664. package/fesm2015/taiga-ui-kit-components-arrow.js +40 -11
  665. package/fesm2015/taiga-ui-kit-components-arrow.js.map +1 -1
  666. package/fesm2015/taiga-ui-kit-components-avatar.js +2 -2
  667. package/fesm2015/taiga-ui-kit-components-avatar.js.map +1 -1
  668. package/fesm2015/taiga-ui-kit-components-badge.js +2 -2
  669. package/fesm2015/taiga-ui-kit-components-badge.js.map +1 -1
  670. package/fesm2015/taiga-ui-kit-components-badged-content.js +2 -2
  671. package/fesm2015/taiga-ui-kit-components-badged-content.js.map +1 -1
  672. package/fesm2015/taiga-ui-kit-components-breadcrumbs.js +2 -2
  673. package/fesm2015/taiga-ui-kit-components-breadcrumbs.js.map +1 -1
  674. package/fesm2015/taiga-ui-kit-components-calendar-month.js +4 -1
  675. package/fesm2015/taiga-ui-kit-components-calendar-month.js.map +1 -1
  676. package/fesm2015/taiga-ui-kit-components-carousel.js +5 -4
  677. package/fesm2015/taiga-ui-kit-components-carousel.js.map +1 -1
  678. package/fesm2015/taiga-ui-kit-components-checkbox-block.js +2 -2
  679. package/fesm2015/taiga-ui-kit-components-checkbox-block.js.map +1 -1
  680. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js +2 -2
  681. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js.map +1 -1
  682. package/fesm2015/taiga-ui-kit-components-checkbox.js +3 -3
  683. package/fesm2015/taiga-ui-kit-components-checkbox.js.map +1 -1
  684. package/fesm2015/taiga-ui-kit-components-combo-box.js +118 -53
  685. package/fesm2015/taiga-ui-kit-components-combo-box.js.map +1 -1
  686. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js +16 -10
  687. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  688. package/fesm2015/taiga-ui-kit-components-field-error.js +12 -13
  689. package/fesm2015/taiga-ui-kit-components-field-error.js.map +1 -1
  690. package/fesm2015/taiga-ui-kit-components-filter.js +2 -2
  691. package/fesm2015/taiga-ui-kit-components-filter.js.map +1 -1
  692. package/fesm2015/taiga-ui-kit-components-input-copy.js +41 -18
  693. package/fesm2015/taiga-ui-kit-components-input-copy.js.map +1 -1
  694. package/fesm2015/taiga-ui-kit-components-input-count.js +40 -14
  695. package/fesm2015/taiga-ui-kit-components-input-count.js.map +1 -1
  696. package/fesm2015/taiga-ui-kit-components-input-date-range.js +72 -31
  697. package/fesm2015/taiga-ui-kit-components-input-date-range.js.map +1 -1
  698. package/fesm2015/taiga-ui-kit-components-input-date-time.js +72 -35
  699. package/fesm2015/taiga-ui-kit-components-input-date-time.js.map +1 -1
  700. package/fesm2015/taiga-ui-kit-components-input-date.js +68 -31
  701. package/fesm2015/taiga-ui-kit-components-input-date.js.map +1 -1
  702. package/fesm2015/taiga-ui-kit-components-input-file.js +1 -4
  703. package/fesm2015/taiga-ui-kit-components-input-file.js.map +1 -1
  704. package/fesm2015/taiga-ui-kit-components-input-inline.js +3 -12
  705. package/fesm2015/taiga-ui-kit-components-input-inline.js.map +1 -1
  706. package/fesm2015/taiga-ui-kit-components-input-month-range.js +41 -10
  707. package/fesm2015/taiga-ui-kit-components-input-month-range.js.map +1 -1
  708. package/fesm2015/taiga-ui-kit-components-input-month.js +37 -10
  709. package/fesm2015/taiga-ui-kit-components-input-month.js.map +1 -1
  710. package/fesm2015/taiga-ui-kit-components-input-number.js +45 -14
  711. package/fesm2015/taiga-ui-kit-components-input-number.js.map +1 -1
  712. package/fesm2015/taiga-ui-kit-components-input-password.js +45 -10
  713. package/fesm2015/taiga-ui-kit-components-input-password.js.map +1 -1
  714. package/fesm2015/taiga-ui-kit-components-input-phone-international.js +47 -26
  715. package/fesm2015/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  716. package/fesm2015/taiga-ui-kit-components-input-phone.js +53 -27
  717. package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
  718. package/fesm2015/taiga-ui-kit-components-input-range.js +9 -6
  719. package/fesm2015/taiga-ui-kit-components-input-range.js.map +1 -1
  720. package/fesm2015/taiga-ui-kit-components-input-slider.js +9 -6
  721. package/fesm2015/taiga-ui-kit-components-input-slider.js.map +1 -1
  722. package/fesm2015/taiga-ui-kit-components-input-tag.js +39 -16
  723. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  724. package/fesm2015/taiga-ui-kit-components-input-time.js +16 -7
  725. package/fesm2015/taiga-ui-kit-components-input-time.js.map +1 -1
  726. package/fesm2015/taiga-ui-kit-components-input.js +29 -7
  727. package/fesm2015/taiga-ui-kit-components-input.js.map +1 -1
  728. package/fesm2015/taiga-ui-kit-components-marker-icon.js +2 -2
  729. package/fesm2015/taiga-ui-kit-components-marker-icon.js.map +1 -1
  730. package/fesm2015/taiga-ui-kit-components-multi-select.js +44 -18
  731. package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
  732. package/fesm2015/taiga-ui-kit-components-radio-block.js +2 -2
  733. package/fesm2015/taiga-ui-kit-components-radio-block.js.map +1 -1
  734. package/fesm2015/taiga-ui-kit-components-radio-labeled.js +2 -2
  735. package/fesm2015/taiga-ui-kit-components-radio-labeled.js.map +1 -1
  736. package/fesm2015/taiga-ui-kit-components-radio-list.js +2 -2
  737. package/fesm2015/taiga-ui-kit-components-radio-list.js.map +1 -1
  738. package/fesm2015/taiga-ui-kit-components-radio.js +7 -3
  739. package/fesm2015/taiga-ui-kit-components-radio.js.map +1 -1
  740. package/fesm2015/taiga-ui-kit-components-range.js +1 -1
  741. package/fesm2015/taiga-ui-kit-components-rating.js +127 -0
  742. package/fesm2015/taiga-ui-kit-components-rating.js.map +1 -0
  743. package/fesm2015/taiga-ui-kit-components-select.js +91 -40
  744. package/fesm2015/taiga-ui-kit-components-select.js.map +1 -1
  745. package/fesm2015/taiga-ui-kit-components-slider.js +100 -14
  746. package/fesm2015/taiga-ui-kit-components-slider.js.map +1 -1
  747. package/fesm2015/taiga-ui-kit-components-stepper.js +2 -2
  748. package/fesm2015/taiga-ui-kit-components-stepper.js.map +1 -1
  749. package/fesm2015/taiga-ui-kit-components-tabs.js +2 -2
  750. package/fesm2015/taiga-ui-kit-components-tabs.js.map +1 -1
  751. package/fesm2015/taiga-ui-kit-components-tag.js +11 -5
  752. package/fesm2015/taiga-ui-kit-components-tag.js.map +1 -1
  753. package/fesm2015/taiga-ui-kit-components-text-area.js +9 -7
  754. package/fesm2015/taiga-ui-kit-components-text-area.js.map +1 -1
  755. package/fesm2015/taiga-ui-kit-components-toggle.js +7 -3
  756. package/fesm2015/taiga-ui-kit-components-toggle.js.map +1 -1
  757. package/fesm2015/taiga-ui-kit-components.js +1 -0
  758. package/fesm2015/taiga-ui-kit-components.js.map +1 -1
  759. package/fesm2015/taiga-ui-kit-constants.js +8 -1
  760. package/fesm2015/taiga-ui-kit-constants.js.map +1 -1
  761. package/fesm2015/taiga-ui-kit-pipes-field-error.js +135 -0
  762. package/fesm2015/taiga-ui-kit-pipes-field-error.js.map +1 -0
  763. package/fesm2015/taiga-ui-kit-pipes.js +1 -0
  764. package/fesm2015/taiga-ui-kit-pipes.js.map +1 -1
  765. package/fesm2015/taiga-ui-kit-providers.js +2 -1
  766. package/fesm2015/taiga-ui-kit-providers.js.map +1 -1
  767. package/fesm2015/taiga-ui-kit-tokens.js +19 -1
  768. package/fesm2015/taiga-ui-kit-tokens.js.map +1 -1
  769. package/fesm2015/taiga-ui-kit-utils-mask.js +20 -12
  770. package/fesm2015/taiga-ui-kit-utils-mask.js.map +1 -1
  771. package/fesm2015/taiga-ui-kit-utils-miscellaneous.js +17 -3
  772. package/fesm2015/taiga-ui-kit-utils-miscellaneous.js.map +1 -1
  773. package/fesm5/taiga-ui-kit-abstract.js +4 -2
  774. package/fesm5/taiga-ui-kit-abstract.js.map +1 -1
  775. package/fesm5/taiga-ui-kit-components-accordion.js +4 -4
  776. package/fesm5/taiga-ui-kit-components-accordion.js.map +1 -1
  777. package/fesm5/taiga-ui-kit-components-arrow.js +41 -12
  778. package/fesm5/taiga-ui-kit-components-arrow.js.map +1 -1
  779. package/fesm5/taiga-ui-kit-components-avatar.js +2 -2
  780. package/fesm5/taiga-ui-kit-components-avatar.js.map +1 -1
  781. package/fesm5/taiga-ui-kit-components-badge.js +2 -2
  782. package/fesm5/taiga-ui-kit-components-badge.js.map +1 -1
  783. package/fesm5/taiga-ui-kit-components-badged-content.js +2 -2
  784. package/fesm5/taiga-ui-kit-components-badged-content.js.map +1 -1
  785. package/fesm5/taiga-ui-kit-components-breadcrumbs.js +2 -2
  786. package/fesm5/taiga-ui-kit-components-breadcrumbs.js.map +1 -1
  787. package/fesm5/taiga-ui-kit-components-calendar-month.js +4 -1
  788. package/fesm5/taiga-ui-kit-components-calendar-month.js.map +1 -1
  789. package/fesm5/taiga-ui-kit-components-carousel.js +5 -4
  790. package/fesm5/taiga-ui-kit-components-carousel.js.map +1 -1
  791. package/fesm5/taiga-ui-kit-components-checkbox-block.js +2 -2
  792. package/fesm5/taiga-ui-kit-components-checkbox-block.js.map +1 -1
  793. package/fesm5/taiga-ui-kit-components-checkbox-labeled.js +2 -2
  794. package/fesm5/taiga-ui-kit-components-checkbox-labeled.js.map +1 -1
  795. package/fesm5/taiga-ui-kit-components-checkbox.js +3 -3
  796. package/fesm5/taiga-ui-kit-components-checkbox.js.map +1 -1
  797. package/fesm5/taiga-ui-kit-components-combo-box.js +128 -57
  798. package/fesm5/taiga-ui-kit-components-combo-box.js.map +1 -1
  799. package/fesm5/taiga-ui-kit-components-data-list-wrapper.js +17 -10
  800. package/fesm5/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  801. package/fesm5/taiga-ui-kit-components-field-error.js +12 -17
  802. package/fesm5/taiga-ui-kit-components-field-error.js.map +1 -1
  803. package/fesm5/taiga-ui-kit-components-filter.js +2 -2
  804. package/fesm5/taiga-ui-kit-components-filter.js.map +1 -1
  805. package/fesm5/taiga-ui-kit-components-input-copy.js +46 -18
  806. package/fesm5/taiga-ui-kit-components-input-copy.js.map +1 -1
  807. package/fesm5/taiga-ui-kit-components-input-count.js +47 -15
  808. package/fesm5/taiga-ui-kit-components-input-count.js.map +1 -1
  809. package/fesm5/taiga-ui-kit-components-input-date-range.js +81 -31
  810. package/fesm5/taiga-ui-kit-components-input-date-range.js.map +1 -1
  811. package/fesm5/taiga-ui-kit-components-input-date-time.js +81 -39
  812. package/fesm5/taiga-ui-kit-components-input-date-time.js.map +1 -1
  813. package/fesm5/taiga-ui-kit-components-input-date.js +77 -31
  814. package/fesm5/taiga-ui-kit-components-input-date.js.map +1 -1
  815. package/fesm5/taiga-ui-kit-components-input-file.js +1 -8
  816. package/fesm5/taiga-ui-kit-components-input-file.js.map +1 -1
  817. package/fesm5/taiga-ui-kit-components-input-inline.js +3 -16
  818. package/fesm5/taiga-ui-kit-components-input-inline.js.map +1 -1
  819. package/fesm5/taiga-ui-kit-components-input-month-range.js +55 -14
  820. package/fesm5/taiga-ui-kit-components-input-month-range.js.map +1 -1
  821. package/fesm5/taiga-ui-kit-components-input-month.js +51 -14
  822. package/fesm5/taiga-ui-kit-components-input-month.js.map +1 -1
  823. package/fesm5/taiga-ui-kit-components-input-number.js +55 -14
  824. package/fesm5/taiga-ui-kit-components-input-number.js.map +1 -1
  825. package/fesm5/taiga-ui-kit-components-input-password.js +52 -15
  826. package/fesm5/taiga-ui-kit-components-input-password.js.map +1 -1
  827. package/fesm5/taiga-ui-kit-components-input-phone-international.js +51 -26
  828. package/fesm5/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  829. package/fesm5/taiga-ui-kit-components-input-phone.js +62 -27
  830. package/fesm5/taiga-ui-kit-components-input-phone.js.map +1 -1
  831. package/fesm5/taiga-ui-kit-components-input-range.js +9 -6
  832. package/fesm5/taiga-ui-kit-components-input-range.js.map +1 -1
  833. package/fesm5/taiga-ui-kit-components-input-slider.js +9 -6
  834. package/fesm5/taiga-ui-kit-components-input-slider.js.map +1 -1
  835. package/fesm5/taiga-ui-kit-components-input-tag.js +44 -17
  836. package/fesm5/taiga-ui-kit-components-input-tag.js.map +1 -1
  837. package/fesm5/taiga-ui-kit-components-input-time.js +17 -12
  838. package/fesm5/taiga-ui-kit-components-input-time.js.map +1 -1
  839. package/fesm5/taiga-ui-kit-components-input.js +36 -8
  840. package/fesm5/taiga-ui-kit-components-input.js.map +1 -1
  841. package/fesm5/taiga-ui-kit-components-marker-icon.js +2 -2
  842. package/fesm5/taiga-ui-kit-components-marker-icon.js.map +1 -1
  843. package/fesm5/taiga-ui-kit-components-multi-select.js +49 -23
  844. package/fesm5/taiga-ui-kit-components-multi-select.js.map +1 -1
  845. package/fesm5/taiga-ui-kit-components-radio-block.js +2 -2
  846. package/fesm5/taiga-ui-kit-components-radio-block.js.map +1 -1
  847. package/fesm5/taiga-ui-kit-components-radio-labeled.js +2 -2
  848. package/fesm5/taiga-ui-kit-components-radio-labeled.js.map +1 -1
  849. package/fesm5/taiga-ui-kit-components-radio-list.js +2 -2
  850. package/fesm5/taiga-ui-kit-components-radio-list.js.map +1 -1
  851. package/fesm5/taiga-ui-kit-components-radio.js +8 -4
  852. package/fesm5/taiga-ui-kit-components-radio.js.map +1 -1
  853. package/fesm5/taiga-ui-kit-components-range.js +1 -1
  854. package/fesm5/taiga-ui-kit-components-rating.js +150 -0
  855. package/fesm5/taiga-ui-kit-components-rating.js.map +1 -0
  856. package/fesm5/taiga-ui-kit-components-select.js +105 -45
  857. package/fesm5/taiga-ui-kit-components-select.js.map +1 -1
  858. package/fesm5/taiga-ui-kit-components-slider.js +141 -26
  859. package/fesm5/taiga-ui-kit-components-slider.js.map +1 -1
  860. package/fesm5/taiga-ui-kit-components-stepper.js +2 -2
  861. package/fesm5/taiga-ui-kit-components-stepper.js.map +1 -1
  862. package/fesm5/taiga-ui-kit-components-tabs.js +2 -2
  863. package/fesm5/taiga-ui-kit-components-tabs.js.map +1 -1
  864. package/fesm5/taiga-ui-kit-components-tag.js +11 -5
  865. package/fesm5/taiga-ui-kit-components-tag.js.map +1 -1
  866. package/fesm5/taiga-ui-kit-components-text-area.js +9 -7
  867. package/fesm5/taiga-ui-kit-components-text-area.js.map +1 -1
  868. package/fesm5/taiga-ui-kit-components-toggle.js +8 -4
  869. package/fesm5/taiga-ui-kit-components-toggle.js.map +1 -1
  870. package/fesm5/taiga-ui-kit-components.js +1 -0
  871. package/fesm5/taiga-ui-kit-components.js.map +1 -1
  872. package/fesm5/taiga-ui-kit-constants.js +8 -1
  873. package/fesm5/taiga-ui-kit-constants.js.map +1 -1
  874. package/fesm5/taiga-ui-kit-pipes-field-error.js +171 -0
  875. package/fesm5/taiga-ui-kit-pipes-field-error.js.map +1 -0
  876. package/fesm5/taiga-ui-kit-pipes.js +1 -0
  877. package/fesm5/taiga-ui-kit-pipes.js.map +1 -1
  878. package/fesm5/taiga-ui-kit-providers.js +2 -1
  879. package/fesm5/taiga-ui-kit-providers.js.map +1 -1
  880. package/fesm5/taiga-ui-kit-tokens.js +20 -1
  881. package/fesm5/taiga-ui-kit-tokens.js.map +1 -1
  882. package/fesm5/taiga-ui-kit-utils-mask.js +19 -10
  883. package/fesm5/taiga-ui-kit-utils-mask.js.map +1 -1
  884. package/fesm5/taiga-ui-kit-utils-miscellaneous.js +20 -3
  885. package/fesm5/taiga-ui-kit-utils-miscellaneous.js.map +1 -1
  886. package/package.json +12 -12
  887. package/pipes/field-error/field-error-pipe.d.ts +29 -0
  888. package/pipes/field-error/field-error.module.d.ts +2 -0
  889. package/pipes/field-error/index.d.ts +2 -0
  890. package/pipes/field-error/package.json +13 -0
  891. package/pipes/field-error/taiga-ui-kit-pipes-field-error.d.ts +4 -0
  892. package/pipes/field-error/taiga-ui-kit-pipes-field-error.metadata.json +1 -0
  893. package/pipes/index.d.ts +1 -0
  894. package/pipes/taiga-ui-kit-pipes.metadata.json +1 -1
  895. package/providers/taiga-ui-kit-providers.metadata.json +1 -1
  896. package/providers/value-accessor.provider.d.ts +1 -1
  897. package/tokens/date-inputs-value-transformers.d.ts +5 -0
  898. package/tokens/index.d.ts +2 -0
  899. package/tokens/items-handlers.d.ts +10 -0
  900. package/tokens/taiga-ui-kit-tokens.metadata.json +1 -1
  901. package/types/index.d.ts +1 -0
  902. package/types/taiga-ui-kit-types.metadata.json +1 -1
  903. package/types/time-format-parts.d.ts +1 -0
  904. package/utils/mask/create-auto-corrected-time-pipe.d.ts +2 -1
  905. package/utils/mask/create-time-mask.d.ts +2 -1
  906. package/utils/mask/taiga-ui-kit-utils-mask.metadata.json +1 -1
  907. package/utils/miscellaneous/get-precision.d.ts +4 -0
  908. package/utils/miscellaneous/index.d.ts +1 -0
  909. package/utils/miscellaneous/replay-control-value-changes-factory.d.ts +3 -2
  910. package/utils/miscellaneous/taiga-ui-kit-utils-miscellaneous.metadata.json +1 -1
@@ -1,22 +1,20 @@
1
1
  import { __decorate, __extends, __param } from "tslib";
2
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, HostListener, Inject, Injector, Input, Optional, Self, Type, ViewChild, } from '@angular/core';
2
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostListener, Inject, Injector, Input, Optional, Self, Type, ViewChild, } from '@angular/core';
3
3
  import { NgControl } from '@angular/forms';
4
- import { AbstractTuiNullableControl, ALWAYS_FALSE_HANDLER, changeDateSeparator, DATE_FILLER_LENGTH, nullableSame, TUI_DATE_FORMAT, TUI_DATE_SEPARATOR, TUI_FIRST_DAY, TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_MOBILE, TUI_LAST_DAY, TuiDay, tuiDefaultProp, TuiMonth, } from '@taiga-ui/cdk';
4
+ import { AbstractTuiNullableControl, ALWAYS_FALSE_HANDLER, changeDateSeparator, DATE_FILLER_LENGTH, nullableSame, TUI_DATE_FORMAT, TUI_DATE_SEPARATOR, TUI_FIRST_DAY, TUI_IS_MOBILE, TUI_LAST_DAY, TuiDay, tuiDefaultProp, TuiMonth, } from '@taiga-ui/cdk';
5
5
  import { sizeBigger, TUI_DEFAULT_MARKER_HANDLER, TUI_TEXTFIELD_SIZE, TuiDialogService, TuiMarkerHandler, TuiPrimitiveTextfieldComponent, TuiTextfieldSizeDirective, TuiTextMaskOptions, TuiWithOptionalMinMax, } from '@taiga-ui/core';
6
6
  import { EMPTY_MASK } from '@taiga-ui/kit/constants';
7
- import { LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER } from '@taiga-ui/kit/providers';
8
- import { TUI_CALENDAR_DATA_STREAM, TUI_DATE_TEXTS, TUI_MOBILE_CALENDAR, } from '@taiga-ui/kit/tokens';
7
+ import { TUI_DATE_TEXTS, TUI_DATE_VALUE_TRANSFORMER, TUI_MOBILE_CALENDAR, } from '@taiga-ui/kit/tokens';
9
8
  import { tuiCreateAutoCorrectedDatePipe, tuiCreateDateMask, } from '@taiga-ui/kit/utils/mask';
10
- import { TuiReplayControlValueChangesFactory } from '@taiga-ui/kit/utils/miscellaneous';
11
9
  import { PolymorpheusComponent } from '@tinkoff/ng-polymorpheus';
12
10
  import { Observable } from 'rxjs';
13
11
  import { map, takeUntil } from 'rxjs/operators';
14
- // TODO: remove in ivy compilation
15
- export var DATE_STREAM_FACTORY = TuiReplayControlValueChangesFactory;
12
+ import { TUI_INPUT_DATE_PROVIDERS } from './input-date.providers';
13
+ // @dynamic
16
14
  var TuiInputDateComponent = /** @class */ (function (_super) {
17
15
  __extends(TuiInputDateComponent, _super);
18
- function TuiInputDateComponent(control, changeDetectorRef, injector, isMobile, dialogService, mobileCalendar, textfieldSize, dateFormat, dateSeparator, dateTexts$) {
19
- var _this = _super.call(this, control, changeDetectorRef) || this;
16
+ function TuiInputDateComponent(control, changeDetectorRef, injector, isMobile, dialogService, mobileCalendar, textfieldSize, dateFormat, dateSeparator, dateTexts$, valueTransformer) {
17
+ var _this = _super.call(this, control, changeDetectorRef, valueTransformer) || this;
20
18
  _this.injector = injector;
21
19
  _this.isMobile = isMobile;
22
20
  _this.dialogService = dialogService;
@@ -25,6 +23,7 @@ var TuiInputDateComponent = /** @class */ (function (_super) {
25
23
  _this.dateFormat = dateFormat;
26
24
  _this.dateSeparator = dateSeparator;
27
25
  _this.dateTexts$ = dateTexts$;
26
+ _this.valueTransformer = valueTransformer;
28
27
  _this.month = null;
29
28
  _this.textMaskOptions = {
30
29
  mask: tuiCreateDateMask(_this.dateFormat, _this.dateSeparator),
@@ -43,7 +42,6 @@ var TuiInputDateComponent = /** @class */ (function (_super) {
43
42
  }));
44
43
  return _this;
45
44
  }
46
- TuiInputDateComponent_1 = TuiInputDateComponent;
47
45
  Object.defineProperty(TuiInputDateComponent.prototype, "nativeFocusableElement", {
48
46
  get: function () {
49
47
  return this.textfield ? this.textfield.nativeFocusableElement : null;
@@ -110,7 +108,7 @@ var TuiInputDateComponent = /** @class */ (function (_super) {
110
108
  });
111
109
  Object.defineProperty(TuiInputDateComponent.prototype, "canOpen", {
112
110
  get: function () {
113
- return !this.computedDisabled && !this.readOnly && !this.computedMobile;
111
+ return this.interactive && !this.computedMobile;
114
112
  },
115
113
  enumerable: true,
116
114
  configurable: true
@@ -198,7 +196,6 @@ var TuiInputDateComponent = /** @class */ (function (_super) {
198
196
  TuiInputDateComponent.prototype.valueIdenticalComparator = function (oldValue, newValue) {
199
197
  return nullableSame(oldValue, newValue, function (a, b) { return a.daySame(b); });
200
198
  };
201
- var TuiInputDateComponent_1;
202
199
  TuiInputDateComponent.ctorParameters = function () { return [
203
200
  { type: NgControl, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [NgControl,] }] },
204
201
  { type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] },
@@ -209,7 +206,8 @@ var TuiInputDateComponent = /** @class */ (function (_super) {
209
206
  { type: TuiTextfieldSizeDirective, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_SIZE,] }] },
210
207
  { type: undefined, decorators: [{ type: Inject, args: [TUI_DATE_FORMAT,] }] },
211
208
  { type: String, decorators: [{ type: Inject, args: [TUI_DATE_SEPARATOR,] }] },
212
- { type: Observable, decorators: [{ type: Inject, args: [TUI_DATE_TEXTS,] }] }
209
+ { type: Observable, decorators: [{ type: Inject, args: [TUI_DATE_TEXTS,] }] },
210
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [TUI_DATE_VALUE_TRANSFORMER,] }] }
213
211
  ]; };
214
212
  __decorate([
215
213
  ViewChild(TuiPrimitiveTextfieldComponent)
@@ -241,23 +239,12 @@ var TuiInputDateComponent = /** @class */ (function (_super) {
241
239
  __decorate([
242
240
  HostListener('click')
243
241
  ], TuiInputDateComponent.prototype, "onClick", null);
244
- TuiInputDateComponent = TuiInputDateComponent_1 = __decorate([
242
+ TuiInputDateComponent = __decorate([
245
243
  Component({
246
244
  selector: 'tui-input-date',
247
- template: "<tui-hosted-dropdown\n class=\"hosted\"\n [canOpen]=\"canOpen\"\n [content]=\"dropdown\"\n [open]=\"open && canOpen\"\n (openChange)=\"onOpenChange($event)\"\n>\n <tui-primitive-textfield\n *tuiLet=\"filler$ | async as filler\"\n automation-id=\"tui-input-date-range__textfield\"\n tuiValueAccessor\n tuiTextfieldInputMode=\"numeric\"\n class=\"textfield\"\n [pseudoFocused]=\"pseudoFocused\"\n [pseudoHovered]=\"pseudoHovered\"\n [invalid]=\"computedInvalid\"\n [filler]=\"getComputedFiller(filler)\"\n [nativeId]=\"nativeId\"\n [readOnly]=\"readOnly\"\n [focusable]=\"computedFocusable\"\n [iconContent]=\"computedMobile ? iconContent : calendarIcon\"\n [disabled]=\"computedDisabled\"\n [textMask]=\"computedMask\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (focusedChange)=\"onFocused($event)\"\n >\n <ng-content></ng-content>\n </tui-primitive-textfield>\n\n <ng-template #iconContent>\n <tui-svg\n automation-id=\"tui-input-date-range__icon\"\n [class.icon]=\"!computedDisabled\"\n [src]=\"calendarIcon\"\n (click)=\"onMobileClick()\"\n ></tui-svg>\n </ng-template>\n\n <ng-template #dropdown=\"polymorpheus\" polymorpheus>\n <tui-calendar\n tuiPreventDefault=\"mousedown\"\n automation-id=\"tui-input-date__calendar\"\n [min]=\"min\"\n [max]=\"max\"\n [markerHandler]=\"markerHandler\"\n [disabledItemHandler]=\"disabledItemHandler\"\n [month]=\"computedActiveYearMonth\"\n [value]=\"value\"\n (dayClick)=\"onDayClick($event)\"\n (monthChange)=\"onMonthChange($event)\"\n ></tui-calendar>\n <div\n *ngIf=\"items.length === 1\"\n tuiPreventDefault=\"mousedown\"\n class=\"button\"\n >\n <button tuiLink type=\"button\" (click)=\"onDayClick(items[0].day)\">\n {{ items[0] }}\n </button>\n </div>\n </ng-template>\n</tui-hosted-dropdown>\n",
245
+ template: "<tui-hosted-dropdown\n class=\"hosted\"\n [canOpen]=\"canOpen\"\n [content]=\"dropdown\"\n [open]=\"open && canOpen\"\n (openChange)=\"onOpenChange($event)\"\n>\n <tui-primitive-textfield\n *tuiLet=\"filler$ | async as filler\"\n automation-id=\"tui-input-date-range__textfield\"\n tuiValueAccessor\n tuiTextfieldInputMode=\"numeric\"\n class=\"textfield\"\n [pseudoFocused]=\"pseudoFocused\"\n [pseudoHovered]=\"pseudoHovered\"\n [invalid]=\"computedInvalid\"\n [filler]=\"getComputedFiller(filler)\"\n [nativeId]=\"nativeId\"\n [readOnly]=\"readOnly\"\n [focusable]=\"computedFocusable\"\n [iconContent]=\"computedMobile ? mobileIconContent : iconContent\"\n [disabled]=\"computedDisabled\"\n [textMask]=\"computedMask\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (focusedChange)=\"onFocused($event)\"\n >\n <ng-content></ng-content>\n <ng-content select=\"input\" ngProjectAs=\"input\"></ng-content>\n </tui-primitive-textfield>\n\n <ng-template #mobileIconContent>\n <tui-svg\n automation-id=\"tui-input-date-range__icon\"\n [class.icon]=\"!computedDisabled\"\n [src]=\"calendarIcon\"\n (click)=\"onMobileClick()\"\n ></tui-svg>\n </ng-template>\n\n <ng-template #iconContent>\n <tui-svg\n [class.icon]=\"!computedDisabled\"\n [src]=\"calendarIcon\"\n ></tui-svg>\n </ng-template>\n\n <ng-template #dropdown=\"polymorpheus\" polymorpheus>\n <tui-calendar\n tuiPreventDefault=\"mousedown\"\n automation-id=\"tui-input-date__calendar\"\n [min]=\"min\"\n [max]=\"max\"\n [markerHandler]=\"markerHandler\"\n [disabledItemHandler]=\"disabledItemHandler\"\n [month]=\"computedActiveYearMonth\"\n [value]=\"value\"\n (dayClick)=\"onDayClick($event)\"\n (monthChange)=\"onMonthChange($event)\"\n ></tui-calendar>\n <div\n *ngIf=\"items.length === 1\"\n tuiPreventDefault=\"mousedown\"\n class=\"button\"\n >\n <button tuiLink type=\"button\" (click)=\"onDayClick(items[0].day)\">\n {{ items[0] }}\n </button>\n </div>\n </ng-template>\n</tui-hosted-dropdown>\n",
248
246
  changeDetection: ChangeDetectionStrategy.OnPush,
249
- providers: [
250
- {
251
- provide: TUI_FOCUSABLE_ITEM_ACCESSOR,
252
- useExisting: forwardRef(function () { return TuiInputDateComponent_1; }),
253
- },
254
- {
255
- provide: TUI_CALENDAR_DATA_STREAM,
256
- deps: [[new Optional(), new Self(), NgControl]],
257
- useFactory: DATE_STREAM_FACTORY,
258
- },
259
- LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER,
260
- ],
247
+ providers: TUI_INPUT_DATE_PROVIDERS,
261
248
  styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:left}.hosted{display:block;border-radius:inherit}.textfield{border-radius:inherit;text-align:inherit}.icon{pointer-events:auto}.button{display:flex;height:2.75rem;justify-content:center;box-shadow:inset 0 1px var(--tui-base-03)}.button button{flex:1;text-align:center}"]
262
249
  }),
263
250
  __param(0, Optional()),
@@ -272,9 +259,11 @@ var TuiInputDateComponent = /** @class */ (function (_super) {
272
259
  __param(6, Inject(TUI_TEXTFIELD_SIZE)),
273
260
  __param(7, Inject(TUI_DATE_FORMAT)),
274
261
  __param(8, Inject(TUI_DATE_SEPARATOR)),
275
- __param(9, Inject(TUI_DATE_TEXTS))
262
+ __param(9, Inject(TUI_DATE_TEXTS)),
263
+ __param(10, Optional()),
264
+ __param(10, Inject(TUI_DATE_VALUE_TRANSFORMER))
276
265
  ], TuiInputDateComponent);
277
266
  return TuiInputDateComponent;
278
267
  }(AbstractTuiNullableControl));
279
268
  export { TuiInputDateComponent };
280
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS8iLCJzb3VyY2VzIjpbImlucHV0LWRhdGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFDTCxRQUFRLEVBQ1IsSUFBSSxFQUNKLElBQUksRUFDSixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCwwQkFBMEIsRUFDMUIsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLDJCQUEyQixFQUMzQixhQUFhLEVBQ2IsWUFBWSxFQUdaLE1BQU0sRUFDTixjQUFjLEVBRWQsUUFBUSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxVQUFVLEVBQ1YsMEJBQTBCLEVBQzFCLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLDhCQUE4QixFQUM5Qix5QkFBeUIsRUFDekIsa0JBQWtCLEVBQ2xCLHFCQUFxQixHQUN4QixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMseUNBQXlDLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNsRixPQUFPLEVBQ0gsd0JBQXdCLEVBQ3hCLGNBQWMsRUFDZCxtQkFBbUIsR0FDdEIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQ0gsOEJBQThCLEVBQzlCLGlCQUFpQixHQUNwQixN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O1FBQ2hCLFdBQUEsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQ3JCLFdBQUEsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUE7UUFDeEIsV0FBQSxRQUFRLEVBQUUsQ0FBQTtRQUNWLFdBQUEsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUE7UUFFM0IsV0FBQSxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUUxQixXQUFBLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQTtRQUN2QixXQUFBLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1FBQzFCLFdBQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFBO09BOURsQixxQkFBcUIsQ0EwTmpDO0lBQUQsNEJBQUM7Q0FBQSxBQTFORCxDQUNZLDBCQUEwQixHQXlOckM7U0ExTlkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGYsXG4gICAgVHlwZSxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2wsXG4gICAgQUxXQVlTX0ZBTFNFX0hBTkRMRVIsXG4gICAgY2hhbmdlRGF0ZVNlcGFyYXRvcixcbiAgICBEQVRFX0ZJTExFUl9MRU5HVEgsXG4gICAgbnVsbGFibGVTYW1lLFxuICAgIFRVSV9EQVRFX0ZPUk1BVCxcbiAgICBUVUlfREFURV9TRVBBUkFUT1IsXG4gICAgVFVJX0ZJUlNUX0RBWSxcbiAgICBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgVFVJX0lTX01PQklMRSxcbiAgICBUVUlfTEFTVF9EQVksXG4gICAgVHVpQm9vbGVhbkhhbmRsZXIsXG4gICAgVHVpRGF0ZU1vZGUsXG4gICAgVHVpRGF5LFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICBUdWlNb250aCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIHNpemVCaWdnZXIsXG4gICAgVFVJX0RFRkFVTFRfTUFSS0VSX0hBTkRMRVIsXG4gICAgVFVJX1RFWFRGSUVMRF9TSVpFLFxuICAgIFR1aURpYWxvZ1NlcnZpY2UsXG4gICAgVHVpTWFya2VySGFuZGxlcixcbiAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQsXG4gICAgVHVpVGV4dGZpZWxkU2l6ZURpcmVjdGl2ZSxcbiAgICBUdWlUZXh0TWFza09wdGlvbnMsXG4gICAgVHVpV2l0aE9wdGlvbmFsTWluTWF4LFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1R1aU5hbWVkRGF5fSBmcm9tICdAdGFpZ2EtdWkva2l0L2NsYXNzZXMnO1xuaW1wb3J0IHtFTVBUWV9NQVNLfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbnN0YW50cyc7XG5pbXBvcnQge0xFRlRfQUxJR05FRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSfSBmcm9tICdAdGFpZ2EtdWkva2l0L3Byb3ZpZGVycyc7XG5pbXBvcnQge1xuICAgIFRVSV9DQUxFTkRBUl9EQVRBX1NUUkVBTSxcbiAgICBUVUlfREFURV9URVhUUyxcbiAgICBUVUlfTU9CSUxFX0NBTEVOREFSLFxufSBmcm9tICdAdGFpZ2EtdWkva2l0L3Rva2Vucyc7XG5pbXBvcnQge1xuICAgIHR1aUNyZWF0ZUF1dG9Db3JyZWN0ZWREYXRlUGlwZSxcbiAgICB0dWlDcmVhdGVEYXRlTWFzayxcbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC91dGlscy9tYXNrJztcbmltcG9ydCB7VHVpUmVwbGF5Q29udHJvbFZhbHVlQ2hhbmdlc0ZhY3Rvcnl9IGZyb20gJ0B0YWlnYS11aS9raXQvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbXBvbmVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8vIFRPRE86IHJlbW92ZSBpbiBpdnkgY29tcGlsYXRpb25cbmV4cG9ydCBjb25zdCBEQVRFX1NUUkVBTV9GQUNUT1JZID0gVHVpUmVwbGF5Q29udHJvbFZhbHVlQ2hhbmdlc0ZhY3Rvcnk7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWlucHV0LWRhdGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1kYXRlLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2lucHV0LWRhdGUuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUdWlJbnB1dERhdGVDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfQ0FMRU5EQVJfREFUQV9TVFJFQU0sXG4gICAgICAgICAgICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBuZXcgU2VsZigpLCBOZ0NvbnRyb2xdXSxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IERBVEVfU1RSRUFNX0ZBQ1RPUlksXG4gICAgICAgIH0sXG4gICAgICAgIExFRlRfQUxJR05FRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0RGF0ZUNvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2w8VHVpRGF5PlxuICAgIGltcGxlbWVudHMgVHVpV2l0aE9wdGlvbmFsTWluTWF4PFR1aURheT4sIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBWaWV3Q2hpbGQoVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkPzogVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50O1xuXG4gICAgcHJpdmF0ZSBtb250aDogVHVpTW9udGggfCBudWxsID0gbnVsbDtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dE1hc2tPcHRpb25zOiBUdWlUZXh0TWFza09wdGlvbnMgPSB7XG4gICAgICAgIG1hc2s6IHR1aUNyZWF0ZURhdGVNYXNrKHRoaXMuZGF0ZUZvcm1hdCwgdGhpcy5kYXRlU2VwYXJhdG9yKSxcbiAgICAgICAgcGlwZTogdHVpQ3JlYXRlQXV0b0NvcnJlY3RlZERhdGVQaXBlKHRoaXMpLFxuICAgICAgICBndWlkZTogZmFsc2UsXG4gICAgfTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtaW4gPSBUVUlfRklSU1RfREFZO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1heCA9IFRVSV9MQVNUX0RBWTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBkaXNhYmxlZEl0ZW1IYW5kbGVyOiBUdWlCb29sZWFuSGFuZGxlcjxUdWlEYXk+ID0gQUxXQVlTX0ZBTFNFX0hBTkRMRVI7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWFya2VySGFuZGxlcjogVHVpTWFya2VySGFuZGxlciA9IFRVSV9ERUZBVUxUX01BUktFUl9IQU5ETEVSO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGl0ZW1zOiBSZWFkb25seUFycmF5PFR1aU5hbWVkRGF5PiA9IFtdO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGRlZmF1bHRBY3RpdmVZZWFyTW9udGggPSBUdWlNb250aC5jdXJyZW50TG9jYWwoKTtcblxuICAgIG9wZW4gPSBmYWxzZTtcbiAgICByZWFkb25seSBmaWxsZXIkID0gdGhpcy5kYXRlVGV4dHMkLnBpcGUoXG4gICAgICAgIG1hcChkYXRlVGV4dHMgPT5cbiAgICAgICAgICAgIGNoYW5nZURhdGVTZXBhcmF0b3IoZGF0ZVRleHRzW3RoaXMuZGF0ZUZvcm1hdF0sIHRoaXMuZGF0ZVNlcGFyYXRvciksXG4gICAgICAgICksXG4gICAgKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoSW5qZWN0b3IpIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBASW5qZWN0KFRVSV9JU19NT0JJTEUpIHByaXZhdGUgcmVhZG9ubHkgaXNNb2JpbGU6IGJvb2xlYW4sXG4gICAgICAgIEBJbmplY3QoVHVpRGlhbG9nU2VydmljZSkgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dTZXJ2aWNlOiBUdWlEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KFRVSV9NT0JJTEVfQ0FMRU5EQVIpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbW9iaWxlQ2FsZW5kYXI6IFR5cGU8YW55PiB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9TSVpFKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZFNpemU6IFR1aVRleHRmaWVsZFNpemVEaXJlY3RpdmUsXG4gICAgICAgIEBJbmplY3QoVFVJX0RBVEVfRk9STUFUKSByZWFkb25seSBkYXRlRm9ybWF0OiBUdWlEYXRlTW9kZSxcbiAgICAgICAgQEluamVjdChUVUlfREFURV9TRVBBUkFUT1IpIHJlYWRvbmx5IGRhdGVTZXBhcmF0b3I6IHN0cmluZyxcbiAgICAgICAgQEluamVjdChUVUlfREFURV9URVhUUylcbiAgICAgICAgcmVhZG9ubHkgZGF0ZVRleHRzJDogT2JzZXJ2YWJsZTxSZWNvcmQ8VHVpRGF0ZU1vZGUsIHN0cmluZz4+LFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0ZmllbGQgPyB0aGlzLnRleHRmaWVsZC5uYXRpdmVGb2N1c2FibGVFbGVtZW50IDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy50ZXh0ZmllbGQgJiYgdGhpcy50ZXh0ZmllbGQuZm9jdXNlZDtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRNb2JpbGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzTW9iaWxlICYmICEhdGhpcy5tb2JpbGVDYWxlbmRhcjtcbiAgICB9XG5cbiAgICBnZXQgY2FsZW5kYXJJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBzaXplQmlnZ2VyKHRoaXMudGV4dGZpZWxkU2l6ZS5zaXplKVxuICAgICAgICAgICAgPyAndHVpSWNvbkNhbGVuZGFyTGFyZ2UnXG4gICAgICAgICAgICA6ICd0dWlJY29uQ2FsZW5kYXInO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHt2YWx1ZSwgbmF0aXZlVmFsdWUsIGFjdGl2ZUl0ZW19ID0gdGhpcztcblxuICAgICAgICBpZiAoYWN0aXZlSXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhhY3RpdmVJdGVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZSA/IHZhbHVlLnRvU3RyaW5nKHRoaXMuZGF0ZUZvcm1hdCwgdGhpcy5kYXRlU2VwYXJhdG9yKSA6IG5hdGl2ZVZhbHVlO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZEFjdGl2ZVllYXJNb250aCgpOiBUdWlNb250aCB7XG4gICAgICAgIGlmICh0aGlzLml0ZW1zWzBdICYmIHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS5kYXlTYW1lKHRoaXMuaXRlbXNbMF0uZGF5KSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXNbMF0uZGlzcGxheURheTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLm1vbnRoIHx8IHRoaXMudmFsdWUgfHwgdGhpcy5kZWZhdWx0QWN0aXZlWWVhck1vbnRoO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50ID8gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LnZhbHVlIDogJyc7XG4gICAgfVxuXG4gICAgc2V0IG5hdGl2ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC52YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBjYW5PcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuY29tcHV0ZWREaXNhYmxlZCAmJiAhdGhpcy5yZWFkT25seSAmJiAhdGhpcy5jb21wdXRlZE1vYmlsZTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRNYXNrKCk6IFR1aVRleHRNYXNrT3B0aW9ucyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjdGl2ZUl0ZW0gPyBFTVBUWV9NQVNLIDogdGhpcy50ZXh0TWFza09wdGlvbnM7XG4gICAgfVxuXG4gICAgZ2V0IGFjdGl2ZUl0ZW0oKTogVHVpTmFtZWREYXkgfCBudWxsIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlfSA9IHRoaXM7XG5cbiAgICAgICAgcmV0dXJuICh2YWx1ZSAmJiB0aGlzLml0ZW1zLmZpbmQoaXRlbSA9PiBpdGVtLmRheS5kYXlTYW1lKHZhbHVlKSkpIHx8IG51bGw7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIG9uQ2xpY2soKSB7XG4gICAgICAgIGlmICghdGhpcy5pc01vYmlsZSkge1xuICAgICAgICAgICAgdGhpcy5vcGVuID0gIXRoaXMub3BlbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldENvbXB1dGVkRmlsbGVyKGZpbGxlcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlSXRlbSA/ICcnIDogZmlsbGVyO1xuICAgIH1cblxuICAgIG9uTW9iaWxlQ2xpY2soKSB7XG4gICAgICAgIGlmICghdGhpcy5tb2JpbGVDYWxlbmRhcikge1xuICAgICAgICAgICAgdGhpcy5vcGVuID0gIXRoaXMub3BlbjtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlXG4gICAgICAgICAgICAub3BlbjxUdWlEYXk+KG5ldyBQb2x5bW9ycGhldXNDb21wb25lbnQodGhpcy5tb2JpbGVDYWxlbmRhciwgdGhpcy5pbmplY3RvciksIHtcbiAgICAgICAgICAgICAgICBzaXplOiAnZnVsbHNjcmVlbicsXG4gICAgICAgICAgICAgICAgY2xvc2VhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgIHNpbmdsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgbWluOiB0aGlzLm1pbixcbiAgICAgICAgICAgICAgICAgICAgbWF4OiB0aGlzLm1heCxcbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWRJdGVtSGFuZGxlcjogdGhpcy5kaXNhYmxlZEl0ZW1IYW5kbGVyLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvblZhbHVlQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe2VtaXRFdmVudDogZmFsc2V9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMub25PcGVuQ2hhbmdlKHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShcbiAgICAgICAgICAgIHZhbHVlLmxlbmd0aCAhPT0gREFURV9GSUxMRVJfTEVOR1RIXG4gICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgOiBUdWlEYXkubm9ybWFsaXplUGFyc2UodmFsdWUsIHRoaXMuZGF0ZUZvcm1hdCksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgb25EYXlDbGljayh2YWx1ZTogVHVpRGF5KSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBvbkhvdmVyZWQoaG92ZXJlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZUhvdmVyZWQoaG92ZXJlZCk7XG4gICAgfVxuXG4gICAgb25Nb250aENoYW5nZShtb250aDogVHVpTW9udGgpIHtcbiAgICAgICAgdGhpcy5tb250aCA9IG1vbnRoO1xuICAgIH1cblxuICAgIG9uT3BlbkNoYW5nZShvcGVuOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMub3BlbiA9IG9wZW47XG4gICAgfVxuXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGUoKSB7XG4gICAgICAgIHN1cGVyLnNldERpc2FibGVkU3RhdGUoKTtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogVHVpRGF5IHwgbnVsbCkge1xuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9IHZhbHVlID8gdGhpcy5jb21wdXRlZFZhbHVlIDogJyc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHZhbHVlSWRlbnRpY2FsQ29tcGFyYXRvcihcbiAgICAgICAgb2xkVmFsdWU6IFR1aURheSB8IG51bGwsXG4gICAgICAgIG5ld1ZhbHVlOiBUdWlEYXkgfCBudWxsLFxuICAgICk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gbnVsbGFibGVTYW1lKG9sZFZhbHVlLCBuZXdWYWx1ZSwgKGEsIGIpID0+IGEuZGF5U2FtZShiKSk7XG4gICAgfVxufVxuIl19
269
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS8iLCJzb3VyY2VzIjpbImlucHV0LWRhdGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osSUFBSSxFQUNKLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUNILDBCQUEwQixFQUMxQixvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osZUFBZSxFQUNmLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsYUFBYSxFQUNiLFlBQVksRUFJWixNQUFNLEVBQ04sY0FBYyxFQUVkLFFBQVEsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsVUFBVSxFQUNWLDBCQUEwQixFQUMxQixrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQiw4QkFBOEIsRUFDOUIseUJBQXlCLEVBQ3pCLGtCQUFrQixFQUNsQixxQkFBcUIsR0FDeEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUNILGNBQWMsRUFDZCwwQkFBMEIsRUFDMUIsbUJBQW1CLEdBQ3RCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUNILDhCQUE4QixFQUM5QixpQkFBaUIsR0FDcEIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFFaEUsV0FBVztBQVFYO0lBQ1kseUNBQWtDO0lBNkMxQywrQkFJSSxPQUF5QixFQUNFLGlCQUFvQyxFQUM1QixRQUFrQixFQUNiLFFBQWlCLEVBQ2QsYUFBK0IsRUFHekQsY0FBZ0MsRUFFaEMsYUFBd0MsRUFDdkIsVUFBdUIsRUFDcEIsYUFBcUIsRUFFakQsVUFBbUQsRUFHbkQsZ0JBQWtFO1FBcEIvRSxZQXNCSSxrQkFBTSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLENBQUMsU0FDdEQ7UUFqQnNDLGNBQVEsR0FBUixRQUFRLENBQVU7UUFDYixjQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2QsbUJBQWEsR0FBYixhQUFhLENBQWtCO1FBR3pELG9CQUFjLEdBQWQsY0FBYyxDQUFrQjtRQUVoQyxtQkFBYSxHQUFiLGFBQWEsQ0FBMkI7UUFDdkIsZ0JBQVUsR0FBVixVQUFVLENBQWE7UUFDcEIsbUJBQWEsR0FBYixhQUFhLENBQVE7UUFFakQsZ0JBQVUsR0FBVixVQUFVLENBQXlDO1FBR25ELHNCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0Q7UUEzRHZFLFdBQUssR0FBb0IsSUFBSSxDQUFDO1FBRXJCLHFCQUFlLEdBQXVCO1lBQ25ELElBQUksRUFBRSxpQkFBaUIsQ0FBQyxLQUFJLENBQUMsVUFBVSxFQUFFLEtBQUksQ0FBQyxhQUFhLENBQUM7WUFDNUQsSUFBSSxFQUFFLDhCQUE4QixDQUFDLEtBQUksQ0FBQztZQUMxQyxLQUFLLEVBQUUsS0FBSztTQUNmLENBQUM7UUFJRixTQUFHLEdBQUcsYUFBYSxDQUFDO1FBSXBCLFNBQUcsR0FBRyxZQUFZLENBQUM7UUFJbkIseUJBQW1CLEdBQThCLG9CQUFvQixDQUFDO1FBSXRFLG1CQUFhLEdBQXFCLDBCQUEwQixDQUFDO1FBSTdELFdBQUssR0FBK0IsRUFBRSxDQUFDO1FBSXZDLDRCQUFzQixHQUFHLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVqRCxVQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ0osYUFBTyxHQUFHLEtBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUNuQyxHQUFHLENBQUMsVUFBQSxTQUFTO1lBQ1QsT0FBQSxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsS0FBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUksQ0FBQyxhQUFhLENBQUM7UUFBbkUsQ0FBbUUsQ0FDdEUsQ0FDSixDQUFDOztJQXlCRixDQUFDO0lBRUQsc0JBQUkseURBQXNCO2FBQTFCO1lBQ0ksT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDekUsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSwwQ0FBTzthQUFYO1lBQ0ksT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztRQUN0RCxDQUFDOzs7T0FBQTtJQUVELHNCQUFJLGlEQUFjO2FBQWxCO1lBQ0ksT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQ2xELENBQUM7OztPQUFBO0lBRUQsc0JBQUksK0NBQVk7YUFBaEI7WUFDSSxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztnQkFDdEMsQ0FBQyxDQUFDLHNCQUFzQjtnQkFDeEIsQ0FBQyxDQUFDLGlCQUFpQixDQUFDO1FBQzVCLENBQUM7OztPQUFBO0lBRUQsc0JBQUksZ0RBQWE7YUFBakI7WUFDVSxJQUFBLFNBQXVDLEVBQXRDLGdCQUFLLEVBQUUsNEJBQVcsRUFBRSwwQkFBa0IsQ0FBQztZQUU5QyxJQUFJLFVBQVUsRUFBRTtnQkFDWixPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUM3QjtZQUVELE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFDckYsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSwwREFBdUI7YUFBM0I7WUFDSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUN0RSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO2FBQ25DO1lBRUQsT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDO1FBQ25FLENBQUM7OztPQUFBO0lBRUQsc0JBQUksOENBQVc7YUFBZjtZQUNJLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDaEYsQ0FBQzthQUVELFVBQWdCLEtBQWE7WUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtnQkFDOUIsT0FBTzthQUNWO1lBRUQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDOUMsQ0FBQzs7O09BUkE7SUFVRCxzQkFBSSwwQ0FBTzthQUFYO1lBQ0ksT0FBTyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUNwRCxDQUFDOzs7T0FBQTtJQUVELHNCQUFJLCtDQUFZO2FBQWhCO1lBQ0ksT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDL0QsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSw2Q0FBVTthQUFkO1lBQ1csSUFBQSxrQkFBSyxDQUFTO1lBRXJCLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBdkIsQ0FBdUIsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO1FBQy9FLENBQUM7OztPQUFBO0lBR0QsdUNBQU8sR0FBUDtRQUNJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQzFCO0lBQ0wsQ0FBQztJQUVELGlEQUFpQixHQUFqQixVQUFrQixNQUFjO1FBQzVCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDekMsQ0FBQztJQUVELDZDQUFhLEdBQWI7UUFBQSxpQkFzQkM7UUFyQkcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFFdkIsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLGFBQWE7YUFDYixJQUFJLENBQVMsSUFBSSxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN6RSxJQUFJLEVBQUUsWUFBWTtZQUNsQixTQUFTLEVBQUUsS0FBSztZQUNoQixJQUFJLEVBQUU7Z0JBQ0YsTUFBTSxFQUFFLElBQUk7Z0JBQ1osR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO2dCQUNiLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztnQkFDYixtQkFBbUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CO2FBQ2hEO1NBQ0osQ0FBQzthQUNELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVMsQ0FBQyxVQUFBLEtBQUs7WUFDWixLQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELDZDQUFhLEdBQWIsVUFBYyxLQUFhO1FBQ3ZCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztTQUMzRDtRQUVELElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDUixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzNCO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FDWixLQUFLLENBQUMsTUFBTSxLQUFLLGtCQUFrQjtZQUMvQixDQUFDLENBQUMsSUFBSTtZQUNOLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQ3RELENBQUM7SUFDTixDQUFDO0lBRUQsMENBQVUsR0FBVixVQUFXLEtBQWE7UUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQseUNBQVMsR0FBVCxVQUFVLE9BQWdCO1FBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELDZDQUFhLEdBQWIsVUFBYyxLQUFlO1FBQ3pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCw0Q0FBWSxHQUFaLFVBQWEsSUFBYTtRQUN0QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRUQseUNBQVMsR0FBVCxVQUFVLE9BQWdCO1FBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELGdEQUFnQixHQUFoQjtRQUNJLGlCQUFNLGdCQUFnQixXQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELDBDQUFVLEdBQVYsVUFBVyxLQUFvQjtRQUMzQixpQkFBTSxVQUFVLFlBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRVMsd0RBQXdCLEdBQWxDLFVBQ0ksUUFBdUIsRUFDdkIsUUFBdUI7UUFFdkIsT0FBTyxZQUFZLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxVQUFDLENBQUMsRUFBRSxDQUFDLElBQUssT0FBQSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFaLENBQVksQ0FBQyxDQUFDO0lBQ3BFLENBQUM7O2dCQTFLWSxTQUFTLHVCQUhqQixRQUFRLFlBQ1IsSUFBSSxZQUNKLE1BQU0sU0FBQyxTQUFTO2dCQUU2QixpQkFBaUIsdUJBQTlELE1BQU0sU0FBQyxpQkFBaUI7Z0JBQ29CLFFBQVEsdUJBQXBELE1BQU0sU0FBQyxRQUFROzhDQUNmLE1BQU0sU0FBQyxhQUFhO2dCQUNxQyxnQkFBZ0IsdUJBQXpFLE1BQU0sU0FBQyxnQkFBZ0I7Z0JBR1MsSUFBSSx1QkFGcEMsUUFBUSxZQUNSLE1BQU0sU0FBQyxtQkFBbUI7Z0JBR0sseUJBQXlCLHVCQUR4RCxNQUFNLFNBQUMsa0JBQWtCO2dEQUV6QixNQUFNLFNBQUMsZUFBZTs2Q0FDdEIsTUFBTSxTQUFDLGtCQUFrQjtnQkFFTCxVQUFVLHVCQUQ5QixNQUFNLFNBQUMsY0FBYztnREFFckIsUUFBUSxZQUNSLE1BQU0sU0FBQywwQkFBMEI7O0lBNUR0QztRQURDLFNBQVMsQ0FBQyw4QkFBOEIsQ0FBQzs0REFDa0I7SUFZNUQ7UUFGQyxLQUFLLEVBQUU7UUFDUCxjQUFjLEVBQUU7c0RBQ0c7SUFJcEI7UUFGQyxLQUFLLEVBQUU7UUFDUCxjQUFjLEVBQUU7c0RBQ0U7SUFJbkI7UUFGQyxLQUFLLEVBQUU7UUFDUCxjQUFjLEVBQUU7c0VBQ3FEO0lBSXRFO1FBRkMsS0FBSyxFQUFFO1FBQ1AsY0FBYyxFQUFFO2dFQUM0QztJQUk3RDtRQUZDLEtBQUssRUFBRTtRQUNQLGNBQWMsRUFBRTt3REFDc0I7SUFJdkM7UUFGQyxLQUFLLEVBQUU7UUFDUCxjQUFjLEVBQUU7eUVBQ2dDO0lBaUdqRDtRQURDLFlBQVksQ0FBQyxPQUFPLENBQUM7d0RBS3JCO0lBMUlRLHFCQUFxQjtRQVBqQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLHUrRUFBeUM7WUFFekMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07WUFDL0MsU0FBUyxFQUFFLHdCQUF3Qjs7U0FDdEMsQ0FBQztRQWdETyxXQUFBLFFBQVEsRUFBRSxDQUFBO1FBQ1YsV0FBQSxJQUFJLEVBQUUsQ0FBQTtRQUNOLFdBQUEsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBRWpCLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFDekIsV0FBQSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDaEIsV0FBQSxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDckIsV0FBQSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUN4QixXQUFBLFFBQVEsRUFBRSxDQUFBO1FBQ1YsV0FBQSxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtRQUUzQixXQUFBLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1FBRTFCLFdBQUEsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFBO1FBQ3ZCLFdBQUEsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUE7UUFDMUIsV0FBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7UUFFdEIsWUFBQSxRQUFRLEVBQUUsQ0FBQTtRQUNWLFlBQUEsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUE7T0FqRTlCLHFCQUFxQixDQTZOakM7SUFBRCw0QkFBQztDQUFBLEFBN05ELENBQ1ksMEJBQTBCLEdBNE5yQztTQTdOWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGYsXG4gICAgVHlwZSxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2wsXG4gICAgQUxXQVlTX0ZBTFNFX0hBTkRMRVIsXG4gICAgY2hhbmdlRGF0ZVNlcGFyYXRvcixcbiAgICBEQVRFX0ZJTExFUl9MRU5HVEgsXG4gICAgbnVsbGFibGVTYW1lLFxuICAgIFRVSV9EQVRFX0ZPUk1BVCxcbiAgICBUVUlfREFURV9TRVBBUkFUT1IsXG4gICAgVFVJX0ZJUlNUX0RBWSxcbiAgICBUVUlfSVNfTU9CSUxFLFxuICAgIFRVSV9MQVNUX0RBWSxcbiAgICBUdWlCb29sZWFuSGFuZGxlcixcbiAgICBUdWlDb250cm9sVmFsdWVUcmFuc2Zvcm1lcixcbiAgICBUdWlEYXRlTW9kZSxcbiAgICBUdWlEYXksXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIFR1aU1vbnRoLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgc2l6ZUJpZ2dlcixcbiAgICBUVUlfREVGQVVMVF9NQVJLRVJfSEFORExFUixcbiAgICBUVUlfVEVYVEZJRUxEX1NJWkUsXG4gICAgVHVpRGlhbG9nU2VydmljZSxcbiAgICBUdWlNYXJrZXJIYW5kbGVyLFxuICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudCxcbiAgICBUdWlUZXh0ZmllbGRTaXplRGlyZWN0aXZlLFxuICAgIFR1aVRleHRNYXNrT3B0aW9ucyxcbiAgICBUdWlXaXRoT3B0aW9uYWxNaW5NYXgsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7VHVpTmFtZWREYXl9IGZyb20gJ0B0YWlnYS11aS9raXQvY2xhc3Nlcyc7XG5pbXBvcnQge0VNUFRZX01BU0t9IGZyb20gJ0B0YWlnYS11aS9raXQvY29uc3RhbnRzJztcbmltcG9ydCB7XG4gICAgVFVJX0RBVEVfVEVYVFMsXG4gICAgVFVJX0RBVEVfVkFMVUVfVFJBTlNGT1JNRVIsXG4gICAgVFVJX01PQklMRV9DQUxFTkRBUixcbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC90b2tlbnMnO1xuaW1wb3J0IHtcbiAgICB0dWlDcmVhdGVBdXRvQ29ycmVjdGVkRGF0ZVBpcGUsXG4gICAgdHVpQ3JlYXRlRGF0ZU1hc2ssXG59IGZyb20gJ0B0YWlnYS11aS9raXQvdXRpbHMvbWFzayc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbXBvbmVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7VFVJX0lOUFVUX0RBVEVfUFJPVklERVJTfSBmcm9tICcuL2lucHV0LWRhdGUucHJvdmlkZXJzJztcblxuLy8gQGR5bmFtaWNcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWlucHV0LWRhdGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1kYXRlLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2lucHV0LWRhdGUuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogVFVJX0lOUFVUX0RBVEVfUFJPVklERVJTLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dERhdGVDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sPFR1aURheT5cbiAgICBpbXBsZW1lbnRzIFR1aVdpdGhPcHRpb25hbE1pbk1heDxUdWlEYXk+LCBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3JcbntcbiAgICBAVmlld0NoaWxkKFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZD86IFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudDtcblxuICAgIHByaXZhdGUgbW9udGg6IFR1aU1vbnRoIHwgbnVsbCA9IG51bGw7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRNYXNrT3B0aW9uczogVHVpVGV4dE1hc2tPcHRpb25zID0ge1xuICAgICAgICBtYXNrOiB0dWlDcmVhdGVEYXRlTWFzayh0aGlzLmRhdGVGb3JtYXQsIHRoaXMuZGF0ZVNlcGFyYXRvciksXG4gICAgICAgIHBpcGU6IHR1aUNyZWF0ZUF1dG9Db3JyZWN0ZWREYXRlUGlwZSh0aGlzKSxcbiAgICAgICAgZ3VpZGU6IGZhbHNlLFxuICAgIH07XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWluID0gVFVJX0ZJUlNUX0RBWTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtYXggPSBUVUlfTEFTVF9EQVk7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZGlzYWJsZWRJdGVtSGFuZGxlcjogVHVpQm9vbGVhbkhhbmRsZXI8VHVpRGF5PiA9IEFMV0FZU19GQUxTRV9IQU5ETEVSO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1hcmtlckhhbmRsZXI6IFR1aU1hcmtlckhhbmRsZXIgPSBUVUlfREVGQVVMVF9NQVJLRVJfSEFORExFUjtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBpdGVtczogUmVhZG9ubHlBcnJheTxUdWlOYW1lZERheT4gPSBbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBkZWZhdWx0QWN0aXZlWWVhck1vbnRoID0gVHVpTW9udGguY3VycmVudExvY2FsKCk7XG5cbiAgICBvcGVuID0gZmFsc2U7XG4gICAgcmVhZG9ubHkgZmlsbGVyJCA9IHRoaXMuZGF0ZVRleHRzJC5waXBlKFxuICAgICAgICBtYXAoZGF0ZVRleHRzID0+XG4gICAgICAgICAgICBjaGFuZ2VEYXRlU2VwYXJhdG9yKGRhdGVUZXh0c1t0aGlzLmRhdGVGb3JtYXRdLCB0aGlzLmRhdGVTZXBhcmF0b3IpLFxuICAgICAgICApLFxuICAgICk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KE5nQ29udHJvbClcbiAgICAgICAgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KEluamVjdG9yKSBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgQEluamVjdChUVUlfSVNfTU9CSUxFKSBwcml2YXRlIHJlYWRvbmx5IGlzTW9iaWxlOiBib29sZWFuLFxuICAgICAgICBASW5qZWN0KFR1aURpYWxvZ1NlcnZpY2UpIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nU2VydmljZTogVHVpRGlhbG9nU2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChUVUlfTU9CSUxFX0NBTEVOREFSKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1vYmlsZUNhbGVuZGFyOiBUeXBlPGFueT4gfCBudWxsLFxuICAgICAgICBASW5qZWN0KFRVSV9URVhURklFTERfU0laRSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGRTaXplOiBUdWlUZXh0ZmllbGRTaXplRGlyZWN0aXZlLFxuICAgICAgICBASW5qZWN0KFRVSV9EQVRFX0ZPUk1BVCkgcmVhZG9ubHkgZGF0ZUZvcm1hdDogVHVpRGF0ZU1vZGUsXG4gICAgICAgIEBJbmplY3QoVFVJX0RBVEVfU0VQQVJBVE9SKSByZWFkb25seSBkYXRlU2VwYXJhdG9yOiBzdHJpbmcsXG4gICAgICAgIEBJbmplY3QoVFVJX0RBVEVfVEVYVFMpXG4gICAgICAgIHJlYWRvbmx5IGRhdGVUZXh0cyQ6IE9ic2VydmFibGU8UmVjb3JkPFR1aURhdGVNb2RlLCBzdHJpbmc+PixcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChUVUlfREFURV9WQUxVRV9UUkFOU0ZPUk1FUilcbiAgICAgICAgcmVhZG9ubHkgdmFsdWVUcmFuc2Zvcm1lcjogVHVpQ29udHJvbFZhbHVlVHJhbnNmb3JtZXI8VHVpRGF5IHwgbnVsbD4gfCBudWxsLFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZiwgdmFsdWVUcmFuc2Zvcm1lcik7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0ZmllbGQgPyB0aGlzLnRleHRmaWVsZC5uYXRpdmVGb2N1c2FibGVFbGVtZW50IDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy50ZXh0ZmllbGQgJiYgdGhpcy50ZXh0ZmllbGQuZm9jdXNlZDtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRNb2JpbGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzTW9iaWxlICYmICEhdGhpcy5tb2JpbGVDYWxlbmRhcjtcbiAgICB9XG5cbiAgICBnZXQgY2FsZW5kYXJJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBzaXplQmlnZ2VyKHRoaXMudGV4dGZpZWxkU2l6ZS5zaXplKVxuICAgICAgICAgICAgPyAndHVpSWNvbkNhbGVuZGFyTGFyZ2UnXG4gICAgICAgICAgICA6ICd0dWlJY29uQ2FsZW5kYXInO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHt2YWx1ZSwgbmF0aXZlVmFsdWUsIGFjdGl2ZUl0ZW19ID0gdGhpcztcblxuICAgICAgICBpZiAoYWN0aXZlSXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhhY3RpdmVJdGVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZSA/IHZhbHVlLnRvU3RyaW5nKHRoaXMuZGF0ZUZvcm1hdCwgdGhpcy5kYXRlU2VwYXJhdG9yKSA6IG5hdGl2ZVZhbHVlO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZEFjdGl2ZVllYXJNb250aCgpOiBUdWlNb250aCB7XG4gICAgICAgIGlmICh0aGlzLml0ZW1zWzBdICYmIHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS5kYXlTYW1lKHRoaXMuaXRlbXNbMF0uZGF5KSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXNbMF0uZGlzcGxheURheTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLm1vbnRoIHx8IHRoaXMudmFsdWUgfHwgdGhpcy5kZWZhdWx0QWN0aXZlWWVhck1vbnRoO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50ID8gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LnZhbHVlIDogJyc7XG4gICAgfVxuXG4gICAgc2V0IG5hdGl2ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC52YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBjYW5PcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnRlcmFjdGl2ZSAmJiAhdGhpcy5jb21wdXRlZE1vYmlsZTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRNYXNrKCk6IFR1aVRleHRNYXNrT3B0aW9ucyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjdGl2ZUl0ZW0gPyBFTVBUWV9NQVNLIDogdGhpcy50ZXh0TWFza09wdGlvbnM7XG4gICAgfVxuXG4gICAgZ2V0IGFjdGl2ZUl0ZW0oKTogVHVpTmFtZWREYXkgfCBudWxsIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlfSA9IHRoaXM7XG5cbiAgICAgICAgcmV0dXJuICh2YWx1ZSAmJiB0aGlzLml0ZW1zLmZpbmQoaXRlbSA9PiBpdGVtLmRheS5kYXlTYW1lKHZhbHVlKSkpIHx8IG51bGw7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIG9uQ2xpY2soKSB7XG4gICAgICAgIGlmICghdGhpcy5pc01vYmlsZSkge1xuICAgICAgICAgICAgdGhpcy5vcGVuID0gIXRoaXMub3BlbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldENvbXB1dGVkRmlsbGVyKGZpbGxlcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlSXRlbSA/ICcnIDogZmlsbGVyO1xuICAgIH1cblxuICAgIG9uTW9iaWxlQ2xpY2soKSB7XG4gICAgICAgIGlmICghdGhpcy5tb2JpbGVDYWxlbmRhcikge1xuICAgICAgICAgICAgdGhpcy5vcGVuID0gIXRoaXMub3BlbjtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlXG4gICAgICAgICAgICAub3BlbjxUdWlEYXk+KG5ldyBQb2x5bW9ycGhldXNDb21wb25lbnQodGhpcy5tb2JpbGVDYWxlbmRhciwgdGhpcy5pbmplY3RvciksIHtcbiAgICAgICAgICAgICAgICBzaXplOiAnZnVsbHNjcmVlbicsXG4gICAgICAgICAgICAgICAgY2xvc2VhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgIHNpbmdsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgbWluOiB0aGlzLm1pbixcbiAgICAgICAgICAgICAgICAgICAgbWF4OiB0aGlzLm1heCxcbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWRJdGVtSGFuZGxlcjogdGhpcy5kaXNhYmxlZEl0ZW1IYW5kbGVyLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvblZhbHVlQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe2VtaXRFdmVudDogZmFsc2V9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMub25PcGVuQ2hhbmdlKHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShcbiAgICAgICAgICAgIHZhbHVlLmxlbmd0aCAhPT0gREFURV9GSUxMRVJfTEVOR1RIXG4gICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgOiBUdWlEYXkubm9ybWFsaXplUGFyc2UodmFsdWUsIHRoaXMuZGF0ZUZvcm1hdCksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgb25EYXlDbGljayh2YWx1ZTogVHVpRGF5KSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBvbkhvdmVyZWQoaG92ZXJlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZUhvdmVyZWQoaG92ZXJlZCk7XG4gICAgfVxuXG4gICAgb25Nb250aENoYW5nZShtb250aDogVHVpTW9udGgpIHtcbiAgICAgICAgdGhpcy5tb250aCA9IG1vbnRoO1xuICAgIH1cblxuICAgIG9uT3BlbkNoYW5nZShvcGVuOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMub3BlbiA9IG9wZW47XG4gICAgfVxuXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGUoKSB7XG4gICAgICAgIHN1cGVyLnNldERpc2FibGVkU3RhdGUoKTtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogVHVpRGF5IHwgbnVsbCkge1xuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9IHZhbHVlID8gdGhpcy5jb21wdXRlZFZhbHVlIDogJyc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHZhbHVlSWRlbnRpY2FsQ29tcGFyYXRvcihcbiAgICAgICAgb2xkVmFsdWU6IFR1aURheSB8IG51bGwsXG4gICAgICAgIG5ld1ZhbHVlOiBUdWlEYXkgfCBudWxsLFxuICAgICk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gbnVsbGFibGVTYW1lKG9sZFZhbHVlLCBuZXdWYWx1ZSwgKGEsIGIpID0+IGEuZGF5U2FtZShiKSk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,38 @@
1
+ import { __decorate, __extends } from "tslib";
2
+ import { Directive, forwardRef } from '@angular/core';
3
+ import { TUI_TEXTFIELD_HOST, TuiAbstractTextfieldHost } from '@taiga-ui/core';
4
+ var TuiInputDateDirective = /** @class */ (function (_super) {
5
+ __extends(TuiInputDateDirective, _super);
6
+ function TuiInputDateDirective() {
7
+ return _super !== null && _super.apply(this, arguments) || this;
8
+ }
9
+ TuiInputDateDirective_1 = TuiInputDateDirective;
10
+ Object.defineProperty(TuiInputDateDirective.prototype, "value", {
11
+ get: function () {
12
+ return this.host.computedValue;
13
+ },
14
+ enumerable: true,
15
+ configurable: true
16
+ });
17
+ TuiInputDateDirective.prototype.onValueChange = function (value) {
18
+ this.host.onValueChange(value);
19
+ };
20
+ TuiInputDateDirective.prototype.process = function (input) {
21
+ input.inputMode = 'numeric';
22
+ };
23
+ var TuiInputDateDirective_1;
24
+ TuiInputDateDirective = TuiInputDateDirective_1 = __decorate([
25
+ Directive({
26
+ selector: 'tui-input-date',
27
+ providers: [
28
+ {
29
+ provide: TUI_TEXTFIELD_HOST,
30
+ useExisting: forwardRef(function () { return TuiInputDateDirective_1; }),
31
+ },
32
+ ],
33
+ })
34
+ ], TuiInputDateDirective);
35
+ return TuiInputDateDirective;
36
+ }(TuiAbstractTextfieldHost));
37
+ export { TuiInputDateDirective };
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS8iLCJzb3VyY2VzIjpbImlucHV0LWRhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUUsd0JBQXdCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQWE1RTtJQUEyQyx5Q0FBK0M7SUFBMUY7O0lBWUEsQ0FBQzs4QkFaWSxxQkFBcUI7SUFDOUIsc0JBQUksd0NBQUs7YUFBVDtZQUNJLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDbkMsQ0FBQzs7O09BQUE7SUFFRCw2Q0FBYSxHQUFiLFVBQWMsS0FBYTtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsdUNBQU8sR0FBUCxVQUFRLEtBQXVCO1FBQzNCLEtBQUssQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQ2hDLENBQUM7O0lBWFEscUJBQXFCO1FBVGpDLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxnQkFBZ0I7WUFDMUIsU0FBUyxFQUFFO2dCQUNQO29CQUNJLE9BQU8sRUFBRSxrQkFBa0I7b0JBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsY0FBTSxPQUFBLHVCQUFxQixFQUFyQixDQUFxQixDQUFDO2lCQUN2RDthQUNKO1NBQ0osQ0FBQztPQUNXLHFCQUFxQixDQVlqQztJQUFELDRCQUFDO0NBQUEsQUFaRCxDQUEyQyx3QkFBd0IsR0FZbEU7U0FaWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgZm9yd2FyZFJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RVSV9URVhURklFTERfSE9TVCwgVHVpQWJzdHJhY3RUZXh0ZmllbGRIb3N0fSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5cbmltcG9ydCB7VHVpSW5wdXREYXRlQ29tcG9uZW50fSBmcm9tICcuL2lucHV0LWRhdGUuY29tcG9uZW50JztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtZGF0ZScsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9URVhURklFTERfSE9TVCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR1aUlucHV0RGF0ZURpcmVjdGl2ZSksXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXREYXRlRGlyZWN0aXZlIGV4dGVuZHMgVHVpQWJzdHJhY3RUZXh0ZmllbGRIb3N0PFR1aUlucHV0RGF0ZUNvbXBvbmVudD4ge1xuICAgIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0LmNvbXB1dGVkVmFsdWU7XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuaG9zdC5vblZhbHVlQ2hhbmdlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcm9jZXNzKGlucHV0OiBIVE1MSW5wdXRFbGVtZW50KSB7XG4gICAgICAgIGlucHV0LmlucHV0TW9kZSA9ICdudW1lcmljJztcbiAgICB9XG59XG4iXX0=
@@ -2,11 +2,12 @@ import { __decorate } from "tslib";
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { NgModule } from '@angular/core';
4
4
  import { TuiLetModule, TuiPreventDefaultModule } from '@taiga-ui/cdk';
5
- import { TuiCalendarModule, TuiHostedDropdownModule, TuiLinkModule, TuiPrimitiveTextfieldModule, TuiSvgModule, TuiTextfieldControllerModule, } from '@taiga-ui/core';
5
+ import { TuiCalendarModule, TuiHostedDropdownModule, TuiLinkModule, TuiPrimitiveTextfieldModule, TuiSvgModule, TuiTextfieldComponent, TuiTextfieldControllerModule, } from '@taiga-ui/core';
6
6
  import { TuiValueAccessorModule } from '@taiga-ui/kit/directives';
7
7
  import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
8
8
  import { TextMaskModule } from 'angular2-text-mask';
9
9
  import { TuiInputDateComponent } from './input-date.component';
10
+ import { TuiInputDateDirective } from './input-date.directive';
10
11
  var TuiInputDateModule = /** @class */ (function () {
11
12
  function TuiInputDateModule() {
12
13
  }
@@ -26,11 +27,11 @@ var TuiInputDateModule = /** @class */ (function () {
26
27
  TuiLetModule,
27
28
  TuiTextfieldControllerModule,
28
29
  ],
29
- declarations: [TuiInputDateComponent],
30
- exports: [TuiInputDateComponent],
30
+ declarations: [TuiInputDateComponent, TuiInputDateDirective],
31
+ exports: [TuiInputDateComponent, TuiInputDateDirective, TuiTextfieldComponent],
31
32
  })
32
33
  ], TuiInputDateModule);
33
34
  return TuiInputDateModule;
34
35
  }());
35
36
  export { TuiInputDateModule };
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS8iLCJzb3VyY2VzIjpbImlucHV0LWRhdGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFFLHVCQUF1QixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLGFBQWEsRUFDYiwyQkFBMkIsRUFDM0IsWUFBWSxFQUNaLDRCQUE0QixHQUMvQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUVsRCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQW9CN0Q7SUFBQTtJQUFpQyxDQUFDO0lBQXJCLGtCQUFrQjtRQWxCOUIsUUFBUSxDQUFDO1lBQ04sT0FBTyxFQUFFO2dCQUNMLFlBQVk7Z0JBQ1osY0FBYztnQkFDZCxrQkFBa0I7Z0JBQ2xCLHVCQUF1QjtnQkFDdkIsaUJBQWlCO2dCQUNqQixZQUFZO2dCQUNaLGFBQWE7Z0JBQ2IsdUJBQXVCO2dCQUN2QiwyQkFBMkI7Z0JBQzNCLHNCQUFzQjtnQkFDdEIsWUFBWTtnQkFDWiw0QkFBNEI7YUFDL0I7WUFDRCxZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztZQUNyQyxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztTQUNuQyxDQUFDO09BQ1csa0JBQWtCLENBQUc7SUFBRCx5QkFBQztDQUFBLEFBQWxDLElBQWtDO1NBQXJCLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1R1aUxldE1vZHVsZSwgVHVpUHJldmVudERlZmF1bHRNb2R1bGV9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBUdWlDYWxlbmRhck1vZHVsZSxcbiAgICBUdWlIb3N0ZWREcm9wZG93bk1vZHVsZSxcbiAgICBUdWlMaW5rTW9kdWxlLFxuICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZE1vZHVsZSxcbiAgICBUdWlTdmdNb2R1bGUsXG4gICAgVHVpVGV4dGZpZWxkQ29udHJvbGxlck1vZHVsZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUdWlWYWx1ZUFjY2Vzc29yTW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkva2l0L2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNNb2R1bGV9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge1RleHRNYXNrTW9kdWxlfSBmcm9tICdhbmd1bGFyMi10ZXh0LW1hc2snO1xuXG5pbXBvcnQge1R1aUlucHV0RGF0ZUNvbXBvbmVudH0gZnJvbSAnLi9pbnB1dC1kYXRlLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFRleHRNYXNrTW9kdWxlLFxuICAgICAgICBQb2x5bW9ycGhldXNNb2R1bGUsXG4gICAgICAgIFR1aVByZXZlbnREZWZhdWx0TW9kdWxlLFxuICAgICAgICBUdWlDYWxlbmRhck1vZHVsZSxcbiAgICAgICAgVHVpU3ZnTW9kdWxlLFxuICAgICAgICBUdWlMaW5rTW9kdWxlLFxuICAgICAgICBUdWlIb3N0ZWREcm9wZG93bk1vZHVsZSxcbiAgICAgICAgVHVpUHJpbWl0aXZlVGV4dGZpZWxkTW9kdWxlLFxuICAgICAgICBUdWlWYWx1ZUFjY2Vzc29yTW9kdWxlLFxuICAgICAgICBUdWlMZXRNb2R1bGUsXG4gICAgICAgIFR1aVRleHRmaWVsZENvbnRyb2xsZXJNb2R1bGUsXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtUdWlJbnB1dERhdGVDb21wb25lbnRdLFxuICAgIGV4cG9ydHM6IFtUdWlJbnB1dERhdGVDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dERhdGVNb2R1bGUge31cbiJdfQ==
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS8iLCJzb3VyY2VzIjpbImlucHV0LWRhdGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFFLHVCQUF1QixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLGFBQWEsRUFDYiwyQkFBMkIsRUFDM0IsWUFBWSxFQUNaLHFCQUFxQixFQUNyQiw0QkFBNEIsR0FDL0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFbEQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFvQjdEO0lBQUE7SUFBaUMsQ0FBQztJQUFyQixrQkFBa0I7UUFsQjlCLFFBQVEsQ0FBQztZQUNOLE9BQU8sRUFBRTtnQkFDTCxZQUFZO2dCQUNaLGNBQWM7Z0JBQ2Qsa0JBQWtCO2dCQUNsQix1QkFBdUI7Z0JBQ3ZCLGlCQUFpQjtnQkFDakIsWUFBWTtnQkFDWixhQUFhO2dCQUNiLHVCQUF1QjtnQkFDdkIsMkJBQTJCO2dCQUMzQixzQkFBc0I7Z0JBQ3RCLFlBQVk7Z0JBQ1osNEJBQTRCO2FBQy9CO1lBQ0QsWUFBWSxFQUFFLENBQUMscUJBQXFCLEVBQUUscUJBQXFCLENBQUM7WUFDNUQsT0FBTyxFQUFFLENBQUMscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLENBQUM7U0FDakYsQ0FBQztPQUNXLGtCQUFrQixDQUFHO0lBQUQseUJBQUM7Q0FBQSxBQUFsQyxJQUFrQztTQUFyQixrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUdWlMZXRNb2R1bGUsIFR1aVByZXZlbnREZWZhdWx0TW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgVHVpQ2FsZW5kYXJNb2R1bGUsXG4gICAgVHVpSG9zdGVkRHJvcGRvd25Nb2R1bGUsXG4gICAgVHVpTGlua01vZHVsZSxcbiAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRNb2R1bGUsXG4gICAgVHVpU3ZnTW9kdWxlLFxuICAgIFR1aVRleHRmaWVsZENvbXBvbmVudCxcbiAgICBUdWlUZXh0ZmllbGRDb250cm9sbGVyTW9kdWxlLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1R1aVZhbHVlQWNjZXNzb3JNb2R1bGV9IGZyb20gJ0B0YWlnYS11aS9raXQvZGlyZWN0aXZlcyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c01vZHVsZX0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7VGV4dE1hc2tNb2R1bGV9IGZyb20gJ2FuZ3VsYXIyLXRleHQtbWFzayc7XG5cbmltcG9ydCB7VHVpSW5wdXREYXRlQ29tcG9uZW50fSBmcm9tICcuL2lucHV0LWRhdGUuY29tcG9uZW50JztcbmltcG9ydCB7VHVpSW5wdXREYXRlRGlyZWN0aXZlfSBmcm9tICcuL2lucHV0LWRhdGUuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgVGV4dE1hc2tNb2R1bGUsXG4gICAgICAgIFBvbHltb3JwaGV1c01vZHVsZSxcbiAgICAgICAgVHVpUHJldmVudERlZmF1bHRNb2R1bGUsXG4gICAgICAgIFR1aUNhbGVuZGFyTW9kdWxlLFxuICAgICAgICBUdWlTdmdNb2R1bGUsXG4gICAgICAgIFR1aUxpbmtNb2R1bGUsXG4gICAgICAgIFR1aUhvc3RlZERyb3Bkb3duTW9kdWxlLFxuICAgICAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRNb2R1bGUsXG4gICAgICAgIFR1aVZhbHVlQWNjZXNzb3JNb2R1bGUsXG4gICAgICAgIFR1aUxldE1vZHVsZSxcbiAgICAgICAgVHVpVGV4dGZpZWxkQ29udHJvbGxlck1vZHVsZSxcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1R1aUlucHV0RGF0ZUNvbXBvbmVudCwgVHVpSW5wdXREYXRlRGlyZWN0aXZlXSxcbiAgICBleHBvcnRzOiBbVHVpSW5wdXREYXRlQ29tcG9uZW50LCBUdWlJbnB1dERhdGVEaXJlY3RpdmUsIFR1aVRleHRmaWVsZENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0RGF0ZU1vZHVsZSB7fVxuIl19
@@ -0,0 +1,29 @@
1
+ import { forwardRef, Optional, Self } from '@angular/core';
2
+ import { NgControl } from '@angular/forms';
3
+ import { AbstractTuiControl, TUI_FOCUSABLE_ITEM_ACCESSOR, } from '@taiga-ui/cdk';
4
+ import { LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER } from '@taiga-ui/kit/providers';
5
+ import { TUI_CALENDAR_DATA_STREAM, TUI_DATE_VALUE_TRANSFORMER } from '@taiga-ui/kit/tokens';
6
+ import { TuiReplayControlValueChangesFactory } from '@taiga-ui/kit/utils/miscellaneous';
7
+ import { TuiInputDateComponent } from './input-date.component';
8
+ // TODO: remove in ivy compilation
9
+ export var DATE_STREAM_FACTORY = function (control, valueTransformer) { return TuiReplayControlValueChangesFactory(control, valueTransformer); };
10
+ export var TUI_INPUT_DATE_PROVIDERS = [
11
+ {
12
+ provide: TUI_FOCUSABLE_ITEM_ACCESSOR,
13
+ useExisting: forwardRef(function () { return TuiInputDateComponent; }),
14
+ },
15
+ {
16
+ provide: TUI_CALENDAR_DATA_STREAM,
17
+ deps: [
18
+ [new Optional(), new Self(), NgControl],
19
+ [new Optional(), TUI_DATE_VALUE_TRANSFORMER],
20
+ ],
21
+ useFactory: DATE_STREAM_FACTORY,
22
+ },
23
+ {
24
+ provide: AbstractTuiControl,
25
+ useExisting: forwardRef(function () { return TuiInputDateComponent; }),
26
+ },
27
+ LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER,
28
+ ];
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS5wcm92aWRlcnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS8iLCJzb3VyY2VzIjpbImlucHV0LWRhdGUucHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUNILGtCQUFrQixFQUNsQiwyQkFBMkIsR0FHOUIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLHlDQUF5QyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDbEYsT0FBTyxFQUFDLHdCQUF3QixFQUFFLDBCQUEwQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDMUYsT0FBTyxFQUFDLG1DQUFtQyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFFdEYsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFFN0Qsa0NBQWtDO0FBQ2xDLE1BQU0sQ0FBQyxJQUFNLG1CQUFtQixHQUFHLFVBQy9CLE9BQXlCLEVBQ3pCLGdCQUFvRCxJQUNuRCxPQUFBLG1DQUFtQyxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxFQUE5RCxDQUE4RCxDQUFDO0FBRXBFLE1BQU0sQ0FBQyxJQUFNLHdCQUF3QixHQUFHO0lBQ3BDO1FBQ0ksT0FBTyxFQUFFLDJCQUEyQjtRQUNwQyxXQUFXLEVBQUUsVUFBVSxDQUFDLGNBQU0sT0FBQSxxQkFBcUIsRUFBckIsQ0FBcUIsQ0FBQztLQUN2RDtJQUNEO1FBQ0ksT0FBTyxFQUFFLHdCQUF3QjtRQUNqQyxJQUFJLEVBQUU7WUFDRixDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxTQUFTLENBQUM7WUFDdkMsQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLDBCQUEwQixDQUFDO1NBQy9DO1FBQ0QsVUFBVSxFQUFFLG1CQUFtQjtLQUNsQztJQUNEO1FBQ0ksT0FBTyxFQUFFLGtCQUFrQjtRQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLGNBQU0sT0FBQSxxQkFBcUIsRUFBckIsQ0FBcUIsQ0FBQztLQUN2RDtJQUNELHlDQUF5QztDQUM1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtmb3J3YXJkUmVmLCBPcHRpb25hbCwgU2VsZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aUNvbnRyb2wsXG4gICAgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgIFR1aUNvbnRyb2xWYWx1ZVRyYW5zZm9ybWVyLFxuICAgIFR1aURheSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge0xFRlRfQUxJR05FRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSfSBmcm9tICdAdGFpZ2EtdWkva2l0L3Byb3ZpZGVycyc7XG5pbXBvcnQge1RVSV9DQUxFTkRBUl9EQVRBX1NUUkVBTSwgVFVJX0RBVEVfVkFMVUVfVFJBTlNGT1JNRVJ9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7VHVpUmVwbGF5Q29udHJvbFZhbHVlQ2hhbmdlc0ZhY3Rvcnl9IGZyb20gJ0B0YWlnYS11aS9raXQvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5cbmltcG9ydCB7VHVpSW5wdXREYXRlQ29tcG9uZW50fSBmcm9tICcuL2lucHV0LWRhdGUuY29tcG9uZW50JztcblxuLy8gVE9ETzogcmVtb3ZlIGluIGl2eSBjb21waWxhdGlvblxuZXhwb3J0IGNvbnN0IERBVEVfU1RSRUFNX0ZBQ1RPUlkgPSAoXG4gICAgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICB2YWx1ZVRyYW5zZm9ybWVyOiBUdWlDb250cm9sVmFsdWVUcmFuc2Zvcm1lcjxUdWlEYXk+LFxuKSA9PiBUdWlSZXBsYXlDb250cm9sVmFsdWVDaGFuZ2VzRmFjdG9yeShjb250cm9sLCB2YWx1ZVRyYW5zZm9ybWVyKTtcblxuZXhwb3J0IGNvbnN0IFRVSV9JTlBVVF9EQVRFX1BST1ZJREVSUyA9IFtcbiAgICB7XG4gICAgICAgIHByb3ZpZGU6IFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpSW5wdXREYXRlQ29tcG9uZW50KSxcbiAgICB9LFxuICAgIHtcbiAgICAgICAgcHJvdmlkZTogVFVJX0NBTEVOREFSX0RBVEFfU1RSRUFNLFxuICAgICAgICBkZXBzOiBbXG4gICAgICAgICAgICBbbmV3IE9wdGlvbmFsKCksIG5ldyBTZWxmKCksIE5nQ29udHJvbF0sXG4gICAgICAgICAgICBbbmV3IE9wdGlvbmFsKCksIFRVSV9EQVRFX1ZBTFVFX1RSQU5TRk9STUVSXSxcbiAgICAgICAgXSxcbiAgICAgICAgdXNlRmFjdG9yeTogREFURV9TVFJFQU1fRkFDVE9SWSxcbiAgICB9LFxuICAgIHtcbiAgICAgICAgcHJvdmlkZTogQWJzdHJhY3RUdWlDb250cm9sLFxuICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUdWlJbnB1dERhdGVDb21wb25lbnQpLFxuICAgIH0sXG4gICAgTEVGVF9BTElHTkVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVIsXG5dO1xuIl19
@@ -1,3 +1,5 @@
1
1
  export * from './input-date-range.component';
2
+ export * from './input-date-range.directive';
2
3
  export * from './input-date-range.module';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS1yYW5nZS8iLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaW5wdXQtZGF0ZS1yYW5nZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnB1dC1kYXRlLXJhbmdlLm1vZHVsZSc7XG4iXX0=
4
+ export * from './input-date-range.providers';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS1yYW5nZS8iLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2lucHV0LWRhdGUtcmFuZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaW5wdXQtZGF0ZS1yYW5nZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnB1dC1kYXRlLXJhbmdlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2lucHV0LWRhdGUtcmFuZ2UucHJvdmlkZXJzJztcbiJdfQ==
@@ -1,22 +1,20 @@
1
1
  import { __decorate, __extends, __param } from "tslib";
2
- import { ChangeDetectorRef, Component, forwardRef, HostListener, Inject, Injector, Input, Optional, Self, Type, ViewChild, } from '@angular/core';
2
+ import { ChangeDetectorRef, Component, HostListener, Inject, Injector, Input, Optional, Self, Type, ViewChild, } from '@angular/core';
3
3
  import { NgControl } from '@angular/forms';
4
- import { AbstractTuiNullableControl, ALWAYS_FALSE_HANDLER, changeDateSeparator, DATE_FILLER_LENGTH, DATE_RANGE_FILLER_LENGTH, nullableSame, RANGE_SEPARATOR_CHAR, setNativeFocused, TUI_DATE_FORMAT, TUI_DATE_SEPARATOR, TUI_FIRST_DAY, TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_MOBILE, TUI_LAST_DAY, TuiDayRange, tuiDefaultProp, TuiMonth, } from '@taiga-ui/cdk';
4
+ import { AbstractTuiNullableControl, ALWAYS_FALSE_HANDLER, changeDateSeparator, DATE_FILLER_LENGTH, DATE_RANGE_FILLER_LENGTH, nullableSame, RANGE_SEPARATOR_CHAR, setNativeFocused, TUI_DATE_FORMAT, TUI_DATE_SEPARATOR, TUI_FIRST_DAY, TUI_IS_MOBILE, TUI_LAST_DAY, TuiDayRange, tuiDefaultProp, TuiMonth, } from '@taiga-ui/cdk';
5
5
  import { sizeBigger, TUI_DEFAULT_MARKER_HANDLER, TUI_TEXTFIELD_EXAMPLE_TEXT, TUI_TEXTFIELD_SIZE, TuiDialogService, TuiMarkerHandler, TuiPrimitiveTextfieldComponent, TuiTextfieldExampleTextDirective, TuiTextfieldSizeDirective, TuiTextMaskOptions, TuiWithOptionalMinMax, } from '@taiga-ui/core';
6
6
  import { EMPTY_MASK, MAX_DAY_RANGE_LENGTH_MAPPER } from '@taiga-ui/kit/constants';
7
- import { LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER } from '@taiga-ui/kit/providers';
8
- import { TUI_CALENDAR_DATA_STREAM, TUI_DATE_TEXTS, TUI_MOBILE_CALENDAR, } from '@taiga-ui/kit/tokens';
7
+ import { TUI_DATE_RANGE_VALUE_TRANSFORMER, TUI_DATE_TEXTS, TUI_MOBILE_CALENDAR, } from '@taiga-ui/kit/tokens';
9
8
  import { tuiCreateAutoCorrectedDateRangePipe, tuiCreateDateRangeMask, } from '@taiga-ui/kit/utils/mask';
10
- import { TuiReplayControlValueChangesFactory } from '@taiga-ui/kit/utils/miscellaneous';
11
9
  import { PolymorpheusComponent } from '@tinkoff/ng-polymorpheus';
12
10
  import { Observable } from 'rxjs';
13
11
  import { map, takeUntil } from 'rxjs/operators';
14
- // TODO: remove in ivy compilation
15
- export var RANGE_STREAM_FACTORY = TuiReplayControlValueChangesFactory;
12
+ import { TUI_INPUT_DATE_RANGE_PROVIDERS } from './input-date-range.providers';
13
+ // @dynamic
16
14
  var TuiInputDateRangeComponent = /** @class */ (function (_super) {
17
15
  __extends(TuiInputDateRangeComponent, _super);
18
- function TuiInputDateRangeComponent(control, changeDetectorRef, injector, isMobile, dialogService, mobileCalendar, textfieldSize, textfieldExampleText, dateFormat, dateSeparator, dateTexts$) {
19
- var _this = _super.call(this, control, changeDetectorRef) || this;
16
+ function TuiInputDateRangeComponent(control, changeDetectorRef, injector, isMobile, dialogService, mobileCalendar, textfieldSize, textfieldExampleText, dateFormat, dateSeparator, dateTexts$, valueTransformer) {
17
+ var _this = _super.call(this, control, changeDetectorRef, valueTransformer) || this;
20
18
  _this.injector = injector;
21
19
  _this.isMobile = isMobile;
22
20
  _this.dialogService = dialogService;
@@ -26,6 +24,7 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
26
24
  _this.dateFormat = dateFormat;
27
25
  _this.dateSeparator = dateSeparator;
28
26
  _this.dateTexts$ = dateTexts$;
27
+ _this.valueTransformer = valueTransformer;
29
28
  _this.textMaskOptions = {
30
29
  mask: tuiCreateDateRangeMask(_this.dateFormat, _this.dateSeparator),
31
30
  pipe: tuiCreateAutoCorrectedDateRangePipe(_this),
@@ -46,7 +45,6 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
46
45
  }));
47
46
  return _this;
48
47
  }
49
- TuiInputDateRangeComponent_1 = TuiInputDateRangeComponent;
50
48
  Object.defineProperty(TuiInputDateRangeComponent.prototype, "nativeFocusableElement", {
51
49
  get: function () {
52
50
  return this.textfield ? this.textfield.nativeFocusableElement : null;
@@ -79,7 +77,7 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
79
77
  });
80
78
  Object.defineProperty(TuiInputDateRangeComponent.prototype, "canOpen", {
81
79
  get: function () {
82
- return !this.computedDisabled && !this.readOnly && !this.computedMobile;
80
+ return this.interactive && !this.computedMobile;
83
81
  },
84
82
  enumerable: true,
85
83
  configurable: true
@@ -272,7 +270,6 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
272
270
  TuiInputDateRangeComponent.prototype.getDateRangeFiller = function (dateFiller) {
273
271
  return "" + dateFiller + RANGE_SEPARATOR_CHAR + dateFiller;
274
272
  };
275
- var TuiInputDateRangeComponent_1;
276
273
  TuiInputDateRangeComponent.ctorParameters = function () { return [
277
274
  { type: NgControl, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [NgControl,] }] },
278
275
  { type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] },
@@ -284,7 +281,8 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
284
281
  { type: TuiTextfieldExampleTextDirective, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_EXAMPLE_TEXT,] }] },
285
282
  { type: undefined, decorators: [{ type: Inject, args: [TUI_DATE_FORMAT,] }] },
286
283
  { type: String, decorators: [{ type: Inject, args: [TUI_DATE_SEPARATOR,] }] },
287
- { type: Observable, decorators: [{ type: Inject, args: [TUI_DATE_TEXTS,] }] }
284
+ { type: Observable, decorators: [{ type: Inject, args: [TUI_DATE_TEXTS,] }] },
285
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [TUI_DATE_RANGE_VALUE_TRANSFORMER,] }] }
288
286
  ]; };
289
287
  __decorate([
290
288
  ViewChild(TuiPrimitiveTextfieldComponent)
@@ -324,22 +322,11 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
324
322
  __decorate([
325
323
  HostListener('click')
326
324
  ], TuiInputDateRangeComponent.prototype, "onClick", null);
327
- TuiInputDateRangeComponent = TuiInputDateRangeComponent_1 = __decorate([
325
+ TuiInputDateRangeComponent = __decorate([
328
326
  Component({
329
327
  selector: 'tui-input-date-range',
330
- template: "<tui-hosted-dropdown\n class=\"hosted\"\n [canOpen]=\"canOpen\"\n [content]=\"dropdown\"\n [open]=\"open && canOpen\"\n (openChange)=\"onOpenChange($event)\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n *tuiLet=\"dateFiller$ | async as dateFiller\"\n automation-id=\"tui-input-date-range__textfield\"\n tuiValueAccessor\n tuiTextfieldInputMode=\"numeric\"\n class=\"textfield\"\n [pseudoFocused]=\"innerPseudoFocused\"\n [pseudoHovered]=\"pseudoHovered\"\n [pseudoPressed]=\"pseudoPressed\"\n [invalid]=\"computedInvalid\"\n [tuiTextfieldExampleText]=\"computedExampleText\"\n [nativeId]=\"nativeId\"\n [filler]=\"getComputedRangeFiller(dateFiller)\"\n [readOnly]=\"readOnly\"\n [iconContent]=\"computedMobile ? iconContent : calendarIcon\"\n [disabled]=\"computedDisabled\"\n [textMask]=\"computedMask\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (pressedChange)=\"onPressed($event)\"\n >\n <ng-content></ng-content>\n </tui-primitive-textfield>\n\n <ng-template #iconContent>\n <tui-svg\n automation-id=\"tui-input-date-range__icon\"\n [class.icon]=\"!computedDisabled\"\n [src]=\"calendarIcon\"\n (click)=\"onMobileClick()\"\n ></tui-svg>\n </ng-template>\n\n <ng-template #dropdown>\n <tui-calendar-range\n [defaultViewedMonth]=\"defaultViewedMonth\"\n [disabledItemHandler]=\"disabledItemHandler\"\n [items]=\"items\"\n [min]=\"min\"\n [max]=\"max\"\n [markerHandler]=\"markerHandler\"\n [minLength]=\"minLength\"\n [maxLength]=\"maxLength\"\n [value]=\"value\"\n (valueChange)=\"onRangeChange($event)\"\n ></tui-calendar-range>\n </ng-template>\n</tui-hosted-dropdown>\n",
331
- providers: [
332
- {
333
- provide: TUI_FOCUSABLE_ITEM_ACCESSOR,
334
- useExisting: forwardRef(function () { return TuiInputDateRangeComponent_1; }),
335
- },
336
- {
337
- provide: TUI_CALENDAR_DATA_STREAM,
338
- deps: [[new Optional(), new Self(), NgControl]],
339
- useFactory: RANGE_STREAM_FACTORY,
340
- },
341
- LEFT_ALIGNED_DROPDOWN_CONTROLLER_PROVIDER,
342
- ],
328
+ template: "<tui-hosted-dropdown\n class=\"hosted\"\n [canOpen]=\"canOpen\"\n [content]=\"dropdown\"\n [open]=\"open && canOpen\"\n (openChange)=\"onOpenChange($event)\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n *tuiLet=\"dateFiller$ | async as dateFiller\"\n automation-id=\"tui-input-date-range__textfield\"\n tuiValueAccessor\n tuiTextfieldInputMode=\"numeric\"\n class=\"textfield\"\n [pseudoFocused]=\"innerPseudoFocused\"\n [pseudoHovered]=\"pseudoHovered\"\n [pseudoPressed]=\"pseudoPressed\"\n [invalid]=\"computedInvalid\"\n [tuiTextfieldExampleText]=\"computedExampleText\"\n [nativeId]=\"nativeId\"\n [filler]=\"getComputedRangeFiller(dateFiller)\"\n [readOnly]=\"readOnly\"\n [iconContent]=\"computedMobile ? mobileIconContent : iconContent\"\n [disabled]=\"computedDisabled\"\n [textMask]=\"computedMask\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (pressedChange)=\"onPressed($event)\"\n >\n <ng-content></ng-content>\n <ng-content select=\"input\" ngProjectAs=\"input\"></ng-content>\n </tui-primitive-textfield>\n\n <ng-template #mobileIconContent>\n <tui-svg\n automation-id=\"tui-input-date-range__icon\"\n [class.icon]=\"!computedDisabled\"\n [src]=\"calendarIcon\"\n (click)=\"onMobileClick()\"\n ></tui-svg>\n </ng-template>\n\n <ng-template #iconContent>\n <tui-svg\n [class.icon]=\"!computedDisabled\"\n [src]=\"calendarIcon\"\n ></tui-svg>\n </ng-template>\n\n <ng-template #dropdown>\n <tui-calendar-range\n [defaultViewedMonth]=\"defaultViewedMonth\"\n [disabledItemHandler]=\"disabledItemHandler\"\n [items]=\"items\"\n [min]=\"min\"\n [max]=\"max\"\n [markerHandler]=\"markerHandler\"\n [minLength]=\"minLength\"\n [maxLength]=\"maxLength\"\n [value]=\"value\"\n (valueChange)=\"onRangeChange($event)\"\n ></tui-calendar-range>\n </ng-template>\n</tui-hosted-dropdown>\n",
329
+ providers: TUI_INPUT_DATE_RANGE_PROVIDERS,
343
330
  styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:left}:host._disabled{pointer-events:none}.hosted{display:block;border-radius:inherit}.textfield{border-radius:inherit;text-align:inherit}.icon{pointer-events:auto}"]
344
331
  }),
345
332
  __param(0, Optional()),
@@ -355,9 +342,11 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
355
342
  __param(7, Inject(TUI_TEXTFIELD_EXAMPLE_TEXT)),
356
343
  __param(8, Inject(TUI_DATE_FORMAT)),
357
344
  __param(9, Inject(TUI_DATE_SEPARATOR)),
358
- __param(10, Inject(TUI_DATE_TEXTS))
345
+ __param(10, Inject(TUI_DATE_TEXTS)),
346
+ __param(11, Optional()),
347
+ __param(11, Inject(TUI_DATE_RANGE_VALUE_TRANSFORMER))
359
348
  ], TuiInputDateRangeComponent);
360
349
  return TuiInputDateRangeComponent;
361
350
  }(AbstractTuiNullableControl));
362
351
  export { TuiInputDateRangeComponent };
363
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS1yYW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS1yYW5nZS8iLCJzb3VyY2VzIjpbImlucHV0LWRhdGUtcmFuZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osSUFBSSxFQUNKLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUNILDBCQUEwQixFQUMxQixvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQix3QkFBd0IsRUFDeEIsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsMkJBQTJCLEVBQzNCLGFBQWEsRUFDYixZQUFZLEVBS1osV0FBVyxFQUNYLGNBQWMsRUFHZCxRQUFRLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILFVBQVUsRUFDViwwQkFBMEIsRUFDMUIsMEJBQTBCLEVBQzFCLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLDhCQUE4QixFQUM5QixnQ0FBZ0MsRUFDaEMseUJBQXlCLEVBQ3pCLGtCQUFrQixFQUNsQixxQkFBcUIsR0FDeEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUMsVUFBVSxFQUFFLDJCQUEyQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDaEYsT0FBTyxFQUFDLHlDQUF5QyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDbEYsT0FBTyxFQUNILHdCQUF3QixFQUN4Qixj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QUNoQixXQUFBLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUNyQixXQUFBLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO1FBQ3hCLFdBQUEsUUFBUSxFQUFFLENBQUE7UUFDVixXQUFBLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1FBRTNCLFdBQUEsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUE7UUFFMUIsV0FBQSxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQTtRQUVsQyxXQUFBLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQTtRQUN2QixXQUFBLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1FBQzFCLFlBQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFBO09BeEVsQiwwQkFBMEIsQ0F1VXRDO0lBQUQsaUNBQUM7Q0FBQSxBQXZVRCxDQUNZLDBCQUEwQixHQXNVckM7U0F2VVksMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGYsXG4gICAgVHlwZSxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2wsXG4gICAgQUxXQVlTX0ZBTFNFX0hBTkRMRVIsXG4gICAgY2hhbmdlRGF0ZVNlcGFyYXRvcixcbiAgICBEQVRFX0ZJTExFUl9MRU5HVEgsXG4gICAgREFURV9SQU5HRV9GSUxMRVJfTEVOR1RILFxuICAgIG51bGxhYmxlU2FtZSxcbiAgICBSQU5HRV9TRVBBUkFUT1JfQ0hBUixcbiAgICBzZXROYXRpdmVGb2N1c2VkLFxuICAgIFRVSV9EQVRFX0ZPUk1BVCxcbiAgICBUVUlfREFURV9TRVBBUkFUT1IsXG4gICAgVFVJX0ZJUlNUX0RBWSxcbiAgICBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgVFVJX0lTX01PQklMRSxcbiAgICBUVUlfTEFTVF9EQVksXG4gICAgVHVpQm9vbGVhbkhhbmRsZXIsXG4gICAgVHVpRGF0ZU1vZGUsXG4gICAgVHVpRGF5LFxuICAgIFR1aURheUxpa2UsXG4gICAgVHVpRGF5UmFuZ2UsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIFR1aU1hcHBlcixcbiAgICBUdWlNb250aCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIHNpemVCaWdnZXIsXG4gICAgVFVJX0RFRkFVTFRfTUFSS0VSX0hBTkRMRVIsXG4gICAgVFVJX1RFWFRGSUVMRF9FWEFNUExFX1RFWFQsXG4gICAgVFVJX1RFWFRGSUVMRF9TSVpFLFxuICAgIFR1aURpYWxvZ1NlcnZpY2UsXG4gICAgVHVpTWFya2VySGFuZGxlcixcbiAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQsXG4gICAgVHVpVGV4dGZpZWxkRXhhbXBsZVRleHREaXJlY3RpdmUsXG4gICAgVHVpVGV4dGZpZWxkU2l6ZURpcmVjdGl2ZSxcbiAgICBUdWlUZXh0TWFza09wdGlvbnMsXG4gICAgVHVpV2l0aE9wdGlvbmFsTWluTWF4LFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1R1aURheVJhbmdlUGVyaW9kfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NsYXNzZXMnO1xuaW1wb3J0IHtFTVBUWV9NQVNLLCBNQVhfREFZX1JBTkdFX0xFTkdUSF9NQVBQRVJ9IGZyb20gJ0B0YWlnYS11aS9raXQvY29uc3RhbnRzJztcbmltcG9ydCB7TEVGVF9BTElHTkVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVJ9IGZyb20gJ0B0YWlnYS11aS9raXQvcHJvdmlkZXJzJztcbmltcG9ydCB7XG4gICAgVFVJX0NBTEVOREFSX0RBVEFfU1RSRUFNLFxuICAgIFRVSV9EQVRFX1RFWFRTLFxuICAgIFRVSV9NT0JJTEVfQ0FMRU5EQVIsXG59IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7XG4gICAgdHVpQ3JlYXRlQXV0b0NvcnJlY3RlZERhdGVSYW5nZVBpcGUsXG4gICAgdHVpQ3JlYXRlRGF0ZVJhbmdlTWFzayxcbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC91dGlscy9tYXNrJztcbmltcG9ydCB7VHVpUmVwbGF5Q29udHJvbFZhbHVlQ2hhbmdlc0ZhY3Rvcnl9IGZyb20gJ0B0YWlnYS11aS9raXQvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbXBvbmVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8vIFRPRE86IHJlbW92ZSBpbiBpdnkgY29tcGlsYXRpb25cbmV4cG9ydCBjb25zdCBSQU5HRV9TVFJFQU1fRkFDVE9SWSA9IFR1aVJlcGxheUNvbnRyb2xWYWx1ZUNoYW5nZXNGYWN0b3J5O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1kYXRlLXJhbmdlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtZGF0ZS1yYW5nZS50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC1kYXRlLXJhbmdlLnN0eWxlLmxlc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpSW5wdXREYXRlUmFuZ2VDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfQ0FMRU5EQVJfREFUQV9TVFJFQU0sXG4gICAgICAgICAgICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBuZXcgU2VsZigpLCBOZ0NvbnRyb2xdXSxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IFJBTkdFX1NUUkVBTV9GQUNUT1JZLFxuICAgICAgICB9LFxuICAgICAgICBMRUZUX0FMSUdORURfRFJPUERPV05fQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dERhdGVSYW5nZUNvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2w8VHVpRGF5UmFuZ2U+XG4gICAgaW1wbGVtZW50cyBUdWlXaXRoT3B0aW9uYWxNaW5NYXg8VHVpRGF5PiwgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQFZpZXdDaGlsZChUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGQ/OiBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQ7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRNYXNrT3B0aW9uczogVHVpVGV4dE1hc2tPcHRpb25zID0ge1xuICAgICAgICBtYXNrOiB0dWlDcmVhdGVEYXRlUmFuZ2VNYXNrKHRoaXMuZGF0ZUZvcm1hdCwgdGhpcy5kYXRlU2VwYXJhdG9yKSxcbiAgICAgICAgcGlwZTogdHVpQ3JlYXRlQXV0b0NvcnJlY3RlZERhdGVSYW5nZVBpcGUodGhpcyksXG4gICAgICAgIGd1aWRlOiBmYWxzZSxcbiAgICB9O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGRpc2FibGVkSXRlbUhhbmRsZXI6IFR1aUJvb2xlYW5IYW5kbGVyPFR1aURheT4gPSBBTFdBWVNfRkFMU0VfSEFORExFUjtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtYXJrZXJIYW5kbGVyOiBUdWlNYXJrZXJIYW5kbGVyID0gVFVJX0RFRkFVTFRfTUFSS0VSX0hBTkRMRVI7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZGVmYXVsdFZpZXdlZE1vbnRoID0gVHVpTW9udGguY3VycmVudExvY2FsKCk7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaXRlbXM6IFJlYWRvbmx5QXJyYXk8VHVpRGF5UmFuZ2VQZXJpb2Q+ID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWluID0gVFVJX0ZJUlNUX0RBWTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtYXggPSBUVUlfTEFTVF9EQVk7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWluTGVuZ3RoOiBUdWlEYXlMaWtlIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWF4TGVuZ3RoOiBUdWlEYXlMaWtlIHwgbnVsbCA9IG51bGw7XG5cbiAgICBvcGVuID0gZmFsc2U7XG5cbiAgICByZWFkb25seSBtYXhMZW5ndGhNYXBwZXI6IFR1aU1hcHBlcjxUdWlEYXksIFR1aURheT4gPSBNQVhfREFZX1JBTkdFX0xFTkdUSF9NQVBQRVI7XG4gICAgcmVhZG9ubHkgZGF0ZUZpbGxlciQgPSB0aGlzLmRhdGVUZXh0cyQucGlwZShcbiAgICAgICAgbWFwKGRhdGVUZXh0cyA9PlxuICAgICAgICAgICAgY2hhbmdlRGF0ZVNlcGFyYXRvcihkYXRlVGV4dHNbdGhpcy5kYXRlRm9ybWF0XSwgdGhpcy5kYXRlU2VwYXJhdG9yKSxcbiAgICAgICAgKSxcbiAgICApO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChJbmplY3RvcikgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIEBJbmplY3QoVFVJX0lTX01PQklMRSkgcHJpdmF0ZSByZWFkb25seSBpc01vYmlsZTogYm9vbGVhbixcbiAgICAgICAgQEluamVjdChUdWlEaWFsb2dTZXJ2aWNlKSBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1NlcnZpY2U6IFR1aURpYWxvZ1NlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVFVJX01PQklMRV9DQUxFTkRBUilcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtb2JpbGVDYWxlbmRhcjogVHlwZTxhbnk+IHwgbnVsbCxcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX1NJWkUpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkU2l6ZTogVHVpVGV4dGZpZWxkU2l6ZURpcmVjdGl2ZSxcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX0VYQU1QTEVfVEVYVClcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGRFeGFtcGxlVGV4dDogVHVpVGV4dGZpZWxkRXhhbXBsZVRleHREaXJlY3RpdmUsXG4gICAgICAgIEBJbmplY3QoVFVJX0RBVEVfRk9STUFUKSByZWFkb25seSBkYXRlRm9ybWF0OiBUdWlEYXRlTW9kZSxcbiAgICAgICAgQEluamVjdChUVUlfREFURV9TRVBBUkFUT1IpIHJlYWRvbmx5IGRhdGVTZXBhcmF0b3I6IHN0cmluZyxcbiAgICAgICAgQEluamVjdChUVUlfREFURV9URVhUUylcbiAgICAgICAgcmVhZG9ubHkgZGF0ZVRleHRzJDogT2JzZXJ2YWJsZTxSZWNvcmQ8VHVpRGF0ZU1vZGUsIHN0cmluZz4+LFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0ZmllbGQgPyB0aGlzLnRleHRmaWVsZC5uYXRpdmVGb2N1c2FibGVFbGVtZW50IDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy50ZXh0ZmllbGQgJiYgdGhpcy50ZXh0ZmllbGQuZm9jdXNlZDtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRNb2JpbGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzTW9iaWxlICYmICEhdGhpcy5tb2JpbGVDYWxlbmRhcjtcbiAgICB9XG5cbiAgICBnZXQgY2FsZW5kYXJJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBzaXplQmlnZ2VyKHRoaXMudGV4dGZpZWxkU2l6ZS5zaXplKVxuICAgICAgICAgICAgPyAndHVpSWNvbkNhbGVuZGFyTGFyZ2UnXG4gICAgICAgICAgICA6ICd0dWlJY29uQ2FsZW5kYXInO1xuICAgIH1cblxuICAgIGdldCBjYW5PcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuY29tcHV0ZWREaXNhYmxlZCAmJiAhdGhpcy5yZWFkT25seSAmJiAhdGhpcy5jb21wdXRlZE1vYmlsZTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRFeGFtcGxlVGV4dCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pdGVtcy5sZW5ndGggPyB0aGlzLnRleHRmaWVsZEV4YW1wbGVUZXh0LmV4YW1wbGVUZXh0IDogJyc7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkTWFzaygpOiBUdWlUZXh0TWFza09wdGlvbnMge1xuICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmVQZXJpb2QgPyBFTVBUWV9NQVNLIDogdGhpcy50ZXh0TWFza09wdGlvbnM7XG4gICAgfVxuXG4gICAgZ2V0IGFjdGl2ZVBlcmlvZCgpOiBUdWlEYXlSYW5nZVBlcmlvZCB8IG51bGwge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5pdGVtcy5maW5kKGl0ZW0gPT5cbiAgICAgICAgICAgICAgICBudWxsYWJsZVNhbWUoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0ucmFuZ2UsXG4gICAgICAgICAgICAgICAgICAgIChhLCBiKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgYS5mcm9tLmRheVNhbWUoYi5mcm9tLmRheUxpbWl0KHRoaXMubWluLCB0aGlzLm1heCkpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBhLnRvLmRheVNhbWUoYi50by5kYXlMaW1pdCh0aGlzLm1pbiwgdGhpcy5tYXgpKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKSB8fCBudWxsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlLCBuYXRpdmVWYWx1ZSwgYWN0aXZlUGVyaW9kfSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKGFjdGl2ZVBlcmlvZCkge1xuICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhhY3RpdmVQZXJpb2QpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgICA/IHZhbHVlLmdldEZvcm1hdHRlZERheVJhbmdlKHRoaXMuZGF0ZUZvcm1hdCwgdGhpcy5kYXRlU2VwYXJhdG9yKVxuICAgICAgICAgICAgOiBuYXRpdmVWYWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgaW5uZXJQc2V1ZG9Gb2N1c2VkKCk6IGJvb2xlYW4gfCBudWxsIHtcbiAgICAgICAgaWYgKHRoaXMucHNldWRvRm9jdXNlZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm9wZW4gfHwgdGhpcy5jb21wdXRlZEZvY3VzZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZVZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQudmFsdWUgOiAnJztcbiAgICB9XG5cbiAgICBzZXQgbmF0aXZlVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAoIXRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIG9uQ2xpY2soKSB7XG4gICAgICAgIGlmICghdGhpcy5pc01vYmlsZSkge1xuICAgICAgICAgICAgdGhpcy50b2dnbGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldENvbXB1dGVkUmFuZ2VGaWxsZXIoZGF0ZUZpbGxlcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlUGVyaW9kID8gJycgOiB0aGlzLmdldERhdGVSYW5nZUZpbGxlcihkYXRlRmlsbGVyKTtcbiAgICB9XG5cbiAgICBvbk1vYmlsZUNsaWNrKCkge1xuICAgICAgICBpZiAoIXRoaXMubW9iaWxlQ2FsZW5kYXIpIHtcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlKCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZGlhbG9nU2VydmljZVxuICAgICAgICAgICAgLm9wZW48VHVpRGF5UmFuZ2U+KFxuICAgICAgICAgICAgICAgIG5ldyBQb2x5bW9ycGhldXNDb21wb25lbnQodGhpcy5tb2JpbGVDYWxlbmRhciwgdGhpcy5pbmplY3RvciksXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBzaXplOiAnZnVsbHNjcmVlbicsXG4gICAgICAgICAgICAgICAgICAgIGNsb3NlYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpbmdsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW46IHRoaXMubWF4TGVuZ3RoTWFwcGVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWluLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXhMZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXg6IHRoaXMubWF4TGVuZ3RoTWFwcGVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWF4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXhMZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWRJdGVtSGFuZGxlcjogdGhpcy5kaXNhYmxlZEl0ZW1IYW5kbGVyLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uT3BlbkNoYW5nZShvcGVuOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMub3BlbiA9IG9wZW47XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLm9uT3BlbkNoYW5nZSh0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWx1ZS5sZW5ndGggIT09IERBVEVfUkFOR0VfRklMTEVSX0xFTkdUSCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShudWxsKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFyc2VkVmFsdWUgPSBUdWlEYXlSYW5nZS5ub3JtYWxpemVQYXJzZSh2YWx1ZSwgdGhpcy5kYXRlRm9ybWF0KTtcblxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKFxuICAgICAgICAgICAgIXRoaXMubWluTGVuZ3RoICYmICF0aGlzLm1heExlbmd0aFxuICAgICAgICAgICAgICAgID8gcGFyc2VkVmFsdWVcbiAgICAgICAgICAgICAgICA6IHRoaXMuY2xhbXBWYWx1ZShwYXJzZWRWYWx1ZSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgb25SYW5nZUNoYW5nZShyYW5nZTogVHVpRGF5UmFuZ2UgfCBudWxsKSB7XG4gICAgICAgIHRoaXMudG9nZ2xlKCk7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuXG4gICAgICAgIGlmICghcmFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghbnVsbGFibGVTYW1lPFR1aURheVJhbmdlPih0aGlzLnZhbHVlLCByYW5nZSwgKGEsIGIpID0+IGEuZGF5U2FtZShiKSkpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUocmFuZ2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25JdGVtU2VsZWN0KGl0ZW06IHN0cmluZyB8IFR1aURheVJhbmdlUGVyaW9kKSB7XG4gICAgICAgIHRoaXMudG9nZ2xlKCk7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuXG4gICAgICAgIGlmICh0eXBlb2YgaXRlbSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUoaXRlbS5yYW5nZS5kYXlMaW1pdCh0aGlzLm1pbiwgdGhpcy5tYXgpKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlUGVyaW9kICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKG51bGwpO1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9ICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Ib3ZlcmVkKGhvdmVyZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVIb3ZlcmVkKGhvdmVyZWQpO1xuICAgIH1cblxuICAgIG9uUHJlc3NlZChwcmVzc2VkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlUHJlc3NlZChwcmVzc2VkKTtcbiAgICB9XG5cbiAgICBvbkFjdGl2ZVpvbmUoZm9jdXNlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoZm9jdXNlZCk7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIWZvY3VzZWQgJiZcbiAgICAgICAgICAgICF0aGlzLml0ZW1TZWxlY3RlZCAmJlxuICAgICAgICAgICAgKHRoaXMubmF0aXZlVmFsdWUubGVuZ3RoID09PSBEQVRFX0ZJTExFUl9MRU5HVEggfHxcbiAgICAgICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlLmxlbmd0aCA9PT1cbiAgICAgICAgICAgICAgICAgICAgREFURV9GSUxMRVJfTEVOR1RIICsgUkFOR0VfU0VQQVJBVE9SX0NIQVIubGVuZ3RoKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUoXG4gICAgICAgICAgICAgICAgVHVpRGF5UmFuZ2Uubm9ybWFsaXplUGFyc2UodGhpcy5uYXRpdmVWYWx1ZSwgdGhpcy5kYXRlRm9ybWF0KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBUdWlEYXlSYW5nZSB8IG51bGwpIHtcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSB2YWx1ZSA/IHRoaXMuY29tcHV0ZWRWYWx1ZSA6ICcnO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGl0ZW1TZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gU3RyaW5nKGl0ZW0pID09PSB0aGlzLm5hdGl2ZVZhbHVlKSAhPT0gLTE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0b2dnbGUoKSB7XG4gICAgICAgIHRoaXMub3BlbiA9ICF0aGlzLm9wZW47XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1c0lucHV0KHByZXZlbnRTY3JvbGw6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICBzZXROYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCwgdHJ1ZSwgcHJldmVudFNjcm9sbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNsYW1wVmFsdWUodmFsdWU6IFR1aURheVJhbmdlKTogVHVpRGF5UmFuZ2Uge1xuICAgICAgICBjb25zdCBjbGFtcGVkQm90dG9tID1cbiAgICAgICAgICAgIHRoaXMubWluTGVuZ3RoICYmIHZhbHVlLmZyb20uYXBwZW5kKHRoaXMubWluTGVuZ3RoKS5kYXlBZnRlcih2YWx1ZS50bylcbiAgICAgICAgICAgICAgICA/IG5ldyBUdWlEYXlSYW5nZShcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS5mcm9tLFxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLmZyb20uYXBwZW5kKHRoaXMubWluTGVuZ3RoKS5hcHBlbmQoe2RheTogLTF9KSxcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICA6IHZhbHVlO1xuXG4gICAgICAgIGNvbnN0IGF2YWlsYWJsZU1heCA9IHRoaXMubWF4TGVuZ3RoXG4gICAgICAgICAgICA/IGNsYW1wZWRCb3R0b20uZnJvbS5hcHBlbmQodGhpcy5tYXhMZW5ndGgpLmFwcGVuZCh7ZGF5OiAtMX0pXG4gICAgICAgICAgICA6IHRoaXMubWF4O1xuXG4gICAgICAgIHJldHVybiBjbGFtcGVkQm90dG9tLnRvLmRheUFmdGVyKGF2YWlsYWJsZU1heClcbiAgICAgICAgICAgID8gbmV3IFR1aURheVJhbmdlKGNsYW1wZWRCb3R0b20uZnJvbSwgYXZhaWxhYmxlTWF4KVxuICAgICAgICAgICAgOiBjbGFtcGVkQm90dG9tO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGF0ZVJhbmdlRmlsbGVyKGRhdGVGaWxsZXI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHtkYXRlRmlsbGVyfSR7UkFOR0VfU0VQQVJBVE9SX0NIQVJ9JHtkYXRlRmlsbGVyfWA7XG4gICAgfVxufVxuIl19
352
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS1yYW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS1yYW5nZS8iLCJzb3VyY2VzIjpbImlucHV0LWRhdGUtcmFuZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBQ0wsUUFBUSxFQUNSLElBQUksRUFDSixJQUFJLEVBQ0osU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsMEJBQTBCLEVBQzFCLG9CQUFvQixFQUNwQixtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLHdCQUF3QixFQUN4QixZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUNoQixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixhQUFhLEVBQ2IsWUFBWSxFQU1aLFdBQVcsRUFDWCxjQUFjLEVBR2QsUUFBUSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxVQUFVLEVBQ1YsMEJBQTBCLEVBQzFCLDBCQUEwQixFQUMxQixrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQiw4QkFBOEIsRUFDOUIsZ0NBQWdDLEVBQ2hDLHlCQUF5QixFQUN6QixrQkFBa0IsRUFDbEIscUJBQXFCLEdBQ3hCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFDLFVBQVUsRUFBRSwyQkFBMkIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2hGLE9BQU8sRUFDSCxnQ0FBZ0MsRUFDaEMsY0FBYyxFQUNkLG1CQUFtQixHQUN0QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFDSCxtQ0FBbUMsRUFDbkMs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QixZQUFBLFFBQVEsRUFBRSxDQUFBO1FBQ1YsWUFBQSxNQUFNLENBQUMsZ0NBQWdDLENBQUMsQ0FBQTtPQTNFcEMsMEJBQTBCLENBMFV0QztJQUFELGlDQUFDO0NBQUEsQUExVUQsQ0FDWSwwQkFBMEIsR0F5VXJDO1NBMVVZLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZixcbiAgICBUeXBlLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aU51bGxhYmxlQ29udHJvbCxcbiAgICBBTFdBWVNfRkFMU0VfSEFORExFUixcbiAgICBjaGFuZ2VEYXRlU2VwYXJhdG9yLFxuICAgIERBVEVfRklMTEVSX0xFTkdUSCxcbiAgICBEQVRFX1JBTkdFX0ZJTExFUl9MRU5HVEgsXG4gICAgbnVsbGFibGVTYW1lLFxuICAgIFJBTkdFX1NFUEFSQVRPUl9DSEFSLFxuICAgIHNldE5hdGl2ZUZvY3VzZWQsXG4gICAgVFVJX0RBVEVfRk9STUFULFxuICAgIFRVSV9EQVRFX1NFUEFSQVRPUixcbiAgICBUVUlfRklSU1RfREFZLFxuICAgIFRVSV9JU19NT0JJTEUsXG4gICAgVFVJX0xBU1RfREFZLFxuICAgIFR1aUJvb2xlYW5IYW5kbGVyLFxuICAgIFR1aUNvbnRyb2xWYWx1ZVRyYW5zZm9ybWVyLFxuICAgIFR1aURhdGVNb2RlLFxuICAgIFR1aURheSxcbiAgICBUdWlEYXlMaWtlLFxuICAgIFR1aURheVJhbmdlLFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICBUdWlNYXBwZXIsXG4gICAgVHVpTW9udGgsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBzaXplQmlnZ2VyLFxuICAgIFRVSV9ERUZBVUxUX01BUktFUl9IQU5ETEVSLFxuICAgIFRVSV9URVhURklFTERfRVhBTVBMRV9URVhULFxuICAgIFRVSV9URVhURklFTERfU0laRSxcbiAgICBUdWlEaWFsb2dTZXJ2aWNlLFxuICAgIFR1aU1hcmtlckhhbmRsZXIsXG4gICAgVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgIFR1aVRleHRmaWVsZEV4YW1wbGVUZXh0RGlyZWN0aXZlLFxuICAgIFR1aVRleHRmaWVsZFNpemVEaXJlY3RpdmUsXG4gICAgVHVpVGV4dE1hc2tPcHRpb25zLFxuICAgIFR1aVdpdGhPcHRpb25hbE1pbk1heCxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUdWlEYXlSYW5nZVBlcmlvZH0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jbGFzc2VzJztcbmltcG9ydCB7RU1QVFlfTUFTSywgTUFYX0RBWV9SQU5HRV9MRU5HVEhfTUFQUEVSfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICAgIFRVSV9EQVRFX1JBTkdFX1ZBTFVFX1RSQU5TRk9STUVSLFxuICAgIFRVSV9EQVRFX1RFWFRTLFxuICAgIFRVSV9NT0JJTEVfQ0FMRU5EQVIsXG59IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7XG4gICAgdHVpQ3JlYXRlQXV0b0NvcnJlY3RlZERhdGVSYW5nZVBpcGUsXG4gICAgdHVpQ3JlYXRlRGF0ZVJhbmdlTWFzayxcbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC91dGlscy9tYXNrJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29tcG9uZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtUVUlfSU5QVVRfREFURV9SQU5HRV9QUk9WSURFUlN9IGZyb20gJy4vaW5wdXQtZGF0ZS1yYW5nZS5wcm92aWRlcnMnO1xuXG4vLyBAZHluYW1pY1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtZGF0ZS1yYW5nZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWRhdGUtcmFuZ2UudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtZGF0ZS1yYW5nZS5zdHlsZS5sZXNzJ10sXG4gICAgcHJvdmlkZXJzOiBUVUlfSU5QVVRfREFURV9SQU5HRV9QUk9WSURFUlMsXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0RGF0ZVJhbmdlQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aU51bGxhYmxlQ29udHJvbDxUdWlEYXlSYW5nZT5cbiAgICBpbXBsZW1lbnRzIFR1aVdpdGhPcHRpb25hbE1pbk1heDxUdWlEYXk+LCBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3JcbntcbiAgICBAVmlld0NoaWxkKFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZD86IFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudDtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dE1hc2tPcHRpb25zOiBUdWlUZXh0TWFza09wdGlvbnMgPSB7XG4gICAgICAgIG1hc2s6IHR1aUNyZWF0ZURhdGVSYW5nZU1hc2sodGhpcy5kYXRlRm9ybWF0LCB0aGlzLmRhdGVTZXBhcmF0b3IpLFxuICAgICAgICBwaXBlOiB0dWlDcmVhdGVBdXRvQ29ycmVjdGVkRGF0ZVJhbmdlUGlwZSh0aGlzKSxcbiAgICAgICAgZ3VpZGU6IGZhbHNlLFxuICAgIH07XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZGlzYWJsZWRJdGVtSGFuZGxlcjogVHVpQm9vbGVhbkhhbmRsZXI8VHVpRGF5PiA9IEFMV0FZU19GQUxTRV9IQU5ETEVSO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1hcmtlckhhbmRsZXI6IFR1aU1hcmtlckhhbmRsZXIgPSBUVUlfREVGQVVMVF9NQVJLRVJfSEFORExFUjtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBkZWZhdWx0Vmlld2VkTW9udGggPSBUdWlNb250aC5jdXJyZW50TG9jYWwoKTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBpdGVtczogUmVhZG9ubHlBcnJheTxUdWlEYXlSYW5nZVBlcmlvZD4gPSBbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtaW4gPSBUVUlfRklSU1RfREFZO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1heCA9IFRVSV9MQVNUX0RBWTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtaW5MZW5ndGg6IFR1aURheUxpa2UgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtYXhMZW5ndGg6IFR1aURheUxpa2UgfCBudWxsID0gbnVsbDtcblxuICAgIG9wZW4gPSBmYWxzZTtcblxuICAgIHJlYWRvbmx5IG1heExlbmd0aE1hcHBlcjogVHVpTWFwcGVyPFR1aURheSwgVHVpRGF5PiA9IE1BWF9EQVlfUkFOR0VfTEVOR1RIX01BUFBFUjtcbiAgICByZWFkb25seSBkYXRlRmlsbGVyJCA9IHRoaXMuZGF0ZVRleHRzJC5waXBlKFxuICAgICAgICBtYXAoZGF0ZVRleHRzID0+XG4gICAgICAgICAgICBjaGFuZ2VEYXRlU2VwYXJhdG9yKGRhdGVUZXh0c1t0aGlzLmRhdGVGb3JtYXRdLCB0aGlzLmRhdGVTZXBhcmF0b3IpLFxuICAgICAgICApLFxuICAgICk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KE5nQ29udHJvbClcbiAgICAgICAgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KEluamVjdG9yKSBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgQEluamVjdChUVUlfSVNfTU9CSUxFKSBwcml2YXRlIHJlYWRvbmx5IGlzTW9iaWxlOiBib29sZWFuLFxuICAgICAgICBASW5qZWN0KFR1aURpYWxvZ1NlcnZpY2UpIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nU2VydmljZTogVHVpRGlhbG9nU2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChUVUlfTU9CSUxFX0NBTEVOREFSKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1vYmlsZUNhbGVuZGFyOiBUeXBlPGFueT4gfCBudWxsLFxuICAgICAgICBASW5qZWN0KFRVSV9URVhURklFTERfU0laRSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGRTaXplOiBUdWlUZXh0ZmllbGRTaXplRGlyZWN0aXZlLFxuICAgICAgICBASW5qZWN0KFRVSV9URVhURklFTERfRVhBTVBMRV9URVhUKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZEV4YW1wbGVUZXh0OiBUdWlUZXh0ZmllbGRFeGFtcGxlVGV4dERpcmVjdGl2ZSxcbiAgICAgICAgQEluamVjdChUVUlfREFURV9GT1JNQVQpIHJlYWRvbmx5IGRhdGVGb3JtYXQ6IFR1aURhdGVNb2RlLFxuICAgICAgICBASW5qZWN0KFRVSV9EQVRFX1NFUEFSQVRPUikgcmVhZG9ubHkgZGF0ZVNlcGFyYXRvcjogc3RyaW5nLFxuICAgICAgICBASW5qZWN0KFRVSV9EQVRFX1RFWFRTKVxuICAgICAgICByZWFkb25seSBkYXRlVGV4dHMkOiBPYnNlcnZhYmxlPFJlY29yZDxUdWlEYXRlTW9kZSwgc3RyaW5nPj4sXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVFVJX0RBVEVfUkFOR0VfVkFMVUVfVFJBTlNGT1JNRVIpXG4gICAgICAgIHJlYWRvbmx5IHZhbHVlVHJhbnNmb3JtZXI6IFR1aUNvbnRyb2xWYWx1ZVRyYW5zZm9ybWVyPFR1aURheVJhbmdlIHwgbnVsbD4gfCBudWxsLFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZiwgdmFsdWVUcmFuc2Zvcm1lcik7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0ZmllbGQgPyB0aGlzLnRleHRmaWVsZC5uYXRpdmVGb2N1c2FibGVFbGVtZW50IDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy50ZXh0ZmllbGQgJiYgdGhpcy50ZXh0ZmllbGQuZm9jdXNlZDtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRNb2JpbGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzTW9iaWxlICYmICEhdGhpcy5tb2JpbGVDYWxlbmRhcjtcbiAgICB9XG5cbiAgICBnZXQgY2FsZW5kYXJJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBzaXplQmlnZ2VyKHRoaXMudGV4dGZpZWxkU2l6ZS5zaXplKVxuICAgICAgICAgICAgPyAndHVpSWNvbkNhbGVuZGFyTGFyZ2UnXG4gICAgICAgICAgICA6ICd0dWlJY29uQ2FsZW5kYXInO1xuICAgIH1cblxuICAgIGdldCBjYW5PcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnRlcmFjdGl2ZSAmJiAhdGhpcy5jb21wdXRlZE1vYmlsZTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRFeGFtcGxlVGV4dCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pdGVtcy5sZW5ndGggPyB0aGlzLnRleHRmaWVsZEV4YW1wbGVUZXh0LmV4YW1wbGVUZXh0IDogJyc7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkTWFzaygpOiBUdWlUZXh0TWFza09wdGlvbnMge1xuICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmVQZXJpb2QgPyBFTVBUWV9NQVNLIDogdGhpcy50ZXh0TWFza09wdGlvbnM7XG4gICAgfVxuXG4gICAgZ2V0IGFjdGl2ZVBlcmlvZCgpOiBUdWlEYXlSYW5nZVBlcmlvZCB8IG51bGwge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5pdGVtcy5maW5kKGl0ZW0gPT5cbiAgICAgICAgICAgICAgICBudWxsYWJsZVNhbWUoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0ucmFuZ2UsXG4gICAgICAgICAgICAgICAgICAgIChhLCBiKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgYS5mcm9tLmRheVNhbWUoYi5mcm9tLmRheUxpbWl0KHRoaXMubWluLCB0aGlzLm1heCkpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBhLnRvLmRheVNhbWUoYi50by5kYXlMaW1pdCh0aGlzLm1pbiwgdGhpcy5tYXgpKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKSB8fCBudWxsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlLCBuYXRpdmVWYWx1ZSwgYWN0aXZlUGVyaW9kfSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKGFjdGl2ZVBlcmlvZCkge1xuICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhhY3RpdmVQZXJpb2QpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgICA/IHZhbHVlLmdldEZvcm1hdHRlZERheVJhbmdlKHRoaXMuZGF0ZUZvcm1hdCwgdGhpcy5kYXRlU2VwYXJhdG9yKVxuICAgICAgICAgICAgOiBuYXRpdmVWYWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgaW5uZXJQc2V1ZG9Gb2N1c2VkKCk6IGJvb2xlYW4gfCBudWxsIHtcbiAgICAgICAgaWYgKHRoaXMucHNldWRvRm9jdXNlZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm9wZW4gfHwgdGhpcy5jb21wdXRlZEZvY3VzZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZVZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQudmFsdWUgOiAnJztcbiAgICB9XG5cbiAgICBzZXQgbmF0aXZlVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAoIXRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIG9uQ2xpY2soKSB7XG4gICAgICAgIGlmICghdGhpcy5pc01vYmlsZSkge1xuICAgICAgICAgICAgdGhpcy50b2dnbGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldENvbXB1dGVkUmFuZ2VGaWxsZXIoZGF0ZUZpbGxlcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlUGVyaW9kID8gJycgOiB0aGlzLmdldERhdGVSYW5nZUZpbGxlcihkYXRlRmlsbGVyKTtcbiAgICB9XG5cbiAgICBvbk1vYmlsZUNsaWNrKCkge1xuICAgICAgICBpZiAoIXRoaXMubW9iaWxlQ2FsZW5kYXIpIHtcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlKCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZGlhbG9nU2VydmljZVxuICAgICAgICAgICAgLm9wZW48VHVpRGF5UmFuZ2U+KFxuICAgICAgICAgICAgICAgIG5ldyBQb2x5bW9ycGhldXNDb21wb25lbnQodGhpcy5tb2JpbGVDYWxlbmRhciwgdGhpcy5pbmplY3RvciksXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBzaXplOiAnZnVsbHNjcmVlbicsXG4gICAgICAgICAgICAgICAgICAgIGNsb3NlYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpbmdsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW46IHRoaXMubWF4TGVuZ3RoTWFwcGVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWluLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXhMZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXg6IHRoaXMubWF4TGVuZ3RoTWFwcGVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWF4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXhMZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWRJdGVtSGFuZGxlcjogdGhpcy5kaXNhYmxlZEl0ZW1IYW5kbGVyLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uT3BlbkNoYW5nZShvcGVuOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMub3BlbiA9IG9wZW47XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLm9uT3BlbkNoYW5nZSh0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWx1ZS5sZW5ndGggIT09IERBVEVfUkFOR0VfRklMTEVSX0xFTkdUSCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShudWxsKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFyc2VkVmFsdWUgPSBUdWlEYXlSYW5nZS5ub3JtYWxpemVQYXJzZSh2YWx1ZSwgdGhpcy5kYXRlRm9ybWF0KTtcblxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKFxuICAgICAgICAgICAgIXRoaXMubWluTGVuZ3RoICYmICF0aGlzLm1heExlbmd0aFxuICAgICAgICAgICAgICAgID8gcGFyc2VkVmFsdWVcbiAgICAgICAgICAgICAgICA6IHRoaXMuY2xhbXBWYWx1ZShwYXJzZWRWYWx1ZSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgb25SYW5nZUNoYW5nZShyYW5nZTogVHVpRGF5UmFuZ2UgfCBudWxsKSB7XG4gICAgICAgIHRoaXMudG9nZ2xlKCk7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuXG4gICAgICAgIGlmICghcmFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghbnVsbGFibGVTYW1lPFR1aURheVJhbmdlPih0aGlzLnZhbHVlLCByYW5nZSwgKGEsIGIpID0+IGEuZGF5U2FtZShiKSkpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUocmFuZ2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25JdGVtU2VsZWN0KGl0ZW06IHN0cmluZyB8IFR1aURheVJhbmdlUGVyaW9kKSB7XG4gICAgICAgIHRoaXMudG9nZ2xlKCk7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuXG4gICAgICAgIGlmICh0eXBlb2YgaXRlbSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUoaXRlbS5yYW5nZS5kYXlMaW1pdCh0aGlzLm1pbiwgdGhpcy5tYXgpKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlUGVyaW9kICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKG51bGwpO1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9ICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Ib3ZlcmVkKGhvdmVyZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVIb3ZlcmVkKGhvdmVyZWQpO1xuICAgIH1cblxuICAgIG9uUHJlc3NlZChwcmVzc2VkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlUHJlc3NlZChwcmVzc2VkKTtcbiAgICB9XG5cbiAgICBvbkFjdGl2ZVpvbmUoZm9jdXNlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoZm9jdXNlZCk7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIWZvY3VzZWQgJiZcbiAgICAgICAgICAgICF0aGlzLml0ZW1TZWxlY3RlZCAmJlxuICAgICAgICAgICAgKHRoaXMubmF0aXZlVmFsdWUubGVuZ3RoID09PSBEQVRFX0ZJTExFUl9MRU5HVEggfHxcbiAgICAgICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlLmxlbmd0aCA9PT1cbiAgICAgICAgICAgICAgICAgICAgREFURV9GSUxMRVJfTEVOR1RIICsgUkFOR0VfU0VQQVJBVE9SX0NIQVIubGVuZ3RoKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUoXG4gICAgICAgICAgICAgICAgVHVpRGF5UmFuZ2Uubm9ybWFsaXplUGFyc2UodGhpcy5uYXRpdmVWYWx1ZSwgdGhpcy5kYXRlRm9ybWF0KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBUdWlEYXlSYW5nZSB8IG51bGwpIHtcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSB2YWx1ZSA/IHRoaXMuY29tcHV0ZWRWYWx1ZSA6ICcnO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGl0ZW1TZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gU3RyaW5nKGl0ZW0pID09PSB0aGlzLm5hdGl2ZVZhbHVlKSAhPT0gLTE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0b2dnbGUoKSB7XG4gICAgICAgIHRoaXMub3BlbiA9ICF0aGlzLm9wZW47XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1c0lucHV0KHByZXZlbnRTY3JvbGw6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICBzZXROYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCwgdHJ1ZSwgcHJldmVudFNjcm9sbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNsYW1wVmFsdWUodmFsdWU6IFR1aURheVJhbmdlKTogVHVpRGF5UmFuZ2Uge1xuICAgICAgICBjb25zdCBjbGFtcGVkQm90dG9tID1cbiAgICAgICAgICAgIHRoaXMubWluTGVuZ3RoICYmIHZhbHVlLmZyb20uYXBwZW5kKHRoaXMubWluTGVuZ3RoKS5kYXlBZnRlcih2YWx1ZS50bylcbiAgICAgICAgICAgICAgICA/IG5ldyBUdWlEYXlSYW5nZShcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS5mcm9tLFxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLmZyb20uYXBwZW5kKHRoaXMubWluTGVuZ3RoKS5hcHBlbmQoe2RheTogLTF9KSxcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICA6IHZhbHVlO1xuXG4gICAgICAgIGNvbnN0IGF2YWlsYWJsZU1heCA9IHRoaXMubWF4TGVuZ3RoXG4gICAgICAgICAgICA/IGNsYW1wZWRCb3R0b20uZnJvbS5hcHBlbmQodGhpcy5tYXhMZW5ndGgpLmFwcGVuZCh7ZGF5OiAtMX0pXG4gICAgICAgICAgICA6IHRoaXMubWF4O1xuXG4gICAgICAgIHJldHVybiBjbGFtcGVkQm90dG9tLnRvLmRheUFmdGVyKGF2YWlsYWJsZU1heClcbiAgICAgICAgICAgID8gbmV3IFR1aURheVJhbmdlKGNsYW1wZWRCb3R0b20uZnJvbSwgYXZhaWxhYmxlTWF4KVxuICAgICAgICAgICAgOiBjbGFtcGVkQm90dG9tO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGF0ZVJhbmdlRmlsbGVyKGRhdGVGaWxsZXI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHtkYXRlRmlsbGVyfSR7UkFOR0VfU0VQQVJBVE9SX0NIQVJ9JHtkYXRlRmlsbGVyfWA7XG4gICAgfVxufVxuIl19