@taiga-ui/kit 2.28.0 → 2.32.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 (501) hide show
  1. package/README.md +4 -5
  2. package/abstract/slider/slider.d.ts +1 -1
  3. package/abstract/taiga-ui-kit-abstract.metadata.json +1 -1
  4. package/bundles/taiga-ui-kit-abstract.umd.js +6 -5
  5. package/bundles/taiga-ui-kit-abstract.umd.js.map +1 -1
  6. package/bundles/taiga-ui-kit-abstract.umd.min.js +2 -2
  7. package/bundles/taiga-ui-kit-abstract.umd.min.js.map +1 -1
  8. package/bundles/taiga-ui-kit-components-arrow.umd.js +31 -8
  9. package/bundles/taiga-ui-kit-components-arrow.umd.js.map +1 -1
  10. package/bundles/taiga-ui-kit-components-arrow.umd.min.js +2 -2
  11. package/bundles/taiga-ui-kit-components-arrow.umd.min.js.map +1 -1
  12. package/bundles/taiga-ui-kit-components-calendar-month.umd.js +4 -1
  13. package/bundles/taiga-ui-kit-components-calendar-month.umd.js.map +1 -1
  14. package/bundles/taiga-ui-kit-components-calendar-month.umd.min.js +2 -2
  15. package/bundles/taiga-ui-kit-components-calendar-month.umd.min.js.map +1 -1
  16. package/bundles/taiga-ui-kit-components-carousel.umd.js +5 -4
  17. package/bundles/taiga-ui-kit-components-carousel.umd.js.map +1 -1
  18. package/bundles/taiga-ui-kit-components-carousel.umd.min.js +1 -1
  19. package/bundles/taiga-ui-kit-components-carousel.umd.min.js.map +1 -1
  20. package/bundles/taiga-ui-kit-components-checkbox-block.umd.js.map +1 -1
  21. package/bundles/taiga-ui-kit-components-checkbox-block.umd.min.js.map +1 -1
  22. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js.map +1 -1
  23. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.min.js.map +1 -1
  24. package/bundles/taiga-ui-kit-components-checkbox.umd.js +1 -1
  25. package/bundles/taiga-ui-kit-components-checkbox.umd.js.map +1 -1
  26. package/bundles/taiga-ui-kit-components-checkbox.umd.min.js +1 -1
  27. package/bundles/taiga-ui-kit-components-checkbox.umd.min.js.map +1 -1
  28. package/bundles/taiga-ui-kit-components-combo-box.umd.js +13 -19
  29. package/bundles/taiga-ui-kit-components-combo-box.umd.js.map +1 -1
  30. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js +2 -2
  31. package/bundles/taiga-ui-kit-components-combo-box.umd.min.js.map +1 -1
  32. package/bundles/taiga-ui-kit-components-input-count.umd.js +2 -6
  33. package/bundles/taiga-ui-kit-components-input-count.umd.js.map +1 -1
  34. package/bundles/taiga-ui-kit-components-input-count.umd.min.js +1 -1
  35. package/bundles/taiga-ui-kit-components-input-count.umd.min.js.map +1 -1
  36. package/bundles/taiga-ui-kit-components-input-date-range.umd.js +28 -13
  37. package/bundles/taiga-ui-kit-components-input-date-range.umd.js.map +1 -1
  38. package/bundles/taiga-ui-kit-components-input-date-range.umd.min.js +1 -1
  39. package/bundles/taiga-ui-kit-components-input-date-range.umd.min.js.map +1 -1
  40. package/bundles/taiga-ui-kit-components-input-date-time.umd.js +40 -23
  41. package/bundles/taiga-ui-kit-components-input-date-time.umd.js.map +1 -1
  42. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js +2 -2
  43. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js.map +1 -1
  44. package/bundles/taiga-ui-kit-components-input-date.umd.js +27 -12
  45. package/bundles/taiga-ui-kit-components-input-date.umd.js.map +1 -1
  46. package/bundles/taiga-ui-kit-components-input-date.umd.min.js +2 -2
  47. package/bundles/taiga-ui-kit-components-input-date.umd.min.js.map +1 -1
  48. package/bundles/taiga-ui-kit-components-input-file.umd.js +1 -8
  49. package/bundles/taiga-ui-kit-components-input-file.umd.js.map +1 -1
  50. package/bundles/taiga-ui-kit-components-input-file.umd.min.js +1 -1
  51. package/bundles/taiga-ui-kit-components-input-file.umd.min.js.map +1 -1
  52. package/bundles/taiga-ui-kit-components-input-inline.umd.js +2 -15
  53. package/bundles/taiga-ui-kit-components-input-inline.umd.js.map +1 -1
  54. package/bundles/taiga-ui-kit-components-input-inline.umd.min.js +1 -1
  55. package/bundles/taiga-ui-kit-components-input-inline.umd.min.js.map +1 -1
  56. package/bundles/taiga-ui-kit-components-input-month-range.umd.js +1 -8
  57. package/bundles/taiga-ui-kit-components-input-month-range.umd.js.map +1 -1
  58. package/bundles/taiga-ui-kit-components-input-month-range.umd.min.js +1 -1
  59. package/bundles/taiga-ui-kit-components-input-month-range.umd.min.js.map +1 -1
  60. package/bundles/taiga-ui-kit-components-input-month.umd.js +1 -8
  61. package/bundles/taiga-ui-kit-components-input-month.umd.js.map +1 -1
  62. package/bundles/taiga-ui-kit-components-input-month.umd.min.js +1 -1
  63. package/bundles/taiga-ui-kit-components-input-month.umd.min.js.map +1 -1
  64. package/bundles/taiga-ui-kit-components-input-number.umd.js +12 -12
  65. package/bundles/taiga-ui-kit-components-input-number.umd.js.map +1 -1
  66. package/bundles/taiga-ui-kit-components-input-number.umd.min.js +1 -1
  67. package/bundles/taiga-ui-kit-components-input-number.umd.min.js.map +1 -1
  68. package/bundles/taiga-ui-kit-components-input-password.umd.js +2 -9
  69. package/bundles/taiga-ui-kit-components-input-password.umd.js.map +1 -1
  70. package/bundles/taiga-ui-kit-components-input-password.umd.min.js +1 -1
  71. package/bundles/taiga-ui-kit-components-input-password.umd.min.js.map +1 -1
  72. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js +46 -25
  73. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js.map +1 -1
  74. package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js +1 -1
  75. package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js.map +1 -1
  76. package/bundles/taiga-ui-kit-components-input-phone.umd.js +3 -3
  77. package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
  78. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js +1 -1
  79. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js.map +1 -1
  80. package/bundles/taiga-ui-kit-components-input-range.umd.js +7 -4
  81. package/bundles/taiga-ui-kit-components-input-range.umd.js.map +1 -1
  82. package/bundles/taiga-ui-kit-components-input-range.umd.min.js +2 -2
  83. package/bundles/taiga-ui-kit-components-input-range.umd.min.js.map +1 -1
  84. package/bundles/taiga-ui-kit-components-input-slider.umd.js +7 -4
  85. package/bundles/taiga-ui-kit-components-input-slider.umd.js.map +1 -1
  86. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js +1 -1
  87. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js.map +1 -1
  88. package/bundles/taiga-ui-kit-components-input-tag.umd.js +3 -3
  89. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  90. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js +1 -1
  91. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js.map +1 -1
  92. package/bundles/taiga-ui-kit-components-input-time.umd.js +14 -14
  93. package/bundles/taiga-ui-kit-components-input-time.umd.js.map +1 -1
  94. package/bundles/taiga-ui-kit-components-input-time.umd.min.js +2 -2
  95. package/bundles/taiga-ui-kit-components-input-time.umd.min.js.map +1 -1
  96. package/bundles/taiga-ui-kit-components-input.umd.js +1 -1
  97. package/bundles/taiga-ui-kit-components-input.umd.js.map +1 -1
  98. package/bundles/taiga-ui-kit-components-input.umd.min.js +1 -1
  99. package/bundles/taiga-ui-kit-components-input.umd.min.js.map +1 -1
  100. package/bundles/taiga-ui-kit-components-multi-select.umd.js +23 -18
  101. package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
  102. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js +2 -2
  103. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js.map +1 -1
  104. package/bundles/taiga-ui-kit-components-rating.umd.js +368 -0
  105. package/bundles/taiga-ui-kit-components-rating.umd.js.map +1 -0
  106. package/bundles/taiga-ui-kit-components-rating.umd.min.js +16 -0
  107. package/bundles/taiga-ui-kit-components-rating.umd.min.js.map +1 -0
  108. package/bundles/taiga-ui-kit-components-select.umd.js +11 -16
  109. package/bundles/taiga-ui-kit-components-select.umd.js.map +1 -1
  110. package/bundles/taiga-ui-kit-components-select.umd.min.js +1 -1
  111. package/bundles/taiga-ui-kit-components-select.umd.min.js.map +1 -1
  112. package/bundles/taiga-ui-kit-components-tag.umd.js.map +1 -1
  113. package/bundles/taiga-ui-kit-components-tag.umd.min.js.map +1 -1
  114. package/bundles/taiga-ui-kit-components-text-area.umd.js +2 -2
  115. package/bundles/taiga-ui-kit-components-text-area.umd.js.map +1 -1
  116. package/bundles/taiga-ui-kit-components-text-area.umd.min.js +1 -1
  117. package/bundles/taiga-ui-kit-components-text-area.umd.min.js.map +1 -1
  118. package/bundles/taiga-ui-kit-components-tree.umd.js +23 -13
  119. package/bundles/taiga-ui-kit-components-tree.umd.js.map +1 -1
  120. package/bundles/taiga-ui-kit-components-tree.umd.min.js +2 -2
  121. package/bundles/taiga-ui-kit-components-tree.umd.min.js.map +1 -1
  122. package/bundles/taiga-ui-kit-components.umd.js +12 -4
  123. package/bundles/taiga-ui-kit-components.umd.js.map +1 -1
  124. package/bundles/taiga-ui-kit-components.umd.min.js +1 -1
  125. package/bundles/taiga-ui-kit-constants.umd.js +16 -0
  126. package/bundles/taiga-ui-kit-constants.umd.js.map +1 -1
  127. package/bundles/taiga-ui-kit-constants.umd.min.js +1 -1
  128. package/bundles/taiga-ui-kit-constants.umd.min.js.map +1 -1
  129. package/bundles/taiga-ui-kit-directives-lazy-loading.umd.js.map +1 -1
  130. package/bundles/taiga-ui-kit-directives-lazy-loading.umd.min.js.map +1 -1
  131. package/bundles/taiga-ui-kit-tokens.umd.js +7 -0
  132. package/bundles/taiga-ui-kit-tokens.umd.js.map +1 -1
  133. package/bundles/taiga-ui-kit-tokens.umd.min.js +1 -1
  134. package/bundles/taiga-ui-kit-tokens.umd.min.js.map +1 -1
  135. package/bundles/taiga-ui-kit-utils-mask.umd.js +65 -22
  136. package/bundles/taiga-ui-kit-utils-mask.umd.js.map +1 -1
  137. package/bundles/taiga-ui-kit-utils-mask.umd.min.js +2 -2
  138. package/bundles/taiga-ui-kit-utils-mask.umd.min.js.map +1 -1
  139. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.js +241 -6
  140. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.js.map +1 -1
  141. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.min.js +15 -1
  142. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.min.js.map +1 -1
  143. package/components/arrow/arrow-options.d.ts +16 -0
  144. package/components/arrow/arrow.component.d.ts +5 -3
  145. package/components/arrow/index.d.ts +1 -0
  146. package/components/arrow/taiga-ui-kit-components-arrow.metadata.json +1 -1
  147. package/components/calendar-month/taiga-ui-kit-components-calendar-month.metadata.json +1 -1
  148. package/components/carousel/taiga-ui-kit-components-carousel.metadata.json +1 -1
  149. package/components/checkbox-block/checkbox-block.component.d.ts +1 -1
  150. package/components/checkbox-labeled/checkbox-labeled.component.d.ts +1 -1
  151. package/components/combo-box/combo-box.component.d.ts +3 -2
  152. package/components/combo-box/taiga-ui-kit-components-combo-box.metadata.json +1 -1
  153. package/components/index.d.ts +1 -0
  154. package/components/input-date/input-date.component.d.ts +5 -4
  155. package/components/input-date/taiga-ui-kit-components-input-date.metadata.json +1 -1
  156. package/components/input-date-range/input-date-range.component.d.ts +5 -4
  157. package/components/input-date-range/taiga-ui-kit-components-input-date-range.metadata.json +1 -1
  158. package/components/input-date-time/input-date-time.component.d.ts +5 -5
  159. package/components/input-date-time/taiga-ui-kit-components-input-date-time.metadata.json +1 -1
  160. package/components/input-file/input-file.component.d.ts +0 -1
  161. package/components/input-file/taiga-ui-kit-components-input-file.metadata.json +1 -1
  162. package/components/input-inline/input-inline.component.d.ts +0 -1
  163. package/components/input-inline/taiga-ui-kit-components-input-inline.metadata.json +1 -1
  164. package/components/input-month/input-month.component.d.ts +0 -1
  165. package/components/input-month/taiga-ui-kit-components-input-month.metadata.json +1 -1
  166. package/components/input-month-range/input-month-range.component.d.ts +0 -1
  167. package/components/input-month-range/taiga-ui-kit-components-input-month-range.metadata.json +1 -1
  168. package/components/input-number/taiga-ui-kit-components-input-number.metadata.json +1 -1
  169. package/components/input-password/input-password.component.d.ts +0 -1
  170. package/components/input-password/taiga-ui-kit-components-input-password.metadata.json +1 -1
  171. package/components/input-phone-international/const/countries.d.ts +15 -7
  172. package/components/input-phone-international/country-iso-code.d.ts +1 -1
  173. package/components/input-phone-international/index.d.ts +2 -0
  174. package/components/input-phone-international/input-phone-international.component.d.ts +2 -2
  175. package/components/input-phone-international/taiga-ui-kit-components-input-phone-international.metadata.json +1 -1
  176. package/components/input-phone-international/tokens/countries-masks.d.ts +3 -0
  177. package/components/input-phone-international/utils/extract-value-from-event.d.ts +1 -0
  178. package/components/input-range/input-range.component.d.ts +2 -1
  179. package/components/input-range/taiga-ui-kit-components-input-range.metadata.json +1 -1
  180. package/components/input-slider/input-slider.component.d.ts +2 -1
  181. package/components/input-slider/taiga-ui-kit-components-input-slider.metadata.json +1 -1
  182. package/components/input-tag/input-tag.component.d.ts +1 -1
  183. package/components/input-tag/taiga-ui-kit-components-input-tag.metadata.json +1 -1
  184. package/components/input-time/input-time-options.d.ts +3 -0
  185. package/components/input-time/input-time.component.d.ts +7 -8
  186. package/components/input-time/taiga-ui-kit-components-input-time.metadata.json +1 -1
  187. package/components/multi-select/multi-select.component.d.ts +4 -2
  188. package/components/multi-select/taiga-ui-kit-components-multi-select.metadata.json +1 -1
  189. package/components/rating/index.d.ts +3 -0
  190. package/components/rating/package.json +13 -0
  191. package/components/rating/rating-options.d.ts +9 -0
  192. package/components/rating/rating.component.d.ts +21 -0
  193. package/components/rating/rating.module.d.ts +2 -0
  194. package/components/rating/taiga-ui-kit-components-rating.d.ts +4 -0
  195. package/components/rating/taiga-ui-kit-components-rating.metadata.json +1 -0
  196. package/components/select/select.component.d.ts +3 -2
  197. package/components/select/taiga-ui-kit-components-select.metadata.json +1 -1
  198. package/components/taiga-ui-kit-components.metadata.json +1 -1
  199. package/components/text-area/taiga-ui-kit-components-text-area.metadata.json +1 -1
  200. package/components/tree/components/tree/tree.component.d.ts +3 -1
  201. package/components/tree/taiga-ui-kit-components-tree.metadata.json +1 -1
  202. package/constants/index.d.ts +1 -0
  203. package/constants/masks.d.ts +8 -0
  204. package/constants/max-time-values.d.ts +2 -0
  205. package/constants/taiga-ui-kit-constants.metadata.json +1 -1
  206. package/directives/lazy-loading/lazy-loading.service.d.ts +1 -1
  207. package/esm2015/abstract/input-slider.js +4 -2
  208. package/esm2015/abstract/slider/slider.js +1 -1
  209. package/esm2015/components/arrow/arrow-options.js +17 -0
  210. package/esm2015/components/arrow/arrow.component.js +12 -8
  211. package/esm2015/components/arrow/arrow.module.js +3 -2
  212. package/esm2015/components/arrow/index.js +2 -1
  213. package/esm2015/components/calendar-month/calendar-month.component.js +5 -2
  214. package/esm2015/components/carousel/carousel-scroll.directive.js +5 -4
  215. package/esm2015/components/carousel/carousel.component.js +1 -1
  216. package/esm2015/components/checkbox/checkbox.component.js +2 -2
  217. package/esm2015/components/checkbox-block/checkbox-block.component.js +1 -1
  218. package/esm2015/components/checkbox-labeled/checkbox-labeled.component.js +1 -1
  219. package/esm2015/components/combo-box/combo-box.component.js +15 -17
  220. package/esm2015/components/index.js +2 -1
  221. package/esm2015/components/input/input.component.js +2 -2
  222. package/esm2015/components/input-count/input-count.component.js +3 -7
  223. package/esm2015/components/input-date/input-date.component.js +31 -18
  224. package/esm2015/components/input-date-range/input-date-range.component.js +32 -19
  225. package/esm2015/components/input-date-time/input-date-time.component.js +45 -24
  226. package/esm2015/components/input-file/input-file.component.js +2 -5
  227. package/esm2015/components/input-inline/input-inline.component.js +4 -13
  228. package/esm2015/components/input-month/input-month.component.js +2 -5
  229. package/esm2015/components/input-month-range/input-month-range.component.js +2 -5
  230. package/esm2015/components/input-number/input-number.component.js +15 -15
  231. package/esm2015/components/input-password/input-password.component.js +3 -6
  232. package/esm2015/components/input-phone/input-phone.component.js +4 -4
  233. package/esm2015/components/input-phone-international/const/countries.js +21 -10
  234. package/esm2015/components/input-phone-international/country-iso-code.js +2 -2
  235. package/esm2015/components/input-phone-international/index.js +3 -1
  236. package/esm2015/components/input-phone-international/input-phone-international.component.js +15 -18
  237. package/esm2015/components/input-phone-international/tokens/countries-masks.js +6 -0
  238. package/esm2015/components/input-phone-international/utils/extract-value-from-event.js +9 -0
  239. package/esm2015/components/input-range/input-range.component.js +9 -6
  240. package/esm2015/components/input-slider/input-slider.component.js +9 -6
  241. package/esm2015/components/input-tag/input-tag.component.js +4 -4
  242. package/esm2015/components/input-time/input-time-options.js +4 -1
  243. package/esm2015/components/input-time/input-time.component.js +10 -8
  244. package/esm2015/components/multi-select/multi-select.component.js +17 -11
  245. package/esm2015/components/rating/index.js +4 -0
  246. package/esm2015/components/rating/rating-options.js +11 -0
  247. package/esm2015/components/rating/rating.component.js +91 -0
  248. package/esm2015/components/rating/rating.module.js +23 -0
  249. package/esm2015/components/rating/taiga-ui-kit-components-rating.js +5 -0
  250. package/esm2015/components/select/select.component.js +13 -14
  251. package/esm2015/components/tag/tag.component.js +2 -2
  252. package/esm2015/components/text-area/text-area.component.js +3 -3
  253. package/esm2015/components/tree/components/tree/tree.component.js +11 -6
  254. package/esm2015/components/tree/tree.module.js +9 -2
  255. package/esm2015/constants/index.js +2 -1
  256. package/esm2015/constants/masks.js +9 -1
  257. package/esm2015/constants/max-time-values.js +7 -0
  258. package/esm2015/directives/lazy-loading/lazy-loading.service.js +1 -1
  259. package/esm2015/tokens/date-inputs-value-transformers.js +5 -0
  260. package/esm2015/tokens/index.js +2 -1
  261. package/esm2015/types/index.js +1 -1
  262. package/esm2015/types/time-format-parts.js +1 -0
  263. package/esm2015/utils/mask/create-auto-corrected-date-pipe.js +6 -4
  264. package/esm2015/utils/mask/create-auto-corrected-date-range-pipe.js +9 -6
  265. package/esm2015/utils/mask/create-auto-corrected-date-time-pipe.js +6 -6
  266. package/esm2015/utils/mask/create-auto-corrected-time-pipe.js +10 -7
  267. package/esm2015/utils/mask/create-date-mask.js +16 -0
  268. package/esm2015/utils/mask/create-date-range-mask.js +14 -0
  269. package/esm2015/utils/mask/create-time-mask.js +19 -8
  270. package/esm2015/utils/mask/index.js +3 -1
  271. package/esm2015/utils/miscellaneous/get-precision.js +8 -0
  272. package/esm2015/utils/miscellaneous/index.js +2 -1
  273. package/esm2015/utils/miscellaneous/replay-control-value-changes-factory.js +10 -4
  274. package/esm5/abstract/input-slider.js +4 -2
  275. package/esm5/abstract/slider/slider.js +1 -1
  276. package/esm5/components/arrow/arrow-options.js +17 -0
  277. package/esm5/components/arrow/arrow.component.js +12 -8
  278. package/esm5/components/arrow/arrow.module.js +3 -2
  279. package/esm5/components/arrow/index.js +2 -1
  280. package/esm5/components/calendar-month/calendar-month.component.js +5 -2
  281. package/esm5/components/carousel/carousel-scroll.directive.js +5 -4
  282. package/esm5/components/carousel/carousel.component.js +1 -1
  283. package/esm5/components/checkbox/checkbox.component.js +2 -2
  284. package/esm5/components/checkbox-block/checkbox-block.component.js +1 -1
  285. package/esm5/components/checkbox-labeled/checkbox-labeled.component.js +1 -1
  286. package/esm5/components/combo-box/combo-box.component.js +15 -21
  287. package/esm5/components/index.js +2 -1
  288. package/esm5/components/input/input.component.js +2 -2
  289. package/esm5/components/input-count/input-count.component.js +3 -7
  290. package/esm5/components/input-date/input-date.component.js +33 -18
  291. package/esm5/components/input-date-range/input-date-range.component.js +34 -19
  292. package/esm5/components/input-date-time/input-date-time.component.js +45 -28
  293. package/esm5/components/input-file/input-file.component.js +2 -9
  294. package/esm5/components/input-inline/input-inline.component.js +4 -17
  295. package/esm5/components/input-month/input-month.component.js +2 -9
  296. package/esm5/components/input-month-range/input-month-range.component.js +2 -9
  297. package/esm5/components/input-number/input-number.component.js +14 -14
  298. package/esm5/components/input-password/input-password.component.js +3 -10
  299. package/esm5/components/input-phone/input-phone.component.js +4 -4
  300. package/esm5/components/input-phone-international/const/countries.js +21 -10
  301. package/esm5/components/input-phone-international/country-iso-code.js +2 -2
  302. package/esm5/components/input-phone-international/index.js +3 -1
  303. package/esm5/components/input-phone-international/input-phone-international.component.js +15 -18
  304. package/esm5/components/input-phone-international/tokens/countries-masks.js +6 -0
  305. package/esm5/components/input-phone-international/utils/extract-value-from-event.js +9 -0
  306. package/esm5/components/input-range/input-range.component.js +9 -6
  307. package/esm5/components/input-slider/input-slider.component.js +9 -6
  308. package/esm5/components/input-tag/input-tag.component.js +4 -4
  309. package/esm5/components/input-time/input-time-options.js +4 -1
  310. package/esm5/components/input-time/input-time.component.js +10 -12
  311. package/esm5/components/multi-select/multi-select.component.js +21 -15
  312. package/esm5/components/rating/index.js +4 -0
  313. package/esm5/components/rating/rating-options.js +11 -0
  314. package/esm5/components/rating/rating.component.js +111 -0
  315. package/esm5/components/rating/rating.module.js +26 -0
  316. package/esm5/components/rating/taiga-ui-kit-components-rating.js +5 -0
  317. package/esm5/components/select/select.component.js +13 -18
  318. package/esm5/components/tag/tag.component.js +1 -1
  319. package/esm5/components/text-area/text-area.component.js +3 -3
  320. package/esm5/components/tree/components/tree/tree.component.js +15 -9
  321. package/esm5/components/tree/tree.module.js +9 -2
  322. package/esm5/constants/index.js +2 -1
  323. package/esm5/constants/masks.js +9 -1
  324. package/esm5/constants/max-time-values.js +7 -0
  325. package/esm5/directives/lazy-loading/lazy-loading.service.js +1 -1
  326. package/esm5/tokens/date-inputs-value-transformers.js +5 -0
  327. package/esm5/tokens/index.js +2 -1
  328. package/esm5/types/index.js +1 -1
  329. package/esm5/types/time-format-parts.js +1 -0
  330. package/esm5/utils/mask/create-auto-corrected-date-pipe.js +6 -4
  331. package/esm5/utils/mask/create-auto-corrected-date-range-pipe.js +9 -6
  332. package/esm5/utils/mask/create-auto-corrected-date-time-pipe.js +6 -6
  333. package/esm5/utils/mask/create-auto-corrected-time-pipe.js +10 -7
  334. package/esm5/utils/mask/create-date-mask.js +17 -0
  335. package/esm5/utils/mask/create-date-range-mask.js +13 -0
  336. package/esm5/utils/mask/create-time-mask.js +18 -7
  337. package/esm5/utils/mask/index.js +3 -1
  338. package/esm5/utils/miscellaneous/get-precision.js +9 -0
  339. package/esm5/utils/miscellaneous/index.js +2 -1
  340. package/esm5/utils/miscellaneous/replay-control-value-changes-factory.js +12 -4
  341. package/fesm2015/taiga-ui-kit-abstract.js +3 -1
  342. package/fesm2015/taiga-ui-kit-abstract.js.map +1 -1
  343. package/fesm2015/taiga-ui-kit-components-arrow.js +29 -11
  344. package/fesm2015/taiga-ui-kit-components-arrow.js.map +1 -1
  345. package/fesm2015/taiga-ui-kit-components-calendar-month.js +4 -1
  346. package/fesm2015/taiga-ui-kit-components-calendar-month.js.map +1 -1
  347. package/fesm2015/taiga-ui-kit-components-carousel.js +5 -4
  348. package/fesm2015/taiga-ui-kit-components-carousel.js.map +1 -1
  349. package/fesm2015/taiga-ui-kit-components-checkbox-block.js.map +1 -1
  350. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js.map +1 -1
  351. package/fesm2015/taiga-ui-kit-components-checkbox.js +1 -1
  352. package/fesm2015/taiga-ui-kit-components-checkbox.js.map +1 -1
  353. package/fesm2015/taiga-ui-kit-components-combo-box.js +14 -16
  354. package/fesm2015/taiga-ui-kit-components-combo-box.js.map +1 -1
  355. package/fesm2015/taiga-ui-kit-components-input-count.js +2 -6
  356. package/fesm2015/taiga-ui-kit-components-input-count.js.map +1 -1
  357. package/fesm2015/taiga-ui-kit-components-input-date-range.js +31 -18
  358. package/fesm2015/taiga-ui-kit-components-input-date-range.js.map +1 -1
  359. package/fesm2015/taiga-ui-kit-components-input-date-time.js +45 -24
  360. package/fesm2015/taiga-ui-kit-components-input-date-time.js.map +1 -1
  361. package/fesm2015/taiga-ui-kit-components-input-date.js +30 -17
  362. package/fesm2015/taiga-ui-kit-components-input-date.js.map +1 -1
  363. package/fesm2015/taiga-ui-kit-components-input-file.js +1 -4
  364. package/fesm2015/taiga-ui-kit-components-input-file.js.map +1 -1
  365. package/fesm2015/taiga-ui-kit-components-input-inline.js +3 -12
  366. package/fesm2015/taiga-ui-kit-components-input-inline.js.map +1 -1
  367. package/fesm2015/taiga-ui-kit-components-input-month-range.js +1 -4
  368. package/fesm2015/taiga-ui-kit-components-input-month-range.js.map +1 -1
  369. package/fesm2015/taiga-ui-kit-components-input-month.js +1 -4
  370. package/fesm2015/taiga-ui-kit-components-input-month.js.map +1 -1
  371. package/fesm2015/taiga-ui-kit-components-input-number.js +14 -14
  372. package/fesm2015/taiga-ui-kit-components-input-number.js.map +1 -1
  373. package/fesm2015/taiga-ui-kit-components-input-password.js +2 -5
  374. package/fesm2015/taiga-ui-kit-components-input-password.js.map +1 -1
  375. package/fesm2015/taiga-ui-kit-components-input-phone-international.js +46 -28
  376. package/fesm2015/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  377. package/fesm2015/taiga-ui-kit-components-input-phone.js +3 -3
  378. package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
  379. package/fesm2015/taiga-ui-kit-components-input-range.js +8 -5
  380. package/fesm2015/taiga-ui-kit-components-input-range.js.map +1 -1
  381. package/fesm2015/taiga-ui-kit-components-input-slider.js +8 -5
  382. package/fesm2015/taiga-ui-kit-components-input-slider.js.map +1 -1
  383. package/fesm2015/taiga-ui-kit-components-input-tag.js +3 -3
  384. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  385. package/fesm2015/taiga-ui-kit-components-input-time.js +11 -6
  386. package/fesm2015/taiga-ui-kit-components-input-time.js.map +1 -1
  387. package/fesm2015/taiga-ui-kit-components-input.js +1 -1
  388. package/fesm2015/taiga-ui-kit-components-input.js.map +1 -1
  389. package/fesm2015/taiga-ui-kit-components-multi-select.js +16 -10
  390. package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
  391. package/fesm2015/taiga-ui-kit-components-rating.js +123 -0
  392. package/fesm2015/taiga-ui-kit-components-rating.js.map +1 -0
  393. package/fesm2015/taiga-ui-kit-components-select.js +12 -13
  394. package/fesm2015/taiga-ui-kit-components-select.js.map +1 -1
  395. package/fesm2015/taiga-ui-kit-components-tag.js +1 -1
  396. package/fesm2015/taiga-ui-kit-components-tag.js.map +1 -1
  397. package/fesm2015/taiga-ui-kit-components-text-area.js +2 -2
  398. package/fesm2015/taiga-ui-kit-components-text-area.js.map +1 -1
  399. package/fesm2015/taiga-ui-kit-components-tree.js +17 -8
  400. package/fesm2015/taiga-ui-kit-components-tree.js.map +1 -1
  401. package/fesm2015/taiga-ui-kit-components.js +1 -0
  402. package/fesm2015/taiga-ui-kit-components.js.map +1 -1
  403. package/fesm2015/taiga-ui-kit-constants.js +16 -1
  404. package/fesm2015/taiga-ui-kit-constants.js.map +1 -1
  405. package/fesm2015/taiga-ui-kit-directives-lazy-loading.js.map +1 -1
  406. package/fesm2015/taiga-ui-kit-tokens.js +5 -1
  407. package/fesm2015/taiga-ui-kit-tokens.js.map +1 -1
  408. package/fesm2015/taiga-ui-kit-utils-mask.js +71 -27
  409. package/fesm2015/taiga-ui-kit-utils-mask.js.map +1 -1
  410. package/fesm2015/taiga-ui-kit-utils-miscellaneous.js +17 -3
  411. package/fesm2015/taiga-ui-kit-utils-miscellaneous.js.map +1 -1
  412. package/fesm5/taiga-ui-kit-abstract.js +3 -1
  413. package/fesm5/taiga-ui-kit-abstract.js.map +1 -1
  414. package/fesm5/taiga-ui-kit-components-arrow.js +29 -11
  415. package/fesm5/taiga-ui-kit-components-arrow.js.map +1 -1
  416. package/fesm5/taiga-ui-kit-components-calendar-month.js +4 -1
  417. package/fesm5/taiga-ui-kit-components-calendar-month.js.map +1 -1
  418. package/fesm5/taiga-ui-kit-components-carousel.js +5 -4
  419. package/fesm5/taiga-ui-kit-components-carousel.js.map +1 -1
  420. package/fesm5/taiga-ui-kit-components-checkbox-block.js.map +1 -1
  421. package/fesm5/taiga-ui-kit-components-checkbox-labeled.js.map +1 -1
  422. package/fesm5/taiga-ui-kit-components-checkbox.js +1 -1
  423. package/fesm5/taiga-ui-kit-components-checkbox.js.map +1 -1
  424. package/fesm5/taiga-ui-kit-components-combo-box.js +14 -20
  425. package/fesm5/taiga-ui-kit-components-combo-box.js.map +1 -1
  426. package/fesm5/taiga-ui-kit-components-input-count.js +2 -6
  427. package/fesm5/taiga-ui-kit-components-input-count.js.map +1 -1
  428. package/fesm5/taiga-ui-kit-components-input-date-range.js +33 -18
  429. package/fesm5/taiga-ui-kit-components-input-date-range.js.map +1 -1
  430. package/fesm5/taiga-ui-kit-components-input-date-time.js +45 -28
  431. package/fesm5/taiga-ui-kit-components-input-date-time.js.map +1 -1
  432. package/fesm5/taiga-ui-kit-components-input-date.js +32 -17
  433. package/fesm5/taiga-ui-kit-components-input-date.js.map +1 -1
  434. package/fesm5/taiga-ui-kit-components-input-file.js +1 -8
  435. package/fesm5/taiga-ui-kit-components-input-file.js.map +1 -1
  436. package/fesm5/taiga-ui-kit-components-input-inline.js +3 -16
  437. package/fesm5/taiga-ui-kit-components-input-inline.js.map +1 -1
  438. package/fesm5/taiga-ui-kit-components-input-month-range.js +1 -8
  439. package/fesm5/taiga-ui-kit-components-input-month-range.js.map +1 -1
  440. package/fesm5/taiga-ui-kit-components-input-month.js +1 -8
  441. package/fesm5/taiga-ui-kit-components-input-month.js.map +1 -1
  442. package/fesm5/taiga-ui-kit-components-input-number.js +13 -13
  443. package/fesm5/taiga-ui-kit-components-input-number.js.map +1 -1
  444. package/fesm5/taiga-ui-kit-components-input-password.js +2 -9
  445. package/fesm5/taiga-ui-kit-components-input-password.js.map +1 -1
  446. package/fesm5/taiga-ui-kit-components-input-phone-international.js +46 -28
  447. package/fesm5/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  448. package/fesm5/taiga-ui-kit-components-input-phone.js +3 -3
  449. package/fesm5/taiga-ui-kit-components-input-phone.js.map +1 -1
  450. package/fesm5/taiga-ui-kit-components-input-range.js +8 -5
  451. package/fesm5/taiga-ui-kit-components-input-range.js.map +1 -1
  452. package/fesm5/taiga-ui-kit-components-input-slider.js +8 -5
  453. package/fesm5/taiga-ui-kit-components-input-slider.js.map +1 -1
  454. package/fesm5/taiga-ui-kit-components-input-tag.js +3 -3
  455. package/fesm5/taiga-ui-kit-components-input-tag.js.map +1 -1
  456. package/fesm5/taiga-ui-kit-components-input-time.js +11 -10
  457. package/fesm5/taiga-ui-kit-components-input-time.js.map +1 -1
  458. package/fesm5/taiga-ui-kit-components-input.js +1 -1
  459. package/fesm5/taiga-ui-kit-components-input.js.map +1 -1
  460. package/fesm5/taiga-ui-kit-components-multi-select.js +20 -14
  461. package/fesm5/taiga-ui-kit-components-multi-select.js.map +1 -1
  462. package/fesm5/taiga-ui-kit-components-rating.js +146 -0
  463. package/fesm5/taiga-ui-kit-components-rating.js.map +1 -0
  464. package/fesm5/taiga-ui-kit-components-select.js +12 -17
  465. package/fesm5/taiga-ui-kit-components-select.js.map +1 -1
  466. package/fesm5/taiga-ui-kit-components-tag.js.map +1 -1
  467. package/fesm5/taiga-ui-kit-components-text-area.js +2 -2
  468. package/fesm5/taiga-ui-kit-components-text-area.js.map +1 -1
  469. package/fesm5/taiga-ui-kit-components-tree.js +21 -11
  470. package/fesm5/taiga-ui-kit-components-tree.js.map +1 -1
  471. package/fesm5/taiga-ui-kit-components.js +1 -0
  472. package/fesm5/taiga-ui-kit-components.js.map +1 -1
  473. package/fesm5/taiga-ui-kit-constants.js +16 -1
  474. package/fesm5/taiga-ui-kit-constants.js.map +1 -1
  475. package/fesm5/taiga-ui-kit-directives-lazy-loading.js.map +1 -1
  476. package/fesm5/taiga-ui-kit-tokens.js +5 -1
  477. package/fesm5/taiga-ui-kit-tokens.js.map +1 -1
  478. package/fesm5/taiga-ui-kit-utils-mask.js +67 -26
  479. package/fesm5/taiga-ui-kit-utils-mask.js.map +1 -1
  480. package/fesm5/taiga-ui-kit-utils-miscellaneous.js +20 -3
  481. package/fesm5/taiga-ui-kit-utils-miscellaneous.js.map +1 -1
  482. package/package.json +14 -14
  483. package/tokens/date-inputs-value-transformers.d.ts +5 -0
  484. package/tokens/index.d.ts +1 -0
  485. package/tokens/taiga-ui-kit-tokens.metadata.json +1 -1
  486. package/types/index.d.ts +1 -0
  487. package/types/taiga-ui-kit-types.metadata.json +1 -1
  488. package/types/time-format-parts.d.ts +1 -0
  489. package/utils/mask/create-auto-corrected-date-pipe.d.ts +7 -3
  490. package/utils/mask/create-auto-corrected-date-range-pipe.d.ts +7 -2
  491. package/utils/mask/create-auto-corrected-date-time-pipe.d.ts +8 -3
  492. package/utils/mask/create-auto-corrected-time-pipe.d.ts +3 -2
  493. package/utils/mask/create-date-mask.d.ts +3 -0
  494. package/utils/mask/create-date-range-mask.d.ts +3 -0
  495. package/utils/mask/create-time-mask.d.ts +2 -1
  496. package/utils/mask/index.d.ts +2 -0
  497. package/utils/mask/taiga-ui-kit-utils-mask.metadata.json +1 -1
  498. package/utils/miscellaneous/get-precision.d.ts +4 -0
  499. package/utils/miscellaneous/index.d.ts +1 -0
  500. package/utils/miscellaneous/replay-control-value-changes-factory.d.ts +3 -2
  501. package/utils/miscellaneous/taiga-ui-kit-utils-miscellaneous.metadata.json +1 -1
@@ -4,13 +4,15 @@ import { NgControl } from '@angular/forms';
4
4
  import { AbstractTuiMultipleControl, ALWAYS_FALSE_HANDLER, EMPTY_ARRAY, isNativeFocused, setNativeFocused, TUI_DEFAULT_IDENTITY_MATCHER, TUI_DEFAULT_STRINGIFY, TUI_FOCUSABLE_ITEM_ACCESSOR, tuiDefaultProp, tuiPure, } from '@taiga-ui/cdk';
5
5
  import { TUI_DATA_LIST_ACCESSOR, TUI_DATA_LIST_HOST, TuiDataListAccessor, TuiDataListDirective, TuiDataListHost, TuiHostedDropdownComponent, TuiSvgService, } from '@taiga-ui/core';
6
6
  import { TuiStringifiableItem } from '@taiga-ui/kit/classes';
7
+ import { TUI_ARROW_MODE } from '@taiga-ui/kit/components/arrow';
7
8
  import { TuiInputTagComponent } from '@taiga-ui/kit/components/input-tag';
8
9
  import { iconBlank } from '@taiga-ui/kit/constants';
9
10
  import { FIXED_DROPDOWN_CONTROLLER_PROVIDER } from '@taiga-ui/kit/providers';
10
11
  var TuiMultiSelectComponent = /** @class */ (function (_super) {
11
12
  __extends(TuiMultiSelectComponent, _super);
12
- function TuiMultiSelectComponent(control, changeDetectorRef, svgService) {
13
+ function TuiMultiSelectComponent(control, changeDetectorRef, svgService, arrowMode) {
13
14
  var _this = _super.call(this, control, changeDetectorRef) || this;
15
+ _this.arrowMode = arrowMode;
14
16
  _this.stringify = TUI_DEFAULT_STRINGIFY;
15
17
  _this.identityMatcher = TUI_DEFAULT_IDENTITY_MATCHER;
16
18
  _this.expandable = true;
@@ -33,6 +35,13 @@ var TuiMultiSelectComponent = /** @class */ (function (_super) {
33
35
  return _this;
34
36
  }
35
37
  TuiMultiSelectComponent_1 = TuiMultiSelectComponent;
38
+ Object.defineProperty(TuiMultiSelectComponent.prototype, "arrow", {
39
+ get: function () {
40
+ return !this.interactive ? this.arrowMode.disabled : this.arrowMode.interactive;
41
+ },
42
+ enumerable: true,
43
+ configurable: true
44
+ });
36
45
  Object.defineProperty(TuiMultiSelectComponent.prototype, "nativeFocusableElement", {
37
46
  get: function () {
38
47
  return this.input ? this.input.nativeFocusableElement : null;
@@ -81,13 +90,6 @@ var TuiMultiSelectComponent = /** @class */ (function (_super) {
81
90
  enumerable: true,
82
91
  configurable: true
83
92
  });
84
- Object.defineProperty(TuiMultiSelectComponent.prototype, "interactive", {
85
- get: function () {
86
- return !this.disabled && !this.readOnly;
87
- },
88
- enumerable: true,
89
- configurable: true
90
- });
91
93
  Object.defineProperty(TuiMultiSelectComponent.prototype, "inputHidden", {
92
94
  get: function () {
93
95
  return !this.editable && !this.computedGroup;
@@ -148,15 +150,17 @@ var TuiMultiSelectComponent = /** @class */ (function (_super) {
148
150
  };
149
151
  TuiMultiSelectComponent.prototype.onClick = function (_a) {
150
152
  var nativeFocusableElement = _a.nativeFocusableElement;
153
+ var _b;
151
154
  if (this.editable &&
152
155
  this.interactive &&
153
156
  nativeFocusableElement &&
154
157
  isNativeFocused(nativeFocusableElement)) {
155
- this.open = !this.open;
158
+ (_b = this.hostedDropdown) === null || _b === void 0 ? void 0 : _b.updateOpen(!this.open);
156
159
  }
157
160
  };
158
161
  TuiMultiSelectComponent.prototype.onArrowClick = function () {
159
- this.open = !this.open;
162
+ var _a;
163
+ (_a = this.hostedDropdown) === null || _a === void 0 ? void 0 : _a.updateOpen(!this.open);
160
164
  this.focusInput();
161
165
  };
162
166
  TuiMultiSelectComponent.prototype.onInput = function (value) {
@@ -196,7 +200,8 @@ var TuiMultiSelectComponent = /** @class */ (function (_super) {
196
200
  TuiMultiSelectComponent.ctorParameters = function () { return [
197
201
  { type: NgControl, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [NgControl,] }] },
198
202
  { type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] },
199
- { type: TuiSvgService, decorators: [{ type: Inject, args: [TuiSvgService,] }] }
203
+ { type: TuiSvgService, decorators: [{ type: Inject, args: [TuiSvgService,] }] },
204
+ { type: undefined, decorators: [{ type: Inject, args: [TUI_ARROW_MODE,] }] }
200
205
  ]; };
201
206
  __decorate([
202
207
  ContentChild(TUI_DATA_LIST_ACCESSOR)
@@ -251,7 +256,7 @@ var TuiMultiSelectComponent = /** @class */ (function (_super) {
251
256
  TuiMultiSelectComponent = TuiMultiSelectComponent_1 = __decorate([
252
257
  Component({
253
258
  selector: 'tui-multi-select',
254
- template: "<tui-hosted-dropdown\n class=\"t-hosted\"\n [canOpen]=\"interactive\"\n [content]=\"datalist || ''\"\n [(open)]=\"open\"\n (tuiHoveredChange)=\"onHoveredChange($event)\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-input-tag\n #inputTag\n tuiHostedDropdownHost\n automation-id=\"tui-multi-select__input\"\n class=\"input\"\n [nativeId]=\"nativeId\"\n [icon]=\"tagIcon\"\n [disabled]=\"disabled\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerWrapper\"\n [readOnly]=\"readOnly\"\n [inputHidden]=\"!editable\"\n [pseudoHovered]=\"computedHovered\"\n [pseudoFocused]=\"computedFocused\"\n [pseudoInvalid]=\"computedInvalid\"\n [editable]=\"false\"\n [expandable]=\"expandable\"\n [search]=\"searchOrSpace\"\n [ngModel]=\"computedValue | tuiMapper: valueMapper:stringify\"\n (ngModelChange)=\"onInput($event)\"\n (searchChange)=\"onSearch($event)\"\n (keydown.space)=\"onSpace($event)\"\n (keydown.enter)=\"onEnter($event)\"\n (click.prevent)=\"onClick(inputTag)\"\n >\n <ng-content></ng-content>\n </tui-input-tag>\n <div class=\"t-wrapper\">\n <div\n *ngIf=\"computedGroup\"\n polymorpheus-outlet\n class=\"t-group\"\n [class.t-group_fullsize]=\"inputTag.labelOutside\"\n [context]=\"context\"\n [content]=\"valueContent\"\n ></div>\n <tui-svg\n *ngIf=\"interactive\"\n automation-id=\"tui-multi-select__arrow\"\n tuiPreventDefault=\"mousedown\"\n class=\"t-arrow\"\n [class.t-arrow_open]=\"open\"\n [src]=\"inputTag.size === 's' ? 'tuiIconChevronDown' : 'tuiIconChevronDownLarge'\"\n (click.prevent)=\"onArrowClick()\"\n ></tui-svg>\n </div>\n</tui-hosted-dropdown>\n",
259
+ template: "<tui-hosted-dropdown\n class=\"t-hosted\"\n [canOpen]=\"interactive\"\n [content]=\"datalist || ''\"\n [(open)]=\"open\"\n (tuiHoveredChange)=\"onHoveredChange($event)\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-input-tag\n #inputTag\n tuiHostedDropdownHost\n automation-id=\"tui-multi-select__input\"\n class=\"input\"\n [nativeId]=\"nativeId\"\n [icon]=\"tagIcon\"\n [disabled]=\"disabled\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerWrapper\"\n [readOnly]=\"readOnly\"\n [inputHidden]=\"!editable\"\n [pseudoHovered]=\"computedHovered\"\n [pseudoFocused]=\"computedFocused\"\n [pseudoInvalid]=\"computedInvalid\"\n [editable]=\"false\"\n [expandable]=\"expandable\"\n [search]=\"searchOrSpace\"\n [ngModel]=\"computedValue | tuiMapper: valueMapper:stringify\"\n (ngModelChange)=\"onInput($event)\"\n (searchChange)=\"onSearch($event)\"\n (keydown.space)=\"onSpace($event)\"\n (keydown.enter)=\"onEnter($event)\"\n (click.prevent)=\"onClick(inputTag)\"\n >\n <ng-content></ng-content>\n </tui-input-tag>\n <div class=\"t-wrapper\" [class.t-wrapper_disabled]=\"disabled\">\n <div\n *ngIf=\"computedGroup\"\n polymorpheus-outlet\n class=\"t-group\"\n [class.t-group_fullsize]=\"inputTag.labelOutside\"\n [context]=\"context\"\n [content]=\"valueContent\"\n ></div>\n\n <div\n *ngIf=\"arrow\"\n polymorpheus-outlet\n automation-id=\"tui-multi-select__arrow\"\n tuiPreventDefault=\"mousedown\"\n class=\"t-arrow\"\n [content]=\"arrow\"\n (click.prevent)=\"onArrowClick()\"\n ></div>\n </div>\n</tui-hosted-dropdown>\n",
255
260
  changeDetection: ChangeDetectionStrategy.OnPush,
256
261
  providers: [
257
262
  {
@@ -264,15 +269,16 @@ var TuiMultiSelectComponent = /** @class */ (function (_super) {
264
269
  },
265
270
  FIXED_DROPDOWN_CONTROLLER_PROVIDER,
266
271
  ],
267
- styles: [":host{position:relative;display:block}:host._disabled{pointer-events:none}.t-hosted{display:block}:host:not(._editable):not(._readonly) .input{cursor:pointer}.t-wrapper{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;pointer-events:none;justify-content:flex-end}.t-group{display:flex;flex:1;align-items:center;padding:1.6875rem 1rem .5625rem}.t-group_fullsize{padding-top:.0625rem;padding-bottom:0}:host[data-tui-host-size='m'] .t-group_fullsize.t-group_fullsize{padding-top:0}:host[data-tui-host-size='m'] .t-group{padding:1.1875rem .75rem 0;font-size:.8125rem}.t-arrow{transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;display:flex;align-items:center;justify-content:center;color:var(--tui-text-03);position:relative;box-sizing:border-box;transition-property:color,transform;width:1.5rem;height:1.5rem;margin:1rem .75rem;pointer-events:auto;cursor:pointer}.t-arrow:hover{color:var(--tui-text-02)}:host._disabled .t-arrow,:host._readonly .t-arrow{pointer-events:none}:host[data-mode=onDark] .t-arrow{color:var(--tui-text-03-night)}:host[data-mode=onDark] .t-arrow:hover{color:var(--tui-text-01-night)}.t-arrow_open{transform:rotate(-180deg)}[data-tui-host-size='m']+.t-wrapper .t-arrow{margin:.625rem .75rem}[data-tui-host-size='s']+.t-wrapper .t-arrow{margin:.25rem .5rem}"]
272
+ styles: [":host{position:relative;display:block}:host._disabled{pointer-events:none}.t-hosted{display:block}:host:not(._editable):not(._readonly) .input{cursor:pointer}.t-wrapper{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;pointer-events:none;justify-content:flex-end}.t-wrapper_disabled{opacity:var(--tui-disabled-opacity)}.t-group{display:flex;flex:1;align-items:center;padding:1.6875rem 1rem .5625rem}.t-group_fullsize{padding-top:.0625rem;padding-bottom:0}:host[data-tui-host-size='m'] .t-group_fullsize.t-group_fullsize{padding-top:0}:host[data-tui-host-size='m'] .t-group{padding:1.1875rem .75rem 0;font-size:.8125rem}.t-arrow{transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;display:flex;align-items:center;justify-content:center;color:var(--tui-text-03);position:relative;box-sizing:border-box;transition-property:color,transform;width:1.5rem;height:auto;margin:1rem .75rem;pointer-events:auto;cursor:pointer}.t-arrow:hover{color:var(--tui-text-02)}:host._disabled .t-arrow,:host._readonly .t-arrow{pointer-events:none}:host[data-mode=onDark] .t-arrow{color:var(--tui-text-03-night)}:host[data-mode=onDark] .t-arrow:hover{color:var(--tui-text-01-night)}"]
268
273
  }),
269
274
  __param(0, Optional()),
270
275
  __param(0, Self()),
271
276
  __param(0, Inject(NgControl)),
272
277
  __param(1, Inject(ChangeDetectorRef)),
273
- __param(2, Inject(TuiSvgService))
278
+ __param(2, Inject(TuiSvgService)),
279
+ __param(3, Inject(TUI_ARROW_MODE))
274
280
  ], TuiMultiSelectComponent);
275
281
  return TuiMultiSelectComponent;
276
282
  }(AbstractTuiMultipleControl));
277
283
  export { TuiMultiSelectComponent };
278
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9tdWx0aS1zZWxlY3QvIiwic291cmNlcyI6WyJtdWx0aS1zZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osV0FBVyxFQUNYLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUNILDBCQUEwQixFQUMxQixvQkFBb0IsRUFDcEIsV0FBVyxFQUNYLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsNEJBQTRCLEVBQzVCLHFCQUFxQixFQUNyQiwyQkFBMkIsRUFHM0IsY0FBYyxFQUlkLE9BQU8sR0FFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsc0JBQXNCLEVBQ3RCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLGVBQWUsRUFDZiwwQkFBMEIsRUFDMUIsYUFBYSxHQUNoQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQW9CM0U7SUFDWSwyQ0FBNkI7SUFpRHJDLGlDQUlJLE9BQXlCLEVBQ0UsaUJBQW9DLEVBQ3hDLFVBQXlCO1FB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LEVBQUUsa0JBQWtCO1lBQzVCLHE4REFBMkM7WUFFM0MsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07WUFDL0MsU0FBUyxFQUFFO2dCQUNQO29CQUNJLE9BQU8sRUFBRSwyQkFBMkI7b0JBQ3BDLFdBQVcsRUFBRSxVQUFVLENBQUMsY0FBTSxPQUFBLHlCQUF1QixFQUF2QixDQUF1QixDQUFDO2lCQUN6RDtnQkFDRDtvQkFDSSxPQUFPLEVBQUUsa0JBQWtCO29CQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLGNBQU0sT0FBQSx5QkFBdUIsRUFBdkIsQ0FBdUIsQ0FBQztpQkFDekQ7Z0JBQ0Qsa0NBQWtDO2FBQ3JDOztTQUNKLENBQUM7UUFvRE8sV0FBQSxRQUFRLEVBQUUsQ0FBQTtRQUNWLFdBQUEsSUFBSSxFQUFFLENBQUE7UUFDTixXQUFBLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUVqQixXQUFBLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBQ3pCLFdBQUEsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO09BeERqQix1QkFBdUIsQ0EwT25DO0lBQUQsOEJBQUM7Q0FBQSxBQTFPRCxDQUNZLDBCQUEwQixHQXlPckM7U0ExT1ksdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgU2VsZixcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlNdWx0aXBsZUNvbnRyb2wsXG4gICAgQUxXQVlTX0ZBTFNFX0hBTkRMRVIsXG4gICAgRU1QVFlfQVJSQVksXG4gICAgaXNOYXRpdmVGb2N1c2VkLFxuICAgIHNldE5hdGl2ZUZvY3VzZWQsXG4gICAgVFVJX0RFRkFVTFRfSURFTlRJVFlfTUFUQ0hFUixcbiAgICBUVUlfREVGQVVMVF9TVFJJTkdJRlksXG4gICAgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgIFR1aUJvb2xlYW5IYW5kbGVyLFxuICAgIFR1aUNvbnRleHRXaXRoSW1wbGljaXQsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIFR1aUlkZW50aXR5TWF0Y2hlcixcbiAgICBUdWlNYXBwZXIsXG4gICAgdHVpUHVyZSxcbiAgICBUdWlTdHJpbmdIYW5kbGVyLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgVFVJX0RBVEFfTElTVF9BQ0NFU1NPUixcbiAgICBUVUlfREFUQV9MSVNUX0hPU1QsXG4gICAgVHVpRGF0YUxpc3RBY2Nlc3NvcixcbiAgICBUdWlEYXRhTGlzdERpcmVjdGl2ZSxcbiAgICBUdWlEYXRhTGlzdEhvc3QsXG4gICAgVHVpSG9zdGVkRHJvcGRvd25Db21wb25lbnQsXG4gICAgVHVpU3ZnU2VydmljZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUdWlTdHJpbmdpZmlhYmxlSXRlbX0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jbGFzc2VzJztcbmltcG9ydCB7VHVpSW5wdXRUYWdDb21wb25lbnR9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC10YWcnO1xuaW1wb3J0IHtpY29uQmxhbmt9IGZyb20gJ0B0YWlnYS11aS9raXQvY29uc3RhbnRzJztcbmltcG9ydCB7RklYRURfRFJPUERPV05fQ09OVFJPTExFUl9QUk9WSURFUn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9wcm92aWRlcnMnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1tdWx0aS1zZWxlY3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tdWx0aS1zZWxlY3QudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbXVsdGktc2VsZWN0LnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpTXVsdGlTZWxlY3RDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfREFUQV9MSVNUX0hPU1QsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUdWlNdWx0aVNlbGVjdENvbXBvbmVudCksXG4gICAgICAgIH0sXG4gICAgICAgIEZJWEVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVIsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpTXVsdGlTZWxlY3RDb21wb25lbnQ8VD5cbiAgICBleHRlbmRzIEFic3RyYWN0VHVpTXVsdGlwbGVDb250cm9sPFQ+XG4gICAgaW1wbGVtZW50cyBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsIFR1aURhdGFMaXN0SG9zdDxUPlxue1xuICAgIEBDb250ZW50Q2hpbGQoVFVJX0RBVEFfTElTVF9BQ0NFU1NPUiBhcyBhbnkpXG4gICAgcHJpdmF0ZSByZWFkb25seSBhY2Nlc3Nvcj86IFR1aURhdGFMaXN0QWNjZXNzb3I8VD47XG5cbiAgICBAVmlld0NoaWxkKFR1aUhvc3RlZERyb3Bkb3duQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgaG9zdGVkRHJvcGRvd24/OiBUdWlIb3N0ZWREcm9wZG93bkNvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGQoVHVpSW5wdXRUYWdDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbnB1dD86IFR1aUlucHV0VGFnQ29tcG9uZW50O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHN0cmluZ2lmeTogVHVpU3RyaW5nSGFuZGxlcjxUPiA9IFRVSV9ERUZBVUxUX1NUUklOR0lGWTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBpZGVudGl0eU1hdGNoZXI6IFR1aUlkZW50aXR5TWF0Y2hlcjxUPiA9IFRVSV9ERUZBVUxUX0lERU5USVRZX01BVENIRVI7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZXhwYW5kYWJsZSA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc2VhcmNoOiBzdHJpbmcgfCBudWxsID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX2VkaXRhYmxlJylcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGVkaXRhYmxlID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBkaXNhYmxlZEl0ZW1IYW5kbGVyOiBUdWlCb29sZWFuSGFuZGxlcjxUPiA9IEFMV0FZU19GQUxTRV9IQU5ETEVSO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHZhbHVlQ29udGVudDogUG9seW1vcnBoZXVzQ29udGVudDxUdWlDb250ZXh0V2l0aEltcGxpY2l0PFJlYWRvbmx5QXJyYXk8VD4+PiA9ICcnO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgc2VhcmNoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBudWxsPigpO1xuXG4gICAgQENvbnRlbnRDaGlsZChUdWlEYXRhTGlzdERpcmVjdGl2ZSwge3JlYWQ6IFRlbXBsYXRlUmVmfSlcbiAgICByZWFkb25seSBkYXRhbGlzdDogUG9seW1vcnBoZXVzQ29udGVudCA9ICcnO1xuXG4gICAgb3BlbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChUdWlTdmdTZXJ2aWNlKSBzdmdTZXJ2aWNlOiBUdWlTdmdTZXJ2aWNlLFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICAgICAgc3ZnU2VydmljZS5kZWZpbmUoe2ljb25CbGFua30pO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXQgPyB0aGlzLmlucHV0Lm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgOiBudWxsO1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKCEhdGhpcy5pbnB1dCAmJiB0aGlzLmlucHV0LmZvY3VzZWQpIHx8XG4gICAgICAgICAgICAoISF0aGlzLmhvc3RlZERyb3Bkb3duICYmIHRoaXMuaG9zdGVkRHJvcGRvd24uZm9jdXNlZClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRWYWx1ZSgpOiBSZWFkb25seUFycmF5PFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcHV0ZWRHcm91cCA/IEVNUFRZX0FSUkFZIDogdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICAvLyBAYmFkIFRPRE86IHRoaW5rIG9mIGEgYmV0dGVyIHdheVxuICAgIGdldCBzZWFyY2hPclNwYWNlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXB1dGVkR3JvdXAgPyAnICcgOiB0aGlzLnNlYXJjaFN0cmluZztcbiAgICB9XG5cbiAgICBnZXQgc2VhcmNoU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlYXJjaCA9PT0gbnVsbCA/ICcnIDogdGhpcy5zZWFyY2g7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGFzcyBlbXB0eSBpY29uIHRvIElucHV0VGFnIChpbnNpZGUgdGhpcyBjb21wb25lbnQpXG4gICAgICogdG8gcHJldmVudCBvdmVyZmxvdyBvZiBhcnJvdyBpY29uIGJ5IG1hbnkgdGFnc1xuICAgICAqL1xuICAgIGdldCB0YWdJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmludGVyYWN0aXZlID8gJ2ljb25CbGFuaycgOiAnJztcbiAgICB9XG5cbiAgICBnZXQgaW50ZXJhY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5yZWFkT25seTtcbiAgICB9XG5cbiAgICBnZXQgaW5wdXRIaWRkZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5lZGl0YWJsZSAmJiAhdGhpcy5jb21wdXRlZEdyb3VwO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZEdyb3VwKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgISF0aGlzLnZhbHVlQ29udGVudCAmJlxuICAgICAgICAgICAgdGhpcy52YWx1ZS5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICAoIXRoaXMuZm9jdXNlZCB8fCAhdGhpcy5lZGl0YWJsZSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgY29udGV4dCgpOiBUdWlDb250ZXh0V2l0aEltcGxpY2l0PFJlYWRvbmx5QXJyYXk8VD4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q29udGV4dCh0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIGdldFN0cmluZ2lmaWVyKFxuICAgICAgICBzdHJpbmdpZnk6IFR1aVN0cmluZ0hhbmRsZXI8VD4sXG4gICAgKTogVHVpU3RyaW5nSGFuZGxlcjxUdWlDb250ZXh0V2l0aEltcGxpY2l0PFQ+PiB7XG4gICAgICAgIHJldHVybiAoeyRpbXBsaWNpdH0pID0+IHN0cmluZ2lmeSgkaW1wbGljaXQpO1xuICAgIH1cblxuICAgIHJlYWRvbmx5IHZhbHVlTWFwcGVyOiBUdWlNYXBwZXI8XG4gICAgICAgIFJlYWRvbmx5QXJyYXk8VD4sXG4gICAgICAgIFJlYWRvbmx5QXJyYXk8VHVpU3RyaW5naWZpYWJsZUl0ZW08VD4+XG4gICAgPiA9ICh2YWx1ZSwgc3RyaW5naWZ5OiBUdWlTdHJpbmdIYW5kbGVyPFQ+LCBncm91cDogYm9vbGVhbikgPT5cbiAgICAgICAgZ3JvdXBcbiAgICAgICAgICAgID8gRU1QVFlfQVJSQVlcbiAgICAgICAgICAgIDogdmFsdWUubWFwKGl0ZW0gPT4gbmV3IFR1aVN0cmluZ2lmaWFibGVJdGVtKGl0ZW0sIHN0cmluZ2lmeSkpO1xuXG4gICAgcmVhZG9ubHkgZGlzYWJsZWRJdGVtSGFuZGxlcldyYXBwZXI6IFR1aU1hcHBlcjxcbiAgICAgICAgVHVpQm9vbGVhbkhhbmRsZXI8VD4sXG4gICAgICAgIFR1aUJvb2xlYW5IYW5kbGVyPFR1aVN0cmluZ2lmaWFibGVJdGVtPFQ+PlxuICAgID4gPSBoYW5kbGVyID0+IHN0cmluZ2lmaWFibGUgPT5cbiAgICAgICAgdHlwZW9mIHN0cmluZ2lmaWFibGUgPT09ICdzdHJpbmcnIHx8IGhhbmRsZXIoc3RyaW5naWZpYWJsZS5pdGVtKTtcblxuICAgIG9uSG92ZXJlZENoYW5nZShob3ZlcmVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlSG92ZXJlZChob3ZlcmVkKTtcbiAgICB9XG5cbiAgICBvblNwYWNlKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmICghdGhpcy5lZGl0YWJsZSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5yZWFkT25seSkge1xuICAgICAgICAgICAgdGhpcy5vcGVuID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZU9wdGlvbihvcHRpb246IFQpIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlLCBpZGVudGl0eU1hdGNoZXJ9ID0gdGhpcztcbiAgICAgICAgY29uc3QgaW5kZXggPSB2YWx1ZS5maW5kSW5kZXgoaXRlbSA9PiBpZGVudGl0eU1hdGNoZXIoaXRlbSwgb3B0aW9uKSk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShcbiAgICAgICAgICAgIGluZGV4ID09PSAtMSA/IFsuLi52YWx1ZSwgb3B0aW9uXSA6IHZhbHVlLmZpbHRlcigoXywgaSkgPT4gaSAhPT0gaW5kZXgpLFxuICAgICAgICApO1xuICAgICAgICB0aGlzLnVwZGF0ZVNlYXJjaChudWxsKTtcbiAgICB9XG5cbiAgICBvbkVudGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGNvbnN0IHt2YWx1ZX0gPSB0aGlzO1xuICAgICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5hY2Nlc3NvciA/IHRoaXMuYWNjZXNzb3IuZ2V0T3B0aW9ucygpIDogW107XG5cbiAgICAgICAgaWYgKG9wdGlvbnMubGVuZ3RoICE9PSAxKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpbmRleCA9IHZhbHVlLmluZGV4T2Yob3B0aW9uc1swXSk7XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShcbiAgICAgICAgICAgIGluZGV4ID09PSAtMVxuICAgICAgICAgICAgICAgID8gWy4uLnZhbHVlLCBvcHRpb25zWzBdXVxuICAgICAgICAgICAgICAgIDogWy4uLnZhbHVlLnNsaWNlKDAsIGluZGV4KSwgLi4udmFsdWUuc2xpY2UoaW5kZXggKyAxKV0sXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMudXBkYXRlU2VhcmNoKG51bGwpO1xuICAgIH1cblxuICAgIG9uQ2xpY2soe25hdGl2ZUZvY3VzYWJsZUVsZW1lbnR9OiBUdWlJbnB1dFRhZ0NvbXBvbmVudCkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmVkaXRhYmxlICYmXG4gICAgICAgICAgICB0aGlzLmludGVyYWN0aXZlICYmXG4gICAgICAgICAgICBuYXRpdmVGb2N1c2FibGVFbGVtZW50ICYmXG4gICAgICAgICAgICBpc05hdGl2ZUZvY3VzZWQobmF0aXZlRm9jdXNhYmxlRWxlbWVudClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25BcnJvd0NsaWNrKCkge1xuICAgICAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xuICAgICAgICB0aGlzLmZvY3VzSW5wdXQoKTtcbiAgICB9XG5cbiAgICBvbklucHV0KHZhbHVlOiBSZWFkb25seUFycmF5PFR1aVN0cmluZ2lmaWFibGVJdGVtPFQ+Pikge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlLm1hcCgoe2l0ZW19KSA9PiBpdGVtKSk7XG4gICAgfVxuXG4gICAgb25TZWFyY2goc2VhcmNoOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgICAgIHRoaXMub3BlbiA9IHRydWU7XG4gICAgICAgIHRoaXMudXBkYXRlU2VhcmNoKHNlYXJjaCk7XG4gICAgfVxuXG4gICAgb25BY3RpdmVab25lKGFjdGl2ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoYWN0aXZlKTtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKCkge1xuICAgICAgICBzdXBlci5zZXREaXNhYmxlZFN0YXRlKCk7XG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBnZXRDb250ZXh0KFxuICAgICAgICAkaW1wbGljaXQ6IFJlYWRvbmx5QXJyYXk8VD4sXG4gICAgKTogVHVpQ29udGV4dFdpdGhJbXBsaWNpdDxSZWFkb25seUFycmF5PFQ+PiB7XG4gICAgICAgIHJldHVybiB7JGltcGxpY2l0fTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVNlYXJjaChzZWFyY2g6IHN0cmluZyB8IG51bGwpIHtcbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoID09PSBzZWFyY2gpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VhcmNoID0gc2VhcmNoO1xuICAgICAgICB0aGlzLnNlYXJjaENoYW5nZS5lbWl0KHNlYXJjaCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1c0lucHV0KHByZXZlbnRTY3JvbGw6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICBzZXROYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCwgdHJ1ZSwgcHJldmVudFNjcm9sbCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
284
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9tdWx0aS1zZWxlY3QvIiwic291cmNlcyI6WyJtdWx0aS1zZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osV0FBVyxFQUNYLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUNILDBCQUEwQixFQUMxQixvQkFBb0IsRUFDcEIsV0FBVyxFQUNYLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsNEJBQTRCLEVBQzVCLHFCQUFxQixFQUNyQiwyQkFBMkIsRUFHM0IsY0FBYyxFQUlkLE9BQU8sR0FFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsc0JBQXNCLEVBQ3RCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLGVBQWUsRUFDZiwwQkFBMEIsRUFDMUIsYUFBYSxHQUNoQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBQyxjQUFjLEVBQWUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUFDLGtDQUFrQyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFvQjNFO0lBQ1ksMkNBQTZCO0lB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RUFBRTtpRUFDZ0U7SUFHakY7UUFEQyxNQUFNLEVBQUU7aUVBQ2lEO0lBRzFEO1FBREMsWUFBWSxDQUFDLG9CQUFvQixFQUFFLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBQyxDQUFDOzZEQUNaO0lBd0U1QztRQURDLE9BQU87aUVBS1A7SUE4RkQ7UUFEQyxPQUFPOzZEQUtQO0lBNU5RLHVCQUF1QjtRQWpCbkMsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLGtCQUFrQjtZQUM1Qix3NURBQTJDO1lBRTNDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO1lBQy9DLFNBQVMsRUFBRTtnQkFDUDtvQkFDSSxPQUFPLEVBQUUsMkJBQTJCO29CQUNwQyxXQUFXLEVBQUUsVUFBVSxDQUFDLGNBQU0sT0FBQSx5QkFBdUIsRUFBdkIsQ0FBdUIsQ0FBQztpQkFDekQ7Z0JBQ0Q7b0JBQ0ksT0FBTyxFQUFFLGtCQUFrQjtvQkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxjQUFNLE9BQUEseUJBQXVCLEVBQXZCLENBQXVCLENBQUM7aUJBQ3pEO2dCQUNELGtDQUFrQzthQUNyQzs7U0FDSixDQUFDO1FBb0RPLFdBQUEsUUFBUSxFQUFFLENBQUE7UUFDVixXQUFBLElBQUksRUFBRSxDQUFBO1FBQ04sV0FBQSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7UUFFakIsV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUN6QixXQUFBLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUNyQixXQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQTtPQXpEbEIsdUJBQXVCLENBNE9uQztJQUFELDhCQUFDO0NBQUEsQUE1T0QsQ0FDWSwwQkFBMEIsR0EyT3JDO1NBNU9ZLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFNlbGYsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpTXVsdGlwbGVDb250cm9sLFxuICAgIEFMV0FZU19GQUxTRV9IQU5ETEVSLFxuICAgIEVNUFRZX0FSUkFZLFxuICAgIGlzTmF0aXZlRm9jdXNlZCxcbiAgICBzZXROYXRpdmVGb2N1c2VkLFxuICAgIFRVSV9ERUZBVUxUX0lERU5USVRZX01BVENIRVIsXG4gICAgVFVJX0RFRkFVTFRfU1RSSU5HSUZZLFxuICAgIFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICBUdWlCb29sZWFuSGFuZGxlcixcbiAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0LFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICBUdWlJZGVudGl0eU1hdGNoZXIsXG4gICAgVHVpTWFwcGVyLFxuICAgIHR1aVB1cmUsXG4gICAgVHVpU3RyaW5nSGFuZGxlcixcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIFRVSV9EQVRBX0xJU1RfQUNDRVNTT1IsXG4gICAgVFVJX0RBVEFfTElTVF9IT1NULFxuICAgIFR1aURhdGFMaXN0QWNjZXNzb3IsXG4gICAgVHVpRGF0YUxpc3REaXJlY3RpdmUsXG4gICAgVHVpRGF0YUxpc3RIb3N0LFxuICAgIFR1aUhvc3RlZERyb3Bkb3duQ29tcG9uZW50LFxuICAgIFR1aVN2Z1NlcnZpY2UsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7VHVpU3RyaW5naWZpYWJsZUl0ZW19IGZyb20gJ0B0YWlnYS11aS9raXQvY2xhc3Nlcyc7XG5pbXBvcnQge1RVSV9BUlJPV19NT0RFLCBUdWlBcnJvd01vZGV9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9hcnJvdyc7XG5pbXBvcnQge1R1aUlucHV0VGFnQ29tcG9uZW50fSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtdGFnJztcbmltcG9ydCB7aWNvbkJsYW5rfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbnN0YW50cyc7XG5pbXBvcnQge0ZJWEVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVJ9IGZyb20gJ0B0YWlnYS11aS9raXQvcHJvdmlkZXJzJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktbXVsdGktc2VsZWN0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbXVsdGktc2VsZWN0LnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL211bHRpLXNlbGVjdC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR1aU11bHRpU2VsZWN0Q29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0RBVEFfTElTVF9IT1NULFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpTXVsdGlTZWxlY3RDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgICAgICBGSVhFRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aU11bHRpU2VsZWN0Q29tcG9uZW50PFQ+XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aU11bHRpcGxlQ29udHJvbDxUPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLCBUdWlEYXRhTGlzdEhvc3Q8VD5cbntcbiAgICBAQ29udGVudENoaWxkKFRVSV9EQVRBX0xJU1RfQUNDRVNTT1IgYXMgYW55KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWNjZXNzb3I/OiBUdWlEYXRhTGlzdEFjY2Vzc29yPFQ+O1xuXG4gICAgQFZpZXdDaGlsZChUdWlIb3N0ZWREcm9wZG93bkNvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhvc3RlZERyb3Bkb3duPzogVHVpSG9zdGVkRHJvcGRvd25Db21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkKFR1aUlucHV0VGFnQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5wdXQ/OiBUdWlJbnB1dFRhZ0NvbXBvbmVudDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzdHJpbmdpZnk6IFR1aVN0cmluZ0hhbmRsZXI8VD4gPSBUVUlfREVGQVVMVF9TVFJJTkdJRlk7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaWRlbnRpdHlNYXRjaGVyOiBUdWlJZGVudGl0eU1hdGNoZXI8VD4gPSBUVUlfREVGQVVMVF9JREVOVElUWV9NQVRDSEVSO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGV4cGFuZGFibGUgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHNlYXJjaDogc3RyaW5nIHwgbnVsbCA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9lZGl0YWJsZScpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBlZGl0YWJsZSA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZGlzYWJsZWRJdGVtSGFuZGxlcjogVHVpQm9vbGVhbkhhbmRsZXI8VD4gPSBBTFdBWVNfRkFMU0VfSEFORExFUjtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICB2YWx1ZUNvbnRlbnQ6IFBvbHltb3JwaGV1c0NvbnRlbnQ8VHVpQ29udGV4dFdpdGhJbXBsaWNpdDxSZWFkb25seUFycmF5PFQ+Pj4gPSAnJztcblxuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHNlYXJjaENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgbnVsbD4oKTtcblxuICAgIEBDb250ZW50Q2hpbGQoVHVpRGF0YUxpc3REaXJlY3RpdmUsIHtyZWFkOiBUZW1wbGF0ZVJlZn0pXG4gICAgcmVhZG9ubHkgZGF0YWxpc3Q6IFBvbHltb3JwaGV1c0NvbnRlbnQgPSAnJztcblxuICAgIG9wZW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoVHVpU3ZnU2VydmljZSkgc3ZnU2VydmljZTogVHVpU3ZnU2VydmljZSxcbiAgICAgICAgQEluamVjdChUVUlfQVJST1dfTU9ERSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhcnJvd01vZGU6IFR1aUFycm93TW9kZSxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgICAgIHN2Z1NlcnZpY2UuZGVmaW5lKHtpY29uQmxhbmt9KTtcbiAgICB9XG5cbiAgICBnZXQgYXJyb3coKTogUG9seW1vcnBoZXVzQ29udGVudCB7XG4gICAgICAgIHJldHVybiAhdGhpcy5pbnRlcmFjdGl2ZSA/IHRoaXMuYXJyb3dNb2RlLmRpc2FibGVkIDogdGhpcy5hcnJvd01vZGUuaW50ZXJhY3RpdmU7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dCA/IHRoaXMuaW5wdXQubmF0aXZlRm9jdXNhYmxlRWxlbWVudCA6IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAoISF0aGlzLmlucHV0ICYmIHRoaXMuaW5wdXQuZm9jdXNlZCkgfHxcbiAgICAgICAgICAgICghIXRoaXMuaG9zdGVkRHJvcGRvd24gJiYgdGhpcy5ob3N0ZWREcm9wZG93bi5mb2N1c2VkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZFZhbHVlKCk6IFJlYWRvbmx5QXJyYXk8VD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlZEdyb3VwID8gRU1QVFlfQVJSQVkgOiB0aGlzLnZhbHVlO1xuICAgIH1cblxuICAgIC8vIEBiYWQgVE9ETzogdGhpbmsgb2YgYSBiZXR0ZXIgd2F5XG4gICAgZ2V0IHNlYXJjaE9yU3BhY2UoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcHV0ZWRHcm91cCA/ICcgJyA6IHRoaXMuc2VhcmNoU3RyaW5nO1xuICAgIH1cblxuICAgIGdldCBzZWFyY2hTdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VhcmNoID09PSBudWxsID8gJycgOiB0aGlzLnNlYXJjaDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYXNzIGVtcHR5IGljb24gdG8gSW5wdXRUYWcgKGluc2lkZSB0aGlzIGNvbXBvbmVudClcbiAgICAgKiB0byBwcmV2ZW50IG92ZXJmbG93IG9mIGFycm93IGljb24gYnkgbWFueSB0YWdzXG4gICAgICovXG4gICAgZ2V0IHRhZ0ljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJhY3RpdmUgPyAnaWNvbkJsYW5rJyA6ICcnO1xuICAgIH1cblxuICAgIGdldCBpbnB1dEhpZGRlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmVkaXRhYmxlICYmICF0aGlzLmNvbXB1dGVkR3JvdXA7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkR3JvdXAoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhIXRoaXMudmFsdWVDb250ZW50ICYmXG4gICAgICAgICAgICB0aGlzLnZhbHVlLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAgICghdGhpcy5mb2N1c2VkIHx8ICF0aGlzLmVkaXRhYmxlKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBjb250ZXh0KCk6IFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8UmVhZG9ubHlBcnJheTxUPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDb250ZXh0KHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgZ2V0U3RyaW5naWZpZXIoXG4gICAgICAgIHN0cmluZ2lmeTogVHVpU3RyaW5nSGFuZGxlcjxUPixcbiAgICApOiBUdWlTdHJpbmdIYW5kbGVyPFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8VD4+IHtcbiAgICAgICAgcmV0dXJuICh7JGltcGxpY2l0fSkgPT4gc3RyaW5naWZ5KCRpbXBsaWNpdCk7XG4gICAgfVxuXG4gICAgcmVhZG9ubHkgdmFsdWVNYXBwZXI6IFR1aU1hcHBlcjxcbiAgICAgICAgUmVhZG9ubHlBcnJheTxUPixcbiAgICAgICAgUmVhZG9ubHlBcnJheTxUdWlTdHJpbmdpZmlhYmxlSXRlbTxUPj5cbiAgICA+ID0gKHZhbHVlLCBzdHJpbmdpZnk6IFR1aVN0cmluZ0hhbmRsZXI8VD4sIGdyb3VwOiBib29sZWFuKSA9PlxuICAgICAgICBncm91cFxuICAgICAgICAgICAgPyBFTVBUWV9BUlJBWVxuICAgICAgICAgICAgOiB2YWx1ZS5tYXAoaXRlbSA9PiBuZXcgVHVpU3RyaW5naWZpYWJsZUl0ZW0oaXRlbSwgc3RyaW5naWZ5KSk7XG5cbiAgICByZWFkb25seSBkaXNhYmxlZEl0ZW1IYW5kbGVyV3JhcHBlcjogVHVpTWFwcGVyPFxuICAgICAgICBUdWlCb29sZWFuSGFuZGxlcjxUPixcbiAgICAgICAgVHVpQm9vbGVhbkhhbmRsZXI8VHVpU3RyaW5naWZpYWJsZUl0ZW08VD4+XG4gICAgPiA9IGhhbmRsZXIgPT4gc3RyaW5naWZpYWJsZSA9PlxuICAgICAgICB0eXBlb2Ygc3RyaW5naWZpYWJsZSA9PT0gJ3N0cmluZycgfHwgaGFuZGxlcihzdHJpbmdpZmlhYmxlLml0ZW0pO1xuXG4gICAgb25Ib3ZlcmVkQ2hhbmdlKGhvdmVyZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVIb3ZlcmVkKGhvdmVyZWQpO1xuICAgIH1cblxuICAgIG9uU3BhY2UoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmVkaXRhYmxlKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLnJlYWRPbmx5KSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4gPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlT3B0aW9uKG9wdGlvbjogVCkge1xuICAgICAgICBjb25zdCB7dmFsdWUsIGlkZW50aXR5TWF0Y2hlcn0gPSB0aGlzO1xuICAgICAgICBjb25zdCBpbmRleCA9IHZhbHVlLmZpbmRJbmRleChpdGVtID0+IGlkZW50aXR5TWF0Y2hlcihpdGVtLCBvcHRpb24pKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKFxuICAgICAgICAgICAgaW5kZXggPT09IC0xID8gWy4uLnZhbHVlLCBvcHRpb25dIDogdmFsdWUuZmlsdGVyKChfLCBpKSA9PiBpICE9PSBpbmRleCksXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMudXBkYXRlU2VhcmNoKG51bGwpO1xuICAgIH1cblxuICAgIG9uRW50ZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlfSA9IHRoaXM7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmFjY2Vzc29yID8gdGhpcy5hY2Nlc3Nvci5nZXRPcHRpb25zKCkgOiBbXTtcblxuICAgICAgICBpZiAob3B0aW9ucy5sZW5ndGggIT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGluZGV4ID0gdmFsdWUuaW5kZXhPZihvcHRpb25zWzBdKTtcblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKFxuICAgICAgICAgICAgaW5kZXggPT09IC0xXG4gICAgICAgICAgICAgICAgPyBbLi4udmFsdWUsIG9wdGlvbnNbMF1dXG4gICAgICAgICAgICAgICAgOiBbLi4udmFsdWUuc2xpY2UoMCwgaW5kZXgpLCAuLi52YWx1ZS5zbGljZShpbmRleCArIDEpXSxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy51cGRhdGVTZWFyY2gobnVsbCk7XG4gICAgfVxuXG4gICAgb25DbGljayh7bmF0aXZlRm9jdXNhYmxlRWxlbWVudH06IFR1aUlucHV0VGFnQ29tcG9uZW50KSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuZWRpdGFibGUgJiZcbiAgICAgICAgICAgIHRoaXMuaW50ZXJhY3RpdmUgJiZcbiAgICAgICAgICAgIG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgJiZcbiAgICAgICAgICAgIGlzTmF0aXZlRm9jdXNlZChuYXRpdmVGb2N1c2FibGVFbGVtZW50KVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuaG9zdGVkRHJvcGRvd24/LnVwZGF0ZU9wZW4oIXRoaXMub3Blbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkFycm93Q2xpY2soKSB7XG4gICAgICAgIHRoaXMuaG9zdGVkRHJvcGRvd24/LnVwZGF0ZU9wZW4oIXRoaXMub3Blbik7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgIH1cblxuICAgIG9uSW5wdXQodmFsdWU6IFJlYWRvbmx5QXJyYXk8VHVpU3RyaW5naWZpYWJsZUl0ZW08VD4+KSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUodmFsdWUubWFwKCh7aXRlbX0pID0+IGl0ZW0pKTtcbiAgICB9XG5cbiAgICBvblNlYXJjaChzZWFyY2g6IHN0cmluZyB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5vcGVuID0gdHJ1ZTtcbiAgICAgICAgdGhpcy51cGRhdGVTZWFyY2goc2VhcmNoKTtcbiAgICB9XG5cbiAgICBvbkFjdGl2ZVpvbmUoYWN0aXZlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChhY3RpdmUpO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGUoKSB7XG4gICAgICAgIHN1cGVyLnNldERpc2FibGVkU3RhdGUoKTtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGdldENvbnRleHQoXG4gICAgICAgICRpbXBsaWNpdDogUmVhZG9ubHlBcnJheTxUPixcbiAgICApOiBUdWlDb250ZXh0V2l0aEltcGxpY2l0PFJlYWRvbmx5QXJyYXk8VD4+IHtcbiAgICAgICAgcmV0dXJuIHskaW1wbGljaXR9O1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlU2VhcmNoKHNlYXJjaDogc3RyaW5nIHwgbnVsbCkge1xuICAgICAgICBpZiAodGhpcy5zZWFyY2ggPT09IHNlYXJjaCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZWFyY2ggPSBzZWFyY2g7XG4gICAgICAgIHRoaXMuc2VhcmNoQ2hhbmdlLmVtaXQoc2VhcmNoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZvY3VzSW5wdXQocHJldmVudFNjcm9sbDogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHNldE5hdGl2ZUZvY3VzZWQodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LCB0cnVlLCBwcmV2ZW50U2Nyb2xsKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from './rating.component';
2
+ export * from './rating.module';
3
+ export * from './rating-options';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvcmF0aW5nLyIsInNvdXJjZXMiOlsiaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3JhdGluZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9yYXRpbmcubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vcmF0aW5nLW9wdGlvbnMnO1xuIl19
@@ -0,0 +1,11 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export var TUI_RATING_DEFAULT_OPTIONS = {
3
+ min: 0,
4
+ max: 5,
5
+ iconNormal: 'tuiIconStarLarge',
6
+ iconFilled: 'tuiIconStarFilledLarge',
7
+ };
8
+ export var TUI_RATING_OPTIONS = new InjectionToken('Default parameters for rating component', {
9
+ factory: function () { return TUI_RATING_DEFAULT_OPTIONS; },
10
+ });
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0aW5nLW9wdGlvbnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvcmF0aW5nLyIsInNvdXJjZXMiOlsicmF0aW5nLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQVM3QyxNQUFNLENBQUMsSUFBTSwwQkFBMEIsR0FBcUI7SUFDeEQsR0FBRyxFQUFFLENBQUM7SUFDTixHQUFHLEVBQUUsQ0FBQztJQUNOLFVBQVUsRUFBRSxrQkFBa0I7SUFDOUIsVUFBVSxFQUFFLHdCQUF3QjtDQUN2QyxDQUFDO0FBRUYsTUFBTSxDQUFDLElBQU0sa0JBQWtCLEdBQzNCLElBQUksY0FBYyxDQUFtQix5Q0FBeUMsRUFBRTtJQUM1RSxPQUFPLEVBQUUsY0FBTSxPQUFBLDBCQUEwQixFQUExQixDQUEwQjtDQUM1QyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGlvblRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBUdWlSYXRpbmdPcHRpb25zIHtcbiAgICByZWFkb25seSBtaW46IG51bWJlcjtcbiAgICByZWFkb25seSBtYXg6IG51bWJlcjtcbiAgICByZWFkb25seSBpY29uTm9ybWFsOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgaWNvbkZpbGxlZDogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgVFVJX1JBVElOR19ERUZBVUxUX09QVElPTlM6IFR1aVJhdGluZ09wdGlvbnMgPSB7XG4gICAgbWluOiAwLFxuICAgIG1heDogNSxcbiAgICBpY29uTm9ybWFsOiAndHVpSWNvblN0YXJMYXJnZScsXG4gICAgaWNvbkZpbGxlZDogJ3R1aUljb25TdGFyRmlsbGVkTGFyZ2UnLFxufTtcblxuZXhwb3J0IGNvbnN0IFRVSV9SQVRJTkdfT1BUSU9OUzogSW5qZWN0aW9uVG9rZW48VHVpUmF0aW5nT3B0aW9ucz4gPVxuICAgIG5ldyBJbmplY3Rpb25Ub2tlbjxUdWlSYXRpbmdPcHRpb25zPignRGVmYXVsdCBwYXJhbWV0ZXJzIGZvciByYXRpbmcgY29tcG9uZW50Jywge1xuICAgICAgICBmYWN0b3J5OiAoKSA9PiBUVUlfUkFUSU5HX0RFRkFVTFRfT1BUSU9OUyxcbiAgICB9KTtcbiJdfQ==
@@ -0,0 +1,111 @@
1
+ import { __decorate, __extends, __param } from "tslib";
2
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, forwardRef, HostListener, Inject, Input, Optional, Self, ViewChild, } from '@angular/core';
3
+ import { NgControl } from '@angular/forms';
4
+ import { AbstractTuiControl, isNativeFocused, TUI_FOCUSABLE_ITEM_ACCESSOR, tuiDefaultProp, } from '@taiga-ui/cdk';
5
+ import { TUI_RATING_OPTIONS } from './rating-options';
6
+ var TuiRatingComponent = /** @class */ (function (_super) {
7
+ __extends(TuiRatingComponent, _super);
8
+ function TuiRatingComponent(ngControl, changeDetectorRef, options) {
9
+ var _this = _super.call(this, ngControl, changeDetectorRef) || this;
10
+ _this.options = options;
11
+ _this.min = _this.options.min;
12
+ _this.max = _this.options.max;
13
+ _this.iconNormal = _this.options.iconNormal;
14
+ _this.iconFilled = _this.options.iconFilled;
15
+ return _this;
16
+ }
17
+ TuiRatingComponent_1 = TuiRatingComponent;
18
+ Object.defineProperty(TuiRatingComponent.prototype, "nativeFocusableElement", {
19
+ get: function () {
20
+ return this.computedDisabled || !this.focusableElement
21
+ ? null
22
+ : this.focusableElement.nativeElement;
23
+ },
24
+ enumerable: true,
25
+ configurable: true
26
+ });
27
+ Object.defineProperty(TuiRatingComponent.prototype, "focused", {
28
+ get: function () {
29
+ return isNativeFocused(this.nativeFocusableElement);
30
+ },
31
+ enumerable: true,
32
+ configurable: true
33
+ });
34
+ Object.defineProperty(TuiRatingComponent.prototype, "isFocusable", {
35
+ get: function () {
36
+ return !(this.readOnly || this.disabled);
37
+ },
38
+ enumerable: true,
39
+ configurable: true
40
+ });
41
+ Object.defineProperty(TuiRatingComponent.prototype, "percent", {
42
+ get: function () {
43
+ return (100 * this.value) / this.max;
44
+ },
45
+ enumerable: true,
46
+ configurable: true
47
+ });
48
+ TuiRatingComponent.prototype.onFocused = function (focused) {
49
+ this.updateFocused(focused);
50
+ };
51
+ TuiRatingComponent.prototype.setRateByReverseIndex = function (index) {
52
+ this.updateValue(this.max - index);
53
+ };
54
+ TuiRatingComponent.prototype.setRate = function (value) {
55
+ this.updateValue(value);
56
+ };
57
+ TuiRatingComponent.prototype.getFallbackValue = function () {
58
+ return 0;
59
+ };
60
+ var TuiRatingComponent_1;
61
+ TuiRatingComponent.ctorParameters = function () { return [
62
+ { type: NgControl, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [NgControl,] }] },
63
+ { type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] },
64
+ { type: undefined, decorators: [{ type: Inject, args: [TUI_RATING_OPTIONS,] }] }
65
+ ]; };
66
+ __decorate([
67
+ ViewChild('focusableElement')
68
+ ], TuiRatingComponent.prototype, "focusableElement", void 0);
69
+ __decorate([
70
+ Input(),
71
+ tuiDefaultProp()
72
+ ], TuiRatingComponent.prototype, "min", void 0);
73
+ __decorate([
74
+ Input(),
75
+ tuiDefaultProp()
76
+ ], TuiRatingComponent.prototype, "max", void 0);
77
+ __decorate([
78
+ Input(),
79
+ tuiDefaultProp()
80
+ ], TuiRatingComponent.prototype, "iconNormal", void 0);
81
+ __decorate([
82
+ Input(),
83
+ tuiDefaultProp()
84
+ ], TuiRatingComponent.prototype, "iconFilled", void 0);
85
+ __decorate([
86
+ HostListener('focusin', ['true']),
87
+ HostListener('focusout', ['false'])
88
+ ], TuiRatingComponent.prototype, "onFocused", null);
89
+ TuiRatingComponent = TuiRatingComponent_1 = __decorate([
90
+ Component({
91
+ selector: 'tui-rating',
92
+ template: "<label>\n <ng-content></ng-content>\n\n <div class=\"t-host\">\n <div class=\"t-interactive\">\n <tui-svg\n *tuiRepeatTimes=\"let index of max\"\n class=\"t-icon-filled\"\n [src]=\"iconFilled\"\n (click)=\"setRateByReverseIndex(index)\"\n ></tui-svg>\n </div>\n\n <div class=\"t-wrapper\" [style.width.%]=\"percent\">\n <tui-svg\n *tuiRepeatTimes=\"let index of max\"\n class=\"t-icon-filled\"\n [src]=\"iconFilled\"\n ></tui-svg>\n </div>\n\n <tui-svg *tuiRepeatTimes=\"let item of max\" [src]=\"iconNormal\"></tui-svg>\n\n <input\n #focusableElement\n type=\"range\"\n step=\"1\"\n class=\"t-input\"\n [min]=\"min\"\n [max]=\"max\"\n [ngModel]=\"value\"\n [tuiFocusable]=\"isFocusable\"\n (ngModelChange)=\"setRate($event)\"\n />\n </div>\n</label>\n",
93
+ changeDetection: ChangeDetectionStrategy.OnPush,
94
+ providers: [
95
+ {
96
+ provide: TUI_FOCUSABLE_ITEM_ACCESSOR,
97
+ useExisting: forwardRef(function () { return TuiRatingComponent_1; }),
98
+ },
99
+ ],
100
+ styles: [":host._disabled,:host._readonly{pointer-events:none}:host._disabled{opacity:var(--tui-disabled-opacity)}.t-host{position:relative;display:inline-flex}.t-input{pointer-events:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:0 0}.t-input::-webkit-slider-thumb{display:none}.t-input::-moz-range-thumb{opacity:0}.t-input,.t-interactive,.t-wrapper{position:absolute;left:0;bottom:0;width:100%;height:100%}.t-interactive,.t-wrapper{display:inline-flex;overflow:hidden;flex-direction:row-reverse;justify-content:flex-end;white-space:nowrap}.t-wrapper{pointer-events:none}.t-interactive{opacity:0}@media (hover:hover) and (pointer:fine){.t-interactive:hover{opacity:1}.t-interactive:hover~.t-wrapper{visibility:hidden}.t-interactive:hover .t-icon-filled{opacity:0}.t-interactive:hover .t-icon-filled:hover,.t-interactive:hover .t-icon-filled:hover~.t-icon-filled{opacity:1}}.t-icon-filled{position:relative;cursor:pointer}"]
101
+ }),
102
+ __param(0, Optional()),
103
+ __param(0, Self()),
104
+ __param(0, Inject(NgControl)),
105
+ __param(1, Inject(ChangeDetectorRef)),
106
+ __param(2, Inject(TUI_RATING_OPTIONS))
107
+ ], TuiRatingComponent);
108
+ return TuiRatingComponent;
109
+ }(AbstractTuiControl));
110
+ export { TuiRatingComponent };
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9yYXRpbmcvIiwic291cmNlcyI6WyJyYXRpbmcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsSUFBSSxFQUNKLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUNILGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsMkJBQTJCLEVBQzNCLGNBQWMsR0FFakIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGtCQUFrQixFQUFtQixNQUFNLGtCQUFrQixDQUFDO0FBY3RFO0lBQ1ksc0NBQTBCO0lBc0JsQyw0QkFJSSxTQUEyQixFQUUzQixpQkFBb0MsRUFFbkIsT0FBeUI7UUFSOUMsWUFVSSxrQkFBTSxTQUFTLEVBQUUsaUJBQWlCLENBQUMsU0FDdEM7UUFIb0IsYUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUF0QjlDLFNBQUcsR0FBRyxLQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUl2QixTQUFHLEdBQUcsS0FBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFJdkIsZ0JBQVUsR0FBRyxLQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUlyQyxnQkFBVSxHQUFHLEtBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDOztJQWFyQyxDQUFDOzJCQWxDUSxrQkFBa0I7SUFvQzNCLHNCQUFJLHNEQUFzQjthQUExQjtZQUNJLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQjtnQkFDbEQsQ0FBQyxDQUFDLElBQUk7Z0JBQ04sQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUM7UUFDOUMsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSx1Q0FBTzthQUFYO1lBQ0ksT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDeEQsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSwyQ0FBVzthQUFmO1lBQ0ksT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0MsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSx1Q0FBTzthQUFYO1lBQ0ksT0FBTyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUN6QyxDQUFDOzs7T0FBQTtJQUlELHNDQUFTLEdBQVQsVUFBVSxPQUFnQjtRQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxrREFBcUIsR0FBckIsVUFBc0IsS0FBYTtRQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELG9DQUFPLEdBQVAsVUFBUSxLQUFhO1FBQ2pCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVTLDZDQUFnQixHQUExQjtRQUNJLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQzs7O2dCQTNDYyxTQUFTLHVCQUhuQixRQUFRLFlBQ1IsSUFBSSxZQUNKLE1BQU0sU0FBQyxTQUFTO2dCQUdFLGlCQUFpQix1QkFEbkMsTUFBTSxTQUFDLGlCQUFpQjtnREFFeEIsTUFBTSxTQUFDLGtCQUFrQjs7SUF6QjlCO1FBREMsU0FBUyxDQUFDLGtCQUFrQixDQUFDO2dFQUNtQztJQUlqRTtRQUZDLEtBQUssRUFBRTtRQUNQLGNBQWMsRUFBRTttREFDTTtJQUl2QjtRQUZDLEtBQUssRUFBRTtRQUNQLGNBQWMsRUFBRTttREFDTTtJQUl2QjtRQUZDLEtBQUssRUFBRTtRQUNQLGNBQWMsRUFBRTswREFDb0I7SUFJckM7UUFGQyxLQUFLLEVBQUU7UUFDUCxjQUFjLEVBQUU7MERBQ29CO0lBbUNyQztRQUZDLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7dURBR25DO0lBMURRLGtCQUFrQjtRQVo5QixTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsWUFBWTtZQUN0Qiw4aUNBQXFDO1lBRXJDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO1lBQy9DLFNBQVMsRUFBRTtnQkFDUDtvQkFDSSxPQUFPLEVBQUUsMkJBQTJCO29CQUNwQyxXQUFXLEVBQUUsVUFBVSxDQUFDLGNBQU0sT0FBQSxvQkFBa0IsRUFBbEIsQ0FBa0IsQ0FBQztpQkFDcEQ7YUFDSjs7U0FDSixDQUFDO1FBeUJPLFdBQUEsUUFBUSxFQUFFLENBQUE7UUFDVixXQUFBLElBQUksRUFBRSxDQUFBO1FBQ04sV0FBQSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7UUFFakIsV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUV6QixXQUFBLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO09BOUJ0QixrQkFBa0IsQ0F1RTlCO0lBQUQseUJBQUM7Q0FBQSxBQXZFRCxDQUNZLGtCQUFrQixHQXNFN0I7U0F2RVksa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlDb250cm9sLFxuICAgIGlzTmF0aXZlRm9jdXNlZCxcbiAgICBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcblxuaW1wb3J0IHtUVUlfUkFUSU5HX09QVElPTlMsIFR1aVJhdGluZ09wdGlvbnN9IGZyb20gJy4vcmF0aW5nLW9wdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1yYXRpbmcnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yYXRpbmcudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcmF0aW5nLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpUmF0aW5nQ29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlSYXRpbmdDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpQ29udHJvbDxudW1iZXI+XG4gICAgaW1wbGVtZW50cyBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3JcbntcbiAgICBAVmlld0NoaWxkKCdmb2N1c2FibGVFbGVtZW50JylcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvY3VzYWJsZUVsZW1lbnQ/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1pbiA9IHRoaXMub3B0aW9ucy5taW47XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWF4ID0gdGhpcy5vcHRpb25zLm1heDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBpY29uTm9ybWFsID0gdGhpcy5vcHRpb25zLmljb25Ob3JtYWw7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaWNvbkZpbGxlZCA9IHRoaXMub3B0aW9ucy5pY29uRmlsbGVkO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIG5nQ29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZilcbiAgICAgICAgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KFRVSV9SQVRJTkdfT1BUSU9OUylcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBUdWlSYXRpbmdPcHRpb25zLFxuICAgICkge1xuICAgICAgICBzdXBlcihuZ0NvbnRyb2wsIGNoYW5nZURldGVjdG9yUmVmKTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXB1dGVkRGlzYWJsZWQgfHwgIXRoaXMuZm9jdXNhYmxlRWxlbWVudFxuICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICA6IHRoaXMuZm9jdXNhYmxlRWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gaXNOYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgZ2V0IGlzRm9jdXNhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISh0aGlzLnJlYWRPbmx5IHx8IHRoaXMuZGlzYWJsZWQpO1xuICAgIH1cblxuICAgIGdldCBwZXJjZW50KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAoMTAwICogdGhpcy52YWx1ZSkgLyB0aGlzLm1heDtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdmb2N1c2luJywgWyd0cnVlJ10pXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXNvdXQnLCBbJ2ZhbHNlJ10pXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIHNldFJhdGVCeVJldmVyc2VJbmRleChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy5tYXggLSBpbmRleCk7XG4gICAgfVxuXG4gICAgc2V0UmF0ZSh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRGYWxsYmFja1ZhbHVlKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAwO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,26 @@
1
+ import { __decorate } from "tslib";
2
+ import { NgModule } from '@angular/core';
3
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
+ import { TuiFocusableModule, TuiRepeatTimesModule } from '@taiga-ui/cdk';
5
+ import { TuiSvgModule } from '@taiga-ui/core';
6
+ import { TuiRatingComponent } from './rating.component';
7
+ var TuiRatingModule = /** @class */ (function () {
8
+ function TuiRatingModule() {
9
+ }
10
+ TuiRatingModule = __decorate([
11
+ NgModule({
12
+ imports: [
13
+ TuiSvgModule,
14
+ TuiFocusableModule,
15
+ TuiRepeatTimesModule,
16
+ FormsModule,
17
+ ReactiveFormsModule,
18
+ ],
19
+ declarations: [TuiRatingComponent],
20
+ exports: [TuiRatingComponent],
21
+ })
22
+ ], TuiRatingModule);
23
+ return TuiRatingModule;
24
+ }());
25
+ export { TuiRatingModule };
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9yYXRpbmcvIiwic291cmNlcyI6WyJyYXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxXQUFXLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTVDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBYXREO0lBQUE7SUFBOEIsQ0FBQztJQUFsQixlQUFlO1FBWDNCLFFBQVEsQ0FBQztZQUNOLE9BQU8sRUFBRTtnQkFDTCxZQUFZO2dCQUNaLGtCQUFrQjtnQkFDbEIsb0JBQW9CO2dCQUNwQixXQUFXO2dCQUNYLG1CQUFtQjthQUN0QjtZQUNELFlBQVksRUFBRSxDQUFDLGtCQUFrQixDQUFDO1lBQ2xDLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixDQUFDO1NBQ2hDLENBQUM7T0FDVyxlQUFlLENBQUc7SUFBRCxzQkFBQztDQUFBLEFBQS9CLElBQStCO1NBQWxCLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7VHVpRm9jdXNhYmxlTW9kdWxlLCBUdWlSZXBlYXRUaW1lc01vZHVsZX0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1R1aVN2Z01vZHVsZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuXG5pbXBvcnQge1R1aVJhdGluZ0NvbXBvbmVudH0gZnJvbSAnLi9yYXRpbmcuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFR1aVN2Z01vZHVsZSxcbiAgICAgICAgVHVpRm9jdXNhYmxlTW9kdWxlLFxuICAgICAgICBUdWlSZXBlYXRUaW1lc01vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtUdWlSYXRpbmdDb21wb25lbnRdLFxuICAgIGV4cG9ydHM6IFtUdWlSYXRpbmdDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlSYXRpbmdNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFpZ2EtdWkta2l0LWNvbXBvbmVudHMtcmF0aW5nLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL3JhdGluZy8iLCJzb3VyY2VzIjpbInRhaWdhLXVpLWtpdC1jb21wb25lbnRzLXJhdGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -3,16 +3,17 @@ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, fo
3
3
  import { NgControl } from '@angular/forms';
4
4
  import { AbstractTuiNullableControl, isNativeFocused, setNativeFocused, TUI_DEFAULT_IDENTITY_MATCHER, TUI_FOCUSABLE_ITEM_ACCESSOR, tuiDefaultProp, tuiPure, } from '@taiga-ui/cdk';
5
5
  import { TUI_DATA_LIST_HOST, TUI_OPTION_CONTENT, TUI_TEXTFIELD_CLEANER, TuiDataListDirective, TuiDataListHost, TuiHostedDropdownComponent, TuiPrimitiveTextfieldComponent, TuiTextfieldCleanerDirective, TuiValueContentContext, } from '@taiga-ui/core';
6
- import { TUI_ARROW } from '@taiga-ui/kit/components/arrow';
6
+ import { TUI_ARROW_MODE } from '@taiga-ui/kit/components/arrow';
7
7
  import { TUI_SELECT_OPTION } from '@taiga-ui/kit/components/select-option';
8
8
  import { FIXED_DROPDOWN_CONTROLLER_PROVIDER } from '@taiga-ui/kit/providers';
9
9
  // TODO: remove in ivy compilation
10
10
  export var SELECT_OPTION = TUI_SELECT_OPTION;
11
11
  var TuiSelectComponent = /** @class */ (function (_super) {
12
12
  __extends(TuiSelectComponent, _super);
13
- function TuiSelectComponent(control, changeDetectorRef, textfieldCleaner) {
13
+ function TuiSelectComponent(control, changeDetectorRef, textfieldCleaner, arrowMode) {
14
14
  var _this = _super.call(this, control, changeDetectorRef) || this;
15
15
  _this.textfieldCleaner = textfieldCleaner;
16
+ _this.arrowMode = arrowMode;
16
17
  _this.identityMatcher = TUI_DEFAULT_IDENTITY_MATCHER;
17
18
  _this.valueContent = '';
18
19
  _this.datalist = '';
@@ -21,7 +22,7 @@ var TuiSelectComponent = /** @class */ (function (_super) {
21
22
  TuiSelectComponent_1 = TuiSelectComponent;
22
23
  Object.defineProperty(TuiSelectComponent.prototype, "arrow", {
23
24
  get: function () {
24
- return this.disabled || this.readOnly ? '' : TUI_ARROW;
25
+ return !this.interactive ? this.arrowMode.disabled : this.arrowMode.interactive;
25
26
  },
26
27
  enumerable: true,
27
28
  configurable: true
@@ -55,13 +56,6 @@ var TuiSelectComponent = /** @class */ (function (_super) {
55
56
  enumerable: true,
56
57
  configurable: true
57
58
  });
58
- Object.defineProperty(TuiSelectComponent.prototype, "canOpen", {
59
- get: function () {
60
- return !this.computedDisabled && !this.readOnly;
61
- },
62
- enumerable: true,
63
- configurable: true
64
- });
65
59
  TuiSelectComponent.prototype.computeContext = function ($implicit, active) {
66
60
  return { $implicit: $implicit, active: active };
67
61
  };
@@ -82,11 +76,10 @@ var TuiSelectComponent = /** @class */ (function (_super) {
82
76
  }
83
77
  };
84
78
  TuiSelectComponent.prototype.handleOption = function (option) {
79
+ var _a;
85
80
  this.focusInput();
86
81
  this.updateValue(option);
87
- if (this.hostedDropdown) {
88
- this.hostedDropdown.updateOpen(false);
89
- }
82
+ (_a = this.hostedDropdown) === null || _a === void 0 ? void 0 : _a.updateOpen(false);
90
83
  };
91
84
  TuiSelectComponent.prototype.focusInput = function (preventScroll) {
92
85
  if (preventScroll === void 0) { preventScroll = false; }
@@ -98,7 +91,8 @@ var TuiSelectComponent = /** @class */ (function (_super) {
98
91
  TuiSelectComponent.ctorParameters = function () { return [
99
92
  { type: NgControl, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [NgControl,] }] },
100
93
  { type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] },
101
- { type: TuiTextfieldCleanerDirective, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_CLEANER,] }] }
94
+ { type: TuiTextfieldCleanerDirective, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_CLEANER,] }] },
95
+ { type: undefined, decorators: [{ type: Inject, args: [TUI_ARROW_MODE,] }] }
102
96
  ]; };
103
97
  __decorate([
104
98
  ViewChild(TuiPrimitiveTextfieldComponent)
@@ -123,7 +117,7 @@ var TuiSelectComponent = /** @class */ (function (_super) {
123
117
  TuiSelectComponent = TuiSelectComponent_1 = __decorate([
124
118
  Component({
125
119
  selector: 'tui-select',
126
- template: "<tui-hosted-dropdown\n class=\"hosted\"\n [canOpen]=\"canOpen\"\n [content]=\"datalist || ''\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n automation-id=\"tui-select__textfield\"\n class=\"textfield\"\n [editable]=\"false\"\n [pseudoFocused]=\"computedFocused\"\n [pseudoHovered]=\"computedHovered\"\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 <div\n *ngIf=\"value !== null\"\n polymorpheus-outlet\n automation-id=\"tui-select__value\"\n class=\"value\"\n [content]=\"computedContent\"\n [context]=\"computeContext(value, computedFocused)\"\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]=\"computedHovered\"\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 <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",
127
121
  changeDetection: ChangeDetectionStrategy.OnPush,
128
122
  providers: [
129
123
  {
@@ -140,15 +134,16 @@ var TuiSelectComponent = /** @class */ (function (_super) {
140
134
  },
141
135
  FIXED_DROPDOWN_CONTROLLER_PROVIDER,
142
136
  ],
143
- 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}.hosted{display:block;border-radius:inherit}.textfield{border-radius:inherit;text-align:inherit}.value{display:flex;width:100%;align-items:center}"]
137
+ 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;overflow:hidden}.t-primitive-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]
144
138
  }),
145
139
  __param(0, Optional()),
146
140
  __param(0, Self()),
147
141
  __param(0, Inject(NgControl)),
148
142
  __param(1, Inject(ChangeDetectorRef)),
149
- __param(2, Inject(TUI_TEXTFIELD_CLEANER))
143
+ __param(2, Inject(TUI_TEXTFIELD_CLEANER)),
144
+ __param(3, Inject(TUI_ARROW_MODE))
150
145
  ], TuiSelectComponent);
151
146
  return TuiSelectComponent;
152
147
  }(AbstractTuiNullableControl));
153
148
  export { TuiSelectComponent };
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9zZWxlY3QvIiwic291cmNlcyI6WyJzZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osV0FBVyxFQUNYLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUNILDBCQUEwQixFQUMxQixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLDRCQUE0QixFQUM1QiwyQkFBMkIsRUFDM0IsY0FBYyxFQUdkLE9BQU8sR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixxQkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLGVBQWUsRUFDZiwwQkFBMEIsRUFDMUIsOEJBQThCLEVBQzlCLDRCQUE0QixFQUM1QixzQkFBc0IsR0FDekIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDekQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDekUsT0FBTyxFQUFDLGtDQUFrQyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFHM0Usa0NBQWtDO0FBQ2xDLE1BQU0sQ0FBQyxJQUFNLGFBQWEsR0FBWSxpQkFBaUIsQ0FBQztBQXVCeEQ7SUFDWSxzQ0FBNkI7SUFvQnJDLDRCQUlJLE9BQXlCLEVBQ0UsaUJBQW9DLEVBRTlDLGdCQUE4QztRQVBuRSxZQVNJLGtCQUFNLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxTQUNwQztR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cUJBQXFCLENBQUMsQ0FBQTtPQTNCekIsa0JBQWtCLENBc0c5QjtJQUFELHlCQUFDO0NBQUEsQUF0R0QsQ0FDWSwwQkFBMEIsR0FxR3JDO1NBdEdZLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aU51bGxhYmxlQ29udHJvbCxcbiAgICBpc05hdGl2ZUZvY3VzZWQsXG4gICAgc2V0TmF0aXZlRm9jdXNlZCxcbiAgICBUVUlfREVGQVVMVF9JREVOVElUWV9NQVRDSEVSLFxuICAgIFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgVHVpSWRlbnRpdHlNYXRjaGVyLFxuICAgIHR1aVB1cmUsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBUVUlfREFUQV9MSVNUX0hPU1QsXG4gICAgVFVJX09QVElPTl9DT05URU5ULFxuICAgIFRVSV9URVhURklFTERfQ0xFQU5FUixcbiAgICBUdWlEYXRhTGlzdERpcmVjdGl2ZSxcbiAgICBUdWlEYXRhTGlzdEhvc3QsXG4gICAgVHVpSG9zdGVkRHJvcGRvd25Db21wb25lbnQsXG4gICAgVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgIFR1aVRleHRmaWVsZENsZWFuZXJEaXJlY3RpdmUsXG4gICAgVHVpVmFsdWVDb250ZW50Q29udGV4dCxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUVUlfQVJST1d9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9hcnJvdyc7XG5pbXBvcnQge1RVSV9TRUxFQ1RfT1BUSU9OfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvc2VsZWN0LW9wdGlvbic7XG5pbXBvcnQge0ZJWEVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVJ9IGZyb20gJ0B0YWlnYS11aS9raXQvcHJvdmlkZXJzJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcblxuLy8gVE9ETzogcmVtb3ZlIGluIGl2eSBjb21waWxhdGlvblxuZXhwb3J0IGNvbnN0IFNFTEVDVF9PUFRJT046IHVua25vd24gPSBUVUlfU0VMRUNUX09QVElPTjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktc2VsZWN0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlbGVjdC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR1aVNlbGVjdENvbXBvbmVudCksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9EQVRBX0xJU1RfSE9TVCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR1aVNlbGVjdENvbXBvbmVudCksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9PUFRJT05fQ09OVEVOVCxcbiAgICAgICAgICAgIHVzZVZhbHVlOiBTRUxFQ1RfT1BUSU9OLFxuICAgICAgICB9LFxuICAgICAgICBGSVhFRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVNlbGVjdENvbXBvbmVudDxUPlxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2w8VD5cbiAgICBpbXBsZW1lbnRzIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvciwgVHVpRGF0YUxpc3RIb3N0PFQ+XG57XG4gICAgQFZpZXdDaGlsZChUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGQ/OiBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkKFR1aUhvc3RlZERyb3Bkb3duQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgaG9zdGVkRHJvcGRvd24/OiBUdWlIb3N0ZWREcm9wZG93bkNvbXBvbmVudDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBpZGVudGl0eU1hdGNoZXI6IFR1aUlkZW50aXR5TWF0Y2hlcjxUIHwgc3RyaW5nPiA9IFRVSV9ERUZBVUxUX0lERU5USVRZX01BVENIRVI7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgdmFsdWVDb250ZW50OiBQb2x5bW9ycGhldXNDb250ZW50PFR1aVZhbHVlQ29udGVudENvbnRleHQ8VD4+ID0gJyc7XG5cbiAgICBAQ29udGVudENoaWxkKFR1aURhdGFMaXN0RGlyZWN0aXZlLCB7cmVhZDogVGVtcGxhdGVSZWZ9KVxuICAgIHJlYWRvbmx5IGRhdGFsaXN0OiBQb2x5bW9ycGhldXNDb250ZW50ID0gJyc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KE5nQ29udHJvbClcbiAgICAgICAgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KFRVSV9URVhURklFTERfQ0xFQU5FUilcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGRDbGVhbmVyOiBUdWlUZXh0ZmllbGRDbGVhbmVyRGlyZWN0aXZlLFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgfVxuXG4gICAgZ2V0IGFycm93KCk6IFBvbHltb3JwaGV1c0NvbnRlbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRPbmx5ID8gJycgOiBUVUlfQVJST1c7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0ZmllbGQgPyB0aGlzLnRleHRmaWVsZC5uYXRpdmVGb2N1c2FibGVFbGVtZW50IDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGlzTmF0aXZlRm9jdXNlZCh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHx8XG4gICAgICAgICAgICAoISF0aGlzLmhvc3RlZERyb3Bkb3duICYmIHRoaXMuaG9zdGVkRHJvcGRvd24uZm9jdXNlZClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZSA9PT0gbnVsbCA/ICcnIDogU3RyaW5nKHRoaXMudmFsdWUpIHx8ICcgJztcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRDb250ZW50KCk6IFBvbHltb3JwaGV1c0NvbnRlbnQ8VHVpVmFsdWVDb250ZW50Q29udGV4dDxUPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZUNvbnRlbnQgfHwgdGhpcy5jb21wdXRlZFZhbHVlO1xuICAgIH1cblxuICAgIGdldCBjYW5PcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuY29tcHV0ZWREaXNhYmxlZCAmJiAhdGhpcy5yZWFkT25seTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIGNvbXB1dGVDb250ZXh0KFxuICAgICAgICAkaW1wbGljaXQ6IFQgfCBudWxsLFxuICAgICAgICBhY3RpdmU6IGJvb2xlYW4sXG4gICAgKTogVHVpVmFsdWVDb250ZW50Q29udGV4dDxUIHwgbnVsbD4ge1xuICAgICAgICByZXR1cm4geyRpbXBsaWNpdCwgYWN0aXZlfTtcbiAgICB9XG5cbiAgICBvblZhbHVlQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShudWxsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQWN0aXZlWm9uZShhY3RpdmU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGFjdGl2ZSk7XG4gICAgfVxuXG4gICAgb25Ib3ZlcmVkKGhvdmVyZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVIb3ZlcmVkKGhvdmVyZWQpO1xuICAgIH1cblxuICAgIG9uS2V5RG93bkRlbGV0ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMudGV4dGZpZWxkQ2xlYW5lci5jbGVhbmVyKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKG51bGwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlT3B0aW9uKG9wdGlvbjogVCkge1xuICAgICAgICB0aGlzLmZvY3VzSW5wdXQoKTtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShvcHRpb24pO1xuXG4gICAgICAgIGlmICh0aGlzLmhvc3RlZERyb3Bkb3duKSB7XG4gICAgICAgICAgICB0aGlzLmhvc3RlZERyb3Bkb3duLnVwZGF0ZU9wZW4oZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1c0lucHV0KHByZXZlbnRTY3JvbGw6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICBzZXROYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCwgdHJ1ZSwgcHJldmVudFNjcm9sbCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9zZWxlY3QvIiwic291cmNlcyI6WyJzZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osV0FBVyxFQUNYLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUNILDBCQUEwQixFQUMxQixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLDRCQUE0QixFQUM1QiwyQkFBMkIsRUFDM0IsY0FBYyxFQUdkLE9BQU8sR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixxQkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLGVBQWUsRUFDZiwwQkFBMEIsRUFDMUIsOEJBQThCLEVBQzlCLDRCQUE0QixFQUM1QixzQkFBc0IsR0FDekIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsY0FBYyxFQUFlLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDekUsT0FBTyxFQUFDLGtDQUFrQyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFHM0Usa0NBQWtDO0FBQ2xDLE1BQU0sQ0FBQyxJQUFNLGFBQWEsR0FBWSxpQkFBaUIsQ0FBQztBQXVCeEQ7SUFDWSxzQ0FBNkI7SUFvQnJDLDRCQUlJLE9BQXlCLEVBQ0UsaUJBQW9DLEVBRTlDLGdCQUE4QyxFQUU5QyxTQUF1QjtRQVQ1QyxZQVdJLGtCQUFNLE9BQU8sRUFBRSxpQkFBaUIs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QTtPQTdCbEIsa0JBQWtCLENBaUc5QjtJQUFELHlCQUFDO0NBQUEsQUFqR0QsQ0FDWSwwQkFBMEIsR0FnR3JDO1NBakdZLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aU51bGxhYmxlQ29udHJvbCxcbiAgICBpc05hdGl2ZUZvY3VzZWQsXG4gICAgc2V0TmF0aXZlRm9jdXNlZCxcbiAgICBUVUlfREVGQVVMVF9JREVOVElUWV9NQVRDSEVSLFxuICAgIFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgVHVpSWRlbnRpdHlNYXRjaGVyLFxuICAgIHR1aVB1cmUsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBUVUlfREFUQV9MSVNUX0hPU1QsXG4gICAgVFVJX09QVElPTl9DT05URU5ULFxuICAgIFRVSV9URVhURklFTERfQ0xFQU5FUixcbiAgICBUdWlEYXRhTGlzdERpcmVjdGl2ZSxcbiAgICBUdWlEYXRhTGlzdEhvc3QsXG4gICAgVHVpSG9zdGVkRHJvcGRvd25Db21wb25lbnQsXG4gICAgVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgIFR1aVRleHRmaWVsZENsZWFuZXJEaXJlY3RpdmUsXG4gICAgVHVpVmFsdWVDb250ZW50Q29udGV4dCxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUVUlfQVJST1dfTU9ERSwgVHVpQXJyb3dNb2RlfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvYXJyb3cnO1xuaW1wb3J0IHtUVUlfU0VMRUNUX09QVElPTn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL3NlbGVjdC1vcHRpb24nO1xuaW1wb3J0IHtGSVhFRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSfSBmcm9tICdAdGFpZ2EtdWkva2l0L3Byb3ZpZGVycyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5cbi8vIFRPRE86IHJlbW92ZSBpbiBpdnkgY29tcGlsYXRpb25cbmV4cG9ydCBjb25zdCBTRUxFQ1RfT1BUSU9OOiB1bmtub3duID0gVFVJX1NFTEVDVF9PUFRJT047XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLXNlbGVjdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zZWxlY3Quc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUdWlTZWxlY3RDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfREFUQV9MSVNUX0hPU1QsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUdWlTZWxlY3RDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfT1BUSU9OX0NPTlRFTlQsXG4gICAgICAgICAgICB1c2VWYWx1ZTogU0VMRUNUX09QVElPTixcbiAgICAgICAgfSxcbiAgICAgICAgRklYRURfRFJPUERPV05fQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlTZWxlY3RDb21wb25lbnQ8VD5cbiAgICBleHRlbmRzIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sPFQ+XG4gICAgaW1wbGVtZW50cyBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsIFR1aURhdGFMaXN0SG9zdDxUPlxue1xuICAgIEBWaWV3Q2hpbGQoVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkPzogVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZChUdWlIb3N0ZWREcm9wZG93bkNvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhvc3RlZERyb3Bkb3duPzogVHVpSG9zdGVkRHJvcGRvd25Db21wb25lbnQ7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaWRlbnRpdHlNYXRjaGVyOiBUdWlJZGVudGl0eU1hdGNoZXI8VCB8IHN0cmluZz4gPSBUVUlfREVGQVVMVF9JREVOVElUWV9NQVRDSEVSO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHZhbHVlQ29udGVudDogUG9seW1vcnBoZXVzQ29udGVudDxUdWlWYWx1ZUNvbnRlbnRDb250ZXh0PFQ+PiA9ICcnO1xuXG4gICAgQENvbnRlbnRDaGlsZChUdWlEYXRhTGlzdERpcmVjdGl2ZSwge3JlYWQ6IFRlbXBsYXRlUmVmfSlcbiAgICByZWFkb25seSBkYXRhbGlzdDogUG9seW1vcnBoZXVzQ29udGVudCA9ICcnO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX0NMRUFORVIpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkQ2xlYW5lcjogVHVpVGV4dGZpZWxkQ2xlYW5lckRpcmVjdGl2ZSxcbiAgICAgICAgQEluamVjdChUVUlfQVJST1dfTU9ERSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhcnJvd01vZGU6IFR1aUFycm93TW9kZSxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIH1cblxuICAgIGdldCBhcnJvdygpOiBQb2x5bW9ycGhldXNDb250ZW50IHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmludGVyYWN0aXZlID8gdGhpcy5hcnJvd01vZGUuZGlzYWJsZWQgOiB0aGlzLmFycm93TW9kZS5pbnRlcmFjdGl2ZTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRmaWVsZCA/IHRoaXMudGV4dGZpZWxkLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgOiBudWxsO1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgaXNOYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkgfHxcbiAgICAgICAgICAgICghIXRoaXMuaG9zdGVkRHJvcGRvd24gJiYgdGhpcy5ob3N0ZWREcm9wZG93bi5mb2N1c2VkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlID09PSBudWxsID8gJycgOiBTdHJpbmcodGhpcy52YWx1ZSkgfHwgJyAnO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZENvbnRlbnQoKTogUG9seW1vcnBoZXVzQ29udGVudDxUdWlWYWx1ZUNvbnRlbnRDb250ZXh0PFQ+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlQ29udGVudCB8fCB0aGlzLmNvbXB1dGVkVmFsdWU7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBjb21wdXRlQ29udGV4dChcbiAgICAgICAgJGltcGxpY2l0OiBUIHwgbnVsbCxcbiAgICAgICAgYWN0aXZlOiBib29sZWFuLFxuICAgICk6IFR1aVZhbHVlQ29udGVudENvbnRleHQ8VCB8IG51bGw+IHtcbiAgICAgICAgcmV0dXJuIHskaW1wbGljaXQsIGFjdGl2ZX07XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUobnVsbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkFjdGl2ZVpvbmUoYWN0aXZlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChhY3RpdmUpO1xuICAgIH1cblxuICAgIG9uSG92ZXJlZChob3ZlcmVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlSG92ZXJlZChob3ZlcmVkKTtcbiAgICB9XG5cbiAgICBvbktleURvd25EZWxldGUoKSB7XG4gICAgICAgIGlmICh0aGlzLnRleHRmaWVsZENsZWFuZXIuY2xlYW5lcikge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShudWxsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZU9wdGlvbihvcHRpb246IFQpIHtcbiAgICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUob3B0aW9uKTtcbiAgICAgICAgdGhpcy5ob3N0ZWREcm9wZG93bj8udXBkYXRlT3BlbihmYWxzZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1c0lucHV0KHByZXZlbnRTY3JvbGw6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICBzZXROYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCwgdHJ1ZSwgcHJldmVudFNjcm9sbCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -227,4 +227,4 @@ var TuiTagComponent = /** @class */ (function () {
227
227
  return TuiTagComponent;
228
228
  }());
229
229
  export { TuiTagComponent };
230
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy90YWcvIiwic291cmNlcyI6WyJ0YWcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUNILGFBQWEsRUFDYixVQUFVLEVBQ1YsUUFBUSxHQUtYLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRTNELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFaEMsTUFBTSxDQUFDLElBQU0sb0JBQW9CLEdBQUcsSUFBSSxNQUFNLENBQUMsU0FBVSxDQUFDLENBQUM7QUFZM0Q7SUF1RUkseUJBQ3lDLFVBQW1DLEVBQzdDLEtBQXVDO1FBRDdCLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBQzdDLFVBQUssR0FBTCxLQUFLLENBQWtDO1FBeEV0RSxpRUFBaUU7UUFHakUsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUlYLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFJakIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFJbkIsY0FBUyxHQUFrQixJQUFJLENBQUM7UUFLaEMsU0FBSSxHQUF3QixHQUFHLENBQUM7UUFJaEMsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUtuQixXQUFNLEdBQWUsU0FBUyxDQUFDO1FBSy9CLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFJbEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUtsQixhQUFRLEdBQUcsS0FB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QUM7WUFDUCxRQUFRLEVBQUUsb0JBQW9CO1lBQzlCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO1lBQy9DLHFpQ0FBa0M7WUFFbEMsU0FBUyxFQUFFLENBQUMsYUFBYSxDQUFDO1lBQzFCLElBQUksRUFBRTtnQkFDRixvQkFBb0IsRUFBRSxPQUFPO2FBQ2hDOztTQUNKLENBQUM7UUF5RU8sV0FBQSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDbEIsV0FBQSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7T0F6RVosZUFBZSxDQTRLM0I7SUFBRCxzQkFBQztDQUFBLEFBNUtELElBNEtDO1NBNUtZLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtzZXROYXRpdmVGb2N1c2VkLCB0dWlEZWZhdWx0UHJvcH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIE1PREVfUFJPVklERVIsXG4gICAgc2l6ZUJpZ2dlcixcbiAgICBUVUlfTU9ERSxcbiAgICBUdWlCcmlnaHRuZXNzLFxuICAgIFR1aVNpemVMLFxuICAgIFR1aVNpemVTLFxuICAgIFR1aVNpemVYUyxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUdWlTdGF0dXNUfSBmcm9tICdAdGFpZ2EtdWkva2l0L3R5cGVzJztcbmltcG9ydCB7c3RyaW5nSGFzaFRvSHNsfSBmcm9tICdAdGFpZ2EtdWkva2l0L3V0aWxzL2Zvcm1hdCc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgY29uc3QgQUxMT1dFRF9TUEFDRV9SRUdFWFAgPSBuZXcgUmVnRXhwKGBcXCx8W1xcXFxzXWApO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS10YWcsIGFbdHVpVGFnXScsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RhZy50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90YWcuc3R5bGUubGVzcyddLFxuICAgIHByb3ZpZGVyczogW01PREVfUFJPVklERVJdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJygkLmRhdGEtbW9kZS5hdHRyKSc6ICdtb2RlJCcsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpVGFnQ29tcG9uZW50IHtcbiAgICAvLyBUT0RPOiBQb3NzaWJseSBpbXBsZW1lbnQgc3RhbmRhcmQgZm9jdXMgbWVjaGFuaXNtcyBhbmQgb3V0bGluZVxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICB2YWx1ZSA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGVkaXRhYmxlID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgYWxsb3dTcGFjZXMgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1heExlbmd0aDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXR1aS1ob3N0LXNpemUnKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc2l6ZTogVHVpU2l6ZVMgfCBUdWlTaXplTCA9ICdtJztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzaG93TG9hZGVyID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXR1aS1ob3N0LXN0YXR1cycpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzdGF0dXM6IFR1aVN0YXR1c1QgPSAnZGVmYXVsdCc7XG5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX2hvdmVyYWJsZScpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBob3ZlcmFibGUgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICByZW1vdmFibGUgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fZGlzYWJsZWQnKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fYXV0b2NvbG9yJylcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGF1dG9Db2xvciA9IGZhbHNlO1xuXG4gICAgLy8gVE9ETzogUmVtb3ZlIG51bGwgaW4gMy4wXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGxlZnRDb250ZW50OiBQb2x5bW9ycGhldXNDb250ZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBlZGl0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX2VkaXRpbmcnKVxuICAgIGVkaXRpbmcgPSBmYWxzZTtcblxuICAgIGVkaXRlZFRleHQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7cmVhZDogRWxlbWVudFJlZn0pXG4gICAgc2V0IGlucHV0KGlucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+KSB7XG4gICAgICAgIGlmIChpbnB1dCkge1xuICAgICAgICAgICAgc2V0TmF0aXZlRm9jdXNlZChpbnB1dC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoVFVJX01PREUpIHJlYWRvbmx5IG1vZGUkOiBPYnNlcnZhYmxlPFR1aUJyaWdodG5lc3MgfCBudWxsPixcbiAgICApIHt9XG5cbiAgICBnZXQgYmFja2dyb3VuZENvbG9yKCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5hdXRvQ29sb3IgPyBzdHJpbmdIYXNoVG9Ic2wodGhpcy52YWx1ZSkgOiBudWxsO1xuICAgIH1cblxuICAgIGdldCBjYW5SZW1vdmUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlbW92YWJsZSAmJiAhdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5zaG93TG9hZGVyO1xuICAgIH1cblxuICAgIGdldCBkaXNwbGF5VGV4dCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5lZGl0ZWRUZXh0ID09PSBudWxsID8gdGhpcy52YWx1ZSA6IHRoaXMuZWRpdGVkVGV4dDtcbiAgICB9XG5cbiAgICBnZXQgbG9hZGVyU2l6ZSgpOiBUdWlTaXplWFMge1xuICAgICAgICByZXR1cm4gc2l6ZUJpZ2dlcih0aGlzLnNpemUpID8gJ3MnIDogJ3hzJztcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9oYXMtaWNvbicpXG4gICAgZ2V0IGhhc0ljb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNob3dMb2FkZXIgfHwgdGhpcy5yZW1vdmFibGU7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lbnRlcicsIFsnJGV2ZW50J10pXG4gICAgZWRpdChldmVudDogRXZlbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNhbkVkaXQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuZWRpdGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuZWRpdGVkVGV4dCA9IHRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5kZWxldGUnLCBbJyRldmVudCddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYmFja3NwYWNlJywgWyckZXZlbnQnXSlcbiAgICByZW1vdmUoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGlmICghdGhpcy5jYW5SZW1vdmUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLmVkaXRlZC5lbWl0KCcnKTtcbiAgICB9XG5cbiAgICBvbklucHV0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgbmV3VGFncyA9IHRoaXMuYWxsb3dTcGFjZXNcbiAgICAgICAgICAgID8gdmFsdWUuc3BsaXQoJywnKVxuICAgICAgICAgICAgOiB2YWx1ZS5zcGxpdChBTExPV0VEX1NQQUNFX1JFR0VYUCk7XG5cbiAgICAgICAgaWYgKG5ld1RhZ3MubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgdGhpcy5zYXZlKG5ld1RhZ3MudG9TdHJpbmcoKSk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZWRpdGVkVGV4dCA9IHZhbHVlO1xuICAgIH1cblxuICAgIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICBzd2l0Y2ggKGV2ZW50LmtleS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgICBjYXNlICdlbnRlcic6XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNhdmUodGhpcy5lZGl0ZWRUZXh0IHx8ICcnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2VzY2FwZSc6XG4gICAgICAgICAgICBjYXNlICdlc2MnOlxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wRWRpdGluZygpO1xuICAgICAgICAgICAgICAgIHNldE5hdGl2ZUZvY3VzZWQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQmx1cigpIHtcbiAgICAgICAgaWYgKHRoaXMuZWRpdGVkVGV4dCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5zYXZlKHRoaXMuZWRpdGVkVGV4dCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBjYW5FZGl0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5lZGl0YWJsZSAmJiAhdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5zaG93TG9hZGVyO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RvcEVkaXRpbmcoKSB7XG4gICAgICAgIHRoaXMuZWRpdGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmVkaXRlZFRleHQgPSBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2F2ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc3RvcEVkaXRpbmcoKTtcbiAgICAgICAgdGhpcy5lZGl0ZWQuZW1pdCh2YWx1ZS50cmltKCkpO1xuICAgIH1cbn1cbiJdfQ==
230
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy90YWcvIiwic291cmNlcyI6WyJ0YWcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUNILGFBQWEsRUFDYixVQUFVLEVBQ1YsUUFBUSxHQUtYLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRTNELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFaEMsTUFBTSxDQUFDLElBQU0sb0JBQW9CLEdBQUcsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7QUFZMUQ7SUF1RUkseUJBQ3lDLFVBQW1DLEVBQzdDLEtBQXVDO1FBRDdCLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBQzdDLFVBQUssR0FBTCxLQUFLLENBQWtDO1FBeEV0RSxpRUFBaUU7UUFHakUsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUlYLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFJakIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFJbkIsY0FBUyxHQUFrQixJQUFJLENBQUM7UUFLaEMsU0FBSSxHQUF3QixHQUFHLENBQUM7UUFJaEMsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUtuQixXQUFNLEdBQWUsU0FBUyxDQUFDO1FBSy9CLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFJbEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUtsQixhQUFRLEdBQUcsS0FB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QUM7WUFDUCxRQUFRLEVBQUUsb0JBQW9CO1lBQzlCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO1lBQy9DLHFpQ0FBa0M7WUFFbEMsU0FBUyxFQUFFLENBQUMsYUFBYSxDQUFDO1lBQzFCLElBQUksRUFBRTtnQkFDRixvQkFBb0IsRUFBRSxPQUFPO2FBQ2hDOztTQUNKLENBQUM7UUF5RU8sV0FBQSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDbEIsV0FBQSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7T0F6RVosZUFBZSxDQTRLM0I7SUFBRCxzQkFBQztDQUFBLEFBNUtELElBNEtDO1NBNUtZLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtzZXROYXRpdmVGb2N1c2VkLCB0dWlEZWZhdWx0UHJvcH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIE1PREVfUFJPVklERVIsXG4gICAgc2l6ZUJpZ2dlcixcbiAgICBUVUlfTU9ERSxcbiAgICBUdWlCcmlnaHRuZXNzLFxuICAgIFR1aVNpemVMLFxuICAgIFR1aVNpemVTLFxuICAgIFR1aVNpemVYUyxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUdWlTdGF0dXNUfSBmcm9tICdAdGFpZ2EtdWkva2l0L3R5cGVzJztcbmltcG9ydCB7c3RyaW5nSGFzaFRvSHNsfSBmcm9tICdAdGFpZ2EtdWkva2l0L3V0aWxzL2Zvcm1hdCc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgY29uc3QgQUxMT1dFRF9TUEFDRV9SRUdFWFAgPSBuZXcgUmVnRXhwKGAsfFtcXFxcc11gKTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktdGFnLCBhW3R1aVRhZ10nLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90YWcudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdGFnLnN0eWxlLmxlc3MnXSxcbiAgICBwcm92aWRlcnM6IFtNT0RFX1BST1ZJREVSXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoJC5kYXRhLW1vZGUuYXR0ciknOiAnbW9kZSQnLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVRhZ0NvbXBvbmVudCB7XG4gICAgLy8gVE9ETzogUG9zc2libHkgaW1wbGVtZW50IHN0YW5kYXJkIGZvY3VzIG1lY2hhbmlzbXMgYW5kIG91dGxpbmVcbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgdmFsdWUgPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBlZGl0YWJsZSA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGFsbG93U3BhY2VzID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtYXhMZW5ndGg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS10dWktaG9zdC1zaXplJylcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHNpemU6IFR1aVNpemVTIHwgVHVpU2l6ZUwgPSAnbSc7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc2hvd0xvYWRlciA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS10dWktaG9zdC1zdGF0dXMnKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc3RhdHVzOiBUdWlTdGF0dXNUID0gJ2RlZmF1bHQnO1xuXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9ob3ZlcmFibGUnKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaG92ZXJhYmxlID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgcmVtb3ZhYmxlID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX2Rpc2FibGVkJylcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX2F1dG9jb2xvcicpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBhdXRvQ29sb3IgPSBmYWxzZTtcblxuICAgIC8vIFRPRE86IFJlbW92ZSBudWxsIGluIDMuMFxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBsZWZ0Q29udGVudDogUG9seW1vcnBoZXVzQ29udGVudCB8IG51bGwgPSBudWxsO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgZWRpdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9lZGl0aW5nJylcbiAgICBlZGl0aW5nID0gZmFsc2U7XG5cbiAgICBlZGl0ZWRUZXh0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0Jywge3JlYWQ6IEVsZW1lbnRSZWZ9KVxuICAgIHNldCBpbnB1dChpbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pikge1xuICAgICAgICBpZiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHNldE5hdGl2ZUZvY3VzZWQoaW5wdXQubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KFRVSV9NT0RFKSByZWFkb25seSBtb2RlJDogT2JzZXJ2YWJsZTxUdWlCcmlnaHRuZXNzIHwgbnVsbD4sXG4gICAgKSB7fVxuXG4gICAgZ2V0IGJhY2tncm91bmRDb2xvcigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0b0NvbG9yID8gc3RyaW5nSGFzaFRvSHNsKHRoaXMudmFsdWUpIDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgY2FuUmVtb3ZlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yZW1vdmFibGUgJiYgIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMuc2hvd0xvYWRlcjtcbiAgICB9XG5cbiAgICBnZXQgZGlzcGxheVRleHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWRpdGVkVGV4dCA9PT0gbnVsbCA/IHRoaXMudmFsdWUgOiB0aGlzLmVkaXRlZFRleHQ7XG4gICAgfVxuXG4gICAgZ2V0IGxvYWRlclNpemUoKTogVHVpU2l6ZVhTIHtcbiAgICAgICAgcmV0dXJuIHNpemVCaWdnZXIodGhpcy5zaXplKSA/ICdzJyA6ICd4cyc7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5faGFzLWljb24nKVxuICAgIGdldCBoYXNJY29uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaG93TG9hZGVyIHx8IHRoaXMucmVtb3ZhYmxlO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZW50ZXInLCBbJyRldmVudCddKVxuICAgIGVkaXQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGlmICghdGhpcy5jYW5FZGl0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmVkaXRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmVkaXRlZFRleHQgPSB0aGlzLnZhbHVlO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZGVsZXRlJywgWyckZXZlbnQnXSlcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmJhY2tzcGFjZScsIFsnJGV2ZW50J10pXG4gICAgcmVtb3ZlKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBpZiAoIXRoaXMuY2FuUmVtb3ZlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5lZGl0ZWQuZW1pdCgnJyk7XG4gICAgfVxuXG4gICAgb25JbnB1dCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IG5ld1RhZ3MgPSB0aGlzLmFsbG93U3BhY2VzXG4gICAgICAgICAgICA/IHZhbHVlLnNwbGl0KCcsJylcbiAgICAgICAgICAgIDogdmFsdWUuc3BsaXQoQUxMT1dFRF9TUEFDRV9SRUdFWFApO1xuXG4gICAgICAgIGlmIChuZXdUYWdzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIHRoaXMuc2F2ZShuZXdUYWdzLnRvU3RyaW5nKCkpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmVkaXRlZFRleHQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgc3dpdGNoIChldmVudC5rZXkudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICAgICAgY2FzZSAnZW50ZXInOlxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zYXZlKHRoaXMuZWRpdGVkVGV4dCB8fCAnJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdlc2NhcGUnOlxuICAgICAgICAgICAgY2FzZSAnZXNjJzpcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcEVkaXRpbmcoKTtcbiAgICAgICAgICAgICAgICBzZXROYXRpdmVGb2N1c2VkKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkJsdXIoKSB7XG4gICAgICAgIGlmICh0aGlzLmVkaXRlZFRleHQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuc2F2ZSh0aGlzLmVkaXRlZFRleHQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgY2FuRWRpdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWRpdGFibGUgJiYgIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMuc2hvd0xvYWRlcjtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0b3BFZGl0aW5nKCkge1xuICAgICAgICB0aGlzLmVkaXRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5lZGl0ZWRUZXh0ID0gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNhdmUodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnN0b3BFZGl0aW5nKCk7XG4gICAgICAgIHRoaXMuZWRpdGVkLmVtaXQodmFsdWUudHJpbSgpKTtcbiAgICB9XG59XG4iXX0=