@taiga-ui/kit 2.37.1 → 2.40.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 (348) hide show
  1. package/abstract/input-slider.d.ts +9 -5
  2. package/abstract/taiga-ui-kit-abstract.metadata.json +1 -1
  3. package/bundles/taiga-ui-kit-abstract.umd.js +8 -10
  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 +1 -1
  8. package/bundles/taiga-ui-kit-components-accordion.umd.min.js +1 -1
  9. package/bundles/taiga-ui-kit-components-accordion.umd.min.js.map +1 -1
  10. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.js.map +1 -1
  11. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.min.js.map +1 -1
  12. package/bundles/taiga-ui-kit-components-calendar-range.umd.js.map +1 -1
  13. package/bundles/taiga-ui-kit-components-calendar-range.umd.min.js.map +1 -1
  14. package/bundles/taiga-ui-kit-components-checkbox.umd.js +2 -2
  15. package/bundles/taiga-ui-kit-components-checkbox.umd.js.map +1 -1
  16. package/bundles/taiga-ui-kit-components-checkbox.umd.min.js +2 -2
  17. package/bundles/taiga-ui-kit-components-checkbox.umd.min.js.map +1 -1
  18. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js.map +1 -1
  19. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.min.js.map +1 -1
  20. package/bundles/taiga-ui-kit-components-filter.umd.js.map +1 -1
  21. package/bundles/taiga-ui-kit-components-filter.umd.min.js.map +1 -1
  22. package/bundles/taiga-ui-kit-components-input-date-range.umd.js.map +1 -1
  23. package/bundles/taiga-ui-kit-components-input-date-range.umd.min.js.map +1 -1
  24. package/bundles/taiga-ui-kit-components-input-date.umd.js.map +1 -1
  25. package/bundles/taiga-ui-kit-components-input-date.umd.min.js.map +1 -1
  26. package/bundles/taiga-ui-kit-components-input-file.umd.js.map +1 -1
  27. package/bundles/taiga-ui-kit-components-input-file.umd.min.js.map +1 -1
  28. package/bundles/taiga-ui-kit-components-input-files.umd.js +8 -0
  29. package/bundles/taiga-ui-kit-components-input-files.umd.js.map +1 -1
  30. package/bundles/taiga-ui-kit-components-input-files.umd.min.js +1 -1
  31. package/bundles/taiga-ui-kit-components-input-files.umd.min.js.map +1 -1
  32. package/bundles/taiga-ui-kit-components-input-number.umd.js +28 -18
  33. package/bundles/taiga-ui-kit-components-input-number.umd.js.map +1 -1
  34. package/bundles/taiga-ui-kit-components-input-number.umd.min.js +2 -2
  35. package/bundles/taiga-ui-kit-components-input-number.umd.min.js.map +1 -1
  36. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js +5 -1
  37. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js.map +1 -1
  38. package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js +2 -2
  39. package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js.map +1 -1
  40. package/bundles/taiga-ui-kit-components-input-phone.umd.js +5 -8
  41. package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
  42. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js +1 -1
  43. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js.map +1 -1
  44. package/bundles/taiga-ui-kit-components-input-range.umd.js +12 -2
  45. package/bundles/taiga-ui-kit-components-input-range.umd.js.map +1 -1
  46. package/bundles/taiga-ui-kit-components-input-range.umd.min.js +1 -1
  47. package/bundles/taiga-ui-kit-components-input-range.umd.min.js.map +1 -1
  48. package/bundles/taiga-ui-kit-components-input-slider.umd.js +153 -125
  49. package/bundles/taiga-ui-kit-components-input-slider.umd.js.map +1 -1
  50. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js +2 -2
  51. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js.map +1 -1
  52. package/bundles/taiga-ui-kit-components-input-tag.umd.js +18 -9
  53. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  54. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js +1 -1
  55. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js.map +1 -1
  56. package/bundles/taiga-ui-kit-components-input-time.umd.js.map +1 -1
  57. package/bundles/taiga-ui-kit-components-input-time.umd.min.js.map +1 -1
  58. package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
  59. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js.map +1 -1
  60. package/bundles/taiga-ui-kit-components-progress.umd.js.map +1 -1
  61. package/bundles/taiga-ui-kit-components-progress.umd.min.js.map +1 -1
  62. package/bundles/taiga-ui-kit-components-radio-list.umd.js.map +1 -1
  63. package/bundles/taiga-ui-kit-components-radio-list.umd.min.js.map +1 -1
  64. package/bundles/taiga-ui-kit-components-radio.umd.js +1 -1
  65. package/bundles/taiga-ui-kit-components-radio.umd.js.map +1 -1
  66. package/bundles/taiga-ui-kit-components-radio.umd.min.js +1 -1
  67. package/bundles/taiga-ui-kit-components-radio.umd.min.js.map +1 -1
  68. package/bundles/taiga-ui-kit-components-select.umd.js +1 -1
  69. package/bundles/taiga-ui-kit-components-select.umd.js.map +1 -1
  70. package/bundles/taiga-ui-kit-components-select.umd.min.js +1 -1
  71. package/bundles/taiga-ui-kit-components-select.umd.min.js.map +1 -1
  72. package/bundles/taiga-ui-kit-components-slider.umd.js +25 -4
  73. package/bundles/taiga-ui-kit-components-slider.umd.js.map +1 -1
  74. package/bundles/taiga-ui-kit-components-slider.umd.min.js +2 -2
  75. package/bundles/taiga-ui-kit-components-slider.umd.min.js.map +1 -1
  76. package/bundles/taiga-ui-kit-components-tabs.umd.js.map +1 -1
  77. package/bundles/taiga-ui-kit-components-tabs.umd.min.js.map +1 -1
  78. package/bundles/taiga-ui-kit-components-tag.umd.js +26 -6
  79. package/bundles/taiga-ui-kit-components-tag.umd.js.map +1 -1
  80. package/bundles/taiga-ui-kit-components-tag.umd.min.js +1 -1
  81. package/bundles/taiga-ui-kit-components-tag.umd.min.js.map +1 -1
  82. package/bundles/taiga-ui-kit-components-text-area.umd.js +2 -2
  83. package/bundles/taiga-ui-kit-components-text-area.umd.js.map +1 -1
  84. package/bundles/taiga-ui-kit-components-text-area.umd.min.js +1 -1
  85. package/bundles/taiga-ui-kit-components-text-area.umd.min.js.map +1 -1
  86. package/bundles/taiga-ui-kit-components-toggle.umd.js +2 -2
  87. package/bundles/taiga-ui-kit-components-toggle.umd.js.map +1 -1
  88. package/bundles/taiga-ui-kit-components-toggle.umd.min.js +1 -1
  89. package/bundles/taiga-ui-kit-components-toggle.umd.min.js.map +1 -1
  90. package/bundles/taiga-ui-kit-internal-primitive-calendar-range.umd.js +25 -1
  91. package/bundles/taiga-ui-kit-internal-primitive-calendar-range.umd.js.map +1 -1
  92. package/bundles/taiga-ui-kit-internal-primitive-calendar-range.umd.min.js +2 -2
  93. package/bundles/taiga-ui-kit-internal-primitive-calendar-range.umd.min.js.map +1 -1
  94. package/bundles/taiga-ui-kit-pipes-field-error.umd.js.map +1 -1
  95. package/bundles/taiga-ui-kit-pipes-field-error.umd.min.js.map +1 -1
  96. package/bundles/taiga-ui-kit-pipes-filter-by-input.umd.js.map +1 -1
  97. package/bundles/taiga-ui-kit-pipes-filter-by-input.umd.min.js.map +1 -1
  98. package/bundles/taiga-ui-kit-tokens.umd.js +1 -0
  99. package/bundles/taiga-ui-kit-tokens.umd.js.map +1 -1
  100. package/bundles/taiga-ui-kit-tokens.umd.min.js.map +1 -1
  101. package/bundles/taiga-ui-kit-utils-mask.umd.js.map +1 -1
  102. package/bundles/taiga-ui-kit-utils-mask.umd.min.js.map +1 -1
  103. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.js.map +1 -1
  104. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.min.js.map +1 -1
  105. package/components/accordion/taiga-ui-kit-components-accordion.metadata.json +1 -1
  106. package/components/breadcrumbs/breadcrumbs.component.d.ts +1 -1
  107. package/components/calendar-range/calendar-range.component.d.ts +2 -2
  108. package/components/checkbox/taiga-ui-kit-components-checkbox.metadata.json +1 -1
  109. package/components/data-list-wrapper/data-list-group-wrapper.component.d.ts +1 -1
  110. package/components/data-list-wrapper/data-list-wrapper.component.d.ts +2 -2
  111. package/components/filter/filter.component.d.ts +1 -1
  112. package/components/input-date/input-date.component.d.ts +1 -1
  113. package/components/input-date-range/input-date-range.component.d.ts +1 -1
  114. package/components/input-file/input-file.component.d.ts +6 -6
  115. package/components/input-files/input-files.component.d.ts +3 -2
  116. package/components/input-files/taiga-ui-kit-components-input-files.metadata.json +1 -1
  117. package/components/input-number/input-number.component.d.ts +6 -3
  118. package/components/input-number/taiga-ui-kit-components-input-number.metadata.json +1 -1
  119. package/components/input-phone/taiga-ui-kit-components-input-phone.metadata.json +1 -1
  120. package/components/input-phone-international/input-phone-international.component.d.ts +1 -1
  121. package/components/input-phone-international/taiga-ui-kit-components-input-phone-international.metadata.json +1 -1
  122. package/components/input-range/input-range.component.d.ts +2 -1
  123. package/components/input-range/taiga-ui-kit-components-input-range.metadata.json +1 -1
  124. package/components/input-slider/input-slider.component.d.ts +39 -22
  125. package/components/input-slider/taiga-ui-kit-components-input-slider.metadata.json +1 -1
  126. package/components/input-tag/input-tag.component.d.ts +10 -3
  127. package/components/input-tag/taiga-ui-kit-components-input-tag.metadata.json +1 -1
  128. package/components/input-time/input-time.component.d.ts +2 -2
  129. package/components/multi-select/multi-select-options.d.ts +1 -1
  130. package/components/multi-select/multi-select.component.d.ts +3 -3
  131. package/components/progress/progress-segmented/progress-segmented.component.d.ts +1 -1
  132. package/components/radio/taiga-ui-kit-components-radio.metadata.json +1 -1
  133. package/components/radio-list/radio-list.component.d.ts +1 -1
  134. package/components/select/taiga-ui-kit-components-select.metadata.json +1 -1
  135. package/components/slider/slider-key-steps.directive.d.ts +3 -1
  136. package/components/slider/taiga-ui-kit-components-slider.metadata.json +1 -1
  137. package/components/tabs/tabs/tabs.component.d.ts +1 -1
  138. package/components/tabs/tabs-with-more/tabs-with-more.component.d.ts +1 -1
  139. package/components/tag/index.d.ts +1 -0
  140. package/components/tag/tag-options.d.ts +12 -0
  141. package/components/tag/tag.component.d.ts +3 -1
  142. package/components/tag/taiga-ui-kit-components-tag.metadata.json +1 -1
  143. package/components/text-area/taiga-ui-kit-components-text-area.metadata.json +1 -1
  144. package/components/toggle/taiga-ui-kit-components-toggle.metadata.json +1 -1
  145. package/esm2015/abstract/input-slider.js +9 -7
  146. package/esm2015/components/accordion/accordion-item/accordion-item.component.js +1 -1
  147. package/esm2015/components/breadcrumbs/breadcrumbs.component.js +1 -1
  148. package/esm2015/components/calendar-range/calendar-range.component.js +1 -1
  149. package/esm2015/components/checkbox/checkbox.component.js +3 -3
  150. package/esm2015/components/data-list-wrapper/data-list-group-wrapper.component.js +1 -1
  151. package/esm2015/components/data-list-wrapper/data-list-wrapper.component.js +1 -1
  152. package/esm2015/components/filter/filter.component.js +1 -1
  153. package/esm2015/components/input-date/input-date.component.js +1 -1
  154. package/esm2015/components/input-date-range/input-date-range.component.js +1 -1
  155. package/esm2015/components/input-file/input-file.component.js +1 -1
  156. package/esm2015/components/input-files/input-files.component.js +5 -1
  157. package/esm2015/components/input-number/input-number.component.js +29 -20
  158. package/esm2015/components/input-number/input-number.module.js +5 -1
  159. package/esm2015/components/input-phone/input-phone.component.js +7 -10
  160. package/esm2015/components/input-phone-international/input-phone-international.component.js +7 -3
  161. package/esm2015/components/input-range/input-range.component.js +10 -4
  162. package/esm2015/components/input-slider/input-slider.component.js +155 -108
  163. package/esm2015/components/input-slider/input-slider.module.js +6 -12
  164. package/esm2015/components/input-tag/input-tag.component.js +21 -12
  165. package/esm2015/components/input-time/input-time.component.js +1 -1
  166. package/esm2015/components/multi-select/multi-select-group/multi-select-group.component.js +1 -1
  167. package/esm2015/components/multi-select/multi-select-options.js +1 -1
  168. package/esm2015/components/multi-select/multi-select.component.js +1 -1
  169. package/esm2015/components/progress/progress-segmented/progress-segmented.component.js +1 -1
  170. package/esm2015/components/radio/radio.component.js +2 -2
  171. package/esm2015/components/radio-list/radio-list.component.js +1 -1
  172. package/esm2015/components/select/select.component.js +2 -2
  173. package/esm2015/components/slider/slider-key-steps.directive.js +14 -1
  174. package/esm2015/components/slider/slider.component.js +5 -5
  175. package/esm2015/components/tabs/tabs/tabs.component.js +1 -1
  176. package/esm2015/components/tabs/tabs-with-more/tabs-with-more.component.js +1 -1
  177. package/esm2015/components/tag/index.js +2 -1
  178. package/esm2015/components/tag/tag-options.js +15 -0
  179. package/esm2015/components/tag/tag.component.js +11 -7
  180. package/esm2015/components/text-area/text-area.component.js +3 -3
  181. package/esm2015/components/toggle/toggle.component.js +3 -3
  182. package/esm2015/internal/primitive-calendar-range/primitive-calendar-range.component.js +26 -2
  183. package/esm2015/pipes/field-error/field-error-content-pipe.js +1 -1
  184. package/esm2015/pipes/field-error/field-error-pipe.js +1 -1
  185. package/esm2015/pipes/filter-by-input/filter-by-input.base.js +1 -1
  186. package/esm2015/tokens/tag-status.js +2 -1
  187. package/esm2015/types/key-steps.js +1 -1
  188. package/esm2015/utils/mask/create-time-mask.js +1 -1
  189. package/esm2015/utils/miscellaneous/create-default-day-range-periods.js +1 -1
  190. package/esm2015/utils/miscellaneous/create-time-periods.js +1 -1
  191. package/esm5/abstract/input-slider.js +9 -11
  192. package/esm5/components/accordion/accordion-item/accordion-item.component.js +1 -1
  193. package/esm5/components/breadcrumbs/breadcrumbs.component.js +1 -1
  194. package/esm5/components/calendar-range/calendar-range.component.js +1 -1
  195. package/esm5/components/checkbox/checkbox.component.js +3 -3
  196. package/esm5/components/data-list-wrapper/data-list-group-wrapper.component.js +1 -1
  197. package/esm5/components/data-list-wrapper/data-list-wrapper.component.js +1 -1
  198. package/esm5/components/filter/filter.component.js +1 -1
  199. package/esm5/components/input-date/input-date.component.js +1 -1
  200. package/esm5/components/input-date-range/input-date-range.component.js +1 -1
  201. package/esm5/components/input-file/input-file.component.js +1 -1
  202. package/esm5/components/input-files/input-files.component.js +9 -1
  203. package/esm5/components/input-number/input-number.component.js +26 -17
  204. package/esm5/components/input-number/input-number.module.js +5 -1
  205. package/esm5/components/input-phone/input-phone.component.js +7 -10
  206. package/esm5/components/input-phone-international/input-phone-international.component.js +7 -3
  207. package/esm5/components/input-range/input-range.component.js +14 -4
  208. package/esm5/components/input-slider/input-slider.component.js +153 -117
  209. package/esm5/components/input-slider/input-slider.module.js +6 -12
  210. package/esm5/components/input-tag/input-tag.component.js +21 -12
  211. package/esm5/components/input-time/input-time.component.js +1 -1
  212. package/esm5/components/multi-select/multi-select-group/multi-select-group.component.js +1 -1
  213. package/esm5/components/multi-select/multi-select-options.js +1 -1
  214. package/esm5/components/multi-select/multi-select.component.js +1 -1
  215. package/esm5/components/progress/progress-segmented/progress-segmented.component.js +1 -1
  216. package/esm5/components/radio/radio.component.js +2 -2
  217. package/esm5/components/radio-list/radio-list.component.js +1 -1
  218. package/esm5/components/select/select.component.js +2 -2
  219. package/esm5/components/slider/slider-key-steps.directive.js +22 -1
  220. package/esm5/components/slider/slider.component.js +5 -5
  221. package/esm5/components/tabs/tabs/tabs.component.js +1 -1
  222. package/esm5/components/tabs/tabs-with-more/tabs-with-more.component.js +1 -1
  223. package/esm5/components/tag/index.js +2 -1
  224. package/esm5/components/tag/tag-options.js +16 -0
  225. package/esm5/components/tag/tag.component.js +11 -7
  226. package/esm5/components/text-area/text-area.component.js +3 -3
  227. package/esm5/components/toggle/toggle.component.js +3 -3
  228. package/esm5/internal/primitive-calendar-range/primitive-calendar-range.component.js +26 -2
  229. package/esm5/pipes/field-error/field-error-content-pipe.js +1 -1
  230. package/esm5/pipes/field-error/field-error-pipe.js +1 -1
  231. package/esm5/pipes/filter-by-input/filter-by-input.base.js +1 -1
  232. package/esm5/tokens/tag-status.js +2 -1
  233. package/esm5/types/key-steps.js +1 -1
  234. package/esm5/utils/mask/create-time-mask.js +1 -1
  235. package/esm5/utils/miscellaneous/create-default-day-range-periods.js +1 -1
  236. package/esm5/utils/miscellaneous/create-time-periods.js +1 -1
  237. package/fesm2015/taiga-ui-kit-abstract.js +8 -6
  238. package/fesm2015/taiga-ui-kit-abstract.js.map +1 -1
  239. package/fesm2015/taiga-ui-kit-components-accordion.js +1 -1
  240. package/fesm2015/taiga-ui-kit-components-breadcrumbs.js.map +1 -1
  241. package/fesm2015/taiga-ui-kit-components-calendar-range.js.map +1 -1
  242. package/fesm2015/taiga-ui-kit-components-checkbox.js +2 -2
  243. package/fesm2015/taiga-ui-kit-components-checkbox.js.map +1 -1
  244. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  245. package/fesm2015/taiga-ui-kit-components-filter.js.map +1 -1
  246. package/fesm2015/taiga-ui-kit-components-input-date-range.js.map +1 -1
  247. package/fesm2015/taiga-ui-kit-components-input-date.js.map +1 -1
  248. package/fesm2015/taiga-ui-kit-components-input-file.js.map +1 -1
  249. package/fesm2015/taiga-ui-kit-components-input-files.js +4 -0
  250. package/fesm2015/taiga-ui-kit-components-input-files.js.map +1 -1
  251. package/fesm2015/taiga-ui-kit-components-input-number.js +32 -20
  252. package/fesm2015/taiga-ui-kit-components-input-number.js.map +1 -1
  253. package/fesm2015/taiga-ui-kit-components-input-phone-international.js +6 -2
  254. package/fesm2015/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  255. package/fesm2015/taiga-ui-kit-components-input-phone.js +6 -9
  256. package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
  257. package/fesm2015/taiga-ui-kit-components-input-range.js +8 -2
  258. package/fesm2015/taiga-ui-kit-components-input-range.js.map +1 -1
  259. package/fesm2015/taiga-ui-kit-components-input-slider.js +156 -116
  260. package/fesm2015/taiga-ui-kit-components-input-slider.js.map +1 -1
  261. package/fesm2015/taiga-ui-kit-components-input-tag.js +21 -12
  262. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  263. package/fesm2015/taiga-ui-kit-components-input-time.js.map +1 -1
  264. package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
  265. package/fesm2015/taiga-ui-kit-components-progress.js.map +1 -1
  266. package/fesm2015/taiga-ui-kit-components-radio-list.js.map +1 -1
  267. package/fesm2015/taiga-ui-kit-components-radio.js +1 -1
  268. package/fesm2015/taiga-ui-kit-components-radio.js.map +1 -1
  269. package/fesm2015/taiga-ui-kit-components-select.js +1 -1
  270. package/fesm2015/taiga-ui-kit-components-select.js.map +1 -1
  271. package/fesm2015/taiga-ui-kit-components-slider.js +17 -4
  272. package/fesm2015/taiga-ui-kit-components-slider.js.map +1 -1
  273. package/fesm2015/taiga-ui-kit-components-tabs.js.map +1 -1
  274. package/fesm2015/taiga-ui-kit-components-tag.js +25 -8
  275. package/fesm2015/taiga-ui-kit-components-tag.js.map +1 -1
  276. package/fesm2015/taiga-ui-kit-components-text-area.js +2 -2
  277. package/fesm2015/taiga-ui-kit-components-text-area.js.map +1 -1
  278. package/fesm2015/taiga-ui-kit-components-toggle.js +2 -2
  279. package/fesm2015/taiga-ui-kit-components-toggle.js.map +1 -1
  280. package/fesm2015/taiga-ui-kit-internal-primitive-calendar-range.js +25 -1
  281. package/fesm2015/taiga-ui-kit-internal-primitive-calendar-range.js.map +1 -1
  282. package/fesm2015/taiga-ui-kit-pipes-field-error.js.map +1 -1
  283. package/fesm2015/taiga-ui-kit-pipes-filter-by-input.js.map +1 -1
  284. package/fesm2015/taiga-ui-kit-tokens.js +1 -0
  285. package/fesm2015/taiga-ui-kit-tokens.js.map +1 -1
  286. package/fesm2015/taiga-ui-kit-utils-mask.js.map +1 -1
  287. package/fesm2015/taiga-ui-kit-utils-miscellaneous.js.map +1 -1
  288. package/fesm5/taiga-ui-kit-abstract.js +8 -10
  289. package/fesm5/taiga-ui-kit-abstract.js.map +1 -1
  290. package/fesm5/taiga-ui-kit-components-accordion.js +1 -1
  291. package/fesm5/taiga-ui-kit-components-breadcrumbs.js.map +1 -1
  292. package/fesm5/taiga-ui-kit-components-calendar-range.js.map +1 -1
  293. package/fesm5/taiga-ui-kit-components-checkbox.js +2 -2
  294. package/fesm5/taiga-ui-kit-components-checkbox.js.map +1 -1
  295. package/fesm5/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  296. package/fesm5/taiga-ui-kit-components-filter.js.map +1 -1
  297. package/fesm5/taiga-ui-kit-components-input-date-range.js.map +1 -1
  298. package/fesm5/taiga-ui-kit-components-input-date.js.map +1 -1
  299. package/fesm5/taiga-ui-kit-components-input-file.js.map +1 -1
  300. package/fesm5/taiga-ui-kit-components-input-files.js +8 -0
  301. package/fesm5/taiga-ui-kit-components-input-files.js.map +1 -1
  302. package/fesm5/taiga-ui-kit-components-input-number.js +29 -17
  303. package/fesm5/taiga-ui-kit-components-input-number.js.map +1 -1
  304. package/fesm5/taiga-ui-kit-components-input-phone-international.js +6 -2
  305. package/fesm5/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  306. package/fesm5/taiga-ui-kit-components-input-phone.js +6 -9
  307. package/fesm5/taiga-ui-kit-components-input-phone.js.map +1 -1
  308. package/fesm5/taiga-ui-kit-components-input-range.js +12 -2
  309. package/fesm5/taiga-ui-kit-components-input-range.js.map +1 -1
  310. package/fesm5/taiga-ui-kit-components-input-slider.js +154 -125
  311. package/fesm5/taiga-ui-kit-components-input-slider.js.map +1 -1
  312. package/fesm5/taiga-ui-kit-components-input-tag.js +21 -12
  313. package/fesm5/taiga-ui-kit-components-input-tag.js.map +1 -1
  314. package/fesm5/taiga-ui-kit-components-input-time.js.map +1 -1
  315. package/fesm5/taiga-ui-kit-components-multi-select.js.map +1 -1
  316. package/fesm5/taiga-ui-kit-components-progress.js.map +1 -1
  317. package/fesm5/taiga-ui-kit-components-radio-list.js.map +1 -1
  318. package/fesm5/taiga-ui-kit-components-radio.js +1 -1
  319. package/fesm5/taiga-ui-kit-components-radio.js.map +1 -1
  320. package/fesm5/taiga-ui-kit-components-select.js +1 -1
  321. package/fesm5/taiga-ui-kit-components-select.js.map +1 -1
  322. package/fesm5/taiga-ui-kit-components-slider.js +25 -4
  323. package/fesm5/taiga-ui-kit-components-slider.js.map +1 -1
  324. package/fesm5/taiga-ui-kit-components-tabs.js.map +1 -1
  325. package/fesm5/taiga-ui-kit-components-tag.js +26 -9
  326. package/fesm5/taiga-ui-kit-components-tag.js.map +1 -1
  327. package/fesm5/taiga-ui-kit-components-text-area.js +2 -2
  328. package/fesm5/taiga-ui-kit-components-text-area.js.map +1 -1
  329. package/fesm5/taiga-ui-kit-components-toggle.js +2 -2
  330. package/fesm5/taiga-ui-kit-components-toggle.js.map +1 -1
  331. package/fesm5/taiga-ui-kit-internal-primitive-calendar-range.js +25 -1
  332. package/fesm5/taiga-ui-kit-internal-primitive-calendar-range.js.map +1 -1
  333. package/fesm5/taiga-ui-kit-pipes-field-error.js.map +1 -1
  334. package/fesm5/taiga-ui-kit-pipes-filter-by-input.js.map +1 -1
  335. package/fesm5/taiga-ui-kit-tokens.js +1 -0
  336. package/fesm5/taiga-ui-kit-tokens.js.map +1 -1
  337. package/fesm5/taiga-ui-kit-utils-mask.js.map +1 -1
  338. package/fesm5/taiga-ui-kit-utils-miscellaneous.js.map +1 -1
  339. package/internal/primitive-calendar-range/primitive-calendar-range.component.d.ts +3 -0
  340. package/internal/primitive-calendar-range/taiga-ui-kit-internal-primitive-calendar-range.metadata.json +1 -1
  341. package/package.json +4 -4
  342. package/pipes/field-error/field-error-content-pipe.d.ts +1 -1
  343. package/pipes/field-error/field-error-pipe.d.ts +1 -1
  344. package/pipes/filter-by-input/filter-by-input.base.d.ts +1 -1
  345. package/tokens/taiga-ui-kit-tokens.metadata.json +1 -1
  346. package/types/key-steps.d.ts +1 -1
  347. package/utils/miscellaneous/create-default-day-range-periods.d.ts +1 -1
  348. package/utils/miscellaneous/create-time-periods.d.ts +1 -1
@@ -2,7 +2,7 @@ import { __decorate, __extends, __param } from "tslib";
2
2
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, forwardRef, HostBinding, Inject, Optional, Self, ViewChild, } from '@angular/core';
3
3
  import { NgControl } from '@angular/forms';
4
4
  import { isNativeFocused, setNativeFocused, TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_MOBILE, tuiPure, } from '@taiga-ui/cdk';
5
- import { formatNumber, maskedMoneyValueIsEmpty, maskedNumberStringToNumber, NumberFormatSettings, TUI_NUMBER_FORMAT, TUI_TEXTFIELD_APPEARANCE, TuiModeDirective, } from '@taiga-ui/core';
5
+ import { formatNumber, maskedMoneyValueIsEmpty, maskedNumberStringToNumber, NumberFormatSettings, TUI_NUMBER_FORMAT, TUI_TEXTFIELD_APPEARANCE, TuiBrightness, TuiModeDirective, } from '@taiga-ui/core';
6
6
  import { AbstractTuiInputSlider } from '@taiga-ui/kit/abstract';
7
7
  // @dynamic
8
8
  var TuiInputRangeComponent = /** @class */ (function (_super) {
@@ -58,6 +58,13 @@ var TuiInputRangeComponent = /** @class */ (function (_super) {
58
58
  enumerable: true,
59
59
  configurable: true
60
60
  });
61
+ Object.defineProperty(TuiInputRangeComponent.prototype, "hostMode", {
62
+ get: function () {
63
+ return this.modeDirective && this.modeDirective.mode;
64
+ },
65
+ enumerable: true,
66
+ configurable: true
67
+ });
61
68
  Object.defineProperty(TuiInputRangeComponent.prototype, "inputValueLeft", {
62
69
  get: function () {
63
70
  return this.nativeLeft ? this.nativeLeft.nativeElement.value : '';
@@ -235,6 +242,9 @@ var TuiInputRangeComponent = /** @class */ (function (_super) {
235
242
  __decorate([
236
243
  HostBinding('class._max-label')
237
244
  ], TuiInputRangeComponent.prototype, "showMaxLabel", null);
245
+ __decorate([
246
+ HostBinding('attr.data-mode')
247
+ ], TuiInputRangeComponent.prototype, "hostMode", null);
238
248
  __decorate([
239
249
  tuiPure
240
250
  ], TuiInputRangeComponent.prototype, "computedPureValueLeft", null);
@@ -244,7 +254,7 @@ var TuiInputRangeComponent = /** @class */ (function (_super) {
244
254
  TuiInputRangeComponent = TuiInputRangeComponent_1 = __decorate([
245
255
  Component({
246
256
  selector: 'tui-input-range',
247
- template: "<div class=\"t-zone\" (tuiActiveZoneChange)=\"onActiveZone($event)\">\n <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-range__placeholder\"\n class=\"t-placeholder t-placeholder_raised\"\n >\n <ng-content></ng-content>\n </span>\n <div class=\"t-content\">\n <span *ngIf=\"!showMinLabel\" class=\"t-label\">\n <span class=\"t-value\">{{ inputValueLeft }}</span>\n <span\n *ngIf=\"pluralizeMap\"\n automation-id=\"tui-input-range__pluralize-left\"\n class=\"t-pluralize\"\n >\n {{ value[0] | i18nPlural: pluralizeMap }}\n </span>\n </span>\n <span\n *ngIf=\"showMinLabel\"\n automation-id=\"tui-input-range__min-label\"\n class=\"t-label\"\n >\n {{ minLabel }}\n </span>\n <span\n *ngIf=\"showMaxLabel\"\n automation-id=\"tui-input-range__max-label\"\n class=\"t-max\"\n >\n {{ maxLabel }}\n </span>\n </div>\n <tui-range\n class=\"t-slider\"\n [min]=\"min\"\n [max]=\"max\"\n [steps]=\"computedSteps\"\n [segments]=\"segments\"\n [keySteps]=\"keySteps\"\n [pluralize]=\"segmentsPluralizeMap\"\n [focusable]=\"false\"\n [disabled]=\"readOnly || disabled\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onRangeValue($event)\"\n (mousedown.prevent)=\"onMouseDown()\"\n ></tui-range>\n </tui-wrapper>\n\n <div class=\"t-native-wrapper\" (tuiHoveredChange)=\"onHovered($event)\">\n <input\n #nativeLeft\n automation-id=\"tui-input-range__native-left\"\n class=\"t-native\"\n [disabled]=\"disabled\"\n [readOnly]=\"readOnly\"\n [class.t-native_hidden]=\"showMinLabel\"\n [tuiInputMode]=\"inputMode\"\n [tuiFocusable]=\"focusable\"\n [textMask]=\"quantum | tuiMapper: mask:min\"\n [ngModel]=\"computedValueLeft\"\n (ngModelChange)=\"onInputLeft()\"\n (tuiFocusedChange)=\"onLeftFocused($event)\"\n (keydown.arrowUp)=\"onKeyDownArrowUpLeft($event)\"\n (keydown.arrowDown)=\"onKeyDownArrowDownLeft($event)\"\n />\n <input\n #nativeRight\n automation-id=\"tui-input-range__native-right\"\n class=\"t-native t-native_right\"\n [disabled]=\"disabled\"\n [readOnly]=\"readOnly\"\n [class.t-native_hidden]=\"showMaxLabel\"\n [tuiInputMode]=\"inputMode\"\n [tuiFocusable]=\"focusable\"\n [textMask]=\"quantum | tuiMapper: mask:min\"\n [ngModel]=\"computedValueRight\"\n (ngModelChange)=\"onInputRight()\"\n (tuiFocusedChange)=\"onRightFocused($event)\"\n (keydown.arrowUp)=\"onKeyDownArrowUpRight($event)\"\n (keydown.arrowDown)=\"onKeyDownArrowDownRight($event)\"\n />\n <span\n *ngIf=\"pluralizeMap && !showMaxLabel\"\n automation-id=\"tui-input-range__pluralize-right\"\n class=\"t-pluralize t-pluralize_right\"\n (mousedown)=\"onMouseDown()\"\n >\n {{ value[1] | i18nPlural: pluralizeMap }}\n </span>\n </div>\n</div>\n",
257
+ template: "<tui-wrapper\n [appearance]=\"appearance\"\n [readOnly]=\"readOnly\"\n [disabled]=\"disabled\"\n [focused]=\"computedFocused\"\n [hovered]=\"computedHovered\"\n [invalid]=\"computedInvalid\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <span\n *ngIf=\"hasPlaceholder\"\n automation-id=\"tui-input-range__placeholder\"\n class=\"t-placeholder t-placeholder_raised\"\n >\n <ng-content></ng-content>\n </span>\n <div class=\"t-content\">\n <span *ngIf=\"!showMinLabel\" class=\"t-label\">\n <span class=\"t-value\">{{ inputValueLeft }}</span>\n <span\n *ngIf=\"pluralizeMap\"\n automation-id=\"tui-input-range__pluralize-left\"\n class=\"t-pluralize\"\n >\n {{ value[0] | i18nPlural: pluralizeMap }}\n </span>\n </span>\n <span\n *ngIf=\"showMinLabel\"\n automation-id=\"tui-input-range__min-label\"\n class=\"t-label\"\n >\n {{ minLabel }}\n </span>\n <span\n *ngIf=\"showMaxLabel\"\n automation-id=\"tui-input-range__max-label\"\n class=\"t-max\"\n >\n {{ maxLabel }}\n </span>\n </div>\n\n <div class=\"t-native-wrapper\" (tuiHoveredChange)=\"onHovered($event)\">\n <input\n #nativeLeft\n automation-id=\"tui-input-range__native-left\"\n class=\"t-native\"\n [disabled]=\"disabled\"\n [readOnly]=\"readOnly\"\n [class.t-native_hidden]=\"showMinLabel\"\n [tuiInputMode]=\"inputMode\"\n [tuiFocusable]=\"focusable\"\n [textMask]=\"quantum | tuiMapper: mask:min\"\n [ngModel]=\"computedValueLeft\"\n (ngModelChange)=\"onInputLeft()\"\n (tuiFocusedChange)=\"onLeftFocused($event)\"\n (keydown.arrowUp)=\"onKeyDownArrowUpLeft($event)\"\n (keydown.arrowDown)=\"onKeyDownArrowDownLeft($event)\"\n />\n <input\n #nativeRight\n automation-id=\"tui-input-range__native-right\"\n class=\"t-native t-native_right\"\n [disabled]=\"disabled\"\n [readOnly]=\"readOnly\"\n [class.t-native_hidden]=\"showMaxLabel\"\n [tuiInputMode]=\"inputMode\"\n [tuiFocusable]=\"focusable\"\n [textMask]=\"quantum | tuiMapper: mask:min\"\n [ngModel]=\"computedValueRight\"\n (ngModelChange)=\"onInputRight()\"\n (tuiFocusedChange)=\"onRightFocused($event)\"\n (keydown.arrowUp)=\"onKeyDownArrowUpRight($event)\"\n (keydown.arrowDown)=\"onKeyDownArrowDownRight($event)\"\n />\n <span\n *ngIf=\"pluralizeMap && !showMaxLabel\"\n automation-id=\"tui-input-range__pluralize-right\"\n class=\"t-pluralize t-pluralize_right\"\n (mousedown)=\"onMouseDown()\"\n >\n {{ value[1] | i18nPlural: pluralizeMap }}\n </span>\n </div>\n <tui-range\n class=\"t-slider\"\n [min]=\"min\"\n [max]=\"max\"\n [steps]=\"computedSteps\"\n [segments]=\"segments\"\n [keySteps]=\"keySteps\"\n [pluralize]=\"segmentsPluralizeMap\"\n [focusable]=\"false\"\n [disabled]=\"readOnly || disabled\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onRangeValue($event)\"\n (mousedown.prevent)=\"onMouseDown()\"\n ></tui-range>\n</tui-wrapper>\n",
248
258
  changeDetection: ChangeDetectionStrategy.OnPush,
249
259
  providers: [
250
260
  {
@@ -252,7 +262,7 @@ var TuiInputRangeComponent = /** @class */ (function (_super) {
252
262
  useExisting: forwardRef(function () { return TuiInputRangeComponent_1; }),
253
263
  },
254
264
  ],
255
- 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}:host[data-mode=onDark]{color:var(--tui-base-01)}.t-zone{border-radius:inherit}.t-native-wrapper{position:absolute;top:0;left:0;width:100%;height:100%;display:flex}.t-pluralize{display:flex;align-items:center;padding-right:.75rem;margin-left:-.5rem}.t-pluralize_right{margin-left:-.75rem}:host[data-size='l'] .t-pluralize_right{padding-top:1.25rem}:host._disabled .t-pluralize_right{color:var(--tui-text-03)}:host[data-mode=onDark]._disabled .t-pluralize_right{color:var(--tui-text-03-night)}.t-native{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;flex:1;min-width:0;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}.t-native_right{text-align:right}.t-native_hidden{opacity:0}: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[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;height:var(--tui-height-m);padding:0 1rem;justify-content:space-between;align-items:center}:host[data-size='l'] .t-content{height:var(--tui-height-l);padding:0 1rem}:host[data-size='l']._disabled .t-content{color:var(--tui-text-03)}:host[data-size='l'][data-mode=onDark]._disabled .t-content{color:var(--tui-text-03-night)}.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;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:var(--tui-text-02);pointer-events:none;position:absolute;top:0;width:100%;height:100%;left:1rem;line-height:var(--tui-height-l)}.t-placeholder_raised{transform:translateY(-.625rem)}:host[data-size='m'] .t-placeholder_raised{font:var(--tui-font-text-xs);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)}.t-value{visibility:hidden;overflow:hidden;padding-right:.75rem}:host._disabled .t-value{color:var(--tui-text-03)}.t-label{display:flex;width:50%}:host[data-size='l'] .t-label{padding-top:1.25rem}.t-max{text-align:right;flex:1}:host[data-size='l'] .t-max{padding-top:1.25rem;line-height:calc(var(--tui-height-l) - 1.25rem)}.t-slider{position:absolute;top:100%;left:0;right:0;z-index:1;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}"]
265
+ 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}:host[data-mode=onDark]{color:var(--tui-base-01)}.t-native-wrapper{position:absolute;top:0;left:0;width:100%;height:100%;display:flex}.t-pluralize{display:flex;align-items:center;padding-right:.75rem;margin-left:-.5rem}.t-pluralize_right{margin-left:-.75rem}:host[data-size='l'] .t-pluralize_right{padding-top:1.25rem}:host._disabled .t-pluralize_right{color:var(--tui-text-03)}:host[data-mode=onDark]._disabled .t-pluralize_right{color:var(--tui-text-03-night)}.t-native{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;flex:1;min-width:0;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}.t-native_right{text-align:right}.t-native_hidden{opacity:0}: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[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;height:var(--tui-height-m);padding:0 1rem;justify-content:space-between;align-items:center}:host[data-size='l'] .t-content{height:var(--tui-height-l);padding:0 1rem}:host[data-size='l']._disabled .t-content{color:var(--tui-text-03)}:host[data-size='l'][data-mode=onDark]._disabled .t-content{color:var(--tui-text-03-night)}.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;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:var(--tui-text-02);pointer-events:none;position:absolute;top:0;width:100%;height:100%;left:1rem;line-height:var(--tui-height-l)}.t-placeholder_raised{transform:translateY(-.625rem)}:host[data-size='m'] .t-placeholder_raised{font:var(--tui-font-text-xs);transform:translateY(-.5rem);letter-spacing:.025rem}:host._invalid:not(._focused) .t-placeholder_raised,:host._invalid:not(._focused):hover .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):hover .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)}.t-value{visibility:hidden;overflow:hidden;padding-right:.75rem}:host._disabled .t-value{color:var(--tui-text-03)}.t-label{display:flex;width:50%}:host[data-size='l'] .t-label{padding-top:1.25rem}.t-max{text-align:right;flex:1}:host[data-size='l'] .t-max{padding-top:1.25rem;line-height:calc(var(--tui-height-l) - 1.25rem)}.t-slider{position:absolute;top:100%;left:0;right:0;z-index:1;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}"]
256
266
  }),
257
267
  __param(0, Optional()),
258
268
  __param(0, Self()),
@@ -267,4 +277,4 @@ var TuiInputRangeComponent = /** @class */ (function (_super) {
267
277
  return TuiInputRangeComponent;
268
278
  }(AbstractTuiInputSlider));
269
279
  export { TuiInputRangeComponent };
270
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcmFuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LXJhbmdlLyIsInNvdXJjZXMiOlsiaW5wdXQtcmFuZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLFFBQVEsRUFDUixJQUFJLEVBQ0osU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsZUFBZSxFQUNmLGdCQUFnQixFQUNoQiwyQkFBMkIsRUFDM0IsYUFBYSxFQUdiLE9BQU8sR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsWUFBWSxFQUNaLHVCQUF1QixFQUN2QiwwQkFBMEIsRUFDMUIsb0JBQW9CLEVBQ3BCLGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsZ0JBQWdCLEdBQ25CLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFFOUQsV0FBVztBQWFYO0lBQ1ksMENBQXdDO0lBU2hELGdDQUlJLE9BQXlCLEVBQ0UsaUJBQW9DLEVBRzVDLGFBQXNDLEVBRXhDLFFBQWlCLEVBRWYsWUFBa0MsRUFFNUMsVUFBa0I7UUFkL0IsWUFnQkksa0JBQU0sT0FBTyxFQUFFLGlCQUFpQixDQUFDLFNBQ3BDO1FBVHNCLG1CQUFhLEdBQWIsYUFBYSxDQUF5QjtRQUV4QyxjQUFRLEdBQVIsUUFBUSxDQUFTO1FBRWYsa0JBQVksR0FBWixZQUFZLENBQXNCO1FBRTVDLGdCQUFVLEdBQVYsVUFBVSxDQUFROztJQUcvQixDQUFDOytCQTNCUSxzQkFBc0I7SUE2Qi9CLHNCQUFJLDBE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UyxDQUFDO1lBQ1AsUUFBUSxFQUFFLGlCQUFpQjtZQUMzQix5eEhBQTBDO1lBRTFDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO1lBQy9DLFNBQVMsRUFBRTtnQkFDUDtvQkFDSSxPQUFPLEVBQUUsMkJBQTJCO29CQUNwQyxXQUFXLEVBQUUsVUFBVSxDQUFDLGNBQU0sT0FBQSx3QkFBc0IsRUFBdEIsQ0FBc0IsQ0FBQztpQkFDeEQ7YUFDSjs7U0FDSixDQUFDO1FBWU8sV0FBQSxRQUFRLEVBQUUsQ0FBQTtRQUNWLFdBQUEsSUFBSSxFQUFFLENBQUE7UUFDTixXQUFBLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUVqQixXQUFBLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBQ3pCLFdBQUEsUUFBUSxFQUFFLENBQUE7UUFDVixXQUFBLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO1FBRXhCLFdBQUEsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBRXJCLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFFekIsV0FBQSxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQTtPQXZCNUIsc0JBQXNCLENBbVFsQztJQUFELDZCQUFDO0NBQUEsQUFuUUQsQ0FDWSxzQkFBc0IsR0FrUWpDO1NBblFZLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgaXNOYXRpdmVGb2N1c2VkLFxuICAgIHNldE5hdGl2ZUZvY3VzZWQsXG4gICAgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgIFRVSV9JU19NT0JJTEUsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIFR1aU5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQsXG4gICAgdHVpUHVyZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIGZvcm1hdE51bWJlcixcbiAgICBtYXNrZWRNb25leVZhbHVlSXNFbXB0eSxcbiAgICBtYXNrZWROdW1iZXJTdHJpbmdUb051bWJlcixcbiAgICBOdW1iZXJGb3JtYXRTZXR0aW5ncyxcbiAgICBUVUlfTlVNQkVSX0ZPUk1BVCxcbiAgICBUVUlfVEVYVEZJRUxEX0FQUEVBUkFOQ0UsXG4gICAgVHVpTW9kZURpcmVjdGl2ZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdFR1aUlucHV0U2xpZGVyfSBmcm9tICdAdGFpZ2EtdWkva2l0L2Fic3RyYWN0JztcblxuLy8gQGR5bmFtaWNcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWlucHV0LXJhbmdlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtcmFuZ2UudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtcmFuZ2Uuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUdWlJbnB1dFJhbmdlQ29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dFJhbmdlQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aUlucHV0U2xpZGVyPFtudW1iZXIsIG51bWJlcl0+XG4gICAgaW1wbGVtZW50cyBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3JcbntcbiAgICBAVmlld0NoaWxkKCduYXRpdmVMZWZ0JylcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5hdGl2ZUxlZnQ/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZCgnbmF0aXZlUmlnaHQnKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmF0aXZlUmlnaHQ/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChUdWlNb2RlRGlyZWN0aXZlKVxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbW9kZURpcmVjdGl2ZTogVHVpTW9kZURpcmVjdGl2ZSB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoVFVJX0lTX01PQklMRSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBpc01vYmlsZTogYm9vbGVhbixcbiAgICAgICAgQEluamVjdChUVUlfTlVNQkVSX0ZPUk1BVClcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IG51bWJlckZvcm1hdDogTnVtYmVyRm9ybWF0U2V0dGluZ3MsXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9BUFBFQVJBTkNFKVxuICAgICAgICByZWFkb25seSBhcHBlYXJhbmNlOiBzdHJpbmcsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNvbnRyb2wsIGNoYW5nZURldGVjdG9yUmVmKTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBUdWlOYXRpdmVGb2N1c2FibGVFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiAhdGhpcy5uYXRpdmVMZWZ0IHx8IHRoaXMuZGlzYWJsZWQgPyBudWxsIDogdGhpcy5uYXRpdmVMZWZ0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvY3VzZWRMZWZ0IHx8IHRoaXMuZm9jdXNlZFJpZ2h0O1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkTGVmdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5uYXRpdmVMZWZ0ICYmIGlzTmF0aXZlRm9jdXNlZCh0aGlzLm5hdGl2ZUxlZnQubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWRSaWdodCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5uYXRpdmVSaWdodCAmJiBpc05hdGl2ZUZvY3VzZWQodGhpcy5uYXRpdmVSaWdodC5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9taW4tbGFiZWwnKVxuICAgIGdldCBzaG93TWluTGFiZWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5mb2N1c2VkTGVmdCAmJiAhIXRoaXMubWluTGFiZWwgJiYgdGhpcy52YWx1ZVswXSA9PT0gdGhpcy5taW47XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fbWF4LWxhYmVsJylcbiAgICBnZXQgc2hvd01heExhYmVsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuZm9jdXNlZFJpZ2h0ICYmICEhdGhpcy5tYXhMYWJlbCAmJiB0aGlzLnZhbHVlWzFdID09PSB0aGlzLm1heDtcbiAgICB9XG5cbiAgICBnZXQgaW5wdXRWYWx1ZUxlZnQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlTGVmdCA/IHRoaXMubmF0aXZlTGVmdC5uYXRpdmVFbGVtZW50LnZhbHVlIDogJyc7XG4gICAgfVxuXG4gICAgZ2V0IGlucHV0VmFsdWVSaWdodCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVSaWdodCA/IHRoaXMubmF0aXZlUmlnaHQubmF0aXZlRWxlbWVudC52YWx1ZSA6ICcnO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZFZhbHVlTGVmdCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlZFB1cmVWYWx1ZUxlZnQodGhpcy52YWx1ZVswXSk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkVmFsdWVSaWdodCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlZFB1cmVWYWx1ZVJpZ2h0KHRoaXMudmFsdWVbMV0pO1xuICAgIH1cblxuICAgIG9uQWN0aXZlWm9uZShhY3RpdmU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGFjdGl2ZSk7XG4gICAgfVxuXG4gICAgb25Nb3VzZURvd24oKSB7XG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZVJpZ2h0ICYmICF0aGlzLmlzTW9iaWxlKSB7XG4gICAgICAgICAgICBzZXROYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlUmlnaHQubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbktleURvd25BcnJvd1VwTGVmdChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5wcm9jZXNzU3RlcCh0cnVlLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgb25LZXlEb3duQXJyb3dEb3duTGVmdChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5wcm9jZXNzU3RlcChmYWxzZSwgZmFsc2UpO1xuICAgIH1cblxuICAgIG9uS2V5RG93bkFycm93VXBSaWdodChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5wcm9jZXNzU3RlcCh0cnVlLCB0cnVlKTtcbiAgICB9XG5cbiAgICBvbktleURvd25BcnJvd0Rvd25SaWdodChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5wcm9jZXNzU3RlcChmYWxzZSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgb25JbnB1dExlZnQoKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5pbnB1dFZhbHVlTGVmdDtcbiAgICAgICAgY29uc3QgY2FwcGVkID0gdGhpcy5jYXBJbnB1dFZhbHVlKHZhbHVlLCB0aGlzLnZhbHVlWzFdKTtcbiAgICAgICAgY29uc3QgcG9zdGZpeCA9IHZhbHVlLnNsaWNlKC0xKVswXSA9PT0gJywnID8gJywnIDogJyc7XG5cbiAgICAgICAgaWYgKG1hc2tlZE1vbmV5VmFsdWVJc0VtcHR5KHZhbHVlKSB8fCBjYXBwZWQgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5mb3JtYXROdW1iZXIoY2FwcGVkKSArIHBvc3RmaXg7XG5cbiAgICAgICAgaWYgKHRoaXMubmF0aXZlTGVmdCAmJiB0aGlzLmlucHV0VmFsdWVMZWZ0ICE9PSBuZXdWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVMZWZ0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoW2NhcHBlZCwgdGhpcy52YWx1ZVsxXV0pO1xuICAgIH1cblxuICAgIG9uSW5wdXRSaWdodCgpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmlucHV0VmFsdWVSaWdodDtcbiAgICAgICAgY29uc3QgY2FwcGVkID0gdGhpcy5jYXBJbnB1dFZhbHVlKHZhbHVlKTtcbiAgICAgICAgY29uc3QgcG9zdGZpeCA9IHZhbHVlLnNsaWNlKC0xKVswXSA9PT0gJywnID8gJywnIDogJyc7XG5cbiAgICAgICAgaWYgKG1hc2tlZE1vbmV5VmFsdWVJc0VtcHR5KHZhbHVlKSB8fCBjYXBwZWQgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5mb3JtYXROdW1iZXIoY2FwcGVkKSArIHBvc3RmaXg7XG5cbiAgICAgICAgaWYgKHRoaXMubmF0aXZlUmlnaHQgJiYgdGhpcy5pbnB1dFZhbHVlUmlnaHQgIT09IG5ld1ZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZVJpZ2h0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjYXBwZWQgPj0gdGhpcy52YWx1ZVswXSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShbdGhpcy52YWx1ZVswXSwgY2FwcGVkXSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblJhbmdlVmFsdWUodmFsdWU6IFtudW1iZXIsIG51bWJlcl0pIHtcbiAgICAgICAgY29uc3QgZ3VhcmRlZFZhbHVlID0gdmFsdWUubWFwKGl0ZW0gPT4gdGhpcy52YWx1ZUd1YXJkKGl0ZW0pKSBhcyBbbnVtYmVyLCBudW1iZXJdO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICF0aGlzLm5hdGl2ZUxlZnQgfHxcbiAgICAgICAgICAgICF0aGlzLm5hdGl2ZVJpZ2h0IHx8XG4gICAgICAgICAgICAoZ3VhcmRlZFZhbHVlWzBdID09PSB0aGlzLnZhbHVlWzBdICYmIGd1YXJkZWRWYWx1ZVsxXSA9PT0gdGhpcy52YWx1ZVsxXSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuaXNNb2JpbGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPVxuICAgICAgICAgICAgICAgIGd1YXJkZWRWYWx1ZVswXSAhPT0gdGhpcy52YWx1ZVswXVxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMubmF0aXZlTGVmdC5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5uYXRpdmVSaWdodC5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgICAgICBzZXROYXRpdmVGb2N1c2VkKGVsZW1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShndWFyZGVkVmFsdWUpO1xuICAgICAgICB0aGlzLm5hdGl2ZUxlZnQubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMuZm9ybWF0TnVtYmVyKGd1YXJkZWRWYWx1ZVswXSk7XG4gICAgfVxuXG4gICAgb25MZWZ0Rm9jdXNlZChmb2N1c2VkOiBib29sZWFuKSB7XG4gICAgICAgIGlmIChmb2N1c2VkIHx8ICF0aGlzLm5hdGl2ZUxlZnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGlucHV0VmFsdWUgPSBtYXNrZWROdW1iZXJTdHJpbmdUb051bWJlcihcbiAgICAgICAgICAgIHRoaXMuY29tcHV0ZWRWYWx1ZUxlZnQsXG4gICAgICAgICAgICB0aGlzLm51bWJlckZvcm1hdC5kZWNpbWFsU2VwYXJhdG9yLFxuICAgICAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQudGhvdXNhbmRTZXBhcmF0b3IsXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gaXNOYU4oaW5wdXRWYWx1ZSkgPyB0aGlzLm1pbiA6IHRoaXMudmFsdWVHdWFyZChpbnB1dFZhbHVlKTtcblxuICAgICAgICB0aGlzLm5hdGl2ZUxlZnQubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMuZm9ybWF0TnVtYmVyKHZhbHVlKTtcblxuICAgICAgICBpZiAodmFsdWUgIT09IHRoaXMudmFsdWVbMF0pIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUoW3ZhbHVlLCB0aGlzLnZhbHVlWzFdXSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblJpZ2h0Rm9jdXNlZChmb2N1c2VkOiBib29sZWFuKSB7XG4gICAgICAgIGlmIChmb2N1c2VkIHx8ICF0aGlzLm5hdGl2ZVJpZ2h0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpbnB1dFZhbHVlID0gbWFza2VkTnVtYmVyU3RyaW5nVG9OdW1iZXIoXG4gICAgICAgICAgICB0aGlzLmNvbXB1dGVkVmFsdWVSaWdodCxcbiAgICAgICAgICAgIHRoaXMubnVtYmVyRm9ybWF0LmRlY2ltYWxTZXBhcmF0b3IsXG4gICAgICAgICAgICB0aGlzLm51bWJlckZvcm1hdC50aG91c2FuZFNlcGFyYXRvcixcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCB2YWx1ZSA9IGlzTmFOKGlucHV0VmFsdWUpXG4gICAgICAgICAgICA/IHRoaXMudmFsdWVbMF1cbiAgICAgICAgICAgIDogdGhpcy52YWx1ZUd1YXJkKE1hdGgubWF4KGlucHV0VmFsdWUsIHRoaXMudmFsdWVbMF0pKTtcblxuICAgICAgICB0aGlzLm5hdGl2ZVJpZ2h0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLmZvcm1hdE51bWJlcih2YWx1ZSk7XG5cbiAgICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLnZhbHVlWzFdKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKFt0aGlzLnZhbHVlWzBdLCB2YWx1ZV0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZhbGxiYWNrVmFsdWUoKTogW251bWJlciwgbnVtYmVyXSB7XG4gICAgICAgIHJldHVybiBbMCwgMF07XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGNvbXB1dGVkUHVyZVZhbHVlTGVmdCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdE51bWJlcih2YWx1ZSk7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGNvbXB1dGVkUHVyZVZhbHVlUmlnaHQodmFsdWU6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXROdW1iZXIodmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9ybWF0TnVtYmVyKHZhbHVlOiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVyKFxuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQuZGVjaW1hbFNlcGFyYXRvcixcbiAgICAgICAgICAgIHRoaXMubnVtYmVyRm9ybWF0LnRob3VzYW5kU2VwYXJhdG9yLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvY2Vzc1N0ZXAoaW5jcmVtZW50OiBib29sZWFuLCByaWdodDogYm9vbGVhbikge1xuICAgICAgICBjb25zdCBzdGFydCA9IHRoaXMudmFsdWVHdWFyZChcbiAgICAgICAgICAgIGluY3JlbWVudCA/IHRoaXMudmFsdWVbMF0gKyB0aGlzLnN0ZXAgOiB0aGlzLnZhbHVlWzBdIC0gdGhpcy5zdGVwLFxuICAgICAgICApO1xuICAgICAgICBjb25zdCBlbmQgPSB0aGlzLnZhbHVlR3VhcmQoXG4gICAgICAgICAgICBpbmNyZW1lbnQgPyB0aGlzLnZhbHVlWzFdICsgdGhpcy5zdGVwIDogdGhpcy52YWx1ZVsxXSAtIHRoaXMuc3RlcCxcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgdmFsdWU6IFtudW1iZXIsIG51bWJlcl0gPSBbXG4gICAgICAgICAgICByaWdodCA/IHRoaXMudmFsdWVbMF0gOiBNYXRoLm1pbihzdGFydCwgdGhpcy52YWx1ZVsxXSksXG4gICAgICAgICAgICByaWdodCA/IE1hdGgubWF4KGVuZCwgdGhpcy52YWx1ZVswXSkgOiB0aGlzLnZhbHVlWzFdLFxuICAgICAgICBdO1xuXG4gICAgICAgIGlmICh2YWx1ZVswXSAhPT0gdGhpcy52YWx1ZVswXSB8fCB2YWx1ZVsxXSAhPT0gdGhpcy52YWx1ZVsxXSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
280
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcmFuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LXJhbmdlLyIsInNvdXJjZXMiOlsiaW5wdXQtcmFuZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLFFBQVEsRUFDUixJQUFJLEVBQ0osU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsZUFBZSxFQUNmLGdCQUFnQixFQUNoQiwyQkFBMkIsRUFDM0IsYUFBYSxFQUdiLE9BQU8sR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsWUFBWSxFQUNaLHVCQUF1QixFQUN2QiwwQkFBMEIsRUFDMUIsb0JBQW9CLEVBQ3BCLGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsYUFBYSxFQUNiLGdCQUFnQixHQUNuQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBRTlELFdBQVc7QUFhWDtJQUNZLDBDQUF3QztJQVNoRCxnQ0FJSSxPQUF5QixFQUNFLGlCQUFvQyxFQUc1QyxhQUFzQyxFQUV4QyxRQUFpQixFQUVmLFlBQWtDLEVBRTVDLFVBQWtCO1FBZC9CLFlBZ0JJLGtCQUFNLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxTQUNwQztRQVRzQixtQkFBYSxHQUFiLGFBQWEsQ0FBeUI7UUFFeEMsY0FBUSxHQUFSLFFBQVEsQ0FBUztRQUVmLGtCQUFZLEdBQVosWUFBWSxDQUFzQjtRQUU1QyxnQkFBVSxHQUFWLFVBQVUsQ0FBUTs7SUFHL0IsQ0FBQzsrQkEzQlEsc0JBQXNCO0lBNkIv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REFHL0I7SUFHRDtRQURDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQzs4REFHL0I7SUFHRDtRQURDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQzswREFHN0I7SUE0S0Q7UUFEQyxPQUFPO3VFQUdQO0lBR0Q7UUFEQyxPQUFPO3dFQUdQO0lBN09RLHNCQUFzQjtRQVpsQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsaUJBQWlCO1lBQzNCLDhoSEFBMEM7WUFFMUMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07WUFDL0MsU0FBUyxFQUFFO2dCQUNQO29CQUNJLE9BQU8sRUFBRSwyQkFBMkI7b0JBQ3BDLFdBQVcsRUFBRSxVQUFVLENBQUMsY0FBTSxPQUFBLHdCQUFzQixFQUF0QixDQUFzQixDQUFDO2lCQUN4RDthQUNKOztTQUNKLENBQUM7UUFZTyxXQUFBLFFBQVEsRUFBRSxDQUFBO1FBQ1YsV0FBQSxJQUFJLEVBQUUsQ0FBQTtRQUNOLFdBQUEsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBRWpCLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFDekIsV0FBQSxRQUFRLEVBQUUsQ0FBQTtRQUNWLFdBQUEsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUE7UUFFeEIsV0FBQSxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7UUFFckIsV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUV6QixXQUFBLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO09BdkI1QixzQkFBc0IsQ0F3UWxDO0lBQUQsNkJBQUM7Q0FBQSxBQXhRRCxDQUNZLHNCQUFzQixHQXVRakM7U0F4UVksc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBpc05hdGl2ZUZvY3VzZWQsXG4gICAgc2V0TmF0aXZlRm9jdXNlZCxcbiAgICBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgVFVJX0lTX01PQklMRSxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCxcbiAgICB0dWlQdXJlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgZm9ybWF0TnVtYmVyLFxuICAgIG1hc2tlZE1vbmV5VmFsdWVJc0VtcHR5LFxuICAgIG1hc2tlZE51bWJlclN0cmluZ1RvTnVtYmVyLFxuICAgIE51bWJlckZvcm1hdFNldHRpbmdzLFxuICAgIFRVSV9OVU1CRVJfRk9STUFULFxuICAgIFRVSV9URVhURklFTERfQVBQRUFSQU5DRSxcbiAgICBUdWlCcmlnaHRuZXNzLFxuICAgIFR1aU1vZGVEaXJlY3RpdmUsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7QWJzdHJhY3RUdWlJbnB1dFNsaWRlcn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9hYnN0cmFjdCc7XG5cbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1yYW5nZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LXJhbmdlLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2lucHV0LXJhbmdlLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpSW5wdXRSYW5nZUNvbXBvbmVudCksXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXRSYW5nZUNvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlJbnB1dFNsaWRlcjxbbnVtYmVyLCBudW1iZXJdPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQFZpZXdDaGlsZCgnbmF0aXZlTGVmdCcpXG4gICAgcHJpdmF0ZSByZWFkb25seSBuYXRpdmVMZWZ0PzogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAgIEBWaWV3Q2hpbGQoJ25hdGl2ZVJpZ2h0JylcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5hdGl2ZVJpZ2h0PzogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVHVpTW9kZURpcmVjdGl2ZSlcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IG1vZGVEaXJlY3RpdmU6IFR1aU1vZGVEaXJlY3RpdmUgfCBudWxsLFxuICAgICAgICBASW5qZWN0KFRVSV9JU19NT0JJTEUpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaXNNb2JpbGU6IGJvb2xlYW4sXG4gICAgICAgIEBJbmplY3QoVFVJX05VTUJFUl9GT1JNQVQpXG4gICAgICAgIHByb3RlY3RlZCByZWFkb25seSBudW1iZXJGb3JtYXQ6IE51bWJlckZvcm1hdFNldHRpbmdzLFxuICAgICAgICBASW5qZWN0KFRVSV9URVhURklFTERfQVBQRUFSQU5DRSlcbiAgICAgICAgcmVhZG9ubHkgYXBwZWFyYW5jZTogc3RyaW5nLFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gIXRoaXMubmF0aXZlTGVmdCB8fCB0aGlzLmRpc2FibGVkID8gbnVsbCA6IHRoaXMubmF0aXZlTGVmdC5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mb2N1c2VkTGVmdCB8fCB0aGlzLmZvY3VzZWRSaWdodDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZExlZnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMubmF0aXZlTGVmdCAmJiBpc05hdGl2ZUZvY3VzZWQodGhpcy5uYXRpdmVMZWZ0Lm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkUmlnaHQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMubmF0aXZlUmlnaHQgJiYgaXNOYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlUmlnaHQubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fbWluLWxhYmVsJylcbiAgICBnZXQgc2hvd01pbkxhYmVsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuZm9jdXNlZExlZnQgJiYgISF0aGlzLm1pbkxhYmVsICYmIHRoaXMudmFsdWVbMF0gPT09IHRoaXMubWluO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX21heC1sYWJlbCcpXG4gICAgZ2V0IHNob3dNYXhMYWJlbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmZvY3VzZWRSaWdodCAmJiAhIXRoaXMubWF4TGFiZWwgJiYgdGhpcy52YWx1ZVsxXSA9PT0gdGhpcy5tYXg7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtbW9kZScpXG4gICAgZ2V0IGhvc3RNb2RlKCk6IFR1aUJyaWdodG5lc3MgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZURpcmVjdGl2ZSAmJiB0aGlzLm1vZGVEaXJlY3RpdmUubW9kZTtcbiAgICB9XG5cbiAgICBnZXQgaW5wdXRWYWx1ZUxlZnQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlTGVmdCA/IHRoaXMubmF0aXZlTGVmdC5uYXRpdmVFbGVtZW50LnZhbHVlIDogJyc7XG4gICAgfVxuXG4gICAgZ2V0IGlucHV0VmFsdWVSaWdodCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVSaWdodCA/IHRoaXMubmF0aXZlUmlnaHQubmF0aXZlRWxlbWVudC52YWx1ZSA6ICcnO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZFZhbHVlTGVmdCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlZFB1cmVWYWx1ZUxlZnQodGhpcy52YWx1ZVswXSk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkVmFsdWVSaWdodCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlZFB1cmVWYWx1ZVJpZ2h0KHRoaXMudmFsdWVbMV0pO1xuICAgIH1cblxuICAgIG9uQWN0aXZlWm9uZShhY3RpdmU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGFjdGl2ZSk7XG4gICAgfVxuXG4gICAgb25Nb3VzZURvd24oKSB7XG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZVJpZ2h0ICYmICF0aGlzLmlzTW9iaWxlKSB7XG4gICAgICAgICAgICBzZXROYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlUmlnaHQubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbktleURvd25BcnJvd1VwTGVmdChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5wcm9jZXNzU3RlcCh0cnVlLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgb25LZXlEb3duQXJyb3dEb3duTGVmdChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5wcm9jZXNzU3RlcChmYWxzZSwgZmFsc2UpO1xuICAgIH1cblxuICAgIG9uS2V5RG93bkFycm93VXBSaWdodChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5wcm9jZXNzU3RlcCh0cnVlLCB0cnVlKTtcbiAgICB9XG5cbiAgICBvbktleURvd25BcnJvd0Rvd25SaWdodChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5wcm9jZXNzU3RlcChmYWxzZSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgb25JbnB1dExlZnQoKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5pbnB1dFZhbHVlTGVmdDtcbiAgICAgICAgY29uc3QgY2FwcGVkID0gdGhpcy5jYXBJbnB1dFZhbHVlKHZhbHVlLCB0aGlzLnZhbHVlWzFdKTtcbiAgICAgICAgY29uc3QgcG9zdGZpeCA9IHZhbHVlLnNsaWNlKC0xKVswXSA9PT0gJywnID8gJywnIDogJyc7XG5cbiAgICAgICAgaWYgKG1hc2tlZE1vbmV5VmFsdWVJc0VtcHR5KHZhbHVlKSB8fCBjYXBwZWQgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5mb3JtYXROdW1iZXIoY2FwcGVkKSArIHBvc3RmaXg7XG5cbiAgICAgICAgaWYgKHRoaXMubmF0aXZlTGVmdCAmJiB0aGlzLmlucHV0VmFsdWVMZWZ0ICE9PSBuZXdWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVMZWZ0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoW2NhcHBlZCwgdGhpcy52YWx1ZVsxXV0pO1xuICAgIH1cblxuICAgIG9uSW5wdXRSaWdodCgpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmlucHV0VmFsdWVSaWdodDtcbiAgICAgICAgY29uc3QgY2FwcGVkID0gdGhpcy5jYXBJbnB1dFZhbHVlKHZhbHVlKTtcbiAgICAgICAgY29uc3QgcG9zdGZpeCA9IHZhbHVlLnNsaWNlKC0xKVswXSA9PT0gJywnID8gJywnIDogJyc7XG5cbiAgICAgICAgaWYgKG1hc2tlZE1vbmV5VmFsdWVJc0VtcHR5KHZhbHVlKSB8fCBjYXBwZWQgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5mb3JtYXROdW1iZXIoY2FwcGVkKSArIHBvc3RmaXg7XG5cbiAgICAgICAgaWYgKHRoaXMubmF0aXZlUmlnaHQgJiYgdGhpcy5pbnB1dFZhbHVlUmlnaHQgIT09IG5ld1ZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZVJpZ2h0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjYXBwZWQgPj0gdGhpcy52YWx1ZVswXSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShbdGhpcy52YWx1ZVswXSwgY2FwcGVkXSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblJhbmdlVmFsdWUodmFsdWU6IFtudW1iZXIsIG51bWJlcl0pIHtcbiAgICAgICAgY29uc3QgZ3VhcmRlZFZhbHVlID0gdmFsdWUubWFwKGl0ZW0gPT4gdGhpcy52YWx1ZUd1YXJkKGl0ZW0pKSBhcyBbbnVtYmVyLCBudW1iZXJdO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICF0aGlzLm5hdGl2ZUxlZnQgfHxcbiAgICAgICAgICAgICF0aGlzLm5hdGl2ZVJpZ2h0IHx8XG4gICAgICAgICAgICAoZ3VhcmRlZFZhbHVlWzBdID09PSB0aGlzLnZhbHVlWzBdICYmIGd1YXJkZWRWYWx1ZVsxXSA9PT0gdGhpcy52YWx1ZVsxXSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuaXNNb2JpbGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPVxuICAgICAgICAgICAgICAgIGd1YXJkZWRWYWx1ZVswXSAhPT0gdGhpcy52YWx1ZVswXVxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMubmF0aXZlTGVmdC5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5uYXRpdmVSaWdodC5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgICAgICBzZXROYXRpdmVGb2N1c2VkKGVsZW1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShndWFyZGVkVmFsdWUpO1xuICAgICAgICB0aGlzLm5hdGl2ZUxlZnQubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMuZm9ybWF0TnVtYmVyKGd1YXJkZWRWYWx1ZVswXSk7XG4gICAgfVxuXG4gICAgb25MZWZ0Rm9jdXNlZChmb2N1c2VkOiBib29sZWFuKSB7XG4gICAgICAgIGlmIChmb2N1c2VkIHx8ICF0aGlzLm5hdGl2ZUxlZnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGlucHV0VmFsdWUgPSBtYXNrZWROdW1iZXJTdHJpbmdUb051bWJlcihcbiAgICAgICAgICAgIHRoaXMuY29tcHV0ZWRWYWx1ZUxlZnQsXG4gICAgICAgICAgICB0aGlzLm51bWJlckZvcm1hdC5kZWNpbWFsU2VwYXJhdG9yLFxuICAgICAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQudGhvdXNhbmRTZXBhcmF0b3IsXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gaXNOYU4oaW5wdXRWYWx1ZSkgPyB0aGlzLm1pbiA6IHRoaXMudmFsdWVHdWFyZChpbnB1dFZhbHVlKTtcblxuICAgICAgICB0aGlzLm5hdGl2ZUxlZnQubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMuZm9ybWF0TnVtYmVyKHZhbHVlKTtcblxuICAgICAgICBpZiAodmFsdWUgIT09IHRoaXMudmFsdWVbMF0pIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUoW3ZhbHVlLCB0aGlzLnZhbHVlWzFdXSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblJpZ2h0Rm9jdXNlZChmb2N1c2VkOiBib29sZWFuKSB7XG4gICAgICAgIGlmIChmb2N1c2VkIHx8ICF0aGlzLm5hdGl2ZVJpZ2h0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpbnB1dFZhbHVlID0gbWFza2VkTnVtYmVyU3RyaW5nVG9OdW1iZXIoXG4gICAgICAgICAgICB0aGlzLmNvbXB1dGVkVmFsdWVSaWdodCxcbiAgICAgICAgICAgIHRoaXMubnVtYmVyRm9ybWF0LmRlY2ltYWxTZXBhcmF0b3IsXG4gICAgICAgICAgICB0aGlzLm51bWJlckZvcm1hdC50aG91c2FuZFNlcGFyYXRvcixcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCB2YWx1ZSA9IGlzTmFOKGlucHV0VmFsdWUpXG4gICAgICAgICAgICA/IHRoaXMudmFsdWVbMF1cbiAgICAgICAgICAgIDogdGhpcy52YWx1ZUd1YXJkKE1hdGgubWF4KGlucHV0VmFsdWUsIHRoaXMudmFsdWVbMF0pKTtcblxuICAgICAgICB0aGlzLm5hdGl2ZVJpZ2h0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLmZvcm1hdE51bWJlcih2YWx1ZSk7XG5cbiAgICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLnZhbHVlWzFdKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKFt0aGlzLnZhbHVlWzBdLCB2YWx1ZV0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZhbGxiYWNrVmFsdWUoKTogW251bWJlciwgbnVtYmVyXSB7XG4gICAgICAgIHJldHVybiBbMCwgMF07XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGNvbXB1dGVkUHVyZVZhbHVlTGVmdCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdE51bWJlcih2YWx1ZSk7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGNvbXB1dGVkUHVyZVZhbHVlUmlnaHQodmFsdWU6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXROdW1iZXIodmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9ybWF0TnVtYmVyKHZhbHVlOiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVyKFxuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQuZGVjaW1hbFNlcGFyYXRvcixcbiAgICAgICAgICAgIHRoaXMubnVtYmVyRm9ybWF0LnRob3VzYW5kU2VwYXJhdG9yLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvY2Vzc1N0ZXAoaW5jcmVtZW50OiBib29sZWFuLCByaWdodDogYm9vbGVhbikge1xuICAgICAgICBjb25zdCBzdGFydCA9IHRoaXMudmFsdWVHdWFyZChcbiAgICAgICAgICAgIGluY3JlbWVudCA/IHRoaXMudmFsdWVbMF0gKyB0aGlzLnN0ZXAgOiB0aGlzLnZhbHVlWzBdIC0gdGhpcy5zdGVwLFxuICAgICAgICApO1xuICAgICAgICBjb25zdCBlbmQgPSB0aGlzLnZhbHVlR3VhcmQoXG4gICAgICAgICAgICBpbmNyZW1lbnQgPyB0aGlzLnZhbHVlWzFdICsgdGhpcy5zdGVwIDogdGhpcy52YWx1ZVsxXSAtIHRoaXMuc3RlcCxcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgdmFsdWU6IFtudW1iZXIsIG51bWJlcl0gPSBbXG4gICAgICAgICAgICByaWdodCA/IHRoaXMudmFsdWVbMF0gOiBNYXRoLm1pbihzdGFydCwgdGhpcy52YWx1ZVsxXSksXG4gICAgICAgICAgICByaWdodCA/IE1hdGgubWF4KGVuZCwgdGhpcy52YWx1ZVswXSkgOiB0aGlzLnZhbHVlWzFdLFxuICAgICAgICBdO1xuXG4gICAgICAgIGlmICh2YWx1ZVswXSAhPT0gdGhpcy52YWx1ZVswXSB8fCB2YWx1ZVsxXSAhPT0gdGhpcy52YWx1ZVsxXSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=