@taiga-ui/kit 3.0.0-rc.0 → 3.0.0-rc.1

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 (585) hide show
  1. package/bundles/taiga-ui-kit-components-accordion.umd.js +5 -17
  2. package/bundles/taiga-ui-kit-components-accordion.umd.js.map +1 -1
  3. package/bundles/taiga-ui-kit-components-action.umd.js +3 -9
  4. package/bundles/taiga-ui-kit-components-action.umd.js.map +1 -1
  5. package/bundles/taiga-ui-kit-components-arrow.umd.js +1 -1
  6. package/bundles/taiga-ui-kit-components-arrow.umd.js.map +1 -1
  7. package/bundles/taiga-ui-kit-components-avatar.umd.js +3 -3
  8. package/bundles/taiga-ui-kit-components-avatar.umd.js.map +1 -1
  9. package/bundles/taiga-ui-kit-components-badge.umd.js +3 -3
  10. package/bundles/taiga-ui-kit-components-badge.umd.js.map +1 -1
  11. package/bundles/taiga-ui-kit-components-badged-content.umd.js +3 -6
  12. package/bundles/taiga-ui-kit-components-badged-content.umd.js.map +1 -1
  13. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.js +1 -1
  14. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.js.map +1 -1
  15. package/bundles/taiga-ui-kit-components-calendar-month.umd.js +0 -1
  16. package/bundles/taiga-ui-kit-components-calendar-month.umd.js.map +1 -1
  17. package/bundles/taiga-ui-kit-components-calendar-range.umd.js +12 -8
  18. package/bundles/taiga-ui-kit-components-calendar-range.umd.js.map +1 -1
  19. package/bundles/taiga-ui-kit-components-carousel.umd.js +4 -5
  20. package/bundles/taiga-ui-kit-components-carousel.umd.js.map +1 -1
  21. package/bundles/taiga-ui-kit-components-checkbox-block.umd.js +7 -10
  22. package/bundles/taiga-ui-kit-components-checkbox-block.umd.js.map +1 -1
  23. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js +5 -9
  24. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js.map +1 -1
  25. package/bundles/taiga-ui-kit-components-checkbox.umd.js +5 -9
  26. package/bundles/taiga-ui-kit-components-checkbox.umd.js.map +1 -1
  27. package/bundles/taiga-ui-kit-components-combo-box.umd.js +21 -41
  28. package/bundles/taiga-ui-kit-components-combo-box.umd.js.map +1 -1
  29. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js +5 -26
  30. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js.map +1 -1
  31. package/bundles/taiga-ui-kit-components-files.umd.js +1 -2
  32. package/bundles/taiga-ui-kit-components-files.umd.js.map +1 -1
  33. package/bundles/taiga-ui-kit-components-filter.umd.js +1 -1
  34. package/bundles/taiga-ui-kit-components-filter.umd.js.map +1 -1
  35. package/bundles/taiga-ui-kit-components-input-copy.umd.js +21 -36
  36. package/bundles/taiga-ui-kit-components-input-copy.umd.js.map +1 -1
  37. package/bundles/taiga-ui-kit-components-input-count.umd.js +12 -35
  38. package/bundles/taiga-ui-kit-components-input-count.umd.js.map +1 -1
  39. package/bundles/taiga-ui-kit-components-input-date-range.umd.js +19 -42
  40. package/bundles/taiga-ui-kit-components-input-date-range.umd.js.map +1 -1
  41. package/bundles/taiga-ui-kit-components-input-date-time.umd.js +18 -42
  42. package/bundles/taiga-ui-kit-components-input-date-time.umd.js.map +1 -1
  43. package/bundles/taiga-ui-kit-components-input-date.umd.js +17 -41
  44. package/bundles/taiga-ui-kit-components-input-date.umd.js.map +1 -1
  45. package/bundles/taiga-ui-kit-components-input-files.umd.js +4 -17
  46. package/bundles/taiga-ui-kit-components-input-files.umd.js.map +1 -1
  47. package/bundles/taiga-ui-kit-components-input-inline.umd.js +2 -8
  48. package/bundles/taiga-ui-kit-components-input-inline.umd.js.map +1 -1
  49. package/bundles/taiga-ui-kit-components-input-month-range.umd.js +19 -37
  50. package/bundles/taiga-ui-kit-components-input-month-range.umd.js.map +1 -1
  51. package/bundles/taiga-ui-kit-components-input-month.umd.js +19 -37
  52. package/bundles/taiga-ui-kit-components-input-month.umd.js.map +1 -1
  53. package/bundles/taiga-ui-kit-components-input-number.umd.js +14 -37
  54. package/bundles/taiga-ui-kit-components-input-number.umd.js.map +1 -1
  55. package/bundles/taiga-ui-kit-components-input-password.umd.js +29 -56
  56. package/bundles/taiga-ui-kit-components-input-password.umd.js.map +1 -1
  57. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js +38 -51
  58. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js.map +1 -1
  59. package/bundles/taiga-ui-kit-components-input-phone.umd.js +30 -57
  60. package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
  61. package/bundles/taiga-ui-kit-components-input-range.umd.js +17 -13
  62. package/bundles/taiga-ui-kit-components-input-range.umd.js.map +1 -1
  63. package/bundles/taiga-ui-kit-components-input-slider.umd.js +14 -12
  64. package/bundles/taiga-ui-kit-components-input-slider.umd.js.map +1 -1
  65. package/bundles/taiga-ui-kit-components-input-tag.umd.js +33 -50
  66. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  67. package/bundles/taiga-ui-kit-components-input-time.umd.js +8 -15
  68. package/bundles/taiga-ui-kit-components-input-time.umd.js.map +1 -1
  69. package/bundles/taiga-ui-kit-components-input.umd.js +16 -33
  70. package/bundles/taiga-ui-kit-components-input.umd.js.map +1 -1
  71. package/bundles/taiga-ui-kit-components-line-clamp.umd.js +108 -18
  72. package/bundles/taiga-ui-kit-components-line-clamp.umd.js.map +1 -1
  73. package/bundles/taiga-ui-kit-components-marker-icon.umd.js +1 -1
  74. package/bundles/taiga-ui-kit-components-marker-icon.umd.js.map +1 -1
  75. package/bundles/taiga-ui-kit-components-multi-select-option.umd.js +3 -3
  76. package/bundles/taiga-ui-kit-components-multi-select-option.umd.js.map +1 -1
  77. package/bundles/taiga-ui-kit-components-multi-select.umd.js +34 -69
  78. package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
  79. package/bundles/taiga-ui-kit-components-pagination.umd.js +10 -23
  80. package/bundles/taiga-ui-kit-components-pagination.umd.js.map +1 -1
  81. package/bundles/taiga-ui-kit-components-pdf-viewer.umd.js +2 -15
  82. package/bundles/taiga-ui-kit-components-pdf-viewer.umd.js.map +1 -1
  83. package/bundles/taiga-ui-kit-components-progress.umd.js +5 -15
  84. package/bundles/taiga-ui-kit-components-progress.umd.js.map +1 -1
  85. package/bundles/taiga-ui-kit-components-radio-block.umd.js +7 -10
  86. package/bundles/taiga-ui-kit-components-radio-block.umd.js.map +1 -1
  87. package/bundles/taiga-ui-kit-components-radio-labeled.umd.js +5 -9
  88. package/bundles/taiga-ui-kit-components-radio-labeled.umd.js.map +1 -1
  89. package/bundles/taiga-ui-kit-components-radio-list.umd.js +5 -9
  90. package/bundles/taiga-ui-kit-components-radio-list.umd.js.map +1 -1
  91. package/bundles/taiga-ui-kit-components-radio.umd.js +5 -10
  92. package/bundles/taiga-ui-kit-components-radio.umd.js.map +1 -1
  93. package/bundles/taiga-ui-kit-components-range.umd.js +40 -86
  94. package/bundles/taiga-ui-kit-components-range.umd.js.map +1 -1
  95. package/bundles/taiga-ui-kit-components-rating.umd.js +4 -8
  96. package/bundles/taiga-ui-kit-components-rating.umd.js.map +1 -1
  97. package/bundles/taiga-ui-kit-components-select-option.umd.js +5 -5
  98. package/bundles/taiga-ui-kit-components-select-option.umd.js.map +1 -1
  99. package/bundles/taiga-ui-kit-components-select.umd.js +20 -40
  100. package/bundles/taiga-ui-kit-components-select.umd.js.map +1 -1
  101. package/bundles/taiga-ui-kit-components-slider.umd.js +40 -38
  102. package/bundles/taiga-ui-kit-components-slider.umd.js.map +1 -1
  103. package/bundles/taiga-ui-kit-components-stepper.umd.js +9 -7
  104. package/bundles/taiga-ui-kit-components-stepper.umd.js.map +1 -1
  105. package/bundles/taiga-ui-kit-components-tabs.umd.js +40 -40
  106. package/bundles/taiga-ui-kit-components-tabs.umd.js.map +1 -1
  107. package/bundles/taiga-ui-kit-components-tag.umd.js +6 -17
  108. package/bundles/taiga-ui-kit-components-tag.umd.js.map +1 -1
  109. package/bundles/taiga-ui-kit-components-text-area.umd.js +18 -31
  110. package/bundles/taiga-ui-kit-components-text-area.umd.js.map +1 -1
  111. package/bundles/taiga-ui-kit-components-toggle.umd.js +5 -9
  112. package/bundles/taiga-ui-kit-components-toggle.umd.js.map +1 -1
  113. package/bundles/taiga-ui-kit-components-tree.umd.js +2 -8
  114. package/bundles/taiga-ui-kit-components-tree.umd.js.map +1 -1
  115. package/bundles/taiga-ui-kit-constants.umd.js +334 -3
  116. package/bundles/taiga-ui-kit-constants.umd.js.map +1 -1
  117. package/bundles/{taiga-ui-kit-directives-dropdown-context.umd.js → taiga-ui-kit-directives-data-list-dropdown-manager.umd.js} +117 -141
  118. package/bundles/taiga-ui-kit-directives-data-list-dropdown-manager.umd.js.map +1 -0
  119. package/bundles/taiga-ui-kit-directives-highlight.umd.js +0 -1
  120. package/bundles/taiga-ui-kit-directives-highlight.umd.js.map +1 -1
  121. package/bundles/taiga-ui-kit-directives-lazy-loading.umd.js +2 -2
  122. package/bundles/taiga-ui-kit-directives-lazy-loading.umd.js.map +1 -1
  123. package/bundles/taiga-ui-kit-directives-present.umd.js +2 -2
  124. package/bundles/taiga-ui-kit-directives-present.umd.js.map +1 -1
  125. package/bundles/taiga-ui-kit-directives-project-class.umd.js +0 -3
  126. package/bundles/taiga-ui-kit-directives-project-class.umd.js.map +1 -1
  127. package/bundles/taiga-ui-kit-directives.umd.js +6 -18
  128. package/bundles/taiga-ui-kit-directives.umd.js.map +1 -1
  129. package/bundles/taiga-ui-kit-internal-primitive-calendar-range.umd.js +4 -4
  130. package/bundles/taiga-ui-kit-internal-primitive-calendar-range.umd.js.map +1 -1
  131. package/bundles/taiga-ui-kit-pipes-field-error.umd.js +0 -2
  132. package/bundles/taiga-ui-kit-pipes-field-error.umd.js.map +1 -1
  133. package/bundles/taiga-ui-kit-pipes-filter-by-input.umd.js +3 -3
  134. package/bundles/taiga-ui-kit-pipes-filter-by-input.umd.js.map +1 -1
  135. package/bundles/taiga-ui-kit-providers.umd.js +11 -42
  136. package/bundles/taiga-ui-kit-providers.umd.js.map +1 -1
  137. package/bundles/taiga-ui-kit-tokens.umd.js +17 -12
  138. package/bundles/taiga-ui-kit-tokens.umd.js.map +1 -1
  139. package/bundles/taiga-ui-kit-utils-files.umd.js +3 -15
  140. package/bundles/taiga-ui-kit-utils-files.umd.js.map +1 -1
  141. package/bundles/taiga-ui-kit-utils-format.umd.js +1 -5
  142. package/bundles/taiga-ui-kit-utils-format.umd.js.map +1 -1
  143. package/bundles/taiga-ui-kit-utils-mask.umd.js +3 -9
  144. package/bundles/taiga-ui-kit-utils-mask.umd.js.map +1 -1
  145. package/bundles/taiga-ui-kit-utils-math.umd.js +1 -1
  146. package/bundles/taiga-ui-kit-utils-math.umd.js.map +1 -1
  147. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.js +1 -5
  148. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.js.map +1 -1
  149. package/bundles/taiga-ui-kit-utils.umd.js +4 -10
  150. package/bundles/taiga-ui-kit-utils.umd.js.map +1 -1
  151. package/components/badge/badge.component.d.ts +2 -2
  152. package/components/badged-content/badged-content.component.d.ts +2 -2
  153. package/components/combo-box/index.d.ts +0 -1
  154. package/components/filter/filter.component.d.ts +1 -1
  155. package/components/input/index.d.ts +0 -1
  156. package/components/input-copy/index.d.ts +0 -1
  157. package/components/input-copy/input-copy.component.d.ts +4 -4
  158. package/components/input-date/index.d.ts +0 -1
  159. package/components/input-date-range/index.d.ts +0 -1
  160. package/components/input-date-time/index.d.ts +0 -1
  161. package/components/input-month/index.d.ts +0 -1
  162. package/components/input-month-range/index.d.ts +0 -1
  163. package/components/input-password/input-password.component.d.ts +2 -2
  164. package/components/input-password/input-password.module.d.ts +2 -3
  165. package/components/input-phone/index.d.ts +0 -1
  166. package/components/input-phone/input-phone.component.d.ts +2 -2
  167. package/components/input-phone-international/utils/extract-value-from-event.d.ts +1 -5
  168. package/components/input-range/input-range.component.d.ts +1 -0
  169. package/components/input-slider/input-slider.component.d.ts +1 -0
  170. package/components/input-tag/input-tag-options.d.ts +4 -1
  171. package/components/input-tag/input-tag.component.d.ts +3 -5
  172. package/components/line-clamp/index.d.ts +1 -0
  173. package/components/line-clamp/line-clamp-box.component.d.ts +7 -0
  174. package/components/line-clamp/line-clamp-position.directive.d.ts +9 -0
  175. package/components/line-clamp/line-clamp.module.d.ts +7 -5
  176. package/components/multi-select/multi-select-group/multi-select-group.directive.d.ts +0 -3
  177. package/components/pagination/pagination.component.d.ts +0 -1
  178. package/components/progress/progress-segmented/progress-segmented.component.d.ts +0 -2
  179. package/components/range/range.component.d.ts +7 -23
  180. package/components/select/index.d.ts +0 -1
  181. package/components/slider/helpers/slider-key-steps.directive.d.ts +1 -3
  182. package/components/slider/slider.component.d.ts +5 -3
  183. package/components/stepper/step/step.component.d.ts +2 -2
  184. package/components/tabs/tab/tab.providers.d.ts +1 -4
  185. package/components/tabs/tabs-with-more/tabs-with-more.component.d.ts +2 -1
  186. package/components/tabs/tabs-with-more/tabs-with-more.providers.d.ts +3 -4
  187. package/components/tag/tag.component.d.ts +1 -3
  188. package/components/text-area/index.d.ts +0 -1
  189. package/components/tree/components/tree-item/tree-item.providers.d.ts +0 -1
  190. package/directives/data-list-dropdown-manager/data-list-dropdown-manager.directive.d.ts +15 -0
  191. package/directives/data-list-dropdown-manager/data-list-dropdown-manager.module.d.ts +7 -0
  192. package/directives/data-list-dropdown-manager/index.d.ts +2 -0
  193. package/directives/data-list-dropdown-manager/package.json +10 -0
  194. package/directives/data-list-dropdown-manager/taiga-ui-kit-directives-data-list-dropdown-manager.d.ts +5 -0
  195. package/directives/index.d.ts +1 -3
  196. package/esm2015/components/accordion/accordion-item/accordion-item.component.js +5 -17
  197. package/esm2015/components/accordion/accordion.component.js +5 -5
  198. package/esm2015/components/action/action.component.js +6 -12
  199. package/esm2015/components/arrow/arrow.component.js +3 -3
  200. package/esm2015/components/avatar/avatar.component.js +6 -6
  201. package/esm2015/components/badge/badge.component.js +6 -6
  202. package/esm2015/components/badged-content/badged-content.component.js +4 -7
  203. package/esm2015/components/breadcrumbs/breadcrumbs.component.js +2 -2
  204. package/esm2015/components/calendar-month/calendar-month.component.js +1 -2
  205. package/esm2015/components/calendar-range/calendar-range.component.js +12 -11
  206. package/esm2015/components/carousel/carousel-scroll.directive.js +3 -3
  207. package/esm2015/components/carousel/carousel.component.js +4 -5
  208. package/esm2015/components/carousel/carousel.directive.js +3 -3
  209. package/esm2015/components/checkbox/checkbox.component.js +8 -12
  210. package/esm2015/components/checkbox-block/checkbox-block.component.js +10 -13
  211. package/esm2015/components/checkbox-labeled/checkbox-labeled.component.js +8 -12
  212. package/esm2015/components/combo-box/combo-box.component.js +20 -8
  213. package/esm2015/components/combo-box/combo-box.directive.js +5 -15
  214. package/esm2015/components/combo-box/index.js +1 -2
  215. package/esm2015/components/data-list-wrapper/data-list-group-wrapper.component.js +5 -15
  216. package/esm2015/components/data-list-wrapper/data-list-wrapper.component.js +5 -15
  217. package/esm2015/components/data-list-wrapper/data-list-wrapper.js +3 -4
  218. package/esm2015/components/files/file/file.component.js +3 -4
  219. package/esm2015/components/filter/filter.component.js +2 -2
  220. package/esm2015/components/input/index.js +1 -2
  221. package/esm2015/components/input/input.component.js +18 -7
  222. package/esm2015/components/input/input.directive.js +5 -15
  223. package/esm2015/components/input-copy/index.js +1 -2
  224. package/esm2015/components/input-copy/input-copy.component.js +18 -10
  225. package/esm2015/components/input-copy/input-copy.directive.js +5 -15
  226. package/esm2015/components/input-count/input-count.component.js +14 -27
  227. package/esm2015/components/input-count/input-count.directive.js +5 -15
  228. package/esm2015/components/input-date/index.js +1 -2
  229. package/esm2015/components/input-date/input-date.component.js +15 -9
  230. package/esm2015/components/input-date/input-date.directive.js +5 -15
  231. package/esm2015/components/input-date-range/index.js +1 -2
  232. package/esm2015/components/input-date-range/input-date-range.component.js +18 -11
  233. package/esm2015/components/input-date-range/input-date-range.directive.js +5 -15
  234. package/esm2015/components/input-date-time/index.js +1 -2
  235. package/esm2015/components/input-date-time/input-date-time.component.js +16 -10
  236. package/esm2015/components/input-date-time/input-date-time.directive.js +5 -15
  237. package/esm2015/components/input-files/input-files.component.js +8 -21
  238. package/esm2015/components/input-inline/input-inline.component.js +5 -11
  239. package/esm2015/components/input-month/index.js +1 -2
  240. package/esm2015/components/input-month/input-month.component.js +17 -8
  241. package/esm2015/components/input-month/input-month.directive.js +5 -17
  242. package/esm2015/components/input-month-range/index.js +1 -2
  243. package/esm2015/components/input-month-range/input-month-range.component.js +17 -8
  244. package/esm2015/components/input-month-range/input-month-range.directive.js +5 -17
  245. package/esm2015/components/input-number/input-number.component.js +16 -29
  246. package/esm2015/components/input-number/input-number.directive.js +5 -15
  247. package/esm2015/components/input-password/input-password.component.js +18 -32
  248. package/esm2015/components/input-password/input-password.directive.js +5 -15
  249. package/esm2015/components/input-password/input-password.module.js +1 -5
  250. package/esm2015/components/input-phone/index.js +1 -2
  251. package/esm2015/components/input-phone/input-phone.component.js +28 -14
  252. package/esm2015/components/input-phone/input-phone.directive.js +5 -15
  253. package/esm2015/components/input-phone-international/input-phone-international.component.js +16 -22
  254. package/esm2015/components/input-phone-international/utils/extract-value-from-event.js +5 -11
  255. package/esm2015/components/input-range/input-range.component.js +20 -16
  256. package/esm2015/components/input-slider/input-slider.component.js +13 -15
  257. package/esm2015/components/input-tag/input-tag-options.js +8 -1
  258. package/esm2015/components/input-tag/input-tag.component.js +24 -54
  259. package/esm2015/components/input-time/input-time.component.js +11 -18
  260. package/esm2015/components/line-clamp/index.js +2 -1
  261. package/esm2015/components/line-clamp/line-clamp-box.component.js +32 -0
  262. package/esm2015/components/line-clamp/line-clamp-position.directive.js +26 -0
  263. package/esm2015/components/line-clamp/line-clamp.component.js +22 -9
  264. package/esm2015/components/line-clamp/line-clamp.module.js +30 -6
  265. package/esm2015/components/marker-icon/marker-icon.component.js +2 -2
  266. package/esm2015/components/multi-select/multi-select-group/multi-select-group.component.js +11 -21
  267. package/esm2015/components/multi-select/multi-select-group/multi-select-group.directive.js +17 -28
  268. package/esm2015/components/multi-select/multi-select.component.js +15 -30
  269. package/esm2015/components/multi-select-option/multi-select-option.component.js +6 -6
  270. package/esm2015/components/pagination/pagination.component.js +13 -25
  271. package/esm2015/components/pdf-viewer/pdf-viewer.module.js +4 -17
  272. package/esm2015/components/progress/progress-bar/progress-color-segments.directive.js +4 -4
  273. package/esm2015/components/progress/progress-circle/progress-circle.component.js +2 -2
  274. package/esm2015/components/progress/progress-segmented/progress-segmented.component.js +3 -11
  275. package/esm2015/components/radio/radio.component.js +8 -13
  276. package/esm2015/components/radio-block/radio-block.component.js +10 -13
  277. package/esm2015/components/radio-labeled/radio-labeled.component.js +8 -12
  278. package/esm2015/components/radio-list/radio-list.component.js +8 -12
  279. package/esm2015/components/range/range-change.directive.js +10 -9
  280. package/esm2015/components/range/range.component.js +27 -79
  281. package/esm2015/components/rating/rating.component.js +7 -11
  282. package/esm2015/components/select/index.js +1 -2
  283. package/esm2015/components/select/select.component.js +19 -7
  284. package/esm2015/components/select/select.directive.js +5 -15
  285. package/esm2015/components/select-option/select-option.component.js +7 -7
  286. package/esm2015/components/slider/helpers/slider-key-steps.directive.js +14 -22
  287. package/esm2015/components/slider/helpers/slider-readonly.directive.js +5 -6
  288. package/esm2015/components/slider/slider.component.js +21 -10
  289. package/esm2015/components/stepper/step/step.component.js +5 -5
  290. package/esm2015/components/stepper/stepper.component.js +7 -5
  291. package/esm2015/components/tabs/tab/tab.providers.js +10 -10
  292. package/esm2015/components/tabs/tabs/tabs.component.js +1 -2
  293. package/esm2015/components/tabs/tabs-with-more/tabs-with-more.component.js +18 -17
  294. package/esm2015/components/tabs/tabs-with-more/tabs-with-more.providers.js +9 -11
  295. package/esm2015/components/tag/tag.component.js +10 -20
  296. package/esm2015/components/text-area/index.js +1 -2
  297. package/esm2015/components/text-area/text-area.component.js +19 -8
  298. package/esm2015/components/text-area/text-area.directive.js +5 -15
  299. package/esm2015/components/toggle/toggle.component.js +8 -12
  300. package/esm2015/components/tree/components/tree-item/tree-item.providers.js +2 -6
  301. package/esm2015/components/tree/directives/tree-controller.directive.js +3 -3
  302. package/esm2015/components/tree/misc/tree.service.js +1 -2
  303. package/esm2015/constants/max-day-range-length-mapper.js +5 -4
  304. package/esm2015/directives/data-list-dropdown-manager/data-list-dropdown-manager.directive.js +100 -0
  305. package/esm2015/directives/data-list-dropdown-manager/data-list-dropdown-manager.module.js +16 -0
  306. package/esm2015/directives/data-list-dropdown-manager/index.js +3 -0
  307. package/esm2015/directives/data-list-dropdown-manager/taiga-ui-kit-directives-data-list-dropdown-manager.js +5 -0
  308. package/esm2015/directives/highlight/highlight.directive.js +1 -2
  309. package/esm2015/directives/index.js +2 -4
  310. package/esm2015/directives/lazy-loading/lazy-loading.directive.js +2 -2
  311. package/esm2015/directives/lazy-loading/lazy-loading.service.js +3 -3
  312. package/esm2015/directives/present/present.directive.js +4 -4
  313. package/esm2015/directives/project-class/project-class.directive.js +1 -4
  314. package/esm2015/interfaces/index.js +1 -2
  315. package/esm2015/internal/primitive-calendar-range/primitive-calendar-range.component.js +7 -7
  316. package/esm2015/pipes/field-error/field-error-content-pipe.js +1 -2
  317. package/esm2015/pipes/field-error/field-error-pipe.js +1 -2
  318. package/esm2015/pipes/filter-by-input/filter-by-input.base.js +5 -5
  319. package/esm2015/providers/month-formatter.provider.js +8 -13
  320. package/esm2015/providers/specific-dropdown-controllers.js +6 -29
  321. package/esm2015/tokens/calendar-date-stream.js +15 -0
  322. package/esm2015/tokens/index.js +2 -3
  323. package/esm2015/utils/files/format-size.js +4 -9
  324. package/esm2015/utils/files/get-accept-array.js +2 -7
  325. package/esm2015/utils/format/string-hash-to-hsl.js +2 -5
  326. package/esm2015/utils/index.js +1 -2
  327. package/esm2015/utils/mask/create-auto-corrected-date-pipe.js +3 -8
  328. package/esm2015/utils/mask/create-auto-corrected-date-time-pipe.js +3 -3
  329. package/esm2015/utils/math/key-steps.js +3 -3
  330. package/esm2015/utils/miscellaneous/get-precision.js +2 -5
  331. package/fesm2015/taiga-ui-kit-components-accordion.js +7 -19
  332. package/fesm2015/taiga-ui-kit-components-accordion.js.map +1 -1
  333. package/fesm2015/taiga-ui-kit-components-action.js +5 -11
  334. package/fesm2015/taiga-ui-kit-components-action.js.map +1 -1
  335. package/fesm2015/taiga-ui-kit-components-arrow.js +2 -2
  336. package/fesm2015/taiga-ui-kit-components-arrow.js.map +1 -1
  337. package/fesm2015/taiga-ui-kit-components-avatar.js +5 -5
  338. package/fesm2015/taiga-ui-kit-components-avatar.js.map +1 -1
  339. package/fesm2015/taiga-ui-kit-components-badge.js +4 -4
  340. package/fesm2015/taiga-ui-kit-components-badge.js.map +1 -1
  341. package/fesm2015/taiga-ui-kit-components-badged-content.js +3 -6
  342. package/fesm2015/taiga-ui-kit-components-badged-content.js.map +1 -1
  343. package/fesm2015/taiga-ui-kit-components-breadcrumbs.js +1 -1
  344. package/fesm2015/taiga-ui-kit-components-breadcrumbs.js.map +1 -1
  345. package/fesm2015/taiga-ui-kit-components-calendar-month.js +0 -1
  346. package/fesm2015/taiga-ui-kit-components-calendar-month.js.map +1 -1
  347. package/fesm2015/taiga-ui-kit-components-calendar-range.js +12 -11
  348. package/fesm2015/taiga-ui-kit-components-calendar-range.js.map +1 -1
  349. package/fesm2015/taiga-ui-kit-components-carousel.js +5 -6
  350. package/fesm2015/taiga-ui-kit-components-carousel.js.map +1 -1
  351. package/fesm2015/taiga-ui-kit-components-checkbox-block.js +9 -12
  352. package/fesm2015/taiga-ui-kit-components-checkbox-block.js.map +1 -1
  353. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js +7 -11
  354. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js.map +1 -1
  355. package/fesm2015/taiga-ui-kit-components-checkbox.js +7 -11
  356. package/fesm2015/taiga-ui-kit-components-checkbox.js.map +1 -1
  357. package/fesm2015/taiga-ui-kit-components-combo-box.js +22 -41
  358. package/fesm2015/taiga-ui-kit-components-combo-box.js.map +1 -1
  359. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js +7 -28
  360. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  361. package/fesm2015/taiga-ui-kit-components-files.js +2 -3
  362. package/fesm2015/taiga-ui-kit-components-files.js.map +1 -1
  363. package/fesm2015/taiga-ui-kit-components-filter.js +1 -1
  364. package/fesm2015/taiga-ui-kit-components-filter.js.map +1 -1
  365. package/fesm2015/taiga-ui-kit-components-input-copy.js +22 -36
  366. package/fesm2015/taiga-ui-kit-components-input-copy.js.map +1 -1
  367. package/fesm2015/taiga-ui-kit-components-input-count.js +15 -38
  368. package/fesm2015/taiga-ui-kit-components-input-count.js.map +1 -1
  369. package/fesm2015/taiga-ui-kit-components-input-date-range.js +20 -44
  370. package/fesm2015/taiga-ui-kit-components-input-date-range.js.map +1 -1
  371. package/fesm2015/taiga-ui-kit-components-input-date-time.js +19 -44
  372. package/fesm2015/taiga-ui-kit-components-input-date-time.js.map +1 -1
  373. package/fesm2015/taiga-ui-kit-components-input-date.js +18 -43
  374. package/fesm2015/taiga-ui-kit-components-input-date.js.map +1 -1
  375. package/fesm2015/taiga-ui-kit-components-input-files.js +7 -20
  376. package/fesm2015/taiga-ui-kit-components-input-files.js.map +1 -1
  377. package/fesm2015/taiga-ui-kit-components-input-inline.js +4 -10
  378. package/fesm2015/taiga-ui-kit-components-input-inline.js.map +1 -1
  379. package/fesm2015/taiga-ui-kit-components-input-month-range.js +20 -37
  380. package/fesm2015/taiga-ui-kit-components-input-month-range.js.map +1 -1
  381. package/fesm2015/taiga-ui-kit-components-input-month.js +20 -37
  382. package/fesm2015/taiga-ui-kit-components-input-month.js.map +1 -1
  383. package/fesm2015/taiga-ui-kit-components-input-number.js +17 -40
  384. package/fesm2015/taiga-ui-kit-components-input-number.js.map +1 -1
  385. package/fesm2015/taiga-ui-kit-components-input-password.js +20 -47
  386. package/fesm2015/taiga-ui-kit-components-input-password.js.map +1 -1
  387. package/fesm2015/taiga-ui-kit-components-input-phone-international.js +18 -30
  388. package/fesm2015/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  389. package/fesm2015/taiga-ui-kit-components-input-phone.js +31 -57
  390. package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
  391. package/fesm2015/taiga-ui-kit-components-input-range.js +19 -15
  392. package/fesm2015/taiga-ui-kit-components-input-range.js.map +1 -1
  393. package/fesm2015/taiga-ui-kit-components-input-slider.js +12 -14
  394. package/fesm2015/taiga-ui-kit-components-input-slider.js.map +1 -1
  395. package/fesm2015/taiga-ui-kit-components-input-tag.js +33 -55
  396. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  397. package/fesm2015/taiga-ui-kit-components-input-time.js +10 -17
  398. package/fesm2015/taiga-ui-kit-components-input-time.js.map +1 -1
  399. package/fesm2015/taiga-ui-kit-components-input.js +20 -36
  400. package/fesm2015/taiga-ui-kit-components-input.js.map +1 -1
  401. package/fesm2015/taiga-ui-kit-components-line-clamp.js +96 -14
  402. package/fesm2015/taiga-ui-kit-components-line-clamp.js.map +1 -1
  403. package/fesm2015/taiga-ui-kit-components-marker-icon.js +1 -1
  404. package/fesm2015/taiga-ui-kit-components-marker-icon.js.map +1 -1
  405. package/fesm2015/taiga-ui-kit-components-multi-select-option.js +5 -5
  406. package/fesm2015/taiga-ui-kit-components-multi-select-option.js.map +1 -1
  407. package/fesm2015/taiga-ui-kit-components-multi-select.js +37 -73
  408. package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
  409. package/fesm2015/taiga-ui-kit-components-pagination.js +13 -25
  410. package/fesm2015/taiga-ui-kit-components-pagination.js.map +1 -1
  411. package/fesm2015/taiga-ui-kit-components-pdf-viewer.js +3 -16
  412. package/fesm2015/taiga-ui-kit-components-pdf-viewer.js.map +1 -1
  413. package/fesm2015/taiga-ui-kit-components-progress.js +7 -15
  414. package/fesm2015/taiga-ui-kit-components-progress.js.map +1 -1
  415. package/fesm2015/taiga-ui-kit-components-radio-block.js +9 -12
  416. package/fesm2015/taiga-ui-kit-components-radio-block.js.map +1 -1
  417. package/fesm2015/taiga-ui-kit-components-radio-labeled.js +7 -11
  418. package/fesm2015/taiga-ui-kit-components-radio-labeled.js.map +1 -1
  419. package/fesm2015/taiga-ui-kit-components-radio-list.js +7 -11
  420. package/fesm2015/taiga-ui-kit-components-radio-list.js.map +1 -1
  421. package/fesm2015/taiga-ui-kit-components-radio.js +7 -12
  422. package/fesm2015/taiga-ui-kit-components-radio.js.map +1 -1
  423. package/fesm2015/taiga-ui-kit-components-range.js +38 -86
  424. package/fesm2015/taiga-ui-kit-components-range.js.map +1 -1
  425. package/fesm2015/taiga-ui-kit-components-rating.js +6 -10
  426. package/fesm2015/taiga-ui-kit-components-rating.js.map +1 -1
  427. package/fesm2015/taiga-ui-kit-components-select-option.js +6 -6
  428. package/fesm2015/taiga-ui-kit-components-select-option.js.map +1 -1
  429. package/fesm2015/taiga-ui-kit-components-select.js +21 -40
  430. package/fesm2015/taiga-ui-kit-components-select.js.map +1 -1
  431. package/fesm2015/taiga-ui-kit-components-slider.js +34 -32
  432. package/fesm2015/taiga-ui-kit-components-slider.js.map +1 -1
  433. package/fesm2015/taiga-ui-kit-components-stepper.js +10 -8
  434. package/fesm2015/taiga-ui-kit-components-stepper.js.map +1 -1
  435. package/fesm2015/taiga-ui-kit-components-tabs.js +33 -35
  436. package/fesm2015/taiga-ui-kit-components-tabs.js.map +1 -1
  437. package/fesm2015/taiga-ui-kit-components-tag.js +10 -20
  438. package/fesm2015/taiga-ui-kit-components-tag.js.map +1 -1
  439. package/fesm2015/taiga-ui-kit-components-text-area.js +22 -34
  440. package/fesm2015/taiga-ui-kit-components-text-area.js.map +1 -1
  441. package/fesm2015/taiga-ui-kit-components-toggle.js +7 -11
  442. package/fesm2015/taiga-ui-kit-components-toggle.js.map +1 -1
  443. package/fesm2015/taiga-ui-kit-components-tree.js +4 -9
  444. package/fesm2015/taiga-ui-kit-components-tree.js.map +1 -1
  445. package/fesm2015/taiga-ui-kit-constants.js +4 -3
  446. package/fesm2015/taiga-ui-kit-constants.js.map +1 -1
  447. package/fesm2015/taiga-ui-kit-directives-data-list-dropdown-manager.js +120 -0
  448. package/fesm2015/taiga-ui-kit-directives-data-list-dropdown-manager.js.map +1 -0
  449. package/fesm2015/taiga-ui-kit-directives-highlight.js +0 -1
  450. package/fesm2015/taiga-ui-kit-directives-highlight.js.map +1 -1
  451. package/fesm2015/taiga-ui-kit-directives-lazy-loading.js +3 -3
  452. package/fesm2015/taiga-ui-kit-directives-lazy-loading.js.map +1 -1
  453. package/fesm2015/taiga-ui-kit-directives-present.js +3 -3
  454. package/fesm2015/taiga-ui-kit-directives-present.js.map +1 -1
  455. package/fesm2015/taiga-ui-kit-directives-project-class.js +0 -3
  456. package/fesm2015/taiga-ui-kit-directives-project-class.js.map +1 -1
  457. package/fesm2015/taiga-ui-kit-directives.js +1 -3
  458. package/fesm2015/taiga-ui-kit-directives.js.map +1 -1
  459. package/fesm2015/taiga-ui-kit-internal-primitive-calendar-range.js +6 -6
  460. package/fesm2015/taiga-ui-kit-internal-primitive-calendar-range.js.map +1 -1
  461. package/fesm2015/taiga-ui-kit-pipes-field-error.js +0 -2
  462. package/fesm2015/taiga-ui-kit-pipes-field-error.js.map +1 -1
  463. package/fesm2015/taiga-ui-kit-pipes-filter-by-input.js +4 -4
  464. package/fesm2015/taiga-ui-kit-pipes-filter-by-input.js.map +1 -1
  465. package/fesm2015/taiga-ui-kit-providers.js +13 -40
  466. package/fesm2015/taiga-ui-kit-providers.js.map +1 -1
  467. package/fesm2015/taiga-ui-kit-tokens.js +15 -8
  468. package/fesm2015/taiga-ui-kit-tokens.js.map +1 -1
  469. package/fesm2015/taiga-ui-kit-utils-files.js +5 -15
  470. package/fesm2015/taiga-ui-kit-utils-files.js.map +1 -1
  471. package/fesm2015/taiga-ui-kit-utils-format.js +2 -5
  472. package/fesm2015/taiga-ui-kit-utils-format.js.map +1 -1
  473. package/fesm2015/taiga-ui-kit-utils-mask.js +4 -9
  474. package/fesm2015/taiga-ui-kit-utils-mask.js.map +1 -1
  475. package/fesm2015/taiga-ui-kit-utils-math.js +2 -2
  476. package/fesm2015/taiga-ui-kit-utils-math.js.map +1 -1
  477. package/fesm2015/taiga-ui-kit-utils-miscellaneous.js +2 -5
  478. package/fesm2015/taiga-ui-kit-utils-miscellaneous.js.map +1 -1
  479. package/fesm2015/taiga-ui-kit-utils.js +0 -1
  480. package/fesm2015/taiga-ui-kit-utils.js.map +1 -1
  481. package/interfaces/index.d.ts +0 -1
  482. package/package.json +5 -5
  483. package/providers/month-formatter.provider.d.ts +0 -7
  484. package/providers/specific-dropdown-controllers.d.ts +1 -6
  485. package/tokens/calendar-date-stream.d.ts +5 -0
  486. package/tokens/index.d.ts +1 -2
  487. package/tokens/validation-errors.d.ts +1 -1
  488. package/utils/files/format-size.d.ts +1 -5
  489. package/utils/files/get-accept-array.d.ts +1 -5
  490. package/utils/format/string-hash-to-hsl.d.ts +1 -3
  491. package/utils/index.d.ts +0 -1
  492. package/utils/mask/create-auto-corrected-date-pipe.d.ts +1 -5
  493. package/utils/miscellaneous/get-precision.d.ts +1 -3
  494. package/abstract/index.d.ts +0 -1
  495. package/abstract/package.json +0 -10
  496. package/abstract/slider/slider.d.ts +0 -69
  497. package/abstract/taiga-ui-kit-abstract.d.ts +0 -5
  498. package/bundles/taiga-ui-kit-abstract.umd.js +0 -651
  499. package/bundles/taiga-ui-kit-abstract.umd.js.map +0 -1
  500. package/bundles/taiga-ui-kit-directives-dropdown-context.umd.js.map +0 -1
  501. package/bundles/taiga-ui-kit-directives-dropdown-hover.umd.js +0 -107
  502. package/bundles/taiga-ui-kit-directives-dropdown-hover.umd.js.map +0 -1
  503. package/bundles/taiga-ui-kit-directives-dropdown-selection.umd.js +0 -643
  504. package/bundles/taiga-ui-kit-directives-dropdown-selection.umd.js.map +0 -1
  505. package/bundles/taiga-ui-kit-utils-dom.umd.js +0 -124
  506. package/bundles/taiga-ui-kit-utils-dom.umd.js.map +0 -1
  507. package/components/combo-box/combo-box.providers.d.ts +0 -1
  508. package/components/input/input.providers.d.ts +0 -1
  509. package/components/input-copy/input-copy.providers.d.ts +0 -2
  510. package/components/input-date/input-date.providers.d.ts +0 -1
  511. package/components/input-date-range/input-date-range.providers.d.ts +0 -1
  512. package/components/input-date-time/input-date-time.providers.d.ts +0 -1
  513. package/components/input-month/input-month.providers.d.ts +0 -2
  514. package/components/input-month-range/input-month-range.providers.d.ts +0 -2
  515. package/components/input-phone/input-phone.providers.d.ts +0 -5
  516. package/components/select/select.providers.d.ts +0 -1
  517. package/components/text-area/text-area.providers.d.ts +0 -2
  518. package/directives/dropdown-context/dropdown-context.directive.d.ts +0 -30
  519. package/directives/dropdown-context/dropdown-context.module.d.ts +0 -8
  520. package/directives/dropdown-context/index.d.ts +0 -2
  521. package/directives/dropdown-context/package.json +0 -10
  522. package/directives/dropdown-context/taiga-ui-kit-directives-dropdown-context.d.ts +0 -5
  523. package/directives/dropdown-hover/dropdown-hover.directive.d.ts +0 -11
  524. package/directives/dropdown-hover/dropdown-hover.module.d.ts +0 -7
  525. package/directives/dropdown-hover/index.d.ts +0 -2
  526. package/directives/dropdown-hover/package.json +0 -10
  527. package/directives/dropdown-hover/taiga-ui-kit-directives-dropdown-hover.d.ts +0 -5
  528. package/directives/dropdown-selection/dropdown-selection.directive.d.ts +0 -46
  529. package/directives/dropdown-selection/dropdown-selection.module.d.ts +0 -8
  530. package/directives/dropdown-selection/index.d.ts +0 -2
  531. package/directives/dropdown-selection/package.json +0 -10
  532. package/directives/dropdown-selection/taiga-ui-kit-directives-dropdown-selection.d.ts +0 -5
  533. package/esm2015/abstract/index.js +0 -2
  534. package/esm2015/abstract/slider/slider.js +0 -264
  535. package/esm2015/abstract/taiga-ui-kit-abstract.js +0 -5
  536. package/esm2015/components/combo-box/combo-box.providers.js +0 -26
  537. package/esm2015/components/input/input.providers.js +0 -22
  538. package/esm2015/components/input-copy/input-copy.providers.js +0 -16
  539. package/esm2015/components/input-date/input-date.providers.js +0 -27
  540. package/esm2015/components/input-date-range/input-date-range.providers.js +0 -27
  541. package/esm2015/components/input-date-time/input-date-time.providers.js +0 -27
  542. package/esm2015/components/input-month/input-month.providers.js +0 -19
  543. package/esm2015/components/input-month-range/input-month-range.providers.js +0 -19
  544. package/esm2015/components/input-phone/input-phone.providers.js +0 -35
  545. package/esm2015/components/select/select.providers.js +0 -26
  546. package/esm2015/components/text-area/text-area.providers.js +0 -18
  547. package/esm2015/directives/dropdown-context/dropdown-context.directive.js +0 -141
  548. package/esm2015/directives/dropdown-context/dropdown-context.module.js +0 -18
  549. package/esm2015/directives/dropdown-context/index.js +0 -3
  550. package/esm2015/directives/dropdown-context/taiga-ui-kit-directives-dropdown-context.js +0 -5
  551. package/esm2015/directives/dropdown-hover/dropdown-hover.directive.js +0 -56
  552. package/esm2015/directives/dropdown-hover/dropdown-hover.module.js +0 -16
  553. package/esm2015/directives/dropdown-hover/index.js +0 -3
  554. package/esm2015/directives/dropdown-hover/taiga-ui-kit-directives-dropdown-hover.js +0 -5
  555. package/esm2015/directives/dropdown-selection/dropdown-selection.directive.js +0 -252
  556. package/esm2015/directives/dropdown-selection/dropdown-selection.module.js +0 -18
  557. package/esm2015/directives/dropdown-selection/index.js +0 -3
  558. package/esm2015/directives/dropdown-selection/taiga-ui-kit-directives-dropdown-selection.js +0 -5
  559. package/esm2015/interfaces/bread-crumbs-item.js +0 -2
  560. package/esm2015/tokens/calendar-data-stream.js +0 -3
  561. package/esm2015/tokens/tag-status.js +0 -6
  562. package/esm2015/utils/dom/get-word-range.js +0 -53
  563. package/esm2015/utils/dom/index.js +0 -4
  564. package/esm2015/utils/dom/scroll-to-element.js +0 -23
  565. package/esm2015/utils/dom/set-range-offset.js +0 -29
  566. package/esm2015/utils/dom/taiga-ui-kit-utils-dom.js +0 -5
  567. package/fesm2015/taiga-ui-kit-abstract.js +0 -271
  568. package/fesm2015/taiga-ui-kit-abstract.js.map +0 -1
  569. package/fesm2015/taiga-ui-kit-directives-dropdown-context.js +0 -162
  570. package/fesm2015/taiga-ui-kit-directives-dropdown-context.js.map +0 -1
  571. package/fesm2015/taiga-ui-kit-directives-dropdown-hover.js +0 -76
  572. package/fesm2015/taiga-ui-kit-directives-dropdown-hover.js.map +0 -1
  573. package/fesm2015/taiga-ui-kit-directives-dropdown-selection.js +0 -273
  574. package/fesm2015/taiga-ui-kit-directives-dropdown-selection.js.map +0 -1
  575. package/fesm2015/taiga-ui-kit-utils-dom.js +0 -111
  576. package/fesm2015/taiga-ui-kit-utils-dom.js.map +0 -1
  577. package/interfaces/bread-crumbs-item.d.ts +0 -6
  578. package/tokens/calendar-data-stream.d.ts +0 -4
  579. package/tokens/tag-status.d.ts +0 -3
  580. package/utils/dom/get-word-range.d.ts +0 -9
  581. package/utils/dom/index.d.ts +0 -3
  582. package/utils/dom/package.json +0 -10
  583. package/utils/dom/scroll-to-element.d.ts +0 -5
  584. package/utils/dom/set-range-offset.d.ts +0 -6
  585. package/utils/dom/taiga-ui-kit-utils-dom.d.ts +0 -5
@@ -1,42 +1,20 @@
1
1
  import { __decorate } from "tslib";
2
- import { DOCUMENT } from '@angular/common';
3
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, forwardRef, HostBinding, HostListener, Inject, Input, Optional, Self, ViewChildren, } from '@angular/core';
2
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostBinding, HostListener, Inject, Input, Optional, Self, ViewChildren, } from '@angular/core';
4
3
  import { NgControl } from '@angular/forms';
5
- import { clamp, EMPTY_QUERY, nonNegativeFiniteAssertion, quantize, round, TUI_FOCUSABLE_ITEM_ACCESSOR, tuiDefaultProp, tuiIsNativeFocusedIn, tuiPure, } from '@taiga-ui/cdk';
6
- import { AbstractTuiSlider, SLIDER_KEYBOARD_STEP } from '@taiga-ui/kit/abstract';
4
+ import { AbstractTuiControl, EMPTY_QUERY, tuiClamp, tuiDefaultProp, tuiIsNativeFocusedIn, tuiPure, tuiQuantize, } from '@taiga-ui/cdk';
7
5
  import { TuiSliderComponent } from '@taiga-ui/kit/components/slider';
8
- import { TUI_FLOATING_PRECISION } from '@taiga-ui/kit/constants';
9
- import { TUI_FROM_TO_TEXTS } from '@taiga-ui/kit/tokens';
10
6
  import { tuiKeyStepValueToPercentage, tuiPercentageToKeyStepValue, } from '@taiga-ui/kit/utils';
11
7
  import * as i0 from "@angular/core";
12
8
  import * as i1 from "@taiga-ui/kit/components/slider";
13
9
  import * as i2 from "@angular/forms";
14
10
  import * as i3 from "@taiga-ui/cdk";
15
- import * as i4 from "rxjs";
16
- // @dynamic
17
- /**
18
- * `AbstractTuiSlider` includes all legacy code (it can be deleted in v3.0)
19
- * TODO replace `extends AbstractTuiSlider<[number, number]>` by `extends AbstractTuiControl<[number, number]> implements TuiWithOptionalMinMax<number>, TuiFocusableElementAccessor`
20
- */
21
- export class TuiRangeComponent extends AbstractTuiSlider {
22
- constructor(control, changeDetectorRef, documentRef, elementRef, fromToTexts$) {
23
- super(control, changeDetectorRef, documentRef, fromToTexts$);
11
+ export class TuiRangeComponent extends AbstractTuiControl {
12
+ constructor(control, changeDetectorRef, elementRef) {
13
+ super(control, changeDetectorRef);
24
14
  this.elementRef = elementRef;
25
15
  this.min = 0;
26
- /**
27
- * TODO: make `100` as default value (to be like native sliders) in v3.0
28
- */
29
- this.max = Infinity;
30
- /**
31
- * TODO: think about replacing this props by `step` (to be like native slider).
32
- * It can be done after removing backward compatibility code inside {@link computePureKeySteps} in v3.0
33
- */
34
- this.steps = 0;
35
- /**
36
- * TODO: think about replacing this props by `step` (to be like native slider).
37
- * It can be done after removing backward compatibility code inside {@link computePureKeySteps} in v3.0
38
- * */
39
- this.quantum = 0;
16
+ this.max = 100;
17
+ this.step = 1;
40
18
  this.size = `m`;
41
19
  this.segments = 1;
42
20
  this.keySteps = null;
@@ -45,21 +23,22 @@ export class TuiRangeComponent extends AbstractTuiSlider {
45
23
  }
46
24
  get nativeFocusableElement() {
47
25
  const [sliderLeftRef, sliderRightRef] = this.slidersRefs;
48
- if (this.computedDisabled || !sliderLeftRef || !sliderRightRef) {
26
+ if (this.computedDisabled ||
27
+ !this.focusable ||
28
+ !sliderLeftRef ||
29
+ !sliderRightRef) {
49
30
  return null;
50
31
  }
51
- return this.isLeftFocusable
52
- ? sliderLeftRef.nativeElement
53
- : sliderRightRef.nativeElement;
32
+ const isLeftThumbLocked = this.right === 100;
33
+ return isLeftThumbLocked
34
+ ? sliderRightRef.nativeElement
35
+ : sliderLeftRef.nativeElement;
54
36
  }
55
37
  get focused() {
56
38
  return tuiIsNativeFocusedIn(this.elementRef.nativeElement);
57
39
  }
58
40
  get fractionStep() {
59
- if (this.steps) {
60
- return 1 / this.steps;
61
- }
62
- return this.quantum ? this.quantum / (this.max - this.min) : SLIDER_KEYBOARD_STEP;
41
+ return this.step / (this.max - this.min);
63
42
  }
64
43
  get computedKeySteps() {
65
44
  return this.computePureKeySteps(this.keySteps, this.min, this.max);
@@ -94,30 +73,21 @@ export class TuiRangeComponent extends AbstractTuiSlider {
94
73
  }
95
74
  }
96
75
  processValue(value, right) {
97
- const guardedValue = this.valueGuard(value);
98
76
  if (right) {
99
- this.updateEnd(guardedValue);
77
+ this.updateEnd(value);
100
78
  }
101
79
  else {
102
- this.updateStart(guardedValue);
80
+ this.updateStart(value);
103
81
  }
104
82
  this.lastActiveThumb = right ? `right` : `left`;
105
83
  }
106
- fractionGuard(fraction) {
107
- return clamp(quantize(fraction, this.fractionStep), 0, 1);
108
- }
109
84
  getValueFromFraction(fraction) {
110
- const percentage = this.fractionGuard(fraction) * 100;
111
- return tuiPercentageToKeyStepValue(percentage, this.computedKeySteps);
85
+ const guardedFraction = tuiClamp(tuiQuantize(fraction, this.fractionStep), 0, 1);
86
+ return tuiPercentageToKeyStepValue(guardedFraction * 100, this.computedKeySteps);
112
87
  }
113
88
  getPercentageFromValue(value) {
114
89
  return tuiKeyStepValueToPercentage(value, this.computedKeySteps);
115
90
  }
116
- valueGuard(value) {
117
- return clamp(this.quantum
118
- ? round(Math.round(value / this.quantum) * this.quantum, TUI_FLOATING_PRECISION)
119
- : value, this.min, this.max);
120
- }
121
91
  getFallbackValue() {
122
92
  return [0, 0];
123
93
  }
@@ -134,13 +104,8 @@ export class TuiRangeComponent extends AbstractTuiSlider {
134
104
  this.updateValue([this.value[0], Math.max(value, this.value[0])]);
135
105
  }
136
106
  }
137
- TuiRangeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiRangeComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token: DOCUMENT }, { token: ElementRef }, { token: TUI_FROM_TO_TEXTS }], target: i0.ɵɵFactoryTarget.Component });
138
- TuiRangeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiRangeComponent, selector: "tui-range", inputs: { min: "min", max: "max", steps: "steps", quantum: "quantum", size: "size", segments: "segments", keySteps: "keySteps" }, host: { listeners: { "focusin": "onFocused(true)", "focusout": "onFocused(false)", "keydown.arrowUp.prevent": "changeByStep(1,$event.target)", "keydown.arrowRight.prevent": "changeByStep(1,$event.target)", "keydown.arrowLeft.prevent": "changeByStep(-1,$event.target)", "keydown.arrowDown.prevent": "changeByStep(-1,$event.target)" }, properties: { "attr.tabindex": "-1", "attr.aria-disabled": "computedDisabled", "attr.data-size": "this.size", "style.--left.%": "this.left", "style.--right.%": "this.right" } }, providers: [
139
- {
140
- provide: TUI_FOCUSABLE_ITEM_ACCESSOR,
141
- useExisting: forwardRef(() => TuiRangeComponent),
142
- },
143
- ], viewQueries: [{ propertyName: "slidersRefs", predicate: TuiSliderComponent, descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"track\"\n [style.--segment-width.%]=\"segmentWidthRatio * 100\"\n [style.--bg-size-ratio]=\"1 - segmentWidthRatio\"\n>\n <input\n tuiSlider\n readonly\n type=\"range\"\n step=\"any\"\n automation-id=\"tui-range__left\"\n class=\"thumb\"\n [min]=\"min\"\n [max]=\"max\"\n [ngModel]=\"value[0]\"\n [size]=\"size\"\n [keySteps]=\"computedKeySteps\"\n [tuiFocusable]=\"focusable\"\n [attr.disabled]=\"computedDisabled || null\"\n />\n <input\n tuiSlider\n readonly\n type=\"range\"\n step=\"any\"\n automation-id=\"tui-range__right\"\n class=\"thumb\"\n [min]=\"min\"\n [max]=\"max\"\n [ngModel]=\"value[1]\"\n [size]=\"size\"\n [keySteps]=\"computedKeySteps\"\n [tuiFocusable]=\"focusable\"\n [attr.disabled]=\"computedDisabled || null\"\n />\n</div>\n", styles: [":host{position:relative;display:block;height:.125rem;border-radius:var(--tui-radius-m);background:var(--tui-base-03);cursor:pointer;outline:none;margin:.4375rem 0;touch-action:pan-x}:host:active{cursor:ew-resize}:host:after{content:\"\";position:absolute;top:-.4375rem;bottom:-.4375rem;width:100%}:host._disabled{opacity:var(--tui-disabled-opacity);cursor:auto}:host[data-size=s] .track{position:relative;margin:0 .25rem;height:100%}:host[data-size=s] .track:before{content:\"\";position:absolute;top:0;left:var(--left);right:var(--right);height:100%;background:var(--tui-primary);margin:0 -.25rem}:host[data-size=s] .track:after{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";left:.125rem;right:.375rem;background-image:repeating-linear-gradient(to right,var(--tui-base-07) 0 .25rem,transparent 0 calc(var(--segment-width) / var(--bg-size-ratio)));background-position-x:right;background-repeat:no-repeat;background-size:calc(100% * var(--bg-size-ratio))}:host[data-size=m] .track{position:relative;margin:0 .5rem;height:100%}:host[data-size=m] .track:before{content:\"\";position:absolute;top:0;left:var(--left);right:var(--right);height:100%;background:var(--tui-primary);margin:0 -.5rem}:host[data-size=m] .track:after{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";left:.375rem;right:.625rem;background-image:repeating-linear-gradient(to right,var(--tui-base-07) 0 .25rem,transparent 0 calc(var(--segment-width) / var(--bg-size-ratio)));background-position-x:right;background-repeat:no-repeat;background-size:calc(100% * var(--bg-size-ratio))}.thumb{pointer-events:none;position:absolute;top:.0625rem;left:0;right:0;z-index:1;transform:translateY(-50%)}.thumb::-webkit-slider-thumb{pointer-events:all}.thumb::-moz-range-thumb{pointer-events:all}input[type=range].thumb::-webkit-slider-runnable-track{background:transparent}input[type=range].thumb::-moz-range-track{background:transparent}input[type=range].thumb::-moz-range-progress{background:transparent}input[type=range].thumb::-ms-track{background:transparent}input[type=range].thumb::-ms-fill-lower{background:transparent}.thumb:last-of-type::-webkit-slider-thumb{transform:translate(50%)}.thumb:first-of-type::-webkit-slider-thumb{transform:translate(-50%)}.thumb:last-of-type::-moz-range-thumb{transform:translate(50%)}.thumb:first-of-type::-moz-range-thumb{transform:translate(-50%)}:host._disabled .thumb{opacity:1}\n"], components: [{ type: i1.TuiSliderComponent, selector: "input[type=range][tuiSlider]", inputs: ["size", "segments"] }], directives: [{ type: i1.TuiSliderReadonlyDirective, selector: "input[tuiSlider][readonly]", inputs: ["readonly"] }, { type: i1.TuiSliderKeyStepsDirective, selector: "input[tuiSlider][keySteps]", inputs: ["keySteps"], outputs: ["keyStepsInput"] }, { type: i2.RangeValueAccessor, selector: "input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]" }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.TuiFocusableDirective, selector: "[tuiFocusable]", inputs: ["tuiFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
107
+ TuiRangeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiRangeComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token: ElementRef }], target: i0.ɵɵFactoryTarget.Component });
108
+ TuiRangeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiRangeComponent, selector: "tui-range", inputs: { min: "min", max: "max", step: "step", size: "size", segments: "segments", keySteps: "keySteps" }, host: { listeners: { "focusin": "onFocused(true)", "focusout": "onFocused(false)", "keydown.arrowUp.prevent": "changeByStep(1,$event.target)", "keydown.arrowRight.prevent": "changeByStep(1,$event.target)", "keydown.arrowLeft.prevent": "changeByStep(-1,$event.target)", "keydown.arrowDown.prevent": "changeByStep(-1,$event.target)" }, properties: { "attr.tabindex": "-1", "attr.aria-disabled": "computedDisabled", "attr.data-size": "this.size", "style.--left.%": "this.left", "style.--right.%": "this.right" } }, viewQueries: [{ propertyName: "slidersRefs", predicate: TuiSliderComponent, descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"t-track\"\n [style.--segment-width.%]=\"segmentWidthRatio * 100\"\n [style.--bg-size-ratio]=\"1 - segmentWidthRatio\"\n>\n <input\n tuiSlider\n readonly\n type=\"range\"\n step=\"any\"\n automation-id=\"tui-range__left\"\n class=\"t-thumb\"\n [min]=\"min\"\n [max]=\"max\"\n [ngModel]=\"value[0]\"\n [size]=\"size\"\n [keySteps]=\"computedKeySteps\"\n [tuiFocusable]=\"focusable\"\n [attr.disabled]=\"computedDisabled || null\"\n />\n <input\n tuiSlider\n readonly\n type=\"range\"\n step=\"any\"\n automation-id=\"tui-range__right\"\n class=\"t-thumb\"\n [min]=\"min\"\n [max]=\"max\"\n [ngModel]=\"value[1]\"\n [size]=\"size\"\n [keySteps]=\"computedKeySteps\"\n [tuiFocusable]=\"focusable\"\n [attr.disabled]=\"computedDisabled || null\"\n />\n</div>\n", styles: [":host{position:relative;display:block;height:.125rem;border-radius:var(--tui-radius-m);background:var(--tui-base-03);cursor:pointer;outline:none;margin:.4375rem 0;touch-action:pan-x}:host:active{cursor:ew-resize}:host:after{content:\"\";position:absolute;top:-.4375rem;bottom:-.4375rem;width:100%}:host._disabled{opacity:var(--tui-disabled-opacity);cursor:auto}:host[data-size=s] .t-track{position:relative;margin:0 .25rem;height:100%}:host[data-size=s] .t-track:before{content:\"\";position:absolute;top:0;left:var(--left);right:var(--right);height:100%;background:var(--tui-primary);margin:0 -.25rem}:host[data-size=s] .t-track:after{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";left:.125rem;right:.375rem;background-image:repeating-linear-gradient(to right,var(--tui-base-07) 0 .25rem,transparent 0 calc(var(--segment-width) / var(--bg-size-ratio)));background-position-x:right;background-repeat:no-repeat;background-size:calc(100% * var(--bg-size-ratio))}:host[data-size=m] .t-track{position:relative;margin:0 .5rem;height:100%}:host[data-size=m] .t-track:before{content:\"\";position:absolute;top:0;left:var(--left);right:var(--right);height:100%;background:var(--tui-primary);margin:0 -.5rem}:host[data-size=m] .t-track:after{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";left:.375rem;right:.625rem;background-image:repeating-linear-gradient(to right,var(--tui-base-07) 0 .25rem,transparent 0 calc(var(--segment-width) / var(--bg-size-ratio)));background-position-x:right;background-repeat:no-repeat;background-size:calc(100% * var(--bg-size-ratio))}.t-thumb{pointer-events:none;position:absolute;top:.0625rem;left:0;right:0;z-index:1;transform:translateY(-50%)}.t-thumb::-webkit-slider-thumb{pointer-events:all}.t-thumb::-moz-range-thumb{pointer-events:all}input[type=range].t-thumb::-webkit-slider-runnable-track{background:transparent}input[type=range].t-thumb::-moz-range-track{background:transparent}input[type=range].t-thumb::-moz-range-progress{background:transparent}input[type=range].t-thumb::-ms-track{background:transparent}input[type=range].t-thumb::-ms-fill-lower{background:transparent}.t-thumb:last-of-type::-webkit-slider-thumb{transform:translate(50%)}.t-thumb:first-of-type::-webkit-slider-thumb{transform:translate(-50%)}.t-thumb:last-of-type::-moz-range-thumb{transform:translate(50%)}.t-thumb:first-of-type::-moz-range-thumb{transform:translate(-50%)}:host._disabled .t-thumb{opacity:1}\n"], components: [{ type: i1.TuiSliderComponent, selector: "input[type=range][tuiSlider]", inputs: ["size", "segments"] }], directives: [{ type: i1.TuiSliderReadonlyDirective, selector: "input[tuiSlider][readonly]", inputs: ["readonly"] }, { type: i1.TuiSliderKeyStepsDirective, selector: "input[tuiSlider][keySteps]", inputs: ["keySteps"] }, { type: i2.RangeValueAccessor, selector: "input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]" }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.TuiFocusableDirective, selector: "[tuiFocusable]", inputs: ["tuiFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
144
109
  __decorate([
145
110
  tuiDefaultProp()
146
111
  ], TuiRangeComponent.prototype, "min", void 0);
@@ -148,16 +113,13 @@ __decorate([
148
113
  tuiDefaultProp()
149
114
  ], TuiRangeComponent.prototype, "max", void 0);
150
115
  __decorate([
151
- tuiDefaultProp()
152
- ], TuiRangeComponent.prototype, "steps", void 0);
153
- __decorate([
154
- tuiDefaultProp(nonNegativeFiniteAssertion, `Quantum must be a non-negative number`)
155
- ], TuiRangeComponent.prototype, "quantum", void 0);
116
+ tuiDefaultProp(s => s > 0, `Step must be a non-negative number`)
117
+ ], TuiRangeComponent.prototype, "step", void 0);
156
118
  __decorate([
157
119
  tuiDefaultProp()
158
120
  ], TuiRangeComponent.prototype, "size", void 0);
159
121
  __decorate([
160
- tuiDefaultProp()
122
+ tuiDefaultProp(s => s > 0 && Number.isInteger(s), `Segments must be positive integer`)
161
123
  ], TuiRangeComponent.prototype, "segments", void 0);
162
124
  __decorate([
163
125
  tuiDefaultProp()
@@ -176,12 +138,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
176
138
  '[attr.tabindex]': `-1`,
177
139
  '[attr.aria-disabled]': `computedDisabled`,
178
140
  },
179
- providers: [
180
- {
181
- provide: TUI_FOCUSABLE_ITEM_ACCESSOR,
182
- useExisting: forwardRef(() => TuiRangeComponent),
183
- },
184
- ],
185
141
  }]
186
142
  }], ctorParameters: function () { return [{ type: i2.NgControl, decorators: [{
187
143
  type: Optional
@@ -193,22 +149,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
193
149
  }] }, { type: i0.ChangeDetectorRef, decorators: [{
194
150
  type: Inject,
195
151
  args: [ChangeDetectorRef]
196
- }] }, { type: Document, decorators: [{
197
- type: Inject,
198
- args: [DOCUMENT]
199
152
  }] }, { type: i0.ElementRef, decorators: [{
200
153
  type: Inject,
201
154
  args: [ElementRef]
202
- }] }, { type: i4.Observable, decorators: [{
203
- type: Inject,
204
- args: [TUI_FROM_TO_TEXTS]
205
155
  }] }]; }, propDecorators: { min: [{
206
156
  type: Input
207
157
  }], max: [{
208
158
  type: Input
209
- }], steps: [{
210
- type: Input
211
- }], quantum: [{
159
+ }], step: [{
212
160
  type: Input
213
161
  }], size: [{
214
162
  type: Input
@@ -247,4 +195,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
247
195
  type: HostListener,
248
196
  args: [`keydown.arrowDown.prevent`, [`-1`, `$event.target`]]
249
197
  }], computePureKeySteps: [] } });
250
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvcmFuZ2UvcmFuZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvcmFuZ2UvcmFuZ2UudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBRVIsSUFBSSxFQUNKLFlBQVksR0FDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUNILEtBQUssRUFDTCxXQUFXLEVBQ1gsMEJBQTBCLEVBQzFCLFFBQVEsRUFDUixLQUFLLEVBQ0wsMkJBQTJCLEVBQzNCLGNBQWMsRUFFZCxvQkFBb0IsRUFFcEIsT0FBTyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQy9FLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRXZELE9BQU8sRUFDSCwyQkFBMkIsRUFDM0IsMkJBQTJCLEdBQzlCLE1BQU0scUJBQXFCLENBQUM7Ozs7OztBQUc3QixXQUFXO0FBaUJYOzs7R0FHRztBQUNILE1BQU0sT0FBTyxpQkFDVCxT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ZUFBZSxDQUFDO2dCQW1FMUQsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTZWxmLFxuICAgIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBjbGFtcCxcbiAgICBFTVBUWV9RVUVSWSxcbiAgICBub25OZWdhdGl2ZUZpbml0ZUFzc2VydGlvbixcbiAgICBxdWFudGl6ZSxcbiAgICByb3VuZCxcbiAgICBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIHR1aUlzTmF0aXZlRm9jdXNlZEluLFxuICAgIFR1aU5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQsXG4gICAgdHVpUHVyZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1R1aVNpemVTfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge0Fic3RyYWN0VHVpU2xpZGVyLCBTTElERVJfS0VZQk9BUkRfU1RFUH0gZnJvbSAnQHRhaWdhLXVpL2tpdC9hYnN0cmFjdCc7XG5pbXBvcnQge1R1aVNsaWRlckNvbXBvbmVudH0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL3NsaWRlcic7XG5pbXBvcnQge1RVSV9GTE9BVElOR19QUkVDSVNJT059IGZyb20gJ0B0YWlnYS11aS9raXQvY29uc3RhbnRzJztcbmltcG9ydCB7VFVJX0ZST01fVE9fVEVYVFN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7VHVpS2V5U3RlcHN9IGZyb20gJ0B0YWlnYS11aS9raXQvdHlwZXMnO1xuaW1wb3J0IHtcbiAgICB0dWlLZXlTdGVwVmFsdWVUb1BlcmNlbnRhZ2UsXG4gICAgdHVpUGVyY2VudGFnZVRvS2V5U3RlcFZhbHVlLFxufSBmcm9tICdAdGFpZ2EtdWkva2l0L3V0aWxzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogYHR1aS1yYW5nZWAsXG4gICAgdGVtcGxhdGVVcmw6IGAuL3JhbmdlLnRlbXBsYXRlLmh0bWxgLFxuICAgIHN0eWxlVXJsczogW2AuL3JhbmdlLnN0eWxlLmxlc3NgXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci50YWJpbmRleF0nOiBgLTFgLFxuICAgICAgICAnW2F0dHIuYXJpYS1kaXNhYmxlZF0nOiBgY29tcHV0ZWREaXNhYmxlZGAsXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpUmFuZ2VDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuLyoqXG4gKiBgQWJzdHJhY3RUdWlTbGlkZXJgIGluY2x1ZGVzIGFsbCBsZWdhY3kgY29kZSAoaXQgY2FuIGJlIGRlbGV0ZWQgaW4gdjMuMClcbiAqIFRPRE8gcmVwbGFjZSBgZXh0ZW5kcyBBYnN0cmFjdFR1aVNsaWRlcjxbbnVtYmVyLCBudW1iZXJdPmAgYnkgYGV4dGVuZHMgQWJzdHJhY3RUdWlDb250cm9sPFtudW1iZXIsIG51bWJlcl0+IGltcGxlbWVudHMgVHVpV2l0aE9wdGlvbmFsTWluTWF4PG51bWJlcj4sIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcmBcbiAqL1xuZXhwb3J0IGNsYXNzIFR1aVJhbmdlQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aVNsaWRlcjxbbnVtYmVyLCBudW1iZXJdPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1pbiA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBUT0RPOiBtYWtlIGAxMDBgIGFzIGRlZmF1bHQgdmFsdWUgKHRvIGJlIGxpa2UgbmF0aXZlIHNsaWRlcnMpIGluIHYzLjBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWF4ID0gSW5maW5pdHk7XG5cbiAgICAvKipcbiAgICAgKiBUT0RPOiB0aGluayBhYm91dCByZXBsYWNpbmcgdGhpcyBwcm9wcyBieSBgc3RlcGAgKHRvIGJlIGxpa2UgbmF0aXZlIHNsaWRlcikuXG4gICAgICogSXQgY2FuIGJlIGRvbmUgYWZ0ZXIgcmVtb3ZpbmcgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBjb2RlIGluc2lkZSB7QGxpbmsgY29tcHV0ZVB1cmVLZXlTdGVwc30gaW4gdjMuMFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzdGVwcyA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBUT0RPOiB0aGluayBhYm91dCByZXBsYWNpbmcgdGhpcyBwcm9wcyBieSBgc3RlcGAgKHRvIGJlIGxpa2UgbmF0aXZlIHNsaWRlcikuXG4gICAgICogSXQgY2FuIGJlIGRvbmUgYWZ0ZXIgcmVtb3ZpbmcgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBjb2RlIGluc2lkZSB7QGxpbmsgY29tcHV0ZVB1cmVLZXlTdGVwc30gaW4gdjMuMFxuICAgICAqICovXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3Aobm9uTmVnYXRpdmVGaW5pdGVBc3NlcnRpb24sIGBRdWFudHVtIG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyYClcbiAgICBxdWFudHVtID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKGBhdHRyLmRhdGEtc2l6ZWApXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzaXplOiBUdWlTaXplUyA9IGBtYDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzZWdtZW50cyA9IDE7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAga2V5U3RlcHM6IFR1aUtleVN0ZXBzIHwgbnVsbCA9IG51bGw7XG5cbiAgICBAVmlld0NoaWxkcmVuKFR1aVNsaWRlckNvbXBvbmVudCwge3JlYWQ6IEVsZW1lbnRSZWZ9KVxuICAgIHNsaWRlcnNSZWZzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pj4gPSBFTVBUWV9RVUVSWTtcblxuICAgIGxhc3RBY3RpdmVUaHVtYjogJ3JpZ2h0JyB8ICdsZWZ0JyA9IGByaWdodGA7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KE5nQ29udHJvbClcbiAgICAgICAgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBkb2N1bWVudFJlZjogRG9jdW1lbnQsXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgQEluamVjdChUVUlfRlJPTV9UT19URVhUUykgZnJvbVRvVGV4dHMkOiBPYnNlcnZhYmxlPFtzdHJpbmcsIHN0cmluZ10+LFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZiwgZG9jdW1lbnRSZWYsIGZyb21Ub1RleHRzJCk7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8IG51bGwge1xuICAgICAgICBjb25zdCBbc2xpZGVyTGVmdFJlZiwgc2xpZGVyUmlnaHRSZWZdID0gdGhpcy5zbGlkZXJzUmVmcztcblxuICAgICAgICBpZiAodGhpcy5jb21wdXRlZERpc2FibGVkIHx8ICFzbGlkZXJMZWZ0UmVmIHx8ICFzbGlkZXJSaWdodFJlZikge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5pc0xlZnRGb2N1c2FibGVcbiAgICAgICAgICAgID8gc2xpZGVyTGVmdFJlZi5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgICA6IHNsaWRlclJpZ2h0UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0dWlJc05hdGl2ZUZvY3VzZWRJbih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgZ2V0IGZyYWN0aW9uU3RlcCgpOiBudW1iZXIge1xuICAgICAgICBpZiAodGhpcy5zdGVwcykge1xuICAgICAgICAgICAgcmV0dXJuIDEgLyB0aGlzLnN0ZXBzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucXVhbnR1bSA/IHRoaXMucXVhbnR1bSAvICh0aGlzLm1heCAtIHRoaXMubWluKSA6IFNMSURFUl9LRVlCT0FSRF9TVEVQO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZEtleVN0ZXBzKCk6IFR1aUtleVN0ZXBzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcHV0ZVB1cmVLZXlTdGVwcyh0aGlzLmtleVN0ZXBzLCB0aGlzLm1pbiwgdGhpcy5tYXgpO1xuICAgIH1cblxuICAgIGdldCBzZWdtZW50V2lkdGhSYXRpbygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gMSAvIHRoaXMuc2VnbWVudHM7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKGBzdHlsZS4tLWxlZnQuJWApXG4gICAgZ2V0IGxlZnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UGVyY2VudGFnZUZyb21WYWx1ZSh0aGlzLnZhbHVlWzBdKTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoYHN0eWxlLi0tcmlnaHQuJWApXG4gICAgZ2V0IHJpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAxMDAgLSB0aGlzLmdldFBlcmNlbnRhZ2VGcm9tVmFsdWUodGhpcy52YWx1ZVsxXSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcihgZm9jdXNpbmAsIFtgdHJ1ZWBdKVxuICAgIEBIb3N0TGlzdGVuZXIoYGZvY3Vzb3V0YCwgW2BmYWxzZWBdKVxuICAgIG9uRm9jdXNlZChmb2N1c2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChmb2N1c2VkKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKGBrZXlkb3duLmFycm93VXAucHJldmVudGAsIFtgMWAsIGAkZXZlbnQudGFyZ2V0YF0pXG4gICAgQEhvc3RMaXN0ZW5lcihga2V5ZG93bi5hcnJvd1JpZ2h0LnByZXZlbnRgLCBbYDFgLCBgJGV2ZW50LnRhcmdldGBdKVxuICAgIEBIb3N0TGlzdGVuZXIoYGtleWRvd24uYXJyb3dMZWZ0LnByZXZlbnRgLCBbYC0xYCwgYCRldmVudC50YXJnZXRgXSlcbiAgICBASG9zdExpc3RlbmVyKGBrZXlkb3duLmFycm93RG93bi5wcmV2ZW50YCwgW2AtMWAsIGAkZXZlbnQudGFyZ2V0YF0pXG4gICAgY2hhbmdlQnlTdGVwKGNvZWZmaWNpZW50OiBudW1iZXIsIHRhcmdldDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgW3NsaWRlckxlZnRSZWYsIHNsaWRlclJpZ2h0UmVmXSA9IHRoaXMuc2xpZGVyc1JlZnM7XG4gICAgICAgIGNvbnN0IGxlZnRUaHVtYkVsZW1lbnQgPSBzbGlkZXJMZWZ0UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHJpZ2h0VGh1bWJFbGVtZW50ID0gc2xpZGVyUmlnaHRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgICAgICBjb25zdCBpc1JpZ2h0VGh1bWIgPVxuICAgICAgICAgICAgdGFyZ2V0ID09PSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgICAgID8gdGhpcy5sYXN0QWN0aXZlVGh1bWIgPT09IGByaWdodGBcbiAgICAgICAgICAgICAgICA6IHRhcmdldCA9PT0gcmlnaHRUaHVtYkVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGFjdGl2ZVRodW1iRWxlbWVudCA9IGlzUmlnaHRUaHVtYiA/IHJpZ2h0VGh1bWJFbGVtZW50IDogbGVmdFRodW1iRWxlbWVudDtcbiAgICAgICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IGlzUmlnaHRUaHVtYiA/IHRoaXMudmFsdWVbMV0gOiB0aGlzLnZhbHVlWzBdO1xuICAgICAgICAvKiogQGJhZCBUT0RPIHRoaW5rIGFib3V0IGEgc29sdXRpb24gd2l0aG91dCB0d2ljZSBjb252ZXJzaW9uICovXG4gICAgICAgIGNvbnN0IHByZXZpb3VzRnJhY3Rpb24gPSB0aGlzLmdldFBlcmNlbnRhZ2VGcm9tVmFsdWUocHJldmlvdXNWYWx1ZSkgLyAxMDA7XG4gICAgICAgIGNvbnN0IG5ld0ZyYWN0aW9uVmFsdWUgPSBwcmV2aW91c0ZyYWN0aW9uICsgY29lZmZpY2llbnQgKiB0aGlzLmZyYWN0aW9uU3RlcDtcblxuICAgICAgICB0aGlzLnByb2Nlc3NWYWx1ZSh0aGlzLmdldFZhbHVlRnJvbUZyYWN0aW9uKG5ld0ZyYWN0aW9uVmFsdWUpLCBpc1JpZ2h0VGh1bWIpO1xuXG4gICAgICAgIGlmIChhY3RpdmVUaHVtYkVsZW1lbnQpIHtcbiAgICAgICAgICAgIGFjdGl2ZVRodW1iRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvY2Vzc1ZhbHVlKHZhbHVlOiBudW1iZXIsIHJpZ2h0OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGd1YXJkZWRWYWx1ZSA9IHRoaXMudmFsdWVHdWFyZCh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKHJpZ2h0KSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUVuZChndWFyZGVkVmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVTdGFydChndWFyZGVkVmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5sYXN0QWN0aXZlVGh1bWIgPSByaWdodCA/IGByaWdodGAgOiBgbGVmdGA7XG4gICAgfVxuXG4gICAgZnJhY3Rpb25HdWFyZChmcmFjdGlvbjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGNsYW1wKHF1YW50aXplKGZyYWN0aW9uLCB0aGlzLmZyYWN0aW9uU3RlcCksIDAsIDEpO1xuICAgIH1cblxuICAgIGdldFZhbHVlRnJvbUZyYWN0aW9uKGZyYWN0aW9uOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBwZXJjZW50YWdlID0gdGhpcy5mcmFjdGlvbkd1YXJkKGZyYWN0aW9uKSAqIDEwMDtcblxuICAgICAgICByZXR1cm4gdHVpUGVyY2VudGFnZVRvS2V5U3RlcFZhbHVlKHBlcmNlbnRhZ2UsIHRoaXMuY29tcHV0ZWRLZXlTdGVwcyk7XG4gICAgfVxuXG4gICAgZ2V0UGVyY2VudGFnZUZyb21WYWx1ZSh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHR1aUtleVN0ZXBWYWx1ZVRvUGVyY2VudGFnZSh2YWx1ZSwgdGhpcy5jb21wdXRlZEtleVN0ZXBzKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdmFsdWVHdWFyZCh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGNsYW1wKFxuICAgICAgICAgICAgdGhpcy5xdWFudHVtXG4gICAgICAgICAgICAgICAgPyByb3VuZChcbiAgICAgICAgICAgICAgICAgICAgICBNYXRoLnJvdW5kKHZhbHVlIC8gdGhpcy5xdWFudHVtKSAqIHRoaXMucXVhbnR1bSxcbiAgICAgICAgICAgICAgICAgICAgICBUVUlfRkxPQVRJTkdfUFJFQ0lTSU9OLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIDogdmFsdWUsXG4gICAgICAgICAgICB0aGlzLm1pbixcbiAgICAgICAgICAgIHRoaXMubWF4LFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRGYWxsYmFja1ZhbHVlKCk6IFtudW1iZXIsIG51bWJlcl0ge1xuICAgICAgICByZXR1cm4gWzAsIDBdO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBjb21wdXRlUHVyZUtleVN0ZXBzKFxuICAgICAgICBrZXlTdGVwczogVHVpS2V5U3RlcHMgfCBudWxsLFxuICAgICAgICBtaW46IG51bWJlcixcbiAgICAgICAgbWF4OiBudW1iZXIsXG4gICAgKTogVHVpS2V5U3RlcHMge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAga2V5U3RlcHMgfHwgW1xuICAgICAgICAgICAgICAgIFswLCBtaW5dLFxuICAgICAgICAgICAgICAgIFsxMDAsIG1heF0sXG4gICAgICAgICAgICBdXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVTdGFydCh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoW01hdGgubWluKHZhbHVlLCB0aGlzLnZhbHVlWzFdKSwgdGhpcy52YWx1ZVsxXV0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlRW5kKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShbdGhpcy52YWx1ZVswXSwgTWF0aC5tYXgodmFsdWUsIHRoaXMudmFsdWVbMF0pXSk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwidHJhY2tcIlxuICAgIFtzdHlsZS4tLXNlZ21lbnQtd2lkdGguJV09XCJzZWdtZW50V2lkdGhSYXRpbyAqIDEwMFwiXG4gICAgW3N0eWxlLi0tYmctc2l6ZS1yYXRpb109XCIxIC0gc2VnbWVudFdpZHRoUmF0aW9cIlxuPlxuICAgIDxpbnB1dFxuICAgICAgICB0dWlTbGlkZXJcbiAgICAgICAgcmVhZG9ubHlcbiAgICAgICAgdHlwZT1cInJhbmdlXCJcbiAgICAgICAgc3RlcD1cImFueVwiXG4gICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktcmFuZ2VfX2xlZnRcIlxuICAgICAgICBjbGFzcz1cInRodW1iXCJcbiAgICAgICAgW21pbl09XCJtaW5cIlxuICAgICAgICBbbWF4XT1cIm1heFwiXG4gICAgICAgIFtuZ01vZGVsXT1cInZhbHVlWzBdXCJcbiAgICAgICAgW3NpemVdPVwic2l6ZVwiXG4gICAgICAgIFtrZXlTdGVwc109XCJjb21wdXRlZEtleVN0ZXBzXCJcbiAgICAgICAgW3R1aUZvY3VzYWJsZV09XCJmb2N1c2FibGVcIlxuICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJjb21wdXRlZERpc2FibGVkIHx8IG51bGxcIlxuICAgIC8+XG4gICAgPGlucHV0XG4gICAgICAgIHR1aVNsaWRlclxuICAgICAgICByZWFkb25seVxuICAgICAgICB0eXBlPVwicmFuZ2VcIlxuICAgICAgICBzdGVwPVwiYW55XCJcbiAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1yYW5nZV9fcmlnaHRcIlxuICAgICAgICBjbGFzcz1cInRodW1iXCJcbiAgICAgICAgW21pbl09XCJtaW5cIlxuICAgICAgICBbbWF4XT1cIm1heFwiXG4gICAgICAgIFtuZ01vZGVsXT1cInZhbHVlWzFdXCJcbiAgICAgICAgW3NpemVdPVwic2l6ZVwiXG4gICAgICAgIFtrZXlTdGVwc109XCJjb21wdXRlZEtleVN0ZXBzXCJcbiAgICAgICAgW3R1aUZvY3VzYWJsZV09XCJmb2N1c2FibGVcIlxuICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJjb21wdXRlZERpc2FibGVkIHx8IG51bGxcIlxuICAgIC8+XG48L2Rpdj5cbiJdfQ==
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvcmFuZ2UvcmFuZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvcmFuZ2UvcmFuZ2UudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUVSLElBQUksRUFDSixZQUFZLEdBQ2YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsV0FBVyxFQUNYLFFBQVEsRUFDUixjQUFjLEVBRWQsb0JBQW9CLEVBRXBCLE9BQU8sRUFDUCxXQUFXLEdBQ2QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFFbkUsT0FBTyxFQUNILDJCQUEyQixFQUMzQiwyQkFBMkIsR0FDOUIsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7QUFZN0IsTUFBTSxPQUFPLGlCQUNULFNBQVEsa0JBQW9DO0lBb0M1QyxZQUlJLE9BQXlCLEVBQ0UsaUJBQW9DLEVBQzFCLFVBQW1DO1FBRXhFLEtBQUssQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUZHLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBckM1RSxRQUFHLEdBQUcsQ0FBQyxDQUFDO1FBSVIsUUFBRyxHQUFHLEdBQUcsQ0FBQztRQUlWLFNBQUksR0FBRyxDQUFDLENBQUM7UUFLVCxTQUFJLEdBQWEsR0FBRyxDQUFDO1FBT3JCLGFBQVEsR0FBRyxDQUFDLENB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QUFJLEVBQUU7d0JBQ0YsaUJBQWlCLEVBQUUsSUFBSTt3QkFDdkIsc0JBQXNCLEVBQUUsa0JBQWtCO3FCQUM3QztpQkFDSjs7MEJBdUNRLFFBQVE7OzBCQUNSLElBQUk7OzBCQUNKLE1BQU07MkJBQUMsU0FBUzs7MEJBRWhCLE1BQU07MkJBQUMsaUJBQWlCOzswQkFDeEIsTUFBTTsyQkFBQyxVQUFVOzRDQXJDdEIsR0FBRztzQkFGRixLQUFLO2dCQU1OLEdBQUc7c0JBRkYsS0FBSztnQkFNTixJQUFJO3NCQUZILEtBQUs7Z0JBT04sSUFBSTtzQkFISCxLQUFLOztzQkFDTCxXQUFXO3VCQUFDLGdCQUFnQjtnQkFTN0IsUUFBUTtzQkFMUCxLQUFLO2dCQVNOLFFBQVE7c0JBRlAsS0FBSztnQkFLTixXQUFXO3NCQURWLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDO2dCQW9EaEQsSUFBSTtzQkFEUCxXQUFXO3VCQUFDLGdCQUFnQjtnQkFNekIsS0FBSztzQkFEUixXQUFXO3VCQUFDLGlCQUFpQjtnQkFPOUIsU0FBUztzQkFGUixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQzs7c0JBQ2hDLFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsT0FBTyxDQUFDO2dCQVNuQyxZQUFZO3NCQUpYLFlBQVk7dUJBQUMseUJBQXlCLEVBQUUsQ0FBQyxHQUFHLEVBQUUsZUFBZSxDQUFDOztzQkFDOUQsWUFBWTt1QkFBQyw0QkFBNEIsRUFBRSxDQUFDLEdBQUcsRUFBRSxlQUFlLENBQUM7O3NCQUNqRSxZQUFZO3VCQUFDLDJCQUEyQixFQUFFLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQzs7c0JBQ2pFLFlBQVk7dUJBQUMsMkJBQTJCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsZUFBZSxDQUFDO2dCQWdEMUQsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTZWxmLFxuICAgIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aUNvbnRyb2wsXG4gICAgRU1QVFlfUVVFUlksXG4gICAgdHVpQ2xhbXAsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIHR1aUlzTmF0aXZlRm9jdXNlZEluLFxuICAgIFR1aU5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQsXG4gICAgdHVpUHVyZSxcbiAgICB0dWlRdWFudGl6ZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1R1aVNpemVTLCBUdWlXaXRoT3B0aW9uYWxNaW5NYXh9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7VHVpU2xpZGVyQ29tcG9uZW50fSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvc2xpZGVyJztcbmltcG9ydCB7VHVpS2V5U3RlcHN9IGZyb20gJ0B0YWlnYS11aS9raXQvdHlwZXMnO1xuaW1wb3J0IHtcbiAgICB0dWlLZXlTdGVwVmFsdWVUb1BlcmNlbnRhZ2UsXG4gICAgdHVpUGVyY2VudGFnZVRvS2V5U3RlcFZhbHVlLFxufSBmcm9tICdAdGFpZ2EtdWkva2l0L3V0aWxzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IGB0dWktcmFuZ2VgLFxuICAgIHRlbXBsYXRlVXJsOiBgLi9yYW5nZS50ZW1wbGF0ZS5odG1sYCxcbiAgICBzdHlsZVVybHM6IFtgLi9yYW5nZS5zdHlsZS5sZXNzYF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIudGFiaW5kZXhdJzogYC0xYCxcbiAgICAgICAgJ1thdHRyLmFyaWEtZGlzYWJsZWRdJzogYGNvbXB1dGVkRGlzYWJsZWRgLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVJhbmdlQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aUNvbnRyb2w8W251bWJlciwgbnVtYmVyXT5cbiAgICBpbXBsZW1lbnRzIFR1aVdpdGhPcHRpb25hbE1pbk1heDxudW1iZXI+LCBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3JcbntcbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWluID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtYXggPSAxMDA7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcChzID0+IHMgPiAwLCBgU3RlcCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlcmApXG4gICAgc3RlcCA9IDE7XG5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZyhgYXR0ci5kYXRhLXNpemVgKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc2l6ZTogVHVpU2l6ZVMgPSBgbWA7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcChcbiAgICAgICAgcyA9PiBzID4gMCAmJiBOdW1iZXIuaXNJbnRlZ2VyKHMpLFxuICAgICAgICBgU2VnbWVudHMgbXVzdCBiZSBwb3NpdGl2ZSBpbnRlZ2VyYCxcbiAgICApXG4gICAgc2VnbWVudHMgPSAxO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGtleVN0ZXBzOiBUdWlLZXlTdGVwcyB8IG51bGwgPSBudWxsO1xuXG4gICAgQFZpZXdDaGlsZHJlbihUdWlTbGlkZXJDb21wb25lbnQsIHtyZWFkOiBFbGVtZW50UmVmfSlcbiAgICBzbGlkZXJzUmVmczogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4+ID0gRU1QVFlfUVVFUlk7XG5cbiAgICBsYXN0QWN0aXZlVGh1bWI6ICdyaWdodCcgfCAnbGVmdCcgPSBgcmlnaHRgO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8IG51bGwge1xuICAgICAgICBjb25zdCBbc2xpZGVyTGVmdFJlZiwgc2xpZGVyUmlnaHRSZWZdID0gdGhpcy5zbGlkZXJzUmVmcztcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmNvbXB1dGVkRGlzYWJsZWQgfHxcbiAgICAgICAgICAgICF0aGlzLmZvY3VzYWJsZSB8fFxuICAgICAgICAgICAgIXNsaWRlckxlZnRSZWYgfHxcbiAgICAgICAgICAgICFzbGlkZXJSaWdodFJlZlxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaXNMZWZ0VGh1bWJMb2NrZWQgPSB0aGlzLnJpZ2h0ID09PSAxMDA7XG5cbiAgICAgICAgcmV0dXJuIGlzTGVmdFRodW1iTG9ja2VkXG4gICAgICAgICAgICA/IHNsaWRlclJpZ2h0UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgIDogc2xpZGVyTGVmdFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHVpSXNOYXRpdmVGb2N1c2VkSW4odGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIGdldCBmcmFjdGlvblN0ZXAoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RlcCAvICh0aGlzLm1heCAtIHRoaXMubWluKTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRLZXlTdGVwcygpOiBUdWlLZXlTdGVwcyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXB1dGVQdXJlS2V5U3RlcHModGhpcy5rZXlTdGVwcywgdGhpcy5taW4sIHRoaXMubWF4KTtcbiAgICB9XG5cbiAgICBnZXQgc2VnbWVudFdpZHRoUmF0aW8oKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIDEgLyB0aGlzLnNlZ21lbnRzO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZyhgc3R5bGUuLS1sZWZ0LiVgKVxuICAgIGdldCBsZWZ0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFBlcmNlbnRhZ2VGcm9tVmFsdWUodGhpcy52YWx1ZVswXSk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKGBzdHlsZS4tLXJpZ2h0LiVgKVxuICAgIGdldCByaWdodCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gMTAwIC0gdGhpcy5nZXRQZXJjZW50YWdlRnJvbVZhbHVlKHRoaXMudmFsdWVbMV0pO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoYGZvY3VzaW5gLCBbYHRydWVgXSlcbiAgICBASG9zdExpc3RlbmVyKGBmb2N1c291dGAsIFtgZmFsc2VgXSlcbiAgICBvbkZvY3VzZWQoZm9jdXNlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoZm9jdXNlZCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcihga2V5ZG93bi5hcnJvd1VwLnByZXZlbnRgLCBbYDFgLCBgJGV2ZW50LnRhcmdldGBdKVxuICAgIEBIb3N0TGlzdGVuZXIoYGtleWRvd24uYXJyb3dSaWdodC5wcmV2ZW50YCwgW2AxYCwgYCRldmVudC50YXJnZXRgXSlcbiAgICBASG9zdExpc3RlbmVyKGBrZXlkb3duLmFycm93TGVmdC5wcmV2ZW50YCwgW2AtMWAsIGAkZXZlbnQudGFyZ2V0YF0pXG4gICAgQEhvc3RMaXN0ZW5lcihga2V5ZG93bi5hcnJvd0Rvd24ucHJldmVudGAsIFtgLTFgLCBgJGV2ZW50LnRhcmdldGBdKVxuICAgIGNoYW5nZUJ5U3RlcChjb2VmZmljaWVudDogbnVtYmVyLCB0YXJnZXQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IFtzbGlkZXJMZWZ0UmVmLCBzbGlkZXJSaWdodFJlZl0gPSB0aGlzLnNsaWRlcnNSZWZzO1xuICAgICAgICBjb25zdCBsZWZ0VGh1bWJFbGVtZW50ID0gc2xpZGVyTGVmdFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCByaWdodFRodW1iRWxlbWVudCA9IHNsaWRlclJpZ2h0UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgY29uc3QgaXNSaWdodFRodW1iID1cbiAgICAgICAgICAgIHRhcmdldCA9PT0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgICAgICA/IHRoaXMubGFzdEFjdGl2ZVRodW1iID09PSBgcmlnaHRgXG4gICAgICAgICAgICAgICAgOiB0YXJnZXQgPT09IHJpZ2h0VGh1bWJFbGVtZW50O1xuICAgICAgICBjb25zdCBhY3RpdmVUaHVtYkVsZW1lbnQgPSBpc1JpZ2h0VGh1bWIgPyByaWdodFRodW1iRWxlbWVudCA6IGxlZnRUaHVtYkVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSBpc1JpZ2h0VGh1bWIgPyB0aGlzLnZhbHVlWzFdIDogdGhpcy52YWx1ZVswXTtcbiAgICAgICAgLyoqIEBiYWQgVE9ETyB0aGluayBhYm91dCBhIHNvbHV0aW9uIHdpdGhvdXQgdHdpY2UgY29udmVyc2lvbiAqL1xuICAgICAgICBjb25zdCBwcmV2aW91c0ZyYWN0aW9uID0gdGhpcy5nZXRQZXJjZW50YWdlRnJvbVZhbHVlKHByZXZpb3VzVmFsdWUpIC8gMTAwO1xuICAgICAgICBjb25zdCBuZXdGcmFjdGlvblZhbHVlID0gcHJldmlvdXNGcmFjdGlvbiArIGNvZWZmaWNpZW50ICogdGhpcy5mcmFjdGlvblN0ZXA7XG5cbiAgICAgICAgdGhpcy5wcm9jZXNzVmFsdWUodGhpcy5nZXRWYWx1ZUZyb21GcmFjdGlvbihuZXdGcmFjdGlvblZhbHVlKSwgaXNSaWdodFRodW1iKTtcblxuICAgICAgICBpZiAoYWN0aXZlVGh1bWJFbGVtZW50KSB7XG4gICAgICAgICAgICBhY3RpdmVUaHVtYkVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb2Nlc3NWYWx1ZSh2YWx1ZTogbnVtYmVyLCByaWdodDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAocmlnaHQpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRW5kKHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlU3RhcnQodmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5sYXN0QWN0aXZlVGh1bWIgPSByaWdodCA/IGByaWdodGAgOiBgbGVmdGA7XG4gICAgfVxuXG4gICAgZ2V0VmFsdWVGcm9tRnJhY3Rpb24oZnJhY3Rpb246IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGd1YXJkZWRGcmFjdGlvbiA9IHR1aUNsYW1wKHR1aVF1YW50aXplKGZyYWN0aW9uLCB0aGlzLmZyYWN0aW9uU3RlcCksIDAsIDEpO1xuXG4gICAgICAgIHJldHVybiB0dWlQZXJjZW50YWdlVG9LZXlTdGVwVmFsdWUoZ3VhcmRlZEZyYWN0aW9uICogMTAwLCB0aGlzLmNvbXB1dGVkS2V5U3RlcHMpO1xuICAgIH1cblxuICAgIGdldFBlcmNlbnRhZ2VGcm9tVmFsdWUodmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0dWlLZXlTdGVwVmFsdWVUb1BlcmNlbnRhZ2UodmFsdWUsIHRoaXMuY29tcHV0ZWRLZXlTdGVwcyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZhbGxiYWNrVmFsdWUoKTogW251bWJlciwgbnVtYmVyXSB7XG4gICAgICAgIHJldHVybiBbMCwgMF07XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGNvbXB1dGVQdXJlS2V5U3RlcHMoXG4gICAgICAgIGtleVN0ZXBzOiBUdWlLZXlTdGVwcyB8IG51bGwsXG4gICAgICAgIG1pbjogbnVtYmVyLFxuICAgICAgICBtYXg6IG51bWJlcixcbiAgICApOiBUdWlLZXlTdGVwcyB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBrZXlTdGVwcyB8fCBbXG4gICAgICAgICAgICAgICAgWzAsIG1pbl0sXG4gICAgICAgICAgICAgICAgWzEwMCwgbWF4XSxcbiAgICAgICAgICAgIF1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVN0YXJ0KHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShbTWF0aC5taW4odmFsdWUsIHRoaXMudmFsdWVbMV0pLCB0aGlzLnZhbHVlWzFdXSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVFbmQodmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKFt0aGlzLnZhbHVlWzBdLCBNYXRoLm1heCh2YWx1ZSwgdGhpcy52YWx1ZVswXSldKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJ0LXRyYWNrXCJcbiAgICBbc3R5bGUuLS1zZWdtZW50LXdpZHRoLiVdPVwic2VnbWVudFdpZHRoUmF0aW8gKiAxMDBcIlxuICAgIFtzdHlsZS4tLWJnLXNpemUtcmF0aW9dPVwiMSAtIHNlZ21lbnRXaWR0aFJhdGlvXCJcbj5cbiAgICA8aW5wdXRcbiAgICAgICAgdHVpU2xpZGVyXG4gICAgICAgIHJlYWRvbmx5XG4gICAgICAgIHR5cGU9XCJyYW5nZVwiXG4gICAgICAgIHN0ZXA9XCJhbnlcIlxuICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLXJhbmdlX19sZWZ0XCJcbiAgICAgICAgY2xhc3M9XCJ0LXRodW1iXCJcbiAgICAgICAgW21pbl09XCJtaW5cIlxuICAgICAgICBbbWF4XT1cIm1heFwiXG4gICAgICAgIFtuZ01vZGVsXT1cInZhbHVlWzBdXCJcbiAgICAgICAgW3NpemVdPVwic2l6ZVwiXG4gICAgICAgIFtrZXlTdGVwc109XCJjb21wdXRlZEtleVN0ZXBzXCJcbiAgICAgICAgW3R1aUZvY3VzYWJsZV09XCJmb2N1c2FibGVcIlxuICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJjb21wdXRlZERpc2FibGVkIHx8IG51bGxcIlxuICAgIC8+XG4gICAgPGlucHV0XG4gICAgICAgIHR1aVNsaWRlclxuICAgICAgICByZWFkb25seVxuICAgICAgICB0eXBlPVwicmFuZ2VcIlxuICAgICAgICBzdGVwPVwiYW55XCJcbiAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1yYW5nZV9fcmlnaHRcIlxuICAgICAgICBjbGFzcz1cInQtdGh1bWJcIlxuICAgICAgICBbbWluXT1cIm1pblwiXG4gICAgICAgIFttYXhdPVwibWF4XCJcbiAgICAgICAgW25nTW9kZWxdPVwidmFsdWVbMV1cIlxuICAgICAgICBbc2l6ZV09XCJzaXplXCJcbiAgICAgICAgW2tleVN0ZXBzXT1cImNvbXB1dGVkS2V5U3RlcHNcIlxuICAgICAgICBbdHVpRm9jdXNhYmxlXT1cImZvY3VzYWJsZVwiXG4gICAgICAgIFthdHRyLmRpc2FibGVkXT1cImNvbXB1dGVkRGlzYWJsZWQgfHwgbnVsbFwiXG4gICAgLz5cbjwvZGl2PlxuIl19
@@ -1,7 +1,7 @@
1
1
  import { __decorate } from "tslib";
2
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, HostListener, Inject, Input, Optional, Self, ViewChild, } from '@angular/core';
2
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostListener, Inject, Input, Optional, Self, ViewChild, } from '@angular/core';
3
3
  import { NgControl } from '@angular/forms';
4
- import { AbstractTuiControl, TUI_FOCUSABLE_ITEM_ACCESSOR, tuiDefaultProp, tuiIsNativeFocused, } from '@taiga-ui/cdk';
4
+ import { AbstractTuiControl, tuiAsControl, tuiAsFocusableItemAccessor, tuiDefaultProp, tuiIsNativeFocused, } from '@taiga-ui/cdk';
5
5
  import { TUI_RATING_OPTIONS } from './rating-options';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@taiga-ui/core";
@@ -45,10 +45,8 @@ export class TuiRatingComponent extends AbstractTuiControl {
45
45
  }
46
46
  TuiRatingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiRatingComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token: TUI_RATING_OPTIONS }], target: i0.ɵɵFactoryTarget.Component });
47
47
  TuiRatingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiRatingComponent, selector: "tui-rating", inputs: { min: "min", max: "max", iconNormal: "iconNormal", iconFilled: "iconFilled" }, host: { listeners: { "focusin": "onFocused(true)", "focusout": "onFocused(false)" } }, providers: [
48
- {
49
- provide: TUI_FOCUSABLE_ITEM_ACCESSOR,
50
- useExisting: forwardRef(() => TuiRatingComponent),
51
- },
48
+ tuiAsFocusableItemAccessor(TuiRatingComponent),
49
+ tuiAsControl(TuiRatingComponent),
52
50
  ], viewQueries: [{ propertyName: "focusableElement", first: true, predicate: ["focusableElement"], descendants: true }], usesInheritance: true, ngImport: i0, 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\n class=\"t-wrapper\"\n [style.width.%]=\"percent\"\n >\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\n *tuiRepeatTimes=\"let item of max\"\n [src]=\"iconNormal\"\n ></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", styles: [":host._readonly,:host._disabled{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:transparent}.t-input::-webkit-slider-thumb{display:none}.t-input::-moz-range-thumb{opacity:0}.t-input,.t-wrapper,.t-interactive{position:absolute;left:0;bottom:0;width:100%;height:100%}.t-wrapper,.t-interactive{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}\n"], components: [{ type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }], directives: [{ type: i2.TuiRepeatTimesDirective, selector: "[tuiRepeatTimes][tuiRepeatTimesOf]", inputs: ["tuiRepeatTimesOf"] }, { type: i3.RangeValueAccessor, selector: "input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]" }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.TuiFocusableDirective, selector: "[tuiFocusable]", inputs: ["tuiFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
53
51
  __decorate([
54
52
  tuiDefaultProp()
@@ -70,10 +68,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
70
68
  styleUrls: [`./rating.style.less`],
71
69
  changeDetection: ChangeDetectionStrategy.OnPush,
72
70
  providers: [
73
- {
74
- provide: TUI_FOCUSABLE_ITEM_ACCESSOR,
75
- useExisting: forwardRef(() => TuiRatingComponent),
76
- },
71
+ tuiAsFocusableItemAccessor(TuiRatingComponent),
72
+ tuiAsControl(TuiRatingComponent),
77
73
  ],
78
74
  }]
79
75
  }], ctorParameters: function () { return [{ type: i3.NgControl, decorators: [{
@@ -107,4 +103,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
107
103
  type: HostListener,
108
104
  args: [`focusout`, [`false`]]
109
105
  }] } });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL3JhdGluZy9yYXRpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvcmF0aW5nL3JhdGluZy50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBRVQsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLDJCQUEyQixFQUMzQixjQUFjLEVBRWQsa0JBQWtCLEdBQ3JCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxrQkFBa0IsRUFBbUIsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7QUFjdEUsTUFBTSxPQUFPLGtCQUNULFNBQVEsa0JBQTBCO0lBc0JsQyxZQUlJLFNBQTJCLEVBRTNCLGlCQUFvQyxFQUVuQixPQUF5QjtRQUUxQyxLQUFLLENBQUMsU0FBUyxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFGbkIsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUF0QjlDLFFBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUl2QixRQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFJdkIsZUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBSXJDLGVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztJQWFyQyxDQUFDO0lBRUQsSUFBSSxzQkFBc0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCO1lBQ2xELENBQUMsQ0FBQyxJQUFJO1lBQ04sQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQUksV0FBVztRQUNYLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDUCxPQUFPLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3pDLENBQUM7SUFJRCxTQUFTLENBQUMsT0FBZ0I7UUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBYTtRQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFhO1FBQ2pCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVTLGdCQUFnQjtRQUN0QixPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7O2dIQXRFUSxrQkFBa0Isa0JBMEJmLFNBQVMseUNBRVQsaUJBQWlCLGFBRWpCLGtCQUFrQjtvR0E5QnJCLGtCQUFrQixvTkFQaEI7UUFDUDtZQUNJLE9BQU8sRUFBRSwyQkFBMkI7WUFDcEMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztTQUNwRDtLQUNKLHVLQ2xDTCw0bUNBMENBO0FER0k7SUFEQyxjQUFjLEVBQUU7K0NBQ007QUFJdkI7SUFEQyxjQUFjLEVBQUU7K0NBQ007QUFJdkI7SUFEQyxjQUFjLEVBQUU7c0RBQ29CO0FBSXJDO0lBREMsY0FBYyxFQUFFO3NEQUNvQjs0RkFyQjVCLGtCQUFrQjtrQkFaOUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsV0FBVyxFQUFFLHdCQUF3QjtvQkFDckMsU0FBUyxFQUFFLENBQUMscUJBQXFCLENBQUM7b0JBQ2xDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLDJCQUEyQjs0QkFDcEMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsbUJBQW1CLENBQUM7eUJBQ3BEO3FCQUNKO2lCQUNKOzswQkF5QlEsUUFBUTs7MEJBQ1IsSUFBSTs7MEJBQ0osTUFBTTsyQkFBQyxTQUFTOzswQkFFaEIsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUV4QixNQUFNOzJCQUFDLGtCQUFrQjs0Q0F6QmIsZ0JBQWdCO3NCQURoQyxTQUFTO3VCQUFDLGtCQUFrQjtnQkFLN0IsR0FBRztzQkFGRixLQUFLO2dCQU1OLEdBQUc7c0JBRkYsS0FBSztnQkFNTixVQUFVO3NCQUZULEtBQUs7Z0JBTU4sVUFBVTtzQkFGVCxLQUFLO2dCQXFDTixTQUFTO3NCQUZSLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsTUFBTSxDQUFDOztzQkFDaEMsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxPQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aUNvbnRyb2wsXG4gICAgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICB0dWlJc05hdGl2ZUZvY3VzZWQsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuXG5pbXBvcnQge1RVSV9SQVRJTkdfT1BUSU9OUywgVHVpUmF0aW5nT3B0aW9uc30gZnJvbSAnLi9yYXRpbmctb3B0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBgdHVpLXJhdGluZ2AsXG4gICAgdGVtcGxhdGVVcmw6IGAuL3JhdGluZy50ZW1wbGF0ZS5odG1sYCxcbiAgICBzdHlsZVVybHM6IFtgLi9yYXRpbmcuc3R5bGUubGVzc2BdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUdWlSYXRpbmdDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVJhdGluZ0NvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlDb250cm9sPG51bWJlcj5cbiAgICBpbXBsZW1lbnRzIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBWaWV3Q2hpbGQoYGZvY3VzYWJsZUVsZW1lbnRgKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9jdXNhYmxlRWxlbWVudD86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWluID0gdGhpcy5vcHRpb25zLm1pbjtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtYXggPSB0aGlzLm9wdGlvbnMubWF4O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGljb25Ob3JtYWwgPSB0aGlzLm9wdGlvbnMuaWNvbk5vcm1hbDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBpY29uRmlsbGVkID0gdGhpcy5vcHRpb25zLmljb25GaWxsZWQ7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KE5nQ29udHJvbClcbiAgICAgICAgbmdDb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKVxuICAgICAgICBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoVFVJX1JBVElOR19PUFRJT05TKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IFR1aVJhdGluZ09wdGlvbnMsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKG5nQ29udHJvbCwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcHV0ZWREaXNhYmxlZCB8fCAhdGhpcy5mb2N1c2FibGVFbGVtZW50XG4gICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgIDogdGhpcy5mb2N1c2FibGVFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0dWlJc05hdGl2ZUZvY3VzZWQodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBnZXQgaXNGb2N1c2FibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhKHRoaXMucmVhZE9ubHkgfHwgdGhpcy5kaXNhYmxlZCk7XG4gICAgfVxuXG4gICAgZ2V0IHBlcmNlbnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuICgxMDAgKiB0aGlzLnZhbHVlKSAvIHRoaXMubWF4O1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoYGZvY3VzaW5gLCBbYHRydWVgXSlcbiAgICBASG9zdExpc3RlbmVyKGBmb2N1c291dGAsIFtgZmFsc2VgXSlcbiAgICBvbkZvY3VzZWQoZm9jdXNlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoZm9jdXNlZCk7XG4gICAgfVxuXG4gICAgc2V0UmF0ZUJ5UmV2ZXJzZUluZGV4KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh0aGlzLm1heCAtIGluZGV4KTtcbiAgICB9XG5cbiAgICBzZXRSYXRlKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZhbGxiYWNrVmFsdWUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxufVxuIiwiPGxhYmVsPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuICAgIDxkaXYgY2xhc3M9XCJ0LWhvc3RcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInQtaW50ZXJhY3RpdmVcIj5cbiAgICAgICAgICAgIDx0dWktc3ZnXG4gICAgICAgICAgICAgICAgKnR1aVJlcGVhdFRpbWVzPVwibGV0IGluZGV4IG9mIG1heFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWljb24tZmlsbGVkXCJcbiAgICAgICAgICAgICAgICBbc3JjXT1cImljb25GaWxsZWRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRSYXRlQnlSZXZlcnNlSW5kZXgoaW5kZXgpXCJcbiAgICAgICAgICAgID48L3R1aS1zdmc+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwidC13cmFwcGVyXCJcbiAgICAgICAgICAgIFtzdHlsZS53aWR0aC4lXT1cInBlcmNlbnRcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8dHVpLXN2Z1xuICAgICAgICAgICAgICAgICp0dWlSZXBlYXRUaW1lcz1cImxldCBpbmRleCBvZiBtYXhcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidC1pY29uLWZpbGxlZFwiXG4gICAgICAgICAgICAgICAgW3NyY109XCJpY29uRmlsbGVkXCJcbiAgICAgICAgICAgID48L3R1aS1zdmc+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDx0dWktc3ZnXG4gICAgICAgICAgICAqdHVpUmVwZWF0VGltZXM9XCJsZXQgaXRlbSBvZiBtYXhcIlxuICAgICAgICAgICAgW3NyY109XCJpY29uTm9ybWFsXCJcbiAgICAgICAgPjwvdHVpLXN2Zz5cblxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICNmb2N1c2FibGVFbGVtZW50XG4gICAgICAgICAgICB0eXBlPVwicmFuZ2VcIlxuICAgICAgICAgICAgc3RlcD1cIjFcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LWlucHV0XCJcbiAgICAgICAgICAgIFttaW5dPVwibWluXCJcbiAgICAgICAgICAgIFttYXhdPVwibWF4XCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cInZhbHVlXCJcbiAgICAgICAgICAgIFt0dWlGb2N1c2FibGVdPVwiaXNGb2N1c2FibGVcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2V0UmF0ZSgkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICA8L2Rpdj5cbjwvbGFiZWw+XG4iXX0=
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL3JhdGluZy9yYXRpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvcmF0aW5nL3JhdGluZy50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLElBQUksRUFDSixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLDBCQUEwQixFQUMxQixjQUFjLEVBRWQsa0JBQWtCLEdBQ3JCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxrQkFBa0IsRUFBbUIsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7QUFZdEUsTUFBTSxPQUFPLGtCQUNULFNBQVEsa0JBQTBCO0lBc0JsQyxZQUlJLFNBQTJCLEVBRTNCLGlCQUFvQyxFQUVuQixPQUF5QjtRQUUxQyxLQUFLLENBQUMsU0FBUyxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFGbkIsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUF0QjlDLFFBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUl2QixRQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFJdkIsZUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBSXJDLGVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztJQWFyQyxDQUFDO0lBRUQsSUFBSSxzQkFBc0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCO1lBQ2xELENBQUMsQ0FBQyxJQUFJO1lBQ04sQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQUksV0FBVztRQUNYLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDUCxPQUFPLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3pDLENBQUM7SUFJRCxTQUFTLENBQUMsT0FBZ0I7UUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBYTtRQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFhO1FBQ2pCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVTLGdCQUFnQjtRQUN0QixPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7O2dIQXRFUSxrQkFBa0Isa0JBMEJmLFNBQVMseUNBRVQsaUJBQWlCLGFBRWpCLGtCQUFrQjtvR0E5QnJCLGtCQUFrQixvTkFMaEI7UUFDUCwwQkFBMEIsQ0FBQyxrQkFBa0IsQ0FBQztRQUM5QyxZQUFZLENBQUMsa0JBQWtCLENBQUM7S0FDbkMsdUtDaENMLDRtQ0EwQ0E7QURDSTtJQURDLGNBQWMsRUFBRTsrQ0FDTTtBQUl2QjtJQURDLGNBQWMsRUFBRTsrQ0FDTTtBQUl2QjtJQURDLGNBQWMsRUFBRTtzREFDb0I7QUFJckM7SUFEQyxjQUFjLEVBQUU7c0RBQ29COzRGQXJCNUIsa0JBQWtCO2tCQVY5QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxZQUFZO29CQUN0QixXQUFXLEVBQUUsd0JBQXdCO29CQUNyQyxTQUFTLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDbEMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFNBQVMsRUFBRTt3QkFDUCwwQkFBMEIsb0JBQW9CO3dCQUM5QyxZQUFZLG9CQUFvQjtxQkFDbkM7aUJBQ0o7OzBCQXlCUSxRQUFROzswQkFDUixJQUFJOzswQkFDSixNQUFNOzJCQUFDLFNBQVM7OzBCQUVoQixNQUFNOzJCQUFDLGlCQUFpQjs7MEJBRXhCLE1BQU07MkJBQUMsa0JBQWtCOzRDQXpCYixnQkFBZ0I7c0JBRGhDLFNBQVM7dUJBQUMsa0JBQWtCO2dCQUs3QixHQUFHO3NCQUZGLEtBQUs7Z0JBTU4sR0FBRztzQkFGRixLQUFLO2dCQU1OLFVBQVU7c0JBRlQsS0FBSztnQkFNTixVQUFVO3NCQUZULEtBQUs7Z0JBcUNOLFNBQVM7c0JBRlIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLENBQUM7O3NCQUNoQyxZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aUNvbnRyb2wsXG4gICAgdHVpQXNDb250cm9sLFxuICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yLFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICB0dWlJc05hdGl2ZUZvY3VzZWQsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuXG5pbXBvcnQge1RVSV9SQVRJTkdfT1BUSU9OUywgVHVpUmF0aW5nT3B0aW9uc30gZnJvbSAnLi9yYXRpbmctb3B0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBgdHVpLXJhdGluZ2AsXG4gICAgdGVtcGxhdGVVcmw6IGAuL3JhdGluZy50ZW1wbGF0ZS5odG1sYCxcbiAgICBzdHlsZVVybHM6IFtgLi9yYXRpbmcuc3R5bGUubGVzc2BdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3NvcihUdWlSYXRpbmdDb21wb25lbnQpLFxuICAgICAgICB0dWlBc0NvbnRyb2woVHVpUmF0aW5nQ29tcG9uZW50KSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlSYXRpbmdDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpQ29udHJvbDxudW1iZXI+XG4gICAgaW1wbGVtZW50cyBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3JcbntcbiAgICBAVmlld0NoaWxkKGBmb2N1c2FibGVFbGVtZW50YClcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvY3VzYWJsZUVsZW1lbnQ/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1pbiA9IHRoaXMub3B0aW9ucy5taW47XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWF4ID0gdGhpcy5vcHRpb25zLm1heDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBpY29uTm9ybWFsID0gdGhpcy5vcHRpb25zLmljb25Ob3JtYWw7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaWNvbkZpbGxlZCA9IHRoaXMub3B0aW9ucy5pY29uRmlsbGVkO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIG5nQ29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZilcbiAgICAgICAgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KFRVSV9SQVRJTkdfT1BUSU9OUylcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBUdWlSYXRpbmdPcHRpb25zLFxuICAgICkge1xuICAgICAgICBzdXBlcihuZ0NvbnRyb2wsIGNoYW5nZURldGVjdG9yUmVmKTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXB1dGVkRGlzYWJsZWQgfHwgIXRoaXMuZm9jdXNhYmxlRWxlbWVudFxuICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICA6IHRoaXMuZm9jdXNhYmxlRWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHVpSXNOYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgZ2V0IGlzRm9jdXNhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISh0aGlzLnJlYWRPbmx5IHx8IHRoaXMuZGlzYWJsZWQpO1xuICAgIH1cblxuICAgIGdldCBwZXJjZW50KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAoMTAwICogdGhpcy52YWx1ZSkgLyB0aGlzLm1heDtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKGBmb2N1c2luYCwgW2B0cnVlYF0pXG4gICAgQEhvc3RMaXN0ZW5lcihgZm9jdXNvdXRgLCBbYGZhbHNlYF0pXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIHNldFJhdGVCeVJldmVyc2VJbmRleChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy5tYXggLSBpbmRleCk7XG4gICAgfVxuXG4gICAgc2V0UmF0ZSh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRGYWxsYmFja1ZhbHVlKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAwO1xuICAgIH1cbn1cbiIsIjxsYWJlbD5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbiAgICA8ZGl2IGNsYXNzPVwidC1ob3N0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0LWludGVyYWN0aXZlXCI+XG4gICAgICAgICAgICA8dHVpLXN2Z1xuICAgICAgICAgICAgICAgICp0dWlSZXBlYXRUaW1lcz1cImxldCBpbmRleCBvZiBtYXhcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidC1pY29uLWZpbGxlZFwiXG4gICAgICAgICAgICAgICAgW3NyY109XCJpY29uRmlsbGVkXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0UmF0ZUJ5UmV2ZXJzZUluZGV4KGluZGV4KVwiXG4gICAgICAgICAgICA+PC90dWktc3ZnPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInQtd3JhcHBlclwiXG4gICAgICAgICAgICBbc3R5bGUud2lkdGguJV09XCJwZXJjZW50XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHR1aS1zdmdcbiAgICAgICAgICAgICAgICAqdHVpUmVwZWF0VGltZXM9XCJsZXQgaW5kZXggb2YgbWF4XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInQtaWNvbi1maWxsZWRcIlxuICAgICAgICAgICAgICAgIFtzcmNdPVwiaWNvbkZpbGxlZFwiXG4gICAgICAgICAgICA+PC90dWktc3ZnPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8dHVpLXN2Z1xuICAgICAgICAgICAgKnR1aVJlcGVhdFRpbWVzPVwibGV0IGl0ZW0gb2YgbWF4XCJcbiAgICAgICAgICAgIFtzcmNdPVwiaWNvbk5vcm1hbFwiXG4gICAgICAgID48L3R1aS1zdmc+XG5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAjZm9jdXNhYmxlRWxlbWVudFxuICAgICAgICAgICAgdHlwZT1cInJhbmdlXCJcbiAgICAgICAgICAgIHN0ZXA9XCIxXCJcbiAgICAgICAgICAgIGNsYXNzPVwidC1pbnB1dFwiXG4gICAgICAgICAgICBbbWluXT1cIm1pblwiXG4gICAgICAgICAgICBbbWF4XT1cIm1heFwiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZVwiXG4gICAgICAgICAgICBbdHVpRm9jdXNhYmxlXT1cImlzRm9jdXNhYmxlXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNldFJhdGUoJGV2ZW50KVwiXG4gICAgICAgIC8+XG4gICAgPC9kaXY+XG48L2xhYmVsPlxuIl19
@@ -1,6 +1,5 @@
1
1
  export * from './select.component';
2
2
  export * from './select.directive';
3
3
  export * from './select.module';
4
- export * from './select.providers';
5
4
  export * from './select-options';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9zZWxlY3QvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QucHJvdmlkZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0LW9wdGlvbnMnO1xuIl19
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9zZWxlY3QvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2VsZWN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0LW9wdGlvbnMnO1xuIl19
@@ -1,11 +1,12 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, Inject, Input, Optional, Self, TemplateRef, ViewChild, } from '@angular/core';
3
3
  import { NgControl } from '@angular/forms';
4
- import { AbstractTuiNullableControl, setNativeFocused, tuiDefaultProp, tuiIsNativeFocused, } from '@taiga-ui/cdk';
5
- import { TUI_TEXTFIELD_CLEANER, TuiDataListDirective, TuiHostedDropdownComponent, TuiPrimitiveTextfieldComponent, } from '@taiga-ui/core';
4
+ import { AbstractTuiNullableControl, tuiAsControl, tuiAsFocusableItemAccessor, tuiDefaultProp, tuiIsNativeFocused, } from '@taiga-ui/cdk';
5
+ import { TUI_TEXTFIELD_CLEANER, tuiAsDataListHost, tuiAsOptionContent, TuiDataListDirective, TuiHostedDropdownComponent, TuiPrimitiveTextfieldComponent, } from '@taiga-ui/core';
6
6
  import { TUI_ARROW_MODE } from '@taiga-ui/kit/components/arrow';
7
+ import { TUI_SELECT_OPTION } from '@taiga-ui/kit/components/select-option';
8
+ import { FIXED_DROPDOWN_CONTROLLER_PROVIDER } from '@taiga-ui/kit/providers';
7
9
  import { TUI_ITEMS_HANDLERS } from '@taiga-ui/kit/tokens';
8
- import { TUI_SELECT_PROVIDERS } from './select.providers';
9
10
  import { TUI_SELECT_OPTIONS } from './select-options';
10
11
  import * as i0 from "@angular/core";
11
12
  import * as i1 from "@taiga-ui/core";
@@ -62,12 +63,17 @@ export class TuiSelectComponent extends AbstractTuiNullableControl {
62
63
  }
63
64
  focusInput(preventScroll = false) {
64
65
  if (this.nativeFocusableElement) {
65
- setNativeFocused(this.nativeFocusableElement, true, preventScroll);
66
+ this.nativeFocusableElement.focus({ preventScroll });
66
67
  }
67
68
  }
68
69
  }
69
70
  TuiSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiSelectComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token: TUI_TEXTFIELD_CLEANER }, { token: TUI_ARROW_MODE }, { token: TUI_ITEMS_HANDLERS }, { token: TUI_SELECT_OPTIONS }], target: i0.ɵɵFactoryTarget.Component });
70
- TuiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiSelectComponent, selector: "tui-select", inputs: { stringify: "stringify", identityMatcher: "identityMatcher", valueContent: "valueContent" }, providers: TUI_SELECT_PROVIDERS, queries: [{ propertyName: "datalist", first: true, predicate: TuiDataListDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "textfield", first: true, predicate: TuiPrimitiveTextfieldComponent, descendants: true }, { propertyName: "hostedDropdown", first: true, predicate: TuiHostedDropdownComponent, descendants: true }], usesInheritance: true, ngImport: i0, 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 [tuiTextfieldIcon]=\"arrow\"\n [editable]=\"false\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoActive]=\"pseudoActive\"\n [invalid]=\"computedInvalid\"\n [nativeId]=\"nativeId\"\n [readOnly]=\"readOnly\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"computedFocusable\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange($event)\"\n (keydown.delete.prevent)=\"onKeyDownDelete()\"\n (keydown.backspace.prevent)=\"onKeyDownDelete()\"\n >\n <ng-content></ng-content>\n <ng-content\n select=\"input\"\n ngProjectAs=\"input\"\n ></ng-content>\n <div\n *ngIf=\"value !== null\"\n ngProjectAs=\"tuiContent\"\n automation-id=\"tui-select__value\"\n class=\"t-value\"\n >\n <div\n *polymorpheusOutlet=\"computedContent as text; context: {$implicit: value, active: computedFocused}\"\n class=\"t-primitive-value\"\n [textContent]=\"text\"\n ></div>\n </div>\n </tui-primitive-textfield>\n</tui-hosted-dropdown>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:left}:host:not(._readonly) ::ng-deep input:not(:disabled){cursor:pointer}:host._readonly ::ng-deep input{cursor:default}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}.t-value{display:flex;width:100%;align-items:center}.t-primitive-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], components: [{ type: i1.TuiHostedDropdownComponent, selector: "tui-hosted-dropdown", inputs: ["content", "canOpen", "open"], outputs: ["openChange", "focusedChange"] }, { type: i1.TuiPrimitiveTextfieldComponent, selector: "tui-primitive-textfield", inputs: ["editable", "filler", "iconCleaner", "readOnly", "invalid", "disabled", "prefix", "postfix", "value"], outputs: ["valueChange"] }], directives: [{ type: i2.TuiActiveZoneDirective, selector: "[tuiActiveZone]:not(ng-container), [tuiActiveZoneChange]:not(ng-container), [tuiActiveZoneParent]:not(ng-container)", inputs: ["tuiActiveZoneParent"], outputs: ["tuiActiveZoneChange"], exportAs: ["tuiActiveZone"] }, { type: i1.TuiPrimitiveTextfieldDirective, selector: "tui-primitive-textfield" }, { type: i1.TuiTextfieldIconDirective, selector: "[tuiTextfieldIcon]", inputs: ["tuiTextfieldIcon"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
71
+ TuiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiSelectComponent, selector: "tui-select", inputs: { stringify: "stringify", identityMatcher: "identityMatcher", valueContent: "valueContent" }, providers: [
72
+ tuiAsFocusableItemAccessor(TuiSelectComponent),
73
+ tuiAsControl(TuiSelectComponent),
74
+ tuiAsDataListHost(TuiSelectComponent),
75
+ tuiAsOptionContent(TUI_SELECT_OPTION),
76
+ ], queries: [{ propertyName: "datalist", first: true, predicate: TuiDataListDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "textfield", first: true, predicate: TuiPrimitiveTextfieldComponent, descendants: true }, { propertyName: "hostedDropdown", first: true, predicate: TuiHostedDropdownComponent, descendants: true }], usesInheritance: true, ngImport: i0, 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 [tuiTextfieldIcon]=\"arrow\"\n [editable]=\"false\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoActive]=\"pseudoActive\"\n [invalid]=\"computedInvalid\"\n [nativeId]=\"nativeId\"\n [readOnly]=\"readOnly\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"computedFocusable\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange($event)\"\n (keydown.delete.prevent)=\"onKeyDownDelete()\"\n (keydown.backspace.prevent)=\"onKeyDownDelete()\"\n >\n <ng-content></ng-content>\n <ng-content\n select=\"input\"\n ngProjectAs=\"input\"\n ></ng-content>\n <div\n *ngIf=\"value !== null\"\n ngProjectAs=\"tuiContent\"\n automation-id=\"tui-select__value\"\n class=\"t-value\"\n >\n <div\n *polymorpheusOutlet=\"computedContent as text; context: {$implicit: value, active: computedFocused}\"\n class=\"t-primitive-value\"\n [textContent]=\"text\"\n ></div>\n </div>\n </tui-primitive-textfield>\n</tui-hosted-dropdown>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:left}:host:not(._readonly) ::ng-deep input:not(:disabled){cursor:pointer}:host._readonly ::ng-deep input{cursor:default}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}.t-value{display:flex;width:100%;align-items:center}.t-primitive-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], components: [{ type: i1.TuiHostedDropdownComponent, selector: "tui-hosted-dropdown", inputs: ["content", "canOpen", "open"], outputs: ["openChange", "focusedChange"] }, { type: i1.TuiPrimitiveTextfieldComponent, selector: "tui-primitive-textfield", inputs: ["editable", "filler", "iconCleaner", "readOnly", "invalid", "disabled", "prefix", "postfix", "value"], outputs: ["valueChange"] }], directives: [{ type: i2.TuiActiveZoneDirective, selector: "[tuiActiveZone]:not(ng-container), [tuiActiveZoneChange]:not(ng-container), [tuiActiveZoneParent]:not(ng-container)", inputs: ["tuiActiveZoneParent"], outputs: ["tuiActiveZoneChange"], exportAs: ["tuiActiveZone"] }, { type: i1.TuiPrimitiveTextfieldDirective, selector: "tui-primitive-textfield" }, { type: i1.TuiTextfieldIconDirective, selector: "[tuiTextfieldIcon]", inputs: ["tuiTextfieldIcon"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], viewProviders: [FIXED_DROPDOWN_CONTROLLER_PROVIDER], changeDetection: i0.ChangeDetectionStrategy.OnPush });
71
77
  __decorate([
72
78
  tuiDefaultProp()
73
79
  ], TuiSelectComponent.prototype, "stringify", void 0);
@@ -84,7 +90,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
84
90
  templateUrl: `./select.template.html`,
85
91
  styleUrls: [`./select.style.less`],
86
92
  changeDetection: ChangeDetectionStrategy.OnPush,
87
- providers: TUI_SELECT_PROVIDERS,
93
+ providers: [
94
+ tuiAsFocusableItemAccessor(TuiSelectComponent),
95
+ tuiAsControl(TuiSelectComponent),
96
+ tuiAsDataListHost(TuiSelectComponent),
97
+ tuiAsOptionContent(TUI_SELECT_OPTION),
98
+ ],
99
+ viewProviders: [FIXED_DROPDOWN_CONTROLLER_PROVIDER],
88
100
  }]
89
101
  }], ctorParameters: function () { return [{ type: i5.NgControl, decorators: [{
90
102
  type: Optional
@@ -124,4 +136,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
124
136
  type: ContentChild,
125
137
  args: [TuiDataListDirective, { read: TemplateRef }]
126
138
  }] } });
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLElBQUksRUFDSixXQUFXLEVBQ1gsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsMEJBQTBCLEVBQzFCLGdCQUFnQixFQUdoQixjQUFjLEVBRWQsa0JBQWtCLEdBQ3JCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxxQkFBcUIsRUFDckIsb0JBQW9CLEVBRXBCLDBCQUEwQixFQUMxQiw4QkFBOEIsR0FNakMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsY0FBYyxFQUFlLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUUsT0FBTyxFQUFDLGtCQUFrQixFQUFtQixNQUFNLHNCQUFzQixDQUFDO0FBRzFFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBQyxrQkFBa0IsRUFBbUIsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7OztBQVN0RSxNQUFNLE9BQU8sa0JBQ1QsU0FBUSwwQkFBNkI7SUEyQnJDLFlBSUksT0FBeUIsRUFDRSxpQkFBb0MsRUFFOUMsZ0JBQThDLEVBRTlDLFNBQXVCLEVBRXZCLGFBQWtDLEVBRWxDLE9BQTRCO1FBRTdDLEtBQUssQ0FBQyxPQUFPLEVBQUUs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LEVBQUU7d0RBQzZEOzRGQXJCckUsa0JBQWtCO2tCQVA5QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxZQUFZO29CQUN0QixXQUFXLEVBQUUsd0JBQXdCO29CQUNyQyxTQUFTLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDbEMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFNBQVMsRUFBRSxvQkFBb0I7aUJBQ2xDOzswQkE4QlEsUUFBUTs7MEJBQ1IsSUFBSTs7MEJBQ0osTUFBTTsyQkFBQyxTQUFTOzswQkFFaEIsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUN4QixNQUFNOzJCQUFDLHFCQUFxQjs7MEJBRTVCLE1BQU07MkJBQUMsY0FBYzs7MEJBRXJCLE1BQU07MkJBQUMsa0JBQWtCOzswQkFFekIsTUFBTTsyQkFBQyxrQkFBa0I7NENBbkNiLFNBQVM7c0JBRHpCLFNBQVM7dUJBQUMsOEJBQThCO2dCQUl4QixjQUFjO3NCQUQ5QixTQUFTO3VCQUFDLDBCQUEwQjtnQkFLckMsU0FBUztzQkFGUixLQUFLO2dCQU1OLGVBQWU7c0JBRmQsS0FBSztnQkFPTixZQUFZO3NCQUZYLEtBQUs7Z0JBS0csUUFBUTtzQkFEaEIsWUFBWTt1QkFBQyxvQkFBb0IsRUFBRSxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGYsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sLFxuICAgIHNldE5hdGl2ZUZvY3VzZWQsXG4gICAgVHVpQWN0aXZlWm9uZURpcmVjdGl2ZSxcbiAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0LFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICB0dWlJc05hdGl2ZUZvY3VzZWQsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBUVUlfVEVYVEZJRUxEX0NMRUFORVIsXG4gICAgVHVpRGF0YUxpc3REaXJlY3RpdmUsXG4gICAgVHVpRGF0YUxpc3RIb3N0LFxuICAgIFR1aUhvc3RlZERyb3Bkb3duQ29tcG9uZW50LFxuICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudCxcbiAgICBUdWlTaXplTCxcbiAgICBUdWlTaXplTSxcbiAgICBUdWlTaXplUyxcbiAgICBUdWlUZXh0ZmllbGRDbGVhbmVyRGlyZWN0aXZlLFxuICAgIFR1aVZhbHVlQ29udGVudENvbnRleHQsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7VFVJX0FSUk9XX01PREUsIFR1aUFycm93TW9kZX0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2Fycm93JztcbmltcG9ydCB7VFVJX0lURU1TX0hBTkRMRVJTLCBUdWlJdGVtc0hhbmRsZXJzfSBmcm9tICdAdGFpZ2EtdWkva2l0L3Rva2Vucyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5cbmltcG9ydCB7VFVJX1NFTEVDVF9QUk9WSURFUlN9IGZyb20gJy4vc2VsZWN0LnByb3ZpZGVycyc7XG5pbXBvcnQge1RVSV9TRUxFQ1RfT1BUSU9OUywgVHVpU2VsZWN0T3B0aW9uc30gZnJvbSAnLi9zZWxlY3Qtb3B0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBgdHVpLXNlbGVjdGAsXG4gICAgdGVtcGxhdGVVcmw6IGAuL3NlbGVjdC50ZW1wbGF0ZS5odG1sYCxcbiAgICBzdHlsZVVybHM6IFtgLi9zZWxlY3Quc3R5bGUubGVzc2BdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogVFVJX1NFTEVDVF9QUk9WSURFUlMsXG59KVxuZXhwb3J0IGNsYXNzIFR1aVNlbGVjdENvbXBvbmVudDxUPlxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2w8VD5cbiAgICBpbXBsZW1lbnRzIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvciwgVHVpRGF0YUxpc3RIb3N0PFQ+XG57XG4gICAgQFZpZXdDaGlsZChUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGQ/OiBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkKFR1aUhvc3RlZERyb3Bkb3duQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgaG9zdGVkRHJvcGRvd24/OiBUdWlIb3N0ZWREcm9wZG93bkNvbXBvbmVudDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzdHJpbmdpZnk6IFR1aUl0ZW1zSGFuZGxlcnM8VD5bJ3N0cmluZ2lmeSddID0gdGhpcy5pdGVtc0hhbmRsZXJzLnN0cmluZ2lmeTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBpZGVudGl0eU1hdGNoZXI6IFR1aUl0ZW1zSGFuZGxlcnM8VD5bJ2lkZW50aXR5TWF0Y2hlciddID1cbiAgICAgICAgdGhpcy5pdGVtc0hhbmRsZXJzLmlkZW50aXR5TWF0Y2hlcjtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICB2YWx1ZUNvbnRlbnQ6IFR1aVNlbGVjdE9wdGlvbnM8VD5bJ3ZhbHVlQ29udGVudCddID0gdGhpcy5vcHRpb25zLnZhbHVlQ29udGVudDtcblxuICAgIEBDb250ZW50Q2hpbGQoVHVpRGF0YUxpc3REaXJlY3RpdmUsIHtyZWFkOiBUZW1wbGF0ZVJlZn0pXG4gICAgcmVhZG9ubHkgZGF0YWxpc3Q6IFBvbHltb3JwaGV1c0NvbnRlbnQ8XG4gICAgICAgIFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8VHVpQWN0aXZlWm9uZURpcmVjdGl2ZT5cbiAgICA+ID0gYGA7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KE5nQ29udHJvbClcbiAgICAgICAgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KFRVSV9URVhURklFTERfQ0xFQU5FUilcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGRDbGVhbmVyOiBUdWlUZXh0ZmllbGRDbGVhbmVyRGlyZWN0aXZlLFxuICAgICAgICBASW5qZWN0KFRVSV9BUlJPV19NT0RFKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGFycm93TW9kZTogVHVpQXJyb3dNb2RlLFxuICAgICAgICBASW5qZWN0KFRVSV9JVEVNU19IQU5ETEVSUylcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBpdGVtc0hhbmRsZXJzOiBUdWlJdGVtc0hhbmRsZXJzPFQ+LFxuICAgICAgICBASW5qZWN0KFRVSV9TRUxFQ1RfT1BUSU9OUylcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBUdWlTZWxlY3RPcHRpb25zPFQ+LFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgfVxuXG4gICAgZ2V0IGFycm93KCk6IFBvbHltb3JwaGV1c0NvbnRlbnQ8XG4gICAgICAgIFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8VHVpU2l6ZVMgfCBUdWlTaXplTSB8IFR1aVNpemVMPlxuICAgID4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaW50ZXJhY3RpdmUgPyB0aGlzLmFycm93TW9kZS5kaXNhYmxlZCA6IHRoaXMuYXJyb3dNb2RlLmludGVyYWN0aXZlO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dGZpZWxkID8gdGhpcy50ZXh0ZmllbGQubmF0aXZlRm9jdXNhYmxlRWxlbWVudCA6IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0dWlJc05hdGl2ZUZvY3VzZWQodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB8fFxuICAgICAgICAgICAgKCEhdGhpcy5ob3N0ZWREcm9wZG93biAmJiB0aGlzLmhvc3RlZERyb3Bkb3duLmZvY3VzZWQpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUgPT09IG51bGwgPyBgYCA6IHRoaXMuc3RyaW5naWZ5KHRoaXMudmFsdWUpIHx8IGAgYDtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRDb250ZW50KCk6IFBvbHltb3JwaGV1c0NvbnRlbnQ8VHVpVmFsdWVDb250ZW50Q29udGV4dDxUPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZUNvbnRlbnQgfHwgdGhpcy5jb21wdXRlZFZhbHVlO1xuICAgIH1cblxuICAgIG9uVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKG51bGwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25BY3RpdmVab25lKGFjdGl2ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoYWN0aXZlKTtcbiAgICB9XG5cbiAgICBvbktleURvd25EZWxldGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnRleHRmaWVsZENsZWFuZXIuY2xlYW5lcikge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShudWxsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZU9wdGlvbihvcHRpb246IFQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUob3B0aW9uKTtcbiAgICAgICAgdGhpcy5ob3N0ZWREcm9wZG93bj8udXBkYXRlT3BlbihmYWxzZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1c0lucHV0KHByZXZlbnRTY3JvbGw6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICBzZXROYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCwgdHJ1ZSwgcHJldmVudFNjcm9sbCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8dHVpLWhvc3RlZC1kcm9wZG93blxuICAgIGNsYXNzPVwidC1ob3N0ZWRcIlxuICAgIFtjYW5PcGVuXT1cImludGVyYWN0aXZlXCJcbiAgICBbY29udGVudF09XCJkYXRhbGlzdCB8fCAnJ1wiXG4gICAgKHR1aUFjdGl2ZVpvbmVDaGFuZ2UpPVwib25BY3RpdmVab25lKCRldmVudClcIlxuPlxuICAgIDx0dWktcHJpbWl0aXZlLXRleHRmaWVsZFxuICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLXNlbGVjdF9fdGV4dGZpZWxkXCJcbiAgICAgICAgY2xhc3M9XCJ0LXRleHRmaWVsZFwiXG4gICAgICAgIFt0dWlUZXh0ZmllbGRJY29uXT1cImFycm93XCJcbiAgICAgICAgW2VkaXRhYmxlXT1cImZhbHNlXCJcbiAgICAgICAgW3BzZXVkb0ZvY3VzXT1cImNvbXB1dGVkRm9jdXNlZFwiXG4gICAgICAgIFtwc2V1ZG9Ib3Zlcl09XCJwc2V1ZG9Ib3ZlclwiXG4gICAgICAgIFtwc2V1ZG9BY3RpdmVdPVwicHNldWRvQWN0aXZlXCJcbiAgICAgICAgW2ludmFsaWRdPVwiY29tcHV0ZWRJbnZhbGlkXCJcbiAgICAgICAgW25hdGl2ZUlkXT1cIm5hdGl2ZUlkXCJcbiAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImNvbXB1dGVkRGlzYWJsZWRcIlxuICAgICAgICBbZm9jdXNhYmxlXT1cImNvbXB1dGVkRm9jdXNhYmxlXCJcbiAgICAgICAgW3ZhbHVlXT1cImNvbXB1dGVkVmFsdWVcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGtleWRvd24uZGVsZXRlLnByZXZlbnQpPVwib25LZXlEb3duRGVsZXRlKClcIlxuICAgICAgICAoa2V5ZG93bi5iYWNrc3BhY2UucHJldmVudCk9XCJvbktleURvd25EZWxldGUoKVwiXG4gICAgPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIDxuZy1jb250ZW50XG4gICAgICAgICAgICBzZWxlY3Q9XCJpbnB1dFwiXG4gICAgICAgICAgICBuZ1Byb2plY3RBcz1cImlucHV0XCJcbiAgICAgICAgPjwvbmctY29udGVudD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJ2YWx1ZSAhPT0gbnVsbFwiXG4gICAgICAgICAgICBuZ1Byb2plY3RBcz1cInR1aUNvbnRlbnRcIlxuICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1zZWxlY3RfX3ZhbHVlXCJcbiAgICAgICAgICAgIGNsYXNzPVwidC12YWx1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqcG9seW1vcnBoZXVzT3V0bGV0PVwiY29tcHV0ZWRDb250ZW50IGFzIHRleHQ7IGNvbnRleHQ6IHskaW1wbGljaXQ6IHZhbHVlLCBhY3RpdmU6IGNvbXB1dGVkRm9jdXNlZH1cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidC1wcmltaXRpdmUtdmFsdWVcIlxuICAgICAgICAgICAgICAgIFt0ZXh0Q29udGVudF09XCJ0ZXh0XCJcbiAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC90dWktcHJpbWl0aXZlLXRleHRmaWVsZD5cbjwvdHVpLWhvc3RlZC1kcm9wZG93bj5cbiJdfQ==
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLElBQUksRUFDSixXQUFXLEVBQ1gsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsMEJBQTBCLEVBRTFCLFlBQVksRUFDWiwwQkFBMEIsRUFFMUIsY0FBYyxFQUVkLGtCQUFrQixHQUNyQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gscUJBQXFCLEVBQ3JCLGlCQUFpQixFQUNqQixrQkFBa0IsRUFDbEIsb0JBQW9CLEVBRXBCLDBCQUEwQixFQUMxQiw4QkFBOEIsR0FNakMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsY0FBYyxFQUFlLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDekUsT0FBTyxFQUFDLGtDQUFrQyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDM0UsT0FBTyxFQUFDLGtCQUFrQixFQUFtQixNQUFNLHNCQUFzQixDQUFDO0FBRzFFLE9BQU8sRUFBQyxrQkFBa0IsRUFBbUIsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7OztBQWV0RSxNQUFNLE9BQU8sa0JBQ1QsU0FBUSwwQkFBNkI7SUEyQnJDLFlBSUksT0FBeUIsRUFDRSxp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LEVBQUUsV0FBVyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aU51bGxhYmxlQ29udHJvbCxcbiAgICBUdWlBY3RpdmVab25lRGlyZWN0aXZlLFxuICAgIHR1aUFzQ29udHJvbCxcbiAgICB0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3NvcixcbiAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0LFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICB0dWlJc05hdGl2ZUZvY3VzZWQsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBUVUlfVEVYVEZJRUxEX0NMRUFORVIsXG4gICAgdHVpQXNEYXRhTGlzdEhvc3QsXG4gICAgdHVpQXNPcHRpb25Db250ZW50LFxuICAgIFR1aURhdGFMaXN0RGlyZWN0aXZlLFxuICAgIFR1aURhdGFMaXN0SG9zdCxcbiAgICBUdWlIb3N0ZWREcm9wZG93bkNvbXBvbmVudCxcbiAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQsXG4gICAgVHVpU2l6ZUwsXG4gICAgVHVpU2l6ZU0sXG4gICAgVHVpU2l6ZVMsXG4gICAgVHVpVGV4dGZpZWxkQ2xlYW5lckRpcmVjdGl2ZSxcbiAgICBUdWlWYWx1ZUNvbnRlbnRDb250ZXh0LFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1RVSV9BUlJPV19NT0RFLCBUdWlBcnJvd01vZGV9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9hcnJvdyc7XG5pbXBvcnQge1RVSV9TRUxFQ1RfT1BUSU9OfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvc2VsZWN0LW9wdGlvbic7XG5pbXBvcnQge0ZJWEVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVJ9IGZyb20gJ0B0YWlnYS11aS9raXQvcHJvdmlkZXJzJztcbmltcG9ydCB7VFVJX0lURU1TX0hBTkRMRVJTLCBUdWlJdGVtc0hhbmRsZXJzfSBmcm9tICdAdGFpZ2EtdWkva2l0L3Rva2Vucyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5cbmltcG9ydCB7VFVJX1NFTEVDVF9PUFRJT05TLCBUdWlTZWxlY3RPcHRpb25zfSBmcm9tICcuL3NlbGVjdC1vcHRpb25zJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IGB0dWktc2VsZWN0YCxcbiAgICB0ZW1wbGF0ZVVybDogYC4vc2VsZWN0LnRlbXBsYXRlLmh0bWxgLFxuICAgIHN0eWxlVXJsczogW2AuL3NlbGVjdC5zdHlsZS5sZXNzYF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yKFR1aVNlbGVjdENvbXBvbmVudCksXG4gICAgICAgIHR1aUFzQ29udHJvbChUdWlTZWxlY3RDb21wb25lbnQpLFxuICAgICAgICB0dWlBc0RhdGFMaXN0SG9zdChUdWlTZWxlY3RDb21wb25lbnQpLFxuICAgICAgICB0dWlBc09wdGlvbkNvbnRlbnQoVFVJX1NFTEVDVF9PUFRJT04pLFxuICAgIF0sXG4gICAgdmlld1Byb3ZpZGVyczogW0ZJWEVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVJdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlTZWxlY3RDb21wb25lbnQ8VD5cbiAgICBleHRlbmRzIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sPFQ+XG4gICAgaW1wbGVtZW50cyBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsIFR1aURhdGFMaXN0SG9zdDxUPlxue1xuICAgIEBWaWV3Q2hpbGQoVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkPzogVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZChUdWlIb3N0ZWREcm9wZG93bkNvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhvc3RlZERyb3Bkb3duPzogVHVpSG9zdGVkRHJvcGRvd25Db21wb25lbnQ7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc3RyaW5naWZ5OiBUdWlJdGVtc0hhbmRsZXJzPFQ+WydzdHJpbmdpZnknXSA9IHRoaXMuaXRlbXNIYW5kbGVycy5zdHJpbmdpZnk7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaWRlbnRpdHlNYXRjaGVyOiBUdWlJdGVtc0hhbmRsZXJzPFQ+WydpZGVudGl0eU1hdGNoZXInXSA9XG4gICAgICAgIHRoaXMuaXRlbXNIYW5kbGVycy5pZGVudGl0eU1hdGNoZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgdmFsdWVDb250ZW50OiBUdWlTZWxlY3RPcHRpb25zPFQ+Wyd2YWx1ZUNvbnRlbnQnXSA9IHRoaXMub3B0aW9ucy52YWx1ZUNvbnRlbnQ7XG5cbiAgICBAQ29udGVudENoaWxkKFR1aURhdGFMaXN0RGlyZWN0aXZlLCB7cmVhZDogVGVtcGxhdGVSZWZ9KVxuICAgIHJlYWRvbmx5IGRhdGFsaXN0OiBQb2x5bW9ycGhldXNDb250ZW50PFxuICAgICAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0PFR1aUFjdGl2ZVpvbmVEaXJlY3RpdmU+XG4gICAgPiA9IGBgO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX0NMRUFORVIpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkQ2xlYW5lcjogVHVpVGV4dGZpZWxkQ2xlYW5lckRpcmVjdGl2ZSxcbiAgICAgICAgQEluamVjdChUVUlfQVJST1dfTU9ERSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhcnJvd01vZGU6IFR1aUFycm93TW9kZSxcbiAgICAgICAgQEluamVjdChUVUlfSVRFTVNfSEFORExFUlMpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaXRlbXNIYW5kbGVyczogVHVpSXRlbXNIYW5kbGVyczxUPixcbiAgICAgICAgQEluamVjdChUVUlfU0VMRUNUX09QVElPTlMpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogVHVpU2VsZWN0T3B0aW9uczxUPixcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIH1cblxuICAgIGdldCBhcnJvdygpOiBQb2x5bW9ycGhldXNDb250ZW50PFxuICAgICAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0PFR1aVNpemVTIHwgVHVpU2l6ZU0gfCBUdWlTaXplTD5cbiAgICA+IHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmludGVyYWN0aXZlID8gdGhpcy5hcnJvd01vZGUuZGlzYWJsZWQgOiB0aGlzLmFycm93TW9kZS5pbnRlcmFjdGl2ZTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRmaWVsZCA/IHRoaXMudGV4dGZpZWxkLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgOiBudWxsO1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdHVpSXNOYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkgfHxcbiAgICAgICAgICAgICghIXRoaXMuaG9zdGVkRHJvcGRvd24gJiYgdGhpcy5ob3N0ZWREcm9wZG93bi5mb2N1c2VkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlID09PSBudWxsID8gYGAgOiB0aGlzLnN0cmluZ2lmeSh0aGlzLnZhbHVlKSB8fCBgIGA7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkQ29udGVudCgpOiBQb2x5bW9ycGhldXNDb250ZW50PFR1aVZhbHVlQ29udGVudENvbnRleHQ8VD4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVDb250ZW50IHx8IHRoaXMuY29tcHV0ZWRWYWx1ZTtcbiAgICB9XG5cbiAgICBvblZhbHVlQ2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShudWxsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQWN0aXZlWm9uZShhY3RpdmU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGFjdGl2ZSk7XG4gICAgfVxuXG4gICAgb25LZXlEb3duRGVsZXRlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50ZXh0ZmllbGRDbGVhbmVyLmNsZWFuZXIpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUobnVsbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVPcHRpb24ob3B0aW9uOiBUKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKG9wdGlvbik7XG4gICAgICAgIHRoaXMuaG9zdGVkRHJvcGRvd24/LnVwZGF0ZU9wZW4oZmFsc2UpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9jdXNJbnB1dChwcmV2ZW50U2Nyb2xsOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LmZvY3VzKHtwcmV2ZW50U2Nyb2xsfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8dHVpLWhvc3RlZC1kcm9wZG93blxuICAgIGNsYXNzPVwidC1ob3N0ZWRcIlxuICAgIFtjYW5PcGVuXT1cImludGVyYWN0aXZlXCJcbiAgICBbY29udGVudF09XCJkYXRhbGlzdCB8fCAnJ1wiXG4gICAgKHR1aUFjdGl2ZVpvbmVDaGFuZ2UpPVwib25BY3RpdmVab25lKCRldmVudClcIlxuPlxuICAgIDx0dWktcHJpbWl0aXZlLXRleHRmaWVsZFxuICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLXNlbGVjdF9fdGV4dGZpZWxkXCJcbiAgICAgICAgY2xhc3M9XCJ0LXRleHRmaWVsZFwiXG4gICAgICAgIFt0dWlUZXh0ZmllbGRJY29uXT1cImFycm93XCJcbiAgICAgICAgW2VkaXRhYmxlXT1cImZhbHNlXCJcbiAgICAgICAgW3BzZXVkb0ZvY3VzXT1cImNvbXB1dGVkRm9jdXNlZFwiXG4gICAgICAgIFtwc2V1ZG9Ib3Zlcl09XCJwc2V1ZG9Ib3ZlclwiXG4gICAgICAgIFtwc2V1ZG9BY3RpdmVdPVwicHNldWRvQWN0aXZlXCJcbiAgICAgICAgW2ludmFsaWRdPVwiY29tcHV0ZWRJbnZhbGlkXCJcbiAgICAgICAgW25hdGl2ZUlkXT1cIm5hdGl2ZUlkXCJcbiAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImNvbXB1dGVkRGlzYWJsZWRcIlxuICAgICAgICBbZm9jdXNhYmxlXT1cImNvbXB1dGVkRm9jdXNhYmxlXCJcbiAgICAgICAgW3ZhbHVlXT1cImNvbXB1dGVkVmFsdWVcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGtleWRvd24uZGVsZXRlLnByZXZlbnQpPVwib25LZXlEb3duRGVsZXRlKClcIlxuICAgICAgICAoa2V5ZG93bi5iYWNrc3BhY2UucHJldmVudCk9XCJvbktleURvd25EZWxldGUoKVwiXG4gICAgPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIDxuZy1jb250ZW50XG4gICAgICAgICAgICBzZWxlY3Q9XCJpbnB1dFwiXG4gICAgICAgICAgICBuZ1Byb2plY3RBcz1cImlucHV0XCJcbiAgICAgICAgPjwvbmctY29udGVudD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJ2YWx1ZSAhPT0gbnVsbFwiXG4gICAgICAgICAgICBuZ1Byb2plY3RBcz1cInR1aUNvbnRlbnRcIlxuICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1zZWxlY3RfX3ZhbHVlXCJcbiAgICAgICAgICAgIGNsYXNzPVwidC12YWx1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqcG9seW1vcnBoZXVzT3V0bGV0PVwiY29tcHV0ZWRDb250ZW50IGFzIHRleHQ7IGNvbnRleHQ6IHskaW1wbGljaXQ6IHZhbHVlLCBhY3RpdmU6IGNvbXB1dGVkRm9jdXNlZH1cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidC1wcmltaXRpdmUtdmFsdWVcIlxuICAgICAgICAgICAgICAgIFt0ZXh0Q29udGVudF09XCJ0ZXh0XCJcbiAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC90dWktcHJpbWl0aXZlLXRleHRmaWVsZD5cbjwvdHVpLWhvc3RlZC1kcm9wZG93bj5cbiJdfQ==
@@ -1,5 +1,5 @@
1
- import { Directive, forwardRef } from '@angular/core';
2
- import { TUI_TEXTFIELD_HOST, TuiAbstractTextfieldHost } from '@taiga-ui/core';
1
+ import { Directive } from '@angular/core';
2
+ import { TuiAbstractTextfieldHost, tuiAsTextfieldHost } from '@taiga-ui/core';
3
3
  import * as i0 from "@angular/core";
4
4
  export class TuiSelectDirective extends TuiAbstractTextfieldHost {
5
5
  get readOnly() {
@@ -13,22 +13,12 @@ export class TuiSelectDirective extends TuiAbstractTextfieldHost {
13
13
  }
14
14
  }
15
15
  TuiSelectDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiSelectDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
16
- TuiSelectDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: TuiSelectDirective, selector: "tui-select", providers: [
17
- {
18
- provide: TUI_TEXTFIELD_HOST,
19
- useExisting: forwardRef(() => TuiSelectDirective),
20
- },
21
- ], usesInheritance: true, ngImport: i0 });
16
+ TuiSelectDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: TuiSelectDirective, selector: "tui-select", providers: [tuiAsTextfieldHost(TuiSelectDirective)], usesInheritance: true, ngImport: i0 });
22
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiSelectDirective, decorators: [{
23
18
  type: Directive,
24
19
  args: [{
25
20
  selector: `tui-select`,
26
- providers: [
27
- {
28
- provide: TUI_TEXTFIELD_HOST,
29
- useExisting: forwardRef(() => TuiSelectDirective),
30
- },
31
- ],
21
+ providers: [tuiAsTextfieldHost(TuiSelectDirective)],
32
22
  }]
33
23
  }] });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBQyxrQkFBa0IsRUFBRSx3QkFBd0IsRUFBQyxNQUFNLGdCQUFnQixDQUFDOztBQWE1RSxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsd0JBRXZDO0lBQ0csSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDbkMsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7O2dIQWJRLGtCQUFrQjtvR0FBbEIsa0JBQWtCLHFDQVBoQjtRQUNQO1lBQ0ksT0FBTyxFQUFFLGtCQUFrQjtZQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDO1NBQ3BEO0tBQ0o7NEZBRVEsa0JBQWtCO2tCQVQ5QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxZQUFZO29CQUN0QixTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsbUJBQW1CLENBQUM7eUJBQ3BEO3FCQUNKO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIGZvcndhcmRSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUVUlfVEVYVEZJRUxEX0hPU1QsIFR1aUFic3RyYWN0VGV4dGZpZWxkSG9zdH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuXG5pbXBvcnQge1R1aVNlbGVjdENvbXBvbmVudH0gZnJvbSAnLi9zZWxlY3QuY29tcG9uZW50JztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6IGB0dWktc2VsZWN0YCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX1RFWFRGSUVMRF9IT1NULFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpU2VsZWN0RGlyZWN0aXZlKSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlTZWxlY3REaXJlY3RpdmUgZXh0ZW5kcyBUdWlBYnN0cmFjdFRleHRmaWVsZEhvc3Q8XG4gICAgVHVpU2VsZWN0Q29tcG9uZW50PHVua25vd24+XG4+IHtcbiAgICBnZXQgcmVhZE9ubHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0LmNvbXB1dGVkVmFsdWU7XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaG9zdC5vblZhbHVlQ2hhbmdlKHZhbHVlKTtcbiAgICB9XG59XG4iXX0=
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFDLHdCQUF3QixFQUFFLGtCQUFrQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7O0FBUTVFLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSx3QkFFdkM7SUFDRyxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUNuQyxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQWE7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQzs7Z0hBYlEsa0JBQWtCO29HQUFsQixrQkFBa0IscUNBRmhCLENBQUMsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsQ0FBQzs0RkFFMUMsa0JBQWtCO2tCQUo5QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxZQUFZO29CQUN0QixTQUFTLEVBQUUsQ0FBQyxrQkFBa0Isb0JBQW9CLENBQUM7aUJBQ3REIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUdWlBYnN0cmFjdFRleHRmaWVsZEhvc3QsIHR1aUFzVGV4dGZpZWxkSG9zdH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuXG5pbXBvcnQge1R1aVNlbGVjdENvbXBvbmVudH0gZnJvbSAnLi9zZWxlY3QuY29tcG9uZW50JztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6IGB0dWktc2VsZWN0YCxcbiAgICBwcm92aWRlcnM6IFt0dWlBc1RleHRmaWVsZEhvc3QoVHVpU2VsZWN0RGlyZWN0aXZlKV0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVNlbGVjdERpcmVjdGl2ZSBleHRlbmRzIFR1aUFic3RyYWN0VGV4dGZpZWxkSG9zdDxcbiAgICBUdWlTZWxlY3RDb21wb25lbnQ8dW5rbm93bj5cbj4ge1xuICAgIGdldCByZWFkT25seSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3QuY29tcHV0ZWRWYWx1ZTtcbiAgICB9XG5cbiAgICBvblZhbHVlQ2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ob3N0Lm9uVmFsdWVDaGFuZ2UodmFsdWUpO1xuICAgIH1cbn1cbiJdfQ==