@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,217 +1,300 @@
1
1
  import { __decorate, __extends, __param } from "tslib";
2
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, forwardRef, HostBinding, Inject, Input, Optional, Self, ViewChild, } from '@angular/core';
2
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Directive, ElementRef, forwardRef, Inject, Input, Optional, Self, ViewChild, } from '@angular/core';
3
3
  import { NgControl } from '@angular/forms';
4
- import { isNativeFocused, setNativeFocused, TUI_FOCUSABLE_ITEM_ACCESSOR, tuiDefaultProp, } from '@taiga-ui/cdk';
5
- import { formatNumber, HINT_CONTROLLER_PROVIDER, maskedMoneyValueIsEmpty, maskedNumberStringToNumber, NumberFormatSettings, TUI_HINT_WATCHED_CONTROLLER, TUI_NUMBER_FORMAT, TUI_TEXTFIELD_APPEARANCE, TuiHintControllerDirective, TuiModeDirective, } from '@taiga-ui/core';
4
+ import { clamp, isNativeFocused, round, setNativeFocused, TUI_FOCUSABLE_ITEM_ACCESSOR, tuiAssert, tuiDefaultProp, } from '@taiga-ui/cdk';
5
+ import { getFractionPartPadded, HINT_CONTROLLER_PROVIDER, NumberFormatSettings, TEXTFIELD_CONTROLLER_PROVIDER, TUI_NUMBER_FORMAT, TUI_TEXTFIELD_WATCHED_CONTROLLER, TuiDecimalT, TuiSizeL, TuiTextfieldController, } from '@taiga-ui/core';
6
6
  import { AbstractTuiInputSlider } from '@taiga-ui/kit/abstract';
7
+ import { TuiInputNumberComponent } from '@taiga-ui/kit/components/input-number';
8
+ import { TuiSliderComponent, tuiSliderOptionsProvider, } from '@taiga-ui/kit/components/slider';
9
+ import { TUI_FLOATING_PRECISION } from '@taiga-ui/kit/constants';
10
+ import { TUI_FROM_TO_TEXTS } from '@taiga-ui/kit/tokens';
11
+ import { Observable } from 'rxjs';
12
+ /**
13
+ * Turn on new `InputSlider`'s version.
14
+ * The new version will behave almost the same as `InputSlider` from the next major release.
15
+ * @deprecated TODO remove me in v3.0 and make `InputSlider` always "new".
16
+ */
17
+ var TuiNewInputSliderDirective = /** @class */ (function () {
18
+ function TuiNewInputSliderDirective() {
19
+ }
20
+ TuiNewInputSliderDirective = __decorate([
21
+ Directive({
22
+ selector: 'tui-input-slider[new]',
23
+ })
24
+ ], TuiNewInputSliderDirective);
25
+ return TuiNewInputSliderDirective;
26
+ }());
27
+ export { TuiNewInputSliderDirective };
7
28
  // @dynamic
8
29
  var TuiInputSliderComponent = /** @class */ (function (_super) {
9
30
  __extends(TuiInputSliderComponent, _super);
10
- function TuiInputSliderComponent(control, changeDetectorRef, modeDirective, hintController, numberFormat, appearance) {
31
+ function TuiInputSliderComponent(control, changeDetectorRef, controller, numberFormat, fromToTexts$, isNew) {
11
32
  var _this = _super.call(this, control, changeDetectorRef) || this;
12
- _this.modeDirective = modeDirective;
13
- _this.hintController = hintController;
33
+ _this.controller = controller;
14
34
  _this.numberFormat = numberFormat;
15
- _this.appearance = appearance;
35
+ _this.fromToTexts$ = fromToTexts$;
36
+ _this.isNew = isNew;
37
+ _this.min = 0;
38
+ _this.max = Infinity;
39
+ _this.quantum = 1;
40
+ _this.steps = 0;
41
+ _this.segments = 0;
42
+ _this.keySteps = null;
43
+ _this.valueContent = '';
44
+ _this.prefix = '';
45
+ _this.postfix = '';
46
+ /**
47
+ * @deprecated use `tuiTextfieldSize` instead
48
+ * TODO delete in v3.0
49
+ */
50
+ _this.size = 'l';
51
+ /**
52
+ * @deprecated use `tuiTextfieldCustomContent` instead
53
+ * TODO delete in v3.0
54
+ */
16
55
  _this.secondary = '';
17
56
  return _this;
18
57
  }
19
58
  TuiInputSliderComponent_1 = TuiInputSliderComponent;
20
59
  Object.defineProperty(TuiInputSliderComponent.prototype, "nativeFocusableElement", {
21
60
  get: function () {
22
- return !this.focusableElement || this.computedDisabled
61
+ var _a;
62
+ return !((_a = this.inputNumberRef) === null || _a === void 0 ? void 0 : _a.nativeFocusableElement) || this.computedDisabled
23
63
  ? null
24
- : this.focusableElement.nativeElement;
64
+ : this.inputNumberRef.nativeFocusableElement;
25
65
  },
26
66
  enumerable: true,
27
67
  configurable: true
28
68
  });
29
69
  Object.defineProperty(TuiInputSliderComponent.prototype, "focused", {
30
70
  get: function () {
31
- return isNativeFocused(this.nativeFocusableElement);
71
+ var _a;
72
+ return (isNativeFocused(this.nativeFocusableElement) ||
73
+ isNativeFocused(((_a = this.sliderRef) === null || _a === void 0 ? void 0 : _a.nativeElement) || null));
32
74
  },
33
75
  enumerable: true,
34
76
  configurable: true
35
77
  });
36
- Object.defineProperty(TuiInputSliderComponent.prototype, "hasTooltip", {
78
+ Object.defineProperty(TuiInputSliderComponent.prototype, "computedSteps", {
37
79
  get: function () {
38
- return !!this.hintController.content && !this.disabled;
80
+ return this.steps || (this.max - this.min) / this.quantum;
39
81
  },
40
82
  enumerable: true,
41
83
  configurable: true
42
84
  });
43
- Object.defineProperty(TuiInputSliderComponent.prototype, "showMinLabel", {
85
+ Object.defineProperty(TuiInputSliderComponent.prototype, "precision", {
44
86
  get: function () {
45
- return !this.focused && this.value === this.min && !!this.minLabel;
87
+ return getFractionPartPadded(this.quantum).length;
46
88
  },
47
89
  enumerable: true,
48
90
  configurable: true
49
91
  });
50
- Object.defineProperty(TuiInputSliderComponent.prototype, "showMaxLabel", {
92
+ Object.defineProperty(TuiInputSliderComponent.prototype, "decimal", {
51
93
  get: function () {
52
- return !this.focused && this.value === this.max && !!this.maxLabel;
94
+ return this.precision ? 'not-zero' : 'never';
53
95
  },
54
96
  enumerable: true,
55
97
  configurable: true
56
98
  });
57
- Object.defineProperty(TuiInputSliderComponent.prototype, "computedValue", {
99
+ Object.defineProperty(TuiInputSliderComponent.prototype, "computedSize", {
100
+ /**
101
+ * TODO remove old property `size` in v3.0
102
+ */
58
103
  get: function () {
59
- if (this.focused && this.isInputValueNotFinished) {
60
- return this.inputValue;
104
+ if (this.isNew) {
105
+ tuiAssert.assert(this.controller.size !== 's', "Size 's' is not supported by this input.");
106
+ return this.controller.size === 'l' ? 'l' : 'm';
61
107
  }
62
- return this.formattedValue;
108
+ return this.size;
63
109
  },
64
110
  enumerable: true,
65
111
  configurable: true
66
112
  });
67
- Object.defineProperty(TuiInputSliderComponent.prototype, "showValue", {
113
+ Object.defineProperty(TuiInputSliderComponent.prototype, "computedValueContent", {
114
+ /**
115
+ * @deprecated for backward compatibility
116
+ * TODO replace by just `this.valueContent` in v3.0
117
+ */
68
118
  get: function () {
69
- return !this.showMinLabel && !this.showMaxLabel;
119
+ return this.minLabel || this.maxLabel
120
+ ? legacyMinMaxLabel(this)
121
+ : this.valueContent;
70
122
  },
71
123
  enumerable: true,
72
124
  configurable: true
73
125
  });
74
- Object.defineProperty(TuiInputSliderComponent.prototype, "inputValue", {
75
- get: function () {
76
- return this.focusableElement ? this.focusableElement.nativeElement.value : '';
77
- },
78
- set: function (value) {
79
- if (this.focusableElement) {
80
- this.focusableElement.nativeElement.value = value;
81
- }
82
- },
83
- enumerable: true,
84
- configurable: true
85
- });
86
- TuiInputSliderComponent.prototype.onMouseDown = function () {
87
- if (this.focusableElement) {
88
- setNativeFocused(this.focusableElement.nativeElement);
126
+ TuiInputSliderComponent.prototype.focusTextInput = function () {
127
+ var _a;
128
+ var focusableElement = (_a = this.inputNumberRef) === null || _a === void 0 ? void 0 : _a.nativeFocusableElement;
129
+ if (focusableElement) {
130
+ setNativeFocused(focusableElement);
89
131
  }
90
132
  };
91
- TuiInputSliderComponent.prototype.onKeyDownArrowUp = function (event) {
92
- if (this.readOnly) {
93
- return;
94
- }
95
- event.preventDefault();
96
- this.processStep(true);
97
- this.inputValue = this.formattedValue;
133
+ TuiInputSliderComponent.prototype.safelyUpdateValue = function (value) {
134
+ this.updateValue(this.valueGuard(value !== null && value !== void 0 ? value : this.safeCurrentValue));
98
135
  };
99
- TuiInputSliderComponent.prototype.onKeyDownArrowDown = function (event) {
136
+ TuiInputSliderComponent.prototype.onVerticalArrowKeyDown = function (coefficient) {
100
137
  if (this.readOnly) {
101
138
  return;
102
139
  }
103
- event.preventDefault();
104
- this.processStep(false);
105
- this.inputValue = this.formattedValue;
106
- };
107
- TuiInputSliderComponent.prototype.onFocused = function (focused) {
108
- this.updateFocused(focused);
109
- if (focused) {
110
- return;
140
+ var value = this.value + coefficient * this.step;
141
+ if (value !== this.value) {
142
+ this.safelyUpdateValue(value);
111
143
  }
112
- var inputValue = maskedNumberStringToNumber(this.computedValue, this.numberFormat.decimalSeparator, this.numberFormat.thousandSeparator);
113
- var value = isNaN(inputValue) ? this.min : this.valueGuard(inputValue);
114
- this.updateValue(value);
115
- this.inputValue = this.formattedValue;
144
+ this.updateTextInputValue(this.valueGuard(value));
116
145
  };
117
- TuiInputSliderComponent.prototype.onValue = function (value) {
118
- var capped = this.capInputValue(value);
119
- var postfix = value.slice(-1)[0] === ',' ? ',' : '';
120
- if (maskedMoneyValueIsEmpty(value) || capped === null) {
121
- return;
122
- }
123
- var newValue = this.formatNumber(capped) + postfix;
124
- if (value !== newValue) {
125
- this.inputValue = newValue;
146
+ TuiInputSliderComponent.prototype.onFocused = function (focused) {
147
+ if (!focused && !this.textInputValue) {
148
+ this.updateTextInputValue(this.safeCurrentValue);
126
149
  }
127
- this.updateValue(capped);
150
+ this.updateFocused(focused);
128
151
  };
129
- TuiInputSliderComponent.prototype.onSliderValue = function (value) {
130
- this.updateValue(this.valueGuard(value));
131
- this.inputValue = this.formattedValue;
152
+ TuiInputSliderComponent.prototype.onPressed = function (pressed) {
153
+ this.updatePressed(pressed);
132
154
  };
133
- TuiInputSliderComponent.prototype.getFallbackValue = function () {
134
- return 0;
155
+ TuiInputSliderComponent.prototype.onHovered = function (hovered) {
156
+ this.updateHovered(hovered);
135
157
  };
136
- Object.defineProperty(TuiInputSliderComponent.prototype, "formattedValue", {
137
- get: function () {
138
- return this.formatNumber(this.value);
139
- },
140
- enumerable: true,
141
- configurable: true
142
- });
143
- Object.defineProperty(TuiInputSliderComponent.prototype, "isInputValueNotFinished", {
158
+ Object.defineProperty(TuiInputSliderComponent.prototype, "textInputValue", {
144
159
  get: function () {
145
- if (this.inputValue === '') {
146
- return true;
147
- }
148
- var nativeNumberValue = maskedNumberStringToNumber(this.inputValue, this.numberFormat.decimalSeparator, this.numberFormat.thousandSeparator);
149
- return nativeNumberValue < 0
150
- ? nativeNumberValue > this.max
151
- : nativeNumberValue < this.min;
160
+ var _a;
161
+ return ((_a = this.inputNumberRef) === null || _a === void 0 ? void 0 : _a.nativeValue) || '';
152
162
  },
153
163
  enumerable: true,
154
164
  configurable: true
155
165
  });
156
- TuiInputSliderComponent.prototype.processStep = function (increment) {
157
- var value = this.valueGuard(increment ? this.value + this.step : this.value - this.step);
158
- if (value !== this.value) {
159
- this.updateValue(value);
160
- }
166
+ TuiInputSliderComponent.prototype.getFallbackValue = function () {
167
+ return 0;
161
168
  };
162
- TuiInputSliderComponent.prototype.formatNumber = function (value) {
163
- return formatNumber(value, null, this.numberFormat.decimalSeparator, this.numberFormat.thousandSeparator);
169
+ TuiInputSliderComponent.prototype.valueGuard = function (value) {
170
+ var roundedValue = round(Math.round(value / this.quantum) * this.quantum, TUI_FLOATING_PRECISION);
171
+ return clamp(roundedValue, this.min, this.max);
172
+ };
173
+ TuiInputSliderComponent.prototype.updateTextInputValue = function (value) {
174
+ if (this.inputNumberRef) {
175
+ this.inputNumberRef.nativeValue =
176
+ this.inputNumberRef.getFormattedValue(value);
177
+ }
164
178
  };
165
179
  var TuiInputSliderComponent_1;
166
180
  TuiInputSliderComponent.ctorParameters = function () { return [
167
181
  { type: NgControl, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [NgControl,] }] },
168
182
  { type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] },
169
- { type: TuiModeDirective, decorators: [{ type: Optional }, { type: Inject, args: [TuiModeDirective,] }] },
170
- { type: TuiHintControllerDirective, decorators: [{ type: Inject, args: [TUI_HINT_WATCHED_CONTROLLER,] }] },
183
+ { type: TuiTextfieldController, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_WATCHED_CONTROLLER,] }] },
171
184
  { type: undefined, decorators: [{ type: Inject, args: [TUI_NUMBER_FORMAT,] }] },
172
- { type: String, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_APPEARANCE,] }] }
185
+ { type: Observable, decorators: [{ type: Inject, args: [TUI_FROM_TO_TEXTS,] }] },
186
+ { type: TuiNewInputSliderDirective, decorators: [{ type: Optional }, { type: Inject, args: [TuiNewInputSliderDirective,] }] }
173
187
  ]; };
174
188
  __decorate([
175
- ViewChild('focusableElement')
176
- ], TuiInputSliderComponent.prototype, "focusableElement", void 0);
189
+ ViewChild(TuiInputNumberComponent)
190
+ ], TuiInputSliderComponent.prototype, "inputNumberRef", void 0);
191
+ __decorate([
192
+ ViewChild(TuiSliderComponent, { read: ElementRef })
193
+ ], TuiInputSliderComponent.prototype, "sliderRef", void 0);
177
194
  __decorate([
178
195
  Input(),
179
196
  tuiDefaultProp()
180
- ], TuiInputSliderComponent.prototype, "secondary", void 0);
197
+ ], TuiInputSliderComponent.prototype, "min", void 0);
198
+ __decorate([
199
+ Input(),
200
+ tuiDefaultProp()
201
+ ], TuiInputSliderComponent.prototype, "max", void 0);
202
+ __decorate([
203
+ Input(),
204
+ tuiDefaultProp(quantumAssertion, 'Quantum must be positive')
205
+ ], TuiInputSliderComponent.prototype, "quantum", void 0);
206
+ __decorate([
207
+ Input(),
208
+ tuiDefaultProp()
209
+ ], TuiInputSliderComponent.prototype, "steps", void 0);
210
+ __decorate([
211
+ Input(),
212
+ tuiDefaultProp()
213
+ ], TuiInputSliderComponent.prototype, "segments", void 0);
214
+ __decorate([
215
+ Input(),
216
+ tuiDefaultProp()
217
+ ], TuiInputSliderComponent.prototype, "keySteps", void 0);
218
+ __decorate([
219
+ Input(),
220
+ tuiDefaultProp()
221
+ ], TuiInputSliderComponent.prototype, "valueContent", void 0);
181
222
  __decorate([
182
- HostBinding('class._has-tooltip')
183
- ], TuiInputSliderComponent.prototype, "hasTooltip", null);
223
+ Input(),
224
+ tuiDefaultProp()
225
+ ], TuiInputSliderComponent.prototype, "prefix", void 0);
226
+ __decorate([
227
+ Input(),
228
+ tuiDefaultProp()
229
+ ], TuiInputSliderComponent.prototype, "postfix", void 0);
184
230
  __decorate([
185
- HostBinding('class._min-label')
186
- ], TuiInputSliderComponent.prototype, "showMinLabel", null);
231
+ Input(),
232
+ tuiDefaultProp()
233
+ ], TuiInputSliderComponent.prototype, "size", void 0);
187
234
  __decorate([
188
- HostBinding('class._max-label')
189
- ], TuiInputSliderComponent.prototype, "showMaxLabel", null);
235
+ Input(),
236
+ tuiDefaultProp()
237
+ ], TuiInputSliderComponent.prototype, "secondary", void 0);
190
238
  TuiInputSliderComponent = TuiInputSliderComponent_1 = __decorate([
191
239
  Component({
192
240
  selector: 'tui-input-slider',
193
- 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",
241
+ 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",
242
+ host: {
243
+ /**
244
+ * TODO delete it in v3.0
245
+ * Dont forget to clear html-tags
246
+ */
247
+ '[class._show-ticks-labels]': '!isNew',
248
+ },
194
249
  changeDetection: ChangeDetectionStrategy.OnPush,
195
250
  providers: [
196
251
  {
197
252
  provide: TUI_FOCUSABLE_ITEM_ACCESSOR,
198
253
  useExisting: forwardRef(function () { return TuiInputSliderComponent_1; }),
199
254
  },
255
+ tuiSliderOptionsProvider({ trackColor: 'transparent' }),
200
256
  HINT_CONTROLLER_PROVIDER,
257
+ TEXTFIELD_CONTROLLER_PROVIDER,
201
258
  ],
202
- 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}"]
203
- }),
259
+ 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)}"]
260
+ })
261
+ /**
262
+ * TODO replace `extends AbstractTuiInputSlider<number>` by `extends AbstractTuiControl<number> implements TuiWithOptionalMinMax<number>`
263
+ * in v3.0
264
+ */
265
+ ,
204
266
  __param(0, Optional()),
205
267
  __param(0, Self()),
206
268
  __param(0, Inject(NgControl)),
207
269
  __param(1, Inject(ChangeDetectorRef)),
208
- __param(2, Optional()),
209
- __param(2, Inject(TuiModeDirective)),
210
- __param(3, Inject(TUI_HINT_WATCHED_CONTROLLER)),
211
- __param(4, Inject(TUI_NUMBER_FORMAT)),
212
- __param(5, Inject(TUI_TEXTFIELD_APPEARANCE))
270
+ __param(2, Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER)),
271
+ __param(3, Inject(TUI_NUMBER_FORMAT)),
272
+ __param(4, Inject(TUI_FROM_TO_TEXTS)),
273
+ __param(5, Optional()),
274
+ __param(5, Inject(TuiNewInputSliderDirective))
213
275
  ], TuiInputSliderComponent);
214
276
  return TuiInputSliderComponent;
215
277
  }(AbstractTuiInputSlider));
216
278
  export { TuiInputSliderComponent };
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1zbGlkZXIvIiwic291cmNlcyI6WyJpbnB1dC1zbGlkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsSUFBSSxFQUNKLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUNILGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsMkJBQTJCLEVBQzNCLGNBQWMsR0FHakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILFlBQVksRUFDWix3QkFBd0IsRUFDeEIsdUJBQXVCLEVBQ3ZCLDBCQUEwQixFQUMxQixvQkFBb0IsRUFDcEIsMkJBQTJCLEVBQzNCLGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsMEJBQTBCLEVBQzFCLGdCQUFnQixHQUNuQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBRTlELFdBQVc7QUFjWDtJQUNZLDJDQUE4QjtJQVV0QyxpQ0FJSSxPQUF5QixFQUNFLGlCQUFvQyxFQUc1QyxhQUFzQyxFQUVoRCxjQUEwQyxFQUVoQyxZQUFrQyxFQUU1QyxVQUFrQjtRQWQvQixZQWdCSSxrQkFBTSxPQUFPLEVBQUUsaUJBQWlCLENBQUMsU0FDcEM7UUFUc0IsbUJBQWEsR0FBYixhQUFhLENBQXlCO1FBRWhELG9CQUFjLEdBQWQsY0FBYyxDQUE0QjtRQUVoQyxrQkFBWSxHQUFaLFlBQVksQ0FBc0I7UUFFNUMsZ0JBQVUsR0FBVixVQUFV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V0FBQSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7UUFFakIsV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUN6QixXQUFBLFFBQVEsRUFBRSxDQUFBO1FBQ1YsV0FBQSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUV4QixXQUFBLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxDQUFBO1FBRW5DLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFFekIsV0FBQSxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQTtPQXhCNUIsdUJBQXVCLENBeUxuQztJQUFELDhCQUFDO0NBQUEsQUF6TEQsQ0FDWSxzQkFBc0IsR0F3TGpDO1NBekxZLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgaXNOYXRpdmVGb2N1c2VkLFxuICAgIHNldE5hdGl2ZUZvY3VzZWQsXG4gICAgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICBUdWlOYXRpdmVGb2N1c2FibGVFbGVtZW50LFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgZm9ybWF0TnVtYmVyLFxuICAgIEhJTlRfQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICBtYXNrZWRNb25leVZhbHVlSXNFbXB0eSxcbiAgICBtYXNrZWROdW1iZXJTdHJpbmdUb051bWJlcixcbiAgICBOdW1iZXJGb3JtYXRTZXR0aW5ncyxcbiAgICBUVUlfSElOVF9XQVRDSEVEX0NPTlRST0xMRVIsXG4gICAgVFVJX05VTUJFUl9GT1JNQVQsXG4gICAgVFVJX1RFWFRGSUVMRF9BUFBFQVJBTkNFLFxuICAgIFR1aUhpbnRDb250cm9sbGVyRGlyZWN0aXZlLFxuICAgIFR1aU1vZGVEaXJlY3RpdmUsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7QWJzdHJhY3RUdWlJbnB1dFNsaWRlcn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9hYnN0cmFjdCc7XG5cbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1zbGlkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1zbGlkZXIudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtc2xpZGVyLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpSW5wdXRTbGlkZXJDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgICAgICBISU5UX0NPTlRST0xMRVJfUFJPVklERVIsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXRTbGlkZXJDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpSW5wdXRTbGlkZXI8bnVtYmVyPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQFZpZXdDaGlsZCgnZm9jdXNhYmxlRWxlbWVudCcpXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb2N1c2FibGVFbGVtZW50PzogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzZWNvbmRhcnkgPSAnJztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVHVpTW9kZURpcmVjdGl2ZSlcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IG1vZGVEaXJlY3RpdmU6IFR1aU1vZGVEaXJlY3RpdmUgfCBudWxsLFxuICAgICAgICBASW5qZWN0KFRVSV9ISU5UX1dBVENIRURfQ09OVFJPTExFUilcbiAgICAgICAgcmVhZG9ubHkgaGludENvbnRyb2xsZXI6IFR1aUhpbnRDb250cm9sbGVyRGlyZWN0aXZlLFxuICAgICAgICBASW5qZWN0KFRVSV9OVU1CRVJfRk9STUFUKVxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbnVtYmVyRm9ybWF0OiBOdW1iZXJGb3JtYXRTZXR0aW5ncyxcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX0FQUEVBUkFOQ0UpXG4gICAgICAgIHJlYWRvbmx5IGFwcGVhcmFuY2U6IHN0cmluZyxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IFR1aU5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmZvY3VzYWJsZUVsZW1lbnQgfHwgdGhpcy5jb21wdXRlZERpc2FibGVkXG4gICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgIDogdGhpcy5mb2N1c2FibGVFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpc05hdGl2ZUZvY3VzZWQodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9oYXMtdG9vbHRpcCcpXG4gICAgZ2V0IGhhc1Rvb2x0aXAoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuaGludENvbnRyb2xsZXIuY29udGVudCAmJiAhdGhpcy5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9taW4tbGFiZWwnKVxuICAgIGdldCBzaG93TWluTGFiZWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5mb2N1c2VkICYmIHRoaXMudmFsdWUgPT09IHRoaXMubWluICYmICEhdGhpcy5taW5MYWJlbDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9tYXgtbGFiZWwnKVxuICAgIGdldCBzaG93TWF4TGFiZWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5mb2N1c2VkICYmIHRoaXMudmFsdWUgPT09IHRoaXMubWF4ICYmICEhdGhpcy5tYXhMYWJlbDtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy5mb2N1c2VkICYmIHRoaXMuaXNJbnB1dFZhbHVlTm90RmluaXNoZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlucHV0VmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXR0ZWRWYWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgc2hvd1ZhbHVlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuc2hvd01pbkxhYmVsICYmICF0aGlzLnNob3dNYXhMYWJlbDtcbiAgICB9XG5cbiAgICBnZXQgaW5wdXRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5mb2N1c2FibGVFbGVtZW50ID8gdGhpcy5mb2N1c2FibGVFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWUgOiAnJztcbiAgICB9XG5cbiAgICBzZXQgaW5wdXRWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLmZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNhYmxlRWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk1vdXNlRG93bigpIHtcbiAgICAgICAgaWYgKHRoaXMuZm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgc2V0TmF0aXZlRm9jdXNlZCh0aGlzLmZvY3VzYWJsZUVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbktleURvd25BcnJvd1VwKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLnJlYWRPbmx5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnByb2Nlc3NTdGVwKHRydWUpO1xuICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSB0aGlzLmZvcm1hdHRlZFZhbHVlO1xuICAgIH1cblxuICAgIG9uS2V5RG93bkFycm93RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5wcm9jZXNzU3RlcChmYWxzZSk7XG4gICAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IHRoaXMuZm9ybWF0dGVkVmFsdWU7XG4gICAgfVxuXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuXG4gICAgICAgIGlmIChmb2N1c2VkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpbnB1dFZhbHVlID0gbWFza2VkTnVtYmVyU3RyaW5nVG9OdW1iZXIoXG4gICAgICAgICAgICB0aGlzLmNvbXB1dGVkVmFsdWUsXG4gICAgICAgICAgICB0aGlzLm51bWJlckZvcm1hdC5kZWNpbWFsU2VwYXJhdG9yLFxuICAgICAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQudGhvdXNhbmRTZXBhcmF0b3IsXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gaXNOYU4oaW5wdXRWYWx1ZSkgPyB0aGlzLm1pbiA6IHRoaXMudmFsdWVHdWFyZChpbnB1dFZhbHVlKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gdGhpcy5mb3JtYXR0ZWRWYWx1ZTtcbiAgICB9XG5cbiAgICBvblZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgY2FwcGVkID0gdGhpcy5jYXBJbnB1dFZhbHVlKHZhbHVlKTtcbiAgICAgICAgY29uc3QgcG9zdGZpeCA9IHZhbHVlLnNsaWNlKC0xKVswXSA9PT0gJywnID8gJywnIDogJyc7XG5cbiAgICAgICAgaWYgKG1hc2tlZE1vbmV5VmFsdWVJc0VtcHR5KHZhbHVlKSB8fCBjYXBwZWQgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5mb3JtYXROdW1iZXIoY2FwcGVkKSArIHBvc3RmaXg7XG5cbiAgICAgICAgaWYgKHZhbHVlICE9PSBuZXdWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gbmV3VmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKGNhcHBlZCk7XG4gICAgfVxuXG4gICAgb25TbGlkZXJWYWx1ZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy52YWx1ZUd1YXJkKHZhbHVlKSk7XG4gICAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IHRoaXMuZm9ybWF0dGVkVmFsdWU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZhbGxiYWNrVmFsdWUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgZm9ybWF0dGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0TnVtYmVyKHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGlzSW5wdXRWYWx1ZU5vdEZpbmlzaGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5pbnB1dFZhbHVlID09PSAnJykge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBuYXRpdmVOdW1iZXJWYWx1ZSA9IG1hc2tlZE51bWJlclN0cmluZ1RvTnVtYmVyKFxuICAgICAgICAgICAgdGhpcy5pbnB1dFZhbHVlLFxuICAgICAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQuZGVjaW1hbFNlcGFyYXRvcixcbiAgICAgICAgICAgIHRoaXMubnVtYmVyRm9ybWF0LnRob3VzYW5kU2VwYXJhdG9yLFxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBuYXRpdmVOdW1iZXJWYWx1ZSA8IDBcbiAgICAgICAgICAgID8gbmF0aXZlTnVtYmVyVmFsdWUgPiB0aGlzLm1heFxuICAgICAgICAgICAgOiBuYXRpdmVOdW1iZXJWYWx1ZSA8IHRoaXMubWluO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvY2Vzc1N0ZXAoaW5jcmVtZW50OiBib29sZWFuKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YWx1ZUd1YXJkKFxuICAgICAgICAgICAgaW5jcmVtZW50ID8gdGhpcy52YWx1ZSArIHRoaXMuc3RlcCA6IHRoaXMudmFsdWUgLSB0aGlzLnN0ZXAsXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZm9ybWF0TnVtYmVyKHZhbHVlOiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVyKFxuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQuZGVjaW1hbFNlcGFyYXRvcixcbiAgICAgICAgICAgIHRoaXMubnVtYmVyRm9ybWF0LnRob3VzYW5kU2VwYXJhdG9yLFxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
279
+ function quantumAssertion(quantum) {
280
+ return quantum > 0;
281
+ }
282
+ /**
283
+ * @deprecated helper for backward compatibility.
284
+ * TODO remove in v3.0
285
+ */
286
+ function legacyMinMaxLabel(_a) {
287
+ var min = _a.min, max = _a.max, minLabel = _a.minLabel, maxLabel = _a.maxLabel;
288
+ return function (_a) {
289
+ var value = _a.$implicit;
290
+ switch (value) {
291
+ case min:
292
+ return minLabel || value;
293
+ case max:
294
+ return maxLabel || value;
295
+ default:
296
+ return value;
297
+ }
298
+ };
299
+ }
300
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1zbGlkZXIvIiwic291cmNlcyI6WyJpbnB1dC1zbGlkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsU0FBUyxFQUNULFVBQVUsRUFDVixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsSUFBSSxFQUNKLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUNILEtBQUssRUFDTCxlQUFlLEVBQ2YsS0FBSyxFQUNMLGdCQUFnQixFQUNoQiwyQkFBMkIsRUFDM0IsU0FBUyxFQUVULGNBQWMsR0FHakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILHFCQUFxQixFQUNyQix3QkFBd0IsRUFDeEIsb0JBQW9CLEVBQ3BCLDZCQUE2QixFQUM3QixpQkFBaUIsRUFDakIsZ0NBQWdDLEVBQ2hDLFdBQVcsRUFDWCxRQUFRLEVBQ1Isc0JBQXNCLEdBQ3pCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDOUQsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDOUUsT0FBTyxFQUNILGtCQUFrQixFQUNsQix3QkFBd0IsR0FDM0IsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUd2RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRWhDOzs7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aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIGNsYW1wLFxuICAgIGlzTmF0aXZlRm9jdXNlZCxcbiAgICByb3VuZCxcbiAgICBzZXROYXRpdmVGb2N1c2VkLFxuICAgIFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICB0dWlBc3NlcnQsXG4gICAgVHVpQ29udGV4dFdpdGhJbXBsaWNpdCxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIGdldEZyYWN0aW9uUGFydFBhZGRlZCxcbiAgICBISU5UX0NPTlRST0xMRVJfUFJPVklERVIsXG4gICAgTnVtYmVyRm9ybWF0U2V0dGluZ3MsXG4gICAgVEVYVEZJRUxEX0NPTlRST0xMRVJfUFJPVklERVIsXG4gICAgVFVJX05VTUJFUl9GT1JNQVQsXG4gICAgVFVJX1RFWFRGSUVMRF9XQVRDSEVEX0NPTlRST0xMRVIsXG4gICAgVHVpRGVjaW1hbFQsXG4gICAgVHVpU2l6ZUwsXG4gICAgVHVpVGV4dGZpZWxkQ29udHJvbGxlcixcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdFR1aUlucHV0U2xpZGVyfSBmcm9tICdAdGFpZ2EtdWkva2l0L2Fic3RyYWN0JztcbmltcG9ydCB7VHVpSW5wdXROdW1iZXJDb21wb25lbnR9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1udW1iZXInO1xuaW1wb3J0IHtcbiAgICBUdWlTbGlkZXJDb21wb25lbnQsXG4gICAgdHVpU2xpZGVyT3B0aW9uc1Byb3ZpZGVyLFxufSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvc2xpZGVyJztcbmltcG9ydCB7VFVJX0ZMT0FUSU5HX1BSRUNJU0lPTn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb25zdGFudHMnO1xuaW1wb3J0IHtUVUlfRlJPTV9UT19URVhUU30gZnJvbSAnQHRhaWdhLXVpL2tpdC90b2tlbnMnO1xuaW1wb3J0IHtUdWlLZXlTdGVwc30gZnJvbSAnQHRhaWdhLXVpL2tpdC90eXBlcyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIFR1cm4gb24gbmV3IGBJbnB1dFNsaWRlcmAncyB2ZXJzaW9uLlxuICogVGhlIG5ldyB2ZXJzaW9uIHdpbGwgYmVoYXZlIGFsbW9zdCB0aGUgc2FtZSBhcyBgSW5wdXRTbGlkZXJgIGZyb20gdGhlIG5leHQgbWFqb3IgcmVsZWFzZS5cbiAqIEBkZXByZWNhdGVkIFRPRE8gcmVtb3ZlIG1lIGluIHYzLjAgYW5kIG1ha2UgYElucHV0U2xpZGVyYCBhbHdheXMgXCJuZXdcIi5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtc2xpZGVyW25ld10nLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlOZXdJbnB1dFNsaWRlckRpcmVjdGl2ZSB7fVxuXG4vLyBAZHluYW1pY1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtc2xpZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtc2xpZGVyLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2lucHV0LXNsaWRlci5zdHlsZS5sZXNzJ10sXG4gICAgaG9zdDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogVE9ETyBkZWxldGUgaXQgaW4gdjMuMFxuICAgICAgICAgKiBEb250IGZvcmdldCB0byBjbGVhciBodG1sLXRhZ3NcbiAgICAgICAgICovXG4gICAgICAgICdbY2xhc3MuX3Nob3ctdGlja3MtbGFiZWxzXSc6ICchaXNOZXcnLFxuICAgIH0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR1aUlucHV0U2xpZGVyQ29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICAgICAgdHVpU2xpZGVyT3B0aW9uc1Byb3ZpZGVyKHt0cmFja0NvbG9yOiAndHJhbnNwYXJlbnQnfSksXG4gICAgICAgIEhJTlRfQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICAgICAgVEVYVEZJRUxEX0NPTlRST0xMRVJfUFJPVklERVIsXG4gICAgXSxcbn0pXG4vKipcbiAqIFRPRE8gcmVwbGFjZSBgZXh0ZW5kcyBBYnN0cmFjdFR1aUlucHV0U2xpZGVyPG51bWJlcj5gIGJ5IGBleHRlbmRzIEFic3RyYWN0VHVpQ29udHJvbDxudW1iZXI+IGltcGxlbWVudHMgVHVpV2l0aE9wdGlvbmFsTWluTWF4PG51bWJlcj5gXG4gKiBpbiB2My4wXG4gKi9cbmV4cG9ydCBjbGFzcyBUdWlJbnB1dFNsaWRlckNvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlJbnB1dFNsaWRlcjxudW1iZXI+XG4gICAgaW1wbGVtZW50cyBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3JcbntcbiAgICBAVmlld0NoaWxkKFR1aUlucHV0TnVtYmVyQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5wdXROdW1iZXJSZWY/OiBUdWlJbnB1dE51bWJlckNvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGQoVHVpU2xpZGVyQ29tcG9uZW50LCB7cmVhZDogRWxlbWVudFJlZn0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBzbGlkZXJSZWY/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1pbiA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWF4ID0gSW5maW5pdHk7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcChxdWFudHVtQXNzZXJ0aW9uLCAnUXVhbnR1bSBtdXN0IGJlIHBvc2l0aXZlJylcbiAgICBxdWFudHVtID0gMTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzdGVwcyA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc2VnbWVudHMgPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGtleVN0ZXBzOiBUdWlLZXlTdGVwcyB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHZhbHVlQ29udGVudDogUG9seW1vcnBoZXVzQ29udGVudDxUdWlDb250ZXh0V2l0aEltcGxpY2l0PG51bWJlcj4+ID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgcHJlZml4ID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgcG9zdGZpeCA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGB0dWlUZXh0ZmllbGRTaXplYCBpbnN0ZWFkXG4gICAgICogVE9ETyBkZWxldGUgaW4gdjMuMFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzaXplOiBUdWlTaXplTCA9ICdsJztcblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBgdHVpVGV4dGZpZWxkQ3VzdG9tQ29udGVudGAgaW5zdGVhZFxuICAgICAqIFRPRE8gZGVsZXRlIGluIHYzLjBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc2Vjb25kYXJ5ID0gJyc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KE5nQ29udHJvbClcbiAgICAgICAgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KFRVSV9URVhURklFTERfV0FUQ0hFRF9DT05UUk9MTEVSKVxuICAgICAgICByZWFkb25seSBjb250cm9sbGVyOiBUdWlUZXh0ZmllbGRDb250cm9sbGVyLFxuICAgICAgICBASW5qZWN0KFRVSV9OVU1CRVJfRk9STUFUKVxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbnVtYmVyRm9ybWF0OiBOdW1iZXJGb3JtYXRTZXR0aW5ncyxcbiAgICAgICAgQEluamVjdChUVUlfRlJPTV9UT19URVhUUykgcmVhZG9ubHkgZnJvbVRvVGV4dHMkOiBPYnNlcnZhYmxlPFtzdHJpbmcsIHN0cmluZ10+LFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KFR1aU5ld0lucHV0U2xpZGVyRGlyZWN0aXZlKVxuICAgICAgICByZWFkb25seSBpc05ldzogVHVpTmV3SW5wdXRTbGlkZXJEaXJlY3RpdmUgfCBudWxsLFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gIXRoaXMuaW5wdXROdW1iZXJSZWY/Lm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgfHwgdGhpcy5jb21wdXRlZERpc2FibGVkXG4gICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgIDogdGhpcy5pbnB1dE51bWJlclJlZi5uYXRpdmVGb2N1c2FibGVFbGVtZW50O1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgaXNOYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkgfHxcbiAgICAgICAgICAgIGlzTmF0aXZlRm9jdXNlZCh0aGlzLnNsaWRlclJlZj8ubmF0aXZlRWxlbWVudCB8fCBudWxsKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZFN0ZXBzKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0ZXBzIHx8ICh0aGlzLm1heCAtIHRoaXMubWluKSAvIHRoaXMucXVhbnR1bTtcbiAgICB9XG5cbiAgICBnZXQgcHJlY2lzaW9uKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBnZXRGcmFjdGlvblBhcnRQYWRkZWQodGhpcy5xdWFudHVtKS5sZW5ndGg7XG4gICAgfVxuXG4gICAgZ2V0IGRlY2ltYWwoKTogVHVpRGVjaW1hbFQge1xuICAgICAgICByZXR1cm4gdGhpcy5wcmVjaXNpb24gPyAnbm90LXplcm8nIDogJ25ldmVyJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUT0RPIHJlbW92ZSBvbGQgcHJvcGVydHkgYHNpemVgIGluIHYzLjBcbiAgICAgKi9cbiAgICBnZXQgY29tcHV0ZWRTaXplKCk6IFR1aVNpemVMIHtcbiAgICAgICAgaWYgKHRoaXMuaXNOZXcpIHtcbiAgICAgICAgICAgIHR1aUFzc2VydC5hc3NlcnQoXG4gICAgICAgICAgICAgICAgdGhpcy5jb250cm9sbGVyLnNpemUgIT09ICdzJyxcbiAgICAgICAgICAgICAgICBcIlNpemUgJ3MnIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBpbnB1dC5cIixcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2xsZXIuc2l6ZSA9PT0gJ2wnID8gJ2wnIDogJ20nO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc2l6ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuICAgICAqIFRPRE8gcmVwbGFjZSBieSBqdXN0IGB0aGlzLnZhbHVlQ29udGVudGAgaW4gdjMuMFxuICAgICAqL1xuICAgIGdldCBjb21wdXRlZFZhbHVlQ29udGVudCgpOiBQb2x5bW9ycGhldXNDb250ZW50PFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8bnVtYmVyPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5taW5MYWJlbCB8fCB0aGlzLm1heExhYmVsXG4gICAgICAgICAgICA/IGxlZ2FjeU1pbk1heExhYmVsKHRoaXMpXG4gICAgICAgICAgICA6IHRoaXMudmFsdWVDb250ZW50O1xuICAgIH1cblxuICAgIGZvY3VzVGV4dElucHV0KCkge1xuICAgICAgICBjb25zdCBmb2N1c2FibGVFbGVtZW50ID0gdGhpcy5pbnB1dE51bWJlclJlZj8ubmF0aXZlRm9jdXNhYmxlRWxlbWVudDtcblxuICAgICAgICBpZiAoZm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgc2V0TmF0aXZlRm9jdXNlZChmb2N1c2FibGVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNhZmVseVVwZGF0ZVZhbHVlKHZhbHVlOiBudW1iZXIgfCBudWxsKSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy52YWx1ZUd1YXJkKHZhbHVlID8/IHRoaXMuc2FmZUN1cnJlbnRWYWx1ZSkpO1xuICAgIH1cblxuICAgIG9uVmVydGljYWxBcnJvd0tleURvd24oY29lZmZpY2llbnQ6IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbHVlICsgY29lZmZpY2llbnQgKiB0aGlzLnN0ZXA7XG5cbiAgICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnNhZmVseVVwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlVGV4dElucHV0VmFsdWUodGhpcy52YWx1ZUd1YXJkKHZhbHVlKSk7XG4gICAgfVxuXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKCFmb2N1c2VkICYmICF0aGlzLnRleHRJbnB1dFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVRleHRJbnB1dFZhbHVlKHRoaXMuc2FmZUN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoZm9jdXNlZCk7XG4gICAgfVxuXG4gICAgb25QcmVzc2VkKHByZXNzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVQcmVzc2VkKHByZXNzZWQpO1xuICAgIH1cblxuICAgIG9uSG92ZXJlZChob3ZlcmVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlSG92ZXJlZChob3ZlcmVkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCB0ZXh0SW5wdXRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dE51bWJlclJlZj8ubmF0aXZlVmFsdWUgfHwgJyc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZhbGxiYWNrVmFsdWUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHZhbHVlR3VhcmQodmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHJvdW5kZWRWYWx1ZSA9IHJvdW5kKFxuICAgICAgICAgICAgTWF0aC5yb3VuZCh2YWx1ZSAvIHRoaXMucXVhbnR1bSkgKiB0aGlzLnF1YW50dW0sXG4gICAgICAgICAgICBUVUlfRkxPQVRJTkdfUFJFQ0lTSU9OLFxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBjbGFtcChyb3VuZGVkVmFsdWUsIHRoaXMubWluLCB0aGlzLm1heCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVUZXh0SW5wdXRWYWx1ZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLmlucHV0TnVtYmVyUmVmKSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0TnVtYmVyUmVmLm5hdGl2ZVZhbHVlID1cbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0TnVtYmVyUmVmLmdldEZvcm1hdHRlZFZhbHVlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZnVuY3Rpb24gcXVhbnR1bUFzc2VydGlvbihxdWFudHVtOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcXVhbnR1bSA+IDA7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgaGVscGVyIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LlxuICogVE9ETyByZW1vdmUgaW4gdjMuMFxuICovXG5mdW5jdGlvbiBsZWdhY3lNaW5NYXhMYWJlbCh7bWluLCBtYXgsIG1pbkxhYmVsLCBtYXhMYWJlbH06IFR1aUlucHV0U2xpZGVyQ29tcG9uZW50KSB7XG4gICAgcmV0dXJuICh7JGltcGxpY2l0OiB2YWx1ZX06IFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8bnVtYmVyPikgPT4ge1xuICAgICAgICBzd2l0Y2ggKHZhbHVlKSB7XG4gICAgICAgICAgICBjYXNlIG1pbjpcbiAgICAgICAgICAgICAgICByZXR1cm4gbWluTGFiZWwgfHwgdmFsdWU7XG4gICAgICAgICAgICBjYXNlIG1heDpcbiAgICAgICAgICAgICAgICByZXR1cm4gbWF4TGFiZWwgfHwgdmFsdWU7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH07XG59XG4iXX0=
@@ -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
  var TuiInputSliderModule = /** @class */ (function () {
11
13
  function TuiInputSliderModule() {
12
14
  }
@@ -26,12 +28,17 @@ var TuiInputSliderModule = /** @class */ (function () {
26
28
  TuiTooltipModule,
27
29
  TuiSliderModule,
28
30
  TuiWrapperModule,
31
+ TuiFormatNumberPipeModule,
32
+ TuiRepeatTimesModule,
33
+ PolymorpheusModule,
34
+ TuiInputNumberModule,
35
+ TuiTextfieldControllerModule,
29
36
  ],
30
- declarations: [TuiInputSliderComponent],
31
- exports: [TuiInputSliderComponent],
37
+ declarations: [TuiInputSliderComponent, TuiNewInputSliderDirective],
38
+ exports: [TuiInputSliderComponent, TuiNewInputSliderDirective],
32
39
  })
33
40
  ], TuiInputSliderModule);
34
41
  return TuiInputSliderModule;
35
42
  }());
36
43
  export { TuiInputSliderModule };
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2xpZGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1zbGlkZXIvIiwic291cmNlcyI6WyJpbnB1dC1zbGlkZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUNILGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsZ0JBQWdCLEdBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFbEQsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFxQmpFO0lBQUE7SUFBbUMsQ0FBQztJQUF2QixvQkFBb0I7UUFuQmhDLFFBQVEsQ0FBQztZQUNOLE9BQU8sRUFBRTtnQkFDTCxZQUFZO2dCQUNaLFdBQVc7Z0JBQ1gsbUJBQW1CO2dCQUNuQixjQUFjO2dCQUNkLGtCQUFrQjtnQkFDbEIsZ0JBQWdCO2dCQUNoQixnQkFBZ0I7Z0JBQ2hCLGdCQUFnQjtnQkFDaEIsbUJBQW1CO2dCQUNuQixrQkFBa0I7Z0JBQ2xCLGdCQUFnQjtnQkFDaEIsZUFBZTtnQkFDZixnQkFBZ0I7YUFDbkI7WUFDRCxZQUFZLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztZQUN2QyxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztTQUNyQyxDQUFDO09BQ1csb0JBQW9CLENBQUc7SUFBRCwyQkFBQztDQUFBLEFBQXBDLElBQW9DO1NBQXZCLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIFR1aUZvY3VzYWJsZU1vZHVsZSxcbiAgICBUdWlGb2N1c2VkTW9kdWxlLFxuICAgIFR1aUhvdmVyZWRNb2R1bGUsXG4gICAgVHVpSW5wdXRNb2RlTW9kdWxlLFxuICAgIFR1aU1hcHBlclBpcGVNb2R1bGUsXG4gICAgVHVpUHJlc3NlZE1vZHVsZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1R1aVRvb2x0aXBNb2R1bGUsIFR1aVdyYXBwZXJNb2R1bGV9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7VHVpU2xpZGVyTW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvc2xpZGVyJztcbmltcG9ydCB7VGV4dE1hc2tNb2R1bGV9IGZyb20gJ2FuZ3VsYXIyLXRleHQtbWFzayc7XG5cbmltcG9ydCB7VHVpSW5wdXRTbGlkZXJDb21wb25lbnR9IGZyb20gJy4vaW5wdXQtc2xpZGVyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBUZXh0TWFza01vZHVsZSxcbiAgICAgICAgVHVpRm9jdXNhYmxlTW9kdWxlLFxuICAgICAgICBUdWlGb2N1c2VkTW9kdWxlLFxuICAgICAgICBUdWlIb3ZlcmVkTW9kdWxlLFxuICAgICAgICBUdWlQcmVzc2VkTW9kdWxlLFxuICAgICAgICBUdWlNYXBwZXJQaXBlTW9kdWxlLFxuICAgICAgICBUdWlJbnB1dE1vZGVNb2R1bGUsXG4gICAgICAgIFR1aVRvb2x0aXBNb2R1bGUsXG4gICAgICAgIFR1aVNsaWRlck1vZHVsZSxcbiAgICAgICAgVHVpV3JhcHBlck1vZHVsZSxcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1R1aUlucHV0U2xpZGVyQ29tcG9uZW50XSxcbiAgICBleHBvcnRzOiBbVHVpSW5wdXRTbGlkZXJDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dFNsaWRlck1vZHVsZSB7fVxuIl19
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2xpZGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1zbGlkZXIvIiwic291cmNlcyI6WyJpbnB1dC1zbGlkZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUNILGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLG9CQUFvQixHQUN2QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gseUJBQXlCLEVBQ3pCLDRCQUE0QixFQUM1QixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEdBQ25CLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUVsRCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLDBCQUEwQixHQUM3QixNQUFNLDBCQUEwQixDQUFDO0FBMEJsQztJQUFBO0lBQW1DLENBQUM7SUFBdkIsb0JBQW9CO1FBeEJoQyxRQUFRLENBQUM7WUFDTixPQUFPLEVBQUU7Z0JBQ0wsWUFBWTtnQkFDWixXQUFXO2dCQUNYLG1CQUFtQjtnQkFDbkIsY0FBYztnQkFDZCxrQkFBa0I7Z0JBQ2xCLGdCQUFnQjtnQkFDaEIsZ0JBQWdCO2dCQUNoQixnQkFBZ0I7Z0JBQ2hCLG1CQUFtQjtnQkFDbkIsa0JBQWtCO2dCQUNsQixnQkFBZ0I7Z0JBQ2hCLGVBQWU7Z0JBQ2YsZ0JBQWdCO2dCQUNoQix5QkFBeUI7Z0JBQ3pCLG9CQUFvQjtnQkFDcEIsa0JBQWtCO2dCQUNsQixvQkFBb0I7Z0JBQ3BCLDRCQUE0QjthQUMvQjtZQUNELFlBQVksRUFBRSxDQUFDLHVCQUF1QixFQUFFLDBCQUEwQixDQUFDO1lBQ25FLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixFQUFFLDBCQUEwQixDQUFDO1NBQ2pFLENBQUM7T0FDVyxvQkFBb0IsQ0FBRztJQUFELDJCQUFDO0NBQUEsQUFBcEMsSUFBb0M7U0FBdkIsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgVHVpRm9jdXNhYmxlTW9kdWxlLFxuICAgIFR1aUZvY3VzZWRNb2R1bGUsXG4gICAgVHVpSG92ZXJlZE1vZHVsZSxcbiAgICBUdWlJbnB1dE1vZGVNb2R1bGUsXG4gICAgVHVpTWFwcGVyUGlwZU1vZHVsZSxcbiAgICBUdWlQcmVzc2VkTW9kdWxlLFxuICAgIFR1aVJlcGVhdFRpbWVzTW9kdWxlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgVHVpRm9ybWF0TnVtYmVyUGlwZU1vZHVsZSxcbiAgICBUdWlUZXh0ZmllbGRDb250cm9sbGVyTW9kdWxlLFxuICAgIFR1aVRvb2x0aXBNb2R1bGUsXG4gICAgVHVpV3JhcHBlck1vZHVsZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUdWlJbnB1dE51bWJlck1vZHVsZX0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LW51bWJlcic7XG5pbXBvcnQge1R1aVNsaWRlck1vZHVsZX0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL3NsaWRlcic7XG5pbXBvcnQge1BvbHltb3JwaGV1c01vZHVsZX0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7VGV4dE1hc2tNb2R1bGV9IGZyb20gJ2FuZ3VsYXIyLXRleHQtbWFzayc7XG5cbmltcG9ydCB7XG4gICAgVHVpSW5wdXRTbGlkZXJDb21wb25lbnQsXG4gICAgVHVpTmV3SW5wdXRTbGlkZXJEaXJlY3RpdmUsXG59IGZyb20gJy4vaW5wdXQtc2xpZGVyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBUZXh0TWFza01vZHVsZSxcbiAgICAgICAgVHVpRm9jdXNhYmxlTW9kdWxlLFxuICAgICAgICBUdWlGb2N1c2VkTW9kdWxlLFxuICAgICAgICBUdWlIb3ZlcmVkTW9kdWxlLFxuICAgICAgICBUdWlQcmVzc2VkTW9kdWxlLFxuICAgICAgICBUdWlNYXBwZXJQaXBlTW9kdWxlLFxuICAgICAgICBUdWlJbnB1dE1vZGVNb2R1bGUsXG4gICAgICAgIFR1aVRvb2x0aXBNb2R1bGUsXG4gICAgICAgIFR1aVNsaWRlck1vZHVsZSxcbiAgICAgICAgVHVpV3JhcHBlck1vZHVsZSxcbiAgICAgICAgVHVpRm9ybWF0TnVtYmVyUGlwZU1vZHVsZSxcbiAgICAgICAgVHVpUmVwZWF0VGltZXNNb2R1bGUsXG4gICAgICAgIFBvbHltb3JwaGV1c01vZHVsZSxcbiAgICAgICAgVHVpSW5wdXROdW1iZXJNb2R1bGUsXG4gICAgICAgIFR1aVRleHRmaWVsZENvbnRyb2xsZXJNb2R1bGUsXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtUdWlJbnB1dFNsaWRlckNvbXBvbmVudCwgVHVpTmV3SW5wdXRTbGlkZXJEaXJlY3RpdmVdLFxuICAgIGV4cG9ydHM6IFtUdWlJbnB1dFNsaWRlckNvbXBvbmVudCwgVHVpTmV3SW5wdXRTbGlkZXJEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dFNsaWRlck1vZHVsZSB7fVxuIl19