@taiga-ui/kit 2.36.0 → 2.38.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 (490) hide show
  1. package/abstract/input-slider.d.ts +30 -7
  2. package/abstract/taiga-ui-kit-abstract.metadata.json +1 -1
  3. package/bundles/taiga-ui-kit-abstract.umd.js +67 -21
  4. package/bundles/taiga-ui-kit-abstract.umd.js.map +1 -1
  5. package/bundles/taiga-ui-kit-abstract.umd.min.js +2 -2
  6. package/bundles/taiga-ui-kit-abstract.umd.min.js.map +1 -1
  7. package/bundles/taiga-ui-kit-components-accordion.umd.js +2 -2
  8. package/bundles/taiga-ui-kit-components-accordion.umd.js.map +1 -1
  9. package/bundles/taiga-ui-kit-components-accordion.umd.min.js +1 -1
  10. package/bundles/taiga-ui-kit-components-accordion.umd.min.js.map +1 -1
  11. package/bundles/taiga-ui-kit-components-arrow.umd.js.map +1 -1
  12. package/bundles/taiga-ui-kit-components-arrow.umd.min.js.map +1 -1
  13. package/bundles/taiga-ui-kit-components-badge.umd.js.map +1 -1
  14. package/bundles/taiga-ui-kit-components-badge.umd.min.js.map +1 -1
  15. package/bundles/taiga-ui-kit-components-badged-content.umd.js +1 -1
  16. package/bundles/taiga-ui-kit-components-badged-content.umd.js.map +1 -1
  17. package/bundles/taiga-ui-kit-components-badged-content.umd.min.js +1 -1
  18. package/bundles/taiga-ui-kit-components-badged-content.umd.min.js.map +1 -1
  19. package/bundles/taiga-ui-kit-components-checkbox.umd.js +2 -2
  20. package/bundles/taiga-ui-kit-components-checkbox.umd.js.map +1 -1
  21. package/bundles/taiga-ui-kit-components-checkbox.umd.min.js +2 -2
  22. package/bundles/taiga-ui-kit-components-checkbox.umd.min.js.map +1 -1
  23. package/bundles/taiga-ui-kit-components-combo-box.umd.js.map +1 -1
  24. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js.map +1 -1
  25. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js +4 -4
  26. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js.map +1 -1
  27. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.min.js +2 -2
  28. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.min.js.map +1 -1
  29. package/bundles/taiga-ui-kit-components-files.umd.js +504 -0
  30. package/bundles/taiga-ui-kit-components-files.umd.js.map +1 -0
  31. package/bundles/taiga-ui-kit-components-files.umd.min.js +16 -0
  32. package/bundles/taiga-ui-kit-components-files.umd.min.js.map +1 -0
  33. package/bundles/taiga-ui-kit-components-input-count.umd.js +2 -2
  34. package/bundles/taiga-ui-kit-components-input-count.umd.js.map +1 -1
  35. package/bundles/taiga-ui-kit-components-input-count.umd.min.js +1 -1
  36. package/bundles/taiga-ui-kit-components-input-count.umd.min.js.map +1 -1
  37. package/bundles/taiga-ui-kit-components-input-date-range.umd.js +3 -1
  38. package/bundles/taiga-ui-kit-components-input-date-range.umd.js.map +1 -1
  39. package/bundles/taiga-ui-kit-components-input-date-range.umd.min.js.map +1 -1
  40. package/bundles/taiga-ui-kit-components-input-date-time.umd.js +1 -1
  41. package/bundles/taiga-ui-kit-components-input-date-time.umd.js.map +1 -1
  42. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js +1 -1
  43. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js.map +1 -1
  44. package/bundles/taiga-ui-kit-components-input-date.umd.js +4 -2
  45. package/bundles/taiga-ui-kit-components-input-date.umd.js.map +1 -1
  46. package/bundles/taiga-ui-kit-components-input-date.umd.min.js +1 -1
  47. package/bundles/taiga-ui-kit-components-input-date.umd.min.js.map +1 -1
  48. package/bundles/taiga-ui-kit-components-input-file.umd.js +43 -45
  49. package/bundles/taiga-ui-kit-components-input-file.umd.js.map +1 -1
  50. package/bundles/taiga-ui-kit-components-input-file.umd.min.js +1 -1
  51. package/bundles/taiga-ui-kit-components-input-file.umd.min.js.map +1 -1
  52. package/bundles/taiga-ui-kit-components-input-files.umd.js +498 -0
  53. package/bundles/taiga-ui-kit-components-input-files.umd.js.map +1 -0
  54. package/bundles/taiga-ui-kit-components-input-files.umd.min.js +16 -0
  55. package/bundles/taiga-ui-kit-components-input-files.umd.min.js.map +1 -0
  56. package/bundles/taiga-ui-kit-components-input-number.umd.js +37 -28
  57. package/bundles/taiga-ui-kit-components-input-number.umd.js.map +1 -1
  58. package/bundles/taiga-ui-kit-components-input-number.umd.min.js +2 -2
  59. package/bundles/taiga-ui-kit-components-input-number.umd.min.js.map +1 -1
  60. package/bundles/taiga-ui-kit-components-input-password.umd.js +2 -2
  61. package/bundles/taiga-ui-kit-components-input-password.umd.js.map +1 -1
  62. package/bundles/taiga-ui-kit-components-input-password.umd.min.js +1 -1
  63. package/bundles/taiga-ui-kit-components-input-password.umd.min.js.map +1 -1
  64. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js +20 -8
  65. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js.map +1 -1
  66. package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js +2 -2
  67. package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js.map +1 -1
  68. package/bundles/taiga-ui-kit-components-input-phone.umd.js +5 -4
  69. package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
  70. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js +1 -1
  71. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js.map +1 -1
  72. package/bundles/taiga-ui-kit-components-input-range.umd.js +26 -4
  73. package/bundles/taiga-ui-kit-components-input-range.umd.js.map +1 -1
  74. package/bundles/taiga-ui-kit-components-input-range.umd.min.js +2 -2
  75. package/bundles/taiga-ui-kit-components-input-range.umd.min.js.map +1 -1
  76. package/bundles/taiga-ui-kit-components-input-slider.umd.js +200 -117
  77. package/bundles/taiga-ui-kit-components-input-slider.umd.js.map +1 -1
  78. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js +2 -2
  79. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js.map +1 -1
  80. package/bundles/taiga-ui-kit-components-input-tag.umd.js +1 -1
  81. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  82. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js +1 -1
  83. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js.map +1 -1
  84. package/bundles/taiga-ui-kit-components-input-time.umd.js.map +1 -1
  85. package/bundles/taiga-ui-kit-components-input-time.umd.min.js.map +1 -1
  86. package/bundles/taiga-ui-kit-components-input.umd.js.map +1 -1
  87. package/bundles/taiga-ui-kit-components-input.umd.min.js.map +1 -1
  88. package/bundles/taiga-ui-kit-components-line-clamp.umd.js +2 -2
  89. package/bundles/taiga-ui-kit-components-line-clamp.umd.js.map +1 -1
  90. package/bundles/taiga-ui-kit-components-line-clamp.umd.min.js +1 -1
  91. package/bundles/taiga-ui-kit-components-line-clamp.umd.min.js.map +1 -1
  92. package/bundles/taiga-ui-kit-components-multi-select-option.umd.js +2 -2
  93. package/bundles/taiga-ui-kit-components-multi-select-option.umd.js.map +1 -1
  94. package/bundles/taiga-ui-kit-components-multi-select-option.umd.min.js +1 -1
  95. package/bundles/taiga-ui-kit-components-multi-select-option.umd.min.js.map +1 -1
  96. package/bundles/taiga-ui-kit-components-multi-select.umd.js +2 -2
  97. package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
  98. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js +1 -1
  99. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js.map +1 -1
  100. package/bundles/taiga-ui-kit-components-pagination.umd.js +1 -1
  101. package/bundles/taiga-ui-kit-components-pagination.umd.js.map +1 -1
  102. package/bundles/taiga-ui-kit-components-pagination.umd.min.js +1 -1
  103. package/bundles/taiga-ui-kit-components-pagination.umd.min.js.map +1 -1
  104. package/bundles/taiga-ui-kit-components-progress.umd.js +1 -1
  105. package/bundles/taiga-ui-kit-components-progress.umd.js.map +1 -1
  106. package/bundles/taiga-ui-kit-components-progress.umd.min.js +1 -1
  107. package/bundles/taiga-ui-kit-components-progress.umd.min.js.map +1 -1
  108. package/bundles/taiga-ui-kit-components-radio.umd.js +1 -1
  109. package/bundles/taiga-ui-kit-components-radio.umd.js.map +1 -1
  110. package/bundles/taiga-ui-kit-components-radio.umd.min.js +1 -1
  111. package/bundles/taiga-ui-kit-components-radio.umd.min.js.map +1 -1
  112. package/bundles/taiga-ui-kit-components-select.umd.js +1 -1
  113. package/bundles/taiga-ui-kit-components-select.umd.js.map +1 -1
  114. package/bundles/taiga-ui-kit-components-select.umd.min.js +1 -1
  115. package/bundles/taiga-ui-kit-components-select.umd.min.js.map +1 -1
  116. package/bundles/taiga-ui-kit-components-slider.umd.js +66 -21
  117. package/bundles/taiga-ui-kit-components-slider.umd.js.map +1 -1
  118. package/bundles/taiga-ui-kit-components-slider.umd.min.js +2 -2
  119. package/bundles/taiga-ui-kit-components-slider.umd.min.js.map +1 -1
  120. package/bundles/taiga-ui-kit-components-text-area.umd.js +2 -2
  121. package/bundles/taiga-ui-kit-components-text-area.umd.js.map +1 -1
  122. package/bundles/taiga-ui-kit-components-text-area.umd.min.js +1 -1
  123. package/bundles/taiga-ui-kit-components-text-area.umd.min.js.map +1 -1
  124. package/bundles/taiga-ui-kit-components-toggle.umd.js +2 -2
  125. package/bundles/taiga-ui-kit-components-toggle.umd.js.map +1 -1
  126. package/bundles/taiga-ui-kit-components-toggle.umd.min.js +1 -1
  127. package/bundles/taiga-ui-kit-components-toggle.umd.min.js.map +1 -1
  128. package/bundles/taiga-ui-kit-components.umd.js +20 -4
  129. package/bundles/taiga-ui-kit-components.umd.js.map +1 -1
  130. package/bundles/taiga-ui-kit-components.umd.min.js +1 -1
  131. package/bundles/taiga-ui-kit-enums.umd.js.map +1 -1
  132. package/bundles/taiga-ui-kit-enums.umd.min.js.map +1 -1
  133. package/bundles/taiga-ui-kit-internal-primitive-calendar-range.umd.js +25 -1
  134. package/bundles/taiga-ui-kit-internal-primitive-calendar-range.umd.js.map +1 -1
  135. package/bundles/taiga-ui-kit-internal-primitive-calendar-range.umd.min.js +2 -2
  136. package/bundles/taiga-ui-kit-internal-primitive-calendar-range.umd.min.js.map +1 -1
  137. package/bundles/taiga-ui-kit-pipes-field-error.umd.js +10 -2
  138. package/bundles/taiga-ui-kit-pipes-field-error.umd.js.map +1 -1
  139. package/bundles/taiga-ui-kit-pipes-field-error.umd.min.js +1 -1
  140. package/bundles/taiga-ui-kit-pipes-field-error.umd.min.js.map +1 -1
  141. package/bundles/taiga-ui-kit-tokens.umd.js +8 -0
  142. package/bundles/taiga-ui-kit-tokens.umd.js.map +1 -1
  143. package/bundles/taiga-ui-kit-tokens.umd.min.js +1 -1
  144. package/bundles/taiga-ui-kit-tokens.umd.min.js.map +1 -1
  145. package/bundles/taiga-ui-kit-utils-files.umd.js +8 -0
  146. package/bundles/taiga-ui-kit-utils-files.umd.js.map +1 -1
  147. package/bundles/taiga-ui-kit-utils-files.umd.min.js +1 -1
  148. package/bundles/taiga-ui-kit-utils-files.umd.min.js.map +1 -1
  149. package/components/accordion/taiga-ui-kit-components-accordion.metadata.json +1 -1
  150. package/components/arrow/arrow-options.d.ts +4 -2
  151. package/components/arrow/taiga-ui-kit-components-arrow.metadata.json +1 -1
  152. package/components/badge/badge.component.d.ts +2 -1
  153. package/components/badge/taiga-ui-kit-components-badge.metadata.json +1 -1
  154. package/components/checkbox/taiga-ui-kit-components-checkbox.metadata.json +1 -1
  155. package/components/combo-box/combo-box.component.d.ts +4 -4
  156. package/components/combo-box/taiga-ui-kit-components-combo-box.metadata.json +1 -1
  157. package/components/data-list-wrapper/taiga-ui-kit-components-data-list-wrapper.metadata.json +1 -1
  158. package/components/files/file/file.component.d.ts +42 -0
  159. package/components/files/files.component.d.ts +12 -0
  160. package/components/files/files.module.d.ts +2 -0
  161. package/components/files/index.d.ts +2 -0
  162. package/components/files/package.json +13 -0
  163. package/components/files/taiga-ui-kit-components-files.d.ts +5 -0
  164. package/components/files/taiga-ui-kit-components-files.metadata.json +1 -0
  165. package/components/index.d.ts +2 -0
  166. package/components/input/input.component.d.ts +2 -2
  167. package/components/input/taiga-ui-kit-components-input.metadata.json +1 -1
  168. package/components/input-count/input-count.component.d.ts +3 -2
  169. package/components/input-count/taiga-ui-kit-components-input-count.metadata.json +1 -1
  170. package/components/input-date/input-date.component.d.ts +5 -3
  171. package/components/input-date/taiga-ui-kit-components-input-date.metadata.json +1 -1
  172. package/components/input-date-range/input-date-range.component.d.ts +3 -2
  173. package/components/input-date-range/taiga-ui-kit-components-input-date-range.metadata.json +1 -1
  174. package/components/input-date-time/input-date-time.component.d.ts +7 -5
  175. package/components/input-date-time/taiga-ui-kit-components-input-date-time.metadata.json +1 -1
  176. package/components/input-file/file/file.component.d.ts +1 -1
  177. package/components/input-file/taiga-ui-kit-components-input-file.metadata.json +1 -1
  178. package/components/input-files/index.d.ts +2 -0
  179. package/components/input-files/input-files.component.d.ts +42 -0
  180. package/components/input-files/input-files.module.d.ts +2 -0
  181. package/components/input-files/package.json +13 -0
  182. package/components/input-files/taiga-ui-kit-components-input-files.d.ts +4 -0
  183. package/components/input-files/taiga-ui-kit-components-input-files.metadata.json +1 -0
  184. package/components/input-number/input-number.component.d.ts +7 -4
  185. package/components/input-number/taiga-ui-kit-components-input-number.metadata.json +1 -1
  186. package/components/input-password/input-password.component.d.ts +4 -3
  187. package/components/input-password/taiga-ui-kit-components-input-password.metadata.json +1 -1
  188. package/components/input-phone/input-phone.component.d.ts +5 -6
  189. package/components/input-phone/taiga-ui-kit-components-input-phone.metadata.json +1 -1
  190. package/components/input-phone-international/input-phone-international.component.d.ts +4 -2
  191. package/components/input-phone-international/taiga-ui-kit-components-input-phone-international.metadata.json +1 -1
  192. package/components/input-range/input-range.component.d.ts +4 -1
  193. package/components/input-range/taiga-ui-kit-components-input-range.metadata.json +1 -1
  194. package/components/input-slider/input-slider.component.d.ts +56 -23
  195. package/components/input-slider/taiga-ui-kit-components-input-slider.metadata.json +1 -1
  196. package/components/input-tag/input-tag.component.d.ts +2 -1
  197. package/components/input-tag/taiga-ui-kit-components-input-tag.metadata.json +1 -1
  198. package/components/input-time/input-time.component.d.ts +2 -2
  199. package/components/input-time/taiga-ui-kit-components-input-time.metadata.json +1 -1
  200. package/components/multi-select/multi-select.component.d.ts +5 -5
  201. package/components/multi-select/taiga-ui-kit-components-multi-select.metadata.json +1 -1
  202. package/components/multi-select-option/taiga-ui-kit-components-multi-select-option.metadata.json +1 -1
  203. package/components/pagination/taiga-ui-kit-components-pagination.metadata.json +1 -1
  204. package/components/progress/utils/calculate-color-segments.d.ts +0 -4
  205. package/components/radio/radio.component.d.ts +1 -1
  206. package/components/radio/taiga-ui-kit-components-radio.metadata.json +1 -1
  207. package/components/select/select.component.d.ts +4 -4
  208. package/components/select/taiga-ui-kit-components-select.metadata.json +1 -1
  209. package/components/slider/slider-key-steps.directive.d.ts +12 -2
  210. package/components/slider/slider-options.d.ts +1 -1
  211. package/components/slider/taiga-ui-kit-components-slider.metadata.json +1 -1
  212. package/components/taiga-ui-kit-components.metadata.json +1 -1
  213. package/components/text-area/taiga-ui-kit-components-text-area.metadata.json +1 -1
  214. package/components/toggle/taiga-ui-kit-components-toggle.metadata.json +1 -1
  215. package/enums/file-state.d.ts +1 -0
  216. package/enums/taiga-ui-kit-enums.metadata.json +1 -1
  217. package/esm2015/abstract/input-slider.js +49 -8
  218. package/esm2015/components/accordion/accordion-item/accordion-item.component.js +1 -1
  219. package/esm2015/components/accordion/accordion.component.js +2 -2
  220. package/esm2015/components/arrow/arrow-options.js +1 -1
  221. package/esm2015/components/badge/badge.component.js +1 -1
  222. package/esm2015/components/badged-content/badged-content.component.js +3 -3
  223. package/esm2015/components/checkbox/checkbox.component.js +3 -3
  224. package/esm2015/components/combo-box/combo-box.component.js +1 -1
  225. package/esm2015/components/data-list-wrapper/data-list-group-wrapper.component.js +3 -3
  226. package/esm2015/components/data-list-wrapper/data-list-wrapper.component.js +3 -3
  227. package/esm2015/components/files/file/file.component.js +164 -0
  228. package/esm2015/components/files/files.component.js +45 -0
  229. package/esm2015/components/files/files.module.js +29 -0
  230. package/esm2015/components/files/index.js +3 -0
  231. package/esm2015/components/files/taiga-ui-kit-components-files.js +6 -0
  232. package/esm2015/components/index.js +3 -1
  233. package/esm2015/components/input/input.component.js +1 -1
  234. package/esm2015/components/input-count/input-count.component.js +3 -3
  235. package/esm2015/components/input-date/input-date.component.js +5 -3
  236. package/esm2015/components/input-date-range/input-date-range.component.js +4 -2
  237. package/esm2015/components/input-date-time/input-date-time.component.js +2 -2
  238. package/esm2015/components/input-file/file/file.component.js +19 -19
  239. package/esm2015/components/input-file/input-file.component.js +7 -7
  240. package/esm2015/components/input-file/input-file.module.js +3 -3
  241. package/esm2015/components/input-files/index.js +3 -0
  242. package/esm2015/components/input-files/input-files.component.js +212 -0
  243. package/esm2015/components/input-files/input-files.module.js +34 -0
  244. package/esm2015/components/input-files/taiga-ui-kit-components-input-files.js +5 -0
  245. package/esm2015/components/input-number/input-number.component.js +25 -19
  246. package/esm2015/components/input-number/input-number.module.js +5 -1
  247. package/esm2015/components/input-password/input-password.component.js +3 -3
  248. package/esm2015/components/input-phone/input-phone.component.js +6 -5
  249. package/esm2015/components/input-phone-international/input-phone-international.component.js +20 -6
  250. package/esm2015/components/input-range/input-range.component.js +25 -7
  251. package/esm2015/components/input-slider/input-slider.component.js +196 -105
  252. package/esm2015/components/input-slider/input-slider.module.js +13 -6
  253. package/esm2015/components/input-tag/input-tag.component.js +2 -2
  254. package/esm2015/components/input-time/input-time.component.js +1 -1
  255. package/esm2015/components/line-clamp/line-clamp.directive.js +4 -4
  256. package/esm2015/components/multi-select/multi-select-group/multi-select-group.component.js +3 -3
  257. package/esm2015/components/multi-select/multi-select.component.js +2 -2
  258. package/esm2015/components/multi-select-option/multi-select-option.component.js +3 -3
  259. package/esm2015/components/pagination/pagination.component.js +2 -2
  260. package/esm2015/components/progress/utils/calculate-color-segments.js +3 -2
  261. package/esm2015/components/radio/radio.component.js +2 -2
  262. package/esm2015/components/select/select.component.js +3 -3
  263. package/esm2015/components/slider/slider-key-steps.directive.js +33 -8
  264. package/esm2015/components/slider/slider-options.js +7 -5
  265. package/esm2015/components/slider/slider.component.js +1 -1
  266. package/esm2015/components/slider/slider.module.js +14 -4
  267. package/esm2015/components/text-area/text-area.component.js +3 -3
  268. package/esm2015/components/toggle/toggle.component.js +3 -3
  269. package/esm2015/enums/file-state.js +1 -1
  270. package/esm2015/internal/primitive-calendar-range/primitive-calendar-range.component.js +26 -2
  271. package/esm2015/pipes/field-error/field-error-content-pipe.js +11 -3
  272. package/esm2015/tokens/i18n.js +7 -1
  273. package/esm2015/utils/files/get-accept-array.js +7 -0
  274. package/esm2015/utils/files/index.js +2 -1
  275. package/esm5/abstract/input-slider.js +67 -20
  276. package/esm5/components/accordion/accordion-item/accordion-item.component.js +1 -1
  277. package/esm5/components/accordion/accordion.component.js +2 -2
  278. package/esm5/components/arrow/arrow-options.js +1 -1
  279. package/esm5/components/badge/badge.component.js +1 -1
  280. package/esm5/components/badged-content/badged-content.component.js +3 -3
  281. package/esm5/components/checkbox/checkbox.component.js +3 -3
  282. package/esm5/components/combo-box/combo-box.component.js +1 -1
  283. package/esm5/components/data-list-wrapper/data-list-group-wrapper.component.js +3 -3
  284. package/esm5/components/data-list-wrapper/data-list-wrapper.component.js +3 -3
  285. package/esm5/components/files/file/file.component.js +213 -0
  286. package/esm5/components/files/files.component.js +50 -0
  287. package/esm5/components/files/files.module.js +32 -0
  288. package/esm5/components/files/index.js +3 -0
  289. package/esm5/components/files/taiga-ui-kit-components-files.js +6 -0
  290. package/esm5/components/index.js +3 -1
  291. package/esm5/components/input/input.component.js +1 -1
  292. package/esm5/components/input-count/input-count.component.js +3 -3
  293. package/esm5/components/input-date/input-date.component.js +5 -3
  294. package/esm5/components/input-date-range/input-date-range.component.js +4 -2
  295. package/esm5/components/input-date-time/input-date-time.component.js +2 -2
  296. package/esm5/components/input-file/file/file.component.js +37 -37
  297. package/esm5/components/input-file/input-file.component.js +7 -9
  298. package/esm5/components/input-file/input-file.module.js +3 -3
  299. package/esm5/components/input-files/index.js +3 -0
  300. package/esm5/components/input-files/input-files.component.js +247 -0
  301. package/esm5/components/input-files/input-files.module.js +37 -0
  302. package/esm5/components/input-files/taiga-ui-kit-components-input-files.js +5 -0
  303. package/esm5/components/input-number/input-number.component.js +35 -27
  304. package/esm5/components/input-number/input-number.module.js +5 -1
  305. package/esm5/components/input-password/input-password.component.js +3 -3
  306. package/esm5/components/input-phone/input-phone.component.js +6 -5
  307. package/esm5/components/input-phone-international/input-phone-international.component.js +21 -9
  308. package/esm5/components/input-range/input-range.component.js +29 -7
  309. package/esm5/components/input-slider/input-slider.component.js +198 -115
  310. package/esm5/components/input-slider/input-slider.module.js +13 -6
  311. package/esm5/components/input-tag/input-tag.component.js +2 -2
  312. package/esm5/components/input-time/input-time.component.js +1 -1
  313. package/esm5/components/line-clamp/line-clamp.directive.js +4 -4
  314. package/esm5/components/multi-select/multi-select-group/multi-select-group.component.js +3 -3
  315. package/esm5/components/multi-select/multi-select.component.js +2 -2
  316. package/esm5/components/multi-select-option/multi-select-option.component.js +3 -3
  317. package/esm5/components/pagination/pagination.component.js +2 -2
  318. package/esm5/components/progress/utils/calculate-color-segments.js +3 -2
  319. package/esm5/components/radio/radio.component.js +2 -2
  320. package/esm5/components/select/select.component.js +3 -3
  321. package/esm5/components/slider/slider-key-steps.directive.js +48 -13
  322. package/esm5/components/slider/slider-options.js +7 -5
  323. package/esm5/components/slider/slider.component.js +1 -1
  324. package/esm5/components/slider/slider.module.js +14 -4
  325. package/esm5/components/text-area/text-area.component.js +3 -3
  326. package/esm5/components/toggle/toggle.component.js +3 -3
  327. package/esm5/enums/file-state.js +1 -1
  328. package/esm5/internal/primitive-calendar-range/primitive-calendar-range.component.js +26 -2
  329. package/esm5/pipes/field-error/field-error-content-pipe.js +11 -3
  330. package/esm5/tokens/i18n.js +7 -1
  331. package/esm5/utils/files/get-accept-array.js +7 -0
  332. package/esm5/utils/files/index.js +2 -1
  333. package/fesm2015/taiga-ui-kit-abstract.js +48 -7
  334. package/fesm2015/taiga-ui-kit-abstract.js.map +1 -1
  335. package/fesm2015/taiga-ui-kit-components-accordion.js +2 -2
  336. package/fesm2015/taiga-ui-kit-components-accordion.js.map +1 -1
  337. package/fesm2015/taiga-ui-kit-components-arrow.js.map +1 -1
  338. package/fesm2015/taiga-ui-kit-components-badge.js.map +1 -1
  339. package/fesm2015/taiga-ui-kit-components-badged-content.js +2 -2
  340. package/fesm2015/taiga-ui-kit-components-badged-content.js.map +1 -1
  341. package/fesm2015/taiga-ui-kit-components-checkbox.js +2 -2
  342. package/fesm2015/taiga-ui-kit-components-checkbox.js.map +1 -1
  343. package/fesm2015/taiga-ui-kit-components-combo-box.js.map +1 -1
  344. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js +4 -4
  345. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  346. package/fesm2015/taiga-ui-kit-components-files.js +232 -0
  347. package/fesm2015/taiga-ui-kit-components-files.js.map +1 -0
  348. package/fesm2015/taiga-ui-kit-components-input-count.js +2 -2
  349. package/fesm2015/taiga-ui-kit-components-input-count.js.map +1 -1
  350. package/fesm2015/taiga-ui-kit-components-input-date-range.js +3 -1
  351. package/fesm2015/taiga-ui-kit-components-input-date-range.js.map +1 -1
  352. package/fesm2015/taiga-ui-kit-components-input-date-time.js +1 -1
  353. package/fesm2015/taiga-ui-kit-components-input-date-time.js.map +1 -1
  354. package/fesm2015/taiga-ui-kit-components-input-date.js +4 -2
  355. package/fesm2015/taiga-ui-kit-components-input-date.js.map +1 -1
  356. package/fesm2015/taiga-ui-kit-components-input-file.js +25 -25
  357. package/fesm2015/taiga-ui-kit-components-input-file.js.map +1 -1
  358. package/fesm2015/taiga-ui-kit-components-input-files.js +246 -0
  359. package/fesm2015/taiga-ui-kit-components-input-files.js.map +1 -0
  360. package/fesm2015/taiga-ui-kit-components-input-number.js +27 -18
  361. package/fesm2015/taiga-ui-kit-components-input-number.js.map +1 -1
  362. package/fesm2015/taiga-ui-kit-components-input-password.js +3 -3
  363. package/fesm2015/taiga-ui-kit-components-input-password.js.map +1 -1
  364. package/fesm2015/taiga-ui-kit-components-input-phone-international.js +19 -5
  365. package/fesm2015/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  366. package/fesm2015/taiga-ui-kit-components-input-phone.js +5 -4
  367. package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
  368. package/fesm2015/taiga-ui-kit-components-input-range.js +23 -5
  369. package/fesm2015/taiga-ui-kit-components-input-range.js.map +1 -1
  370. package/fesm2015/taiga-ui-kit-components-input-slider.js +203 -108
  371. package/fesm2015/taiga-ui-kit-components-input-slider.js.map +1 -1
  372. package/fesm2015/taiga-ui-kit-components-input-tag.js +1 -1
  373. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  374. package/fesm2015/taiga-ui-kit-components-input-time.js.map +1 -1
  375. package/fesm2015/taiga-ui-kit-components-input.js.map +1 -1
  376. package/fesm2015/taiga-ui-kit-components-line-clamp.js +3 -3
  377. package/fesm2015/taiga-ui-kit-components-line-clamp.js.map +1 -1
  378. package/fesm2015/taiga-ui-kit-components-multi-select-option.js +2 -2
  379. package/fesm2015/taiga-ui-kit-components-multi-select-option.js.map +1 -1
  380. package/fesm2015/taiga-ui-kit-components-multi-select.js +2 -2
  381. package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
  382. package/fesm2015/taiga-ui-kit-components-pagination.js +1 -1
  383. package/fesm2015/taiga-ui-kit-components-pagination.js.map +1 -1
  384. package/fesm2015/taiga-ui-kit-components-progress.js +2 -2
  385. package/fesm2015/taiga-ui-kit-components-progress.js.map +1 -1
  386. package/fesm2015/taiga-ui-kit-components-radio.js +1 -1
  387. package/fesm2015/taiga-ui-kit-components-radio.js.map +1 -1
  388. package/fesm2015/taiga-ui-kit-components-select.js +1 -1
  389. package/fesm2015/taiga-ui-kit-components-select.js.map +1 -1
  390. package/fesm2015/taiga-ui-kit-components-slider.js +51 -16
  391. package/fesm2015/taiga-ui-kit-components-slider.js.map +1 -1
  392. package/fesm2015/taiga-ui-kit-components-text-area.js +2 -2
  393. package/fesm2015/taiga-ui-kit-components-text-area.js.map +1 -1
  394. package/fesm2015/taiga-ui-kit-components-toggle.js +2 -2
  395. package/fesm2015/taiga-ui-kit-components-toggle.js.map +1 -1
  396. package/fesm2015/taiga-ui-kit-components.js +2 -0
  397. package/fesm2015/taiga-ui-kit-components.js.map +1 -1
  398. package/fesm2015/taiga-ui-kit-enums.js.map +1 -1
  399. package/fesm2015/taiga-ui-kit-internal-primitive-calendar-range.js +25 -1
  400. package/fesm2015/taiga-ui-kit-internal-primitive-calendar-range.js.map +1 -1
  401. package/fesm2015/taiga-ui-kit-pipes-field-error.js +10 -2
  402. package/fesm2015/taiga-ui-kit-pipes-field-error.js.map +1 -1
  403. package/fesm2015/taiga-ui-kit-tokens.js +7 -1
  404. package/fesm2015/taiga-ui-kit-tokens.js.map +1 -1
  405. package/fesm2015/taiga-ui-kit-utils-files.js +8 -1
  406. package/fesm2015/taiga-ui-kit-utils-files.js.map +1 -1
  407. package/fesm5/taiga-ui-kit-abstract.js +66 -19
  408. package/fesm5/taiga-ui-kit-abstract.js.map +1 -1
  409. package/fesm5/taiga-ui-kit-components-accordion.js +2 -2
  410. package/fesm5/taiga-ui-kit-components-accordion.js.map +1 -1
  411. package/fesm5/taiga-ui-kit-components-arrow.js.map +1 -1
  412. package/fesm5/taiga-ui-kit-components-badge.js.map +1 -1
  413. package/fesm5/taiga-ui-kit-components-badged-content.js +2 -2
  414. package/fesm5/taiga-ui-kit-components-badged-content.js.map +1 -1
  415. package/fesm5/taiga-ui-kit-components-checkbox.js +2 -2
  416. package/fesm5/taiga-ui-kit-components-checkbox.js.map +1 -1
  417. package/fesm5/taiga-ui-kit-components-combo-box.js.map +1 -1
  418. package/fesm5/taiga-ui-kit-components-data-list-wrapper.js +4 -4
  419. package/fesm5/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  420. package/fesm5/taiga-ui-kit-components-files.js +289 -0
  421. package/fesm5/taiga-ui-kit-components-files.js.map +1 -0
  422. package/fesm5/taiga-ui-kit-components-input-count.js +2 -2
  423. package/fesm5/taiga-ui-kit-components-input-count.js.map +1 -1
  424. package/fesm5/taiga-ui-kit-components-input-date-range.js +3 -1
  425. package/fesm5/taiga-ui-kit-components-input-date-range.js.map +1 -1
  426. package/fesm5/taiga-ui-kit-components-input-date-time.js +1 -1
  427. package/fesm5/taiga-ui-kit-components-input-date-time.js.map +1 -1
  428. package/fesm5/taiga-ui-kit-components-input-date.js +4 -2
  429. package/fesm5/taiga-ui-kit-components-input-date.js.map +1 -1
  430. package/fesm5/taiga-ui-kit-components-input-file.js +43 -45
  431. package/fesm5/taiga-ui-kit-components-input-file.js.map +1 -1
  432. package/fesm5/taiga-ui-kit-components-input-files.js +284 -0
  433. package/fesm5/taiga-ui-kit-components-input-files.js.map +1 -0
  434. package/fesm5/taiga-ui-kit-components-input-number.js +37 -26
  435. package/fesm5/taiga-ui-kit-components-input-number.js.map +1 -1
  436. package/fesm5/taiga-ui-kit-components-input-password.js +3 -3
  437. package/fesm5/taiga-ui-kit-components-input-password.js.map +1 -1
  438. package/fesm5/taiga-ui-kit-components-input-phone-international.js +20 -8
  439. package/fesm5/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  440. package/fesm5/taiga-ui-kit-components-input-phone.js +5 -4
  441. package/fesm5/taiga-ui-kit-components-input-phone.js.map +1 -1
  442. package/fesm5/taiga-ui-kit-components-input-range.js +27 -5
  443. package/fesm5/taiga-ui-kit-components-input-range.js.map +1 -1
  444. package/fesm5/taiga-ui-kit-components-input-slider.js +206 -119
  445. package/fesm5/taiga-ui-kit-components-input-slider.js.map +1 -1
  446. package/fesm5/taiga-ui-kit-components-input-tag.js +1 -1
  447. package/fesm5/taiga-ui-kit-components-input-tag.js.map +1 -1
  448. package/fesm5/taiga-ui-kit-components-input-time.js.map +1 -1
  449. package/fesm5/taiga-ui-kit-components-input.js.map +1 -1
  450. package/fesm5/taiga-ui-kit-components-line-clamp.js +3 -3
  451. package/fesm5/taiga-ui-kit-components-line-clamp.js.map +1 -1
  452. package/fesm5/taiga-ui-kit-components-multi-select-option.js +2 -2
  453. package/fesm5/taiga-ui-kit-components-multi-select-option.js.map +1 -1
  454. package/fesm5/taiga-ui-kit-components-multi-select.js +2 -2
  455. package/fesm5/taiga-ui-kit-components-multi-select.js.map +1 -1
  456. package/fesm5/taiga-ui-kit-components-pagination.js +1 -1
  457. package/fesm5/taiga-ui-kit-components-pagination.js.map +1 -1
  458. package/fesm5/taiga-ui-kit-components-progress.js +2 -2
  459. package/fesm5/taiga-ui-kit-components-progress.js.map +1 -1
  460. package/fesm5/taiga-ui-kit-components-radio.js +1 -1
  461. package/fesm5/taiga-ui-kit-components-radio.js.map +1 -1
  462. package/fesm5/taiga-ui-kit-components-select.js +1 -1
  463. package/fesm5/taiga-ui-kit-components-select.js.map +1 -1
  464. package/fesm5/taiga-ui-kit-components-slider.js +66 -21
  465. package/fesm5/taiga-ui-kit-components-slider.js.map +1 -1
  466. package/fesm5/taiga-ui-kit-components-text-area.js +2 -2
  467. package/fesm5/taiga-ui-kit-components-text-area.js.map +1 -1
  468. package/fesm5/taiga-ui-kit-components-toggle.js +2 -2
  469. package/fesm5/taiga-ui-kit-components-toggle.js.map +1 -1
  470. package/fesm5/taiga-ui-kit-components.js +2 -0
  471. package/fesm5/taiga-ui-kit-components.js.map +1 -1
  472. package/fesm5/taiga-ui-kit-enums.js.map +1 -1
  473. package/fesm5/taiga-ui-kit-internal-primitive-calendar-range.js +25 -1
  474. package/fesm5/taiga-ui-kit-internal-primitive-calendar-range.js.map +1 -1
  475. package/fesm5/taiga-ui-kit-pipes-field-error.js +10 -2
  476. package/fesm5/taiga-ui-kit-pipes-field-error.js.map +1 -1
  477. package/fesm5/taiga-ui-kit-tokens.js +7 -1
  478. package/fesm5/taiga-ui-kit-tokens.js.map +1 -1
  479. package/fesm5/taiga-ui-kit-utils-files.js +8 -1
  480. package/fesm5/taiga-ui-kit-utils-files.js.map +1 -1
  481. package/internal/primitive-calendar-range/primitive-calendar-range.component.d.ts +3 -0
  482. package/internal/primitive-calendar-range/taiga-ui-kit-internal-primitive-calendar-range.metadata.json +1 -1
  483. package/package.json +4 -4
  484. package/pipes/field-error/field-error-content-pipe.d.ts +1 -0
  485. package/pipes/field-error/taiga-ui-kit-pipes-field-error.metadata.json +1 -1
  486. package/tokens/i18n.d.ts +2 -0
  487. package/tokens/taiga-ui-kit-tokens.metadata.json +1 -1
  488. package/utils/files/get-accept-array.d.ts +1 -0
  489. package/utils/files/index.d.ts +1 -0
  490. package/utils/files/taiga-ui-kit-utils-files.metadata.json +1 -1
@@ -1,173 +1,264 @@
1
1
  var TuiInputSliderComponent_1;
2
2
  import { __decorate, __param } from "tslib";
3
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, forwardRef, HostBinding, Inject, Input, Optional, Self, ViewChild, } from '@angular/core';
3
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Directive, ElementRef, forwardRef, Inject, Input, Optional, Self, ViewChild, } from '@angular/core';
4
4
  import { NgControl } from '@angular/forms';
5
- import { isNativeFocused, setNativeFocused, TUI_FOCUSABLE_ITEM_ACCESSOR, tuiDefaultProp, } from '@taiga-ui/cdk';
6
- import { formatNumber, HINT_CONTROLLER_PROVIDER, maskedMoneyValueIsEmpty, maskedNumberStringToNumber, NumberFormatSettings, TUI_HINT_WATCHED_CONTROLLER, TUI_NUMBER_FORMAT, TUI_TEXTFIELD_APPEARANCE, TuiHintControllerDirective, TuiModeDirective, } from '@taiga-ui/core';
5
+ import { clamp, isNativeFocused, round, setNativeFocused, TUI_FOCUSABLE_ITEM_ACCESSOR, tuiAssert, tuiDefaultProp, } from '@taiga-ui/cdk';
6
+ import { getFractionPartPadded, HINT_CONTROLLER_PROVIDER, NumberFormatSettings, TEXTFIELD_CONTROLLER_PROVIDER, TUI_NUMBER_FORMAT, TUI_TEXTFIELD_WATCHED_CONTROLLER, TuiDecimalT, TuiSizeL, TuiTextfieldController, } from '@taiga-ui/core';
7
7
  import { AbstractTuiInputSlider } from '@taiga-ui/kit/abstract';
8
+ import { TuiInputNumberComponent } from '@taiga-ui/kit/components/input-number';
9
+ import { TuiSliderComponent, tuiSliderOptionsProvider, } from '@taiga-ui/kit/components/slider';
10
+ import { TUI_FLOATING_PRECISION } from '@taiga-ui/kit/constants';
11
+ import { TUI_FROM_TO_TEXTS } from '@taiga-ui/kit/tokens';
12
+ import { Observable } from 'rxjs';
13
+ /**
14
+ * Turn on new `InputSlider`'s version.
15
+ * The new version will behave almost the same as `InputSlider` from the next major release.
16
+ * @deprecated TODO remove me in v3.0 and make `InputSlider` always "new".
17
+ */
18
+ let TuiNewInputSliderDirective = class TuiNewInputSliderDirective {
19
+ };
20
+ TuiNewInputSliderDirective = __decorate([
21
+ Directive({
22
+ selector: 'tui-input-slider[new]',
23
+ })
24
+ ], TuiNewInputSliderDirective);
25
+ export { TuiNewInputSliderDirective };
8
26
  // @dynamic
9
- let TuiInputSliderComponent = TuiInputSliderComponent_1 = class TuiInputSliderComponent extends AbstractTuiInputSlider {
10
- constructor(control, changeDetectorRef, modeDirective, hintController, numberFormat, appearance) {
27
+ let TuiInputSliderComponent = TuiInputSliderComponent_1 =
28
+ /**
29
+ * TODO replace `extends AbstractTuiInputSlider<number>` by `extends AbstractTuiControl<number> implements TuiWithOptionalMinMax<number>`
30
+ * in v3.0
31
+ */
32
+ class TuiInputSliderComponent extends AbstractTuiInputSlider {
33
+ constructor(control, changeDetectorRef, controller, numberFormat, fromToTexts$, isNew) {
11
34
  super(control, changeDetectorRef);
12
- this.modeDirective = modeDirective;
13
- this.hintController = hintController;
35
+ this.controller = controller;
14
36
  this.numberFormat = numberFormat;
15
- this.appearance = appearance;
37
+ this.fromToTexts$ = fromToTexts$;
38
+ this.isNew = isNew;
39
+ this.min = 0;
40
+ this.max = Infinity;
41
+ this.quantum = 1;
42
+ this.steps = 0;
43
+ this.segments = 0;
44
+ this.keySteps = null;
45
+ this.valueContent = '';
46
+ this.prefix = '';
47
+ this.postfix = '';
48
+ /**
49
+ * @deprecated use `tuiTextfieldSize` instead
50
+ * TODO delete in v3.0
51
+ */
52
+ this.size = 'l';
53
+ /**
54
+ * @deprecated use `tuiTextfieldCustomContent` instead
55
+ * TODO delete in v3.0
56
+ */
16
57
  this.secondary = '';
17
58
  }
18
59
  get nativeFocusableElement() {
19
- return !this.focusableElement || this.computedDisabled
60
+ var _a;
61
+ return !((_a = this.inputNumberRef) === null || _a === void 0 ? void 0 : _a.nativeFocusableElement) || this.computedDisabled
20
62
  ? null
21
- : this.focusableElement.nativeElement;
63
+ : this.inputNumberRef.nativeFocusableElement;
22
64
  }
23
65
  get focused() {
24
- return isNativeFocused(this.nativeFocusableElement);
66
+ var _a;
67
+ return (isNativeFocused(this.nativeFocusableElement) ||
68
+ isNativeFocused(((_a = this.sliderRef) === null || _a === void 0 ? void 0 : _a.nativeElement) || null));
25
69
  }
26
- get hasTooltip() {
27
- return !!this.hintController.content && !this.disabled;
70
+ get computedSteps() {
71
+ return this.steps || (this.max - this.min) / this.quantum;
28
72
  }
29
- get showMinLabel() {
30
- return !this.focused && this.value === this.min && !!this.minLabel;
73
+ get precision() {
74
+ return getFractionPartPadded(this.quantum).length;
31
75
  }
32
- get showMaxLabel() {
33
- return !this.focused && this.value === this.max && !!this.maxLabel;
76
+ get decimal() {
77
+ return this.precision ? 'not-zero' : 'never';
34
78
  }
35
- get computedValue() {
36
- if (this.focused && this.isInputValueNotFinished) {
37
- return this.inputValue;
79
+ /**
80
+ * TODO remove old property `size` in v3.0
81
+ */
82
+ get computedSize() {
83
+ if (this.isNew) {
84
+ tuiAssert.assert(this.controller.size !== 's', "Size 's' is not supported by this input.");
85
+ return this.controller.size === 'l' ? 'l' : 'm';
38
86
  }
39
- return this.formattedValue;
40
- }
41
- get showValue() {
42
- return !this.showMinLabel && !this.showMaxLabel;
87
+ return this.size;
43
88
  }
44
- get inputValue() {
45
- return this.focusableElement ? this.focusableElement.nativeElement.value : '';
89
+ /**
90
+ * @deprecated for backward compatibility
91
+ * TODO replace by just `this.valueContent` in v3.0
92
+ */
93
+ get computedValueContent() {
94
+ return this.minLabel || this.maxLabel
95
+ ? legacyMinMaxLabel(this)
96
+ : this.valueContent;
46
97
  }
47
- set inputValue(value) {
48
- if (this.focusableElement) {
49
- this.focusableElement.nativeElement.value = value;
98
+ focusTextInput() {
99
+ var _a;
100
+ const focusableElement = (_a = this.inputNumberRef) === null || _a === void 0 ? void 0 : _a.nativeFocusableElement;
101
+ if (focusableElement) {
102
+ setNativeFocused(focusableElement);
50
103
  }
51
104
  }
52
- onMouseDown() {
53
- if (this.focusableElement) {
54
- setNativeFocused(this.focusableElement.nativeElement);
55
- }
105
+ safelyUpdateValue(value) {
106
+ this.updateValue(this.valueGuard(value !== null && value !== void 0 ? value : this.safeCurrentValue));
56
107
  }
57
- onKeyDownArrowUp(event) {
108
+ onVerticalArrowKeyDown(coefficient) {
58
109
  if (this.readOnly) {
59
110
  return;
60
111
  }
61
- event.preventDefault();
62
- this.processStep(true);
63
- this.inputValue = this.formattedValue;
64
- }
65
- onKeyDownArrowDown(event) {
66
- if (this.readOnly) {
67
- return;
112
+ const value = this.value + coefficient * this.step;
113
+ if (value !== this.value) {
114
+ this.safelyUpdateValue(value);
68
115
  }
69
- event.preventDefault();
70
- this.processStep(false);
71
- this.inputValue = this.formattedValue;
116
+ this.updateTextInputValue(this.valueGuard(value));
72
117
  }
73
118
  onFocused(focused) {
74
- this.updateFocused(focused);
75
- if (focused) {
76
- return;
77
- }
78
- const inputValue = maskedNumberStringToNumber(this.computedValue, this.numberFormat.decimalSeparator, this.numberFormat.thousandSeparator);
79
- const value = isNaN(inputValue) ? this.min : this.valueGuard(inputValue);
80
- this.updateValue(value);
81
- this.inputValue = this.formattedValue;
82
- }
83
- onValue(value) {
84
- const capped = this.capInputValue(value);
85
- const postfix = value.slice(-1)[0] === ',' ? ',' : '';
86
- if (maskedMoneyValueIsEmpty(value) || capped === null) {
87
- return;
88
- }
89
- const newValue = this.formatNumber(capped) + postfix;
90
- if (value !== newValue) {
91
- this.inputValue = newValue;
119
+ if (!focused && !this.textInputValue) {
120
+ this.updateTextInputValue(this.safeCurrentValue);
92
121
  }
93
- this.updateValue(capped);
122
+ this.updateFocused(focused);
94
123
  }
95
- onSliderValue(value) {
96
- this.updateValue(this.valueGuard(value));
97
- this.inputValue = this.formattedValue;
124
+ onPressed(pressed) {
125
+ this.updatePressed(pressed);
126
+ }
127
+ onHovered(hovered) {
128
+ this.updateHovered(hovered);
129
+ }
130
+ get textInputValue() {
131
+ var _a;
132
+ return ((_a = this.inputNumberRef) === null || _a === void 0 ? void 0 : _a.nativeValue) || '';
98
133
  }
99
134
  getFallbackValue() {
100
135
  return 0;
101
136
  }
102
- get formattedValue() {
103
- return this.formatNumber(this.value);
104
- }
105
- get isInputValueNotFinished() {
106
- if (this.inputValue === '') {
107
- return true;
108
- }
109
- const nativeNumberValue = maskedNumberStringToNumber(this.inputValue, this.numberFormat.decimalSeparator, this.numberFormat.thousandSeparator);
110
- return nativeNumberValue < 0
111
- ? nativeNumberValue > this.max
112
- : nativeNumberValue < this.min;
137
+ valueGuard(value) {
138
+ const roundedValue = round(Math.round(value / this.quantum) * this.quantum, TUI_FLOATING_PRECISION);
139
+ return clamp(roundedValue, this.min, this.max);
113
140
  }
114
- processStep(increment) {
115
- const value = this.valueGuard(increment ? this.value + this.step : this.value - this.step);
116
- if (value !== this.value) {
117
- this.updateValue(value);
141
+ updateTextInputValue(value) {
142
+ if (this.inputNumberRef) {
143
+ this.inputNumberRef.nativeValue =
144
+ this.inputNumberRef.getFormattedValue(value);
118
145
  }
119
146
  }
120
- formatNumber(value) {
121
- return formatNumber(value, null, this.numberFormat.decimalSeparator, this.numberFormat.thousandSeparator);
122
- }
123
147
  };
124
148
  TuiInputSliderComponent.ctorParameters = () => [
125
149
  { type: NgControl, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [NgControl,] }] },
126
150
  { type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] },
127
- { type: TuiModeDirective, decorators: [{ type: Optional }, { type: Inject, args: [TuiModeDirective,] }] },
128
- { type: TuiHintControllerDirective, decorators: [{ type: Inject, args: [TUI_HINT_WATCHED_CONTROLLER,] }] },
151
+ { type: TuiTextfieldController, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_WATCHED_CONTROLLER,] }] },
129
152
  { type: undefined, decorators: [{ type: Inject, args: [TUI_NUMBER_FORMAT,] }] },
130
- { type: String, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_APPEARANCE,] }] }
153
+ { type: Observable, decorators: [{ type: Inject, args: [TUI_FROM_TO_TEXTS,] }] },
154
+ { type: TuiNewInputSliderDirective, decorators: [{ type: Optional }, { type: Inject, args: [TuiNewInputSliderDirective,] }] }
131
155
  ];
132
156
  __decorate([
133
- ViewChild('focusableElement')
134
- ], TuiInputSliderComponent.prototype, "focusableElement", void 0);
157
+ ViewChild(TuiInputNumberComponent)
158
+ ], TuiInputSliderComponent.prototype, "inputNumberRef", void 0);
159
+ __decorate([
160
+ ViewChild(TuiSliderComponent, { read: ElementRef })
161
+ ], TuiInputSliderComponent.prototype, "sliderRef", void 0);
135
162
  __decorate([
136
163
  Input(),
137
164
  tuiDefaultProp()
138
- ], TuiInputSliderComponent.prototype, "secondary", void 0);
165
+ ], TuiInputSliderComponent.prototype, "min", void 0);
139
166
  __decorate([
140
- HostBinding('class._has-tooltip')
141
- ], TuiInputSliderComponent.prototype, "hasTooltip", null);
167
+ Input(),
168
+ tuiDefaultProp()
169
+ ], TuiInputSliderComponent.prototype, "max", void 0);
142
170
  __decorate([
143
- HostBinding('class._min-label')
144
- ], TuiInputSliderComponent.prototype, "showMinLabel", null);
171
+ Input(),
172
+ tuiDefaultProp(quantumAssertion, 'Quantum must be positive')
173
+ ], TuiInputSliderComponent.prototype, "quantum", void 0);
145
174
  __decorate([
146
- HostBinding('class._max-label')
147
- ], TuiInputSliderComponent.prototype, "showMaxLabel", null);
175
+ Input(),
176
+ tuiDefaultProp()
177
+ ], TuiInputSliderComponent.prototype, "steps", void 0);
178
+ __decorate([
179
+ Input(),
180
+ tuiDefaultProp()
181
+ ], TuiInputSliderComponent.prototype, "segments", void 0);
182
+ __decorate([
183
+ Input(),
184
+ tuiDefaultProp()
185
+ ], TuiInputSliderComponent.prototype, "keySteps", void 0);
186
+ __decorate([
187
+ Input(),
188
+ tuiDefaultProp()
189
+ ], TuiInputSliderComponent.prototype, "valueContent", void 0);
190
+ __decorate([
191
+ Input(),
192
+ tuiDefaultProp()
193
+ ], TuiInputSliderComponent.prototype, "prefix", void 0);
194
+ __decorate([
195
+ Input(),
196
+ tuiDefaultProp()
197
+ ], TuiInputSliderComponent.prototype, "postfix", void 0);
198
+ __decorate([
199
+ Input(),
200
+ tuiDefaultProp()
201
+ ], TuiInputSliderComponent.prototype, "size", void 0);
202
+ __decorate([
203
+ Input(),
204
+ tuiDefaultProp()
205
+ ], TuiInputSliderComponent.prototype, "secondary", void 0);
148
206
  TuiInputSliderComponent = TuiInputSliderComponent_1 = __decorate([
149
207
  Component({
150
208
  selector: 'tui-input-slider',
151
- template: "<tui-wrapper\n [appearance]=\"appearance\"\n [readOnly]=\"readOnly\"\n [disabled]=\"disabled\"\n [focused]=\"computedFocused\"\n [hovered]=\"computedHovered\"\n [invalid]=\"computedInvalid\"\n>\n <span\n *ngIf=\"hasPlaceholder\"\n automation-id=\"tui-input-slider__placeholder\"\n class=\"t-placeholder t-placeholder_raised\"\n >\n <ng-content></ng-content>\n </span>\n <input\n #focusableElement\n automation-id=\"tui-input-slider__native\"\n class=\"t-native\"\n [disabled]=\"disabled\"\n [readOnly]=\"readOnly\"\n [tuiInputMode]=\"inputMode\"\n [tuiFocusable]=\"focusable\"\n [textMask]=\"quantum | tuiMapper: mask:min\"\n [ngModel]=\"computedValue\"\n (ngModelChange)=\"onValue($event)\"\n (tuiFocusedChange)=\"onFocused($event)\"\n (tuiHoveredChange)=\"onHovered($event)\"\n (keydown.arrowUp)=\"onKeyDownArrowUp($event)\"\n (keydown.arrowDown)=\"onKeyDownArrowDown($event)\"\n />\n <div class=\"t-content\">\n <span *ngIf=\"showValue\" class=\"t-label\">\n <span class=\"t-value\">{{ computedValue }}</span>\n <span\n *ngIf=\"pluralizeMap\"\n automation-id=\"tui-input-slider__pluralize\"\n >\n {{ value | i18nPlural: pluralizeMap }}\n </span>\n </span>\n <span\n *ngIf=\"showMinLabel\"\n automation-id=\"tui-input-slider__min-label\"\n class=\"t-label\"\n >\n {{ minLabel }}\n </span>\n <span\n *ngIf=\"showMaxLabel\"\n automation-id=\"tui-input-slider__max-label\"\n class=\"t-label\"\n >\n {{ maxLabel }}\n </span>\n <span automation-id=\"tui-input-slider__secondary\" class=\"t-secondary\">\n {{ secondary }}\n <tui-tooltip\n *ngIf=\"hasTooltip\"\n automation-id=\"tui-input-slider__tooltip\"\n describeId=\"placeholer_until_accesibility_is_added\"\n class=\"t-tooltip\"\n [content]=\"hintController.content\"\n [direction]=\"hintController.direction\"\n [mode]=\"hintController.mode\"\n [showDelay]=\"hintController.showDelay\"\n [hideDelay]=\"hintController.hideDelay\"\n (mousedown.prevent)=\"onMouseDown()\"\n ></tui-tooltip>\n </span>\n </div>\n</tui-wrapper>\n<tui-slider\n class=\"t-slider\"\n [min]=\"min\"\n [max]=\"max\"\n [steps]=\"computedSteps\"\n [segments]=\"segments\"\n [keySteps]=\"keySteps\"\n [pluralize]=\"segmentsPluralize\"\n [focusable]=\"false\"\n [disabled]=\"readOnly || disabled\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onSliderValue($event)\"\n (mousedown)=\"onMouseDown()\"\n></tui-slider>\n",
209
+ template: "<tui-input-number\n [min]=\"min\"\n [max]=\"max\"\n [precision]=\"precision\"\n [decimal]=\"decimal\"\n [prefix]=\"prefix\"\n [postfix]=\"postfix || (value | i18nPlural: pluralizeMap || pluralizeMapFallback)\"\n [tuiTextfieldCustomContent]=\"controller.customContent || deprecatedSecondary\"\n [tuiTextfieldSize]=\"computedSize\"\n [tuiTextfieldLabelOutside]=\"computedSize !== 'l'\"\n [readOnly]=\"readOnly\"\n [pseudoFocused]=\"computedFocused\"\n [pseudoHovered]=\"computedHovered\"\n [pseudoPressed]=\"computedPressed\"\n [pseudoInvalid]=\"pseudoInvalid\"\n [ngModel]=\"value\"\n (ngModelChange)=\"safelyUpdateValue($event)\"\n (focusedChange)=\"onFocused($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (pressedChange)=\"onPressed($event)\"\n (keydown.arrowUp.prevent)=\"onVerticalArrowKeyDown(1)\"\n (keydown.arrowDown.prevent)=\"onVerticalArrowKeyDown(-1)\"\n>\n <ng-content></ng-content>\n <div\n *ngIf=\"computedValueContent && !focused\"\n polymorpheus-outlet\n automation-id=\"tui-input-slider__value-content\"\n [content]=\"computedValueContent\"\n [context]=\"{$implicit: value}\"\n ></div>\n</tui-input-number>\n\n<!--TODO: remove in v3.0-->\n<ng-template #deprecatedSecondary>{{secondary}}</ng-template>\n\n<!--TODO: remove wrapper + ticks labels (leave only slider) in v3.0-->\n<div class=\"t-slider-wrapper\">\n <input\n tuiSlider\n type=\"range\"\n [tuiFocusable]=\"false\"\n [max]=\"computedSteps\"\n [segments]=\"segments\"\n [keySteps]=\"computedKeySteps\"\n [attr.disabled]=\"readOnly || disabled || null\"\n [ngModel]=\"value\"\n (keyStepsInput)=\"safelyUpdateValue($event)\"\n (click)=\"focusTextInput()\"\n />\n\n <!--TODO delete ticks labels in v3.0-->\n <div *ngIf=\"segments && !isNew\" class=\"t-ticks-labels\">\n <span\n *tuiRepeatTimes=\"let tickIndex of segments + 1\"\n automation-id=\"tui-slider__segment\"\n >\n <span *ngIf=\"fromToTexts$ | async as fromToText\">\n {{ getTickPrefix(tickIndex, segments, fromToText) }} {{\n tickIndex | tuiSliderTickLabel:segments:computedKeySteps |\n tuiFormatNumber}}\n <span *ngIf=\"segmentsPluralizeMap\">\n {{ tickIndex | tuiSliderTickLabel:segments:computedKeySteps\n | i18nPlural: segmentsPluralizeMap }}\n </span>\n </span>\n </span>\n </div>\n</div>\n",
210
+ host: {
211
+ /**
212
+ * TODO delete it in v3.0
213
+ * Dont forget to clear html-tags
214
+ */
215
+ '[class._show-ticks-labels]': '!isNew',
216
+ },
152
217
  changeDetection: ChangeDetectionStrategy.OnPush,
153
218
  providers: [
154
219
  {
155
220
  provide: TUI_FOCUSABLE_ITEM_ACCESSOR,
156
221
  useExisting: forwardRef(() => TuiInputSliderComponent_1),
157
222
  },
223
+ tuiSliderOptionsProvider({ trackColor: 'transparent' }),
158
224
  HINT_CONTROLLER_PROVIDER,
225
+ TEXTFIELD_CONTROLLER_PROVIDER,
159
226
  ],
160
- styles: [":host{position:relative;z-index:0;display:block;font:var(--tui-font-text-m);border-radius:var(--tui-radius-m);color:var(--tui-text-01)}:host._segmented{border-bottom:26px solid transparent}.t-native{position:absolute;top:0;left:0;height:100%;padding:0 1rem;border:0;border-radius:inherit;background:0 0;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;-webkit-appearance:none;-moz-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;width:100%;color:var(--tui-text-01);box-sizing:border-box;outline:0}.t-native:-webkit-autofill,.t-native:-webkit-autofill:focus,.t-native:-webkit-autofill:hover{border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01)!important;border-color:var(--tui-autofill);-webkit-box-shadow:0 0 0 1000px var(--tui-autofill) inset!important}:host._disabled .t-native{color:var(--tui-text-03);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host._max-label .t-native,:host._min-label .t-native{opacity:0}:host[data-size='l'] .t-native{padding:1.25rem 1rem 0}:host[data-mode=onDark] .t-native{color:var(--tui-text-01-night)}:host[data-mode=onDark]._disabled .t-native{color:var(--tui-text-03-night)}.t-content{display:flex;align-items:center;height:var(--tui-height-m);padding:0 1rem;justify-content:space-between}:host[data-size='l'] .t-content{height:var(--tui-height-l);padding:0 1rem}.t-placeholder{transition-property:transform,font-size,color,letter-spacing;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;font:var(--tui-font-text-s);color:var(--tui-text-01);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;font-size:.8125rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:var(--tui-text-02);position:absolute;top:0;left:0;width:100%;height:100%;padding:0 var(--tui-padding-l);line-height:var(--tui-height-l);box-sizing:border-box;pointer-events:none}.t-placeholder_raised{transform:translateY(-.625rem)}:host[data-size='m'] .t-placeholder_raised{font-size:.69rem;transform:translateY(-.5rem);letter-spacing:.025rem}:host._invalid:not(._focused) .t-placeholder_raised,:host._invalid:not(._focused)._hovered .t-placeholder_raised{color:var(--tui-error-fill)}:host[data-mode=onDark]._invalid:not(._focused) .t-placeholder_raised,:host[data-mode=onDark]._invalid:not(._focused)._hovered .t-placeholder_raised{color:var(--tui-error-fill-night)}:host._focused .t-placeholder,:host[data-size='l']._focused._label-outside .t-placeholder,:host[data-size='m']._focused._label-outside .t-placeholder{color:var(--tui-text-03)}:host[data-size='l'] .t-placeholder{font-size:.9375rem}:host[data-size='l'] .t-placeholder_raised{font-size:.8156rem}:host[data-size='l']._focused:not(._label-outside) .t-placeholder,:host[data-size='m']._focused:not(._label-outside) .t-placeholder{color:var(--tui-text-01)}:host[data-mode=onDark] .t-placeholder{color:var(--tui-text-02-night)}:host[data-size='l'][data-mode=onDark]._focused:not(._label-outside) .t-placeholder,:host[data-size='m'][data-mode=onDark]._focused:not(._label-outside) .t-placeholder{color:var(--tui-text-01-night)}:host[data-mode=onDark]._focused .t-placeholder,:host[data-size='l'][data-mode=onDark]._focused._label-outside .t-placeholder,:host[data-size='m'][data-mode=onDark]._focused._label-outside .t-placeholder{color:var(--tui-text-02-night)}:host._has-tooltip .t-placeholder{max-width:calc(100% - 1.75rem)}.t-value{visibility:hidden}.t-label{overflow:hidden;text-overflow:ellipsis}:host[data-size='l'] .t-label{padding-top:1.25rem}.t-secondary{color:var(--tui-text-01)}:host._disabled .t-secondary{color:var(--tui-text-03)}:host[data-mode=onDark]._disabled .t-secondary{color:var(--tui-text-03-night)}.t-tooltip{margin-left:.75rem}.t-slider{position:absolute;top:100%;left:0;right:0;border-top-left-radius:0;border-top-right-radius:0;margin:-.5625rem 0 0;color:transparent}:host._disabled .t-slider,:host._readonly .t-slider{pointer-events:none}"]
161
- }),
227
+ styles: [":host{position:relative;z-index:0;display:block}:host._segmented._show-ticks-labels{border-bottom:26px solid transparent}.t-slider-wrapper{position:absolute;top:100%;left:calc(var(--tui-radius-m)/ 2);right:0;margin:-.5625rem 0 0}input[type=range]{border-top-left-radius:0;border-bottom-left-radius:calc(var(--tui-radius-m) * 5) calc(var(--tui-radius-m) * 1.5)}.t-ticks-labels{display:flex;margin:0 .5rem;font:var(--tui-font-text-s);color:var(--tui-text-02)}.t-ticks-labels>*{position:relative;flex:2;text-align:center}.t-ticks-labels>:first-child{left:-.5rem;flex:1;text-align:left}.t-ticks-labels>:last-child{right:-.5rem;flex:1;text-align:right}tui-input-slider+.t-ticks-labels{margin-left:calc(var(--tui-radius-m)/ 2 + .5rem)}"]
228
+ })
229
+ /**
230
+ * TODO replace `extends AbstractTuiInputSlider<number>` by `extends AbstractTuiControl<number> implements TuiWithOptionalMinMax<number>`
231
+ * in v3.0
232
+ */
233
+ ,
162
234
  __param(0, Optional()),
163
235
  __param(0, Self()),
164
236
  __param(0, Inject(NgControl)),
165
237
  __param(1, Inject(ChangeDetectorRef)),
166
- __param(2, Optional()),
167
- __param(2, Inject(TuiModeDirective)),
168
- __param(3, Inject(TUI_HINT_WATCHED_CONTROLLER)),
169
- __param(4, Inject(TUI_NUMBER_FORMAT)),
170
- __param(5, Inject(TUI_TEXTFIELD_APPEARANCE))
238
+ __param(2, Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER)),
239
+ __param(3, Inject(TUI_NUMBER_FORMAT)),
240
+ __param(4, Inject(TUI_FROM_TO_TEXTS)),
241
+ __param(5, Optional()),
242
+ __param(5, Inject(TuiNewInputSliderDirective))
171
243
  ], TuiInputSliderComponent);
172
244
  export { TuiInputSliderComponent };
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1zbGlkZXIvIiwic291cmNlcyI6WyJpbnB1dC1zbGlkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixVQUFVLEVBQ1YsV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLElBQUksRUFDSixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLDJCQUEyQixFQUMzQixjQUFjLEdBR2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxZQUFZLEVBQ1osd0JBQXdCLEVBQ3hCLHVCQUF1QixFQUN2QiwwQkFBMEIsRUFDMUIsb0JBQW9CLEVBQ3BCLDJCQUEyQixFQUMzQixpQkFBaUIsRUFDakIsd0JBQXdCLEVBQ3hCLDBCQUEwQixFQUMxQixnQkFBZ0IsR0FDbkIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUU5RCxXQUFXO0FBY1gsSUFBYSx1QkFBdUIsK0JBQXBDLE1BQWEsdUJBQ1QsU0FBUSxzQkFBOEI7SUFVdEMsWUFJSSxPQUF5QixFQUNFLGlCQUFvQyxFQUc1QyxhQUFzQyxFQUVoRCxjQUEwQyxFQUVoQyxZQUFrQyxFQUU1QyxVQUFrQjtRQUUzQixLQUFLLENBQUMsT0FBTyxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFSZixrQkFBYSxHQUFiLGFBQWEsQ0FBeUI7UUFFaEQsbUJBQWMsR0FBZCxjQUFjLENBQTRCO1FBRWhDLGlCQUFZLEdBQVosWUFBWSxD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QWlCLENBQUMsQ0FBQTtJQUV6QixXQUFBLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO0dBeEI1Qix1QkFBdUIsQ0F5TG5DO1NBekxZLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgaXNOYXRpdmVGb2N1c2VkLFxuICAgIHNldE5hdGl2ZUZvY3VzZWQsXG4gICAgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICBUdWlOYXRpdmVGb2N1c2FibGVFbGVtZW50LFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgZm9ybWF0TnVtYmVyLFxuICAgIEhJTlRfQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICBtYXNrZWRNb25leVZhbHVlSXNFbXB0eSxcbiAgICBtYXNrZWROdW1iZXJTdHJpbmdUb051bWJlcixcbiAgICBOdW1iZXJGb3JtYXRTZXR0aW5ncyxcbiAgICBUVUlfSElOVF9XQVRDSEVEX0NPTlRST0xMRVIsXG4gICAgVFVJX05VTUJFUl9GT1JNQVQsXG4gICAgVFVJX1RFWFRGSUVMRF9BUFBFQVJBTkNFLFxuICAgIFR1aUhpbnRDb250cm9sbGVyRGlyZWN0aXZlLFxuICAgIFR1aU1vZGVEaXJlY3RpdmUsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7QWJzdHJhY3RUdWlJbnB1dFNsaWRlcn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9hYnN0cmFjdCc7XG5cbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1zbGlkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1zbGlkZXIudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtc2xpZGVyLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpSW5wdXRTbGlkZXJDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgICAgICBISU5UX0NPTlRST0xMRVJfUFJPVklERVIsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXRTbGlkZXJDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpSW5wdXRTbGlkZXI8bnVtYmVyPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQFZpZXdDaGlsZCgnZm9jdXNhYmxlRWxlbWVudCcpXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb2N1c2FibGVFbGVtZW50PzogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzZWNvbmRhcnkgPSAnJztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVHVpTW9kZURpcmVjdGl2ZSlcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IG1vZGVEaXJlY3RpdmU6IFR1aU1vZGVEaXJlY3RpdmUgfCBudWxsLFxuICAgICAgICBASW5qZWN0KFRVSV9ISU5UX1dBVENIRURfQ09OVFJPTExFUilcbiAgICAgICAgcmVhZG9ubHkgaGludENvbnRyb2xsZXI6IFR1aUhpbnRDb250cm9sbGVyRGlyZWN0aXZlLFxuICAgICAgICBASW5qZWN0KFRVSV9OVU1CRVJfRk9STUFUKVxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbnVtYmVyRm9ybWF0OiBOdW1iZXJGb3JtYXRTZXR0aW5ncyxcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX0FQUEVBUkFOQ0UpXG4gICAgICAgIHJlYWRvbmx5IGFwcGVhcmFuY2U6IHN0cmluZyxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IFR1aU5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmZvY3VzYWJsZUVsZW1lbnQgfHwgdGhpcy5jb21wdXRlZERpc2FibGVkXG4gICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgIDogdGhpcy5mb2N1c2FibGVFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpc05hdGl2ZUZvY3VzZWQodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9oYXMtdG9vbHRpcCcpXG4gICAgZ2V0IGhhc1Rvb2x0aXAoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuaGludENvbnRyb2xsZXIuY29udGVudCAmJiAhdGhpcy5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9taW4tbGFiZWwnKVxuICAgIGdldCBzaG93TWluTGFiZWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5mb2N1c2VkICYmIHRoaXMudmFsdWUgPT09IHRoaXMubWluICYmICEhdGhpcy5taW5MYWJlbDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9tYXgtbGFiZWwnKVxuICAgIGdldCBzaG93TWF4TGFiZWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5mb2N1c2VkICYmIHRoaXMudmFsdWUgPT09IHRoaXMubWF4ICYmICEhdGhpcy5tYXhMYWJlbDtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy5mb2N1c2VkICYmIHRoaXMuaXNJbnB1dFZhbHVlTm90RmluaXNoZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlucHV0VmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXR0ZWRWYWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgc2hvd1ZhbHVlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuc2hvd01pbkxhYmVsICYmICF0aGlzLnNob3dNYXhMYWJlbDtcbiAgICB9XG5cbiAgICBnZXQgaW5wdXRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5mb2N1c2FibGVFbGVtZW50ID8gdGhpcy5mb2N1c2FibGVFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWUgOiAnJztcbiAgICB9XG5cbiAgICBzZXQgaW5wdXRWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLmZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNhYmxlRWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk1vdXNlRG93bigpIHtcbiAgICAgICAgaWYgKHRoaXMuZm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgc2V0TmF0aXZlRm9jdXNlZCh0aGlzLmZvY3VzYWJsZUVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbktleURvd25BcnJvd1VwKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLnJlYWRPbmx5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnByb2Nlc3NTdGVwKHRydWUpO1xuICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSB0aGlzLmZvcm1hdHRlZFZhbHVlO1xuICAgIH1cblxuICAgIG9uS2V5RG93bkFycm93RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5wcm9jZXNzU3RlcChmYWxzZSk7XG4gICAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IHRoaXMuZm9ybWF0dGVkVmFsdWU7XG4gICAgfVxuXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuXG4gICAgICAgIGlmIChmb2N1c2VkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpbnB1dFZhbHVlID0gbWFza2VkTnVtYmVyU3RyaW5nVG9OdW1iZXIoXG4gICAgICAgICAgICB0aGlzLmNvbXB1dGVkVmFsdWUsXG4gICAgICAgICAgICB0aGlzLm51bWJlckZvcm1hdC5kZWNpbWFsU2VwYXJhdG9yLFxuICAgICAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQudGhvdXNhbmRTZXBhcmF0b3IsXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gaXNOYU4oaW5wdXRWYWx1ZSkgPyB0aGlzLm1pbiA6IHRoaXMudmFsdWVHdWFyZChpbnB1dFZhbHVlKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gdGhpcy5mb3JtYXR0ZWRWYWx1ZTtcbiAgICB9XG5cbiAgICBvblZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgY2FwcGVkID0gdGhpcy5jYXBJbnB1dFZhbHVlKHZhbHVlKTtcbiAgICAgICAgY29uc3QgcG9zdGZpeCA9IHZhbHVlLnNsaWNlKC0xKVswXSA9PT0gJywnID8gJywnIDogJyc7XG5cbiAgICAgICAgaWYgKG1hc2tlZE1vbmV5VmFsdWVJc0VtcHR5KHZhbHVlKSB8fCBjYXBwZWQgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5mb3JtYXROdW1iZXIoY2FwcGVkKSArIHBvc3RmaXg7XG5cbiAgICAgICAgaWYgKHZhbHVlICE9PSBuZXdWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gbmV3VmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKGNhcHBlZCk7XG4gICAgfVxuXG4gICAgb25TbGlkZXJWYWx1ZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy52YWx1ZUd1YXJkKHZhbHVlKSk7XG4gICAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IHRoaXMuZm9ybWF0dGVkVmFsdWU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZhbGxiYWNrVmFsdWUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgZm9ybWF0dGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0TnVtYmVyKHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGlzSW5wdXRWYWx1ZU5vdEZpbmlzaGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5pbnB1dFZhbHVlID09PSAnJykge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBuYXRpdmVOdW1iZXJWYWx1ZSA9IG1hc2tlZE51bWJlclN0cmluZ1RvTnVtYmVyKFxuICAgICAgICAgICAgdGhpcy5pbnB1dFZhbHVlLFxuICAgICAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQuZGVjaW1hbFNlcGFyYXRvcixcbiAgICAgICAgICAgIHRoaXMubnVtYmVyRm9ybWF0LnRob3VzYW5kU2VwYXJhdG9yLFxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBuYXRpdmVOdW1iZXJWYWx1ZSA8IDBcbiAgICAgICAgICAgID8gbmF0aXZlTnVtYmVyVmFsdWUgPiB0aGlzLm1heFxuICAgICAgICAgICAgOiBuYXRpdmVOdW1iZXJWYWx1ZSA8IHRoaXMubWluO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvY2Vzc1N0ZXAoaW5jcmVtZW50OiBib29sZWFuKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YWx1ZUd1YXJkKFxuICAgICAgICAgICAgaW5jcmVtZW50ID8gdGhpcy52YWx1ZSArIHRoaXMuc3RlcCA6IHRoaXMudmFsdWUgLSB0aGlzLnN0ZXAsXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZm9ybWF0TnVtYmVyKHZhbHVlOiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVyKFxuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQuZGVjaW1hbFNlcGFyYXRvcixcbiAgICAgICAgICAgIHRoaXMubnVtYmVyRm9ybWF0LnRob3VzYW5kU2VwYXJhdG9yLFxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
245
+ function quantumAssertion(quantum) {
246
+ return quantum > 0;
247
+ }
248
+ /**
249
+ * @deprecated helper for backward compatibility.
250
+ * TODO remove in v3.0
251
+ */
252
+ function legacyMinMaxLabel({ min, max, minLabel, maxLabel }) {
253
+ return ({ $implicit: value }) => {
254
+ switch (value) {
255
+ case min:
256
+ return minLabel || value;
257
+ case max:
258
+ return maxLabel || value;
259
+ default:
260
+ return value;
261
+ }
262
+ };
263
+ }
264
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1zbGlkZXIvIiwic291cmNlcyI6WyJpbnB1dC1zbGlkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLElBQUksRUFDSixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCxLQUFLLEVBQ0wsZUFBZSxFQUNmLEtBQUssRUFDTCxnQkFBZ0IsRUFDaEIsMkJBQTJCLEVBQzNCLFNBQVMsRUFFVCxjQUFjLEdBR2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxxQkFBcUIsRUFDckIsd0JBQXdCLEVBQ3hCLG9CQUFvQixFQUNwQiw2QkFBNkIsRUFDN0IsaUJBQWlCLEVBQ2pCLGdDQUFnQyxFQUNoQyxXQUFXLEVBQ1gsUUFBUSxFQUNSLHNCQUFzQixHQUN6QixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsd0JBQXdCLEdBQzNCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFHdkQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVoQzs7OztHQUlHO0FBSUgsSUFBYSwwQkFBMEIsR0FBdkMsTUFBYSwwQkFBMEI7Q0FBRyxDQUFBO0FBQTdCLDBCQUEwQjtJQUh0QyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsdUJBQXVCO0tBQ3BDLENBQUM7R0FDVywwQkFBMEIsQ0FBRztTQUE3QiwwQkFBMEI7QUFFdkMsV0FBVztBQTJCWCxJQUFhLHVCQUF1QjtBQUpwQzs7O0dBR0c7QUFDSCxNQUFhLHVCQUNULFNBQVEsc0JBQThCO0lBNkR0QyxZQUlJLE9BQXlCLEVBQ0UsaUJBQW9DLEVBRXRELFVBQWtDLEVBRXhCLFlBQWtDLEVBQ2pCLFlBQTBDLEVBR3JFLEtBQXdDO1FBRWpELEtBQUssQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQVJ6QixlQUFVLEdBQVYsVUFBVSxDQUF3QjtRQUV4QixpQkFBWSxHQUFaLFlBQVksQ0FBc0I7UUFDakIsaUJBQVksR0FBWixZQUFZLENBQThCO1FBR3JFLFVBQUssR0FBTCxLQUFLLENBQW1DO1FBL0RyRCxRQUFHLEdBQUcsQ0FBQyxDQUFDO1FBSVIsUUFBRyxHQUFHLFFBQVEsQ0FBQztRQUlmLFlBQU8sR0FBRyxDQUFDLENBQUM7UUFJWixVQUFLLEdBQUcsQ0FBQyxDQUFDO1FBSVYsYUFBUSxHQUFHLENBQUMsQ0FBQztRQUliLGFBQVEsR0FBdUIsSUFBSSxDQUFDO1FBSXBDLGlCQUFZLEdBQXdELEVBQUUsQ0FBQztRQUl2RSxXQUFNLEdBQUcsRUFBRSxDQUFDO1FBSVosWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUViOzs7V0FHRztRQUdILFNBQUksR0FBYSxHQUFHLENBQUM7UUFFckI7OztXQUdHO1FBR0gsY0FBUyxHQUFHLEVBQUUsQ0FBQztJQWtCZixDQUFDO0lBRUQsSUFBSSxzQkFBc0I7O1FBQ3RCLE9BQU8sUUFBQyxJQUFJLENBQUMsY0FBYywwQ0FBRSxzQkFBc0IsQ0FBQSxJQUFJLElBQUksQ0FBQyxnQkFBZ0I7WUFDeEUsQ0FBQyxDQUFDLElBQUk7WUFDTixDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQztJQUNyRCxDQUFDO0lBRUQsSUFBSSxPQUFPOztRQUNQLE9BQU8sQ0FDSCxlQUFlLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDO1lBQzVDLGVBQWUsQ0FBQyxPQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLGFBQWEsS0FBSSxJQUFJLENBQUMsQ0FDekQsQ0FBQztJQUNOLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQzlELENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDVCxPQUFPLHFCQUFxQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDakQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxZQUFZO1FBQ1osSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1osU0FBUyxDQUFDLE1BQU0sQ0FDWixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxHQUFHLEVBQzVCLDBDQUEwQyxDQUM3QyxDQUFDO1lBRUYsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1NBQ25EO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLG9CQUFvQjtRQUNwQixPQUFPLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVE7WUFDakMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQztZQUN6QixDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM1QixDQUFDO0lBRUQsY0FBYzs7UUFDVixNQUFNLGdCQUFnQixTQUFHLElBQUksQ0FBQyxjQUFjLDBDQUFFLHNCQUFzQixDQUFDO1FBRXJFLElBQUksZ0JBQWdCLEVBQUU7WUFDbEIsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUN0QztJQUNMLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFvQjtRQUNsQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxhQUFMLEtBQUssY0FBTCxLQUFLLEdBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsc0JBQXNCLENBQUMsV0FBbUI7UUFDdEMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsT0FBTztTQUNWO1FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUVuRCxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNqQztRQUVELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUFnQjtRQUN0QixJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNsQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDcEQ7UUFFRCxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTLENBQUMsT0FBZ0I7UUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQWdCO1FBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQVksY0FBYzs7UUFDdEIsT0FBTyxPQUFBLElBQUksQ0FBQyxjQUFjLDBDQUFFLFdBQVcsS0FBSSxFQUFFLENBQUM7SUFDbEQsQ0FBQztJQUVTLGdCQUFnQjtRQUN0QixPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFUyxVQUFVLENBQUMsS0FBYTtRQUM5QixNQUFNLFlBQVksR0FBRyxLQUFLLENBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUMvQyxzQkFBc0IsQ0FDekIsQ0FBQztRQUVGLE9BQU8sS0FBSyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU8sb0JBQW9CLENBQUMsS0FBYTtRQUN0QyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXO2dCQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3BEO0lBQ0wsQ0FBQztDQUNKLENBQUE7O1lBbElnQixTQUFTLHVCQUhqQixRQUFRLFlBQ1IsSUFBSSxZQUNKLE1BQU0sU0FBQyxTQUFTO1lBRTZCLGlCQUFpQix1QkFBOUQsTUFBTSxTQUFDLGlCQUFpQjtZQUVKLHNCQUFzQix1QkFEMUMsTUFBTSxTQUFDLGdDQUFnQzs0Q0FFdkMsTUFBTSxTQUFDLGlCQUFpQjtZQUV5QixVQUFVLHVCQUEzRCxNQUFNLFNBQUMsaUJBQWlCO1lBR1QsMEJBQTBCLHVCQUZ6QyxRQUFRLFlBQ1IsTUFBTSxTQUFDLDBCQUEwQjs7QUFyRXRDO0lBREMsU0FBUyxDQUFDLHVCQUF1QixDQUFDOytEQUN1QjtBQUcxRDtJQURDLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUMsQ0FBQzswREFDUTtBQUkxRDtJQUZDLEtBQUssRUFBRTtJQUNQLGNBQWMsRUFBRTtvREFDVDtBQUlSO0lBRkMsS0FBSyxFQUFFO0lBQ1AsY0FBYyxFQUFFO29EQUNGO0FBSWY7SUFGQyxLQUFLLEVBQUU7SUFDUCxjQUFjLENBQUMsZ0JBQWdCLEVBQUUsMEJBQTBCLENBQUM7d0RBQ2pEO0FBSVo7SUFGQyxLQUFLLEVBQUU7SUFDUCxjQUFjLEVBQUU7c0RBQ1A7QUFJVjtJQUZDLEtBQUssRUFBRTtJQUNQLGNBQWMsRUFBRTt5REFDSjtBQUliO0lBRkMsS0FBSyxFQUFFO0lBQ1AsY0FBYyxFQUFFO3lEQUNtQjtBQUlwQztJQUZDLEtBQUssRUFBRTtJQUNQLGNBQWMsRUFBRTs2REFDc0Q7QUFJdkU7SUFGQyxLQUFLLEVBQUU7SUFDUCxjQUFjLEVBQUU7dURBQ0w7QUFJWjtJQUZDLEtBQUssRUFBRTtJQUNQLGNBQWMsRUFBRTt3REFDSjtBQVFiO0lBRkMsS0FBSyxFQUFFO0lBQ1AsY0FBYyxFQUFFO3FEQUNJO0FBUXJCO0lBRkMsS0FBSyxFQUFFO0lBQ1AsY0FBYyxFQUFFOzBEQUNGO0FBNUROLHVCQUF1QjtJQTFCbkMsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLGtCQUFrQjtRQUM1QixzakZBQTJDO1FBRTNDLElBQUksRUFBRTtZQUNGOzs7ZUFHRztZQUNILDRCQUE0QixFQUFFLFFBQVE7U0FDekM7UUFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtRQUMvQyxTQUFTLEVBQUU7WUFDUDtnQkFDSSxPQUFPLEVBQUUsMkJBQTJCO2dCQUNwQyxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF1QixDQUFDO2FBQ3pEO1lBQ0Qsd0JBQXdCLENBQUMsRUFBQyxVQUFVLEVBQUUsYUFBYSxFQUFDLENBQUM7WUFDckQsd0JBQXdCO1lBQ3hCLDZCQUE2QjtTQUNoQzs7S0FDSixDQUFDO0lBQ0Y7OztPQUdHOztJQWdFTSxXQUFBLFFBQVEsRUFBRSxDQUFBO0lBQ1YsV0FBQSxJQUFJLEVBQUUsQ0FBQTtJQUNOLFdBQUEsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBRWpCLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFDekIsV0FBQSxNQUFNLENBQUMsZ0NBQWdDLENBQUMsQ0FBQTtJQUV4QyxXQUFBLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0lBRXpCLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFDekIsV0FBQSxRQUFRLEVBQUUsQ0FBQTtJQUNWLFdBQUEsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUE7R0ExRTlCLHVCQUF1QixDQW9NbkM7U0FwTVksdUJBQXVCO0FBc01wQyxTQUFTLGdCQUFnQixDQUFDLE9BQWU7SUFDckMsT0FBTyxPQUFPLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLGlCQUFpQixDQUFDLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUEwQjtJQUM5RSxPQUFPLENBQUMsRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFpQyxFQUFFLEVBQUU7UUFDMUQsUUFBUSxLQUFLLEVBQUU7WUFDWCxLQUFLLEdBQUc7Z0JBQ0osT0FBTyxRQUFRLElBQUksS0FBSyxDQUFDO1lBQzdCLEtBQUssR0FBRztnQkFDSixPQUFPLFFBQVEsSUFBSSxLQUFLLENBQUM7WUFDN0I7Z0JBQ0ksT0FBTyxLQUFLLENBQUM7U0FDcEI7SUFDTCxDQUFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgY2xhbXAsXG4gICAgaXNOYXRpdmVGb2N1c2VkLFxuICAgIHJvdW5kLFxuICAgIHNldE5hdGl2ZUZvY3VzZWQsXG4gICAgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgIHR1aUFzc2VydCxcbiAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0LFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICBUdWlOYXRpdmVGb2N1c2FibGVFbGVtZW50LFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgZ2V0RnJhY3Rpb25QYXJ0UGFkZGVkLFxuICAgIEhJTlRfQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICBOdW1iZXJGb3JtYXRTZXR0aW5ncyxcbiAgICBURVhURklFTERfQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICBUVUlfTlVNQkVSX0ZPUk1BVCxcbiAgICBUVUlfVEVYVEZJRUxEX1dBVENIRURfQ09OVFJPTExFUixcbiAgICBUdWlEZWNpbWFsVCxcbiAgICBUdWlTaXplTCxcbiAgICBUdWlUZXh0ZmllbGRDb250cm9sbGVyLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge0Fic3RyYWN0VHVpSW5wdXRTbGlkZXJ9IGZyb20gJ0B0YWlnYS11aS9raXQvYWJzdHJhY3QnO1xuaW1wb3J0IHtUdWlJbnB1dE51bWJlckNvbXBvbmVudH0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LW51bWJlcic7XG5pbXBvcnQge1xuICAgIFR1aVNsaWRlckNvbXBvbmVudCxcbiAgICB0dWlTbGlkZXJPcHRpb25zUHJvdmlkZXIsXG59IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9zbGlkZXInO1xuaW1wb3J0IHtUVUlfRkxPQVRJTkdfUFJFQ0lTSU9OfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbnN0YW50cyc7XG5pbXBvcnQge1RVSV9GUk9NX1RPX1RFWFRTfSBmcm9tICdAdGFpZ2EtdWkva2l0L3Rva2Vucyc7XG5pbXBvcnQge1R1aUtleVN0ZXBzfSBmcm9tICdAdGFpZ2EtdWkva2l0L3R5cGVzJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogVHVybiBvbiBuZXcgYElucHV0U2xpZGVyYCdzIHZlcnNpb24uXG4gKiBUaGUgbmV3IHZlcnNpb24gd2lsbCBiZWhhdmUgYWxtb3N0IHRoZSBzYW1lIGFzIGBJbnB1dFNsaWRlcmAgZnJvbSB0aGUgbmV4dCBtYWpvciByZWxlYXNlLlxuICogQGRlcHJlY2F0ZWQgVE9ETyByZW1vdmUgbWUgaW4gdjMuMCBhbmQgbWFrZSBgSW5wdXRTbGlkZXJgIGFsd2F5cyBcIm5ld1wiLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1zbGlkZXJbbmV3XScsXG59KVxuZXhwb3J0IGNsYXNzIFR1aU5ld0lucHV0U2xpZGVyRGlyZWN0aXZlIHt9XG5cbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1zbGlkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1zbGlkZXIudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtc2xpZGVyLnN0eWxlLmxlc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUT0RPIGRlbGV0ZSBpdCBpbiB2My4wXG4gICAgICAgICAqIERvbnQgZm9yZ2V0IHRvIGNsZWFyIGh0bWwtdGFnc1xuICAgICAgICAgKi9cbiAgICAgICAgJ1tjbGFzcy5fc2hvdy10aWNrcy1sYWJlbHNdJzogJyFpc05ldycsXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpSW5wdXRTbGlkZXJDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgICAgICB0dWlTbGlkZXJPcHRpb25zUHJvdmlkZXIoe3RyYWNrQ29sb3I6ICd0cmFuc3BhcmVudCd9KSxcbiAgICAgICAgSElOVF9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgICAgICBURVhURklFTERfQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICBdLFxufSlcbi8qKlxuICogVE9ETyByZXBsYWNlIGBleHRlbmRzIEFic3RyYWN0VHVpSW5wdXRTbGlkZXI8bnVtYmVyPmAgYnkgYGV4dGVuZHMgQWJzdHJhY3RUdWlDb250cm9sPG51bWJlcj4gaW1wbGVtZW50cyBUdWlXaXRoT3B0aW9uYWxNaW5NYXg8bnVtYmVyPmBcbiAqIGluIHYzLjBcbiAqL1xuZXhwb3J0IGNsYXNzIFR1aUlucHV0U2xpZGVyQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aUlucHV0U2xpZGVyPG51bWJlcj5cbiAgICBpbXBsZW1lbnRzIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBWaWV3Q2hpbGQoVHVpSW5wdXROdW1iZXJDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbnB1dE51bWJlclJlZj86IFR1aUlucHV0TnVtYmVyQ29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZChUdWlTbGlkZXJDb21wb25lbnQsIHtyZWFkOiBFbGVtZW50UmVmfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNsaWRlclJlZj86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWluID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtYXggPSBJbmZpbml0eTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKHF1YW50dW1Bc3NlcnRpb24sICdRdWFudHVtIG11c3QgYmUgcG9zaXRpdmUnKVxuICAgIHF1YW50dW0gPSAxO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHN0ZXBzID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzZWdtZW50cyA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAga2V5U3RlcHM6IFR1aUtleVN0ZXBzIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgdmFsdWVDb250ZW50OiBQb2x5bW9ycGhldXNDb250ZW50PFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8bnVtYmVyPj4gPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBwcmVmaXggPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBwb3N0Zml4ID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgYHR1aVRleHRmaWVsZFNpemVgIGluc3RlYWRcbiAgICAgKiBUT0RPIGRlbGV0ZSBpbiB2My4wXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHNpemU6IFR1aVNpemVMID0gJ2wnO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGB0dWlUZXh0ZmllbGRDdXN0b21Db250ZW50YCBpbnN0ZWFkXG4gICAgICogVE9ETyBkZWxldGUgaW4gdjMuMFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzZWNvbmRhcnkgPSAnJztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9XQVRDSEVEX0NPTlRST0xMRVIpXG4gICAgICAgIHJlYWRvbmx5IGNvbnRyb2xsZXI6IFR1aVRleHRmaWVsZENvbnRyb2xsZXIsXG4gICAgICAgIEBJbmplY3QoVFVJX05VTUJFUl9GT1JNQVQpXG4gICAgICAgIHByb3RlY3RlZCByZWFkb25seSBudW1iZXJGb3JtYXQ6IE51bWJlckZvcm1hdFNldHRpbmdzLFxuICAgICAgICBASW5qZWN0KFRVSV9GUk9NX1RPX1RFWFRTKSByZWFkb25seSBmcm9tVG9UZXh0cyQ6IE9ic2VydmFibGU8W3N0cmluZywgc3RyaW5nXT4sXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVHVpTmV3SW5wdXRTbGlkZXJEaXJlY3RpdmUpXG4gICAgICAgIHJlYWRvbmx5IGlzTmV3OiBUdWlOZXdJbnB1dFNsaWRlckRpcmVjdGl2ZSB8IG51bGwsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNvbnRyb2wsIGNoYW5nZURldGVjdG9yUmVmKTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBUdWlOYXRpdmVGb2N1c2FibGVFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiAhdGhpcy5pbnB1dE51bWJlclJlZj8ubmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8fCB0aGlzLmNvbXB1dGVkRGlzYWJsZWRcbiAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgOiB0aGlzLmlucHV0TnVtYmVyUmVmLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBpc05hdGl2ZUZvY3VzZWQodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB8fFxuICAgICAgICAgICAgaXNOYXRpdmVGb2N1c2VkKHRoaXMuc2xpZGVyUmVmPy5uYXRpdmVFbGVtZW50IHx8IG51bGwpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkU3RlcHMoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RlcHMgfHwgKHRoaXMubWF4IC0gdGhpcy5taW4pIC8gdGhpcy5xdWFudHVtO1xuICAgIH1cblxuICAgIGdldCBwcmVjaXNpb24oKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGdldEZyYWN0aW9uUGFydFBhZGRlZCh0aGlzLnF1YW50dW0pLmxlbmd0aDtcbiAgICB9XG5cbiAgICBnZXQgZGVjaW1hbCgpOiBUdWlEZWNpbWFsVCB7XG4gICAgICAgIHJldHVybiB0aGlzLnByZWNpc2lvbiA/ICdub3QtemVybycgOiAnbmV2ZXInO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRPRE8gcmVtb3ZlIG9sZCBwcm9wZXJ0eSBgc2l6ZWAgaW4gdjMuMFxuICAgICAqL1xuICAgIGdldCBjb21wdXRlZFNpemUoKTogVHVpU2l6ZUwge1xuICAgICAgICBpZiAodGhpcy5pc05ldykge1xuICAgICAgICAgICAgdHVpQXNzZXJ0LmFzc2VydChcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2xsZXIuc2l6ZSAhPT0gJ3MnLFxuICAgICAgICAgICAgICAgIFwiU2l6ZSAncycgaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIGlucHV0LlwiLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5zaXplID09PSAnbCcgPyAnbCcgOiAnbSc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5zaXplO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gICAgICogVE9ETyByZXBsYWNlIGJ5IGp1c3QgYHRoaXMudmFsdWVDb250ZW50YCBpbiB2My4wXG4gICAgICovXG4gICAgZ2V0IGNvbXB1dGVkVmFsdWVDb250ZW50KCk6IFBvbHltb3JwaGV1c0NvbnRlbnQ8VHVpQ29udGV4dFdpdGhJbXBsaWNpdDxudW1iZXI+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbkxhYmVsIHx8IHRoaXMubWF4TGFiZWxcbiAgICAgICAgICAgID8gbGVnYWN5TWluTWF4TGFiZWwodGhpcylcbiAgICAgICAgICAgIDogdGhpcy52YWx1ZUNvbnRlbnQ7XG4gICAgfVxuXG4gICAgZm9jdXNUZXh0SW5wdXQoKSB7XG4gICAgICAgIGNvbnN0IGZvY3VzYWJsZUVsZW1lbnQgPSB0aGlzLmlucHV0TnVtYmVyUmVmPy5uYXRpdmVGb2N1c2FibGVFbGVtZW50O1xuXG4gICAgICAgIGlmIChmb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICBzZXROYXRpdmVGb2N1c2VkKGZvY3VzYWJsZUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2FmZWx5VXBkYXRlVmFsdWUodmFsdWU6IG51bWJlciB8IG51bGwpIHtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh0aGlzLnZhbHVlR3VhcmQodmFsdWUgPz8gdGhpcy5zYWZlQ3VycmVudFZhbHVlKSk7XG4gICAgfVxuXG4gICAgb25WZXJ0aWNhbEFycm93S2V5RG93bihjb2VmZmljaWVudDogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLnJlYWRPbmx5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWUgKyBjb2VmZmljaWVudCAqIHRoaXMuc3RlcDtcblxuICAgICAgICBpZiAodmFsdWUgIT09IHRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2FmZWx5VXBkYXRlVmFsdWUodmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVUZXh0SW5wdXRWYWx1ZSh0aGlzLnZhbHVlR3VhcmQodmFsdWUpKTtcbiAgICB9XG5cbiAgICBvbkZvY3VzZWQoZm9jdXNlZDogYm9vbGVhbikge1xuICAgICAgICBpZiAoIWZvY3VzZWQgJiYgIXRoaXMudGV4dElucHV0VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVGV4dElucHV0VmFsdWUodGhpcy5zYWZlQ3VycmVudFZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChmb2N1c2VkKTtcbiAgICB9XG5cbiAgICBvblByZXNzZWQocHJlc3NlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZVByZXNzZWQocHJlc3NlZCk7XG4gICAgfVxuXG4gICAgb25Ib3ZlcmVkKGhvdmVyZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVIb3ZlcmVkKGhvdmVyZWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IHRleHRJbnB1dFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0TnVtYmVyUmVmPy5uYXRpdmVWYWx1ZSB8fCAnJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RmFsbGJhY2tWYWx1ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdmFsdWVHdWFyZCh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3Qgcm91bmRlZFZhbHVlID0gcm91bmQoXG4gICAgICAgICAgICBNYXRoLnJvdW5kKHZhbHVlIC8gdGhpcy5xdWFudHVtKSAqIHRoaXMucXVhbnR1bSxcbiAgICAgICAgICAgIFRVSV9GTE9BVElOR19QUkVDSVNJT04sXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIGNsYW1wKHJvdW5kZWRWYWx1ZSwgdGhpcy5taW4sIHRoaXMubWF4KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVRleHRJbnB1dFZhbHVlKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5wdXROdW1iZXJSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXROdW1iZXJSZWYubmF0aXZlVmFsdWUgPVxuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXROdW1iZXJSZWYuZ2V0Rm9ybWF0dGVkVmFsdWUodmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5mdW5jdGlvbiBxdWFudHVtQXNzZXJ0aW9uKHF1YW50dW06IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBxdWFudHVtID4gMDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBoZWxwZXIgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXG4gKiBUT0RPIHJlbW92ZSBpbiB2My4wXG4gKi9cbmZ1bmN0aW9uIGxlZ2FjeU1pbk1heExhYmVsKHttaW4sIG1heCwgbWluTGFiZWwsIG1heExhYmVsfTogVHVpSW5wdXRTbGlkZXJDb21wb25lbnQpIHtcbiAgICByZXR1cm4gKHskaW1wbGljaXQ6IHZhbHVlfTogVHVpQ29udGV4dFdpdGhJbXBsaWNpdDxudW1iZXI+KSA9PiB7XG4gICAgICAgIHN3aXRjaCAodmFsdWUpIHtcbiAgICAgICAgICAgIGNhc2UgbWluOlxuICAgICAgICAgICAgICAgIHJldHVybiBtaW5MYWJlbCB8fCB2YWx1ZTtcbiAgICAgICAgICAgIGNhc2UgbWF4OlxuICAgICAgICAgICAgICAgIHJldHVybiBtYXhMYWJlbCB8fCB2YWx1ZTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgfTtcbn1cbiJdfQ==
@@ -2,11 +2,13 @@ import { __decorate } from "tslib";
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { NgModule } from '@angular/core';
4
4
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
5
- import { TuiFocusableModule, TuiFocusedModule, TuiHoveredModule, TuiInputModeModule, TuiMapperPipeModule, TuiPressedModule, } from '@taiga-ui/cdk';
6
- import { TuiTooltipModule, TuiWrapperModule } from '@taiga-ui/core';
5
+ import { TuiFocusableModule, TuiFocusedModule, TuiHoveredModule, TuiInputModeModule, TuiMapperPipeModule, TuiPressedModule, TuiRepeatTimesModule, } from '@taiga-ui/cdk';
6
+ import { TuiFormatNumberPipeModule, TuiTextfieldControllerModule, TuiTooltipModule, TuiWrapperModule, } from '@taiga-ui/core';
7
+ import { TuiInputNumberModule } from '@taiga-ui/kit/components/input-number';
7
8
  import { TuiSliderModule } from '@taiga-ui/kit/components/slider';
9
+ import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
8
10
  import { TextMaskModule } from 'angular2-text-mask';
9
- import { TuiInputSliderComponent } from './input-slider.component';
11
+ import { TuiInputSliderComponent, TuiNewInputSliderDirective, } from './input-slider.component';
10
12
  let TuiInputSliderModule = class TuiInputSliderModule {
11
13
  };
12
14
  TuiInputSliderModule = __decorate([
@@ -25,10 +27,15 @@ TuiInputSliderModule = __decorate([
25
27
  TuiTooltipModule,
26
28
  TuiSliderModule,
27
29
  TuiWrapperModule,
30
+ TuiFormatNumberPipeModule,
31
+ TuiRepeatTimesModule,
32
+ PolymorpheusModule,
33
+ TuiInputNumberModule,
34
+ TuiTextfieldControllerModule,
28
35
  ],
29
- declarations: [TuiInputSliderComponent],
30
- exports: [TuiInputSliderComponent],
36
+ declarations: [TuiInputSliderComponent, TuiNewInputSliderDirective],
37
+ exports: [TuiInputSliderComponent, TuiNewInputSliderDirective],
31
38
  })
32
39
  ], TuiInputSliderModule);
33
40
  export { TuiInputSliderModule };
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2xpZGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1zbGlkZXIvIiwic291cmNlcyI6WyJpbnB1dC1zbGlkZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUNILGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsZ0JBQWdCLEdBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFbEQsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFxQmpFLElBQWEsb0JBQW9CLEdBQWpDLE1BQWEsb0JBQW9CO0NBQUcsQ0FBQTtBQUF2QixvQkFBb0I7SUFuQmhDLFFBQVEsQ0FBQztRQUNOLE9BQU8sRUFBRTtZQUNMLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGNBQWM7WUFDZCxrQkFBa0I7WUFDbEIsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsbUJBQW1CO1lBQ25CLGtCQUFrQjtZQUNsQixnQkFBZ0I7WUFDaEIsZUFBZTtZQUNmLGdCQUFnQjtTQUNuQjtRQUNELFlBQVksRUFBRSxDQUFDLHVCQUF1QixDQUFDO1FBQ3ZDLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixDQUFDO0tBQ3JDLENBQUM7R0FDVyxvQkFBb0IsQ0FBRztTQUF2QixvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBUdWlGb2N1c2FibGVNb2R1bGUsXG4gICAgVHVpRm9jdXNlZE1vZHVsZSxcbiAgICBUdWlIb3ZlcmVkTW9kdWxlLFxuICAgIFR1aUlucHV0TW9kZU1vZHVsZSxcbiAgICBUdWlNYXBwZXJQaXBlTW9kdWxlLFxuICAgIFR1aVByZXNzZWRNb2R1bGUsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUdWlUb29sdGlwTW9kdWxlLCBUdWlXcmFwcGVyTW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1R1aVNsaWRlck1vZHVsZX0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL3NsaWRlcic7XG5pbXBvcnQge1RleHRNYXNrTW9kdWxlfSBmcm9tICdhbmd1bGFyMi10ZXh0LW1hc2snO1xuXG5pbXBvcnQge1R1aUlucHV0U2xpZGVyQ29tcG9uZW50fSBmcm9tICcuL2lucHV0LXNsaWRlci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgVGV4dE1hc2tNb2R1bGUsXG4gICAgICAgIFR1aUZvY3VzYWJsZU1vZHVsZSxcbiAgICAgICAgVHVpRm9jdXNlZE1vZHVsZSxcbiAgICAgICAgVHVpSG92ZXJlZE1vZHVsZSxcbiAgICAgICAgVHVpUHJlc3NlZE1vZHVsZSxcbiAgICAgICAgVHVpTWFwcGVyUGlwZU1vZHVsZSxcbiAgICAgICAgVHVpSW5wdXRNb2RlTW9kdWxlLFxuICAgICAgICBUdWlUb29sdGlwTW9kdWxlLFxuICAgICAgICBUdWlTbGlkZXJNb2R1bGUsXG4gICAgICAgIFR1aVdyYXBwZXJNb2R1bGUsXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtUdWlJbnB1dFNsaWRlckNvbXBvbmVudF0sXG4gICAgZXhwb3J0czogW1R1aUlucHV0U2xpZGVyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXRTbGlkZXJNb2R1bGUge31cbiJdfQ==
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2xpZGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1zbGlkZXIvIiwic291cmNlcyI6WyJpbnB1dC1zbGlkZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUNILGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLG9CQUFvQixHQUN2QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gseUJBQXlCLEVBQ3pCLDRCQUE0QixFQUM1QixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEdBQ25CLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUVsRCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLDBCQUEwQixHQUM3QixNQUFNLDBCQUEwQixDQUFDO0FBMEJsQyxJQUFhLG9CQUFvQixHQUFqQyxNQUFhLG9CQUFvQjtDQUFHLENBQUE7QUFBdkIsb0JBQW9CO0lBeEJoQyxRQUFRLENBQUM7UUFDTixPQUFPLEVBQUU7WUFDTCxZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixjQUFjO1lBQ2Qsa0JBQWtCO1lBQ2xCLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsZ0JBQWdCO1lBQ2hCLG1CQUFtQjtZQUNuQixrQkFBa0I7WUFDbEIsZ0JBQWdCO1lBQ2hCLGVBQWU7WUFDZixnQkFBZ0I7WUFDaEIseUJBQXlCO1lBQ3pCLG9CQUFvQjtZQUNwQixrQkFBa0I7WUFDbEIsb0JBQW9CO1lBQ3BCLDRCQUE0QjtTQUMvQjtRQUNELFlBQVksRUFBRSxDQUFDLHVCQUF1QixFQUFFLDBCQUEwQixDQUFDO1FBQ25FLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixFQUFFLDBCQUEwQixDQUFDO0tBQ2pFLENBQUM7R0FDVyxvQkFBb0IsQ0FBRztTQUF2QixvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBUdWlGb2N1c2FibGVNb2R1bGUsXG4gICAgVHVpRm9jdXNlZE1vZHVsZSxcbiAgICBUdWlIb3ZlcmVkTW9kdWxlLFxuICAgIFR1aUlucHV0TW9kZU1vZHVsZSxcbiAgICBUdWlNYXBwZXJQaXBlTW9kdWxlLFxuICAgIFR1aVByZXNzZWRNb2R1bGUsXG4gICAgVHVpUmVwZWF0VGltZXNNb2R1bGUsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBUdWlGb3JtYXROdW1iZXJQaXBlTW9kdWxlLFxuICAgIFR1aVRleHRmaWVsZENvbnRyb2xsZXJNb2R1bGUsXG4gICAgVHVpVG9vbHRpcE1vZHVsZSxcbiAgICBUdWlXcmFwcGVyTW9kdWxlLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1R1aUlucHV0TnVtYmVyTW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtbnVtYmVyJztcbmltcG9ydCB7VHVpU2xpZGVyTW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvc2xpZGVyJztcbmltcG9ydCB7UG9seW1vcnBoZXVzTW9kdWxlfSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtUZXh0TWFza01vZHVsZX0gZnJvbSAnYW5ndWxhcjItdGV4dC1tYXNrJztcblxuaW1wb3J0IHtcbiAgICBUdWlJbnB1dFNsaWRlckNvbXBvbmVudCxcbiAgICBUdWlOZXdJbnB1dFNsaWRlckRpcmVjdGl2ZSxcbn0gZnJvbSAnLi9pbnB1dC1zbGlkZXIuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIFRleHRNYXNrTW9kdWxlLFxuICAgICAgICBUdWlGb2N1c2FibGVNb2R1bGUsXG4gICAgICAgIFR1aUZvY3VzZWRNb2R1bGUsXG4gICAgICAgIFR1aUhvdmVyZWRNb2R1bGUsXG4gICAgICAgIFR1aVByZXNzZWRNb2R1bGUsXG4gICAgICAgIFR1aU1hcHBlclBpcGVNb2R1bGUsXG4gICAgICAgIFR1aUlucHV0TW9kZU1vZHVsZSxcbiAgICAgICAgVHVpVG9vbHRpcE1vZHVsZSxcbiAgICAgICAgVHVpU2xpZGVyTW9kdWxlLFxuICAgICAgICBUdWlXcmFwcGVyTW9kdWxlLFxuICAgICAgICBUdWlGb3JtYXROdW1iZXJQaXBlTW9kdWxlLFxuICAgICAgICBUdWlSZXBlYXRUaW1lc01vZHVsZSxcbiAgICAgICAgUG9seW1vcnBoZXVzTW9kdWxlLFxuICAgICAgICBUdWlJbnB1dE51bWJlck1vZHVsZSxcbiAgICAgICAgVHVpVGV4dGZpZWxkQ29udHJvbGxlck1vZHVsZSxcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1R1aUlucHV0U2xpZGVyQ29tcG9uZW50LCBUdWlOZXdJbnB1dFNsaWRlckRpcmVjdGl2ZV0sXG4gICAgZXhwb3J0czogW1R1aUlucHV0U2xpZGVyQ29tcG9uZW50LCBUdWlOZXdJbnB1dFNsaWRlckRpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0U2xpZGVyTW9kdWxlIHt9XG4iXX0=