@taiga-ui/kit 2.41.0 → 2.43.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 (346) hide show
  1. package/abstract/slider/slider.d.ts +3 -3
  2. package/abstract/taiga-ui-kit-abstract.metadata.json +1 -1
  3. package/bundles/taiga-ui-kit-abstract.umd.js +1 -0
  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.map +1 -1
  8. package/bundles/taiga-ui-kit-components-accordion.umd.min.js.map +1 -1
  9. package/bundles/taiga-ui-kit-components-avatar.umd.js +1 -1
  10. package/bundles/taiga-ui-kit-components-avatar.umd.js.map +1 -1
  11. package/bundles/taiga-ui-kit-components-avatar.umd.min.js +1 -1
  12. package/bundles/taiga-ui-kit-components-avatar.umd.min.js.map +1 -1
  13. package/bundles/taiga-ui-kit-components-combo-box.umd.js +1 -10
  14. package/bundles/taiga-ui-kit-components-combo-box.umd.js.map +1 -1
  15. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js +1 -1
  16. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js.map +1 -1
  17. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js +65 -45
  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 +2 -2
  20. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.min.js.map +1 -1
  21. package/bundles/taiga-ui-kit-components-input-date-time.umd.js +1 -1
  22. package/bundles/taiga-ui-kit-components-input-date-time.umd.js.map +1 -1
  23. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js +1 -1
  24. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js.map +1 -1
  25. package/bundles/taiga-ui-kit-components-input-file.umd.js.map +1 -1
  26. package/bundles/taiga-ui-kit-components-input-file.umd.min.js.map +1 -1
  27. package/bundles/taiga-ui-kit-components-input-files.umd.js.map +1 -1
  28. package/bundles/taiga-ui-kit-components-input-files.umd.min.js.map +1 -1
  29. package/bundles/taiga-ui-kit-components-input-month.umd.js +1 -1
  30. package/bundles/taiga-ui-kit-components-input-month.umd.js.map +1 -1
  31. package/bundles/taiga-ui-kit-components-input-month.umd.min.js +1 -1
  32. package/bundles/taiga-ui-kit-components-input-month.umd.min.js.map +1 -1
  33. package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
  34. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js.map +1 -1
  35. package/bundles/taiga-ui-kit-components-input-range.umd.js.map +1 -1
  36. package/bundles/taiga-ui-kit-components-input-range.umd.min.js.map +1 -1
  37. package/bundles/taiga-ui-kit-components-input-tag.umd.js +8 -7
  38. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  39. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js +1 -1
  40. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js.map +1 -1
  41. package/bundles/taiga-ui-kit-components-input-time.umd.js +1 -1
  42. package/bundles/taiga-ui-kit-components-input-time.umd.js.map +1 -1
  43. package/bundles/taiga-ui-kit-components-input-time.umd.min.js +1 -1
  44. package/bundles/taiga-ui-kit-components-input-time.umd.min.js.map +1 -1
  45. package/bundles/taiga-ui-kit-components-line-clamp.umd.js +7 -94
  46. package/bundles/taiga-ui-kit-components-line-clamp.umd.js.map +1 -1
  47. package/bundles/taiga-ui-kit-components-line-clamp.umd.min.js +2 -2
  48. package/bundles/taiga-ui-kit-components-line-clamp.umd.min.js.map +1 -1
  49. package/bundles/taiga-ui-kit-components-multi-select.umd.js +2 -2
  50. package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
  51. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js +1 -1
  52. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js.map +1 -1
  53. package/bundles/taiga-ui-kit-components-radio-block.umd.js +1 -1
  54. package/bundles/taiga-ui-kit-components-radio-block.umd.js.map +1 -1
  55. package/bundles/taiga-ui-kit-components-radio-block.umd.min.js +1 -1
  56. package/bundles/taiga-ui-kit-components-radio-block.umd.min.js.map +1 -1
  57. package/bundles/taiga-ui-kit-components-radio-labeled.umd.js +1 -1
  58. package/bundles/taiga-ui-kit-components-radio-labeled.umd.js.map +1 -1
  59. package/bundles/taiga-ui-kit-components-radio-labeled.umd.min.js +1 -1
  60. package/bundles/taiga-ui-kit-components-radio-labeled.umd.min.js.map +1 -1
  61. package/bundles/taiga-ui-kit-components-radio.umd.js +4 -2
  62. package/bundles/taiga-ui-kit-components-radio.umd.js.map +1 -1
  63. package/bundles/taiga-ui-kit-components-radio.umd.min.js +1 -1
  64. package/bundles/taiga-ui-kit-components-radio.umd.min.js.map +1 -1
  65. package/bundles/taiga-ui-kit-components-range.umd.js +67 -13
  66. package/bundles/taiga-ui-kit-components-range.umd.js.map +1 -1
  67. package/bundles/taiga-ui-kit-components-range.umd.min.js +2 -2
  68. package/bundles/taiga-ui-kit-components-range.umd.min.js.map +1 -1
  69. package/bundles/taiga-ui-kit-components-select.umd.js +1 -7
  70. package/bundles/taiga-ui-kit-components-select.umd.js.map +1 -1
  71. package/bundles/taiga-ui-kit-components-select.umd.min.js +2 -2
  72. package/bundles/taiga-ui-kit-components-select.umd.min.js.map +1 -1
  73. package/bundles/taiga-ui-kit-components-slider.umd.js +49 -48
  74. package/bundles/taiga-ui-kit-components-slider.umd.js.map +1 -1
  75. package/bundles/taiga-ui-kit-components-slider.umd.min.js +2 -2
  76. package/bundles/taiga-ui-kit-components-slider.umd.min.js.map +1 -1
  77. package/bundles/taiga-ui-kit-components-stepper.umd.js +1 -0
  78. package/bundles/taiga-ui-kit-components-stepper.umd.js.map +1 -1
  79. package/bundles/taiga-ui-kit-components-stepper.umd.min.js +1 -1
  80. package/bundles/taiga-ui-kit-components-stepper.umd.min.js.map +1 -1
  81. package/bundles/taiga-ui-kit-components-tabs.umd.js +6 -4
  82. package/bundles/taiga-ui-kit-components-tabs.umd.js.map +1 -1
  83. package/bundles/taiga-ui-kit-components-tabs.umd.min.js +1 -1
  84. package/bundles/taiga-ui-kit-components-tabs.umd.min.js.map +1 -1
  85. package/bundles/taiga-ui-kit-components-text-area.umd.js +2 -2
  86. package/bundles/taiga-ui-kit-components-text-area.umd.js.map +1 -1
  87. package/bundles/taiga-ui-kit-components-text-area.umd.min.js +1 -1
  88. package/bundles/taiga-ui-kit-components-text-area.umd.min.js.map +1 -1
  89. package/bundles/taiga-ui-kit-components-tree.umd.js +1 -1
  90. package/bundles/taiga-ui-kit-components-tree.umd.js.map +1 -1
  91. package/bundles/taiga-ui-kit-components-tree.umd.min.js +1 -1
  92. package/bundles/taiga-ui-kit-components-tree.umd.min.js.map +1 -1
  93. package/bundles/taiga-ui-kit-directives-dropdown-selection.umd.js.map +1 -1
  94. package/bundles/taiga-ui-kit-directives-dropdown-selection.umd.min.js.map +1 -1
  95. package/bundles/taiga-ui-kit-enums.umd.js +2 -2
  96. package/bundles/taiga-ui-kit-enums.umd.js.map +1 -1
  97. package/bundles/taiga-ui-kit-enums.umd.min.js.map +1 -1
  98. package/bundles/taiga-ui-kit-tokens.umd.js +1 -1
  99. package/bundles/taiga-ui-kit-tokens.umd.js.map +1 -1
  100. package/bundles/taiga-ui-kit-tokens.umd.min.js +1 -1
  101. package/bundles/taiga-ui-kit-tokens.umd.min.js.map +1 -1
  102. package/bundles/taiga-ui-kit-utils-math.umd.js +253 -4
  103. package/bundles/taiga-ui-kit-utils-math.umd.js.map +1 -1
  104. package/bundles/taiga-ui-kit-utils-math.umd.min.js +15 -1
  105. package/bundles/taiga-ui-kit-utils-math.umd.min.js.map +1 -1
  106. package/bundles/taiga-ui-kit-utils.umd.js +12 -4
  107. package/bundles/taiga-ui-kit-utils.umd.js.map +1 -1
  108. package/bundles/taiga-ui-kit-utils.umd.min.js +1 -1
  109. package/components/accordion/accordion-item/accordion-item.component.d.ts +2 -2
  110. package/components/avatar/taiga-ui-kit-components-avatar.metadata.json +1 -1
  111. package/components/combo-box/combo-box.component.d.ts +1 -2
  112. package/components/combo-box/taiga-ui-kit-components-combo-box.metadata.json +1 -1
  113. package/components/data-list-wrapper/data-list-group-wrapper.component.d.ts +5 -4
  114. package/components/data-list-wrapper/data-list-wrapper.component.d.ts +3 -13
  115. package/components/data-list-wrapper/data-list-wrapper.d.ts +15 -0
  116. package/components/data-list-wrapper/index.d.ts +1 -0
  117. package/components/data-list-wrapper/taiga-ui-kit-components-data-list-wrapper.metadata.json +1 -1
  118. package/components/input-date-time/taiga-ui-kit-components-input-date-time.metadata.json +1 -1
  119. package/components/input-file/file/file.component.d.ts +2 -2
  120. package/components/input-month/taiga-ui-kit-components-input-month.metadata.json +1 -1
  121. package/components/input-phone/input-phone.component.d.ts +2 -2
  122. package/components/input-range/input-range.component.d.ts +1 -1
  123. package/components/input-tag/input-tag.component.d.ts +3 -6
  124. package/components/input-tag/taiga-ui-kit-components-input-tag.metadata.json +1 -1
  125. package/components/input-time/input-time.component.d.ts +2 -2
  126. package/components/input-time/taiga-ui-kit-components-input-time.metadata.json +1 -1
  127. package/components/line-clamp/index.d.ts +0 -1
  128. package/components/line-clamp/line-clamp.component.d.ts +0 -1
  129. package/components/line-clamp/taiga-ui-kit-components-line-clamp.metadata.json +1 -1
  130. package/components/multi-select/multi-select.component.d.ts +2 -2
  131. package/components/multi-select/taiga-ui-kit-components-multi-select.metadata.json +1 -1
  132. package/components/radio/radio.component.d.ts +2 -2
  133. package/components/radio-block/taiga-ui-kit-components-radio-block.metadata.json +1 -1
  134. package/components/radio-labeled/taiga-ui-kit-components-radio-labeled.metadata.json +1 -1
  135. package/components/range/range.component.d.ts +11 -2
  136. package/components/range/taiga-ui-kit-components-range.metadata.json +1 -1
  137. package/components/select/select.component.d.ts +0 -1
  138. package/components/select/taiga-ui-kit-components-select.metadata.json +1 -1
  139. package/components/slider/slider-readonly.directive.d.ts +4 -1
  140. package/components/slider/taiga-ui-kit-components-slider.metadata.json +1 -1
  141. package/components/stepper/taiga-ui-kit-components-stepper.metadata.json +1 -1
  142. package/components/tabs/tabs-with-more/tabs-with-more.component.d.ts +2 -2
  143. package/components/tabs/taiga-ui-kit-components-tabs.metadata.json +1 -1
  144. package/components/text-area/taiga-ui-kit-components-text-area.metadata.json +1 -1
  145. package/components/tree/taiga-ui-kit-components-tree.metadata.json +1 -1
  146. package/directives/dropdown-selection/dropdown-selection.directive.d.ts +1 -1
  147. package/enums/dropdown-position.d.ts +2 -1
  148. package/enums/step-state.d.ts +2 -1
  149. package/enums/taiga-ui-kit-enums.metadata.json +1 -1
  150. package/esm2015/abstract/slider/slider.js +3 -2
  151. package/esm2015/components/accordion/accordion-item/accordion-item.component.js +1 -1
  152. package/esm2015/components/avatar/avatar.component.js +2 -2
  153. package/esm2015/components/combo-box/combo-box.component.js +3 -12
  154. package/esm2015/components/data-list-wrapper/data-list-group-wrapper.component.js +15 -10
  155. package/esm2015/components/data-list-wrapper/data-list-wrapper.component.js +7 -40
  156. package/esm2015/components/data-list-wrapper/data-list-wrapper.js +51 -0
  157. package/esm2015/components/data-list-wrapper/index.js +2 -1
  158. package/esm2015/components/input-date-time/input-date-time.component.js +2 -2
  159. package/esm2015/components/input-file/file/file.component.js +1 -1
  160. package/esm2015/components/input-files/input-files.component.js +1 -1
  161. package/esm2015/components/input-month/input-month.component.js +2 -2
  162. package/esm2015/components/input-phone/input-phone.component.js +1 -1
  163. package/esm2015/components/input-range/input-range.component.js +1 -1
  164. package/esm2015/components/input-tag/input-tag.component.js +9 -8
  165. package/esm2015/components/input-time/input-time.component.js +2 -2
  166. package/esm2015/components/line-clamp/index.js +1 -2
  167. package/esm2015/components/line-clamp/line-clamp.component.js +3 -6
  168. package/esm2015/components/line-clamp/line-clamp.module.js +2 -3
  169. package/esm2015/components/multi-select/multi-select-group/multi-select-group.component.js +2 -2
  170. package/esm2015/components/multi-select/multi-select.component.js +2 -2
  171. package/esm2015/components/radio/radio.component.js +5 -3
  172. package/esm2015/components/radio-block/radio-block.component.js +2 -2
  173. package/esm2015/components/radio-labeled/radio-labeled.component.js +2 -2
  174. package/esm2015/components/range/range.component.js +70 -13
  175. package/esm2015/components/select/select.component.js +3 -9
  176. package/esm2015/components/slider/slider-key-steps.directive.js +9 -28
  177. package/esm2015/components/slider/slider-readonly.directive.js +38 -9
  178. package/esm2015/components/stepper/stepper.component.js +3 -2
  179. package/esm2015/components/tabs/tabs-with-more/tabs-with-more.component.js +8 -6
  180. package/esm2015/components/text-area/text-area.component.js +3 -3
  181. package/esm2015/components/tree/components/tree/tree.component.js +2 -2
  182. package/esm2015/directives/dropdown-selection/dropdown-selection.directive.js +1 -1
  183. package/esm2015/enums/dropdown-position.js +2 -2
  184. package/esm2015/enums/step-state.js +2 -2
  185. package/esm2015/tokens/i18n.js +2 -2
  186. package/esm2015/utils/index.js +2 -1
  187. package/esm2015/utils/math/index.js +2 -1
  188. package/esm2015/utils/math/key-steps.js +23 -0
  189. package/esm5/abstract/slider/slider.js +3 -2
  190. package/esm5/components/accordion/accordion-item/accordion-item.component.js +1 -1
  191. package/esm5/components/avatar/avatar.component.js +2 -2
  192. package/esm5/components/combo-box/combo-box.component.js +3 -12
  193. package/esm5/components/data-list-wrapper/data-list-group-wrapper.component.js +15 -10
  194. package/esm5/components/data-list-wrapper/data-list-wrapper.component.js +12 -55
  195. package/esm5/components/data-list-wrapper/data-list-wrapper.js +64 -0
  196. package/esm5/components/data-list-wrapper/index.js +2 -1
  197. package/esm5/components/input-date-time/input-date-time.component.js +2 -2
  198. package/esm5/components/input-file/file/file.component.js +1 -1
  199. package/esm5/components/input-files/input-files.component.js +1 -1
  200. package/esm5/components/input-month/input-month.component.js +2 -2
  201. package/esm5/components/input-phone/input-phone.component.js +1 -1
  202. package/esm5/components/input-range/input-range.component.js +1 -1
  203. package/esm5/components/input-tag/input-tag.component.js +9 -8
  204. package/esm5/components/input-time/input-time.component.js +2 -2
  205. package/esm5/components/line-clamp/index.js +1 -2
  206. package/esm5/components/line-clamp/line-clamp.component.js +3 -10
  207. package/esm5/components/line-clamp/line-clamp.module.js +2 -3
  208. package/esm5/components/multi-select/multi-select-group/multi-select-group.component.js +2 -2
  209. package/esm5/components/multi-select/multi-select.component.js +2 -2
  210. package/esm5/components/radio/radio.component.js +5 -3
  211. package/esm5/components/radio-block/radio-block.component.js +2 -2
  212. package/esm5/components/radio-labeled/radio-labeled.component.js +2 -2
  213. package/esm5/components/range/range.component.js +68 -12
  214. package/esm5/components/select/select.component.js +3 -9
  215. package/esm5/components/slider/slider-key-steps.directive.js +11 -43
  216. package/esm5/components/slider/slider-readonly.directive.js +45 -9
  217. package/esm5/components/stepper/stepper.component.js +3 -2
  218. package/esm5/components/tabs/tabs-with-more/tabs-with-more.component.js +8 -6
  219. package/esm5/components/text-area/text-area.component.js +3 -3
  220. package/esm5/components/tree/components/tree/tree.component.js +2 -2
  221. package/esm5/directives/dropdown-selection/dropdown-selection.directive.js +1 -1
  222. package/esm5/enums/dropdown-position.js +2 -2
  223. package/esm5/enums/step-state.js +2 -2
  224. package/esm5/tokens/i18n.js +2 -2
  225. package/esm5/utils/index.js +2 -1
  226. package/esm5/utils/math/index.js +2 -1
  227. package/esm5/utils/math/key-steps.js +30 -0
  228. package/fesm2015/taiga-ui-kit-abstract.js +2 -1
  229. package/fesm2015/taiga-ui-kit-abstract.js.map +1 -1
  230. package/fesm2015/taiga-ui-kit-components-accordion.js.map +1 -1
  231. package/fesm2015/taiga-ui-kit-components-avatar.js +1 -1
  232. package/fesm2015/taiga-ui-kit-components-avatar.js.map +1 -1
  233. package/fesm2015/taiga-ui-kit-components-combo-box.js +2 -11
  234. package/fesm2015/taiga-ui-kit-components-combo-box.js.map +1 -1
  235. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js +56 -38
  236. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  237. package/fesm2015/taiga-ui-kit-components-input-date-time.js +1 -1
  238. package/fesm2015/taiga-ui-kit-components-input-date-time.js.map +1 -1
  239. package/fesm2015/taiga-ui-kit-components-input-file.js.map +1 -1
  240. package/fesm2015/taiga-ui-kit-components-input-files.js.map +1 -1
  241. package/fesm2015/taiga-ui-kit-components-input-month.js +1 -1
  242. package/fesm2015/taiga-ui-kit-components-input-month.js.map +1 -1
  243. package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
  244. package/fesm2015/taiga-ui-kit-components-input-range.js.map +1 -1
  245. package/fesm2015/taiga-ui-kit-components-input-tag.js +8 -7
  246. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  247. package/fesm2015/taiga-ui-kit-components-input-time.js +1 -1
  248. package/fesm2015/taiga-ui-kit-components-input-time.js.map +1 -1
  249. package/fesm2015/taiga-ui-kit-components-line-clamp.js +9 -91
  250. package/fesm2015/taiga-ui-kit-components-line-clamp.js.map +1 -1
  251. package/fesm2015/taiga-ui-kit-components-multi-select.js +2 -2
  252. package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
  253. package/fesm2015/taiga-ui-kit-components-radio-block.js +1 -1
  254. package/fesm2015/taiga-ui-kit-components-radio-block.js.map +1 -1
  255. package/fesm2015/taiga-ui-kit-components-radio-labeled.js +1 -1
  256. package/fesm2015/taiga-ui-kit-components-radio-labeled.js.map +1 -1
  257. package/fesm2015/taiga-ui-kit-components-radio.js +4 -2
  258. package/fesm2015/taiga-ui-kit-components-radio.js.map +1 -1
  259. package/fesm2015/taiga-ui-kit-components-range.js +70 -14
  260. package/fesm2015/taiga-ui-kit-components-range.js.map +1 -1
  261. package/fesm2015/taiga-ui-kit-components-select.js +2 -8
  262. package/fesm2015/taiga-ui-kit-components-select.js.map +1 -1
  263. package/fesm2015/taiga-ui-kit-components-slider.js +41 -34
  264. package/fesm2015/taiga-ui-kit-components-slider.js.map +1 -1
  265. package/fesm2015/taiga-ui-kit-components-stepper.js +2 -1
  266. package/fesm2015/taiga-ui-kit-components-stepper.js.map +1 -1
  267. package/fesm2015/taiga-ui-kit-components-tabs.js +7 -5
  268. package/fesm2015/taiga-ui-kit-components-tabs.js.map +1 -1
  269. package/fesm2015/taiga-ui-kit-components-text-area.js +2 -2
  270. package/fesm2015/taiga-ui-kit-components-text-area.js.map +1 -1
  271. package/fesm2015/taiga-ui-kit-components-tree.js +1 -1
  272. package/fesm2015/taiga-ui-kit-components-tree.js.map +1 -1
  273. package/fesm2015/taiga-ui-kit-directives-dropdown-selection.js.map +1 -1
  274. package/fesm2015/taiga-ui-kit-enums.js +2 -2
  275. package/fesm2015/taiga-ui-kit-enums.js.map +1 -1
  276. package/fesm2015/taiga-ui-kit-tokens.js +1 -1
  277. package/fesm2015/taiga-ui-kit-tokens.js.map +1 -1
  278. package/fesm2015/taiga-ui-kit-utils-math.js +25 -1
  279. package/fesm2015/taiga-ui-kit-utils-math.js.map +1 -1
  280. package/fesm2015/taiga-ui-kit-utils.js +1 -0
  281. package/fesm2015/taiga-ui-kit-utils.js.map +1 -1
  282. package/fesm5/taiga-ui-kit-abstract.js +2 -1
  283. package/fesm5/taiga-ui-kit-abstract.js.map +1 -1
  284. package/fesm5/taiga-ui-kit-components-accordion.js.map +1 -1
  285. package/fesm5/taiga-ui-kit-components-avatar.js +1 -1
  286. package/fesm5/taiga-ui-kit-components-avatar.js.map +1 -1
  287. package/fesm5/taiga-ui-kit-components-combo-box.js +2 -11
  288. package/fesm5/taiga-ui-kit-components-combo-box.js.map +1 -1
  289. package/fesm5/taiga-ui-kit-components-data-list-wrapper.js +66 -45
  290. package/fesm5/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  291. package/fesm5/taiga-ui-kit-components-input-date-time.js +1 -1
  292. package/fesm5/taiga-ui-kit-components-input-date-time.js.map +1 -1
  293. package/fesm5/taiga-ui-kit-components-input-file.js.map +1 -1
  294. package/fesm5/taiga-ui-kit-components-input-files.js.map +1 -1
  295. package/fesm5/taiga-ui-kit-components-input-month.js +1 -1
  296. package/fesm5/taiga-ui-kit-components-input-month.js.map +1 -1
  297. package/fesm5/taiga-ui-kit-components-input-phone.js.map +1 -1
  298. package/fesm5/taiga-ui-kit-components-input-range.js.map +1 -1
  299. package/fesm5/taiga-ui-kit-components-input-tag.js +8 -7
  300. package/fesm5/taiga-ui-kit-components-input-tag.js.map +1 -1
  301. package/fesm5/taiga-ui-kit-components-input-time.js +1 -1
  302. package/fesm5/taiga-ui-kit-components-input-time.js.map +1 -1
  303. package/fesm5/taiga-ui-kit-components-line-clamp.js +9 -97
  304. package/fesm5/taiga-ui-kit-components-line-clamp.js.map +1 -1
  305. package/fesm5/taiga-ui-kit-components-multi-select.js +2 -2
  306. package/fesm5/taiga-ui-kit-components-multi-select.js.map +1 -1
  307. package/fesm5/taiga-ui-kit-components-radio-block.js +1 -1
  308. package/fesm5/taiga-ui-kit-components-radio-block.js.map +1 -1
  309. package/fesm5/taiga-ui-kit-components-radio-labeled.js +1 -1
  310. package/fesm5/taiga-ui-kit-components-radio-labeled.js.map +1 -1
  311. package/fesm5/taiga-ui-kit-components-radio.js +4 -2
  312. package/fesm5/taiga-ui-kit-components-radio.js.map +1 -1
  313. package/fesm5/taiga-ui-kit-components-range.js +68 -13
  314. package/fesm5/taiga-ui-kit-components-range.js.map +1 -1
  315. package/fesm5/taiga-ui-kit-components-select.js +2 -8
  316. package/fesm5/taiga-ui-kit-components-select.js.map +1 -1
  317. package/fesm5/taiga-ui-kit-components-slider.js +49 -48
  318. package/fesm5/taiga-ui-kit-components-slider.js.map +1 -1
  319. package/fesm5/taiga-ui-kit-components-stepper.js +2 -1
  320. package/fesm5/taiga-ui-kit-components-stepper.js.map +1 -1
  321. package/fesm5/taiga-ui-kit-components-tabs.js +7 -5
  322. package/fesm5/taiga-ui-kit-components-tabs.js.map +1 -1
  323. package/fesm5/taiga-ui-kit-components-text-area.js +2 -2
  324. package/fesm5/taiga-ui-kit-components-text-area.js.map +1 -1
  325. package/fesm5/taiga-ui-kit-components-tree.js +1 -1
  326. package/fesm5/taiga-ui-kit-components-tree.js.map +1 -1
  327. package/fesm5/taiga-ui-kit-directives-dropdown-selection.js.map +1 -1
  328. package/fesm5/taiga-ui-kit-enums.js +2 -2
  329. package/fesm5/taiga-ui-kit-enums.js.map +1 -1
  330. package/fesm5/taiga-ui-kit-tokens.js +1 -1
  331. package/fesm5/taiga-ui-kit-tokens.js.map +1 -1
  332. package/fesm5/taiga-ui-kit-utils-math.js +32 -1
  333. package/fesm5/taiga-ui-kit-utils-math.js.map +1 -1
  334. package/fesm5/taiga-ui-kit-utils.js +1 -0
  335. package/fesm5/taiga-ui-kit-utils.js.map +1 -1
  336. package/package.json +7 -7
  337. package/tokens/i18n.d.ts +1 -5
  338. package/tokens/taiga-ui-kit-tokens.metadata.json +1 -1
  339. package/utils/index.d.ts +1 -0
  340. package/utils/math/index.d.ts +1 -0
  341. package/utils/math/key-steps.d.ts +4 -0
  342. package/utils/math/taiga-ui-kit-utils-math.metadata.json +1 -1
  343. package/utils/taiga-ui-kit-utils.metadata.json +1 -1
  344. package/components/line-clamp/line-clamp.directive.d.ts +0 -11
  345. package/esm2015/components/line-clamp/line-clamp.directive.js +0 -87
  346. package/esm5/components/line-clamp/line-clamp.directive.js +0 -89
@@ -3,10 +3,12 @@ import { __decorate, __param } from "tslib";
3
3
  import { DOCUMENT } from '@angular/common';
4
4
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Directive, ElementRef, forwardRef, HostBinding, HostListener, Inject, Input, Optional, QueryList, Self, ViewChildren, } from '@angular/core';
5
5
  import { NgControl } from '@angular/forms';
6
- import { EMPTY_QUERY, isNativeFocusedIn, nonNegativeFiniteAssertion, TUI_FOCUSABLE_ITEM_ACCESSOR, tuiDefaultProp, tuiPure, } from '@taiga-ui/cdk';
7
- import { AbstractTuiSlider } from '@taiga-ui/kit/abstract';
6
+ import { clamp, EMPTY_QUERY, isNativeFocusedIn, nonNegativeFiniteAssertion, quantize, round, TUI_FOCUSABLE_ITEM_ACCESSOR, tuiAssert, tuiDefaultProp, tuiPure, } from '@taiga-ui/cdk';
7
+ import { AbstractTuiSlider, SLIDER_KEYBOARD_STEP } from '@taiga-ui/kit/abstract';
8
8
  import { TuiSliderComponent } from '@taiga-ui/kit/components/slider';
9
+ import { TUI_FLOATING_PRECISION } from '@taiga-ui/kit/constants';
9
10
  import { TUI_FROM_TO_TEXTS } from '@taiga-ui/kit/tokens';
11
+ import { tuiCheckKeyStepsHaveMinMaxPercents, tuiKeyStepValueToPercentage, tuiPercentageToKeyStepValue, } from '@taiga-ui/kit/utils';
10
12
  import { Observable } from 'rxjs';
11
13
  /**
12
14
  * Turn on new mode for `Range` and `InputRange`.
@@ -22,7 +24,12 @@ TuiNewRangeDirective = __decorate([
22
24
  ], TuiNewRangeDirective);
23
25
  export { TuiNewRangeDirective };
24
26
  // @dynamic
25
- let TuiRangeComponent = TuiRangeComponent_1 = class TuiRangeComponent extends AbstractTuiSlider {
27
+ let TuiRangeComponent = TuiRangeComponent_1 =
28
+ /**
29
+ * `AbstractTuiSlider` includes all legacy code (it can be deleted in v3.0)
30
+ * TODO replace `extends AbstractTuiSlider<[number, number]>` by `extends AbstractTuiControl<[number, number]> implements TuiWithOptionalMinMax<number>, TuiFocusableElementAccessor`
31
+ */
32
+ class TuiRangeComponent extends AbstractTuiSlider {
26
33
  constructor(control, changeDetectorRef, documentRef, elementRef, fromToTexts$, isNew) {
27
34
  super(control, changeDetectorRef, documentRef, fromToTexts$);
28
35
  this.elementRef = elementRef;
@@ -34,14 +41,17 @@ let TuiRangeComponent = TuiRangeComponent_1 = class TuiRangeComponent extends Ab
34
41
  this.max = Infinity;
35
42
  /**
36
43
  * TODO: think about replacing this props by `step` (to be like native slider).
37
- * It can be easy after refactor of keySteps.
44
+ * It can be done after removing backward compatibility code inside {@link computePureKeySteps} in v3.0
38
45
  */
39
46
  this.steps = 0;
40
47
  /**
41
48
  * TODO: think about replacing this props by `step` (to be like native slider).
42
- * It can be easy after refactor of keySteps.
49
+ * It can be done after removing backward compatibility code inside {@link computePureKeySteps} in v3.0
43
50
  * */
44
51
  this.quantum = 0;
52
+ this.size = 'm';
53
+ this.segments = 0;
54
+ this.keySteps = null;
45
55
  this.slidersRefs = EMPTY_QUERY;
46
56
  this.lastActiveThumb = 'right';
47
57
  }
@@ -57,14 +67,20 @@ let TuiRangeComponent = TuiRangeComponent_1 = class TuiRangeComponent extends Ab
57
67
  get focused() {
58
68
  return isNativeFocusedIn(this.elementRef.nativeElement);
59
69
  }
70
+ get fractionStep() {
71
+ if (this.steps) {
72
+ return 1 / this.steps;
73
+ }
74
+ return this.quantum ? this.quantum / (this.max - this.min) : SLIDER_KEYBOARD_STEP;
75
+ }
60
76
  get computedKeySteps() {
61
77
  return this.computePureKeySteps(this.keySteps, this.min, this.max);
62
78
  }
63
79
  get left() {
64
- return 100 * this.getFractionFromValue(this.value[0]);
80
+ return this.getPercentageFromValue(this.value[0]);
65
81
  }
66
82
  get right() {
67
- return 100 - 100 * this.getFractionFromValue(this.value[1]);
83
+ return 100 - this.getPercentageFromValue(this.value[1]);
68
84
  }
69
85
  onFocused(focused) {
70
86
  this.updateFocused(focused);
@@ -79,8 +95,8 @@ let TuiRangeComponent = TuiRangeComponent_1 = class TuiRangeComponent extends Ab
79
95
  const activeThumbElement = isRightThumb ? rightThumbElement : leftThumbElement;
80
96
  const previousValue = isRightThumb ? this.value[1] : this.value[0];
81
97
  /** @bad TODO think about a solution without twice conversion */
82
- const previousFraction = this.getFractionFromValue(previousValue);
83
- const newFractionValue = previousFraction + coefficient * this.computedStep;
98
+ const previousFraction = this.getPercentageFromValue(previousValue) / 100;
99
+ const newFractionValue = previousFraction + coefficient * this.fractionStep;
84
100
  this.processValue(this.getValueFromFraction(newFractionValue), isRightThumb);
85
101
  if (activeThumbElement) {
86
102
  activeThumbElement.focus();
@@ -96,10 +112,33 @@ let TuiRangeComponent = TuiRangeComponent_1 = class TuiRangeComponent extends Ab
96
112
  }
97
113
  this.lastActiveThumb = right ? 'right' : 'left';
98
114
  }
115
+ fractionGuard(fraction) {
116
+ return clamp(quantize(fraction, this.fractionStep), 0, 1);
117
+ }
118
+ getValueFromFraction(fraction) {
119
+ const percentage = this.fractionGuard(fraction) * 100;
120
+ return tuiPercentageToKeyStepValue(percentage, this.computedKeySteps);
121
+ }
122
+ getPercentageFromValue(value) {
123
+ return tuiKeyStepValueToPercentage(value, this.computedKeySteps);
124
+ }
125
+ valueGuard(value) {
126
+ return clamp(this.quantum
127
+ ? round(Math.round(value / this.quantum) * this.quantum, TUI_FLOATING_PRECISION)
128
+ : value, this.min, this.max);
129
+ }
99
130
  getFallbackValue() {
100
131
  return [0, 0];
101
132
  }
102
133
  computePureKeySteps(keySteps, min, max) {
134
+ if (keySteps && tuiCheckKeyStepsHaveMinMaxPercents(keySteps)) {
135
+ return keySteps;
136
+ }
137
+ // TODO replace all function by `return keySteps || [[0, min], [100, max]]` in v3.0
138
+ tuiAssert.assert(!keySteps, '\n' +
139
+ 'Input property [keySteps] should contain min and max percents.\n' +
140
+ 'We have taken [min] and [max] properties of your component for now (but it will not work in v3.0).\n' +
141
+ 'See example how properly use [keySteps]: https://taiga-ui.dev/components/range#key-steps');
103
142
  return [[0, min], ...(keySteps || []), [100, max]];
104
143
  }
105
144
  updateStart(value) {
@@ -133,6 +172,19 @@ __decorate([
133
172
  Input(),
134
173
  tuiDefaultProp(nonNegativeFiniteAssertion, 'Quantum must be a non-negative number')
135
174
  ], TuiRangeComponent.prototype, "quantum", void 0);
175
+ __decorate([
176
+ Input(),
177
+ HostBinding('attr.data-size'),
178
+ tuiDefaultProp()
179
+ ], TuiRangeComponent.prototype, "size", void 0);
180
+ __decorate([
181
+ Input(),
182
+ tuiDefaultProp()
183
+ ], TuiRangeComponent.prototype, "segments", void 0);
184
+ __decorate([
185
+ Input(),
186
+ tuiDefaultProp()
187
+ ], TuiRangeComponent.prototype, "keySteps", void 0);
136
188
  __decorate([
137
189
  ViewChildren(TuiSliderComponent, { read: ElementRef })
138
190
  ], TuiRangeComponent.prototype, "slidersRefs", void 0);
@@ -158,7 +210,7 @@ __decorate([
158
210
  TuiRangeComponent = TuiRangeComponent_1 = __decorate([
159
211
  Component({
160
212
  selector: 'tui-range',
161
- template: "<div class=\"track\">\n <input\n tuiSlider\n readonly\n type=\"range\"\n step=\"any\"\n automation-id=\"tui-range__left\"\n class=\"thumb\"\n [min]=\"min\"\n [max]=\"max\"\n [ngModel]=\"value[0]\"\n [size]=\"size\"\n [keySteps]=\"computedKeySteps\"\n [tuiFocusable]=\"focusable\"\n [attr.disabled]=\"computedDisabled || null\"\n />\n <input\n tuiSlider\n readonly\n type=\"range\"\n step=\"any\"\n automation-id=\"tui-range__right\"\n class=\"thumb\"\n [min]=\"min\"\n [max]=\"max\"\n [ngModel]=\"value[1]\"\n [size]=\"size\"\n [keySteps]=\"computedKeySteps\"\n [tuiFocusable]=\"focusable\"\n [attr.disabled]=\"computedDisabled || null\"\n />\n</div>\n\n<!-- TODO backward compatibility only (remove in v3.0) -->\n<div\n *ngIf=\"segmented\"\n class=\"segments\"\n>\n <span\n *tuiRepeatTimes=\"let tickIndex of segments + 1\"\n automation-id=\"tui-slider__segment\"\n class=\"segment\"\n >\n <ng-container *ngIf=\"fromToTexts$ | async as fromToText\">\n <span\n *ngIf=\"!isNew\"\n class=\"number\"\n >\n {{ getSegmentPrefix(tickIndex, fromToText) }} {{ tickIndex |\n tuiSliderTickLabel:segments:computedKeySteps | tuiFormatNumber\n }}\n <span *ngIf=\"pluralizeMap\">\n {{ tickIndex | tuiSliderTickLabel:segments:computedKeySteps\n | i18nPlural: pluralizeMap }}\n </span>\n </span>\n </ng-container>\n </span>\n</div>\n",
213
+ template: "<div class=\"track\">\n <input\n tuiSlider\n readonly\n type=\"range\"\n step=\"any\"\n automation-id=\"tui-range__left\"\n class=\"thumb\"\n [min]=\"min\"\n [max]=\"max\"\n [ngModel]=\"value[0]\"\n [size]=\"size\"\n [keySteps]=\"computedKeySteps\"\n [tuiFocusable]=\"focusable\"\n [attr.disabled]=\"computedDisabled || null\"\n />\n <input\n tuiSlider\n readonly\n type=\"range\"\n step=\"any\"\n automation-id=\"tui-range__right\"\n class=\"thumb\"\n [min]=\"min\"\n [max]=\"max\"\n [ngModel]=\"value[1]\"\n [size]=\"size\"\n [keySteps]=\"computedKeySteps\"\n [tuiFocusable]=\"focusable\"\n [attr.disabled]=\"computedDisabled || null\"\n />\n</div>\n\n<!-- TODO backward compatibility only (remove in v3.0) -->\n<div\n *ngIf=\"segments > 0\"\n class=\"segments\"\n>\n <span\n *tuiRepeatTimes=\"let tickIndex of segments + 1\"\n automation-id=\"tui-slider__segment\"\n class=\"segment\"\n >\n <ng-container *ngIf=\"fromToTexts$ | async as fromToText\">\n <span\n *ngIf=\"!isNew\"\n class=\"number\"\n >\n {{ getSegmentPrefix(tickIndex, fromToText) }} {{ tickIndex |\n tuiSliderTickLabel:segments:computedKeySteps | tuiFormatNumber\n }}\n <span *ngIf=\"pluralizeMap\">\n {{ tickIndex | tuiSliderTickLabel:segments:computedKeySteps\n | i18nPlural: pluralizeMap }}\n </span>\n </span>\n </ng-container>\n </span>\n</div>\n",
162
214
  changeDetection: ChangeDetectionStrategy.OnPush,
163
215
  host: {
164
216
  '[attr.tabindex]': '-1',
@@ -170,8 +222,13 @@ TuiRangeComponent = TuiRangeComponent_1 = __decorate([
170
222
  useExisting: forwardRef(() => TuiRangeComponent_1),
171
223
  },
172
224
  ],
173
- styles: [":host{position:relative;display:block;height:.125rem;border-radius:var(--tui-radius-m);background:var(--tui-base-03);cursor:pointer;outline:0;margin:.4375rem 0}:host:active{cursor:ew-resize}:host:after{content:'';position:absolute;top:-.4375rem;bottom:-.4375rem;width:100%}:host._disabled{opacity:var(--tui-disabled-opacity);cursor:auto}:host[data-size='s'] .track{position:relative;margin:0 .25rem;height:100%}:host[data-size='s'] .track:after{content:'';position:absolute;top:0;left:var(--left);right:var(--right);height:100%;background:var(--tui-primary);margin:0 -.25rem}:host[data-size='m'] .track{position:relative;margin:0 .5rem;height:100%}:host[data-size='m'] .track:after{content:'';position:absolute;top:0;left:var(--left);right:var(--right);height:100%;background:var(--tui-primary);margin:0 -.5rem}.thumb{pointer-events:none;position:absolute;top:.0625rem;left:0;right:0;z-index:1;transform:translate(0,-50%)}.thumb::-webkit-slider-thumb{pointer-events:all}.thumb::-moz-range-thumb{pointer-events:all}input[type=range].thumb::-webkit-slider-runnable-track{background:0 0}input[type=range].thumb::-moz-range-track{background:0 0}input[type=range].thumb::-moz-range-progress{background:0 0}input[type=range].thumb::-ms-track{background:0 0}input[type=range].thumb::-ms-fill-lower{background:0 0}.thumb:last-of-type::-webkit-slider-thumb{transform:translate(50%,0)}.thumb:first-of-type::-webkit-slider-thumb{transform:translate(-50%,0)}.thumb:last-of-type::-moz-range-thumb{transform:translate(50%,0)}.thumb:first-of-type::-moz-range-thumb{transform:translate(-50%,0)}:host._disabled .thumb{opacity:1}.segments{position:absolute;top:0;left:0;bottom:0;right:0}:host[data-size='s'] .segments{display:flex;margin:0 .25rem;font:var(--tui-font-text-s);padding:0 .25rem}:host[data-size='s'] .segments>*{position:relative;flex:2;text-align:center}:host[data-size='s'] .segments>:first-child{left:-.25rem;flex:1;text-align:left}:host[data-size='s'] .segments>:last-child{right:-.25rem;flex:1;text-align:right}tui-input-slider+:host[data-size='s'] .segments{margin-left:calc(var(--tui-radius-m)/ 2 + .25rem)}tui-input-range+:host[data-size='s'] .segments,tui-range+:host[data-size='s'] .segments{margin-left:.5rem;margin-right:.5rem}tui-input-range+:host[data-size='s'] .segments>:first-child,tui-range+:host[data-size='s'] .segments>:first-child{left:-.5rem}tui-input-range+:host[data-size='s'] .segments>:last-child,tui-range+:host[data-size='s'] .segments>:last-child{right:-.5rem}:host[data-size='m'] .segments{display:flex;margin:0 .5rem;font:var(--tui-font-text-s);padding:0 .5rem}:host[data-size='m'] .segments>*{position:relative;flex:2;text-align:center}:host[data-size='m'] .segments>:first-child{left:-.5rem;flex:1;text-align:left}:host[data-size='m'] .segments>:last-child{right:-.5rem;flex:1;text-align:right}tui-input-slider+:host[data-size='m'] .segments{margin-left:calc(var(--tui-radius-m)/ 2 + .5rem)}tui-input-range+:host[data-size='m'] .segments,tui-range+:host[data-size='m'] .segments{margin-left:1rem;margin-right:1rem}tui-input-range+:host[data-size='m'] .segments>:first-child,tui-range+:host[data-size='m'] .segments>:first-child{left:-1rem}tui-input-range+:host[data-size='m'] .segments>:last-child,tui-range+:host[data-size='m'] .segments>:last-child{right:-1rem}.segment:not(:last-of-type):not(:first-of-type):before{content:'';position:absolute;left:0;right:0;margin:auto;background:var(--tui-base-07);width:.25rem;height:100%}.segment:last-of-type .number{margin-right:-.5rem}.segment:first-of-type .number{margin-left:-.5rem}.number{display:inline-block;margin-top:.5rem}"]
174
- }),
225
+ styles: [":host{position:relative;display:block;height:.125rem;border-radius:var(--tui-radius-m);background:var(--tui-base-03);cursor:pointer;outline:0;margin:.4375rem 0;touch-action:pan-x}:host:active{cursor:ew-resize}:host:after{content:'';position:absolute;top:-.4375rem;bottom:-.4375rem;width:100%}:host._disabled{opacity:var(--tui-disabled-opacity);cursor:auto}:host[data-size='s'] .track{position:relative;margin:0 .25rem;height:100%}:host[data-size='s'] .track:after{content:'';position:absolute;top:0;left:var(--left);right:var(--right);height:100%;background:var(--tui-primary);margin:0 -.25rem}:host[data-size='m'] .track{position:relative;margin:0 .5rem;height:100%}:host[data-size='m'] .track:after{content:'';position:absolute;top:0;left:var(--left);right:var(--right);height:100%;background:var(--tui-primary);margin:0 -.5rem}.thumb{pointer-events:none;position:absolute;top:.0625rem;left:0;right:0;z-index:1;transform:translate(0,-50%)}.thumb::-webkit-slider-thumb{pointer-events:all}.thumb::-moz-range-thumb{pointer-events:all}input[type=range].thumb::-webkit-slider-runnable-track{background:0 0}input[type=range].thumb::-moz-range-track{background:0 0}input[type=range].thumb::-moz-range-progress{background:0 0}input[type=range].thumb::-ms-track{background:0 0}input[type=range].thumb::-ms-fill-lower{background:0 0}.thumb:last-of-type::-webkit-slider-thumb{transform:translate(50%,0)}.thumb:first-of-type::-webkit-slider-thumb{transform:translate(-50%,0)}.thumb:last-of-type::-moz-range-thumb{transform:translate(50%,0)}.thumb:first-of-type::-moz-range-thumb{transform:translate(-50%,0)}:host._disabled .thumb{opacity:1}.segments{position:absolute;top:0;left:0;bottom:0;right:0}:host[data-size='s'] .segments{display:flex;margin:0 .25rem;font:var(--tui-font-text-s);padding:0 .25rem}:host[data-size='s'] .segments>*{position:relative;flex:2;text-align:center}:host[data-size='s'] .segments>:first-child{left:-.25rem;flex:1;text-align:left}:host[data-size='s'] .segments>:last-child{right:-.25rem;flex:1;text-align:right}tui-input-slider+:host[data-size='s'] .segments{margin-left:calc(var(--tui-radius-m)/ 2 + .25rem)}tui-input-range+:host[data-size='s'] .segments,tui-range+:host[data-size='s'] .segments{margin-left:.5rem;margin-right:.5rem}tui-input-range+:host[data-size='s'] .segments>:first-child,tui-range+:host[data-size='s'] .segments>:first-child{left:-.5rem}tui-input-range+:host[data-size='s'] .segments>:last-child,tui-range+:host[data-size='s'] .segments>:last-child{right:-.5rem}:host[data-size='m'] .segments{display:flex;margin:0 .5rem;font:var(--tui-font-text-s);padding:0 .5rem}:host[data-size='m'] .segments>*{position:relative;flex:2;text-align:center}:host[data-size='m'] .segments>:first-child{left:-.5rem;flex:1;text-align:left}:host[data-size='m'] .segments>:last-child{right:-.5rem;flex:1;text-align:right}tui-input-slider+:host[data-size='m'] .segments{margin-left:calc(var(--tui-radius-m)/ 2 + .5rem)}tui-input-range+:host[data-size='m'] .segments,tui-range+:host[data-size='m'] .segments{margin-left:1rem;margin-right:1rem}tui-input-range+:host[data-size='m'] .segments>:first-child,tui-range+:host[data-size='m'] .segments>:first-child{left:-1rem}tui-input-range+:host[data-size='m'] .segments>:last-child,tui-range+:host[data-size='m'] .segments>:last-child{right:-1rem}.segment:not(:last-of-type):not(:first-of-type):before{content:'';position:absolute;left:0;right:0;margin:auto;background:var(--tui-base-07);width:.25rem;height:100%}.segment:last-of-type .number{margin-right:-.5rem}.segment:first-of-type .number{margin-left:-.5rem}.number{display:inline-block;margin-top:.5rem}"]
226
+ })
227
+ /**
228
+ * `AbstractTuiSlider` includes all legacy code (it can be deleted in v3.0)
229
+ * TODO replace `extends AbstractTuiSlider<[number, number]>` by `extends AbstractTuiControl<[number, number]> implements TuiWithOptionalMinMax<number>, TuiFocusableElementAccessor`
230
+ */
231
+ ,
175
232
  __param(0, Optional()),
176
233
  __param(0, Self()),
177
234
  __param(0, Inject(NgControl)),
@@ -183,4 +240,4 @@ TuiRangeComponent = TuiRangeComponent_1 = __decorate([
183
240
  __param(5, Inject(TuiNewRangeDirective))
184
241
  ], TuiRangeComponent);
185
242
  export { TuiRangeComponent };
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL3JhbmdlLyIsInNvdXJjZXMiOlsicmFuZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLFNBQVMsRUFDVCxJQUFJLEVBQ0osWUFBWSxHQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsV0FBVyxFQUNYLGlCQUFpQixFQUNqQiwwQkFBMEIsRUFDMUIsMkJBQTJCLEVBQzNCLGNBQWMsRUFHZCxPQUFPLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFdkQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVoQzs7OztHQUlHO0FBSUgsSUFBYSxvQkFBb0IsR0FBakMsTUFBYSxvQkFBb0I7Q0FBRyxDQUFBO0FBQXZCLG9CQUFvQjtJQUhoQyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsc0NBQXNDO0tBQ25ELENBQUM7R0FDVyxvQkFBb0IsQ0FBRztTQUF2QixvQkFBb0I7QUFFakMsV0FBVztBQWlCWCxJQUFhLGlCQUFpQix5QkFBOUIsTUFBYSxpQkFDVCxTQUFRLGlCQUFtQztJ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QUFDLENBQUM7SUFDL0QsWUFBWSxDQUFDLDRCQUE0QixFQUFFLENBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ2xFLFlBQVksQ0FBQywyQkFBMkIsRUFBRSxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQztJQUNsRSxZQUFZLENBQUMsMkJBQTJCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsZUFBZSxDQUFDLENBQUM7cURBcUJsRTtBQW1CRDtJQURDLE9BQU87NERBT1A7QUF6SVEsaUJBQWlCO0lBaEI3QixTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsV0FBVztRQUNyQixxdERBQW9DO1FBRXBDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO1FBQy9DLElBQUksRUFBRTtZQUNGLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsc0JBQXNCLEVBQUUsa0JBQWtCO1NBQzdDO1FBQ0QsU0FBUyxFQUFFO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLDJCQUEyQjtnQkFDcEMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBaUIsQ0FBQzthQUNuRDtTQUNKOztLQUNKLENBQUM7SUFzQ08sV0FBQSxRQUFRLEVBQUUsQ0FBQTtJQUNWLFdBQUEsSUFBSSxFQUFFLENBQUE7SUFDTixXQUFBLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUVqQixXQUFBLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0lBQ3pCLFdBQUEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ2hCLFdBQUEsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ2xCLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFDekIsV0FBQSxRQUFRLEVBQUUsQ0FBQTtJQUNWLFdBQUEsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUE7R0E5Q3hCLGlCQUFpQixDQWtKN0I7U0FsSlksaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgRU1QVFlfUVVFUlksXG4gICAgaXNOYXRpdmVGb2N1c2VkSW4sXG4gICAgbm9uTmVnYXRpdmVGaW5pdGVBc3NlcnRpb24sXG4gICAgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICBUdWlOYXRpdmVGb2N1c2FibGVFbGVtZW50LFxuICAgIHR1aVB1cmUsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtBYnN0cmFjdFR1aVNsaWRlcn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9hYnN0cmFjdCc7XG5pbXBvcnQge1R1aVNsaWRlckNvbXBvbmVudH0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL3NsaWRlcic7XG5pbXBvcnQge1RVSV9GUk9NX1RPX1RFWFRTfSBmcm9tICdAdGFpZ2EtdWkva2l0L3Rva2Vucyc7XG5pbXBvcnQge1R1aUtleVN0ZXBzfSBmcm9tICdAdGFpZ2EtdWkva2l0L3R5cGVzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogVHVybiBvbiBuZXcgbW9kZSBmb3IgYFJhbmdlYCBhbmQgYElucHV0UmFuZ2VgLlxuICogVGhlIG5ldyB2ZXJzaW9uIG9mIGNvbXBvbmVudCB3aWxsIGJlaGF2ZSBhbG1vc3QgdGhlIHNhbWUgYXMgdGhlIHNhbWUgY29tcG9uZW50IGZyb20gdGhlIG5leHQgbWFqb3IgcmVsZWFzZS5cbiAqIEBkZXByZWNhdGVkIFRPRE8gcmVtb3ZlIG1lIGluIHYzLjAgYW5kIG1ha2UgYFJhbmdlYCBhbmQgYElucHV0UmFuZ2VgIGFsd2F5cyBcIm5ld1wiLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ3R1aS1yYW5nZVtuZXddLCB0dWktaW5wdXQtcmFuZ2VbbmV3XScsXG59KVxuZXhwb3J0IGNsYXNzIFR1aU5ld1JhbmdlRGlyZWN0aXZlIHt9XG5cbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1yYW5nZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JhbmdlLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3JhbmdlLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci50YWJpbmRleF0nOiAnLTEnLFxuICAgICAgICAnW2F0dHIuYXJpYS1kaXNhYmxlZF0nOiAnY29tcHV0ZWREaXNhYmxlZCcsXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpUmFuZ2VDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVJhbmdlQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aVNsaWRlcjxbbnVtYmVyLCBudW1iZXJdPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1pbiA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBUT0RPOiBtYWtlIGAxMDBgIGFzIGRlZmF1bHQgdmFsdWUgKHRvIGJlIGxpa2UgbmF0aXZlIHNsaWRlcnMpIGluIHYzLjBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWF4ID0gSW5maW5pdHk7XG5cbiAgICAvKipcbiAgICAgKiBUT0RPOiB0aGluayBhYm91dCByZXBsYWNpbmcgdGhpcyBwcm9wcyBieSBgc3RlcGAgKHRvIGJlIGxpa2UgbmF0aXZlIHNsaWRlcikuXG4gICAgICogSXQgY2FuIGJlIGVhc3kgYWZ0ZXIgcmVmYWN0b3Igb2Yga2V5U3RlcHMuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHN0ZXBzID0gMDtcblxuICAgIC8qKlxuICAgICAqIFRPRE86IHRoaW5rIGFib3V0IHJlcGxhY2luZyB0aGlzIHByb3BzIGJ5IGBzdGVwYCAodG8gYmUgbGlrZSBuYXRpdmUgc2xpZGVyKS5cbiAgICAgKiBJdCBjYW4gYmUgZWFzeSBhZnRlciByZWZhY3RvciBvZiBrZXlTdGVwcy5cbiAgICAgKiAqL1xuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKG5vbk5lZ2F0aXZlRmluaXRlQXNzZXJ0aW9uLCAnUXVhbnR1bSBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlcicpXG4gICAgcXVhbnR1bSA9IDA7XG5cbiAgICBAVmlld0NoaWxkcmVuKFR1aVNsaWRlckNvbXBvbmVudCwge3JlYWQ6IEVsZW1lbnRSZWZ9KVxuICAgIHNsaWRlcnNSZWZzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pj4gPSBFTVBUWV9RVUVSWTtcblxuICAgIGxhc3RBY3RpdmVUaHVtYjogJ3JpZ2h0JyB8ICdsZWZ0JyA9ICdyaWdodCc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KE5nQ29udHJvbClcbiAgICAgICAgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBkb2N1bWVudFJlZjogRG9jdW1lbnQsXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgQEluamVjdChUVUlfRlJPTV9UT19URVhUUykgZnJvbVRvVGV4dHMkOiBPYnNlcnZhYmxlPFtzdHJpbmcsIHN0cmluZ10+LFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KFR1aU5ld1JhbmdlRGlyZWN0aXZlKVxuICAgICAgICByZWFkb25seSBpc05ldzogVHVpTmV3UmFuZ2VEaXJlY3RpdmUgfCBudWxsLFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZiwgZG9jdW1lbnRSZWYsIGZyb21Ub1RleHRzJCk7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8IG51bGwge1xuICAgICAgICBjb25zdCBbc2xpZGVyTGVmdFJlZiwgc2xpZGVyUmlnaHRSZWZdID0gdGhpcy5zbGlkZXJzUmVmcztcblxuICAgICAgICBpZiAodGhpcy5jb21wdXRlZERpc2FibGVkIHx8ICFzbGlkZXJMZWZ0UmVmIHx8ICFzbGlkZXJSaWdodFJlZikge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5pc0xlZnRGb2N1c2FibGVcbiAgICAgICAgICAgID8gc2xpZGVyTGVmdFJlZi5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgICA6IHNsaWRlclJpZ2h0UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpc05hdGl2ZUZvY3VzZWRJbih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkS2V5U3RlcHMoKTogVHVpS2V5U3RlcHMge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlUHVyZUtleVN0ZXBzKHRoaXMua2V5U3RlcHMsIHRoaXMubWluLCB0aGlzLm1heCk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLWxlZnQuJScpXG4gICAgZ2V0IGxlZnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIDEwMCAqIHRoaXMuZ2V0RnJhY3Rpb25Gcm9tVmFsdWUodGhpcy52YWx1ZVswXSk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLXJpZ2h0LiUnKVxuICAgIGdldCByaWdodCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gMTAwIC0gMTAwICogdGhpcy5nZXRGcmFjdGlvbkZyb21WYWx1ZSh0aGlzLnZhbHVlWzFdKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdmb2N1c2luJywgWyd0cnVlJ10pXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXNvdXQnLCBbJ2ZhbHNlJ10pXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dVcC5wcmV2ZW50JywgWycxJywgJyRldmVudC50YXJnZXQnXSlcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93UmlnaHQucHJldmVudCcsIFsnMScsICckZXZlbnQudGFyZ2V0J10pXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd0xlZnQucHJldmVudCcsIFsnLTEnLCAnJGV2ZW50LnRhcmdldCddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dEb3duLnByZXZlbnQnLCBbJy0xJywgJyRldmVudC50YXJnZXQnXSlcbiAgICBjaGFuZ2VCeVN0ZXAoY29lZmZpY2llbnQ6IG51bWJlciwgdGFyZ2V0OiBIVE1MRWxlbWVudCkge1xuICAgICAgICBjb25zdCBbc2xpZGVyTGVmdFJlZiwgc2xpZGVyUmlnaHRSZWZdID0gdGhpcy5zbGlkZXJzUmVmcztcbiAgICAgICAgY29uc3QgbGVmdFRodW1iRWxlbWVudCA9IHNsaWRlckxlZnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgcmlnaHRUaHVtYkVsZW1lbnQgPSBzbGlkZXJSaWdodFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIGNvbnN0IGlzUmlnaHRUaHVtYiA9XG4gICAgICAgICAgICB0YXJnZXQgPT09IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgICAgICAgPyB0aGlzLmxhc3RBY3RpdmVUaHVtYiA9PT0gJ3JpZ2h0J1xuICAgICAgICAgICAgICAgIDogdGFyZ2V0ID09PSByaWdodFRodW1iRWxlbWVudDtcbiAgICAgICAgY29uc3QgYWN0aXZlVGh1bWJFbGVtZW50ID0gaXNSaWdodFRodW1iID8gcmlnaHRUaHVtYkVsZW1lbnQgOiBsZWZ0VGh1bWJFbGVtZW50O1xuICAgICAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gaXNSaWdodFRodW1iID8gdGhpcy52YWx1ZVsxXSA6IHRoaXMudmFsdWVbMF07XG4gICAgICAgIC8qKiBAYmFkIFRPRE8gdGhpbmsgYWJvdXQgYSBzb2x1dGlvbiB3aXRob3V0IHR3aWNlIGNvbnZlcnNpb24gKi9cbiAgICAgICAgY29uc3QgcHJldmlvdXNGcmFjdGlvbiA9IHRoaXMuZ2V0RnJhY3Rpb25Gcm9tVmFsdWUocHJldmlvdXNWYWx1ZSk7XG4gICAgICAgIGNvbnN0IG5ld0ZyYWN0aW9uVmFsdWUgPSBwcmV2aW91c0ZyYWN0aW9uICsgY29lZmZpY2llbnQgKiB0aGlzLmNvbXB1dGVkU3RlcDtcblxuICAgICAgICB0aGlzLnByb2Nlc3NWYWx1ZSh0aGlzLmdldFZhbHVlRnJvbUZyYWN0aW9uKG5ld0ZyYWN0aW9uVmFsdWUpLCBpc1JpZ2h0VGh1bWIpO1xuXG4gICAgICAgIGlmIChhY3RpdmVUaHVtYkVsZW1lbnQpIHtcbiAgICAgICAgICAgIGFjdGl2ZVRodW1iRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvY2Vzc1ZhbHVlKHZhbHVlOiBudW1iZXIsIHJpZ2h0OiBib29sZWFuKSB7XG4gICAgICAgIGNvbnN0IGd1YXJkZWRWYWx1ZSA9IHRoaXMudmFsdWVHdWFyZCh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKHJpZ2h0KSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUVuZChndWFyZGVkVmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVTdGFydChndWFyZGVkVmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5sYXN0QWN0aXZlVGh1bWIgPSByaWdodCA/ICdyaWdodCcgOiAnbGVmdCc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZhbGxiYWNrVmFsdWUoKTogW251bWJlciwgbnVtYmVyXSB7XG4gICAgICAgIHJldHVybiBbMCwgMF07XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGNvbXB1dGVQdXJlS2V5U3RlcHMoXG4gICAgICAgIGtleVN0ZXBzOiBUdWlLZXlTdGVwcyB8IG51bGwsXG4gICAgICAgIG1pbjogbnVtYmVyLFxuICAgICAgICBtYXg6IG51bWJlcixcbiAgICApOiBUdWlLZXlTdGVwcyB7XG4gICAgICAgIHJldHVybiBbWzAsIG1pbl0sIC4uLihrZXlTdGVwcyB8fCBbXSksIFsxMDAsIG1heF1dO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlU3RhcnQodmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKFtNYXRoLm1pbih2YWx1ZSwgdGhpcy52YWx1ZVsxXSksIHRoaXMudmFsdWVbMV1dKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUVuZCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoW3RoaXMudmFsdWVbMF0sIE1hdGgubWF4KHZhbHVlLCB0aGlzLnZhbHVlWzBdKV0pO1xuICAgIH1cbn1cbiJdfQ==
243
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL3JhbmdlLyIsInNvdXJjZXMiOlsicmFuZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLFNBQVMsRUFDVCxJQUFJLEVBQ0osWUFBWSxHQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsS0FBSyxFQUNMLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsMEJBQTBCLEVBQzFCLFFBQVEsRUFDUixLQUFLLEVBQ0wsMkJBQTJCLEVBQzNCLFNBQVMsRUFDVCxjQUFjLEVBR2QsT0FBTyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQy9FLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRXZELE9BQU8sRUFDSCxrQ0FBa0MsRUFDbEMsMkJBQTJCLEVBQzNCLDJCQUEyQixHQUM5QixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFaEM7Ozs7R0FJRztBQUlILElBQWEsb0JBQW9CLEdBQWpDLE1BQWEs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QUFzQixFQUFFLGtCQUFrQjtTQUM3QztRQUNELFNBQVMsRUFBRTtZQUNQO2dCQUNJLE9BQU8sRUFBRSwyQkFBMkI7Z0JBQ3BDLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQWlCLENBQUM7YUFDbkQ7U0FDSjs7S0FDSixDQUFDO0lBQ0Y7OztPQUdHOztJQW1ETSxXQUFBLFFBQVEsRUFBRSxDQUFBO0lBQ1YsV0FBQSxJQUFJLEVBQUUsQ0FBQTtJQUNOLFdBQUEsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBRWpCLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFDekIsV0FBQSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDaEIsV0FBQSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDbEIsV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUN6QixXQUFBLFFBQVEsRUFBRSxDQUFBO0lBQ1YsV0FBQSxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtHQTNEeEIsaUJBQWlCLENBK003QjtTQS9NWSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTZWxmLFxuICAgIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBjbGFtcCxcbiAgICBFTVBUWV9RVUVSWSxcbiAgICBpc05hdGl2ZUZvY3VzZWRJbixcbiAgICBub25OZWdhdGl2ZUZpbml0ZUFzc2VydGlvbixcbiAgICBxdWFudGl6ZSxcbiAgICByb3VuZCxcbiAgICBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgdHVpQXNzZXJ0LFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICBUdWlOYXRpdmVGb2N1c2FibGVFbGVtZW50LFxuICAgIHR1aVB1cmUsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUdWlTaXplU30gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdFR1aVNsaWRlciwgU0xJREVSX0tFWUJPQVJEX1NURVB9IGZyb20gJ0B0YWlnYS11aS9raXQvYWJzdHJhY3QnO1xuaW1wb3J0IHtUdWlTbGlkZXJDb21wb25lbnR9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9zbGlkZXInO1xuaW1wb3J0IHtUVUlfRkxPQVRJTkdfUFJFQ0lTSU9OfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbnN0YW50cyc7XG5pbXBvcnQge1RVSV9GUk9NX1RPX1RFWFRTfSBmcm9tICdAdGFpZ2EtdWkva2l0L3Rva2Vucyc7XG5pbXBvcnQge1R1aUtleVN0ZXBzfSBmcm9tICdAdGFpZ2EtdWkva2l0L3R5cGVzJztcbmltcG9ydCB7XG4gICAgdHVpQ2hlY2tLZXlTdGVwc0hhdmVNaW5NYXhQZXJjZW50cyxcbiAgICB0dWlLZXlTdGVwVmFsdWVUb1BlcmNlbnRhZ2UsXG4gICAgdHVpUGVyY2VudGFnZVRvS2V5U3RlcFZhbHVlLFxufSBmcm9tICdAdGFpZ2EtdWkva2l0L3V0aWxzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogVHVybiBvbiBuZXcgbW9kZSBmb3IgYFJhbmdlYCBhbmQgYElucHV0UmFuZ2VgLlxuICogVGhlIG5ldyB2ZXJzaW9uIG9mIGNvbXBvbmVudCB3aWxsIGJlaGF2ZSBhbG1vc3QgdGhlIHNhbWUgYXMgdGhlIHNhbWUgY29tcG9uZW50IGZyb20gdGhlIG5leHQgbWFqb3IgcmVsZWFzZS5cbiAqIEBkZXByZWNhdGVkIFRPRE8gcmVtb3ZlIG1lIGluIHYzLjAgYW5kIG1ha2UgYFJhbmdlYCBhbmQgYElucHV0UmFuZ2VgIGFsd2F5cyBcIm5ld1wiLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ3R1aS1yYW5nZVtuZXddLCB0dWktaW5wdXQtcmFuZ2VbbmV3XScsXG59KVxuZXhwb3J0IGNsYXNzIFR1aU5ld1JhbmdlRGlyZWN0aXZlIHt9XG5cbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1yYW5nZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JhbmdlLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3JhbmdlLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci50YWJpbmRleF0nOiAnLTEnLFxuICAgICAgICAnW2F0dHIuYXJpYS1kaXNhYmxlZF0nOiAnY29tcHV0ZWREaXNhYmxlZCcsXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpUmFuZ2VDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuLyoqXG4gKiBgQWJzdHJhY3RUdWlTbGlkZXJgIGluY2x1ZGVzIGFsbCBsZWdhY3kgY29kZSAoaXQgY2FuIGJlIGRlbGV0ZWQgaW4gdjMuMClcbiAqIFRPRE8gcmVwbGFjZSBgZXh0ZW5kcyBBYnN0cmFjdFR1aVNsaWRlcjxbbnVtYmVyLCBudW1iZXJdPmAgYnkgYGV4dGVuZHMgQWJzdHJhY3RUdWlDb250cm9sPFtudW1iZXIsIG51bWJlcl0+IGltcGxlbWVudHMgVHVpV2l0aE9wdGlvbmFsTWluTWF4PG51bWJlcj4sIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcmBcbiAqL1xuZXhwb3J0IGNsYXNzIFR1aVJhbmdlQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aVNsaWRlcjxbbnVtYmVyLCBudW1iZXJdPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1pbiA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBUT0RPOiBtYWtlIGAxMDBgIGFzIGRlZmF1bHQgdmFsdWUgKHRvIGJlIGxpa2UgbmF0aXZlIHNsaWRlcnMpIGluIHYzLjBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWF4ID0gSW5maW5pdHk7XG5cbiAgICAvKipcbiAgICAgKiBUT0RPOiB0aGluayBhYm91dCByZXBsYWNpbmcgdGhpcyBwcm9wcyBieSBgc3RlcGAgKHRvIGJlIGxpa2UgbmF0aXZlIHNsaWRlcikuXG4gICAgICogSXQgY2FuIGJlIGRvbmUgYWZ0ZXIgcmVtb3ZpbmcgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBjb2RlIGluc2lkZSB7QGxpbmsgY29tcHV0ZVB1cmVLZXlTdGVwc30gaW4gdjMuMFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzdGVwcyA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBUT0RPOiB0aGluayBhYm91dCByZXBsYWNpbmcgdGhpcyBwcm9wcyBieSBgc3RlcGAgKHRvIGJlIGxpa2UgbmF0aXZlIHNsaWRlcikuXG4gICAgICogSXQgY2FuIGJlIGRvbmUgYWZ0ZXIgcmVtb3ZpbmcgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBjb2RlIGluc2lkZSB7QGxpbmsgY29tcHV0ZVB1cmVLZXlTdGVwc30gaW4gdjMuMFxuICAgICAqICovXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3Aobm9uTmVnYXRpdmVGaW5pdGVBc3NlcnRpb24sICdRdWFudHVtIG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyJylcbiAgICBxdWFudHVtID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtc2l6ZScpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzaXplOiBUdWlTaXplUyA9ICdtJztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzZWdtZW50cyA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAga2V5U3RlcHM6IFR1aUtleVN0ZXBzIHwgbnVsbCA9IG51bGw7XG5cbiAgICBAVmlld0NoaWxkcmVuKFR1aVNsaWRlckNvbXBvbmVudCwge3JlYWQ6IEVsZW1lbnRSZWZ9KVxuICAgIHNsaWRlcnNSZWZzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pj4gPSBFTVBUWV9RVUVSWTtcblxuICAgIGxhc3RBY3RpdmVUaHVtYjogJ3JpZ2h0JyB8ICdsZWZ0JyA9ICdyaWdodCc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KE5nQ29udHJvbClcbiAgICAgICAgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBkb2N1bWVudFJlZjogRG9jdW1lbnQsXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgQEluamVjdChUVUlfRlJPTV9UT19URVhUUykgZnJvbVRvVGV4dHMkOiBPYnNlcnZhYmxlPFtzdHJpbmcsIHN0cmluZ10+LFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KFR1aU5ld1JhbmdlRGlyZWN0aXZlKVxuICAgICAgICByZWFkb25seSBpc05ldzogVHVpTmV3UmFuZ2VEaXJlY3RpdmUgfCBudWxsLFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZiwgZG9jdW1lbnRSZWYsIGZyb21Ub1RleHRzJCk7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8IG51bGwge1xuICAgICAgICBjb25zdCBbc2xpZGVyTGVmdFJlZiwgc2xpZGVyUmlnaHRSZWZdID0gdGhpcy5zbGlkZXJzUmVmcztcblxuICAgICAgICBpZiAodGhpcy5jb21wdXRlZERpc2FibGVkIHx8ICFzbGlkZXJMZWZ0UmVmIHx8ICFzbGlkZXJSaWdodFJlZikge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5pc0xlZnRGb2N1c2FibGVcbiAgICAgICAgICAgID8gc2xpZGVyTGVmdFJlZi5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgICA6IHNsaWRlclJpZ2h0UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpc05hdGl2ZUZvY3VzZWRJbih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgZ2V0IGZyYWN0aW9uU3RlcCgpOiBudW1iZXIge1xuICAgICAgICBpZiAodGhpcy5zdGVwcykge1xuICAgICAgICAgICAgcmV0dXJuIDEgLyB0aGlzLnN0ZXBzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucXVhbnR1bSA/IHRoaXMucXVhbnR1bSAvICh0aGlzLm1heCAtIHRoaXMubWluKSA6IFNMSURFUl9LRVlCT0FSRF9TVEVQO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZEtleVN0ZXBzKCk6IFR1aUtleVN0ZXBzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcHV0ZVB1cmVLZXlTdGVwcyh0aGlzLmtleVN0ZXBzLCB0aGlzLm1pbiwgdGhpcy5tYXgpO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuLS1sZWZ0LiUnKVxuICAgIGdldCBsZWZ0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFBlcmNlbnRhZ2VGcm9tVmFsdWUodGhpcy52YWx1ZVswXSk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLXJpZ2h0LiUnKVxuICAgIGdldCByaWdodCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gMTAwIC0gdGhpcy5nZXRQZXJjZW50YWdlRnJvbVZhbHVlKHRoaXMudmFsdWVbMV0pO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzaW4nLCBbJ3RydWUnXSlcbiAgICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcsIFsnZmFsc2UnXSlcbiAgICBvbkZvY3VzZWQoZm9jdXNlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoZm9jdXNlZCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd1VwLnByZXZlbnQnLCBbJzEnLCAnJGV2ZW50LnRhcmdldCddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dSaWdodC5wcmV2ZW50JywgWycxJywgJyRldmVudC50YXJnZXQnXSlcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93TGVmdC5wcmV2ZW50JywgWyctMScsICckZXZlbnQudGFyZ2V0J10pXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd0Rvd24ucHJldmVudCcsIFsnLTEnLCAnJGV2ZW50LnRhcmdldCddKVxuICAgIGNoYW5nZUJ5U3RlcChjb2VmZmljaWVudDogbnVtYmVyLCB0YXJnZXQ6IEhUTUxFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IFtzbGlkZXJMZWZ0UmVmLCBzbGlkZXJSaWdodFJlZl0gPSB0aGlzLnNsaWRlcnNSZWZzO1xuICAgICAgICBjb25zdCBsZWZ0VGh1bWJFbGVtZW50ID0gc2xpZGVyTGVmdFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCByaWdodFRodW1iRWxlbWVudCA9IHNsaWRlclJpZ2h0UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgY29uc3QgaXNSaWdodFRodW1iID1cbiAgICAgICAgICAgIHRhcmdldCA9PT0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgICAgICA/IHRoaXMubGFzdEFjdGl2ZVRodW1iID09PSAncmlnaHQnXG4gICAgICAgICAgICAgICAgOiB0YXJnZXQgPT09IHJpZ2h0VGh1bWJFbGVtZW50O1xuICAgICAgICBjb25zdCBhY3RpdmVUaHVtYkVsZW1lbnQgPSBpc1JpZ2h0VGh1bWIgPyByaWdodFRodW1iRWxlbWVudCA6IGxlZnRUaHVtYkVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSBpc1JpZ2h0VGh1bWIgPyB0aGlzLnZhbHVlWzFdIDogdGhpcy52YWx1ZVswXTtcbiAgICAgICAgLyoqIEBiYWQgVE9ETyB0aGluayBhYm91dCBhIHNvbHV0aW9uIHdpdGhvdXQgdHdpY2UgY29udmVyc2lvbiAqL1xuICAgICAgICBjb25zdCBwcmV2aW91c0ZyYWN0aW9uID0gdGhpcy5nZXRQZXJjZW50YWdlRnJvbVZhbHVlKHByZXZpb3VzVmFsdWUpIC8gMTAwO1xuICAgICAgICBjb25zdCBuZXdGcmFjdGlvblZhbHVlID0gcHJldmlvdXNGcmFjdGlvbiArIGNvZWZmaWNpZW50ICogdGhpcy5mcmFjdGlvblN0ZXA7XG5cbiAgICAgICAgdGhpcy5wcm9jZXNzVmFsdWUodGhpcy5nZXRWYWx1ZUZyb21GcmFjdGlvbihuZXdGcmFjdGlvblZhbHVlKSwgaXNSaWdodFRodW1iKTtcblxuICAgICAgICBpZiAoYWN0aXZlVGh1bWJFbGVtZW50KSB7XG4gICAgICAgICAgICBhY3RpdmVUaHVtYkVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb2Nlc3NWYWx1ZSh2YWx1ZTogbnVtYmVyLCByaWdodDogYm9vbGVhbikge1xuICAgICAgICBjb25zdCBndWFyZGVkVmFsdWUgPSB0aGlzLnZhbHVlR3VhcmQodmFsdWUpO1xuXG4gICAgICAgIGlmIChyaWdodCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVFbmQoZ3VhcmRlZFZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlU3RhcnQoZ3VhcmRlZFZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubGFzdEFjdGl2ZVRodW1iID0gcmlnaHQgPyAncmlnaHQnIDogJ2xlZnQnO1xuICAgIH1cblxuICAgIGZyYWN0aW9uR3VhcmQoZnJhY3Rpb246IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBjbGFtcChxdWFudGl6ZShmcmFjdGlvbiwgdGhpcy5mcmFjdGlvblN0ZXApLCAwLCAxKTtcbiAgICB9XG5cbiAgICBnZXRWYWx1ZUZyb21GcmFjdGlvbihmcmFjdGlvbjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgcGVyY2VudGFnZSA9IHRoaXMuZnJhY3Rpb25HdWFyZChmcmFjdGlvbikgKiAxMDA7XG5cbiAgICAgICAgcmV0dXJuIHR1aVBlcmNlbnRhZ2VUb0tleVN0ZXBWYWx1ZShwZXJjZW50YWdlLCB0aGlzLmNvbXB1dGVkS2V5U3RlcHMpO1xuICAgIH1cblxuICAgIGdldFBlcmNlbnRhZ2VGcm9tVmFsdWUodmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0dWlLZXlTdGVwVmFsdWVUb1BlcmNlbnRhZ2UodmFsdWUsIHRoaXMuY29tcHV0ZWRLZXlTdGVwcyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHZhbHVlR3VhcmQodmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBjbGFtcChcbiAgICAgICAgICAgIHRoaXMucXVhbnR1bVxuICAgICAgICAgICAgICAgID8gcm91bmQoXG4gICAgICAgICAgICAgICAgICAgICAgTWF0aC5yb3VuZCh2YWx1ZSAvIHRoaXMucXVhbnR1bSkgKiB0aGlzLnF1YW50dW0sXG4gICAgICAgICAgICAgICAgICAgICAgVFVJX0ZMT0FUSU5HX1BSRUNJU0lPTixcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICA6IHZhbHVlLFxuICAgICAgICAgICAgdGhpcy5taW4sXG4gICAgICAgICAgICB0aGlzLm1heCxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RmFsbGJhY2tWYWx1ZSgpOiBbbnVtYmVyLCBudW1iZXJdIHtcbiAgICAgICAgcmV0dXJuIFswLCAwXTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgY29tcHV0ZVB1cmVLZXlTdGVwcyhcbiAgICAgICAga2V5U3RlcHM6IFR1aUtleVN0ZXBzIHwgbnVsbCxcbiAgICAgICAgbWluOiBudW1iZXIsXG4gICAgICAgIG1heDogbnVtYmVyLFxuICAgICk6IFR1aUtleVN0ZXBzIHtcbiAgICAgICAgaWYgKGtleVN0ZXBzICYmIHR1aUNoZWNrS2V5U3RlcHNIYXZlTWluTWF4UGVyY2VudHMoa2V5U3RlcHMpKSB7XG4gICAgICAgICAgICByZXR1cm4ga2V5U3RlcHM7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUT0RPIHJlcGxhY2UgYWxsIGZ1bmN0aW9uIGJ5IGByZXR1cm4ga2V5U3RlcHMgfHwgW1swLCBtaW5dLCBbMTAwLCBtYXhdXWAgaW4gdjMuMFxuICAgICAgICB0dWlBc3NlcnQuYXNzZXJ0KFxuICAgICAgICAgICAgIWtleVN0ZXBzLFxuICAgICAgICAgICAgJ1xcbicgK1xuICAgICAgICAgICAgICAgICdJbnB1dCBwcm9wZXJ0eSBba2V5U3RlcHNdIHNob3VsZCBjb250YWluIG1pbiBhbmQgbWF4IHBlcmNlbnRzLlxcbicgK1xuICAgICAgICAgICAgICAgICdXZSBoYXZlIHRha2VuIFttaW5dIGFuZCBbbWF4XSBwcm9wZXJ0aWVzIG9mIHlvdXIgY29tcG9uZW50IGZvciBub3cgKGJ1dCBpdCB3aWxsIG5vdCB3b3JrIGluIHYzLjApLlxcbicgK1xuICAgICAgICAgICAgICAgICdTZWUgZXhhbXBsZSBob3cgcHJvcGVybHkgdXNlIFtrZXlTdGVwc106IGh0dHBzOi8vdGFpZ2EtdWkuZGV2L2NvbXBvbmVudHMvcmFuZ2Uja2V5LXN0ZXBzJyxcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gW1swLCBtaW5dLCAuLi4oa2V5U3RlcHMgfHwgW10pLCBbMTAwLCBtYXhdXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVN0YXJ0KHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShbTWF0aC5taW4odmFsdWUsIHRoaXMudmFsdWVbMV0pLCB0aGlzLnZhbHVlWzFdXSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVFbmQodmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKFt0aGlzLnZhbHVlWzBdLCBNYXRoLm1heCh2YWx1ZSwgdGhpcy52YWx1ZVswXSldKTtcbiAgICB9XG59XG4iXX0=
@@ -1,7 +1,7 @@
1
1
  import { __decorate, __param } from "tslib";
2
2
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, Inject, Input, Optional, Self, TemplateRef, ViewChild, } from '@angular/core';
3
3
  import { NgControl } from '@angular/forms';
4
- import { AbstractTuiNullableControl, isNativeFocused, setNativeFocused, tuiDefaultProp, tuiPure, } from '@taiga-ui/cdk';
4
+ import { AbstractTuiNullableControl, isNativeFocused, setNativeFocused, tuiDefaultProp, } from '@taiga-ui/cdk';
5
5
  import { TUI_TEXTFIELD_CLEANER, TuiDataListDirective, TuiDataListHost, TuiHostedDropdownComponent, TuiPrimitiveTextfieldComponent, TuiSizeL, TuiSizeM, TuiSizeS, TuiTextfieldCleanerDirective, TuiValueContentContext, } from '@taiga-ui/core';
6
6
  import { TUI_ARROW_MODE } from '@taiga-ui/kit/components/arrow';
7
7
  import { TUI_ITEMS_HANDLERS } from '@taiga-ui/kit/tokens';
@@ -35,9 +35,6 @@ let TuiSelectComponent = class TuiSelectComponent extends AbstractTuiNullableCon
35
35
  get computedContent() {
36
36
  return this.valueContent || this.computedValue;
37
37
  }
38
- computeContext($implicit, active) {
39
- return { $implicit, active };
40
- }
41
38
  onValueChange(value) {
42
39
  if (!value) {
43
40
  this.updateValue(null);
@@ -95,13 +92,10 @@ __decorate([
95
92
  __decorate([
96
93
  ContentChild(TuiDataListDirective, { read: TemplateRef })
97
94
  ], TuiSelectComponent.prototype, "datalist", void 0);
98
- __decorate([
99
- tuiPure
100
- ], TuiSelectComponent.prototype, "computeContext", null);
101
95
  TuiSelectComponent = __decorate([
102
96
  Component({
103
97
  selector: 'tui-select',
104
- template: "<tui-hosted-dropdown\n class=\"t-hosted\"\n [canOpen]=\"interactive\"\n [content]=\"datalist || ''\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n automation-id=\"tui-select__textfield\"\n class=\"t-textfield\"\n [editable]=\"false\"\n [pseudoFocused]=\"computedFocused\"\n [pseudoHovered]=\"pseudoHovered\"\n [pseudoPressed]=\"pseudoPressed\"\n [invalid]=\"computedInvalid\"\n [nativeId]=\"nativeId\"\n [readOnly]=\"readOnly\"\n [iconContent]=\"arrow\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"computedFocusable\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (keydown.delete.prevent)=\"onKeyDownDelete()\"\n (keydown.backspace.prevent)=\"onKeyDownDelete()\"\n >\n <ng-content></ng-content>\n <ng-content\n select=\"input\"\n ngProjectAs=\"input\"\n ></ng-content>\n <div\n *ngIf=\"value !== null\"\n polymorpheus-outlet\n automation-id=\"tui-select__value\"\n class=\"t-value\"\n [content]=\"computedContent\"\n [context]=\"computeContext(value, computedFocused)\"\n >\n <ng-template let-primitiveValue>\n <div class=\"t-primitive-value\">{{ primitiveValue }}</div>\n </ng-template>\n </div>\n </tui-primitive-textfield>\n</tui-hosted-dropdown>\n",
98
+ template: "<tui-hosted-dropdown\n class=\"t-hosted\"\n [canOpen]=\"interactive\"\n [content]=\"datalist || ''\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n automation-id=\"tui-select__textfield\"\n class=\"t-textfield\"\n [editable]=\"false\"\n [pseudoFocused]=\"computedFocused\"\n [pseudoHovered]=\"pseudoHovered\"\n [pseudoPressed]=\"pseudoPressed\"\n [invalid]=\"computedInvalid\"\n [nativeId]=\"nativeId\"\n [readOnly]=\"readOnly\"\n [iconContent]=\"arrow\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"computedFocusable\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange($event)\"\n (hoveredChange)=\"onHovered($event)\"\n (keydown.delete.prevent)=\"onKeyDownDelete()\"\n (keydown.backspace.prevent)=\"onKeyDownDelete()\"\n >\n <ng-content></ng-content>\n <ng-content\n select=\"input\"\n ngProjectAs=\"input\"\n ></ng-content>\n <div\n *ngIf=\"value !== null\"\n polymorpheus-outlet\n automation-id=\"tui-select__value\"\n class=\"t-value\"\n [content]=\"computedContent\"\n [context]=\"{$implicit: value, active: computedFocused}\"\n >\n <ng-template let-primitiveValue>\n <div class=\"t-primitive-value\">{{ primitiveValue }}</div>\n </ng-template>\n </div>\n </tui-primitive-textfield>\n</tui-hosted-dropdown>\n",
105
99
  changeDetection: ChangeDetectionStrategy.OnPush,
106
100
  providers: TUI_SELECT_PROVIDERS,
107
101
  styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:left}:host:not(._readonly) ::ng-deep input:not(:disabled){cursor:pointer}:host._readonly ::ng-deep input{cursor:default}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}.t-value{display:flex;width:100%;align-items:center}.t-primitive-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]
@@ -116,4 +110,4 @@ TuiSelectComponent = __decorate([
116
110
  __param(5, Inject(TUI_SELECT_OPTIONS))
117
111
  ], TuiSelectComponent);
118
112
  export { TuiSelectComponent };
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9zZWxlY3QvIiwic291cmNlcyI6WyJzZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLElBQUksRUFDSixXQUFXLEVBQ1gsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsMEJBQTBCLEVBQzFCLGVBQWUsRUFDZixnQkFBZ0IsRUFHaEIsY0FBYyxFQUVkLE9BQU8sR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gscUJBQXFCLEVBQ3JCLG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsMEJBQTBCLEVBQzFCLDhCQUE4QixFQUM5QixRQUFRLEVBQ1IsUUFBUSxFQUNSLFFBQVEsRUFDUiw0QkFBNEIsRUFDNUIsc0JBQXNCLEdBQ3pCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLGNBQWMsRUFBZSxNQUFNLGdDQUFnQyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxrQkFBa0IsRUFBbUIsTUFBTSxzQkFBc0IsQ0FBQztBQUcxRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUMsa0JBQWtCLEVBQW1CLE1BQU0sa0JBQWtCLENBQUM7QUFTdEUsSUFBYSxrQkFBa0IsR0FBL0IsTUFBYSxrQkFDVCxTQUFRLDBCQUE2QjtJQTJCckMsWUFJSSxPQUF5QixFQUNFLGlCQUFvQyxFQUU5QyxnQkFBOEMsRUFFOUMsU0FBdUIsRUFFdkIsYUFBa0MsRUFFbEMsT0FBNEI7UUFFN0MsS0FBSyxDQUFDLE9BQU8sRUFB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biAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aU51bGxhYmxlQ29udHJvbCxcbiAgICBpc05hdGl2ZUZvY3VzZWQsXG4gICAgc2V0TmF0aXZlRm9jdXNlZCxcbiAgICBUdWlBY3RpdmVab25lRGlyZWN0aXZlLFxuICAgIFR1aUNvbnRleHRXaXRoSW1wbGljaXQsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIHR1aVB1cmUsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBUVUlfVEVYVEZJRUxEX0NMRUFORVIsXG4gICAgVHVpRGF0YUxpc3REaXJlY3RpdmUsXG4gICAgVHVpRGF0YUxpc3RIb3N0LFxuICAgIFR1aUhvc3RlZERyb3Bkb3duQ29tcG9uZW50LFxuICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudCxcbiAgICBUdWlTaXplTCxcbiAgICBUdWlTaXplTSxcbiAgICBUdWlTaXplUyxcbiAgICBUdWlUZXh0ZmllbGRDbGVhbmVyRGlyZWN0aXZlLFxuICAgIFR1aVZhbHVlQ29udGVudENvbnRleHQsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7VFVJX0FSUk9XX01PREUsIFR1aUFycm93TW9kZX0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2Fycm93JztcbmltcG9ydCB7VFVJX0lURU1TX0hBTkRMRVJTLCBUdWlJdGVtc0hhbmRsZXJzfSBmcm9tICdAdGFpZ2EtdWkva2l0L3Rva2Vucyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5cbmltcG9ydCB7VFVJX1NFTEVDVF9QUk9WSURFUlN9IGZyb20gJy4vc2VsZWN0LnByb3ZpZGVycyc7XG5pbXBvcnQge1RVSV9TRUxFQ1RfT1BUSU9OUywgVHVpU2VsZWN0T3B0aW9uc30gZnJvbSAnLi9zZWxlY3Qtb3B0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLXNlbGVjdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zZWxlY3Quc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogVFVJX1NFTEVDVF9QUk9WSURFUlMsXG59KVxuZXhwb3J0IGNsYXNzIFR1aVNlbGVjdENvbXBvbmVudDxUPlxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2w8VD5cbiAgICBpbXBsZW1lbnRzIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvciwgVHVpRGF0YUxpc3RIb3N0PFQ+XG57XG4gICAgQFZpZXdDaGlsZChUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGQ/OiBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkKFR1aUhvc3RlZERyb3Bkb3duQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgaG9zdGVkRHJvcGRvd24/OiBUdWlIb3N0ZWREcm9wZG93bkNvbXBvbmVudDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzdHJpbmdpZnk6IFR1aUl0ZW1zSGFuZGxlcnM8VD5bJ3N0cmluZ2lmeSddID0gdGhpcy5pdGVtc0hhbmRsZXJzLnN0cmluZ2lmeTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBpZGVudGl0eU1hdGNoZXI6IFR1aUl0ZW1zSGFuZGxlcnM8VD5bJ2lkZW50aXR5TWF0Y2hlciddID1cbiAgICAgICAgdGhpcy5pdGVtc0hhbmRsZXJzLmlkZW50aXR5TWF0Y2hlcjtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICB2YWx1ZUNvbnRlbnQ6IFR1aVNlbGVjdE9wdGlvbnM8VD5bJ3ZhbHVlQ29udGVudCddID0gdGhpcy5vcHRpb25zLnZhbHVlQ29udGVudDtcblxuICAgIEBDb250ZW50Q2hpbGQoVHVpRGF0YUxpc3REaXJlY3RpdmUsIHtyZWFkOiBUZW1wbGF0ZVJlZn0pXG4gICAgcmVhZG9ubHkgZGF0YWxpc3Q6IFBvbHltb3JwaGV1c0NvbnRlbnQ8XG4gICAgICAgIFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8VHVpQWN0aXZlWm9uZURpcmVjdGl2ZT5cbiAgICA+ID0gJyc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KE5nQ29udHJvbClcbiAgICAgICAgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KFRVSV9URVhURklFTERfQ0xFQU5FUilcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGRDbGVhbmVyOiBUdWlUZXh0ZmllbGRDbGVhbmVyRGlyZWN0aXZlLFxuICAgICAgICBASW5qZWN0KFRVSV9BUlJPV19NT0RFKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGFycm93TW9kZTogVHVpQXJyb3dNb2RlLFxuICAgICAgICBASW5qZWN0KFRVSV9JVEVNU19IQU5ETEVSUylcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBpdGVtc0hhbmRsZXJzOiBUdWlJdGVtc0hhbmRsZXJzPFQ+LFxuICAgICAgICBASW5qZWN0KFRVSV9TRUxFQ1RfT1BUSU9OUylcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBUdWlTZWxlY3RPcHRpb25zPFQ+LFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgfVxuXG4gICAgZ2V0IGFycm93KCk6IFBvbHltb3JwaGV1c0NvbnRlbnQ8XG4gICAgICAgIFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8VHVpU2l6ZVMgfCBUdWlTaXplTSB8IFR1aVNpemVMPlxuICAgID4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaW50ZXJhY3RpdmUgPyB0aGlzLmFycm93TW9kZS5kaXNhYmxlZCA6IHRoaXMuYXJyb3dNb2RlLmludGVyYWN0aXZlO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dGZpZWxkID8gdGhpcy50ZXh0ZmllbGQubmF0aXZlRm9jdXNhYmxlRWxlbWVudCA6IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBpc05hdGl2ZUZvY3VzZWQodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB8fFxuICAgICAgICAgICAgKCEhdGhpcy5ob3N0ZWREcm9wZG93biAmJiB0aGlzLmhvc3RlZERyb3Bkb3duLmZvY3VzZWQpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUgPT09IG51bGwgPyAnJyA6IHRoaXMuc3RyaW5naWZ5KHRoaXMudmFsdWUpIHx8ICcgJztcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRDb250ZW50KCk6IFBvbHltb3JwaGV1c0NvbnRlbnQ8VHVpVmFsdWVDb250ZW50Q29udGV4dDxUPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZUNvbnRlbnQgfHwgdGhpcy5jb21wdXRlZFZhbHVlO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgY29tcHV0ZUNvbnRleHQoXG4gICAgICAgICRpbXBsaWNpdDogVCB8IG51bGwsXG4gICAgICAgIGFjdGl2ZTogYm9vbGVhbixcbiAgICApOiBUdWlWYWx1ZUNvbnRlbnRDb250ZXh0PFQgfCBudWxsPiB7XG4gICAgICAgIHJldHVybiB7JGltcGxpY2l0LCBhY3RpdmV9O1xuICAgIH1cblxuICAgIG9uVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKG51bGwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25BY3RpdmVab25lKGFjdGl2ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoYWN0aXZlKTtcbiAgICB9XG5cbiAgICBvbkhvdmVyZWQoaG92ZXJlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZUhvdmVyZWQoaG92ZXJlZCk7XG4gICAgfVxuXG4gICAgb25LZXlEb3duRGVsZXRlKCkge1xuICAgICAgICBpZiAodGhpcy50ZXh0ZmllbGRDbGVhbmVyLmNsZWFuZXIpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUobnVsbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVPcHRpb24ob3B0aW9uOiBUKSB7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKG9wdGlvbik7XG4gICAgICAgIHRoaXMuaG9zdGVkRHJvcGRvd24/LnVwZGF0ZU9wZW4oZmFsc2UpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9jdXNJbnB1dChwcmV2ZW50U2Nyb2xsOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICAgICAgaWYgKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgc2V0TmF0aXZlRm9jdXNlZCh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQsIHRydWUsIHByZXZlbnRTY3JvbGwpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9zZWxlY3QvIiwic291cmNlcyI6WyJzZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLElBQUksRUFDSixXQUFXLEVBQ1gsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsMEJBQTBCLEVBQzFCLGVBQWUsRUFDZixnQkFBZ0IsRUFHaEIsY0FBYyxHQUVqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gscUJBQXFCLEVBQ3JCLG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsMEJBQTBCLEVBQzFCLDhCQUE4QixFQUM5QixRQUFRLEVBQ1IsUUFBUSxFQUNSLFFBQVEsRUFDUiw0QkFBNEIsRUFDNUIsc0JBQXNCLEdBQ3pCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLGNBQWMsRUFBZSxNQUFNLGdDQUFnQyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxrQkFBa0IsRUFBbUIsTUFBTSxzQkFBc0IsQ0FBQztBQUcxRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUMsa0JBQWtCLEVBQW1CLE1BQU0sa0JBQWtCLENBQUM7QUFTdEUsSUFBYSxrQkFBa0IsR0FBL0IsTUFBYSxrQkFDVCxTQUFRLDBCQUE2QjtJQTJCckMsWUFJSSxPQUF5QixFQUNFLGlCQUFvQyxFQUU5QyxnQkFBOEMsRUFFOUMsU0FBdUIsRUFFdkIsYUFBa0MsRUFFbEMsT0FBNEI7UUFFN0MsS0FBSyxDQUFDLE9BQU8sRUFBRSxpQkFBaUIs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a0JBQWtCOztBQW5DOUI7SUFEQyxTQUFTLENBQUMsOEJBQThCLENBQUM7cURBQ2tCO0FBRzVEO0lBREMsU0FBUyxDQUFDLDBCQUEwQixDQUFDOzBEQUN1QjtBQUk3RDtJQUZDLEtBQUssRUFBRTtJQUNQLGNBQWMsRUFBRTtxREFDMEQ7QUFJM0U7SUFGQyxLQUFLLEVBQUU7SUFDUCxjQUFjLEVBQUU7MkRBRXNCO0FBSXZDO0lBRkMsS0FBSyxFQUFFO0lBQ1AsY0FBYyxFQUFFO3dEQUM2RDtBQUc5RTtJQURDLFlBQVksQ0FBQyxvQkFBb0IsRUFBRSxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUMsQ0FBQztvREFHakQ7QUExQkUsa0JBQWtCO0lBUDlCLFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSxZQUFZO1FBQ3RCLDhpREFBcUM7UUFFckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07UUFDL0MsU0FBUyxFQUFFLG9CQUFvQjs7S0FDbEMsQ0FBQztJQThCTyxXQUFBLFFBQVEsRUFBRSxDQUFBO0lBQ1YsV0FBQSxJQUFJLEVBQUUsQ0FBQTtJQUNOLFdBQUEsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBRWpCLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFDekIsV0FBQSxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQTtJQUU3QixXQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUV0QixXQUFBLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO0lBRTFCLFdBQUEsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUE7R0F4Q3RCLGtCQUFrQixDQXNHOUI7U0F0R1ksa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aU51bGxhYmxlQ29udHJvbCxcbiAgICBpc05hdGl2ZUZvY3VzZWQsXG4gICAgc2V0TmF0aXZlRm9jdXNlZCxcbiAgICBUdWlBY3RpdmVab25lRGlyZWN0aXZlLFxuICAgIFR1aUNvbnRleHRXaXRoSW1wbGljaXQsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgVFVJX1RFWFRGSUVMRF9DTEVBTkVSLFxuICAgIFR1aURhdGFMaXN0RGlyZWN0aXZlLFxuICAgIFR1aURhdGFMaXN0SG9zdCxcbiAgICBUdWlIb3N0ZWREcm9wZG93bkNvbXBvbmVudCxcbiAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQsXG4gICAgVHVpU2l6ZUwsXG4gICAgVHVpU2l6ZU0sXG4gICAgVHVpU2l6ZVMsXG4gICAgVHVpVGV4dGZpZWxkQ2xlYW5lckRpcmVjdGl2ZSxcbiAgICBUdWlWYWx1ZUNvbnRlbnRDb250ZXh0LFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1RVSV9BUlJPV19NT0RFLCBUdWlBcnJvd01vZGV9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9hcnJvdyc7XG5pbXBvcnQge1RVSV9JVEVNU19IQU5ETEVSUywgVHVpSXRlbXNIYW5kbGVyc30gZnJvbSAnQHRhaWdhLXVpL2tpdC90b2tlbnMnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuXG5pbXBvcnQge1RVSV9TRUxFQ1RfUFJPVklERVJTfSBmcm9tICcuL3NlbGVjdC5wcm92aWRlcnMnO1xuaW1wb3J0IHtUVUlfU0VMRUNUX09QVElPTlMsIFR1aVNlbGVjdE9wdGlvbnN9IGZyb20gJy4vc2VsZWN0LW9wdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1zZWxlY3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFRVSV9TRUxFQ1RfUFJPVklERVJTLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlTZWxlY3RDb21wb25lbnQ8VD5cbiAgICBleHRlbmRzIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sPFQ+XG4gICAgaW1wbGVtZW50cyBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsIFR1aURhdGFMaXN0SG9zdDxUPlxue1xuICAgIEBWaWV3Q2hpbGQoVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkPzogVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZChUdWlIb3N0ZWREcm9wZG93bkNvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhvc3RlZERyb3Bkb3duPzogVHVpSG9zdGVkRHJvcGRvd25Db21wb25lbnQ7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc3RyaW5naWZ5OiBUdWlJdGVtc0hhbmRsZXJzPFQ+WydzdHJpbmdpZnknXSA9IHRoaXMuaXRlbXNIYW5kbGVycy5zdHJpbmdpZnk7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaWRlbnRpdHlNYXRjaGVyOiBUdWlJdGVtc0hhbmRsZXJzPFQ+WydpZGVudGl0eU1hdGNoZXInXSA9XG4gICAgICAgIHRoaXMuaXRlbXNIYW5kbGVycy5pZGVudGl0eU1hdGNoZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgdmFsdWVDb250ZW50OiBUdWlTZWxlY3RPcHRpb25zPFQ+Wyd2YWx1ZUNvbnRlbnQnXSA9IHRoaXMub3B0aW9ucy52YWx1ZUNvbnRlbnQ7XG5cbiAgICBAQ29udGVudENoaWxkKFR1aURhdGFMaXN0RGlyZWN0aXZlLCB7cmVhZDogVGVtcGxhdGVSZWZ9KVxuICAgIHJlYWRvbmx5IGRhdGFsaXN0OiBQb2x5bW9ycGhldXNDb250ZW50PFxuICAgICAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0PFR1aUFjdGl2ZVpvbmVEaXJlY3RpdmU+XG4gICAgPiA9ICcnO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX0NMRUFORVIpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkQ2xlYW5lcjogVHVpVGV4dGZpZWxkQ2xlYW5lckRpcmVjdGl2ZSxcbiAgICAgICAgQEluamVjdChUVUlfQVJST1dfTU9ERSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhcnJvd01vZGU6IFR1aUFycm93TW9kZSxcbiAgICAgICAgQEluamVjdChUVUlfSVRFTVNfSEFORExFUlMpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaXRlbXNIYW5kbGVyczogVHVpSXRlbXNIYW5kbGVyczxUPixcbiAgICAgICAgQEluamVjdChUVUlfU0VMRUNUX09QVElPTlMpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogVHVpU2VsZWN0T3B0aW9uczxUPixcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIH1cblxuICAgIGdldCBhcnJvdygpOiBQb2x5bW9ycGhldXNDb250ZW50PFxuICAgICAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0PFR1aVNpemVTIHwgVHVpU2l6ZU0gfCBUdWlTaXplTD5cbiAgICA+IHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmludGVyYWN0aXZlID8gdGhpcy5hcnJvd01vZGUuZGlzYWJsZWQgOiB0aGlzLmFycm93TW9kZS5pbnRlcmFjdGl2ZTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRmaWVsZCA/IHRoaXMudGV4dGZpZWxkLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgOiBudWxsO1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgaXNOYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkgfHxcbiAgICAgICAgICAgICghIXRoaXMuaG9zdGVkRHJvcGRvd24gJiYgdGhpcy5ob3N0ZWREcm9wZG93bi5mb2N1c2VkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlID09PSBudWxsID8gJycgOiB0aGlzLnN0cmluZ2lmeSh0aGlzLnZhbHVlKSB8fCAnICc7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkQ29udGVudCgpOiBQb2x5bW9ycGhldXNDb250ZW50PFR1aVZhbHVlQ29udGVudENvbnRleHQ8VD4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVDb250ZW50IHx8IHRoaXMuY29tcHV0ZWRWYWx1ZTtcbiAgICB9XG5cbiAgICBvblZhbHVlQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShudWxsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQWN0aXZlWm9uZShhY3RpdmU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGFjdGl2ZSk7XG4gICAgfVxuXG4gICAgb25Ib3ZlcmVkKGhvdmVyZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVIb3ZlcmVkKGhvdmVyZWQpO1xuICAgIH1cblxuICAgIG9uS2V5RG93bkRlbGV0ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMudGV4dGZpZWxkQ2xlYW5lci5jbGVhbmVyKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKG51bGwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlT3B0aW9uKG9wdGlvbjogVCkge1xuICAgICAgICB0aGlzLmZvY3VzSW5wdXQoKTtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShvcHRpb24pO1xuICAgICAgICB0aGlzLmhvc3RlZERyb3Bkb3duPy51cGRhdGVPcGVuKGZhbHNlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZvY3VzSW5wdXQocHJldmVudFNjcm9sbDogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHNldE5hdGl2ZUZvY3VzZWQodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LCB0cnVlLCBwcmV2ZW50U2Nyb2xsKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -1,8 +1,8 @@
1
1
  import { __decorate, __param } from "tslib";
2
2
  import { ChangeDetectorRef, Directive, ElementRef, HostListener, Inject, Input, Optional, Output, Pipe, PipeTransform, Self, } from '@angular/core';
3
3
  import { NgControl } from '@angular/forms';
4
- import { AbstractTuiControl, isNativeFocused, round, tuiDefaultProp, typedFromEvent, } from '@taiga-ui/cdk';
5
- import { TUI_FLOATING_PRECISION } from '@taiga-ui/kit/constants';
4
+ import { AbstractTuiControl, isNativeFocused, tuiDefaultProp, typedFromEvent, } from '@taiga-ui/cdk';
5
+ import { tuiCheckKeyStepsHaveMinMaxPercents, tuiKeyStepValueToPercentage, tuiPercentageToKeyStepValue, } from '@taiga-ui/kit/utils';
6
6
  import { map } from 'rxjs/operators';
7
7
  import { TuiSliderComponent } from './slider.component';
8
8
  // @dynamic
@@ -29,9 +29,7 @@ let TuiSliderKeyStepsDirective = class TuiSliderKeyStepsDirective extends Abstra
29
29
  return ((_a = this.keySteps[this.keySteps.length - 1]) === null || _a === void 0 ? void 0 : _a[1]) || 100;
30
30
  }
31
31
  get controlValue() {
32
- const { valuePercentage } = this.slider;
33
- const [lowerStep, upperStep] = findKeyStepsBoundariesByFn(this.keySteps, ([keyStepPercentage, _]) => valuePercentage <= keyStepPercentage);
34
- return transformToControlValue(valuePercentage, lowerStep, upperStep);
32
+ return tuiPercentageToKeyStepValue(this.slider.valuePercentage, this.keySteps);
35
33
  }
36
34
  updateControlValue() {
37
35
  this.updateValue(this.controlValue);
@@ -40,16 +38,14 @@ let TuiSliderKeyStepsDirective = class TuiSliderKeyStepsDirective extends Abstra
40
38
  if (controlValue === null) {
41
39
  return;
42
40
  }
43
- const [lowerStep, upperStep] = findKeyStepsBoundariesByFn(this.keySteps, ([_, keyStepValue]) => controlValue <= keyStepValue);
44
- this.slider.value = this.transformToNativeValue(controlValue, lowerStep, upperStep);
41
+ this.slider.value = this.transformToNativeValue(controlValue);
45
42
  }
46
43
  getFallbackValue() {
47
44
  return 0;
48
45
  }
49
- transformToNativeValue(controlValue, [upperStepPercent, upperStepValue], [lowerStepPercent, lowerStepValue]) {
46
+ transformToNativeValue(controlValue) {
50
47
  const { min, max } = this.slider;
51
- const ratio = (controlValue - lowerStepValue) / (upperStepValue - lowerStepValue);
52
- const newValuePercentage = (upperStepPercent - lowerStepPercent) * ratio + lowerStepPercent;
48
+ const newValuePercentage = tuiKeyStepValueToPercentage(controlValue, this.keySteps);
53
49
  return (newValuePercentage * (max - min)) / 100 + min;
54
50
  }
55
51
  };
@@ -61,7 +57,7 @@ TuiSliderKeyStepsDirective.ctorParameters = () => [
61
57
  ];
62
58
  __decorate([
63
59
  Input(),
64
- tuiDefaultProp(checkHasMinMaxPercents, 'Should contain min and max values')
60
+ tuiDefaultProp(tuiCheckKeyStepsHaveMinMaxPercents, 'Should contain min and max values')
65
61
  ], TuiSliderKeyStepsDirective.prototype, "keySteps", void 0);
66
62
  __decorate([
67
63
  Output()
@@ -94,26 +90,11 @@ export { TuiSliderKeyStepsDirective };
94
90
  let TuiSliderTickLabelPipe = class TuiSliderTickLabelPipe {
95
91
  transform(tickIndex, totalSegments, keySteps) {
96
92
  const percentage = (100 / totalSegments) * tickIndex;
97
- const [lowerStep, upperStep] = findKeyStepsBoundariesByFn(keySteps, ([keyStepPercentage, _]) => percentage <= keyStepPercentage);
98
- return transformToControlValue(percentage, upperStep, lowerStep);
93
+ return tuiPercentageToKeyStepValue(percentage, keySteps);
99
94
  }
100
95
  };
101
96
  TuiSliderTickLabelPipe = __decorate([
102
97
  Pipe({ name: 'tuiSliderTickLabel' })
103
98
  ], TuiSliderTickLabelPipe);
104
99
  export { TuiSliderTickLabelPipe };
105
- function checkHasMinMaxPercents(steps) {
106
- return !steps.length || (steps[0][0] === 0 && steps[steps.length - 1][0] === 100);
107
- }
108
- function findKeyStepsBoundariesByFn(keySteps, fn) {
109
- const keyStepUpperIndex = keySteps.findIndex((ketStep, i) => i && fn(ketStep));
110
- const lowerStep = keySteps[keyStepUpperIndex - 1];
111
- const upperStep = keySteps[keyStepUpperIndex];
112
- return [lowerStep, upperStep];
113
- }
114
- function transformToControlValue(valuePercentage, [upperStepPercent, upperStepValue], [lowerStepPercent, lowerStepValue]) {
115
- const ratio = (valuePercentage - lowerStepPercent) / (upperStepPercent - lowerStepPercent);
116
- const controlValue = (upperStepValue - lowerStepValue) * ratio + lowerStepValue;
117
- return round(controlValue, TUI_FLOATING_PRECISION);
118
- }
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLWtleS1zdGVwcy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvc2xpZGVyLyIsInNvdXJjZXMiOlsic2xpZGVyLWtleS1zdGVwcy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFDSixhQUFhLEVBQ2IsSUFBSSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixLQUFLLEVBQ0wsY0FBYyxFQUVkLGNBQWMsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFL0QsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRXRELFdBQVc7QUFTWCxJQUFhLDBCQUEwQixHQUF2QyxNQUFhLDBCQUNULFNBQVEsa0JBQTBCO0lBc0NsQyxZQUlJLE9BQXlCLEVBQ0UsaUJBQW9DLEVBQzFCLFVBQXdDLEVBQ2hDLE1BQTBCO1FBRXZFLEtBQUssQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUhHLGVBQVUsR0FBVixVQUFVLENBQThCO1FBQ2hDLFdBQU0sR0FBTixNQUFNLENBQW9CO1FBeEMzRSxhQUFRLEdBQWdCLEVBQUUsQ0FBQztRQUczQixrQkFBYSxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3ZFLEdBQUcs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ZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgUGlwZSxcbiAgICBQaXBlVHJhbnNmb3JtLFxuICAgIFNlbGYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlDb250cm9sLFxuICAgIGlzTmF0aXZlRm9jdXNlZCxcbiAgICByb3VuZCxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgdHlwZWRGcm9tRXZlbnQsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUVUlfRkxPQVRJTkdfUFJFQ0lTSU9OfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbnN0YW50cyc7XG5pbXBvcnQge1R1aUtleVN0ZXBzfSBmcm9tICdAdGFpZ2EtdWkva2l0L3R5cGVzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7VHVpU2xpZGVyQ29tcG9uZW50fSBmcm9tICcuL3NsaWRlci5jb21wb25lbnQnO1xuXG4vLyBAZHluYW1pY1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdpbnB1dFt0dWlTbGlkZXJdW2tleVN0ZXBzXScsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIuYXJpYS12YWx1ZW5vd10nOiAnY29udHJvbFZhbHVlJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtdmFsdWVtaW5dJzogJ21pbicsXG4gICAgICAgICdbYXR0ci5hcmlhLXZhbHVlbWF4XSc6ICdtYXgnLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVNsaWRlcktleVN0ZXBzRGlyZWN0aXZlXG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aUNvbnRyb2w8bnVtYmVyPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoY2hlY2tIYXNNaW5NYXhQZXJjZW50cywgJ1Nob3VsZCBjb250YWluIG1pbiBhbmQgbWF4IHZhbHVlcycpXG4gICAga2V5U3RlcHM6IFR1aUtleVN0ZXBzID0gW107XG5cbiAgICBAT3V0cHV0KClcbiAgICBrZXlTdGVwc0lucHV0ID0gdHlwZWRGcm9tRXZlbnQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdpbnB1dCcpLnBpcGUoXG4gICAgICAgIG1hcCgoKSA9PiB0aGlzLmNvbnRyb2xWYWx1ZSksXG4gICAgKTtcblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcHV0ZWREaXNhYmxlZCA/IG51bGwgOiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGlzTmF0aXZlRm9jdXNlZCh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIGdldCBtaW4oKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMua2V5U3RlcHNbMF0/LlsxXSB8fCAwO1xuICAgIH1cblxuICAgIGdldCBtYXgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMua2V5U3RlcHNbdGhpcy5rZXlTdGVwcy5sZW5ndGggLSAxXT8uWzFdIHx8IDEwMDtcbiAgICB9XG5cbiAgICBnZXQgY29udHJvbFZhbHVlKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHt2YWx1ZVBlcmNlbnRhZ2V9ID0gdGhpcy5zbGlkZXI7XG4gICAgICAgIGNvbnN0IFtsb3dlclN0ZXAsIHVwcGVyU3RlcF0gPSBmaW5kS2V5U3RlcHNCb3VuZGFyaWVzQnlGbihcbiAgICAgICAgICAgIHRoaXMua2V5U3RlcHMsXG4gICAgICAgICAgICAoW2tleVN0ZXBQZXJjZW50YWdlLCBfXSkgPT4gdmFsdWVQZXJjZW50YWdlIDw9IGtleVN0ZXBQZXJjZW50YWdlLFxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiB0cmFuc2Zvcm1Ub0NvbnRyb2xWYWx1ZSh2YWx1ZVBlcmNlbnRhZ2UsIGxvd2VyU3RlcCwgdXBwZXJTdGVwKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KE5nQ29udHJvbClcbiAgICAgICAgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PixcbiAgICAgICAgQEluamVjdChUdWlTbGlkZXJDb21wb25lbnQpIHByaXZhdGUgcmVhZG9ubHkgc2xpZGVyOiBUdWlTbGlkZXJDb21wb25lbnQsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNvbnRyb2wsIGNoYW5nZURldGVjdG9yUmVmKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjaGFuZ2UnKVxuICAgIHVwZGF0ZUNvbnRyb2xWYWx1ZSgpIHtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh0aGlzLmNvbnRyb2xWYWx1ZSk7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZShjb250cm9sVmFsdWU6IG51bWJlciB8IG51bGwpIHtcbiAgICAgICAgaWYgKGNvbnRyb2xWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgW2xvd2VyU3RlcCwgdXBwZXJTdGVwXSA9IGZpbmRLZXlTdGVwc0JvdW5kYXJpZXNCeUZuKFxuICAgICAgICAgICAgdGhpcy5rZXlTdGVwcyxcbiAgICAgICAgICAgIChbXywga2V5U3RlcFZhbHVlXSkgPT4gY29udHJvbFZhbHVlIDw9IGtleVN0ZXBWYWx1ZSxcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnNsaWRlci52YWx1ZSA9IHRoaXMudHJhbnNmb3JtVG9OYXRpdmVWYWx1ZShcbiAgICAgICAgICAgIGNvbnRyb2xWYWx1ZSxcbiAgICAgICAgICAgIGxvd2VyU3RlcCxcbiAgICAgICAgICAgIHVwcGVyU3RlcCxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RmFsbGJhY2tWYWx1ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRyYW5zZm9ybVRvTmF0aXZlVmFsdWUoXG4gICAgICAgIGNvbnRyb2xWYWx1ZTogbnVtYmVyLFxuICAgICAgICBbdXBwZXJTdGVwUGVyY2VudCwgdXBwZXJTdGVwVmFsdWVdOiBbbnVtYmVyLCBudW1iZXJdLFxuICAgICAgICBbbG93ZXJTdGVwUGVyY2VudCwgbG93ZXJTdGVwVmFsdWVdOiBbbnVtYmVyLCBudW1iZXJdLFxuICAgICk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHttaW4sIG1heH0gPSB0aGlzLnNsaWRlcjtcbiAgICAgICAgY29uc3QgcmF0aW8gPSAoY29udHJvbFZhbHVlIC0gbG93ZXJTdGVwVmFsdWUpIC8gKHVwcGVyU3RlcFZhbHVlIC0gbG93ZXJTdGVwVmFsdWUpO1xuICAgICAgICBjb25zdCBuZXdWYWx1ZVBlcmNlbnRhZ2UgPVxuICAgICAgICAgICAgKHVwcGVyU3RlcFBlcmNlbnQgLSBsb3dlclN0ZXBQZXJjZW50KSAqIHJhdGlvICsgbG93ZXJTdGVwUGVyY2VudDtcblxuICAgICAgICByZXR1cm4gKG5ld1ZhbHVlUGVyY2VudGFnZSAqIChtYXggLSBtaW4pKSAvIDEwMCArIG1pbjtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgRE9OVCBVU0UgSVQhIEl0IGlzIGp1c3QgdGVtcG9yYXJ5IHNvbHV0aW9uIGZvciBpbnRlcm5hbCBwdXJwb3NlcyBvbmx5LiBXZSB3aWxsIGRlbGV0ZSBpdCBpbiBuZXh0IG1ham9yIHJlbGVhc2UuXG4gKiBUT0RPIGRlbGV0ZSBpdCBpbiB2My4wXG4gKlxuICovXG5AUGlwZSh7bmFtZTogJ3R1aVNsaWRlclRpY2tMYWJlbCd9KVxuZXhwb3J0IGNsYXNzIFR1aVNsaWRlclRpY2tMYWJlbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0odGlja0luZGV4OiBudW1iZXIsIHRvdGFsU2VnbWVudHM6IG51bWJlciwga2V5U3RlcHM6IFR1aUtleVN0ZXBzKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgcGVyY2VudGFnZSA9ICgxMDAgLyB0b3RhbFNlZ21lbnRzKSAqIHRpY2tJbmRleDtcbiAgICAgICAgY29uc3QgW2xvd2VyU3RlcCwgdXBwZXJTdGVwXSA9IGZpbmRLZXlTdGVwc0JvdW5kYXJpZXNCeUZuKFxuICAgICAgICAgICAga2V5U3RlcHMsXG4gICAgICAgICAgICAoW2tleVN0ZXBQZXJjZW50YWdlLCBfXSkgPT4gcGVyY2VudGFnZSA8PSBrZXlTdGVwUGVyY2VudGFnZSxcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gdHJhbnNmb3JtVG9Db250cm9sVmFsdWUocGVyY2VudGFnZSwgdXBwZXJTdGVwLCBsb3dlclN0ZXApO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gY2hlY2tIYXNNaW5NYXhQZXJjZW50cyhzdGVwczogVHVpS2V5U3RlcHMpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXN0ZXBzLmxlbmd0aCB8fCAoc3RlcHNbMF1bMF0gPT09IDAgJiYgc3RlcHNbc3RlcHMubGVuZ3RoIC0gMV1bMF0gPT09IDEwMCk7XG59XG5cbmZ1bmN0aW9uIGZpbmRLZXlTdGVwc0JvdW5kYXJpZXNCeUZuKFxuICAgIGtleVN0ZXBzOiBUdWlLZXlTdGVwcyxcbiAgICBmbjogKFtrZXlTdGVwUGVyY2VudCwga2V5U3RlcFZhbHVlXTogW251bWJlciwgbnVtYmVyXSkgPT4gYm9vbGVhbixcbik6IFtbbnVtYmVyLCBudW1iZXJdLCBbbnVtYmVyLCBudW1iZXJdXSB7XG4gICAgY29uc3Qga2V5U3RlcFVwcGVySW5kZXggPSBrZXlTdGVwcy5maW5kSW5kZXgoKGtldFN0ZXAsIGkpID0+IGkgJiYgZm4oa2V0U3RlcCkpO1xuICAgIGNvbnN0IGxvd2VyU3RlcCA9IGtleVN0ZXBzW2tleVN0ZXBVcHBlckluZGV4IC0gMV07XG4gICAgY29uc3QgdXBwZXJTdGVwID0ga2V5U3RlcHNba2V5U3RlcFVwcGVySW5kZXhdO1xuXG4gICAgcmV0dXJuIFtsb3dlclN0ZXAsIHVwcGVyU3RlcF07XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybVRvQ29udHJvbFZhbHVlKFxuICAgIHZhbHVlUGVyY2VudGFnZTogbnVtYmVyLFxuICAgIFt1cHBlclN0ZXBQZXJjZW50LCB1cHBlclN0ZXBWYWx1ZV06IFtudW1iZXIsIG51bWJlcl0sXG4gICAgW2xvd2VyU3RlcFBlcmNlbnQsIGxvd2VyU3RlcFZhbHVlXTogW251bWJlciwgbnVtYmVyXSxcbik6IG51bWJlciB7XG4gICAgY29uc3QgcmF0aW8gPVxuICAgICAgICAodmFsdWVQZXJjZW50YWdlIC0gbG93ZXJTdGVwUGVyY2VudCkgLyAodXBwZXJTdGVwUGVyY2VudCAtIGxvd2VyU3RlcFBlcmNlbnQpO1xuICAgIGNvbnN0IGNvbnRyb2xWYWx1ZSA9ICh1cHBlclN0ZXBWYWx1ZSAtIGxvd2VyU3RlcFZhbHVlKSAqIHJhdGlvICsgbG93ZXJTdGVwVmFsdWU7XG5cbiAgICByZXR1cm4gcm91bmQoY29udHJvbFZhbHVlLCBUVUlfRkxPQVRJTkdfUFJFQ0lTSU9OKTtcbn1cbiJdfQ==
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLWtleS1zdGVwcy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvc2xpZGVyLyIsInNvdXJjZXMiOlsic2xpZGVyLWtleS1zdGVwcy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFDSixhQUFhLEVBQ2IsSUFBSSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixjQUFjLEVBRWQsY0FBYyxHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0gsa0NBQWtDLEVBQ2xDLDJCQUEyQixFQUMzQiwyQkFBMkIsR0FDOUIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFdEQsV0FBVztBQVNYLElBQWEsMEJBQTBCLEdBQXZDLE1BQWEsMEJBQ1QsU0FBUSxrQkFBMEI7SUFtQ2xDLFlBSUksT0FBeUIsRUFDRSxpQkFBb0MsRUFDMUIsVUFBd0MsRUFDaEMsTUFBMEI7UUFFdkUsS0FBSyxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBSEcsZUFBVSxHQUFWLFVBQVUsQ0FBOEI7UUFDaEMsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUFsQzNFLGFBQVEsR0FBZ0IsRUFBRSxDQUFDO1FBRzNCLGtCQUFhLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFD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RVksMEJBQTBCO0FBNEV2Qzs7OztHQUlHO0FBRUgsSUFBYSxzQkFBc0IsR0FBbkMsTUFBYSxzQkFBc0I7SUFDL0IsU0FBUyxDQUFDLFNBQWlCLEVBQUUsYUFBcUIsRUFBRSxRQUFxQjtRQUNyRSxNQUFNLFVBQVUsR0FBRyxDQUFDLEdBQUcsR0FBRyxhQUFhLENBQUMsR0FBRyxTQUFTLENBQUM7UUFFckQsT0FBTywyQkFBMkIsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDN0QsQ0FBQztDQUNKLENBQUE7QUFOWSxzQkFBc0I7SUFEbEMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLG9CQUFvQixFQUFDLENBQUM7R0FDdEIsc0JBQXNCLENBTWxDO1NBTlksc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBQaXBlLFxuICAgIFBpcGVUcmFuc2Zvcm0sXG4gICAgU2VsZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aUNvbnRyb2wsXG4gICAgaXNOYXRpdmVGb2N1c2VkLFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICB0eXBlZEZyb21FdmVudCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1R1aUtleVN0ZXBzfSBmcm9tICdAdGFpZ2EtdWkva2l0L3R5cGVzJztcbmltcG9ydCB7XG4gICAgdHVpQ2hlY2tLZXlTdGVwc0hhdmVNaW5NYXhQZXJjZW50cyxcbiAgICB0dWlLZXlTdGVwVmFsdWVUb1BlcmNlbnRhZ2UsXG4gICAgdHVpUGVyY2VudGFnZVRvS2V5U3RlcFZhbHVlLFxufSBmcm9tICdAdGFpZ2EtdWkva2l0L3V0aWxzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7VHVpU2xpZGVyQ29tcG9uZW50fSBmcm9tICcuL3NsaWRlci5jb21wb25lbnQnO1xuXG4vLyBAZHluYW1pY1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdpbnB1dFt0dWlTbGlkZXJdW2tleVN0ZXBzXScsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIuYXJpYS12YWx1ZW5vd10nOiAnY29udHJvbFZhbHVlJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtdmFsdWVtaW5dJzogJ21pbicsXG4gICAgICAgICdbYXR0ci5hcmlhLXZhbHVlbWF4XSc6ICdtYXgnLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVNsaWRlcktleVN0ZXBzRGlyZWN0aXZlXG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aUNvbnRyb2w8bnVtYmVyPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoXG4gICAgICAgIHR1aUNoZWNrS2V5U3RlcHNIYXZlTWluTWF4UGVyY2VudHMsXG4gICAgICAgICdTaG91bGQgY29udGFpbiBtaW4gYW5kIG1heCB2YWx1ZXMnLFxuICAgIClcbiAgICBrZXlTdGVwczogVHVpS2V5U3RlcHMgPSBbXTtcblxuICAgIEBPdXRwdXQoKVxuICAgIGtleVN0ZXBzSW5wdXQgPSB0eXBlZEZyb21FdmVudCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2lucHV0JykucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHRoaXMuY29udHJvbFZhbHVlKSxcbiAgICApO1xuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlZERpc2FibGVkID8gbnVsbCA6IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gaXNOYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgZ2V0IG1pbigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5rZXlTdGVwc1swXT8uWzFdIHx8IDA7XG4gICAgfVxuXG4gICAgZ2V0IG1heCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5rZXlTdGVwc1t0aGlzLmtleVN0ZXBzLmxlbmd0aCAtIDFdPy5bMV0gfHwgMTAwO1xuICAgIH1cblxuICAgIGdldCBjb250cm9sVmFsdWUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHR1aVBlcmNlbnRhZ2VUb0tleVN0ZXBWYWx1ZSh0aGlzLnNsaWRlci52YWx1ZVBlcmNlbnRhZ2UsIHRoaXMua2V5U3RlcHMpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KFR1aVNsaWRlckNvbXBvbmVudCkgcHJpdmF0ZSByZWFkb25seSBzbGlkZXI6IFR1aVNsaWRlckNvbXBvbmVudCxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NoYW5nZScpXG4gICAgdXBkYXRlQ29udHJvbFZhbHVlKCkge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHRoaXMuY29udHJvbFZhbHVlKTtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKGNvbnRyb2xWYWx1ZTogbnVtYmVyIHwgbnVsbCkge1xuICAgICAgICBpZiAoY29udHJvbFZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNsaWRlci52YWx1ZSA9IHRoaXMudHJhbnNmb3JtVG9OYXRpdmVWYWx1ZShjb250cm9sVmFsdWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRGYWxsYmFja1ZhbHVlKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIHByaXZhdGUgdHJhbnNmb3JtVG9OYXRpdmVWYWx1ZShjb250cm9sVmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHttaW4sIG1heH0gPSB0aGlzLnNsaWRlcjtcbiAgICAgICAgY29uc3QgbmV3VmFsdWVQZXJjZW50YWdlID0gdHVpS2V5U3RlcFZhbHVlVG9QZXJjZW50YWdlKFxuICAgICAgICAgICAgY29udHJvbFZhbHVlLFxuICAgICAgICAgICAgdGhpcy5rZXlTdGVwcyxcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gKG5ld1ZhbHVlUGVyY2VudGFnZSAqIChtYXggLSBtaW4pKSAvIDEwMCArIG1pbjtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgRE9OVCBVU0UgSVQhIEl0IGlzIGp1c3QgdGVtcG9yYXJ5IHNvbHV0aW9uIGZvciBpbnRlcm5hbCBwdXJwb3NlcyBvbmx5LiBXZSB3aWxsIGRlbGV0ZSBpdCBpbiBuZXh0IG1ham9yIHJlbGVhc2UuXG4gKiBUT0RPIGRlbGV0ZSBpdCBpbiB2My4wXG4gKlxuICovXG5AUGlwZSh7bmFtZTogJ3R1aVNsaWRlclRpY2tMYWJlbCd9KVxuZXhwb3J0IGNsYXNzIFR1aVNsaWRlclRpY2tMYWJlbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0odGlja0luZGV4OiBudW1iZXIsIHRvdGFsU2VnbWVudHM6IG51bWJlciwga2V5U3RlcHM6IFR1aUtleVN0ZXBzKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgcGVyY2VudGFnZSA9ICgxMDAgLyB0b3RhbFNlZ21lbnRzKSAqIHRpY2tJbmRleDtcblxuICAgICAgICByZXR1cm4gdHVpUGVyY2VudGFnZVRvS2V5U3RlcFZhbHVlKHBlcmNlbnRhZ2UsIGtleVN0ZXBzKTtcbiAgICB9XG59XG4iXX0=
@@ -1,6 +1,9 @@
1
- import { __decorate } from "tslib";
2
- import { Directive, HostListener, Input } from '@angular/core';
3
- import { tuiDefaultProp } from '@taiga-ui/cdk';
1
+ import { __decorate, __param } from "tslib";
2
+ import { DOCUMENT } from '@angular/common';
3
+ import { Directive, ElementRef, HostListener, Inject, Input } from '@angular/core';
4
+ import { tuiCoerceBooleanProperty, tuiDefaultProp, TuiDestroyService, typedFromEvent, } from '@taiga-ui/cdk';
5
+ import { combineLatest, merge, Observable } from 'rxjs';
6
+ import { filter, mapTo, takeUntil, tap } from 'rxjs/operators';
4
7
  const SLIDER_INTERACTION_KEYS = new Set([
5
8
  'ArrowLeft',
6
9
  'ArrowRight',
@@ -15,12 +18,30 @@ const SLIDER_INTERACTION_KEYS = new Set([
15
18
  * Native <input type='range' readonly> doesn't work.
16
19
  * This directive imitates this native behaviour.
17
20
  */
21
+ // @dynamic
18
22
  let TuiSliderReadonlyDirective = class TuiSliderReadonlyDirective {
19
- constructor() {
23
+ constructor(elementRef, documentRef, destroy$) {
20
24
  this.readonly = true;
25
+ const touchStart$ = typedFromEvent(elementRef.nativeElement, 'touchstart', {
26
+ passive: false,
27
+ });
28
+ const touchMove$ = typedFromEvent(documentRef, 'touchmove', {
29
+ passive: false,
30
+ });
31
+ const touchEnd$ = typedFromEvent(documentRef, 'touchend', {
32
+ passive: true,
33
+ });
34
+ const shouldPreventMove$ = merge(touchStart$.pipe(tap(e => this.preventEvent(e)), mapTo(true)), touchEnd$.pipe(mapTo(false)));
35
+ /**
36
+ * @bad TODO think about another solution.
37
+ * Keep in mind that preventing touch event (on slider) inside `@HostListener('touchstart')` doesn't work for mobile chrome.
38
+ */
39
+ combineLatest([touchMove$, shouldPreventMove$])
40
+ .pipe(filter(([_, shouldPreventMove]) => shouldPreventMove), takeUntil(destroy$))
41
+ .subscribe(([moveEvent]) => this.preventEvent(moveEvent));
21
42
  }
22
43
  preventEvent(event) {
23
- if (this.readonly === '' || this.readonly) {
44
+ if (event.cancelable && tuiCoerceBooleanProperty(this.readonly)) {
24
45
  event.preventDefault();
25
46
  }
26
47
  }
@@ -30,13 +51,17 @@ let TuiSliderReadonlyDirective = class TuiSliderReadonlyDirective {
30
51
  }
31
52
  }
32
53
  };
54
+ TuiSliderReadonlyDirective.ctorParameters = () => [
55
+ { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
56
+ { type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
57
+ { type: Observable, decorators: [{ type: Inject, args: [TuiDestroyService,] }] }
58
+ ];
33
59
  __decorate([
34
60
  Input(),
35
61
  tuiDefaultProp()
36
62
  ], TuiSliderReadonlyDirective.prototype, "readonly", void 0);
37
63
  __decorate([
38
- HostListener('mousedown', ['$event']),
39
- HostListener('touchstart', ['$event'])
64
+ HostListener('mousedown', ['$event'])
40
65
  ], TuiSliderReadonlyDirective.prototype, "preventEvent", null);
41
66
  __decorate([
42
67
  HostListener('keydown', ['$event'])
@@ -44,7 +69,11 @@ __decorate([
44
69
  TuiSliderReadonlyDirective = __decorate([
45
70
  Directive({
46
71
  selector: 'input[tuiSlider][readonly]',
47
- })
72
+ providers: [TuiDestroyService],
73
+ }),
74
+ __param(0, Inject(ElementRef)),
75
+ __param(1, Inject(DOCUMENT)),
76
+ __param(2, Inject(TuiDestroyService))
48
77
  ], TuiSliderReadonlyDirective);
49
78
  export { TuiSliderReadonlyDirective };
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLXJlYWRvbmx5LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9zbGlkZXIvIiwic291cmNlcyI6WyJzbGlkZXItcmVhZG9ubHkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU3QyxNQUFNLHVCQUF1QixHQUFHLElBQUksR0FBRyxDQUFDO0lBQ3BDLFdBQVc7SUFDWCxZQUFZO0lBQ1osU0FBUztJQUNULFdBQVc7SUFDWCxNQUFNO0lBQ04sS0FBSztJQUNMLFFBQVE7SUFDUixVQUFVO0NBQ2IsQ0FBQyxDQUFDO0FBRUg7OztHQUdHO0FBSUgsSUFBYSwwQkFBMEIsR0FBdkMsTUFBYSwwQkFBMEI7SUFBdkM7UUFHSSxhQUFRLEdBQWlCLElBQUksQ0FBQztJQWdCbEMsQ0FBQztJQVpHLFlBQVksQ0FBQyxLQUFZO1FBQ3JCLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxFQUFFLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN2QyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDMUI7SUFDTCxDQUFDO0lBR0QsMEJBQTBCLENBQUMsS0FBb0I7UUFDM0MsSUFBSSx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDNUI7SUFDTCxDQUFDO0NBQ0osQ0FBQTtBQWhCRztJQUZDLEtBQUssRUFBRTtJQUNQLGNBQWMsRUFBRTs0REFDYTtBQUk5QjtJQUZDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7OERBS3RDO0FBR0Q7SUFEQyxZQUFZLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7NEVBS25DO0FBbEJRLDBCQUEwQjtJQUh0QyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsNEJBQTRCO0tBQ3pDLENBQUM7R0FDVywwQkFBMEIsQ0FtQnRDO1NBbkJZLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dHVpRGVmYXVsdFByb3B9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuXG5jb25zdCBTTElERVJfSU5URVJBQ1RJT05fS0VZUyA9IG5ldyBTZXQoW1xuICAgICdBcnJvd0xlZnQnLFxuICAgICdBcnJvd1JpZ2h0JyxcbiAgICAnQXJyb3dVcCcsXG4gICAgJ0Fycm93RG93bicsXG4gICAgJ0hvbWUnLFxuICAgICdFbmQnLFxuICAgICdQYWdlVXAnLFxuICAgICdQYWdlRG93bicsXG5dKTtcblxuLyoqXG4gKiBOYXRpdmUgPGlucHV0IHR5cGU9J3JhbmdlJyByZWFkb25seT4gZG9lc24ndCB3b3JrLlxuICogVGhpcyBkaXJlY3RpdmUgaW1pdGF0ZXMgdGhpcyBuYXRpdmUgYmVoYXZpb3VyLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2lucHV0W3R1aVNsaWRlcl1bcmVhZG9ubHldJyxcbn0pXG5leHBvcnQgY2xhc3MgVHVpU2xpZGVyUmVhZG9ubHlEaXJlY3RpdmUge1xuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICByZWFkb25seTogJycgfCBib29sZWFuID0gdHJ1ZTtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pXG4gICAgQEhvc3RMaXN0ZW5lcigndG91Y2hzdGFydCcsIFsnJGV2ZW50J10pXG4gICAgcHJldmVudEV2ZW50KGV2ZW50OiBFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5yZWFkb25seSA9PT0gJycgfHwgdGhpcy5yZWFkb25seSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIHByZXZlbnRLZXlib2FyZEludGVyYWN0aW9uKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmIChTTElERVJfSU5URVJBQ1RJT05fS0VZUy5oYXMoZXZlbnQua2V5KSkge1xuICAgICAgICAgICAgdGhpcy5wcmV2ZW50RXZlbnQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLXJlYWRvbmx5LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9zbGlkZXIvIiwic291cmNlcyI6WyJzbGlkZXItcmVhZG9ubHkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUNILHdCQUF3QixFQUN4QixjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLGNBQWMsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGFBQWEsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3RELE9BQU8sRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3RCxNQUFNLHVCQUF1QixHQUFHLElBQUksR0FBRyxDQUFDO0lBQ3BDLFdBQVc7SUFDWCxZQUFZO0lBQ1osU0FBUztJQUNULFdBQVc7SUFDWCxNQUFNO0lBQ04sS0FBSztJQUNMLFFBQVE7SUFDUixVQUFVO0NBQ2IsQ0FBQyxDQUFDO0FBRUg7OztHQUdHO0FBQ0gsV0FBVztBQUtYLElBQWEsMEJBQTBCLEdBQXZDLE1BQWEsMEJBQTBCO0lBS25DLFlBQ3dCLFVBQXdDLEVBQzFDLFdBQXFCLEVBRXZDLFFBQTZCO1FBTmpDLGFBQVEsR0FBcUIsSUFBSSxDQUFDO1FBUTlCLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFlBQVksRUFBRTtZQUN2RSxPQUFPLEVBQUUsS0FBSztTQUNqQixDQUFDLENBQUM7UUFDSCxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRTtZQUN4RCxPQUFPLEVBQUUsS0FBSztTQUNqQixDQUFDLENBQUM7UUFDSCxNQUFNLFNBQVMsR0FBRyxjQUFjLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRTtZQUN0RCxPQUFPLEVBQUUsSUFBSTtTQUNoQixDQUFDLENBQUM7UUFFSCxNQUFNLGtCQUFrQixHQUFHLEtBQUssQ0FDNUIsV0FBVyxDQUFDLElBQUksQ0FDWixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQzlCLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FDZCxFQUNELFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQy9CLENBQUM7UUFFRjs7O1dBR0c7UUFDSCxhQUFhLENBQUMsQ0FBQyxVQUFVLEVBQUUsa0JBQWtCLENBQUMsQ0FBQzthQUMxQyxJQUFJLENBQ0QsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLENBQUMsRUFBRSxFQUFFLENBQUMsaUJBQWlCLENBQUMsRUFDckQsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUN0QjthQUNBLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBR0QsWUFBWSxDQUFDLEtBQVk7UUFDckIsSUFBSSxLQUFLLENBQUMsVUFBVSxJQUFJLHdCQUF3QixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM3RCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDMUI7SUFDTCxDQUFDO0lBR0QsMEJBQTBCLENBQUMsS0FBb0I7UUFDM0MsSUFBSSx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDNUI7SUFDTCxDQUFDO0NBQ0osQ0FBQTs7WUFoRHVDLFVBQVUsdUJBQXpDLE1BQU0sU0FBQyxVQUFVO1lBQ2EsUUFBUSx1QkFBdEMsTUFBTSxTQUFDLFFBQVE7WUFFTixVQUFVLHVCQURuQixNQUFNLFNBQUMsaUJBQWlCOztBQUw3QjtJQUZDLEtBQUssRUFBRTtJQUNQLGNBQWMsRUFBRTs0REFDaUI7QUF1Q2xDO0lBREMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDOzhEQUtyQztBQUdEO0lBREMsWUFBWSxDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDOzRFQUtuQztBQXJEUSwwQkFBMEI7SUFKdEMsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLDRCQUE0QjtRQUN0QyxTQUFTLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztLQUNqQyxDQUFDO0lBT08sV0FBQSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDbEIsV0FBQSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDaEIsV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtHQVJyQiwwQkFBMEIsQ0FzRHRDO1NBdERZLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgdHVpQ29lcmNlQm9vbGVhblByb3BlcnR5LFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aURlc3Ryb3lTZXJ2aWNlLFxuICAgIHR5cGVkRnJvbUV2ZW50LFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgbWVyZ2UsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcFRvLCB0YWtlVW50aWwsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5jb25zdCBTTElERVJfSU5URVJBQ1RJT05fS0VZUyA9IG5ldyBTZXQoW1xuICAgICdBcnJvd0xlZnQnLFxuICAgICdBcnJvd1JpZ2h0JyxcbiAgICAnQXJyb3dVcCcsXG4gICAgJ0Fycm93RG93bicsXG4gICAgJ0hvbWUnLFxuICAgICdFbmQnLFxuICAgICdQYWdlVXAnLFxuICAgICdQYWdlRG93bicsXG5dKTtcblxuLyoqXG4gKiBOYXRpdmUgPGlucHV0IHR5cGU9J3JhbmdlJyByZWFkb25seT4gZG9lc24ndCB3b3JrLlxuICogVGhpcyBkaXJlY3RpdmUgaW1pdGF0ZXMgdGhpcyBuYXRpdmUgYmVoYXZpb3VyLlxuICovXG4vLyBAZHluYW1pY1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdpbnB1dFt0dWlTbGlkZXJdW3JlYWRvbmx5XScsXG4gICAgcHJvdmlkZXJzOiBbVHVpRGVzdHJveVNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlTbGlkZXJSZWFkb25seURpcmVjdGl2ZSB7XG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHJlYWRvbmx5OiBzdHJpbmcgfCBib29sZWFuID0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIGRvY3VtZW50UmVmOiBEb2N1bWVudCxcbiAgICAgICAgQEluamVjdChUdWlEZXN0cm95U2VydmljZSlcbiAgICAgICAgZGVzdHJveSQ6IE9ic2VydmFibGU8dW5rbm93bj4sXG4gICAgKSB7XG4gICAgICAgIGNvbnN0IHRvdWNoU3RhcnQkID0gdHlwZWRGcm9tRXZlbnQoZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndG91Y2hzdGFydCcsIHtcbiAgICAgICAgICAgIHBhc3NpdmU6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgdG91Y2hNb3ZlJCA9IHR5cGVkRnJvbUV2ZW50KGRvY3VtZW50UmVmLCAndG91Y2htb3ZlJywge1xuICAgICAgICAgICAgcGFzc2l2ZTogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCB0b3VjaEVuZCQgPSB0eXBlZEZyb21FdmVudChkb2N1bWVudFJlZiwgJ3RvdWNoZW5kJywge1xuICAgICAgICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3Qgc2hvdWxkUHJldmVudE1vdmUkID0gbWVyZ2UoXG4gICAgICAgICAgICB0b3VjaFN0YXJ0JC5waXBlKFxuICAgICAgICAgICAgICAgIHRhcChlID0+IHRoaXMucHJldmVudEV2ZW50KGUpKSxcbiAgICAgICAgICAgICAgICBtYXBUbyh0cnVlKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICB0b3VjaEVuZCQucGlwZShtYXBUbyhmYWxzZSkpLFxuICAgICAgICApO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAYmFkIFRPRE8gdGhpbmsgYWJvdXQgYW5vdGhlciBzb2x1dGlvbi5cbiAgICAgICAgICogS2VlcCBpbiBtaW5kIHRoYXQgcHJldmVudGluZyB0b3VjaCBldmVudCAob24gc2xpZGVyKSBpbnNpZGUgYEBIb3N0TGlzdGVuZXIoJ3RvdWNoc3RhcnQnKWAgZG9lc24ndCB3b3JrIGZvciBtb2JpbGUgY2hyb21lLlxuICAgICAgICAgKi9cbiAgICAgICAgY29tYmluZUxhdGVzdChbdG91Y2hNb3ZlJCwgc2hvdWxkUHJldmVudE1vdmUkXSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcigoW18sIHNob3VsZFByZXZlbnRNb3ZlXSkgPT4gc2hvdWxkUHJldmVudE1vdmUpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbChkZXN0cm95JCksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChbbW92ZUV2ZW50XSkgPT4gdGhpcy5wcmV2ZW50RXZlbnQobW92ZUV2ZW50KSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2Vkb3duJywgWyckZXZlbnQnXSlcbiAgICBwcmV2ZW50RXZlbnQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudC5jYW5jZWxhYmxlICYmIHR1aUNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh0aGlzLnJlYWRvbmx5KSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIHByZXZlbnRLZXlib2FyZEludGVyYWN0aW9uKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmIChTTElERVJfSU5URVJBQ1RJT05fS0VZUy5oYXMoZXZlbnQua2V5KSkge1xuICAgICAgICAgICAgdGhpcy5wcmV2ZW50RXZlbnQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19