@taiga-ui/kit 2.42.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 (334) 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-utils-math.umd.js +253 -4
  99. package/bundles/taiga-ui-kit-utils-math.umd.js.map +1 -1
  100. package/bundles/taiga-ui-kit-utils-math.umd.min.js +15 -1
  101. package/bundles/taiga-ui-kit-utils-math.umd.min.js.map +1 -1
  102. package/bundles/taiga-ui-kit-utils.umd.js +12 -4
  103. package/bundles/taiga-ui-kit-utils.umd.js.map +1 -1
  104. package/bundles/taiga-ui-kit-utils.umd.min.js +1 -1
  105. package/components/accordion/accordion-item/accordion-item.component.d.ts +2 -2
  106. package/components/avatar/taiga-ui-kit-components-avatar.metadata.json +1 -1
  107. package/components/combo-box/combo-box.component.d.ts +1 -2
  108. package/components/combo-box/taiga-ui-kit-components-combo-box.metadata.json +1 -1
  109. package/components/data-list-wrapper/data-list-group-wrapper.component.d.ts +5 -4
  110. package/components/data-list-wrapper/data-list-wrapper.component.d.ts +3 -13
  111. package/components/data-list-wrapper/data-list-wrapper.d.ts +15 -0
  112. package/components/data-list-wrapper/index.d.ts +1 -0
  113. package/components/data-list-wrapper/taiga-ui-kit-components-data-list-wrapper.metadata.json +1 -1
  114. package/components/input-date-time/taiga-ui-kit-components-input-date-time.metadata.json +1 -1
  115. package/components/input-file/file/file.component.d.ts +2 -2
  116. package/components/input-month/taiga-ui-kit-components-input-month.metadata.json +1 -1
  117. package/components/input-phone/input-phone.component.d.ts +2 -2
  118. package/components/input-range/input-range.component.d.ts +1 -1
  119. package/components/input-tag/input-tag.component.d.ts +3 -6
  120. package/components/input-tag/taiga-ui-kit-components-input-tag.metadata.json +1 -1
  121. package/components/input-time/input-time.component.d.ts +2 -2
  122. package/components/input-time/taiga-ui-kit-components-input-time.metadata.json +1 -1
  123. package/components/line-clamp/index.d.ts +0 -1
  124. package/components/line-clamp/line-clamp.component.d.ts +0 -1
  125. package/components/line-clamp/taiga-ui-kit-components-line-clamp.metadata.json +1 -1
  126. package/components/multi-select/multi-select.component.d.ts +2 -2
  127. package/components/multi-select/taiga-ui-kit-components-multi-select.metadata.json +1 -1
  128. package/components/radio/radio.component.d.ts +2 -2
  129. package/components/radio-block/taiga-ui-kit-components-radio-block.metadata.json +1 -1
  130. package/components/radio-labeled/taiga-ui-kit-components-radio-labeled.metadata.json +1 -1
  131. package/components/range/range.component.d.ts +11 -2
  132. package/components/range/taiga-ui-kit-components-range.metadata.json +1 -1
  133. package/components/select/select.component.d.ts +0 -1
  134. package/components/select/taiga-ui-kit-components-select.metadata.json +1 -1
  135. package/components/slider/slider-readonly.directive.d.ts +4 -1
  136. package/components/slider/taiga-ui-kit-components-slider.metadata.json +1 -1
  137. package/components/stepper/taiga-ui-kit-components-stepper.metadata.json +1 -1
  138. package/components/tabs/tabs-with-more/tabs-with-more.component.d.ts +2 -2
  139. package/components/tabs/taiga-ui-kit-components-tabs.metadata.json +1 -1
  140. package/components/text-area/taiga-ui-kit-components-text-area.metadata.json +1 -1
  141. package/components/tree/taiga-ui-kit-components-tree.metadata.json +1 -1
  142. package/directives/dropdown-selection/dropdown-selection.directive.d.ts +1 -1
  143. package/enums/dropdown-position.d.ts +2 -1
  144. package/enums/step-state.d.ts +2 -1
  145. package/enums/taiga-ui-kit-enums.metadata.json +1 -1
  146. package/esm2015/abstract/slider/slider.js +3 -2
  147. package/esm2015/components/accordion/accordion-item/accordion-item.component.js +1 -1
  148. package/esm2015/components/avatar/avatar.component.js +2 -2
  149. package/esm2015/components/combo-box/combo-box.component.js +3 -12
  150. package/esm2015/components/data-list-wrapper/data-list-group-wrapper.component.js +15 -10
  151. package/esm2015/components/data-list-wrapper/data-list-wrapper.component.js +7 -40
  152. package/esm2015/components/data-list-wrapper/data-list-wrapper.js +51 -0
  153. package/esm2015/components/data-list-wrapper/index.js +2 -1
  154. package/esm2015/components/input-date-time/input-date-time.component.js +2 -2
  155. package/esm2015/components/input-file/file/file.component.js +1 -1
  156. package/esm2015/components/input-files/input-files.component.js +1 -1
  157. package/esm2015/components/input-month/input-month.component.js +2 -2
  158. package/esm2015/components/input-phone/input-phone.component.js +1 -1
  159. package/esm2015/components/input-range/input-range.component.js +1 -1
  160. package/esm2015/components/input-tag/input-tag.component.js +9 -8
  161. package/esm2015/components/input-time/input-time.component.js +2 -2
  162. package/esm2015/components/line-clamp/index.js +1 -2
  163. package/esm2015/components/line-clamp/line-clamp.component.js +3 -6
  164. package/esm2015/components/line-clamp/line-clamp.module.js +2 -3
  165. package/esm2015/components/multi-select/multi-select-group/multi-select-group.component.js +2 -2
  166. package/esm2015/components/multi-select/multi-select.component.js +2 -2
  167. package/esm2015/components/radio/radio.component.js +5 -3
  168. package/esm2015/components/radio-block/radio-block.component.js +2 -2
  169. package/esm2015/components/radio-labeled/radio-labeled.component.js +2 -2
  170. package/esm2015/components/range/range.component.js +70 -13
  171. package/esm2015/components/select/select.component.js +3 -9
  172. package/esm2015/components/slider/slider-key-steps.directive.js +9 -28
  173. package/esm2015/components/slider/slider-readonly.directive.js +38 -9
  174. package/esm2015/components/stepper/stepper.component.js +3 -2
  175. package/esm2015/components/tabs/tabs-with-more/tabs-with-more.component.js +8 -6
  176. package/esm2015/components/text-area/text-area.component.js +3 -3
  177. package/esm2015/components/tree/components/tree/tree.component.js +2 -2
  178. package/esm2015/directives/dropdown-selection/dropdown-selection.directive.js +1 -1
  179. package/esm2015/enums/dropdown-position.js +2 -2
  180. package/esm2015/enums/step-state.js +2 -2
  181. package/esm2015/utils/index.js +2 -1
  182. package/esm2015/utils/math/index.js +2 -1
  183. package/esm2015/utils/math/key-steps.js +23 -0
  184. package/esm5/abstract/slider/slider.js +3 -2
  185. package/esm5/components/accordion/accordion-item/accordion-item.component.js +1 -1
  186. package/esm5/components/avatar/avatar.component.js +2 -2
  187. package/esm5/components/combo-box/combo-box.component.js +3 -12
  188. package/esm5/components/data-list-wrapper/data-list-group-wrapper.component.js +15 -10
  189. package/esm5/components/data-list-wrapper/data-list-wrapper.component.js +12 -55
  190. package/esm5/components/data-list-wrapper/data-list-wrapper.js +64 -0
  191. package/esm5/components/data-list-wrapper/index.js +2 -1
  192. package/esm5/components/input-date-time/input-date-time.component.js +2 -2
  193. package/esm5/components/input-file/file/file.component.js +1 -1
  194. package/esm5/components/input-files/input-files.component.js +1 -1
  195. package/esm5/components/input-month/input-month.component.js +2 -2
  196. package/esm5/components/input-phone/input-phone.component.js +1 -1
  197. package/esm5/components/input-range/input-range.component.js +1 -1
  198. package/esm5/components/input-tag/input-tag.component.js +9 -8
  199. package/esm5/components/input-time/input-time.component.js +2 -2
  200. package/esm5/components/line-clamp/index.js +1 -2
  201. package/esm5/components/line-clamp/line-clamp.component.js +3 -10
  202. package/esm5/components/line-clamp/line-clamp.module.js +2 -3
  203. package/esm5/components/multi-select/multi-select-group/multi-select-group.component.js +2 -2
  204. package/esm5/components/multi-select/multi-select.component.js +2 -2
  205. package/esm5/components/radio/radio.component.js +5 -3
  206. package/esm5/components/radio-block/radio-block.component.js +2 -2
  207. package/esm5/components/radio-labeled/radio-labeled.component.js +2 -2
  208. package/esm5/components/range/range.component.js +68 -12
  209. package/esm5/components/select/select.component.js +3 -9
  210. package/esm5/components/slider/slider-key-steps.directive.js +11 -43
  211. package/esm5/components/slider/slider-readonly.directive.js +45 -9
  212. package/esm5/components/stepper/stepper.component.js +3 -2
  213. package/esm5/components/tabs/tabs-with-more/tabs-with-more.component.js +8 -6
  214. package/esm5/components/text-area/text-area.component.js +3 -3
  215. package/esm5/components/tree/components/tree/tree.component.js +2 -2
  216. package/esm5/directives/dropdown-selection/dropdown-selection.directive.js +1 -1
  217. package/esm5/enums/dropdown-position.js +2 -2
  218. package/esm5/enums/step-state.js +2 -2
  219. package/esm5/utils/index.js +2 -1
  220. package/esm5/utils/math/index.js +2 -1
  221. package/esm5/utils/math/key-steps.js +30 -0
  222. package/fesm2015/taiga-ui-kit-abstract.js +2 -1
  223. package/fesm2015/taiga-ui-kit-abstract.js.map +1 -1
  224. package/fesm2015/taiga-ui-kit-components-accordion.js.map +1 -1
  225. package/fesm2015/taiga-ui-kit-components-avatar.js +1 -1
  226. package/fesm2015/taiga-ui-kit-components-avatar.js.map +1 -1
  227. package/fesm2015/taiga-ui-kit-components-combo-box.js +2 -11
  228. package/fesm2015/taiga-ui-kit-components-combo-box.js.map +1 -1
  229. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js +56 -38
  230. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  231. package/fesm2015/taiga-ui-kit-components-input-date-time.js +1 -1
  232. package/fesm2015/taiga-ui-kit-components-input-date-time.js.map +1 -1
  233. package/fesm2015/taiga-ui-kit-components-input-file.js.map +1 -1
  234. package/fesm2015/taiga-ui-kit-components-input-files.js.map +1 -1
  235. package/fesm2015/taiga-ui-kit-components-input-month.js +1 -1
  236. package/fesm2015/taiga-ui-kit-components-input-month.js.map +1 -1
  237. package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
  238. package/fesm2015/taiga-ui-kit-components-input-range.js.map +1 -1
  239. package/fesm2015/taiga-ui-kit-components-input-tag.js +8 -7
  240. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  241. package/fesm2015/taiga-ui-kit-components-input-time.js +1 -1
  242. package/fesm2015/taiga-ui-kit-components-input-time.js.map +1 -1
  243. package/fesm2015/taiga-ui-kit-components-line-clamp.js +9 -91
  244. package/fesm2015/taiga-ui-kit-components-line-clamp.js.map +1 -1
  245. package/fesm2015/taiga-ui-kit-components-multi-select.js +2 -2
  246. package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
  247. package/fesm2015/taiga-ui-kit-components-radio-block.js +1 -1
  248. package/fesm2015/taiga-ui-kit-components-radio-block.js.map +1 -1
  249. package/fesm2015/taiga-ui-kit-components-radio-labeled.js +1 -1
  250. package/fesm2015/taiga-ui-kit-components-radio-labeled.js.map +1 -1
  251. package/fesm2015/taiga-ui-kit-components-radio.js +4 -2
  252. package/fesm2015/taiga-ui-kit-components-radio.js.map +1 -1
  253. package/fesm2015/taiga-ui-kit-components-range.js +70 -14
  254. package/fesm2015/taiga-ui-kit-components-range.js.map +1 -1
  255. package/fesm2015/taiga-ui-kit-components-select.js +2 -8
  256. package/fesm2015/taiga-ui-kit-components-select.js.map +1 -1
  257. package/fesm2015/taiga-ui-kit-components-slider.js +41 -34
  258. package/fesm2015/taiga-ui-kit-components-slider.js.map +1 -1
  259. package/fesm2015/taiga-ui-kit-components-stepper.js +2 -1
  260. package/fesm2015/taiga-ui-kit-components-stepper.js.map +1 -1
  261. package/fesm2015/taiga-ui-kit-components-tabs.js +7 -5
  262. package/fesm2015/taiga-ui-kit-components-tabs.js.map +1 -1
  263. package/fesm2015/taiga-ui-kit-components-text-area.js +2 -2
  264. package/fesm2015/taiga-ui-kit-components-text-area.js.map +1 -1
  265. package/fesm2015/taiga-ui-kit-components-tree.js +1 -1
  266. package/fesm2015/taiga-ui-kit-components-tree.js.map +1 -1
  267. package/fesm2015/taiga-ui-kit-directives-dropdown-selection.js.map +1 -1
  268. package/fesm2015/taiga-ui-kit-enums.js +2 -2
  269. package/fesm2015/taiga-ui-kit-enums.js.map +1 -1
  270. package/fesm2015/taiga-ui-kit-utils-math.js +25 -1
  271. package/fesm2015/taiga-ui-kit-utils-math.js.map +1 -1
  272. package/fesm2015/taiga-ui-kit-utils.js +1 -0
  273. package/fesm2015/taiga-ui-kit-utils.js.map +1 -1
  274. package/fesm5/taiga-ui-kit-abstract.js +2 -1
  275. package/fesm5/taiga-ui-kit-abstract.js.map +1 -1
  276. package/fesm5/taiga-ui-kit-components-accordion.js.map +1 -1
  277. package/fesm5/taiga-ui-kit-components-avatar.js +1 -1
  278. package/fesm5/taiga-ui-kit-components-avatar.js.map +1 -1
  279. package/fesm5/taiga-ui-kit-components-combo-box.js +2 -11
  280. package/fesm5/taiga-ui-kit-components-combo-box.js.map +1 -1
  281. package/fesm5/taiga-ui-kit-components-data-list-wrapper.js +66 -45
  282. package/fesm5/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  283. package/fesm5/taiga-ui-kit-components-input-date-time.js +1 -1
  284. package/fesm5/taiga-ui-kit-components-input-date-time.js.map +1 -1
  285. package/fesm5/taiga-ui-kit-components-input-file.js.map +1 -1
  286. package/fesm5/taiga-ui-kit-components-input-files.js.map +1 -1
  287. package/fesm5/taiga-ui-kit-components-input-month.js +1 -1
  288. package/fesm5/taiga-ui-kit-components-input-month.js.map +1 -1
  289. package/fesm5/taiga-ui-kit-components-input-phone.js.map +1 -1
  290. package/fesm5/taiga-ui-kit-components-input-range.js.map +1 -1
  291. package/fesm5/taiga-ui-kit-components-input-tag.js +8 -7
  292. package/fesm5/taiga-ui-kit-components-input-tag.js.map +1 -1
  293. package/fesm5/taiga-ui-kit-components-input-time.js +1 -1
  294. package/fesm5/taiga-ui-kit-components-input-time.js.map +1 -1
  295. package/fesm5/taiga-ui-kit-components-line-clamp.js +9 -97
  296. package/fesm5/taiga-ui-kit-components-line-clamp.js.map +1 -1
  297. package/fesm5/taiga-ui-kit-components-multi-select.js +2 -2
  298. package/fesm5/taiga-ui-kit-components-multi-select.js.map +1 -1
  299. package/fesm5/taiga-ui-kit-components-radio-block.js +1 -1
  300. package/fesm5/taiga-ui-kit-components-radio-block.js.map +1 -1
  301. package/fesm5/taiga-ui-kit-components-radio-labeled.js +1 -1
  302. package/fesm5/taiga-ui-kit-components-radio-labeled.js.map +1 -1
  303. package/fesm5/taiga-ui-kit-components-radio.js +4 -2
  304. package/fesm5/taiga-ui-kit-components-radio.js.map +1 -1
  305. package/fesm5/taiga-ui-kit-components-range.js +68 -13
  306. package/fesm5/taiga-ui-kit-components-range.js.map +1 -1
  307. package/fesm5/taiga-ui-kit-components-select.js +2 -8
  308. package/fesm5/taiga-ui-kit-components-select.js.map +1 -1
  309. package/fesm5/taiga-ui-kit-components-slider.js +49 -48
  310. package/fesm5/taiga-ui-kit-components-slider.js.map +1 -1
  311. package/fesm5/taiga-ui-kit-components-stepper.js +2 -1
  312. package/fesm5/taiga-ui-kit-components-stepper.js.map +1 -1
  313. package/fesm5/taiga-ui-kit-components-tabs.js +7 -5
  314. package/fesm5/taiga-ui-kit-components-tabs.js.map +1 -1
  315. package/fesm5/taiga-ui-kit-components-text-area.js +2 -2
  316. package/fesm5/taiga-ui-kit-components-text-area.js.map +1 -1
  317. package/fesm5/taiga-ui-kit-components-tree.js +1 -1
  318. package/fesm5/taiga-ui-kit-components-tree.js.map +1 -1
  319. package/fesm5/taiga-ui-kit-directives-dropdown-selection.js.map +1 -1
  320. package/fesm5/taiga-ui-kit-enums.js +2 -2
  321. package/fesm5/taiga-ui-kit-enums.js.map +1 -1
  322. package/fesm5/taiga-ui-kit-utils-math.js +32 -1
  323. package/fesm5/taiga-ui-kit-utils-math.js.map +1 -1
  324. package/fesm5/taiga-ui-kit-utils.js +1 -0
  325. package/fesm5/taiga-ui-kit-utils.js.map +1 -1
  326. package/package.json +4 -4
  327. package/utils/index.d.ts +1 -0
  328. package/utils/math/index.d.ts +1 -0
  329. package/utils/math/key-steps.d.ts +4 -0
  330. package/utils/math/taiga-ui-kit-utils-math.metadata.json +1 -1
  331. package/utils/taiga-ui-kit-utils.metadata.json +1 -1
  332. package/components/line-clamp/line-clamp.directive.d.ts +0 -11
  333. package/esm2015/components/line-clamp/line-clamp.directive.js +0 -87
  334. package/esm5/components/line-clamp/line-clamp.directive.js +0 -89
@@ -2,10 +2,12 @@ import { __decorate, __extends, __param, __read, __spread } from "tslib";
2
2
  import { DOCUMENT } from '@angular/common';
3
3
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Directive, ElementRef, forwardRef, HostBinding, HostListener, Inject, Input, Optional, QueryList, Self, ViewChildren, } from '@angular/core';
4
4
  import { NgControl } from '@angular/forms';
5
- import { EMPTY_QUERY, isNativeFocusedIn, nonNegativeFiniteAssertion, TUI_FOCUSABLE_ITEM_ACCESSOR, tuiDefaultProp, tuiPure, } from '@taiga-ui/cdk';
6
- import { AbstractTuiSlider } from '@taiga-ui/kit/abstract';
5
+ import { clamp, EMPTY_QUERY, isNativeFocusedIn, nonNegativeFiniteAssertion, quantize, round, TUI_FOCUSABLE_ITEM_ACCESSOR, tuiAssert, tuiDefaultProp, tuiPure, } from '@taiga-ui/cdk';
6
+ import { AbstractTuiSlider, SLIDER_KEYBOARD_STEP } from '@taiga-ui/kit/abstract';
7
7
  import { TuiSliderComponent } from '@taiga-ui/kit/components/slider';
8
+ import { TUI_FLOATING_PRECISION } from '@taiga-ui/kit/constants';
8
9
  import { TUI_FROM_TO_TEXTS } from '@taiga-ui/kit/tokens';
10
+ import { tuiCheckKeyStepsHaveMinMaxPercents, tuiKeyStepValueToPercentage, tuiPercentageToKeyStepValue, } from '@taiga-ui/kit/utils';
9
11
  import { Observable } from 'rxjs';
10
12
  /**
11
13
  * Turn on new mode for `Range` and `InputRange`.
@@ -37,14 +39,17 @@ var TuiRangeComponent = /** @class */ (function (_super) {
37
39
  _this.max = Infinity;
38
40
  /**
39
41
  * TODO: think about replacing this props by `step` (to be like native slider).
40
- * It can be easy after refactor of keySteps.
42
+ * It can be done after removing backward compatibility code inside {@link computePureKeySteps} in v3.0
41
43
  */
42
44
  _this.steps = 0;
43
45
  /**
44
46
  * TODO: think about replacing this props by `step` (to be like native slider).
45
- * It can be easy after refactor of keySteps.
47
+ * It can be done after removing backward compatibility code inside {@link computePureKeySteps} in v3.0
46
48
  * */
47
49
  _this.quantum = 0;
50
+ _this.size = 'm';
51
+ _this.segments = 0;
52
+ _this.keySteps = null;
48
53
  _this.slidersRefs = EMPTY_QUERY;
49
54
  _this.lastActiveThumb = 'right';
50
55
  return _this;
@@ -70,6 +75,16 @@ var TuiRangeComponent = /** @class */ (function (_super) {
70
75
  enumerable: true,
71
76
  configurable: true
72
77
  });
78
+ Object.defineProperty(TuiRangeComponent.prototype, "fractionStep", {
79
+ get: function () {
80
+ if (this.steps) {
81
+ return 1 / this.steps;
82
+ }
83
+ return this.quantum ? this.quantum / (this.max - this.min) : SLIDER_KEYBOARD_STEP;
84
+ },
85
+ enumerable: true,
86
+ configurable: true
87
+ });
73
88
  Object.defineProperty(TuiRangeComponent.prototype, "computedKeySteps", {
74
89
  get: function () {
75
90
  return this.computePureKeySteps(this.keySteps, this.min, this.max);
@@ -79,14 +94,14 @@ var TuiRangeComponent = /** @class */ (function (_super) {
79
94
  });
80
95
  Object.defineProperty(TuiRangeComponent.prototype, "left", {
81
96
  get: function () {
82
- return 100 * this.getFractionFromValue(this.value[0]);
97
+ return this.getPercentageFromValue(this.value[0]);
83
98
  },
84
99
  enumerable: true,
85
100
  configurable: true
86
101
  });
87
102
  Object.defineProperty(TuiRangeComponent.prototype, "right", {
88
103
  get: function () {
89
- return 100 - 100 * this.getFractionFromValue(this.value[1]);
104
+ return 100 - this.getPercentageFromValue(this.value[1]);
90
105
  },
91
106
  enumerable: true,
92
107
  configurable: true
@@ -104,8 +119,8 @@ var TuiRangeComponent = /** @class */ (function (_super) {
104
119
  var activeThumbElement = isRightThumb ? rightThumbElement : leftThumbElement;
105
120
  var previousValue = isRightThumb ? this.value[1] : this.value[0];
106
121
  /** @bad TODO think about a solution without twice conversion */
107
- var previousFraction = this.getFractionFromValue(previousValue);
108
- var newFractionValue = previousFraction + coefficient * this.computedStep;
122
+ var previousFraction = this.getPercentageFromValue(previousValue) / 100;
123
+ var newFractionValue = previousFraction + coefficient * this.fractionStep;
109
124
  this.processValue(this.getValueFromFraction(newFractionValue), isRightThumb);
110
125
  if (activeThumbElement) {
111
126
  activeThumbElement.focus();
@@ -121,10 +136,33 @@ var TuiRangeComponent = /** @class */ (function (_super) {
121
136
  }
122
137
  this.lastActiveThumb = right ? 'right' : 'left';
123
138
  };
139
+ TuiRangeComponent.prototype.fractionGuard = function (fraction) {
140
+ return clamp(quantize(fraction, this.fractionStep), 0, 1);
141
+ };
142
+ TuiRangeComponent.prototype.getValueFromFraction = function (fraction) {
143
+ var percentage = this.fractionGuard(fraction) * 100;
144
+ return tuiPercentageToKeyStepValue(percentage, this.computedKeySteps);
145
+ };
146
+ TuiRangeComponent.prototype.getPercentageFromValue = function (value) {
147
+ return tuiKeyStepValueToPercentage(value, this.computedKeySteps);
148
+ };
149
+ TuiRangeComponent.prototype.valueGuard = function (value) {
150
+ return clamp(this.quantum
151
+ ? round(Math.round(value / this.quantum) * this.quantum, TUI_FLOATING_PRECISION)
152
+ : value, this.min, this.max);
153
+ };
124
154
  TuiRangeComponent.prototype.getFallbackValue = function () {
125
155
  return [0, 0];
126
156
  };
127
157
  TuiRangeComponent.prototype.computePureKeySteps = function (keySteps, min, max) {
158
+ if (keySteps && tuiCheckKeyStepsHaveMinMaxPercents(keySteps)) {
159
+ return keySteps;
160
+ }
161
+ // TODO replace all function by `return keySteps || [[0, min], [100, max]]` in v3.0
162
+ tuiAssert.assert(!keySteps, '\n' +
163
+ 'Input property [keySteps] should contain min and max percents.\n' +
164
+ 'We have taken [min] and [max] properties of your component for now (but it will not work in v3.0).\n' +
165
+ 'See example how properly use [keySteps]: https://taiga-ui.dev/components/range#key-steps');
128
166
  return __spread([[0, min]], (keySteps || []), [[100, max]]);
129
167
  };
130
168
  TuiRangeComponent.prototype.updateStart = function (value) {
@@ -158,6 +196,19 @@ var TuiRangeComponent = /** @class */ (function (_super) {
158
196
  Input(),
159
197
  tuiDefaultProp(nonNegativeFiniteAssertion, 'Quantum must be a non-negative number')
160
198
  ], TuiRangeComponent.prototype, "quantum", void 0);
199
+ __decorate([
200
+ Input(),
201
+ HostBinding('attr.data-size'),
202
+ tuiDefaultProp()
203
+ ], TuiRangeComponent.prototype, "size", void 0);
204
+ __decorate([
205
+ Input(),
206
+ tuiDefaultProp()
207
+ ], TuiRangeComponent.prototype, "segments", void 0);
208
+ __decorate([
209
+ Input(),
210
+ tuiDefaultProp()
211
+ ], TuiRangeComponent.prototype, "keySteps", void 0);
161
212
  __decorate([
162
213
  ViewChildren(TuiSliderComponent, { read: ElementRef })
163
214
  ], TuiRangeComponent.prototype, "slidersRefs", void 0);
@@ -183,7 +234,7 @@ var TuiRangeComponent = /** @class */ (function (_super) {
183
234
  TuiRangeComponent = TuiRangeComponent_1 = __decorate([
184
235
  Component({
185
236
  selector: 'tui-range',
186
- 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",
237
+ 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",
187
238
  changeDetection: ChangeDetectionStrategy.OnPush,
188
239
  host: {
189
240
  '[attr.tabindex]': '-1',
@@ -195,8 +246,13 @@ var TuiRangeComponent = /** @class */ (function (_super) {
195
246
  useExisting: forwardRef(function () { return TuiRangeComponent_1; }),
196
247
  },
197
248
  ],
198
- 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}"]
199
- }),
249
+ 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}"]
250
+ })
251
+ /**
252
+ * `AbstractTuiSlider` includes all legacy code (it can be deleted in v3.0)
253
+ * TODO replace `extends AbstractTuiSlider<[number, number]>` by `extends AbstractTuiControl<[number, number]> implements TuiWithOptionalMinMax<number>, TuiFocusableElementAccessor`
254
+ */
255
+ ,
200
256
  __param(0, Optional()),
201
257
  __param(0, Self()),
202
258
  __param(0, Inject(NgControl)),
@@ -210,4 +266,4 @@ var TuiRangeComponent = /** @class */ (function (_super) {
210
266
  return TuiRangeComponent;
211
267
  }(AbstractTuiSlider));
212
268
  export { TuiRangeComponent };
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL3JhbmdlLyIsInNvdXJjZXMiOlsicmFuZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsU0FBUyxFQUNULElBQUksRUFDSixZQUFZLEdBQ2YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCxXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLDBCQUEwQixFQUMxQiwyQkFBMkIsRUFDM0IsY0FBYyxFQUdkLE9BQU8sR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRWhDOzs7O0dBSUc7QUFJSDtJQUFBO0lBQW1DLENBQUM7SUFBdkIsb0JBQW9CO1FBSGhDLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxzQ0FBc0M7U0FDbkQsQ0FBQztPQUNXLG9CQUFvQixDQUFHO0lBQUQsMkJBQUM7Q0FBQSxBQUFwQyxJQUFvQztTQUF2QixvQkFBb0I7QUFFakMsV0FBVztBQWlCWDtJQUNZLHFDQUFtQztJQW1DM0MsMkJBSUksT0FBeUIsRUFDRSxpQkFB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O0NBQUEsQUFsSkQsQ0FDWSxpQkFBaUIsR0FpSjVCO1NBbEpZLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgUXVlcnlMaXN0LFxuICAgIFNlbGYsXG4gICAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEVNUFRZX1FVRVJZLFxuICAgIGlzTmF0aXZlRm9jdXNlZEluLFxuICAgIG5vbk5lZ2F0aXZlRmluaXRlQXNzZXJ0aW9uLFxuICAgIFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCxcbiAgICB0dWlQdXJlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7QWJzdHJhY3RUdWlTbGlkZXJ9IGZyb20gJ0B0YWlnYS11aS9raXQvYWJzdHJhY3QnO1xuaW1wb3J0IHtUdWlTbGlkZXJDb21wb25lbnR9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9zbGlkZXInO1xuaW1wb3J0IHtUVUlfRlJPTV9UT19URVhUU30gZnJvbSAnQHRhaWdhLXVpL2tpdC90b2tlbnMnO1xuaW1wb3J0IHtUdWlLZXlTdGVwc30gZnJvbSAnQHRhaWdhLXVpL2tpdC90eXBlcyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIFR1cm4gb24gbmV3IG1vZGUgZm9yIGBSYW5nZWAgYW5kIGBJbnB1dFJhbmdlYC5cbiAqIFRoZSBuZXcgdmVyc2lvbiBvZiBjb21wb25lbnQgd2lsbCBiZWhhdmUgYWxtb3N0IHRoZSBzYW1lIGFzIHRoZSBzYW1lIGNvbXBvbmVudCBmcm9tIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuXG4gKiBAZGVwcmVjYXRlZCBUT0RPIHJlbW92ZSBtZSBpbiB2My4wIGFuZCBtYWtlIGBSYW5nZWAgYW5kIGBJbnB1dFJhbmdlYCBhbHdheXMgXCJuZXdcIi5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICd0dWktcmFuZ2VbbmV3XSwgdHVpLWlucHV0LXJhbmdlW25ld10nLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlOZXdSYW5nZURpcmVjdGl2ZSB7fVxuXG4vLyBAZHluYW1pY1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktcmFuZ2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yYW5nZS50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9yYW5nZS5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIudGFiaW5kZXhdJzogJy0xJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtZGlzYWJsZWRdJzogJ2NvbXB1dGVkRGlzYWJsZWQnLFxuICAgIH0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR1aVJhbmdlQ29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlSYW5nZUNvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlTbGlkZXI8W251bWJlciwgbnVtYmVyXT5cbiAgICBpbXBsZW1lbnRzIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtaW4gPSAwO1xuXG4gICAgLyoqXG4gICAgICogVE9ETzogbWFrZSBgMTAwYCBhcyBkZWZhdWx0IHZhbHVlICh0byBiZSBsaWtlIG5hdGl2ZSBzbGlkZXJzKSBpbiB2My4wXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1heCA9IEluZmluaXR5O1xuXG4gICAgLyoqXG4gICAgICogVE9ETzogdGhpbmsgYWJvdXQgcmVwbGFjaW5nIHRoaXMgcHJvcHMgYnkgYHN0ZXBgICh0byBiZSBsaWtlIG5hdGl2ZSBzbGlkZXIpLlxuICAgICAqIEl0IGNhbiBiZSBlYXN5IGFmdGVyIHJlZmFjdG9yIG9mIGtleVN0ZXBzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzdGVwcyA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBUT0RPOiB0aGluayBhYm91dCByZXBsYWNpbmcgdGhpcyBwcm9wcyBieSBgc3RlcGAgKHRvIGJlIGxpa2UgbmF0aXZlIHNsaWRlcikuXG4gICAgICogSXQgY2FuIGJlIGVhc3kgYWZ0ZXIgcmVmYWN0b3Igb2Yga2V5U3RlcHMuXG4gICAgICogKi9cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcChub25OZWdhdGl2ZUZpbml0ZUFzc2VydGlvbiwgJ1F1YW50dW0gbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXInKVxuICAgIHF1YW50dW0gPSAwO1xuXG4gICAgQFZpZXdDaGlsZHJlbihUdWlTbGlkZXJDb21wb25lbnQsIHtyZWFkOiBFbGVtZW50UmVmfSlcbiAgICBzbGlkZXJzUmVmczogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4+ID0gRU1QVFlfUVVFUlk7XG5cbiAgICBsYXN0QWN0aXZlVGh1bWI6ICdyaWdodCcgfCAnbGVmdCcgPSAncmlnaHQnO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgZG9jdW1lbnRSZWY6IERvY3VtZW50LFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoVFVJX0ZST01fVE9fVEVYVFMpIGZyb21Ub1RleHRzJDogT2JzZXJ2YWJsZTxbc3RyaW5nLCBzdHJpbmddPixcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChUdWlOZXdSYW5nZURpcmVjdGl2ZSlcbiAgICAgICAgcmVhZG9ubHkgaXNOZXc6IFR1aU5ld1JhbmdlRGlyZWN0aXZlIHwgbnVsbCxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2hhbmdlRGV0ZWN0b3JSZWYsIGRvY3VtZW50UmVmLCBmcm9tVG9UZXh0cyQpO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IFR1aU5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgY29uc3QgW3NsaWRlckxlZnRSZWYsIHNsaWRlclJpZ2h0UmVmXSA9IHRoaXMuc2xpZGVyc1JlZnM7XG5cbiAgICAgICAgaWYgKHRoaXMuY29tcHV0ZWREaXNhYmxlZCB8fCAhc2xpZGVyTGVmdFJlZiB8fCAhc2xpZGVyUmlnaHRSZWYpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaXNMZWZ0Rm9jdXNhYmxlXG4gICAgICAgICAgICA/IHNsaWRlckxlZnRSZWYubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgOiBzbGlkZXJSaWdodFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gaXNOYXRpdmVGb2N1c2VkSW4odGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZEtleVN0ZXBzKCk6IFR1aUtleVN0ZXBzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcHV0ZVB1cmVLZXlTdGVwcyh0aGlzLmtleVN0ZXBzLCB0aGlzLm1pbiwgdGhpcy5tYXgpO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuLS1sZWZ0LiUnKVxuICAgIGdldCBsZWZ0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAxMDAgKiB0aGlzLmdldEZyYWN0aW9uRnJvbVZhbHVlKHRoaXMudmFsdWVbMF0pO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuLS1yaWdodC4lJylcbiAgICBnZXQgcmlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIDEwMCAtIDEwMCAqIHRoaXMuZ2V0RnJhY3Rpb25Gcm9tVmFsdWUodGhpcy52YWx1ZVsxXSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXNpbicsIFsndHJ1ZSddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgWydmYWxzZSddKVxuICAgIG9uRm9jdXNlZChmb2N1c2VkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChmb2N1c2VkKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93VXAucHJldmVudCcsIFsnMScsICckZXZlbnQudGFyZ2V0J10pXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd1JpZ2h0LnByZXZlbnQnLCBbJzEnLCAnJGV2ZW50LnRhcmdldCddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dMZWZ0LnByZXZlbnQnLCBbJy0xJywgJyRldmVudC50YXJnZXQnXSlcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93RG93bi5wcmV2ZW50JywgWyctMScsICckZXZlbnQudGFyZ2V0J10pXG4gICAgY2hhbmdlQnlTdGVwKGNvZWZmaWNpZW50OiBudW1iZXIsIHRhcmdldDogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgW3NsaWRlckxlZnRSZWYsIHNsaWRlclJpZ2h0UmVmXSA9IHRoaXMuc2xpZGVyc1JlZnM7XG4gICAgICAgIGNvbnN0IGxlZnRUaHVtYkVsZW1lbnQgPSBzbGlkZXJMZWZ0UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHJpZ2h0VGh1bWJFbGVtZW50ID0gc2xpZGVyUmlnaHRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgICAgICBjb25zdCBpc1JpZ2h0VGh1bWIgPVxuICAgICAgICAgICAgdGFyZ2V0ID09PSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgICAgID8gdGhpcy5sYXN0QWN0aXZlVGh1bWIgPT09ICdyaWdodCdcbiAgICAgICAgICAgICAgICA6IHRhcmdldCA9PT0gcmlnaHRUaHVtYkVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGFjdGl2ZVRodW1iRWxlbWVudCA9IGlzUmlnaHRUaHVtYiA/IHJpZ2h0VGh1bWJFbGVtZW50IDogbGVmdFRodW1iRWxlbWVudDtcbiAgICAgICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IGlzUmlnaHRUaHVtYiA/IHRoaXMudmFsdWVbMV0gOiB0aGlzLnZhbHVlWzBdO1xuICAgICAgICAvKiogQGJhZCBUT0RPIHRoaW5rIGFib3V0IGEgc29sdXRpb24gd2l0aG91dCB0d2ljZSBjb252ZXJzaW9uICovXG4gICAgICAgIGNvbnN0IHByZXZpb3VzRnJhY3Rpb24gPSB0aGlzLmdldEZyYWN0aW9uRnJvbVZhbHVlKHByZXZpb3VzVmFsdWUpO1xuICAgICAgICBjb25zdCBuZXdGcmFjdGlvblZhbHVlID0gcHJldmlvdXNGcmFjdGlvbiArIGNvZWZmaWNpZW50ICogdGhpcy5jb21wdXRlZFN0ZXA7XG5cbiAgICAgICAgdGhpcy5wcm9jZXNzVmFsdWUodGhpcy5nZXRWYWx1ZUZyb21GcmFjdGlvbihuZXdGcmFjdGlvblZhbHVlKSwgaXNSaWdodFRodW1iKTtcblxuICAgICAgICBpZiAoYWN0aXZlVGh1bWJFbGVtZW50KSB7XG4gICAgICAgICAgICBhY3RpdmVUaHVtYkVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb2Nlc3NWYWx1ZSh2YWx1ZTogbnVtYmVyLCByaWdodDogYm9vbGVhbikge1xuICAgICAgICBjb25zdCBndWFyZGVkVmFsdWUgPSB0aGlzLnZhbHVlR3VhcmQodmFsdWUpO1xuXG4gICAgICAgIGlmIChyaWdodCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVFbmQoZ3VhcmRlZFZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlU3RhcnQoZ3VhcmRlZFZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubGFzdEFjdGl2ZVRodW1iID0gcmlnaHQgPyAncmlnaHQnIDogJ2xlZnQnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRGYWxsYmFja1ZhbHVlKCk6IFtudW1iZXIsIG51bWJlcl0ge1xuICAgICAgICByZXR1cm4gWzAsIDBdO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBjb21wdXRlUHVyZUtleVN0ZXBzKFxuICAgICAgICBrZXlTdGVwczogVHVpS2V5U3RlcHMgfCBudWxsLFxuICAgICAgICBtaW46IG51bWJlcixcbiAgICAgICAgbWF4OiBudW1iZXIsXG4gICAgKTogVHVpS2V5U3RlcHMge1xuICAgICAgICByZXR1cm4gW1swLCBtaW5dLCAuLi4oa2V5U3RlcHMgfHwgW10pLCBbMTAwLCBtYXhdXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVN0YXJ0KHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShbTWF0aC5taW4odmFsdWUsIHRoaXMudmFsdWVbMV0pLCB0aGlzLnZhbHVlWzFdXSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVFbmQodmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKFt0aGlzLnZhbHVlWzBdLCBNYXRoLm1heCh2YWx1ZSwgdGhpcy52YWx1ZVswXSldKTtcbiAgICB9XG59XG4iXX0=
269
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL3JhbmdlLyIsInNvdXJjZXMiOlsicmFuZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsU0FBUyxFQUNULElBQUksRUFDSixZQUFZLEdBQ2YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCxLQUFLLEVBQ0wsV0FBVyxFQUNYLGlCQUFpQixFQUNqQiwwQkFBMEIsRUFDMUIsUUFBUSxFQUNSLEtBQUssRUFDTCwyQkFBMkIsRUFDM0IsU0FBUyxFQUNULGNBQWMsRUFHZCxPQUFPLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGlCQUFpQixFQUFFLG9CQUFvQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDL0UsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFdkQsT0FBTyxFQUNILGtDQUFrQyxFQUNsQywyQkFBMkIsRUFDM0IsMkJBQTJCLEdBQzlCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVoQzs7OztHQUlHO0FBSUg7SUFBQTtJQUFtQyxDQUFDO0lBQXZCLG9C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QVc7WUFDckIsd3REQUFvQztZQUVwQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtZQUMvQyxJQUFJLEVBQUU7Z0JBQ0YsaUJBQWlCLEVBQUUsSUFBSTtnQkFDdkIsc0JBQXNCLEVBQUUsa0JBQWtCO2FBQzdDO1lBQ0QsU0FBUyxFQUFFO2dCQUNQO29CQUNJLE9BQU8sRUFBRSwyQkFBMkI7b0JBQ3BDLFdBQVcsRUFBRSxVQUFVLENBQUMsY0FBTSxPQUFBLG1CQUFpQixFQUFqQixDQUFpQixDQUFDO2lCQUNuRDthQUNKOztTQUNKLENBQUM7UUFDRjs7O1dBR0c7O1FBbURNLFdBQUEsUUFBUSxFQUFFLENBQUE7UUFDVixXQUFBLElBQUksRUFBRSxDQUFBO1FBQ04sV0FBQSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7UUFFakIsV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUN6QixXQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNoQixXQUFBLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUNsQixXQUFBLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBQ3pCLFdBQUEsUUFBUSxFQUFFLENBQUE7UUFDVixXQUFBLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO09BM0R4QixpQkFBaUIsQ0ErTTdCO0lBQUQsd0JBQUM7Q0FBQSxBQS9NRCxDQUNZLGlCQUFpQixHQThNNUI7U0EvTVksaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgY2xhbXAsXG4gICAgRU1QVFlfUVVFUlksXG4gICAgaXNOYXRpdmVGb2N1c2VkSW4sXG4gICAgbm9uTmVnYXRpdmVGaW5pdGVBc3NlcnRpb24sXG4gICAgcXVhbnRpemUsXG4gICAgcm91bmQsXG4gICAgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgIHR1aUFzc2VydCxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCxcbiAgICB0dWlQdXJlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VHVpU2l6ZVN9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7QWJzdHJhY3RUdWlTbGlkZXIsIFNMSURFUl9LRVlCT0FSRF9TVEVQfSBmcm9tICdAdGFpZ2EtdWkva2l0L2Fic3RyYWN0JztcbmltcG9ydCB7VHVpU2xpZGVyQ29tcG9uZW50fSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvc2xpZGVyJztcbmltcG9ydCB7VFVJX0ZMT0FUSU5HX1BSRUNJU0lPTn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb25zdGFudHMnO1xuaW1wb3J0IHtUVUlfRlJPTV9UT19URVhUU30gZnJvbSAnQHRhaWdhLXVpL2tpdC90b2tlbnMnO1xuaW1wb3J0IHtUdWlLZXlTdGVwc30gZnJvbSAnQHRhaWdhLXVpL2tpdC90eXBlcyc7XG5pbXBvcnQge1xuICAgIHR1aUNoZWNrS2V5U3RlcHNIYXZlTWluTWF4UGVyY2VudHMsXG4gICAgdHVpS2V5U3RlcFZhbHVlVG9QZXJjZW50YWdlLFxuICAgIHR1aVBlcmNlbnRhZ2VUb0tleVN0ZXBWYWx1ZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC91dGlscyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIFR1cm4gb24gbmV3IG1vZGUgZm9yIGBSYW5nZWAgYW5kIGBJbnB1dFJhbmdlYC5cbiAqIFRoZSBuZXcgdmVyc2lvbiBvZiBjb21wb25lbnQgd2lsbCBiZWhhdmUgYWxtb3N0IHRoZSBzYW1lIGFzIHRoZSBzYW1lIGNvbXBvbmVudCBmcm9tIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuXG4gKiBAZGVwcmVjYXRlZCBUT0RPIHJlbW92ZSBtZSBpbiB2My4wIGFuZCBtYWtlIGBSYW5nZWAgYW5kIGBJbnB1dFJhbmdlYCBhbHdheXMgXCJuZXdcIi5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICd0dWktcmFuZ2VbbmV3XSwgdHVpLWlucHV0LXJhbmdlW25ld10nLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlOZXdSYW5nZURpcmVjdGl2ZSB7fVxuXG4vLyBAZHluYW1pY1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktcmFuZ2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yYW5nZS50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9yYW5nZS5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIudGFiaW5kZXhdJzogJy0xJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtZGlzYWJsZWRdJzogJ2NvbXB1dGVkRGlzYWJsZWQnLFxuICAgIH0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR1aVJhbmdlQ29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbi8qKlxuICogYEFic3RyYWN0VHVpU2xpZGVyYCBpbmNsdWRlcyBhbGwgbGVnYWN5IGNvZGUgKGl0IGNhbiBiZSBkZWxldGVkIGluIHYzLjApXG4gKiBUT0RPIHJlcGxhY2UgYGV4dGVuZHMgQWJzdHJhY3RUdWlTbGlkZXI8W251bWJlciwgbnVtYmVyXT5gIGJ5IGBleHRlbmRzIEFic3RyYWN0VHVpQ29udHJvbDxbbnVtYmVyLCBudW1iZXJdPiBpbXBsZW1lbnRzIFR1aVdpdGhPcHRpb25hbE1pbk1heDxudW1iZXI+LCBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3JgXG4gKi9cbmV4cG9ydCBjbGFzcyBUdWlSYW5nZUNvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlTbGlkZXI8W251bWJlciwgbnVtYmVyXT5cbiAgICBpbXBsZW1lbnRzIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtaW4gPSAwO1xuXG4gICAgLyoqXG4gICAgICogVE9ETzogbWFrZSBgMTAwYCBhcyBkZWZhdWx0IHZhbHVlICh0byBiZSBsaWtlIG5hdGl2ZSBzbGlkZXJzKSBpbiB2My4wXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1heCA9IEluZmluaXR5O1xuXG4gICAgLyoqXG4gICAgICogVE9ETzogdGhpbmsgYWJvdXQgcmVwbGFjaW5nIHRoaXMgcHJvcHMgYnkgYHN0ZXBgICh0byBiZSBsaWtlIG5hdGl2ZSBzbGlkZXIpLlxuICAgICAqIEl0IGNhbiBiZSBkb25lIGFmdGVyIHJlbW92aW5nIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgY29kZSBpbnNpZGUge0BsaW5rIGNvbXB1dGVQdXJlS2V5U3RlcHN9IGluIHYzLjBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc3RlcHMgPSAwO1xuXG4gICAgLyoqXG4gICAgICogVE9ETzogdGhpbmsgYWJvdXQgcmVwbGFjaW5nIHRoaXMgcHJvcHMgYnkgYHN0ZXBgICh0byBiZSBsaWtlIG5hdGl2ZSBzbGlkZXIpLlxuICAgICAqIEl0IGNhbiBiZSBkb25lIGFmdGVyIHJlbW92aW5nIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgY29kZSBpbnNpZGUge0BsaW5rIGNvbXB1dGVQdXJlS2V5U3RlcHN9IGluIHYzLjBcbiAgICAgKiAqL1xuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKG5vbk5lZ2F0aXZlRmluaXRlQXNzZXJ0aW9uLCAnUXVhbnR1bSBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlcicpXG4gICAgcXVhbnR1bSA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXNpemUnKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc2l6ZTogVHVpU2l6ZVMgPSAnbSc7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc2VnbWVudHMgPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGtleVN0ZXBzOiBUdWlLZXlTdGVwcyB8IG51bGwgPSBudWxsO1xuXG4gICAgQFZpZXdDaGlsZHJlbihUdWlTbGlkZXJDb21wb25lbnQsIHtyZWFkOiBFbGVtZW50UmVmfSlcbiAgICBzbGlkZXJzUmVmczogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4+ID0gRU1QVFlfUVVFUlk7XG5cbiAgICBsYXN0QWN0aXZlVGh1bWI6ICdyaWdodCcgfCAnbGVmdCcgPSAncmlnaHQnO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgZG9jdW1lbnRSZWY6IERvY3VtZW50LFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoVFVJX0ZST01fVE9fVEVYVFMpIGZyb21Ub1RleHRzJDogT2JzZXJ2YWJsZTxbc3RyaW5nLCBzdHJpbmddPixcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChUdWlOZXdSYW5nZURpcmVjdGl2ZSlcbiAgICAgICAgcmVhZG9ubHkgaXNOZXc6IFR1aU5ld1JhbmdlRGlyZWN0aXZlIHwgbnVsbCxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2hhbmdlRGV0ZWN0b3JSZWYsIGRvY3VtZW50UmVmLCBmcm9tVG9UZXh0cyQpO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IFR1aU5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgY29uc3QgW3NsaWRlckxlZnRSZWYsIHNsaWRlclJpZ2h0UmVmXSA9IHRoaXMuc2xpZGVyc1JlZnM7XG5cbiAgICAgICAgaWYgKHRoaXMuY29tcHV0ZWREaXNhYmxlZCB8fCAhc2xpZGVyTGVmdFJlZiB8fCAhc2xpZGVyUmlnaHRSZWYpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaXNMZWZ0Rm9jdXNhYmxlXG4gICAgICAgICAgICA/IHNsaWRlckxlZnRSZWYubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgOiBzbGlkZXJSaWdodFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gaXNOYXRpdmVGb2N1c2VkSW4odGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIGdldCBmcmFjdGlvblN0ZXAoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHRoaXMuc3RlcHMpIHtcbiAgICAgICAgICAgIHJldHVybiAxIC8gdGhpcy5zdGVwcztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnF1YW50dW0gPyB0aGlzLnF1YW50dW0gLyAodGhpcy5tYXggLSB0aGlzLm1pbikgOiBTTElERVJfS0VZQk9BUkRfU1RFUDtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRLZXlTdGVwcygpOiBUdWlLZXlTdGVwcyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXB1dGVQdXJlS2V5U3RlcHModGhpcy5rZXlTdGVwcywgdGhpcy5taW4sIHRoaXMubWF4KTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0tbGVmdC4lJylcbiAgICBnZXQgbGVmdCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRQZXJjZW50YWdlRnJvbVZhbHVlKHRoaXMudmFsdWVbMF0pO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuLS1yaWdodC4lJylcbiAgICBnZXQgcmlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIDEwMCAtIHRoaXMuZ2V0UGVyY2VudGFnZUZyb21WYWx1ZSh0aGlzLnZhbHVlWzFdKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdmb2N1c2luJywgWyd0cnVlJ10pXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXNvdXQnLCBbJ2ZhbHNlJ10pXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dVcC5wcmV2ZW50JywgWycxJywgJyRldmVudC50YXJnZXQnXSlcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93UmlnaHQucHJldmVudCcsIFsnMScsICckZXZlbnQudGFyZ2V0J10pXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd0xlZnQucHJldmVudCcsIFsnLTEnLCAnJGV2ZW50LnRhcmdldCddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dEb3duLnByZXZlbnQnLCBbJy0xJywgJyRldmVudC50YXJnZXQnXSlcbiAgICBjaGFuZ2VCeVN0ZXAoY29lZmZpY2llbnQ6IG51bWJlciwgdGFyZ2V0OiBIVE1MRWxlbWVudCkge1xuICAgICAgICBjb25zdCBbc2xpZGVyTGVmdFJlZiwgc2xpZGVyUmlnaHRSZWZdID0gdGhpcy5zbGlkZXJzUmVmcztcbiAgICAgICAgY29uc3QgbGVmdFRodW1iRWxlbWVudCA9IHNsaWRlckxlZnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgcmlnaHRUaHVtYkVsZW1lbnQgPSBzbGlkZXJSaWdodFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIGNvbnN0IGlzUmlnaHRUaHVtYiA9XG4gICAgICAgICAgICB0YXJnZXQgPT09IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgICAgICAgPyB0aGlzLmxhc3RBY3RpdmVUaHVtYiA9PT0gJ3JpZ2h0J1xuICAgICAgICAgICAgICAgIDogdGFyZ2V0ID09PSByaWdodFRodW1iRWxlbWVudDtcbiAgICAgICAgY29uc3QgYWN0aXZlVGh1bWJFbGVtZW50ID0gaXNSaWdodFRodW1iID8gcmlnaHRUaHVtYkVsZW1lbnQgOiBsZWZ0VGh1bWJFbGVtZW50O1xuICAgICAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gaXNSaWdodFRodW1iID8gdGhpcy52YWx1ZVsxXSA6IHRoaXMudmFsdWVbMF07XG4gICAgICAgIC8qKiBAYmFkIFRPRE8gdGhpbmsgYWJvdXQgYSBzb2x1dGlvbiB3aXRob3V0IHR3aWNlIGNvbnZlcnNpb24gKi9cbiAgICAgICAgY29uc3QgcHJldmlvdXNGcmFjdGlvbiA9IHRoaXMuZ2V0UGVyY2VudGFnZUZyb21WYWx1ZShwcmV2aW91c1ZhbHVlKSAvIDEwMDtcbiAgICAgICAgY29uc3QgbmV3RnJhY3Rpb25WYWx1ZSA9IHByZXZpb3VzRnJhY3Rpb24gKyBjb2VmZmljaWVudCAqIHRoaXMuZnJhY3Rpb25TdGVwO1xuXG4gICAgICAgIHRoaXMucHJvY2Vzc1ZhbHVlKHRoaXMuZ2V0VmFsdWVGcm9tRnJhY3Rpb24obmV3RnJhY3Rpb25WYWx1ZSksIGlzUmlnaHRUaHVtYik7XG5cbiAgICAgICAgaWYgKGFjdGl2ZVRodW1iRWxlbWVudCkge1xuICAgICAgICAgICAgYWN0aXZlVGh1bWJFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm9jZXNzVmFsdWUodmFsdWU6IG51bWJlciwgcmlnaHQ6IGJvb2xlYW4pIHtcbiAgICAgICAgY29uc3QgZ3VhcmRlZFZhbHVlID0gdGhpcy52YWx1ZUd1YXJkKHZhbHVlKTtcblxuICAgICAgICBpZiAocmlnaHQpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRW5kKGd1YXJkZWRWYWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVN0YXJ0KGd1YXJkZWRWYWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmxhc3RBY3RpdmVUaHVtYiA9IHJpZ2h0ID8gJ3JpZ2h0JyA6ICdsZWZ0JztcbiAgICB9XG5cbiAgICBmcmFjdGlvbkd1YXJkKGZyYWN0aW9uOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gY2xhbXAocXVhbnRpemUoZnJhY3Rpb24sIHRoaXMuZnJhY3Rpb25TdGVwKSwgMCwgMSk7XG4gICAgfVxuXG4gICAgZ2V0VmFsdWVGcm9tRnJhY3Rpb24oZnJhY3Rpb246IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHBlcmNlbnRhZ2UgPSB0aGlzLmZyYWN0aW9uR3VhcmQoZnJhY3Rpb24pICogMTAwO1xuXG4gICAgICAgIHJldHVybiB0dWlQZXJjZW50YWdlVG9LZXlTdGVwVmFsdWUocGVyY2VudGFnZSwgdGhpcy5jb21wdXRlZEtleVN0ZXBzKTtcbiAgICB9XG5cbiAgICBnZXRQZXJjZW50YWdlRnJvbVZhbHVlKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdHVpS2V5U3RlcFZhbHVlVG9QZXJjZW50YWdlKHZhbHVlLCB0aGlzLmNvbXB1dGVkS2V5U3RlcHMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB2YWx1ZUd1YXJkKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gY2xhbXAoXG4gICAgICAgICAgICB0aGlzLnF1YW50dW1cbiAgICAgICAgICAgICAgICA/IHJvdW5kKFxuICAgICAgICAgICAgICAgICAgICAgIE1hdGgucm91bmQodmFsdWUgLyB0aGlzLnF1YW50dW0pICogdGhpcy5xdWFudHVtLFxuICAgICAgICAgICAgICAgICAgICAgIFRVSV9GTE9BVElOR19QUkVDSVNJT04sXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgOiB2YWx1ZSxcbiAgICAgICAgICAgIHRoaXMubWluLFxuICAgICAgICAgICAgdGhpcy5tYXgsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZhbGxiYWNrVmFsdWUoKTogW251bWJlciwgbnVtYmVyXSB7XG4gICAgICAgIHJldHVybiBbMCwgMF07XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGNvbXB1dGVQdXJlS2V5U3RlcHMoXG4gICAgICAgIGtleVN0ZXBzOiBUdWlLZXlTdGVwcyB8IG51bGwsXG4gICAgICAgIG1pbjogbnVtYmVyLFxuICAgICAgICBtYXg6IG51bWJlcixcbiAgICApOiBUdWlLZXlTdGVwcyB7XG4gICAgICAgIGlmIChrZXlTdGVwcyAmJiB0dWlDaGVja0tleVN0ZXBzSGF2ZU1pbk1heFBlcmNlbnRzKGtleVN0ZXBzKSkge1xuICAgICAgICAgICAgcmV0dXJuIGtleVN0ZXBzO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVE9ETyByZXBsYWNlIGFsbCBmdW5jdGlvbiBieSBgcmV0dXJuIGtleVN0ZXBzIHx8IFtbMCwgbWluXSwgWzEwMCwgbWF4XV1gIGluIHYzLjBcbiAgICAgICAgdHVpQXNzZXJ0LmFzc2VydChcbiAgICAgICAgICAgICFrZXlTdGVwcyxcbiAgICAgICAgICAgICdcXG4nICtcbiAgICAgICAgICAgICAgICAnSW5wdXQgcHJvcGVydHkgW2tleVN0ZXBzXSBzaG91bGQgY29udGFpbiBtaW4gYW5kIG1heCBwZXJjZW50cy5cXG4nICtcbiAgICAgICAgICAgICAgICAnV2UgaGF2ZSB0YWtlbiBbbWluXSBhbmQgW21heF0gcHJvcGVydGllcyBvZiB5b3VyIGNvbXBvbmVudCBmb3Igbm93IChidXQgaXQgd2lsbCBub3Qgd29yayBpbiB2My4wKS5cXG4nICtcbiAgICAgICAgICAgICAgICAnU2VlIGV4YW1wbGUgaG93IHByb3Blcmx5IHVzZSBba2V5U3RlcHNdOiBodHRwczovL3RhaWdhLXVpLmRldi9jb21wb25lbnRzL3JhbmdlI2tleS1zdGVwcycsXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIFtbMCwgbWluXSwgLi4uKGtleVN0ZXBzIHx8IFtdKSwgWzEwMCwgbWF4XV07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVTdGFydCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoW01hdGgubWluKHZhbHVlLCB0aGlzLnZhbHVlWzFdKSwgdGhpcy52YWx1ZVsxXV0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlRW5kKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShbdGhpcy52YWx1ZVswXSwgTWF0aC5tYXgodmFsdWUsIHRoaXMudmFsdWVbMF0pXSk7XG4gICAgfVxufVxuIl19
@@ -1,7 +1,7 @@
1
1
  import { __decorate, __extends, __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';
@@ -57,9 +57,6 @@ var TuiSelectComponent = /** @class */ (function (_super) {
57
57
  enumerable: true,
58
58
  configurable: true
59
59
  });
60
- TuiSelectComponent.prototype.computeContext = function ($implicit, active) {
61
- return { $implicit: $implicit, active: active };
62
- };
63
60
  TuiSelectComponent.prototype.onValueChange = function (value) {
64
61
  if (!value) {
65
62
  this.updateValue(null);
@@ -117,13 +114,10 @@ var TuiSelectComponent = /** @class */ (function (_super) {
117
114
  __decorate([
118
115
  ContentChild(TuiDataListDirective, { read: TemplateRef })
119
116
  ], TuiSelectComponent.prototype, "datalist", void 0);
120
- __decorate([
121
- tuiPure
122
- ], TuiSelectComponent.prototype, "computeContext", null);
123
117
  TuiSelectComponent = __decorate([
124
118
  Component({
125
119
  selector: 'tui-select',
126
- 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",
120
+ 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",
127
121
  changeDetection: ChangeDetectionStrategy.OnPush,
128
122
  providers: TUI_SELECT_PROVIDERS,
129
123
  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}"]
@@ -140,4 +134,4 @@ var TuiSelectComponent = /** @class */ (function (_super) {
140
134
  return TuiSelectComponent;
141
135
  }(AbstractTuiNullableControl));
142
136
  export { TuiSelectComponent };
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9zZWxlY3QvIiwic291cmNlcyI6WyJzZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLElBQUksRUFDSixXQUFXLEVBQ1gsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsMEJBQTBCLEVBQzFCLGVBQWUsRUFDZixnQkFBZ0IsRUFHaEIsY0FBYyxFQUVkLE9BQU8sR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gscUJBQXFCLEVBQ3JCLG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsMEJBQTBCLEVBQzFCLDhCQUE4QixFQUM5QixRQUFRLEVBQ1IsUUFBUSxFQUNSLFFBQVEsRUFDUiw0QkFBNEIsRUFDNUIsc0JBQXNCLEdBQ3pCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLGNBQWMsRUFBZSxNQUFNLGdDQUFnQyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxrQkFBa0IsRUFBbUIsTUFBTSxzQkFBc0IsQ0FBQztBQUcxRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUMsa0JBQWtCLEVBQW1CLE1BQU0sa0JBQWtCLENBQUM7QUFTdEU7SUFDWSxzQ0FBNkI7SUEyQnJDLDRCQUlJLE9BQXlCLEVBQ0UsaUJBQW9DLEVBRTlDLGdCQUE4QyxFQUU5QyxTQUF1QixFQUV2QixhQUFrQyxFQUVsQyxPQUE0QjtRQWJqRCxZQWVJLGtCQUFNLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxTQUNwQztRQVRvQixz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LGtCQUFrQixDQUFDLENBQUE7T0F4Q3RCLGtCQUFrQixDQThHOUI7SUFBRCx5QkFBQztDQUFBLEFBOUdELENBQ1ksMEJBQTBCLEdBNkdyQztTQTlHWSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGYsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sLFxuICAgIGlzTmF0aXZlRm9jdXNlZCxcbiAgICBzZXROYXRpdmVGb2N1c2VkLFxuICAgIFR1aUFjdGl2ZVpvbmVEaXJlY3RpdmUsXG4gICAgVHVpQ29udGV4dFdpdGhJbXBsaWNpdCxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgdHVpUHVyZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIFRVSV9URVhURklFTERfQ0xFQU5FUixcbiAgICBUdWlEYXRhTGlzdERpcmVjdGl2ZSxcbiAgICBUdWlEYXRhTGlzdEhvc3QsXG4gICAgVHVpSG9zdGVkRHJvcGRvd25Db21wb25lbnQsXG4gICAgVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgIFR1aVNpemVMLFxuICAgIFR1aVNpemVNLFxuICAgIFR1aVNpemVTLFxuICAgIFR1aVRleHRmaWVsZENsZWFuZXJEaXJlY3RpdmUsXG4gICAgVHVpVmFsdWVDb250ZW50Q29udGV4dCxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUVUlfQVJST1dfTU9ERSwgVHVpQXJyb3dNb2RlfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvYXJyb3cnO1xuaW1wb3J0IHtUVUlfSVRFTVNfSEFORExFUlMsIFR1aUl0ZW1zSGFuZGxlcnN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcblxuaW1wb3J0IHtUVUlfU0VMRUNUX1BST1ZJREVSU30gZnJvbSAnLi9zZWxlY3QucHJvdmlkZXJzJztcbmltcG9ydCB7VFVJX1NFTEVDVF9PUFRJT05TLCBUdWlTZWxlY3RPcHRpb25zfSBmcm9tICcuL3NlbGVjdC1vcHRpb25zJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktc2VsZWN0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlbGVjdC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBUVUlfU0VMRUNUX1BST1ZJREVSUyxcbn0pXG5leHBvcnQgY2xhc3MgVHVpU2VsZWN0Q29tcG9uZW50PFQ+XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aU51bGxhYmxlQ29udHJvbDxUPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLCBUdWlEYXRhTGlzdEhvc3Q8VD5cbntcbiAgICBAVmlld0NoaWxkKFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZD86IFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGQoVHVpSG9zdGVkRHJvcGRvd25Db21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBob3N0ZWREcm9wZG93bj86IFR1aUhvc3RlZERyb3Bkb3duQ29tcG9uZW50O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHN0cmluZ2lmeTogVHVpSXRlbXNIYW5kbGVyczxUPlsnc3RyaW5naWZ5J10gPSB0aGlzLml0ZW1zSGFuZGxlcnMuc3RyaW5naWZ5O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGlkZW50aXR5TWF0Y2hlcjogVHVpSXRlbXNIYW5kbGVyczxUPlsnaWRlbnRpdHlNYXRjaGVyJ10gPVxuICAgICAgICB0aGlzLml0ZW1zSGFuZGxlcnMuaWRlbnRpdHlNYXRjaGVyO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHZhbHVlQ29udGVudDogVHVpU2VsZWN0T3B0aW9uczxUPlsndmFsdWVDb250ZW50J10gPSB0aGlzLm9wdGlvbnMudmFsdWVDb250ZW50O1xuXG4gICAgQENvbnRlbnRDaGlsZChUdWlEYXRhTGlzdERpcmVjdGl2ZSwge3JlYWQ6IFRlbXBsYXRlUmVmfSlcbiAgICByZWFkb25seSBkYXRhbGlzdDogUG9seW1vcnBoZXVzQ29udGVudDxcbiAgICAgICAgVHVpQ29udGV4dFdpdGhJbXBsaWNpdDxUdWlBY3RpdmVab25lRGlyZWN0aXZlPlxuICAgID4gPSAnJztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9DTEVBTkVSKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZENsZWFuZXI6IFR1aVRleHRmaWVsZENsZWFuZXJEaXJlY3RpdmUsXG4gICAgICAgIEBJbmplY3QoVFVJX0FSUk9XX01PREUpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYXJyb3dNb2RlOiBUdWlBcnJvd01vZGUsXG4gICAgICAgIEBJbmplY3QoVFVJX0lURU1TX0hBTkRMRVJTKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGl0ZW1zSGFuZGxlcnM6IFR1aUl0ZW1zSGFuZGxlcnM8VD4sXG4gICAgICAgIEBJbmplY3QoVFVJX1NFTEVDVF9PUFRJT05TKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IFR1aVNlbGVjdE9wdGlvbnM8VD4sXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNvbnRyb2wsIGNoYW5nZURldGVjdG9yUmVmKTtcbiAgICB9XG5cbiAgICBnZXQgYXJyb3coKTogUG9seW1vcnBoZXVzQ29udGVudDxcbiAgICAgICAgVHVpQ29udGV4dFdpdGhJbXBsaWNpdDxUdWlTaXplUyB8IFR1aVNpemVNIHwgVHVpU2l6ZUw+XG4gICAgPiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5pbnRlcmFjdGl2ZSA/IHRoaXMuYXJyb3dNb2RlLmRpc2FibGVkIDogdGhpcy5hcnJvd01vZGUuaW50ZXJhY3RpdmU7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0ZmllbGQgPyB0aGlzLnRleHRmaWVsZC5uYXRpdmVGb2N1c2FibGVFbGVtZW50IDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGlzTmF0aXZlRm9jdXNlZCh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHx8XG4gICAgICAgICAgICAoISF0aGlzLmhvc3RlZERyb3Bkb3duICYmIHRoaXMuaG9zdGVkRHJvcGRvd24uZm9jdXNlZClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZSA9PT0gbnVsbCA/ICcnIDogdGhpcy5zdHJpbmdpZnkodGhpcy52YWx1ZSkgfHwgJyAnO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZENvbnRlbnQoKTogUG9seW1vcnBoZXVzQ29udGVudDxUdWlWYWx1ZUNvbnRlbnRDb250ZXh0PFQ+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlQ29udGVudCB8fCB0aGlzLmNvbXB1dGVkVmFsdWU7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBjb21wdXRlQ29udGV4dChcbiAgICAgICAgJGltcGxpY2l0OiBUIHwgbnVsbCxcbiAgICAgICAgYWN0aXZlOiBib29sZWFuLFxuICAgICk6IFR1aVZhbHVlQ29udGVudENvbnRleHQ8VCB8IG51bGw+IHtcbiAgICAgICAgcmV0dXJuIHskaW1wbGljaXQsIGFjdGl2ZX07XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUobnVsbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkFjdGl2ZVpvbmUoYWN0aXZlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChhY3RpdmUpO1xuICAgIH1cblxuICAgIG9uSG92ZXJlZChob3ZlcmVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlSG92ZXJlZChob3ZlcmVkKTtcbiAgICB9XG5cbiAgICBvbktleURvd25EZWxldGUoKSB7XG4gICAgICAgIGlmICh0aGlzLnRleHRmaWVsZENsZWFuZXIuY2xlYW5lcikge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShudWxsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZU9wdGlvbihvcHRpb246IFQpIHtcbiAgICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUob3B0aW9uKTtcbiAgICAgICAgdGhpcy5ob3N0ZWREcm9wZG93bj8udXBkYXRlT3BlbihmYWxzZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1c0lucHV0KHByZXZlbnRTY3JvbGw6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICBzZXROYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCwgdHJ1ZSwgcHJldmVudFNjcm9sbCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9zZWxlY3QvIiwic291cmNlcyI6WyJzZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLElBQUksRUFDSixXQUFXLEVBQ1gsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsMEJBQTBCLEVBQzFCLGVBQWUsRUFDZixnQkFBZ0IsRUFHaEIsY0FBYyxHQUVqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gscUJBQXFCLEVBQ3JCLG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsMEJBQTBCLEVBQzFCLDhCQUE4QixFQUM5QixRQUFRLEVBQ1IsUUFBUSxFQUNSLFFBQVEsRUFDUiw0QkFBNEIsRUFDNUIsc0JBQXNCLEdBQ3pCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLGNBQWMsRUFBZSxNQUFNLGdDQUFnQyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxrQkFBa0IsRUFBbUIsTUFBTSxzQkFBc0IsQ0FBQztBQUcxRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUMsa0JBQWtCLEVBQW1CLE1BQU0sa0JBQWtCLENBQUM7QUFTdEU7SUFDWSxzQ0FBNkI7SUEyQnJDLDRCQUlJLE9BQXlCLEVBQ0UsaUJBQW9DLEVBRTlDLGdCQUE4QyxFQUU5QyxTQUF1QixFQUV2QixhQUFrQyxFQUVsQyxPQUE0QjtRQWJqRCxZQWVJLGtCQUFNLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxTQUNwQztRQVRvQixzQkFBZ0IsR0FB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bmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZixcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2wsXG4gICAgaXNOYXRpdmVGb2N1c2VkLFxuICAgIHNldE5hdGl2ZUZvY3VzZWQsXG4gICAgVHVpQWN0aXZlWm9uZURpcmVjdGl2ZSxcbiAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0LFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvcixcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIFRVSV9URVhURklFTERfQ0xFQU5FUixcbiAgICBUdWlEYXRhTGlzdERpcmVjdGl2ZSxcbiAgICBUdWlEYXRhTGlzdEhvc3QsXG4gICAgVHVpSG9zdGVkRHJvcGRvd25Db21wb25lbnQsXG4gICAgVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgIFR1aVNpemVMLFxuICAgIFR1aVNpemVNLFxuICAgIFR1aVNpemVTLFxuICAgIFR1aVRleHRmaWVsZENsZWFuZXJEaXJlY3RpdmUsXG4gICAgVHVpVmFsdWVDb250ZW50Q29udGV4dCxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUVUlfQVJST1dfTU9ERSwgVHVpQXJyb3dNb2RlfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvYXJyb3cnO1xuaW1wb3J0IHtUVUlfSVRFTVNfSEFORExFUlMsIFR1aUl0ZW1zSGFuZGxlcnN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcblxuaW1wb3J0IHtUVUlfU0VMRUNUX1BST1ZJREVSU30gZnJvbSAnLi9zZWxlY3QucHJvdmlkZXJzJztcbmltcG9ydCB7VFVJX1NFTEVDVF9PUFRJT05TLCBUdWlTZWxlY3RPcHRpb25zfSBmcm9tICcuL3NlbGVjdC1vcHRpb25zJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktc2VsZWN0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlbGVjdC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBUVUlfU0VMRUNUX1BST1ZJREVSUyxcbn0pXG5leHBvcnQgY2xhc3MgVHVpU2VsZWN0Q29tcG9uZW50PFQ+XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aU51bGxhYmxlQ29udHJvbDxUPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLCBUdWlEYXRhTGlzdEhvc3Q8VD5cbntcbiAgICBAVmlld0NoaWxkKFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZD86IFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGQoVHVpSG9zdGVkRHJvcGRvd25Db21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBob3N0ZWREcm9wZG93bj86IFR1aUhvc3RlZERyb3Bkb3duQ29tcG9uZW50O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHN0cmluZ2lmeTogVHVpSXRlbXNIYW5kbGVyczxUPlsnc3RyaW5naWZ5J10gPSB0aGlzLml0ZW1zSGFuZGxlcnMuc3RyaW5naWZ5O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGlkZW50aXR5TWF0Y2hlcjogVHVpSXRlbXNIYW5kbGVyczxUPlsnaWRlbnRpdHlNYXRjaGVyJ10gPVxuICAgICAgICB0aGlzLml0ZW1zSGFuZGxlcnMuaWRlbnRpdHlNYXRjaGVyO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHZhbHVlQ29udGVudDogVHVpU2VsZWN0T3B0aW9uczxUPlsndmFsdWVDb250ZW50J10gPSB0aGlzLm9wdGlvbnMudmFsdWVDb250ZW50O1xuXG4gICAgQENvbnRlbnRDaGlsZChUdWlEYXRhTGlzdERpcmVjdGl2ZSwge3JlYWQ6IFRlbXBsYXRlUmVmfSlcbiAgICByZWFkb25seSBkYXRhbGlzdDogUG9seW1vcnBoZXVzQ29udGVudDxcbiAgICAgICAgVHVpQ29udGV4dFdpdGhJbXBsaWNpdDxUdWlBY3RpdmVab25lRGlyZWN0aXZlPlxuICAgID4gPSAnJztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9DTEVBTkVSKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZENsZWFuZXI6IFR1aVRleHRmaWVsZENsZWFuZXJEaXJlY3RpdmUsXG4gICAgICAgIEBJbmplY3QoVFVJX0FSUk9XX01PREUpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYXJyb3dNb2RlOiBUdWlBcnJvd01vZGUsXG4gICAgICAgIEBJbmplY3QoVFVJX0lURU1TX0hBTkRMRVJTKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGl0ZW1zSGFuZGxlcnM6IFR1aUl0ZW1zSGFuZGxlcnM8VD4sXG4gICAgICAgIEBJbmplY3QoVFVJX1NFTEVDVF9PUFRJT05TKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IFR1aVNlbGVjdE9wdGlvbnM8VD4sXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNvbnRyb2wsIGNoYW5nZURldGVjdG9yUmVmKTtcbiAgICB9XG5cbiAgICBnZXQgYXJyb3coKTogUG9seW1vcnBoZXVzQ29udGVudDxcbiAgICAgICAgVHVpQ29udGV4dFdpdGhJbXBsaWNpdDxUdWlTaXplUyB8IFR1aVNpemVNIHwgVHVpU2l6ZUw+XG4gICAgPiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5pbnRlcmFjdGl2ZSA/IHRoaXMuYXJyb3dNb2RlLmRpc2FibGVkIDogdGhpcy5hcnJvd01vZGUuaW50ZXJhY3RpdmU7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0ZmllbGQgPyB0aGlzLnRleHRmaWVsZC5uYXRpdmVGb2N1c2FibGVFbGVtZW50IDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGlzTmF0aXZlRm9jdXNlZCh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHx8XG4gICAgICAgICAgICAoISF0aGlzLmhvc3RlZERyb3Bkb3duICYmIHRoaXMuaG9zdGVkRHJvcGRvd24uZm9jdXNlZClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZSA9PT0gbnVsbCA/ICcnIDogdGhpcy5zdHJpbmdpZnkodGhpcy52YWx1ZSkgfHwgJyAnO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZENvbnRlbnQoKTogUG9seW1vcnBoZXVzQ29udGVudDxUdWlWYWx1ZUNvbnRlbnRDb250ZXh0PFQ+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlQ29udGVudCB8fCB0aGlzLmNvbXB1dGVkVmFsdWU7XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUobnVsbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkFjdGl2ZVpvbmUoYWN0aXZlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChhY3RpdmUpO1xuICAgIH1cblxuICAgIG9uSG92ZXJlZChob3ZlcmVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlSG92ZXJlZChob3ZlcmVkKTtcbiAgICB9XG5cbiAgICBvbktleURvd25EZWxldGUoKSB7XG4gICAgICAgIGlmICh0aGlzLnRleHRmaWVsZENsZWFuZXIuY2xlYW5lcikge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShudWxsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZU9wdGlvbihvcHRpb246IFQpIHtcbiAgICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUob3B0aW9uKTtcbiAgICAgICAgdGhpcy5ob3N0ZWREcm9wZG93bj8udXBkYXRlT3BlbihmYWxzZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1c0lucHV0KHByZXZlbnRTY3JvbGw6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICBzZXROYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCwgdHJ1ZSwgcHJldmVudFNjcm9sbCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -1,8 +1,8 @@
1
- import { __decorate, __extends, __param, __read } from "tslib";
1
+ import { __decorate, __extends, __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
@@ -48,12 +48,7 @@ var TuiSliderKeyStepsDirective = /** @class */ (function (_super) {
48
48
  });
49
49
  Object.defineProperty(TuiSliderKeyStepsDirective.prototype, "controlValue", {
50
50
  get: function () {
51
- var valuePercentage = this.slider.valuePercentage;
52
- var _a = __read(findKeyStepsBoundariesByFn(this.keySteps, function (_a) {
53
- var _b = __read(_a, 2), keyStepPercentage = _b[0], _ = _b[1];
54
- return valuePercentage <= keyStepPercentage;
55
- }), 2), lowerStep = _a[0], upperStep = _a[1];
56
- return transformToControlValue(valuePercentage, lowerStep, upperStep);
51
+ return tuiPercentageToKeyStepValue(this.slider.valuePercentage, this.keySteps);
57
52
  },
58
53
  enumerable: true,
59
54
  configurable: true
@@ -65,21 +60,14 @@ var TuiSliderKeyStepsDirective = /** @class */ (function (_super) {
65
60
  if (controlValue === null) {
66
61
  return;
67
62
  }
68
- var _a = __read(findKeyStepsBoundariesByFn(this.keySteps, function (_a) {
69
- var _b = __read(_a, 2), _ = _b[0], keyStepValue = _b[1];
70
- return controlValue <= keyStepValue;
71
- }), 2), lowerStep = _a[0], upperStep = _a[1];
72
- this.slider.value = this.transformToNativeValue(controlValue, lowerStep, upperStep);
63
+ this.slider.value = this.transformToNativeValue(controlValue);
73
64
  };
74
65
  TuiSliderKeyStepsDirective.prototype.getFallbackValue = function () {
75
66
  return 0;
76
67
  };
77
- TuiSliderKeyStepsDirective.prototype.transformToNativeValue = function (controlValue, _a, _b) {
78
- var _c = __read(_a, 2), upperStepPercent = _c[0], upperStepValue = _c[1];
79
- var _d = __read(_b, 2), lowerStepPercent = _d[0], lowerStepValue = _d[1];
80
- var _e = this.slider, min = _e.min, max = _e.max;
81
- var ratio = (controlValue - lowerStepValue) / (upperStepValue - lowerStepValue);
82
- var newValuePercentage = (upperStepPercent - lowerStepPercent) * ratio + lowerStepPercent;
68
+ TuiSliderKeyStepsDirective.prototype.transformToNativeValue = function (controlValue) {
69
+ var _a = this.slider, min = _a.min, max = _a.max;
70
+ var newValuePercentage = tuiKeyStepValueToPercentage(controlValue, this.keySteps);
83
71
  return (newValuePercentage * (max - min)) / 100 + min;
84
72
  };
85
73
  TuiSliderKeyStepsDirective.ctorParameters = function () { return [
@@ -90,7 +78,7 @@ var TuiSliderKeyStepsDirective = /** @class */ (function (_super) {
90
78
  ]; };
91
79
  __decorate([
92
80
  Input(),
93
- tuiDefaultProp(checkHasMinMaxPercents, 'Should contain min and max values')
81
+ tuiDefaultProp(tuiCheckKeyStepsHaveMinMaxPercents, 'Should contain min and max values')
94
82
  ], TuiSliderKeyStepsDirective.prototype, "keySteps", void 0);
95
83
  __decorate([
96
84
  Output()
@@ -127,11 +115,7 @@ var TuiSliderTickLabelPipe = /** @class */ (function () {
127
115
  }
128
116
  TuiSliderTickLabelPipe.prototype.transform = function (tickIndex, totalSegments, keySteps) {
129
117
  var percentage = (100 / totalSegments) * tickIndex;
130
- var _a = __read(findKeyStepsBoundariesByFn(keySteps, function (_a) {
131
- var _b = __read(_a, 2), keyStepPercentage = _b[0], _ = _b[1];
132
- return percentage <= keyStepPercentage;
133
- }), 2), lowerStep = _a[0], upperStep = _a[1];
134
- return transformToControlValue(percentage, upperStep, lowerStep);
118
+ return tuiPercentageToKeyStepValue(percentage, keySteps);
135
119
  };
136
120
  TuiSliderTickLabelPipe = __decorate([
137
121
  Pipe({ name: 'tuiSliderTickLabel' })
@@ -139,20 +123,4 @@ var TuiSliderTickLabelPipe = /** @class */ (function () {
139
123
  return TuiSliderTickLabelPipe;
140
124
  }());
141
125
  export { TuiSliderTickLabelPipe };
142
- function checkHasMinMaxPercents(steps) {
143
- return !steps.length || (steps[0][0] === 0 && steps[steps.length - 1][0] === 100);
144
- }
145
- function findKeyStepsBoundariesByFn(keySteps, fn) {
146
- var keyStepUpperIndex = keySteps.findIndex(function (ketStep, i) { return i && fn(ketStep); });
147
- var lowerStep = keySteps[keyStepUpperIndex - 1];
148
- var upperStep = keySteps[keyStepUpperIndex];
149
- return [lowerStep, upperStep];
150
- }
151
- function transformToControlValue(valuePercentage, _a, _b) {
152
- var _c = __read(_a, 2), upperStepPercent = _c[0], upperStepValue = _c[1];
153
- var _d = __read(_b, 2), lowerStepPercent = _d[0], lowerStepValue = _d[1];
154
- var ratio = (valuePercentage - lowerStepPercent) / (upperStepPercent - lowerStepPercent);
155
- var controlValue = (upperStepValue - lowerStepValue) * ratio + lowerStepValue;
156
- return round(controlValue, TUI_FLOATING_PRECISION);
157
- }
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLWtleS1zdGVwcy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvc2xpZGVyLyIsInNvdXJjZXMiOlsic2xpZGVyLWtleS1zdGVwcy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFDSixhQUFhLEVBQ2IsSUFBSSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixLQUFLLEVBQ0wsY0FBYyxFQUVkLGNBQWMsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFL0QsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRXRELFdBQVc7QUFTWDtJQUNZLDhDQUEwQjtJQXNDbEMsb0NBSUksT0FBeUIsRUFDRSxpQkFBb0MsRUFDMUIsVUFBd0MsRUFDaEMsTUFBMEI7UUFQM0UsWUFTSSxrQkFBTSxPQUFPLEVBQUUsaUJBQWlCLENBQUMsU0FDcEM7UUFKd0MsZ0JBQVUsR0FBVixVQUFVLENBQThCO1FBQ2hDLFlBQU0sR0FBTixNQUFNLENBQW9CO1FBeEMzRSxjQUFRLEdBQWdCLEVBQUUsQ0FBQztRQUczQixtQkFBYSxHQUFHLGNBQWMsQ0FBQyxLQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3ZFLEdBQUcsQ0FBQyxjQUFNLE9BQUEsS0FBSSxDQUFD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SyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztBQUN0RixDQUFDO0FBRUQsU0FBUywwQkFBMEIsQ0FDL0IsUUFBcUIsRUFDckIsRUFBaUU7SUFFakUsSUFBTSxpQkFBaUIsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLFVBQUMsT0FBTyxFQUFFLENBQUMsSUFBSyxPQUFBLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQWhCLENBQWdCLENBQUMsQ0FBQztJQUMvRSxJQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbEQsSUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFOUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNsQyxDQUFDO0FBRUQsU0FBUyx1QkFBdUIsQ0FDNUIsZUFBdUIsRUFDdkIsRUFBb0QsRUFDcEQsRUFBb0Q7UUFEcEQsa0JBQW9ELEVBQW5ELHdCQUFnQixFQUFFLHNCQUFjO1FBQ2pDLGtCQUFvRCxFQUFuRCx3QkFBZ0IsRUFBRSxzQkFBYztJQUVqQyxJQUFNLEtBQUssR0FDUCxDQUFDLGVBQWUsR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQztJQUNqRixJQUFNLFlBQVksR0FBRyxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUMsR0FBRyxLQUFLLEdBQUcsY0FBYyxDQUFDO0lBRWhGLE9BQU8sS0FBSyxDQUFDLFlBQVksRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO0FBQ3ZELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFBpcGUsXG4gICAgUGlwZVRyYW5zZm9ybSxcbiAgICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpQ29udHJvbCxcbiAgICBpc05hdGl2ZUZvY3VzZWQsXG4gICAgcm91bmQsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIHR5cGVkRnJvbUV2ZW50LFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VFVJX0ZMT0FUSU5HX1BSRUNJU0lPTn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb25zdGFudHMnO1xuaW1wb3J0IHtUdWlLZXlTdGVwc30gZnJvbSAnQHRhaWdhLXVpL2tpdC90eXBlcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1R1aVNsaWRlckNvbXBvbmVudH0gZnJvbSAnLi9zbGlkZXIuY29tcG9uZW50JztcblxuLy8gQGR5bmFtaWNcbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnaW5wdXRbdHVpU2xpZGVyXVtrZXlTdGVwc10nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLmFyaWEtdmFsdWVub3ddJzogJ2NvbnRyb2xWYWx1ZScsXG4gICAgICAgICdbYXR0ci5hcmlhLXZhbHVlbWluXSc6ICdtaW4nLFxuICAgICAgICAnW2F0dHIuYXJpYS12YWx1ZW1heF0nOiAnbWF4JyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlTbGlkZXJLZXlTdGVwc0RpcmVjdGl2ZVxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlDb250cm9sPG51bWJlcj5cbiAgICBpbXBsZW1lbnRzIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKGNoZWNrSGFzTWluTWF4UGVyY2VudHMsICdTaG91bGQgY29udGFpbiBtaW4gYW5kIG1heCB2YWx1ZXMnKVxuICAgIGtleVN0ZXBzOiBUdWlLZXlTdGVwcyA9IFtdO1xuXG4gICAgQE91dHB1dCgpXG4gICAga2V5U3RlcHNJbnB1dCA9IHR5cGVkRnJvbUV2ZW50KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnaW5wdXQnKS5waXBlKFxuICAgICAgICBtYXAoKCkgPT4gdGhpcy5jb250cm9sVmFsdWUpLFxuICAgICk7XG5cbiAgICBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXB1dGVkRGlzYWJsZWQgPyBudWxsIDogdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpc05hdGl2ZUZvY3VzZWQodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBnZXQgbWluKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmtleVN0ZXBzWzBdPy5bMV0gfHwgMDtcbiAgICB9XG5cbiAgICBnZXQgbWF4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmtleVN0ZXBzW3RoaXMua2V5U3RlcHMubGVuZ3RoIC0gMV0/LlsxXSB8fCAxMDA7XG4gICAgfVxuXG4gICAgZ2V0IGNvbnRyb2xWYWx1ZSgpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB7dmFsdWVQZXJjZW50YWdlfSA9IHRoaXMuc2xpZGVyO1xuICAgICAgICBjb25zdCBbbG93ZXJTdGVwLCB1cHBlclN0ZXBdID0gZmluZEtleVN0ZXBzQm91bmRhcmllc0J5Rm4oXG4gICAgICAgICAgICB0aGlzLmtleVN0ZXBzLFxuICAgICAgICAgICAgKFtrZXlTdGVwUGVyY2VudGFnZSwgX10pID0+IHZhbHVlUGVyY2VudGFnZSA8PSBrZXlTdGVwUGVyY2VudGFnZSxcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gdHJhbnNmb3JtVG9Db250cm9sVmFsdWUodmFsdWVQZXJjZW50YWdlLCBsb3dlclN0ZXAsIHVwcGVyU3RlcCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoVHVpU2xpZGVyQ29tcG9uZW50KSBwcml2YXRlIHJlYWRvbmx5IHNsaWRlcjogVHVpU2xpZGVyQ29tcG9uZW50LFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2hhbmdlJylcbiAgICB1cGRhdGVDb250cm9sVmFsdWUoKSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy5jb250cm9sVmFsdWUpO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUoY29udHJvbFZhbHVlOiBudW1iZXIgfCBudWxsKSB7XG4gICAgICAgIGlmIChjb250cm9sVmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IFtsb3dlclN0ZXAsIHVwcGVyU3RlcF0gPSBmaW5kS2V5U3RlcHNCb3VuZGFyaWVzQnlGbihcbiAgICAgICAgICAgIHRoaXMua2V5U3RlcHMsXG4gICAgICAgICAgICAoW18sIGtleVN0ZXBWYWx1ZV0pID0+IGNvbnRyb2xWYWx1ZSA8PSBrZXlTdGVwVmFsdWUsXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5zbGlkZXIudmFsdWUgPSB0aGlzLnRyYW5zZm9ybVRvTmF0aXZlVmFsdWUoXG4gICAgICAgICAgICBjb250cm9sVmFsdWUsXG4gICAgICAgICAgICBsb3dlclN0ZXAsXG4gICAgICAgICAgICB1cHBlclN0ZXAsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZhbGxiYWNrVmFsdWUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0cmFuc2Zvcm1Ub05hdGl2ZVZhbHVlKFxuICAgICAgICBjb250cm9sVmFsdWU6IG51bWJlcixcbiAgICAgICAgW3VwcGVyU3RlcFBlcmNlbnQsIHVwcGVyU3RlcFZhbHVlXTogW251bWJlciwgbnVtYmVyXSxcbiAgICAgICAgW2xvd2VyU3RlcFBlcmNlbnQsIGxvd2VyU3RlcFZhbHVlXTogW251bWJlciwgbnVtYmVyXSxcbiAgICApOiBudW1iZXIge1xuICAgICAgICBjb25zdCB7bWluLCBtYXh9ID0gdGhpcy5zbGlkZXI7XG4gICAgICAgIGNvbnN0IHJhdGlvID0gKGNvbnRyb2xWYWx1ZSAtIGxvd2VyU3RlcFZhbHVlKSAvICh1cHBlclN0ZXBWYWx1ZSAtIGxvd2VyU3RlcFZhbHVlKTtcbiAgICAgICAgY29uc3QgbmV3VmFsdWVQZXJjZW50YWdlID1cbiAgICAgICAgICAgICh1cHBlclN0ZXBQZXJjZW50IC0gbG93ZXJTdGVwUGVyY2VudCkgKiByYXRpbyArIGxvd2VyU3RlcFBlcmNlbnQ7XG5cbiAgICAgICAgcmV0dXJuIChuZXdWYWx1ZVBlcmNlbnRhZ2UgKiAobWF4IC0gbWluKSkgLyAxMDAgKyBtaW47XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIERPTlQgVVNFIElUISBJdCBpcyBqdXN0IHRlbXBvcmFyeSBzb2x1dGlvbiBmb3IgaW50ZXJuYWwgcHVycG9zZXMgb25seS4gV2Ugd2lsbCBkZWxldGUgaXQgaW4gbmV4dCBtYWpvciByZWxlYXNlLlxuICogVE9ETyBkZWxldGUgaXQgaW4gdjMuMFxuICpcbiAqL1xuQFBpcGUoe25hbWU6ICd0dWlTbGlkZXJUaWNrTGFiZWwnfSlcbmV4cG9ydCBjbGFzcyBUdWlTbGlkZXJUaWNrTGFiZWxQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKHRpY2tJbmRleDogbnVtYmVyLCB0b3RhbFNlZ21lbnRzOiBudW1iZXIsIGtleVN0ZXBzOiBUdWlLZXlTdGVwcyk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHBlcmNlbnRhZ2UgPSAoMTAwIC8gdG90YWxTZWdtZW50cykgKiB0aWNrSW5kZXg7XG4gICAgICAgIGNvbnN0IFtsb3dlclN0ZXAsIHVwcGVyU3RlcF0gPSBmaW5kS2V5U3RlcHNCb3VuZGFyaWVzQnlGbihcbiAgICAgICAgICAgIGtleVN0ZXBzLFxuICAgICAgICAgICAgKFtrZXlTdGVwUGVyY2VudGFnZSwgX10pID0+IHBlcmNlbnRhZ2UgPD0ga2V5U3RlcFBlcmNlbnRhZ2UsXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHRyYW5zZm9ybVRvQ29udHJvbFZhbHVlKHBlcmNlbnRhZ2UsIHVwcGVyU3RlcCwgbG93ZXJTdGVwKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGNoZWNrSGFzTWluTWF4UGVyY2VudHMoc3RlcHM6IFR1aUtleVN0ZXBzKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFzdGVwcy5sZW5ndGggfHwgKHN0ZXBzWzBdWzBdID09PSAwICYmIHN0ZXBzW3N0ZXBzLmxlbmd0aCAtIDFdWzBdID09PSAxMDApO1xufVxuXG5mdW5jdGlvbiBmaW5kS2V5U3RlcHNCb3VuZGFyaWVzQnlGbihcbiAgICBrZXlTdGVwczogVHVpS2V5U3RlcHMsXG4gICAgZm46IChba2V5U3RlcFBlcmNlbnQsIGtleVN0ZXBWYWx1ZV06IFtudW1iZXIsIG51bWJlcl0pID0+IGJvb2xlYW4sXG4pOiBbW251bWJlciwgbnVtYmVyXSwgW251bWJlciwgbnVtYmVyXV0ge1xuICAgIGNvbnN0IGtleVN0ZXBVcHBlckluZGV4ID0ga2V5U3RlcHMuZmluZEluZGV4KChrZXRTdGVwLCBpKSA9PiBpICYmIGZuKGtldFN0ZXApKTtcbiAgICBjb25zdCBsb3dlclN0ZXAgPSBrZXlTdGVwc1trZXlTdGVwVXBwZXJJbmRleCAtIDFdO1xuICAgIGNvbnN0IHVwcGVyU3RlcCA9IGtleVN0ZXBzW2tleVN0ZXBVcHBlckluZGV4XTtcblxuICAgIHJldHVybiBbbG93ZXJTdGVwLCB1cHBlclN0ZXBdO1xufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1Ub0NvbnRyb2xWYWx1ZShcbiAgICB2YWx1ZVBlcmNlbnRhZ2U6IG51bWJlcixcbiAgICBbdXBwZXJTdGVwUGVyY2VudCwgdXBwZXJTdGVwVmFsdWVdOiBbbnVtYmVyLCBudW1iZXJdLFxuICAgIFtsb3dlclN0ZXBQZXJjZW50LCBsb3dlclN0ZXBWYWx1ZV06IFtudW1iZXIsIG51bWJlcl0sXG4pOiBudW1iZXIge1xuICAgIGNvbnN0IHJhdGlvID1cbiAgICAgICAgKHZhbHVlUGVyY2VudGFnZSAtIGxvd2VyU3RlcFBlcmNlbnQpIC8gKHVwcGVyU3RlcFBlcmNlbnQgLSBsb3dlclN0ZXBQZXJjZW50KTtcbiAgICBjb25zdCBjb250cm9sVmFsdWUgPSAodXBwZXJTdGVwVmFsdWUgLSBsb3dlclN0ZXBWYWx1ZSkgKiByYXRpbyArIGxvd2VyU3RlcFZhbHVlO1xuXG4gICAgcmV0dXJuIHJvdW5kKGNvbnRyb2xWYWx1ZSwgVFVJX0ZMT0FUSU5HX1BSRUNJU0lPTik7XG59XG4iXX0=
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLWtleS1zdGVwcy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvc2xpZGVyLyIsInNvdXJjZXMiOlsic2xpZGVyLWtleS1zdGVwcy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFDSixhQUFhLEVBQ2IsSUFBSSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixjQUFjLEVBRWQsY0FBYyxHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0gsa0NBQWtDLEVBQ2xDLDJCQUEyQixFQUMzQiwyQkFBMkIsR0FDOUIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFdEQsV0FBVztBQVNYO0lBQ1ksOENBQTBCO0lBbUNsQyxvQ0FJSSxPQUF5QixFQUNFLGlCQUFvQyxFQUMxQixVQUF3QyxFQUNoQyxNQUEwQjtRQVAzRSxZQVNJLGtCQUFNLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxTQUNwQztRQUp3QyxnQkFBVSxHQUFWLFVBQVUsQ0FBOEI7UUFDaEMsWUFBTSxHQUFOLE1BQU0sQ0FBb0I7UUFsQzNFLGNBQVEsR0FBZ0IsRUFBRSxDQUFDO1FBRzNCLG1CQUFhLEdBQUcsY0FBYyxDQUFDLEtBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDdkUsR0FBRyxDQUFDLGNB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QixXQUFBLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO09BM0N0QiwwQkFBMEIsQ0EwRXRDO0lBQUQsaUNBQUM7Q0FBQSxBQTFFRCxDQUNZLGtCQUFrQixHQXlFN0I7U0ExRVksMEJBQTBCO0FBNEV2Qzs7OztHQUlHO0FBRUg7SUFBQTtJQU1BLENBQUM7SUFMRywwQ0FBUyxHQUFULFVBQVUsU0FBaUIsRUFBRSxhQUFxQixFQUFFLFFBQXFCO1FBQ3JFLElBQU0sVUFBVSxHQUFHLENBQUMsR0FBRyxHQUFHLGFBQWEsQ0FBQyxHQUFHLFNBQVMsQ0FBQztRQUVyRCxPQUFPLDJCQUEyQixDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBTFEsc0JBQXNCO1FBRGxDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxvQkFBb0IsRUFBQyxDQUFDO09BQ3RCLHNCQUFzQixDQU1sQztJQUFELDZCQUFDO0NBQUEsQUFORCxJQU1DO1NBTlksc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBQaXBlLFxuICAgIFBpcGVUcmFuc2Zvcm0sXG4gICAgU2VsZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aUNvbnRyb2wsXG4gICAgaXNOYXRpdmVGb2N1c2VkLFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICB0eXBlZEZyb21FdmVudCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1R1aUtleVN0ZXBzfSBmcm9tICdAdGFpZ2EtdWkva2l0L3R5cGVzJztcbmltcG9ydCB7XG4gICAgdHVpQ2hlY2tLZXlTdGVwc0hhdmVNaW5NYXhQZXJjZW50cyxcbiAgICB0dWlLZXlTdGVwVmFsdWVUb1BlcmNlbnRhZ2UsXG4gICAgdHVpUGVyY2VudGFnZVRvS2V5U3RlcFZhbHVlLFxufSBmcm9tICdAdGFpZ2EtdWkva2l0L3V0aWxzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7VHVpU2xpZGVyQ29tcG9uZW50fSBmcm9tICcuL3NsaWRlci5jb21wb25lbnQnO1xuXG4vLyBAZHluYW1pY1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdpbnB1dFt0dWlTbGlkZXJdW2tleVN0ZXBzXScsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIuYXJpYS12YWx1ZW5vd10nOiAnY29udHJvbFZhbHVlJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtdmFsdWVtaW5dJzogJ21pbicsXG4gICAgICAgICdbYXR0ci5hcmlhLXZhbHVlbWF4XSc6ICdtYXgnLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVNsaWRlcktleVN0ZXBzRGlyZWN0aXZlXG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aUNvbnRyb2w8bnVtYmVyPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoXG4gICAgICAgIHR1aUNoZWNrS2V5U3RlcHNIYXZlTWluTWF4UGVyY2VudHMsXG4gICAgICAgICdTaG91bGQgY29udGFpbiBtaW4gYW5kIG1heCB2YWx1ZXMnLFxuICAgIClcbiAgICBrZXlTdGVwczogVHVpS2V5U3RlcHMgPSBbXTtcblxuICAgIEBPdXRwdXQoKVxuICAgIGtleVN0ZXBzSW5wdXQgPSB0eXBlZEZyb21FdmVudCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2lucHV0JykucGlwZShcbiAgICAgICAgbWFwKCgpID0+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, __read } 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
  var SLIDER_INTERACTION_KEYS = new Set([
5
8
  'ArrowLeft',
6
9
  'ArrowRight',
@@ -15,12 +18,37 @@ var 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
  var TuiSliderReadonlyDirective = /** @class */ (function () {
19
- function TuiSliderReadonlyDirective() {
23
+ function TuiSliderReadonlyDirective(elementRef, documentRef, destroy$) {
24
+ var _this = this;
20
25
  this.readonly = true;
26
+ var touchStart$ = typedFromEvent(elementRef.nativeElement, 'touchstart', {
27
+ passive: false,
28
+ });
29
+ var touchMove$ = typedFromEvent(documentRef, 'touchmove', {
30
+ passive: false,
31
+ });
32
+ var touchEnd$ = typedFromEvent(documentRef, 'touchend', {
33
+ passive: true,
34
+ });
35
+ var shouldPreventMove$ = merge(touchStart$.pipe(tap(function (e) { return _this.preventEvent(e); }), mapTo(true)), touchEnd$.pipe(mapTo(false)));
36
+ /**
37
+ * @bad TODO think about another solution.
38
+ * Keep in mind that preventing touch event (on slider) inside `@HostListener('touchstart')` doesn't work for mobile chrome.
39
+ */
40
+ combineLatest([touchMove$, shouldPreventMove$])
41
+ .pipe(filter(function (_a) {
42
+ var _b = __read(_a, 2), _ = _b[0], shouldPreventMove = _b[1];
43
+ return shouldPreventMove;
44
+ }), takeUntil(destroy$))
45
+ .subscribe(function (_a) {
46
+ var _b = __read(_a, 1), moveEvent = _b[0];
47
+ return _this.preventEvent(moveEvent);
48
+ });
21
49
  }
22
50
  TuiSliderReadonlyDirective.prototype.preventEvent = function (event) {
23
- if (this.readonly === '' || this.readonly) {
51
+ if (event.cancelable && tuiCoerceBooleanProperty(this.readonly)) {
24
52
  event.preventDefault();
25
53
  }
26
54
  };
@@ -29,13 +57,17 @@ var TuiSliderReadonlyDirective = /** @class */ (function () {
29
57
  this.preventEvent(event);
30
58
  }
31
59
  };
60
+ TuiSliderReadonlyDirective.ctorParameters = function () { return [
61
+ { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
62
+ { type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
63
+ { type: Observable, decorators: [{ type: Inject, args: [TuiDestroyService,] }] }
64
+ ]; };
32
65
  __decorate([
33
66
  Input(),
34
67
  tuiDefaultProp()
35
68
  ], TuiSliderReadonlyDirective.prototype, "readonly", void 0);
36
69
  __decorate([
37
- HostListener('mousedown', ['$event']),
38
- HostListener('touchstart', ['$event'])
70
+ HostListener('mousedown', ['$event'])
39
71
  ], TuiSliderReadonlyDirective.prototype, "preventEvent", null);
40
72
  __decorate([
41
73
  HostListener('keydown', ['$event'])
@@ -43,9 +75,13 @@ var TuiSliderReadonlyDirective = /** @class */ (function () {
43
75
  TuiSliderReadonlyDirective = __decorate([
44
76
  Directive({
45
77
  selector: 'input[tuiSlider][readonly]',
46
- })
78
+ providers: [TuiDestroyService],
79
+ }),
80
+ __param(0, Inject(ElementRef)),
81
+ __param(1, Inject(DOCUMENT)),
82
+ __param(2, Inject(TuiDestroyService))
47
83
  ], TuiSliderReadonlyDirective);
48
84
  return TuiSliderReadonlyDirective;
49
85
  }());
50
86
  export { TuiSliderReadonlyDirective };
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLXJlYWRvbmx5LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9zbGlkZXIvIiwic291cmNlcyI6WyJzbGlkZXItcmVhZG9ubHkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU3QyxJQUFNLHVCQUF1QixHQUFHLElBQUksR0FBRyxDQUFDO0lBQ3BDLFdBQVc7SUFDWCxZQUFZO0lBQ1osU0FBUztJQUNULFdBQVc7SUFDWCxNQUFNO0lBQ04sS0FBSztJQUNMLFFBQVE7SUFDUixVQUFVO0NBQ2IsQ0FBQyxDQUFDO0FBRUg7OztHQUdHO0FBSUg7SUFBQTtRQUdJLGFBQVEsR0FBaUIsSUFBSSxDQUFDO0lBZ0JsQyxDQUFDO0lBWkcsaURBQVksR0FBWixVQUFhLEtBQVk7UUFDckIsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLEVBQUUsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3ZDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUMxQjtJQUNMLENBQUM7SUFHRCwrREFBMEIsR0FBMUIsVUFBMkIsS0FBb0I7UUFDM0MsSUFBSSx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDNUI7SUFDTCxDQUFDO0lBZkQ7UUFGQyxLQUFLLEVBQUU7UUFDUCxjQUFjLEVBQUU7Z0VBQ2E7SUFJOUI7UUFGQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2tFQUt0QztJQUdEO1FBREMsWUFBWSxDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dGQUtuQztJQWxCUSwwQkFBMEI7UUFIdEMsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLDRCQUE0QjtTQUN6QyxDQUFDO09BQ1csMEJBQTBCLENBbUJ0QztJQUFELGlDQUFDO0NBQUEsQUFuQkQsSUFtQkM7U0FuQlksMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0dWlEZWZhdWx0UHJvcH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5cbmNvbnN0IFNMSURFUl9JTlRFUkFDVElPTl9LRVlTID0gbmV3IFNldChbXG4gICAgJ0Fycm93TGVmdCcsXG4gICAgJ0Fycm93UmlnaHQnLFxuICAgICdBcnJvd1VwJyxcbiAgICAnQXJyb3dEb3duJyxcbiAgICAnSG9tZScsXG4gICAgJ0VuZCcsXG4gICAgJ1BhZ2VVcCcsXG4gICAgJ1BhZ2VEb3duJyxcbl0pO1xuXG4vKipcbiAqIE5hdGl2ZSA8aW5wdXQgdHlwZT0ncmFuZ2UnIHJlYWRvbmx5PiBkb2Vzbid0IHdvcmsuXG4gKiBUaGlzIGRpcmVjdGl2ZSBpbWl0YXRlcyB0aGlzIG5hdGl2ZSBiZWhhdmlvdXIuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnaW5wdXRbdHVpU2xpZGVyXVtyZWFkb25seV0nLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlTbGlkZXJSZWFkb25seURpcmVjdGl2ZSB7XG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHJlYWRvbmx5OiAnJyB8IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2Vkb3duJywgWyckZXZlbnQnXSlcbiAgICBASG9zdExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgWyckZXZlbnQnXSlcbiAgICBwcmV2ZW50RXZlbnQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLnJlYWRvbmx5ID09PSAnJyB8fCB0aGlzLnJlYWRvbmx5KSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAgcHJldmVudEtleWJvYXJkSW50ZXJhY3Rpb24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKFNMSURFUl9JTlRFUkFDVElPTl9LRVlTLmhhcyhldmVudC5rZXkpKSB7XG4gICAgICAgICAgICB0aGlzLnByZXZlbnRFdmVudChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLXJlYWRvbmx5LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9zbGlkZXIvIiwic291cmNlcyI6WyJzbGlkZXItcmVhZG9ubHkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUNILHdCQUF3QixFQUN4QixjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLGNBQWMsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGFBQWEsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3RELE9BQU8sRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3RCxJQUFNLHVCQUF1QixHQUFHLElBQUksR0FBRyxDQUFDO0lBQ3BDLFdBQVc7SUFDWCxZQUFZO0lBQ1osU0FBUztJQUNULFdBQVc7SUFDWCxNQUFNO0lBQ04sS0FBSztJQUNMLFFBQVE7SUFDUixVQUFVO0NBQ2IsQ0FBQyxDQUFDO0FBRUg7OztHQUdHO0FBQ0gsV0FBVztBQUtYO0lBS0ksb0NBQ3dCLFVBQXdDLEVBQzFDLFdBQXFCLEVBRXZDLFFBQTZCO1FBSmpDLGlCQWtDQztRQXBDRCxhQUFRLEdBQXFCLElBQUksQ0FBQztRQVE5QixJQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxZQUFZLEVBQUU7WUFDdkUsT0FBTyxFQUFFLEtBQUs7U0FDakIsQ0FBQyxDQUFDO1FBQ0gsSUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUU7WUFDeEQsT0FBTyxFQUFFLEtBQUs7U0FDakIsQ0FBQyxDQUFDO1FBQ0gsSUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLFdBQVcsRUFBRSxVQUFVLEVBQUU7WUFDdEQsT0FBTyxFQUFFLElBQUk7U0FDaEIsQ0FBQyxDQUFDO1FBRUgsSUFBTSxrQkFBa0IsR0FBRyxLQUFLLENBQzVCLFdBQVcsQ0FBQyxJQUFJLENBQ1osR0FBRyxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsS0FBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBcEIsQ0FBb0IsQ0FBQyxFQUM5QixLQUFLLENBQUMsSUFBSSxDQUFDLENBQ2QsRUFDRCxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUMvQixDQUFDO1FBRUY7OztXQUdHO1FBQ0gsYUFBYSxDQUFDLENBQUMsVUFBVSxFQUFFLGtCQUFrQixDQUFDLENBQUM7YUFDMUMsSUFBSSxDQUNELE1BQU0sQ0FBQyxVQUFDLEVBQXNCO2dCQUF0QixrQkFBc0IsRUFBckIsU0FBQyxFQUFFLHlCQUFpQjtZQUFNLE9BQUEsaUJBQWlCO1FBQWpCLENBQWlCLENBQUMsRUFDckQsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUN0QjthQUNBLFNBQVMsQ0FBQyxVQUFDLEVBQVc7Z0JBQVgsa0JBQVcsRUFBVixpQkFBUztZQUFNLE9BQUEsS0FBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUM7UUFBNUIsQ0FBNEIsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFHRCxpREFBWSxHQUFaLFVBQWEsS0FBWTtRQUNyQixJQUFJLEtBQUssQ0FBQyxVQUFVLElBQUksd0JBQXdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzdELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUMxQjtJQUNMLENBQUM7SUFHRCwrREFBMEIsR0FBMUIsVUFBMkIsS0FBb0I7UUFDM0MsSUFBSSx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDNUI7SUFDTCxDQUFDOztnQkEvQ21DLFVBQVUsdUJBQXpDLE1BQU0sU0FBQyxVQUFVO2dCQUNhLFFBQVEsdUJBQXRDLE1BQU0sU0FBQyxRQUFRO2dCQUVOLFVBQVUsdUJBRG5CLE1BQU0sU0FBQyxpQkFBaUI7O0lBTDdCO1FBRkMsS0FBSyxFQUFFO1FBQ1AsY0FBYyxFQUFFO2dFQUNpQjtJQXVDbEM7UUFEQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7a0VBS3JDO0lBR0Q7UUFEQyxZQUFZLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7Z0ZBS25DO0lBckRRLDBCQUEwQjtRQUp0QyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsNEJBQTRCO1lBQ3RDLFNBQVMsRUFBRSxDQUFDLGlCQUFpQixDQUFDO1NBQ2pDLENBQUM7UUFPTyxXQUFBLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUNsQixXQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNoQixXQUFBLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO09BUnJCLDBCQUEwQixDQXNEdEM7SUFBRCxpQ0FBQztDQUFBLEFBdERELElBc0RDO1NBdERZLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgdHVpQ29lcmNlQm9vbGVhblByb3BlcnR5LFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aURlc3Ryb3lTZXJ2aWNlLFxuICAgIHR5cGVkRnJvbUV2ZW50LFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgbWVyZ2UsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcFRvLCB0YWtlVW50aWwsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5jb25zdCBTTElERVJfSU5URVJBQ1RJT05fS0VZUyA9IG5ldyBTZXQoW1xuICAgICdBcnJvd0xlZnQnLFxuICAgICdBcnJvd1JpZ2h0JyxcbiAgICAnQXJyb3dVcCcsXG4gICAgJ0Fycm93RG93bicsXG4gICAgJ0hvbWUnLFxuICAgICdFbmQnLFxuICAgICdQYWdlVXAnLFxuICAgICdQYWdlRG93bicsXG5dKTtcblxuLyoqXG4gKiBOYXRpdmUgPGlucHV0IHR5cGU9J3JhbmdlJyByZWFkb25seT4gZG9lc24ndCB3b3JrLlxuICogVGhpcyBkaXJlY3RpdmUgaW1pdGF0ZXMgdGhpcyBuYXRpdmUgYmVoYXZpb3VyLlxuICovXG4vLyBAZHluYW1pY1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdpbnB1dFt0dWlTbGlkZXJdW3JlYWRvbmx5XScsXG4gICAgcHJvdmlkZXJzOiBbVHVpRGVzdHJveVNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlTbGlkZXJSZWFkb25seURpcmVjdGl2ZSB7XG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHJlYWRvbmx5OiBzdHJpbmcgfCBib29sZWFuID0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIGRvY3VtZW50UmVmOiBEb2N1bWVudCxcbiAgICAgICAgQEluamVjdChUdWlEZXN0cm95U2VydmljZSlcbiAgICAgICAgZGVzdHJveSQ6IE9ic2VydmFibGU8dW5rbm93bj4sXG4gICAgKSB7XG4gICAgICAgIGNvbnN0IHRvdWNoU3RhcnQkID0gdHlwZWRGcm9tRXZlbnQoZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndG91Y2hzdGFydCcsIHtcbiAgICAgICAgICAgIHBhc3NpdmU6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgdG91Y2hNb3ZlJCA9IHR5cGVkRnJvbUV2ZW50KGRvY3VtZW50UmVmLCAndG91Y2htb3ZlJywge1xuICAgICAgICAgICAgcGFzc2l2ZTogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCB0b3VjaEVuZCQgPSB0eXBlZEZyb21FdmVudChkb2N1bWVudFJlZiwgJ3RvdWNoZW5kJywge1xuICAgICAgICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3Qgc2hvdWxkUHJldmVudE1vdmUkID0gbWVyZ2UoXG4gICAgICAgICAgICB0b3VjaFN0YXJ0JC5waXBlKFxuICAgICAgICAgICAgICAgIHRhcChlID0+IHRoaXMucHJldmVudEV2ZW50KGUpKSxcbiAgICAgICAgICAgICAgICBtYXBUbyh0cnVlKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICB0b3VjaEVuZCQucGlwZShtYXBUbyhmYWxzZSkpLFxuICAgICAgICApO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAYmFkIFRPRE8gdGhpbmsgYWJvdXQgYW5vdGhlciBzb2x1dGlvbi5cbiAgICAgICAgICogS2VlcCBpbiBtaW5kIHRoYXQgcHJldmVudGluZyB0b3VjaCBldmVudCAob24gc2xpZGVyKSBpbnNpZGUgYEBIb3N0TGlzdGVuZXIoJ3RvdWNoc3RhcnQnKWAgZG9lc24ndCB3b3JrIGZvciBtb2JpbGUgY2hyb21lLlxuICAgICAgICAgKi9cbiAgICAgICAgY29tYmluZUxhdGVzdChbdG91Y2hNb3ZlJCwgc2hvdWxkUHJldmVudE1vdmUkXSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcigoW18sIHNob3VsZFByZXZlbnRNb3ZlXSkgPT4gc2hvdWxkUHJldmVudE1vdmUpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbChkZXN0cm95JCksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChbbW92ZUV2ZW50XSkgPT4gdGhpcy5wcmV2ZW50RXZlbnQobW92ZUV2ZW50KSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2Vkb3duJywgWyckZXZlbnQnXSlcbiAgICBwcmV2ZW50RXZlbnQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudC5jYW5jZWxhYmxlICYmIHR1aUNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh0aGlzLnJlYWRvbmx5KSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIHByZXZlbnRLZXlib2FyZEludGVyYWN0aW9uKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmIChTTElERVJfSU5URVJBQ1RJT05fS0VZUy5oYXMoZXZlbnQua2V5KSkge1xuICAgICAgICAgICAgdGhpcy5wcmV2ZW50RXZlbnQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19