@ardium-ui/ui 1.0.2 → 2.0.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 (390) hide show
  1. package/esm2022/lib/_internal/boolean-component.mjs +28 -42
  2. package/esm2022/lib/_internal/clear-button/clear-button.component.mjs +5 -5
  3. package/esm2022/lib/_internal/clear-button/clear-button.module.mjs +4 -4
  4. package/esm2022/lib/_internal/disablable-component.mjs +24 -22
  5. package/esm2022/lib/_internal/focusable-component.mjs +12 -25
  6. package/esm2022/lib/_internal/item-storages/dropdown-item-storage.mjs +172 -169
  7. package/esm2022/lib/_internal/item-storages/simple-item-storage.mjs +115 -120
  8. package/esm2022/lib/_internal/item-storages/simplest-item-storage.mjs +56 -53
  9. package/esm2022/lib/_internal/models/pagination.model.mjs +72 -106
  10. package/esm2022/lib/_internal/ngmodel-component.mjs +5 -5
  11. package/esm2022/lib/_internal/queue.mjs +1 -1
  12. package/esm2022/lib/_internal/selectable-list-component.mjs +74 -98
  13. package/esm2022/lib/badge/badge.directive.mjs +70 -99
  14. package/esm2022/lib/badge/badge.module.mjs +4 -4
  15. package/esm2022/lib/badge/index.mjs +4 -0
  16. package/esm2022/lib/buttons/_button-base.mjs +13 -35
  17. package/esm2022/lib/buttons/button/button.component.mjs +22 -37
  18. package/esm2022/lib/buttons/button/button.module.mjs +4 -4
  19. package/esm2022/lib/buttons/button/index.mjs +3 -0
  20. package/esm2022/lib/buttons/fab/fab.component.mjs +16 -28
  21. package/esm2022/lib/buttons/fab/fab.module.mjs +4 -4
  22. package/esm2022/lib/buttons/fab/index.mjs +3 -0
  23. package/esm2022/lib/buttons/icon-button/icon-button.component.mjs +17 -25
  24. package/esm2022/lib/buttons/icon-button/icon-button.module.mjs +4 -4
  25. package/esm2022/lib/buttons/icon-button/index.mjs +3 -0
  26. package/esm2022/lib/card/card.children.mjs +32 -33
  27. package/esm2022/lib/card/card.component.mjs +14 -17
  28. package/esm2022/lib/card/card.module.mjs +4 -4
  29. package/esm2022/lib/card/index.mjs +5 -0
  30. package/esm2022/lib/checkbox/checkbox.component.mjs +33 -46
  31. package/esm2022/lib/checkbox/checkbox.module.mjs +4 -4
  32. package/esm2022/lib/checkbox/index.mjs +4 -0
  33. package/esm2022/lib/checkbox-list/checkbox-list.component.mjs +31 -57
  34. package/esm2022/lib/checkbox-list/checkbox-list.module.mjs +4 -4
  35. package/esm2022/lib/checkbox-list/index.mjs +4 -0
  36. package/esm2022/lib/chip/chip.component.mjs +22 -42
  37. package/esm2022/lib/chip/chip.module.mjs +4 -4
  38. package/esm2022/lib/chip/deletable-chip/deletable-chip.component.mjs +28 -53
  39. package/esm2022/lib/chip/index.mjs +5 -0
  40. package/esm2022/lib/chip/selectable-chip/selectable-chip.component.mjs +25 -49
  41. package/esm2022/lib/color/color-display/color-display.component.mjs +15 -32
  42. package/esm2022/lib/color/color-display/color-display.module.mjs +4 -4
  43. package/esm2022/lib/color/color-display/index.mjs +4 -0
  44. package/esm2022/lib/color/color-picker/color-picker.types.mjs +1 -1
  45. package/esm2022/lib/dialog/dialog.component.mjs +54 -130
  46. package/esm2022/lib/dialog/dialog.directives.mjs +3 -3
  47. package/esm2022/lib/dialog/dialog.module.mjs +4 -4
  48. package/esm2022/lib/dialog/dialog.types.mjs +1 -1
  49. package/esm2022/lib/dialog/index.mjs +5 -0
  50. package/esm2022/lib/divider/divider.component.mjs +9 -14
  51. package/esm2022/lib/divider/divider.module.mjs +4 -4
  52. package/esm2022/lib/divider/index.mjs +3 -0
  53. package/esm2022/lib/dropdown-panel/dropdown-panel.component.mjs +40 -59
  54. package/esm2022/lib/dropdown-panel/dropdown-panel.module.mjs +4 -4
  55. package/esm2022/lib/dropdown-panel/index.mjs +4 -0
  56. package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.component.mjs +12 -17
  57. package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.directives.mjs +9 -9
  58. package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.module.mjs +6 -6
  59. package/esm2022/lib/file-inputs/file-drop-area/index.mjs +4 -0
  60. package/esm2022/lib/file-inputs/file-input/file-input.component.mjs +24 -50
  61. package/esm2022/lib/file-inputs/file-input/file-input.directives.mjs +18 -18
  62. package/esm2022/lib/file-inputs/file-input/file-input.module.mjs +4 -4
  63. package/esm2022/lib/file-inputs/file-input/index.mjs +4 -0
  64. package/esm2022/lib/file-inputs/file-input-base.mjs +38 -72
  65. package/esm2022/lib/form-field-frame/form-field-frame.component.mjs +20 -47
  66. package/esm2022/lib/form-field-frame/form-field-frame.directives.mjs +6 -6
  67. package/esm2022/lib/form-field-frame/form-field-frame.module.mjs +4 -4
  68. package/esm2022/lib/form-field-frame/index.mjs +4 -0
  69. package/esm2022/lib/icon/icon.component.mjs +32 -67
  70. package/esm2022/lib/icon/icon.module.mjs +4 -4
  71. package/esm2022/lib/icon/icon.pipe.mjs +3 -3
  72. package/esm2022/lib/icon/index.mjs +4 -0
  73. package/esm2022/lib/inputs/color-input/color-input.directives.mjs +24 -24
  74. package/esm2022/lib/inputs/color-input/color-input.types.mjs +1 -1
  75. package/esm2022/lib/inputs/digit-input/digit-input.component.mjs +65 -115
  76. package/esm2022/lib/inputs/digit-input/digit-input.model.mjs +83 -92
  77. package/esm2022/lib/inputs/digit-input/digit-input.module.mjs +4 -4
  78. package/esm2022/lib/inputs/digit-input/digit-input.types.mjs +1 -1
  79. package/esm2022/lib/inputs/digit-input/digit-input.utils.mjs +1 -1
  80. package/esm2022/lib/inputs/digit-input/index.mjs +4 -0
  81. package/esm2022/lib/inputs/hex-input/hex-input.component.mjs +59 -122
  82. package/esm2022/lib/inputs/hex-input/hex-input.directives.mjs +9 -9
  83. package/esm2022/lib/inputs/hex-input/hex-input.module.mjs +24 -8
  84. package/esm2022/lib/inputs/hex-input/index.mjs +4 -0
  85. package/esm2022/lib/inputs/hex-input.model.mjs +24 -33
  86. package/esm2022/lib/inputs/input/index.mjs +4 -0
  87. package/esm2022/lib/inputs/input/input.component.mjs +95 -154
  88. package/esm2022/lib/inputs/input/input.directives.mjs +16 -16
  89. package/esm2022/lib/inputs/input/input.module.mjs +21 -7
  90. package/esm2022/lib/inputs/input-transformers.mjs +6 -6
  91. package/esm2022/lib/inputs/input-utils.mjs +75 -94
  92. package/esm2022/lib/inputs/number-input/index.mjs +4 -0
  93. package/esm2022/lib/inputs/number-input/number-input.component.mjs +106 -170
  94. package/esm2022/lib/inputs/number-input/number-input.directives.mjs +3 -3
  95. package/esm2022/lib/inputs/number-input/number-input.module.mjs +4 -4
  96. package/esm2022/lib/inputs/password-input/index.mjs +5 -0
  97. package/esm2022/lib/inputs/password-input/password-input.component.mjs +74 -144
  98. package/esm2022/lib/inputs/password-input/password-input.directives.mjs +12 -12
  99. package/esm2022/lib/inputs/password-input/password-input.module.mjs +4 -4
  100. package/esm2022/lib/inputs/password-input/password-input.types.mjs +1 -1
  101. package/esm2022/lib/inputs/simple-input/index.mjs +4 -0
  102. package/esm2022/lib/inputs/simple-input/simple-input.component.mjs +57 -110
  103. package/esm2022/lib/inputs/simple-input/simple-input.directives.mjs +9 -9
  104. package/esm2022/lib/inputs/simple-input/simple-input.module.mjs +4 -4
  105. package/esm2022/lib/kbd/index.mjs +4 -0
  106. package/esm2022/lib/kbd/kbd.component.mjs +15 -29
  107. package/esm2022/lib/kbd/kbd.module.mjs +4 -4
  108. package/esm2022/lib/kbd/kbd.pipe.mjs +3 -3
  109. package/esm2022/lib/kbd-shortcut/index.mjs +3 -0
  110. package/esm2022/lib/kbd-shortcut/kbd-shortcut.component.mjs +23 -40
  111. package/esm2022/lib/kbd-shortcut/kbd-shortcut.module.mjs +4 -4
  112. package/esm2022/lib/modal/index.mjs +3 -0
  113. package/esm2022/lib/modal/modal.component.mjs +42 -83
  114. package/esm2022/lib/modal/modal.module.mjs +4 -4
  115. package/esm2022/lib/option/index.mjs +3 -0
  116. package/esm2022/lib/option/option.component.mjs +24 -46
  117. package/esm2022/lib/option/option.module.mjs +4 -4
  118. package/esm2022/lib/progress-bar/index.mjs +5 -0
  119. package/esm2022/lib/progress-bar/progress-bar.component.mjs +43 -81
  120. package/esm2022/lib/progress-bar/progress-bar.directive.mjs +3 -3
  121. package/esm2022/lib/progress-bar/progress-bar.module.mjs +4 -4
  122. package/esm2022/lib/progress-bar/progress-bar.types.mjs +1 -1
  123. package/esm2022/lib/progress-circle/index.mjs +5 -0
  124. package/esm2022/lib/progress-circle/progress-circle.component.mjs +33 -78
  125. package/esm2022/lib/progress-circle/progress-circle.directive.mjs +3 -3
  126. package/esm2022/lib/progress-circle/progress-circle.module.mjs +4 -4
  127. package/esm2022/lib/progress-circle/progress-circle.types.mjs +1 -1
  128. package/esm2022/lib/radio/index.mjs +4 -0
  129. package/esm2022/lib/radio/radio/radio.component.mjs +16 -25
  130. package/esm2022/lib/radio/radio-group.component.mjs +71 -85
  131. package/esm2022/lib/radio/radio.module.mjs +4 -4
  132. package/esm2022/lib/search-functions.mjs +7 -7
  133. package/esm2022/lib/segment/index.mjs +5 -0
  134. package/esm2022/lib/segment/segment.component.mjs +70 -137
  135. package/esm2022/lib/segment/segment.directives.mjs +4 -4
  136. package/esm2022/lib/segment/segment.module.mjs +4 -4
  137. package/esm2022/lib/select/index.mjs +5 -0
  138. package/esm2022/lib/select/select.component.mjs +348 -655
  139. package/esm2022/lib/select/select.directive.mjs +46 -46
  140. package/esm2022/lib/select/select.module.mjs +4 -4
  141. package/esm2022/lib/select/select.types.mjs +1 -1
  142. package/esm2022/lib/slide-toggle/index.mjs +4 -0
  143. package/esm2022/lib/slide-toggle/slide-toggle.component.mjs +19 -24
  144. package/esm2022/lib/slide-toggle/slide-toggle.module.mjs +4 -4
  145. package/esm2022/lib/slide-toggle/slide-toggle.types.mjs +5 -0
  146. package/esm2022/lib/slider/abstract-slider.mjs +111 -200
  147. package/esm2022/lib/slider/index.mjs +7 -0
  148. package/esm2022/lib/slider/range-slider/range-slider.component.mjs +26 -23
  149. package/esm2022/lib/slider/range-slider/range-slider.module.mjs +4 -4
  150. package/esm2022/lib/slider/slider.component.mjs +13 -10
  151. package/esm2022/lib/slider/slider.directive.mjs +3 -3
  152. package/esm2022/lib/slider/slider.module.mjs +7 -7
  153. package/esm2022/lib/slider/slider.types.mjs +1 -1
  154. package/esm2022/lib/snackbar/snackbar-ref.mjs +1 -1
  155. package/esm2022/lib/snackbar/snackbar.component.mjs +8 -8
  156. package/esm2022/lib/snackbar/snackbar.service.mjs +13 -12
  157. package/esm2022/lib/snackbar/snackbar.types.mjs +1 -1
  158. package/esm2022/lib/spinner/index.mjs +3 -0
  159. package/esm2022/lib/spinner/spinner.component.mjs +9 -13
  160. package/esm2022/lib/spinner/spinner.module.mjs +4 -4
  161. package/esm2022/lib/star/index.mjs +4 -0
  162. package/esm2022/lib/star/star-button/index.mjs +3 -0
  163. package/esm2022/lib/star/star-button/star-button.component.mjs +17 -26
  164. package/esm2022/lib/star/star-button/star-button.module.mjs +4 -4
  165. package/esm2022/lib/star/star-display/index.mjs +3 -0
  166. package/esm2022/lib/star/star-display/star-display.component.mjs +48 -55
  167. package/esm2022/lib/star/star-display/star-display.module.mjs +4 -4
  168. package/esm2022/lib/star/star-input/index.mjs +3 -0
  169. package/esm2022/lib/star/star-input/star-input.component.mjs +70 -106
  170. package/esm2022/lib/star/star-input/star-input.module.mjs +4 -4
  171. package/esm2022/lib/star/star.component.mjs +12 -20
  172. package/esm2022/lib/star/star.module.mjs +4 -4
  173. package/esm2022/lib/statebox/index.mjs +3 -0
  174. package/esm2022/lib/statebox/statebox.component.mjs +64 -102
  175. package/esm2022/lib/statebox/statebox.module.mjs +4 -4
  176. package/esm2022/lib/statebox/statebox.types.mjs +1 -1
  177. package/esm2022/lib/tabber/index.mjs +4 -0
  178. package/esm2022/lib/tabber/tab/tab.component.mjs +42 -0
  179. package/esm2022/lib/tabber/tabber.component.mjs +83 -0
  180. package/esm2022/lib/tabber/tabber.module.mjs +19 -0
  181. package/esm2022/lib/table/index.mjs +5 -0
  182. package/esm2022/lib/table/table-item-storage.mjs +204 -200
  183. package/esm2022/lib/table/table.component.mjs +184 -304
  184. package/esm2022/lib/table/table.directives.mjs +19 -21
  185. package/esm2022/lib/table/table.module.mjs +4 -4
  186. package/esm2022/lib/table/utils.mjs +1 -1
  187. package/esm2022/lib/table-from-csv/index.mjs +3 -0
  188. package/esm2022/lib/table-from-csv/table-from-csv.component.mjs +85 -29
  189. package/esm2022/lib/table-from-csv/table-from-csv.module.mjs +4 -4
  190. package/esm2022/lib/table-pagination/index.mjs +4 -0
  191. package/esm2022/lib/table-pagination/table-pagination.component.mjs +46 -114
  192. package/esm2022/lib/table-pagination/table-pagination.module.mjs +4 -4
  193. package/esm2022/lib/types/item-storage.types.mjs +1 -1
  194. package/esm2022/lib/types/utility.types.mjs +2 -2
  195. package/esm2022/public-api.mjs +58 -182
  196. package/fesm2022/ardium-ui-ui.mjs +7847 -11692
  197. package/fesm2022/ardium-ui-ui.mjs.map +1 -1
  198. package/lib/_internal/boolean-component.d.ts +8 -9
  199. package/lib/_internal/clear-button/clear-button.component.d.ts +1 -1
  200. package/lib/_internal/disablable-component.d.ts +12 -7
  201. package/lib/_internal/focusable-component.d.ts +5 -7
  202. package/lib/_internal/item-storages/dropdown-item-storage.d.ts +43 -41
  203. package/lib/_internal/item-storages/simple-item-storage.d.ts +28 -25
  204. package/lib/_internal/item-storages/simplest-item-storage.d.ts +14 -9
  205. package/lib/_internal/models/pagination.model.d.ts +38 -42
  206. package/lib/_internal/ngmodel-component.d.ts +1 -1
  207. package/lib/_internal/selectable-list-component.d.ts +30 -30
  208. package/lib/badge/badge.directive.d.ts +15 -20
  209. package/lib/badge/index.d.ts +3 -0
  210. package/lib/buttons/_button-base.d.ts +9 -12
  211. package/lib/buttons/button/button.component.d.ts +6 -8
  212. package/lib/buttons/button/index.d.ts +2 -0
  213. package/lib/buttons/fab/fab.component.d.ts +4 -6
  214. package/lib/buttons/fab/index.d.ts +2 -0
  215. package/lib/buttons/icon-button/icon-button.component.d.ts +6 -7
  216. package/lib/buttons/icon-button/index.d.ts +2 -0
  217. package/lib/card/card.children.d.ts +4 -3
  218. package/lib/card/card.component.d.ts +5 -4
  219. package/lib/card/index.d.ts +4 -0
  220. package/lib/checkbox/checkbox.component.d.ts +8 -12
  221. package/lib/checkbox/index.d.ts +3 -0
  222. package/lib/checkbox-list/checkbox-list.component.d.ts +22 -21
  223. package/lib/checkbox-list/index.d.ts +3 -0
  224. package/lib/chip/chip.component.d.ts +8 -10
  225. package/lib/chip/deletable-chip/deletable-chip.component.d.ts +11 -14
  226. package/lib/chip/index.d.ts +4 -0
  227. package/lib/chip/selectable-chip/selectable-chip.component.d.ts +10 -12
  228. package/lib/color/color-display/color-display.component.d.ts +6 -9
  229. package/lib/color/color-display/index.d.ts +3 -0
  230. package/lib/color/color-picker/color-picker.types.d.ts +4 -4
  231. package/lib/dialog/dialog.component.d.ts +25 -35
  232. package/lib/dialog/dialog.types.d.ts +2 -2
  233. package/lib/dialog/index.d.ts +4 -0
  234. package/lib/divider/divider.component.d.ts +3 -4
  235. package/lib/divider/index.d.ts +2 -0
  236. package/lib/dropdown-panel/dropdown-panel.component.d.ts +17 -20
  237. package/lib/dropdown-panel/index.d.ts +3 -0
  238. package/lib/file-inputs/file-drop-area/file-drop-area.component.d.ts +5 -4
  239. package/lib/file-inputs/file-drop-area/index.d.ts +3 -0
  240. package/lib/file-inputs/file-input/file-input.component.d.ts +13 -17
  241. package/lib/file-inputs/file-input/index.d.ts +3 -0
  242. package/lib/file-inputs/file-input-base.d.ts +13 -18
  243. package/lib/form-field-frame/form-field-frame.component.d.ts +12 -16
  244. package/lib/form-field-frame/index.d.ts +3 -0
  245. package/lib/icon/icon.component.d.ts +10 -19
  246. package/lib/icon/index.d.ts +3 -0
  247. package/lib/inputs/color-input/color-input.types.d.ts +2 -2
  248. package/lib/inputs/digit-input/digit-input.component.d.ts +22 -30
  249. package/lib/inputs/digit-input/digit-input.model.d.ts +8 -12
  250. package/lib/inputs/digit-input/digit-input.types.d.ts +4 -4
  251. package/lib/inputs/digit-input/digit-input.utils.d.ts +4 -5
  252. package/lib/inputs/digit-input/index.d.ts +3 -0
  253. package/lib/inputs/hex-input/hex-input.component.d.ts +32 -38
  254. package/lib/inputs/hex-input/index.d.ts +3 -0
  255. package/lib/inputs/hex-input.model.d.ts +10 -11
  256. package/lib/inputs/input/index.d.ts +3 -0
  257. package/lib/inputs/input/input.component.d.ts +34 -40
  258. package/lib/inputs/input/input.directives.d.ts +3 -3
  259. package/lib/inputs/input-utils.d.ts +24 -27
  260. package/lib/inputs/number-input/index.d.ts +3 -0
  261. package/lib/inputs/number-input/number-input.component.d.ts +38 -48
  262. package/lib/inputs/password-input/index.d.ts +4 -0
  263. package/lib/inputs/password-input/password-input.component.d.ts +28 -40
  264. package/lib/inputs/password-input/password-input.types.d.ts +2 -2
  265. package/lib/inputs/simple-input/index.d.ts +3 -0
  266. package/lib/inputs/simple-input/simple-input.component.d.ts +30 -35
  267. package/lib/kbd/index.d.ts +3 -0
  268. package/lib/kbd/kbd.component.d.ts +6 -8
  269. package/lib/kbd-shortcut/index.d.ts +2 -0
  270. package/lib/kbd-shortcut/kbd-shortcut.component.d.ts +7 -10
  271. package/lib/modal/index.d.ts +2 -0
  272. package/lib/modal/modal.component.d.ts +22 -30
  273. package/lib/option/index.d.ts +2 -0
  274. package/lib/option/option.component.d.ts +11 -16
  275. package/lib/progress-bar/index.d.ts +4 -0
  276. package/lib/progress-bar/progress-bar.component.d.ts +14 -20
  277. package/lib/progress-bar/progress-bar.types.d.ts +2 -2
  278. package/lib/progress-circle/index.d.ts +4 -0
  279. package/lib/progress-circle/progress-circle.component.d.ts +12 -20
  280. package/lib/progress-circle/progress-circle.types.d.ts +2 -2
  281. package/lib/radio/index.d.ts +3 -0
  282. package/lib/radio/radio/radio.component.d.ts +7 -8
  283. package/lib/radio/radio-group.component.d.ts +13 -16
  284. package/lib/segment/index.d.ts +4 -0
  285. package/lib/segment/segment.component.d.ts +22 -34
  286. package/lib/segment/segment.directives.d.ts +2 -3
  287. package/lib/select/index.d.ts +4 -0
  288. package/lib/select/select.component.d.ts +114 -160
  289. package/lib/select/select.directive.d.ts +3 -3
  290. package/lib/select/select.types.d.ts +2 -76
  291. package/lib/slide-toggle/index.d.ts +3 -0
  292. package/lib/slide-toggle/slide-toggle.component.d.ts +9 -7
  293. package/lib/slide-toggle/slide-toggle.types.d.ts +5 -0
  294. package/lib/slider/abstract-slider.d.ts +38 -55
  295. package/lib/slider/index.d.ts +6 -0
  296. package/lib/slider/range-slider/range-slider.component.d.ts +3 -1
  297. package/lib/slider/slider.component.d.ts +2 -0
  298. package/lib/slider/slider.types.d.ts +8 -8
  299. package/lib/snackbar/snackbar-ref.d.ts +1 -2
  300. package/lib/snackbar/snackbar.component.d.ts +3 -3
  301. package/lib/snackbar/snackbar.service.d.ts +2 -2
  302. package/lib/snackbar/snackbar.types.d.ts +4 -4
  303. package/lib/spinner/index.d.ts +2 -0
  304. package/lib/spinner/spinner.component.d.ts +3 -3
  305. package/lib/star/index.d.ts +3 -0
  306. package/lib/star/star-button/index.d.ts +2 -0
  307. package/lib/star/star-button/star-button.component.d.ts +7 -7
  308. package/lib/star/star-display/index.d.ts +2 -0
  309. package/lib/star/star-display/star-display.component.d.ts +8 -12
  310. package/lib/star/star-input/index.d.ts +2 -0
  311. package/lib/star/star-input/star-input.component.d.ts +17 -22
  312. package/lib/star/star.component.d.ts +5 -5
  313. package/lib/statebox/index.d.ts +3 -0
  314. package/lib/statebox/statebox.component.d.ts +15 -21
  315. package/lib/statebox/statebox.types.d.ts +12 -8
  316. package/lib/tabber/index.d.ts +3 -0
  317. package/lib/tabber/tab/tab.component.d.ts +18 -0
  318. package/lib/tabber/tabber.component.d.ts +25 -0
  319. package/lib/tabber/tabber.module.d.ts +9 -0
  320. package/lib/table/index.d.ts +4 -0
  321. package/lib/table/table-item-storage.d.ts +70 -58
  322. package/lib/table/table.component.d.ts +59 -78
  323. package/lib/table/table.directives.d.ts +4 -3
  324. package/lib/table-from-csv/index.d.ts +2 -0
  325. package/lib/table-from-csv/table-from-csv.component.d.ts +46 -9
  326. package/lib/table-pagination/index.d.ts +3 -0
  327. package/lib/table-pagination/table-pagination.component.d.ts +21 -30
  328. package/lib/types/item-storage.types.d.ts +19 -18
  329. package/lib/types/utility.types.d.ts +2 -1
  330. package/package.json +8 -9
  331. package/prebuilt-themes/default/badge.css +5 -5
  332. package/prebuilt-themes/default/buttons/fab.css +4 -3
  333. package/prebuilt-themes/default/buttons/fab.css.map +1 -1
  334. package/prebuilt-themes/default/card.css +7 -7
  335. package/prebuilt-themes/default/chips.css +3 -8
  336. package/prebuilt-themes/default/chips.css.map +1 -1
  337. package/prebuilt-themes/default/core.css +6 -3
  338. package/prebuilt-themes/default/core.css.map +1 -1
  339. package/prebuilt-themes/default/inputs/color-input.css +1 -1
  340. package/prebuilt-themes/default/inputs/digit-input.css +1 -1
  341. package/prebuilt-themes/default/inputs/file-input.css +139 -2
  342. package/prebuilt-themes/default/inputs/file-input.css.map +1 -1
  343. package/prebuilt-themes/default/inputs/hex-input.css +2 -2
  344. package/prebuilt-themes/default/inputs/input.css +1 -1
  345. package/prebuilt-themes/default/inputs/search-bar.css +1 -1
  346. package/prebuilt-themes/default/inputs/simple-input.css +1 -1
  347. package/prebuilt-themes/default/modal.css +1 -1
  348. package/prebuilt-themes/default/segment.css +2 -2
  349. package/prebuilt-themes/default/segment.css.map +1 -1
  350. package/prebuilt-themes/default/select.css +5 -3
  351. package/prebuilt-themes/default/select.css.map +1 -1
  352. package/prebuilt-themes/default/snackbar.css +0 -1
  353. package/prebuilt-themes/default/snackbar.css.map +1 -1
  354. package/prebuilt-themes/default/tabber.css +207 -0
  355. package/prebuilt-themes/default/tabber.css.map +1 -0
  356. package/public-api.d.ts +43 -136
  357. package/themes/default/_clear-button.scss +1 -1
  358. package/themes/default/badge.scss +5 -5
  359. package/themes/default/buttons/fab.scss +5 -3
  360. package/themes/default/card.scss +7 -7
  361. package/themes/default/chips.scss +2 -8
  362. package/themes/default/core.scss +6 -3
  363. package/themes/default/inputs/digit-input.scss +1 -1
  364. package/themes/default/inputs/file-input.scss +8 -1
  365. package/themes/default/inputs/hex-input.scss +1 -1
  366. package/themes/default/modal.scss +1 -1
  367. package/themes/default/segment.scss +2 -1
  368. package/themes/default/select.scss +4 -2
  369. package/themes/default/snackbar.scss +0 -2
  370. package/themes/default/tabber.scss +86 -0
  371. package/esm2022/lib/calendar/calendar.component.mjs +0 -979
  372. package/esm2022/lib/calendar/calendar.directives.mjs +0 -107
  373. package/esm2022/lib/calendar/calendar.helpers.mjs +0 -47
  374. package/esm2022/lib/calendar/calendar.module.mjs +0 -21
  375. package/esm2022/lib/calendar/calendar.types.mjs +0 -11
  376. package/esm2022/lib/color/color-picker/color-picker.component.mjs +0 -484
  377. package/esm2022/lib/color/color-picker/color-picker.directives.mjs +0 -55
  378. package/esm2022/lib/color/color-picker/color-picker.module.mjs +0 -43
  379. package/esm2022/lib/inputs/color-input/color-input.component.mjs +0 -421
  380. package/esm2022/lib/inputs/color-input/color-input.module.mjs +0 -85
  381. package/lib/calendar/calendar.component.d.ts +0 -155
  382. package/lib/calendar/calendar.directives.d.ts +0 -51
  383. package/lib/calendar/calendar.helpers.d.ts +0 -15
  384. package/lib/calendar/calendar.module.d.ts +0 -11
  385. package/lib/calendar/calendar.types.d.ts +0 -80
  386. package/lib/color/color-picker/color-picker.component.d.ts +0 -125
  387. package/lib/color/color-picker/color-picker.directives.d.ts +0 -27
  388. package/lib/color/color-picker/color-picker.module.d.ts +0 -13
  389. package/lib/inputs/color-input/color-input.component.d.ts +0 -147
  390. package/lib/inputs/color-input/color-input.module.d.ts +0 -16
@@ -1,130 +1,109 @@
1
+ import { Overlay, ScrollStrategyOptions } from '@angular/cdk/overlay';
1
2
  import { DOCUMENT } from '@angular/common';
2
- import { ContentChild, Directive, EventEmitter, HostListener, Inject, Input, Output, TemplateRef, ViewChild, } from '@angular/core';
3
+ import { Directive, HostListener, Input, Renderer2, ViewContainerRef, computed, contentChild, inject, input, output, signal, viewChild, } from '@angular/core';
3
4
  import { coerceBooleanProperty, coerceNumberProperty } from '@ardium-ui/devkit';
4
5
  import { roundToMultiple, roundToPrecision } from 'more-rounding';
5
6
  import { isDefined, isObject } from 'simple-bool';
6
7
  import { _NgModelComponentBase } from '../_internal/ngmodel-component';
7
8
  import { SimpleComponentColor } from '../types/colors.types';
8
9
  import { ArdSliderTooltipDirective } from './slider.directive';
9
- import { SliderDecorationPosition, SliderTooltipBehavior } from './slider.types';
10
+ import { SliderDecorationPosition, SliderTooltipBehavior, } from './slider.types';
10
11
  import * as i0 from "@angular/core";
11
- import * as i1 from "@angular/cdk/overlay";
12
12
  export class _AbstractSlider extends _NgModelComponentBase {
13
- constructor(document, renderer, overlay, scrollStrategyOpts, viewContainerRef) {
14
- super();
15
- this.document = document;
16
- this.renderer = renderer;
17
- this.overlay = overlay;
18
- this.scrollStrategyOpts = scrollStrategyOpts;
19
- this.viewContainerRef = viewContainerRef;
20
- this._noTooltip = false;
13
+ constructor() {
14
+ super(...arguments);
15
+ this.elementRef = viewChild('track');
16
+ this.document = inject(DOCUMENT);
17
+ this.renderer = inject(Renderer2);
18
+ this.overlay = inject(Overlay);
19
+ this.scrollStrategyOpts = inject(ScrollStrategyOptions);
20
+ this.viewContainerRef = inject(ViewContainerRef);
21
+ this.noTooltip = input(false, { transform: v => coerceBooleanProperty(v) });
22
+ this.tooltipFormat = input();
21
23
  //! min, max, step sizes
22
- this._min = 0;
23
- this._max = 100;
24
- this._step = 1;
25
- this._shiftMultiplier = 5;
26
- this._stepSizeComputed = this._updateComputedStepSizes();
24
+ this.min = input(0, { transform: v => coerceNumberProperty(v, 0) });
25
+ this.max = input(100, { transform: v => coerceNumberProperty(v, 100) });
26
+ this.step = input(1, {
27
+ transform: v => {
28
+ const step = coerceNumberProperty(v, 1);
29
+ if (step === 0) {
30
+ throw new Error(`ARD-FT${this.componentId}0a: Cannot set <ard-${this.componentName}>'s [step] to 0.`);
31
+ }
32
+ if (step < 0) {
33
+ throw new Error(`ARD-FT${this.componentId}0b: Cannot set <ard-${this.componentName}>'s [step] to a negative value, got ${step}.`);
34
+ }
35
+ return step;
36
+ },
37
+ });
38
+ this.shiftMultiplier = input(5, { transform: v => coerceNumberProperty(v, 1) });
39
+ this._stepSizeComputed = computed(() => this.step() / Math.abs(this.min() - this.max()));
27
40
  //! value ticks
28
- this._showValueTicks = false;
29
- this._tickArray = this._updateTickArray();
41
+ this.showValueTicks = input(false, { transform: v => coerceBooleanProperty(v) });
42
+ this.percentStepSize = computed(() => this._stepSizeComputed() * 100);
43
+ this._tickArray = computed(() => {
44
+ const newArr = [];
45
+ let positionPercentCumulative = 0;
46
+ while (positionPercentCumulative < 100) {
47
+ newArr.push(positionPercentCumulative);
48
+ positionPercentCumulative += this._stepSizeComputed() * 100;
49
+ positionPercentCumulative = roundToPrecision(positionPercentCumulative, 6);
50
+ }
51
+ newArr.push(100);
52
+ return newArr.map(v => `${v}%`);
53
+ });
30
54
  //! labels
31
- this.labelPosition = SliderDecorationPosition.Bottom;
32
- this.labelObjects = [];
55
+ this.labelPosition = input(SliderDecorationPosition.Bottom);
56
+ this.labelObjects = input([], {
57
+ alias: 'labels',
58
+ transform: val => {
59
+ if (!isDefined(val) || val.length === 0) {
60
+ return [];
61
+ }
62
+ return val.map(this._numberLabelArrayMapFn).map(label => {
63
+ const v = this._clampValue(label.for);
64
+ return {
65
+ label: String(label.label),
66
+ positionPercent: `${this._valueToPercent(v) * 100}%`,
67
+ };
68
+ });
69
+ },
70
+ });
33
71
  //! appearance
34
- this.color = SimpleComponentColor.Primary;
35
- this._compact = false;
36
- this.valueChange = new EventEmitter();
37
- this.tooltipPosition = SliderDecorationPosition.Top;
38
- this._tooltipBehavior = SliderTooltipBehavior.Auto;
72
+ this.color = input(SimpleComponentColor.Primary);
73
+ this.compact = input(false, { transform: v => coerceBooleanProperty(v) });
74
+ this.ngClasses = computed(() => [
75
+ `ard-color-${this.color()}`,
76
+ `ard-labels-${this.labelPosition()}`,
77
+ `ard-tooltip-${this.tooltipPosition()}`,
78
+ this.compact() ? 'ard-compact' : '',
79
+ ].join(' '));
80
+ //! determining transition
81
+ this.sliderTransition = computed(() => {
82
+ const x = this._totalSteps();
83
+ //this is determined using this graph: https://www.geogebra.org/calculator/nqgnhpap
84
+ //capped at y=80
85
+ //this specific graph is chosen because it looks the best in my opinion
86
+ const formulaResult = (20 * (x + 200)) / (x + 20) - 80;
87
+ const formulaResultRounded = roundToPrecision(formulaResult, 3);
88
+ if (formulaResultRounded < 0)
89
+ return '0';
90
+ const transitionDuration = Math.min(80, formulaResultRounded);
91
+ return transitionDuration + 'ms';
92
+ });
93
+ this._totalSteps = computed(() => (this.max() - this.min()) / this.step());
94
+ this.valueChange = output();
95
+ //! tooltip
96
+ this.tooltipTemplate = contentChild(ArdSliderTooltipDirective);
97
+ this.tooltipPosition = input(SliderDecorationPosition.Top);
98
+ this.tooltipBehavior = input(SliderTooltipBehavior.Auto);
39
99
  //! event handlers
40
- this._isGrabbed = 0;
100
+ this._grabbedHandleId = signal(null);
41
101
  this._shouldCheckForMovement = false;
42
102
  this._bodyHasClass = false;
103
+ this.isSliderHandleGrabbed = computed(() => !!this._grabbedHandleId());
43
104
  //! position calculators
44
105
  this._positionPercent = [0];
45
106
  }
46
- get noTooltip() {
47
- return this._noTooltip;
48
- }
49
- set noTooltip(v) {
50
- this._noTooltip = coerceBooleanProperty(v);
51
- }
52
- get min() {
53
- return this._min;
54
- }
55
- set min(v) {
56
- this._min = coerceNumberProperty(v, 0);
57
- this._updateComputedStepSizes();
58
- this._updateTickArray();
59
- }
60
- get max() {
61
- return this._max;
62
- }
63
- set max(v) {
64
- this._max = coerceNumberProperty(v, 100);
65
- this._updateComputedStepSizes();
66
- this._updateTickArray();
67
- }
68
- get step() {
69
- return this._step;
70
- }
71
- set step(v) {
72
- this._step = coerceNumberProperty(v, 0.5);
73
- if (this._step <= 0) {
74
- throw new Error('Cannot use negative or zero step size for a slider.');
75
- }
76
- this._updateComputedStepSizes();
77
- this._updateTickArray();
78
- }
79
- get shiftMultiplier() {
80
- return this._shiftMultiplier;
81
- }
82
- set shiftMultiplier(v) {
83
- this._shiftMultiplier = coerceNumberProperty(v, 1);
84
- }
85
- _updateComputedStepSizes() {
86
- const minMaxDifference = Math.abs(this._min - this._max);
87
- this._stepSizeComputed = this._step / minMaxDifference;
88
- return this._stepSizeComputed;
89
- }
90
- get showValueTicks() {
91
- return this._showValueTicks;
92
- }
93
- set showValueTicks(v) {
94
- this._showValueTicks = coerceBooleanProperty(v);
95
- }
96
- get percentStepSize() {
97
- return this._stepSizeComputed * 100;
98
- }
99
- _updateTickArray() {
100
- let newArr = [];
101
- let positionPercentCumulative = 0;
102
- while (positionPercentCumulative < 100) {
103
- newArr.push(positionPercentCumulative);
104
- positionPercentCumulative += this._stepSizeComputed * 100;
105
- positionPercentCumulative = roundToPrecision(positionPercentCumulative, 6);
106
- }
107
- newArr.push(100);
108
- let stringArr = newArr.map(v => `${v}%`);
109
- this._tickArray = stringArr;
110
- return stringArr;
111
- }
112
- get tickArray() {
113
- return this._tickArray;
114
- }
115
- set labels(val) {
116
- if (!isDefined(val) || val.length == 0) {
117
- this.labelObjects = [];
118
- return;
119
- }
120
- this.labelObjects = val.map(this._numberLabelArrayMapFn).map(label => {
121
- let v = this._clampValue(label.for);
122
- return {
123
- label: String(label.label),
124
- positionPercent: `${this._valueToPercent(v) * 100}%`,
125
- };
126
- });
127
- }
128
107
  _numberLabelArrayMapFn(val) {
129
108
  if (isObject(val))
130
109
  return val;
@@ -133,30 +112,6 @@ export class _AbstractSlider extends _NgModelComponentBase {
133
112
  for: val,
134
113
  };
135
114
  }
136
- get compact() {
137
- return this._compact;
138
- }
139
- set compact(v) {
140
- this._compact = coerceBooleanProperty(v);
141
- }
142
- get ngClasses() {
143
- return [`ard-color-${this.color}`, `ard-labels-${this.labelPosition}`, `ard-tooltip-${this.tooltipPosition}`, this.compact ? 'ard-compact' : ''].join(' ');
144
- }
145
- //! determining transition
146
- get sliderTransition() {
147
- const x = this._totalSteps;
148
- //this is determined using this graph: https://www.geogebra.org/calculator/nqgnhpap
149
- //capped at y=80
150
- const formulaResult = (20 * (x + 200)) / (x + 20) - 80;
151
- const formulaResultRounded = roundToPrecision(formulaResult, 3);
152
- if (formulaResultRounded < 0)
153
- return '0';
154
- const transitionDuration = Math.min(80, formulaResultRounded);
155
- return transitionDuration + 'ms';
156
- }
157
- get _totalSteps() {
158
- return (this.max - this.min) / this.step;
159
- }
160
115
  set value(newValue) {
161
116
  this.writeValue(newValue);
162
117
  }
@@ -164,7 +119,7 @@ export class _AbstractSlider extends _NgModelComponentBase {
164
119
  return this._value;
165
120
  }
166
121
  _offset(offset, hasShift, handleId = 1) {
167
- let stepSize = this._stepSizeComputed * (hasShift ? this._shiftMultiplier : 1);
122
+ const stepSize = this._stepSizeComputed() * (hasShift ? this.shiftMultiplier() : 1);
168
123
  let newPercent = this._positionPercent[handleId - 1] + stepSize * offset;
169
124
  newPercent = this._clampPercentValue(newPercent);
170
125
  this._setValueFromPercent(newPercent);
@@ -172,44 +127,35 @@ export class _AbstractSlider extends _NgModelComponentBase {
172
127
  //! helper methods
173
128
  _clampValue(v) {
174
129
  //clamp between min and max
175
- v = Math.min(v, this._max);
176
- v = Math.max(v, this._min);
130
+ v = Math.min(v, this.max());
131
+ v = Math.max(v, this.min());
177
132
  //round to the nearest step
178
- v -= this._min;
179
- v = roundToMultiple(v, this._step);
180
- v += this._min;
133
+ v -= this.min();
134
+ v = roundToMultiple(v, this.step());
135
+ v += this.min();
181
136
  return v;
182
137
  }
183
138
  _valueToPercent(v) {
184
- const minMaxDifference = Math.abs(this._min - this._max);
185
- return (v - this._min) / minMaxDifference;
139
+ const minMaxDifference = Math.abs(this.min() - this.max());
140
+ return (v - this.min()) / minMaxDifference;
186
141
  }
187
142
  _emitChange() {
188
- let v = this.value;
143
+ const v = this.value;
189
144
  this._onChangeRegistered?.(v);
190
145
  this.valueChange.emit(v);
191
146
  }
192
- set tooltipBehavior(v) {
193
- this._tooltipBehavior = v;
194
- }
195
- get tooltipBehavior() {
196
- return this._tooltipBehavior;
197
- }
198
- get isSliderHandleGrabbed() {
199
- return this._isGrabbed != 0;
200
- }
201
147
  onPointerDownOnHandle(event, handleId = 1) {
202
- this._isGrabbed = handleId;
148
+ this._grabbedHandleId.set(handleId);
203
149
  this._shouldCheckForMovement = true;
204
150
  if (!this._bodyHasClass) {
205
151
  this._bodyHasClass = true;
206
152
  this.renderer.addClass(this.document.body, 'ard-prevent-touch-actions');
207
153
  }
208
154
  }
209
- onPointerUp(event) {
155
+ onPointerUp() {
210
156
  if (!this._shouldCheckForMovement)
211
157
  return;
212
- this._isGrabbed = 0;
158
+ this._grabbedHandleId.set(null);
213
159
  this._shouldCheckForMovement = false;
214
160
  if (this._bodyHasClass) {
215
161
  this._bodyHasClass = false;
@@ -220,7 +166,9 @@ export class _AbstractSlider extends _NgModelComponentBase {
220
166
  return this._positionPercent[handleId - 1] * 100 + '%';
221
167
  }
222
168
  _setValueFromPercent(percent, handleId = 1) {
223
- if (this._positionPercent[handleId - 1] == percent)
169
+ if (!handleId)
170
+ return;
171
+ if (this._positionPercent[handleId - 1] === percent)
224
172
  return;
225
173
  this._positionPercent[handleId - 1] = percent;
226
174
  this._value = this._percentValueToValue(percent, handleId);
@@ -228,18 +176,18 @@ export class _AbstractSlider extends _NgModelComponentBase {
228
176
  this._emitChange();
229
177
  }
230
178
  _writeValueFromEvent(event, handleId) {
231
- let percent = this._getPercentValueFromEvent(event);
179
+ const percent = this._getPercentValueFromEvent(event);
232
180
  this._setValueFromPercent(percent, handleId);
233
181
  }
234
182
  _getElementRect() {
235
- return this.element.nativeElement.getBoundingClientRect();
183
+ return this.elementRef().nativeElement.getBoundingClientRect();
236
184
  }
237
185
  _clampPercentValue(percent) {
238
186
  //clamp between 0 and 1
239
187
  percent = Math.min(percent, 1);
240
188
  percent = Math.max(percent, 0);
241
189
  //round to the nearest step
242
- percent = roundToMultiple(percent, this._stepSizeComputed);
190
+ percent = roundToMultiple(percent, this._stepSizeComputed());
243
191
  return percent;
244
192
  }
245
193
  _getPercentValueFromEvent(event) {
@@ -251,7 +199,7 @@ export class _AbstractSlider extends _NgModelComponentBase {
251
199
  else {
252
200
  position = event.targetTouches[0].clientX;
253
201
  }
254
- let percent = (position - rect.left) / rect.width;
202
+ const percent = (position - rect.left) / rect.width;
255
203
  return this._clampPercentValue(percent);
256
204
  }
257
205
  //! key press handlers
@@ -273,49 +221,12 @@ export class _AbstractSlider extends _NgModelComponentBase {
273
221
  _increment(event, steps = 1) {
274
222
  this._offset(+steps, event.shiftKey);
275
223
  }
276
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: _AbstractSlider, deps: [{ token: DOCUMENT }, { token: i0.Renderer2 }, { token: i1.Overlay }, { token: i1.ScrollStrategyOptions }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
277
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.7", type: _AbstractSlider, inputs: { noTooltip: "noTooltip", tooltipFormat: "tooltipFormat", min: "min", max: "max", step: "step", shiftMultiplier: "shiftMultiplier", showValueTicks: "showValueTicks", labelPosition: "labelPosition", labels: "labels", color: "color", compact: "compact", value: "value", tooltipPosition: "tooltipPosition", tooltipBehavior: "tooltipBehavior" }, outputs: { valueChange: "valueChange" }, host: { listeners: { "document:pointerup": "onPointerUp($event)", "document:touchend": "onPointerUp($event)", "keydown": "onKeyPress($event)" } }, queries: [{ propertyName: "tooltipTemplate", first: true, predicate: ArdSliderTooltipDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "element", first: true, predicate: ["track"], descendants: true }], usesInheritance: true, ngImport: i0 }); }
224
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: _AbstractSlider, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
225
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.0.2", type: _AbstractSlider, inputs: { noTooltip: { classPropertyName: "noTooltip", publicName: "noTooltip", isSignal: true, isRequired: false, transformFunction: null }, tooltipFormat: { classPropertyName: "tooltipFormat", publicName: "tooltipFormat", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, shiftMultiplier: { classPropertyName: "shiftMultiplier", publicName: "shiftMultiplier", isSignal: true, isRequired: false, transformFunction: null }, showValueTicks: { classPropertyName: "showValueTicks", publicName: "showValueTicks", isSignal: true, isRequired: false, transformFunction: null }, labelPosition: { classPropertyName: "labelPosition", publicName: "labelPosition", isSignal: true, isRequired: false, transformFunction: null }, labelObjects: { classPropertyName: "labelObjects", publicName: "labels", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, tooltipPosition: { classPropertyName: "tooltipPosition", publicName: "tooltipPosition", isSignal: true, isRequired: false, transformFunction: null }, tooltipBehavior: { classPropertyName: "tooltipBehavior", publicName: "tooltipBehavior", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, host: { listeners: { "document:pointerup": "onPointerUp($event)", "document:touchend": "onPointerUp($event)", "keydown": "onKeyPress($event)" } }, queries: [{ propertyName: "tooltipTemplate", first: true, predicate: ArdSliderTooltipDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "elementRef", first: true, predicate: ["track"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0 }); }
278
226
  }
279
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: _AbstractSlider, decorators: [{
227
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: _AbstractSlider, decorators: [{
280
228
  type: Directive
281
- }], ctorParameters: () => [{ type: Document, decorators: [{
282
- type: Inject,
283
- args: [DOCUMENT]
284
- }] }, { type: i0.Renderer2 }, { type: i1.Overlay }, { type: i1.ScrollStrategyOptions }, { type: i0.ViewContainerRef }], propDecorators: { element: [{
285
- type: ViewChild,
286
- args: ['track']
287
- }], noTooltip: [{
288
- type: Input
289
- }], tooltipFormat: [{
290
- type: Input
291
- }], min: [{
292
- type: Input
293
- }], max: [{
294
- type: Input
295
- }], step: [{
296
- type: Input
297
- }], shiftMultiplier: [{
298
- type: Input
299
- }], showValueTicks: [{
300
- type: Input
301
- }], labelPosition: [{
302
- type: Input
303
- }], labels: [{
304
- type: Input
305
- }], color: [{
306
- type: Input
307
- }], compact: [{
308
- type: Input
309
- }], value: [{
310
- type: Input
311
- }], valueChange: [{
312
- type: Output
313
- }], tooltipTemplate: [{
314
- type: ContentChild,
315
- args: [ArdSliderTooltipDirective, { read: TemplateRef }]
316
- }], tooltipPosition: [{
317
- type: Input
318
- }], tooltipBehavior: [{
229
+ }], propDecorators: { value: [{
319
230
  type: Input
320
231
  }], onPointerUp: [{
321
232
  type: HostListener,
@@ -327,4 +238,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
327
238
  type: HostListener,
328
239
  args: ['keydown', ['$event']]
329
240
  }] } });
330
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtc2xpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9zbGlkZXIvYWJzdHJhY3Qtc2xpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsWUFBWSxFQUNaLFNBQVMsRUFFVCxZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUVOLFdBQVcsRUFDWCxTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsd0JBQXdCLEVBQXFCLHFCQUFxQixFQUFxRCxNQUFNLGdCQUFnQixDQUFDOzs7QUFHdkosTUFBTSxPQUFnQixlQUFtQixTQUFRLHFCQUFxQjtJQUlwRSxZQUM4QixRQUFrQixFQUNwQyxRQUFtQixFQUNuQixPQUFnQixFQUNoQixrQkFBeUMsRUFDekMsZ0JBQWtDO1FBRTVDLEtBQUssRUFBRSxDQUFDO1FBTm9CLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDcEMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBdUI7UUFDekMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUt0QyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBYXBDLHdCQUF3QjtRQUNkLFNBQUksR0FBVyxDQUFDLENBQUM7UUFVakIsU0FBSSxHQUFXLEdBQUcsQ0FBQztRQVVuQixVQUFLLEdBQVcsQ0FBQyxDQUFDO1FBYWxCLHFCQUFnQixHQUFXLENBQUMsQ0FBQztRQVM3QixzQkFBaUIsR0FBVyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQU90RSxlQUFlO1FBQ0wsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFZakMsZUFBVSxHQUFhLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBcUJ6RCxVQUFVO1FBQ0Qsa0JBQWEsR0FBNkIsd0JBQXdCLENBQUMsTUFBTSxDQUFDO1FBQzVFLGlCQUFZLEdBQWlDLEVBQUUsQ0FBQztRQXVCdkQsY0FBYztRQUNMLFVBQUssR0FBeUIsb0JBQW9CLENBQUMsT0FBTyxDQUFDO1FBRTVELGFBQVEsR0FBWSxLQUFLLENBQUM7UUF3Q3hCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUssQ0FBQztRQXdDckMsb0JBQWUsR0FBNkIsd0JBQXdCLENBQUMsR0FBRyxDQUFDO1FBRTFFLHFCQUFnQixHQUEwQixxQkFBcUIsQ0FBQyxJQUFJLENBQUM7UUFTN0Usa0JBQWtCO1FBQ1IsZUFBVSxHQUFXLENBQUMsQ0FBQztRQUN2Qiw0QkFBdUIsR0FBWSxLQUFLLENBQUM7UUFDekMsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUE4QnpDLHdCQUF3QjtRQUNkLHFCQUFnQixHQUFnQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBNVA5RCxDQUFDO0lBR0QsSUFDSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFJLFNBQVMsQ0FBQyxDQUFNO1FBQ2xCLElBQUksQ0FBQyxVQUFVLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQVFELElBQ0ksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBQ0QsSUFBSSxHQUFHLENBQUMsQ0FBTTtRQUNaLElBQUksQ0FBQyxJQUFJLEdBQUcsb0JBQW9CLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUNJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUNELElBQUksR0FBRyxDQUFDLENBQU07UUFDWixJQUFJLENBQUMsSUFBSSxHQUFHLG9CQUFvQixDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFDSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFJLElBQUksQ0FBQyxDQUFNO1FBQ2IsSUFBSSxDQUFDLEtBQUssR0FBRyxvQkFBb0IsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDMUMsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsRUFBRTtZQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7U0FDeEU7UUFDRCxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFDSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFDRCxJQUFJLGVBQWUsQ0FBQyxDQUFNO1FBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxvQkFBb0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUdTLHdCQUF3QjtRQUNoQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsZ0JBQWdCLENBQUM7UUFDdkQsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQztJQUlELElBQ0ksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUNELElBQUksY0FBYyxDQUFDLENBQU07UUFDdkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztJQUN0QyxDQUFDO0lBRVMsZ0JBQWdCO1FBQ3hCLElBQUksTUFBTSxHQUFhLEVBQUUsQ0FBQztRQUMxQixJQUFJLHlCQUF5QixHQUFXLENBQUMsQ0FBQztRQUUxQyxPQUFPLHlCQUF5QixHQUFHLEdBQUcsRUFBRTtZQUN0QyxNQUFNLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUM7WUFDdkMseUJBQXlCLElBQUksSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztZQUMxRCx5QkFBeUIsR0FBRyxnQkFBZ0IsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUM1RTtRQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFakIsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV6QyxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztRQUM1QixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBQ0QsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFLRCxJQUNJLE1BQU0sQ0FBQyxHQUEwQztRQUNuRCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1lBQ3ZCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbkUsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEMsT0FBTztnQkFDTCxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQzFCLGVBQWUsRUFBRSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHO2FBQ3JELENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDUyxzQkFBc0IsQ0FBQyxHQUErQjtRQUM5RCxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPLEdBQUcsQ0FBQztRQUM5QixPQUFPO1lBQ0wsS0FBSyxFQUFFLEdBQUc7WUFDVixHQUFHLEVBQUUsR0FBRztTQUNULENBQUM7SUFDSixDQUFDO0lBTUQsSUFDSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxDQUFNO1FBQ2hCLElBQUksQ0FBQyxRQUFRLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sQ0FBQyxhQUFhLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxjQUFjLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxlQUFlLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3SixDQUFDO0lBRUQsMEJBQTBCO0lBQzFCLElBQUksZ0JBQWdCO1FBQ2xCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDM0IsbUZBQW1GO1FBQ25GLGdCQUFnQjtRQUNoQixNQUFNLGFBQWEsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN2RCxNQUFNLG9CQUFvQixHQUFHLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVoRSxJQUFJLG9CQUFvQixHQUFHLENBQUM7WUFBRSxPQUFPLEdBQUcsQ0FBQztRQUV6QyxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFDOUQsT0FBTyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7SUFDbkMsQ0FBQztJQUNELElBQVksV0FBVztRQUNyQixPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztJQUMzQyxDQUFDO0lBS0QsSUFDSSxLQUFLLENBQUMsUUFBVztRQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQVNTLE9BQU8sQ0FBQyxNQUFjLEVBQUUsUUFBaUIsRUFBRSxXQUFtQixDQUFDO1FBQ3ZFLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvRSxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxHQUFHLFFBQVEsR0FBRyxNQUFNLENBQUM7UUFDekUsVUFBVSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELGtCQUFrQjtJQUNSLFdBQVcsQ0FBQyxDQUFTO1FBQzdCLDJCQUEyQjtRQUMzQixDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsMkJBQTJCO1FBQzNCLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ2YsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ2YsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ1MsZUFBZSxDQUFDLENBQVM7UUFDakMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pELE9BQU8sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLGdCQUFnQixDQUFDO0lBQzVDLENBQUM7SUFDUyxXQUFXO1FBQ25CLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQVNELElBQ0ksZUFBZSxDQUFDLENBQXdCO1FBQzFDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvQixDQUFDO0lBT0QsSUFBSSxxQkFBcUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBR0QscUJBQXFCLENBQUMsS0FBOEIsRUFBRSxXQUFtQixDQUFDO1FBQ3hFLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO1FBQzNCLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7WUFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztTQUN6RTtJQUNILENBQUM7SUFNRCxXQUFXLENBQUMsS0FBOEI7UUFDeEMsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUI7WUFBRSxPQUFPO1FBQzFDLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFDckMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1lBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLDJCQUEyQixDQUFDLENBQUM7U0FDNUU7SUFDSCxDQUFDO0lBSUQsaUJBQWlCLENBQUMsV0FBbUIsQ0FBQztRQUNwQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUN6RCxDQUFDO0lBQ1Msb0JBQW9CLENBQUMsT0FBZSxFQUFFLFdBQW1CLENBQUM7UUFDbEUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxJQUFJLE9BQU87WUFBRSxPQUFPO1FBQzNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDO1FBQzlDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUUzRCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUUzQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUNTLG9CQUFvQixDQUFDLEtBQThCLEVBQUUsUUFBaUI7UUFDOUUsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUdTLGVBQWU7UUFDdkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQzVELENBQUM7SUFDUyxrQkFBa0IsQ0FBQyxPQUFlO1FBQzFDLHVCQUF1QjtRQUN2QixPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDL0IsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQy9CLDJCQUEyQjtRQUMzQixPQUFPLEdBQUcsZUFBZSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMzRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBQ1MseUJBQXlCLENBQUMsS0FBOEI7UUFDaEUsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3BDLElBQUksUUFBZ0IsQ0FBQztRQUNyQixJQUFJLEtBQUssWUFBWSxVQUFVLEVBQUU7WUFDL0IsUUFBUSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7U0FDMUI7YUFBTTtZQUNMLFFBQVEsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztTQUMzQztRQUNELElBQUksT0FBTyxHQUFHLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ2xELE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFDRCxzQkFBc0I7SUFFdEIsVUFBVSxDQUFDLEtBQW9CO1FBQzdCLFFBQVEsS0FBSyxDQUFDLElBQUksRUFBRTtZQUNsQixLQUFLLFdBQVcsQ0FBQyxDQUFDO2dCQUNoQixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN2QixPQUFPO2FBQ1I7WUFDRCxLQUFLLFlBQVksQ0FBQyxDQUFDO2dCQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN2QixPQUFPO2FBQ1I7U0FDRjtJQUNILENBQUM7SUFDUyxVQUFVLENBQUMsS0FBb0IsRUFBRSxRQUFnQixDQUFDO1FBQzFELElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFDUyxVQUFVLENBQUMsS0FBb0IsRUFBRSxRQUFnQixDQUFDO1FBQzFELElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7OEdBcFVtQixlQUFlLGtCQUt6QixRQUFRO2tHQUxFLGVBQWUsaW1CQXdOckIseUJBQXlCLDJCQUFVLFdBQVc7OzJGQXhOeEMsZUFBZTtrQkFEcEMsU0FBUzs7MEJBTUwsTUFBTTsyQkFBQyxRQUFROzBKQUhGLE9BQU87c0JBRHRCLFNBQVM7dUJBQUMsT0FBTztnQkFlZCxTQUFTO3NCQURaLEtBQUs7Z0JBUUcsYUFBYTtzQkFBckIsS0FBSztnQkFPRixHQUFHO3NCQUROLEtBQUs7Z0JBV0YsR0FBRztzQkFETixLQUFLO2dCQVdGLElBQUk7c0JBRFAsS0FBSztnQkFjRixlQUFlO3NCQURsQixLQUFLO2dCQWtCRixjQUFjO3NCQURqQixLQUFLO2dCQWlDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdGLE1BQU07c0JBRFQsS0FBSztnQkF1QkcsS0FBSztzQkFBYixLQUFLO2dCQUlGLE9BQU87c0JBRFYsS0FBSztnQkFpQ0YsS0FBSztzQkFEUixLQUFLO2dCQU9JLFdBQVc7c0JBQXBCLE1BQU07Z0JBc0NQLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyx5QkFBeUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBR3JELGVBQWU7c0JBQXZCLEtBQUs7Z0JBSUYsZUFBZTtzQkFEbEIsS0FBSztnQkErQk4sV0FBVztzQkFGVixZQUFZO3VCQUFDLG9CQUFvQixFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDN0MsWUFBWTt1QkFBQyxtQkFBbUIsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkF1RDdDLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdmVybGF5LCBTY3JvbGxTdHJhdGVneU9wdGlvbnMgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb250ZW50Q2hpbGQsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgY29lcmNlTnVtYmVyUHJvcGVydHkgfSBmcm9tICdAYXJkaXVtLXVpL2RldmtpdCc7XG5pbXBvcnQgeyByb3VuZFRvTXVsdGlwbGUsIHJvdW5kVG9QcmVjaXNpb24gfSBmcm9tICdtb3JlLXJvdW5kaW5nJztcbmltcG9ydCB7IGlzRGVmaW5lZCwgaXNPYmplY3QgfSBmcm9tICdzaW1wbGUtYm9vbCc7XG5pbXBvcnQgeyBfTmdNb2RlbENvbXBvbmVudEJhc2UgfSBmcm9tICcuLi9faW50ZXJuYWwvbmdtb2RlbC1jb21wb25lbnQnO1xuaW1wb3J0IHsgU2ltcGxlQ29tcG9uZW50Q29sb3IgfSBmcm9tICcuLi90eXBlcy9jb2xvcnMudHlwZXMnO1xuaW1wb3J0IHsgQXJkU2xpZGVyVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJy4vc2xpZGVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTbGlkZXJEZWNvcmF0aW9uUG9zaXRpb24sIFNsaWRlckxhYmVsT2JqZWN0LCBTbGlkZXJUb29sdGlwQmVoYXZpb3IsIFNsaWRlclRvb2x0aXBGb3JtYXRGbiwgX0ludGVybmFsU2xpZGVyTGFiZWxPYmplY3QgfSBmcm9tICcuL3NsaWRlci50eXBlcyc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIF9BYnN0cmFjdFNsaWRlcjxUPiBleHRlbmRzIF9OZ01vZGVsQ29tcG9uZW50QmFzZSB7XG4gIEBWaWV3Q2hpbGQoJ3RyYWNrJylcbiAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcm90ZWN0ZWQgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgIHByb3RlY3RlZCByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByb3RlY3RlZCBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByb3RlY3RlZCBzY3JvbGxTdHJhdGVneU9wdHM6IFNjcm9sbFN0cmF0ZWd5T3B0aW9ucyxcbiAgICBwcm90ZWN0ZWQgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZlxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfbm9Ub29sdGlwOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpXG4gIGdldCBub1Rvb2x0aXAoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX25vVG9vbHRpcDtcbiAgfVxuICBzZXQgbm9Ub29sdGlwKHY6IGFueSkge1xuICAgIHRoaXMuX25vVG9vbHRpcCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KTtcbiAgfVxuXG4gIEBJbnB1dCgpIHRvb2x0aXBGb3JtYXQ/OiBTbGlkZXJUb29sdGlwRm9ybWF0Rm47XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IF91cGRhdGVUb29sdGlwVmFsdWUoKTogdm9pZDtcblxuICAvLyEgbWluLCBtYXgsIHN0ZXAgc2l6ZXNcbiAgcHJvdGVjdGVkIF9taW46IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpXG4gIGdldCBtaW4oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbWluO1xuICB9XG4gIHNldCBtaW4odjogYW55KSB7XG4gICAgdGhpcy5fbWluID0gY29lcmNlTnVtYmVyUHJvcGVydHkodiwgMCk7XG4gICAgdGhpcy5fdXBkYXRlQ29tcHV0ZWRTdGVwU2l6ZXMoKTtcbiAgICB0aGlzLl91cGRhdGVUaWNrQXJyYXkoKTtcbiAgfVxuICBwcm90ZWN0ZWQgX21heDogbnVtYmVyID0gMTAwO1xuICBASW5wdXQoKVxuICBnZXQgbWF4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX21heDtcbiAgfVxuICBzZXQgbWF4KHY6IGFueSkge1xuICAgIHRoaXMuX21heCA9IGNvZXJjZU51bWJlclByb3BlcnR5KHYsIDEwMCk7XG4gICAgdGhpcy5fdXBkYXRlQ29tcHV0ZWRTdGVwU2l6ZXMoKTtcbiAgICB0aGlzLl91cGRhdGVUaWNrQXJyYXkoKTtcbiAgfVxuICBwcm90ZWN0ZWQgX3N0ZXA6IG51bWJlciA9IDE7XG4gIEBJbnB1dCgpXG4gIGdldCBzdGVwKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3N0ZXA7XG4gIH1cbiAgc2V0IHN0ZXAodjogYW55KSB7XG4gICAgdGhpcy5fc3RlcCA9IGNvZXJjZU51bWJlclByb3BlcnR5KHYsIDAuNSk7XG4gICAgaWYgKHRoaXMuX3N0ZXAgPD0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgdXNlIG5lZ2F0aXZlIG9yIHplcm8gc3RlcCBzaXplIGZvciBhIHNsaWRlci4nKTtcbiAgICB9XG4gICAgdGhpcy5fdXBkYXRlQ29tcHV0ZWRTdGVwU2l6ZXMoKTtcbiAgICB0aGlzLl91cGRhdGVUaWNrQXJyYXkoKTtcbiAgfVxuICBwcm90ZWN0ZWQgX3NoaWZ0TXVsdGlwbGllcjogbnVtYmVyID0gNTtcbiAgQElucHV0KClcbiAgZ2V0IHNoaWZ0TXVsdGlwbGllcigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9zaGlmdE11bHRpcGxpZXI7XG4gIH1cbiAgc2V0IHNoaWZ0TXVsdGlwbGllcih2OiBhbnkpIHtcbiAgICB0aGlzLl9zaGlmdE11bHRpcGxpZXIgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2LCAxKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfc3RlcFNpemVDb21wdXRlZDogbnVtYmVyID0gdGhpcy5fdXBkYXRlQ29tcHV0ZWRTdGVwU2l6ZXMoKTtcbiAgcHJvdGVjdGVkIF91cGRhdGVDb21wdXRlZFN0ZXBTaXplcygpOiBudW1iZXIge1xuICAgIGNvbnN0IG1pbk1heERpZmZlcmVuY2UgPSBNYXRoLmFicyh0aGlzLl9taW4gLSB0aGlzLl9tYXgpO1xuICAgIHRoaXMuX3N0ZXBTaXplQ29tcHV0ZWQgPSB0aGlzLl9zdGVwIC8gbWluTWF4RGlmZmVyZW5jZTtcbiAgICByZXR1cm4gdGhpcy5fc3RlcFNpemVDb21wdXRlZDtcbiAgfVxuXG4gIC8vISB2YWx1ZSB0aWNrc1xuICBwcm90ZWN0ZWQgX3Nob3dWYWx1ZVRpY2tzOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpXG4gIGdldCBzaG93VmFsdWVUaWNrcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc2hvd1ZhbHVlVGlja3M7XG4gIH1cbiAgc2V0IHNob3dWYWx1ZVRpY2tzKHY6IGFueSkge1xuICAgIHRoaXMuX3Nob3dWYWx1ZVRpY2tzID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpO1xuICB9XG5cbiAgZ2V0IHBlcmNlbnRTdGVwU2l6ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9zdGVwU2l6ZUNvbXB1dGVkICogMTAwO1xuICB9XG4gIHByb3RlY3RlZCBfdGlja0FycmF5OiBzdHJpbmdbXSA9IHRoaXMuX3VwZGF0ZVRpY2tBcnJheSgpO1xuICBwcm90ZWN0ZWQgX3VwZGF0ZVRpY2tBcnJheSgpOiBzdHJpbmdbXSB7XG4gICAgbGV0IG5ld0FycjogbnVtYmVyW10gPSBbXTtcbiAgICBsZXQgcG9zaXRpb25QZXJjZW50Q3VtdWxhdGl2ZTogbnVtYmVyID0gMDtcblxuICAgIHdoaWxlIChwb3NpdGlvblBlcmNlbnRDdW11bGF0aXZlIDwgMTAwKSB7XG4gICAgICBuZXdBcnIucHVzaChwb3NpdGlvblBlcmNlbnRDdW11bGF0aXZlKTtcbiAgICAgIHBvc2l0aW9uUGVyY2VudEN1bXVsYXRpdmUgKz0gdGhpcy5fc3RlcFNpemVDb21wdXRlZCAqIDEwMDtcbiAgICAgIHBvc2l0aW9uUGVyY2VudEN1bXVsYXRpdmUgPSByb3VuZFRvUHJlY2lzaW9uKHBvc2l0aW9uUGVyY2VudEN1bXVsYXRpdmUsIDYpO1xuICAgIH1cbiAgICBuZXdBcnIucHVzaCgxMDApO1xuXG4gICAgbGV0IHN0cmluZ0FyciA9IG5ld0Fyci5tYXAodiA9PiBgJHt2fSVgKTtcblxuICAgIHRoaXMuX3RpY2tBcnJheSA9IHN0cmluZ0FycjtcbiAgICByZXR1cm4gc3RyaW5nQXJyO1xuICB9XG4gIGdldCB0aWNrQXJyYXkoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl90aWNrQXJyYXk7XG4gIH1cblxuICAvLyEgbGFiZWxzXG4gIEBJbnB1dCgpIGxhYmVsUG9zaXRpb246IFNsaWRlckRlY29yYXRpb25Qb3NpdGlvbiA9IFNsaWRlckRlY29yYXRpb25Qb3NpdGlvbi5Cb3R0b207XG4gIHB1YmxpYyBsYWJlbE9iamVjdHM6IF9JbnRlcm5hbFNsaWRlckxhYmVsT2JqZWN0W10gPSBbXTtcbiAgQElucHV0KClcbiAgc2V0IGxhYmVscyh2YWw6IFNsaWRlckxhYmVsT2JqZWN0W10gfCBudW1iZXJbXSB8IG51bGwpIHtcbiAgICBpZiAoIWlzRGVmaW5lZCh2YWwpIHx8IHZhbC5sZW5ndGggPT0gMCkge1xuICAgICAgdGhpcy5sYWJlbE9iamVjdHMgPSBbXTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5sYWJlbE9iamVjdHMgPSB2YWwubWFwKHRoaXMuX251bWJlckxhYmVsQXJyYXlNYXBGbikubWFwKGxhYmVsID0+IHtcbiAgICAgIGxldCB2ID0gdGhpcy5fY2xhbXBWYWx1ZShsYWJlbC5mb3IpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGFiZWw6IFN0cmluZyhsYWJlbC5sYWJlbCksXG4gICAgICAgIHBvc2l0aW9uUGVyY2VudDogYCR7dGhpcy5fdmFsdWVUb1BlcmNlbnQodikgKiAxMDB9JWAsXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG4gIHByb3RlY3RlZCBfbnVtYmVyTGFiZWxBcnJheU1hcEZuKHZhbDogU2xpZGVyTGFiZWxPYmplY3QgfCBudW1iZXIpOiBTbGlkZXJMYWJlbE9iamVjdCB7XG4gICAgaWYgKGlzT2JqZWN0KHZhbCkpIHJldHVybiB2YWw7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxhYmVsOiB2YWwsXG4gICAgICBmb3I6IHZhbCxcbiAgICB9O1xuICB9XG5cbiAgLy8hIGFwcGVhcmFuY2VcbiAgQElucHV0KCkgY29sb3I6IFNpbXBsZUNvbXBvbmVudENvbG9yID0gU2ltcGxlQ29tcG9uZW50Q29sb3IuUHJpbWFyeTtcblxuICBwcml2YXRlIF9jb21wYWN0OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpXG4gIGdldCBjb21wYWN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9jb21wYWN0O1xuICB9XG4gIHNldCBjb21wYWN0KHY6IGFueSkge1xuICAgIHRoaXMuX2NvbXBhY3QgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodik7XG4gIH1cblxuICBnZXQgbmdDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFtgYXJkLWNvbG9yLSR7dGhpcy5jb2xvcn1gLCBgYXJkLWxhYmVscy0ke3RoaXMubGFiZWxQb3NpdGlvbn1gLCBgYXJkLXRvb2x0aXAtJHt0aGlzLnRvb2x0aXBQb3NpdGlvbn1gLCB0aGlzLmNvbXBhY3QgPyAnYXJkLWNvbXBhY3QnIDogJyddLmpvaW4oJyAnKTtcbiAgfVxuXG4gIC8vISBkZXRlcm1pbmluZyB0cmFuc2l0aW9uXG4gIGdldCBzbGlkZXJUcmFuc2l0aW9uKCk6IHN0cmluZyB7XG4gICAgY29uc3QgeCA9IHRoaXMuX3RvdGFsU3RlcHM7XG4gICAgLy90aGlzIGlzIGRldGVybWluZWQgdXNpbmcgdGhpcyBncmFwaDogaHR0cHM6Ly93d3cuZ2VvZ2VicmEub3JnL2NhbGN1bGF0b3IvbnFnbmhwYXBcbiAgICAvL2NhcHBlZCBhdCB5PTgwXG4gICAgY29uc3QgZm9ybXVsYVJlc3VsdCA9ICgyMCAqICh4ICsgMjAwKSkgLyAoeCArIDIwKSAtIDgwO1xuICAgIGNvbnN0IGZvcm11bGFSZXN1bHRSb3VuZGVkID0gcm91bmRUb1ByZWNpc2lvbihmb3JtdWxhUmVzdWx0LCAzKTtcblxuICAgIGlmIChmb3JtdWxhUmVzdWx0Um91bmRlZCA8IDApIHJldHVybiAnMCc7XG5cbiAgICBjb25zdCB0cmFuc2l0aW9uRHVyYXRpb24gPSBNYXRoLm1pbig4MCwgZm9ybXVsYVJlc3VsdFJvdW5kZWQpO1xuICAgIHJldHVybiB0cmFuc2l0aW9uRHVyYXRpb24gKyAnbXMnO1xuICB9XG4gIHByaXZhdGUgZ2V0IF90b3RhbFN0ZXBzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuICh0aGlzLm1heCAtIHRoaXMubWluKSAvIHRoaXMuc3RlcDtcbiAgfVxuXG4gIC8vISB2YWx1ZSBpbnB1dCAmIG91dHB1dFxuICAvLyEgYWJzdHJhY3QgaGVyZVxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgX3ZhbHVlOiBUO1xuICBASW5wdXQoKVxuICBzZXQgdmFsdWUobmV3VmFsdWU6IFQpIHtcbiAgICB0aGlzLndyaXRlVmFsdWUobmV3VmFsdWUpO1xuICB9XG4gIGdldCB2YWx1ZSgpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuXG4gIC8vISB3cml0ZVZhbHVlXG4gIC8vISBhYnN0cmFjdCBoZXJlXG4gIGFic3RyYWN0IG92ZXJyaWRlIHdyaXRlVmFsdWUodjogYW55KTogdm9pZDsgLy8qIGFic3RhY3RcbiAgLy8hIG1ldGhvZHMgZm9yIHByb2dyYW1tYXRpYyBtYW5pcHVsYXRpb25cbiAgYWJzdHJhY3QgcmVzZXQoKTogdm9pZDtcblxuICBwcm90ZWN0ZWQgX29mZnNldChvZmZzZXQ6IG51bWJlciwgaGFzU2hpZnQ6IGJvb2xlYW4sIGhhbmRsZUlkOiBudW1iZXIgPSAxKTogdm9pZCB7XG4gICAgbGV0IHN0ZXBTaXplID0gdGhpcy5fc3RlcFNpemVDb21wdXRlZCAqIChoYXNTaGlmdCA/IHRoaXMuX3NoaWZ0TXVsdGlwbGllciA6IDEpO1xuICAgIGxldCBuZXdQZXJjZW50ID0gdGhpcy5fcG9zaXRpb25QZXJjZW50W2hhbmRsZUlkIC0gMV0gKyBzdGVwU2l6ZSAqIG9mZnNldDtcbiAgICBuZXdQZXJjZW50ID0gdGhpcy5fY2xhbXBQZXJjZW50VmFsdWUobmV3UGVyY2VudCk7XG4gICAgdGhpcy5fc2V0VmFsdWVGcm9tUGVyY2VudChuZXdQZXJjZW50KTtcbiAgfVxuXG4gIC8vISBoZWxwZXIgbWV0aG9kc1xuICBwcm90ZWN0ZWQgX2NsYW1wVmFsdWUodjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAvL2NsYW1wIGJldHdlZW4gbWluIGFuZCBtYXhcbiAgICB2ID0gTWF0aC5taW4odiwgdGhpcy5fbWF4KTtcbiAgICB2ID0gTWF0aC5tYXgodiwgdGhpcy5fbWluKTtcbiAgICAvL3JvdW5kIHRvIHRoZSBuZWFyZXN0IHN0ZXBcbiAgICB2IC09IHRoaXMuX21pbjtcbiAgICB2ID0gcm91bmRUb011bHRpcGxlKHYsIHRoaXMuX3N0ZXApO1xuICAgIHYgKz0gdGhpcy5fbWluO1xuICAgIHJldHVybiB2O1xuICB9XG4gIHByb3RlY3RlZCBfdmFsdWVUb1BlcmNlbnQodjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBjb25zdCBtaW5NYXhEaWZmZXJlbmNlID0gTWF0aC5hYnModGhpcy5fbWluIC0gdGhpcy5fbWF4KTtcbiAgICByZXR1cm4gKHYgLSB0aGlzLl9taW4pIC8gbWluTWF4RGlmZmVyZW5jZTtcbiAgfVxuICBwcm90ZWN0ZWQgX2VtaXRDaGFuZ2UoKTogdm9pZCB7XG4gICAgbGV0IHYgPSB0aGlzLnZhbHVlO1xuICAgIHRoaXMuX29uQ2hhbmdlUmVnaXN0ZXJlZD8uKHYpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2KTtcbiAgfVxuXG4gIC8vISB0b29sdGlwXG4gIEBDb250ZW50Q2hpbGQoQXJkU2xpZGVyVG9vbHRpcERpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICB0b29sdGlwVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBJbnB1dCgpIHRvb2x0aXBQb3NpdGlvbjogU2xpZGVyRGVjb3JhdGlvblBvc2l0aW9uID0gU2xpZGVyRGVjb3JhdGlvblBvc2l0aW9uLlRvcDtcblxuICBwcml2YXRlIF90b29sdGlwQmVoYXZpb3I6IFNsaWRlclRvb2x0aXBCZWhhdmlvciA9IFNsaWRlclRvb2x0aXBCZWhhdmlvci5BdXRvO1xuICBASW5wdXQoKVxuICBzZXQgdG9vbHRpcEJlaGF2aW9yKHY6IFNsaWRlclRvb2x0aXBCZWhhdmlvcikge1xuICAgIHRoaXMuX3Rvb2x0aXBCZWhhdmlvciA9IHY7XG4gIH1cbiAgZ2V0IHRvb2x0aXBCZWhhdmlvcigpOiBTbGlkZXJUb29sdGlwQmVoYXZpb3Ige1xuICAgIHJldHVybiB0aGlzLl90b29sdGlwQmVoYXZpb3I7XG4gIH1cblxuICAvLyEgZXZlbnQgaGFuZGxlcnNcbiAgcHJvdGVjdGVkIF9pc0dyYWJiZWQ6IG51bWJlciA9IDA7XG4gIHByb3RlY3RlZCBfc2hvdWxkQ2hlY2tGb3JNb3ZlbWVudDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgX2JvZHlIYXNDbGFzczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGdldCBpc1NsaWRlckhhbmRsZUdyYWJiZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzR3JhYmJlZCAhPSAwO1xuICB9XG4gIGFic3RyYWN0IG9uVHJhY2tIaXRib3hQb2ludGVyRG93bihldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpOiB2b2lkOyAvLyogYWJzdGFjdFxuXG4gIG9uUG9pbnRlckRvd25PbkhhbmRsZShldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQsIGhhbmRsZUlkOiBudW1iZXIgPSAxKTogdm9pZCB7XG4gICAgdGhpcy5faXNHcmFiYmVkID0gaGFuZGxlSWQ7XG4gICAgdGhpcy5fc2hvdWxkQ2hlY2tGb3JNb3ZlbWVudCA9IHRydWU7XG4gICAgaWYgKCF0aGlzLl9ib2R5SGFzQ2xhc3MpIHtcbiAgICAgIHRoaXMuX2JvZHlIYXNDbGFzcyA9IHRydWU7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZG9jdW1lbnQuYm9keSwgJ2FyZC1wcmV2ZW50LXRvdWNoLWFjdGlvbnMnKTtcbiAgICB9XG4gIH1cblxuICBhYnN0cmFjdCBvblBvaW50ZXJNb3ZlKGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCk6IHZvaWQ7IC8vKiBhYnN0YWN0XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6cG9pbnRlcnVwJywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6dG91Y2hlbmQnLCBbJyRldmVudCddKVxuICBvblBvaW50ZXJVcChldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3Nob3VsZENoZWNrRm9yTW92ZW1lbnQpIHJldHVybjtcbiAgICB0aGlzLl9pc0dyYWJiZWQgPSAwO1xuICAgIHRoaXMuX3Nob3VsZENoZWNrRm9yTW92ZW1lbnQgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5fYm9keUhhc0NsYXNzKSB7XG4gICAgICB0aGlzLl9ib2R5SGFzQ2xhc3MgPSBmYWxzZTtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5kb2N1bWVudC5ib2R5LCAnYXJkLXByZXZlbnQtdG91Y2gtYWN0aW9ucycpO1xuICAgIH1cbiAgfVxuXG4gIC8vISBwb3NpdGlvbiBjYWxjdWxhdG9yc1xuICBwcm90ZWN0ZWQgX3Bvc2l0aW9uUGVyY2VudDogW251bWJlcl0gfCBbbnVtYmVyLCBudW1iZXJdID0gWzBdO1xuICBnZXRIYW5kbGVQb3NpdGlvbihoYW5kbGVJZDogbnVtYmVyID0gMSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3Bvc2l0aW9uUGVyY2VudFtoYW5kbGVJZCAtIDFdICogMTAwICsgJyUnO1xuICB9XG4gIHByb3RlY3RlZCBfc2V0VmFsdWVGcm9tUGVyY2VudChwZXJjZW50OiBudW1iZXIsIGhhbmRsZUlkOiBudW1iZXIgPSAxKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3Bvc2l0aW9uUGVyY2VudFtoYW5kbGVJZCAtIDFdID09IHBlcmNlbnQpIHJldHVybjtcbiAgICB0aGlzLl9wb3NpdGlvblBlcmNlbnRbaGFuZGxlSWQgLSAxXSA9IHBlcmNlbnQ7XG4gICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9wZXJjZW50VmFsdWVUb1ZhbHVlKHBlcmNlbnQsIGhhbmRsZUlkKTtcblxuICAgIHRoaXMuX3VwZGF0ZVRvb2x0aXBWYWx1ZSgpO1xuXG4gICAgdGhpcy5fZW1pdENoYW5nZSgpO1xuICB9XG4gIHByb3RlY3RlZCBfd3JpdGVWYWx1ZUZyb21FdmVudChldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQsIGhhbmRsZUlkPzogbnVtYmVyKTogdm9pZCB7XG4gICAgbGV0IHBlcmNlbnQgPSB0aGlzLl9nZXRQZXJjZW50VmFsdWVGcm9tRXZlbnQoZXZlbnQpO1xuICAgIHRoaXMuX3NldFZhbHVlRnJvbVBlcmNlbnQocGVyY2VudCwgaGFuZGxlSWQpO1xuICB9XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBfcGVyY2VudFZhbHVlVG9WYWx1ZShwZXJjZW50OiBudW1iZXIsIGhhbmRsZUlkPzogbnVtYmVyKTogVDsgLy8qIGFic3RhY3RcblxuICBwcm90ZWN0ZWQgX2dldEVsZW1lbnRSZWN0KCk6IERPTVJlY3Qge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgfVxuICBwcm90ZWN0ZWQgX2NsYW1wUGVyY2VudFZhbHVlKHBlcmNlbnQ6IG51bWJlcik6IG51bWJlciB7XG4gICAgLy9jbGFtcCBiZXR3ZWVuIDAgYW5kIDFcbiAgICBwZXJjZW50ID0gTWF0aC5taW4ocGVyY2VudCwgMSk7XG4gICAgcGVyY2VudCA9IE1hdGgubWF4KHBlcmNlbnQsIDApO1xuICAgIC8vcm91bmQgdG8gdGhlIG5lYXJlc3Qgc3RlcFxuICAgIHBlcmNlbnQgPSByb3VuZFRvTXVsdGlwbGUocGVyY2VudCwgdGhpcy5fc3RlcFNpemVDb21wdXRlZCk7XG4gICAgcmV0dXJuIHBlcmNlbnQ7XG4gIH1cbiAgcHJvdGVjdGVkIF9nZXRQZXJjZW50VmFsdWVGcm9tRXZlbnQoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KTogbnVtYmVyIHtcbiAgICBjb25zdCByZWN0ID0gdGhpcy5fZ2V0RWxlbWVudFJlY3QoKTtcbiAgICBsZXQgcG9zaXRpb246IG51bWJlcjtcbiAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBNb3VzZUV2ZW50KSB7XG4gICAgICBwb3NpdGlvbiA9IGV2ZW50LmNsaWVudFg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBvc2l0aW9uID0gZXZlbnQudGFyZ2V0VG91Y2hlc1swXS5jbGllbnRYO1xuICAgIH1cbiAgICBsZXQgcGVyY2VudCA9IChwb3NpdGlvbiAtIHJlY3QubGVmdCkgLyByZWN0LndpZHRoO1xuICAgIHJldHVybiB0aGlzLl9jbGFtcFBlcmNlbnRWYWx1ZShwZXJjZW50KTtcbiAgfVxuICAvLyEga2V5IHByZXNzIGhhbmRsZXJzXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBvbktleVByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgc3dpdGNoIChldmVudC5jb2RlKSB7XG4gICAgICBjYXNlICdBcnJvd0xlZnQnOiB7XG4gICAgICAgIHRoaXMuX2RlY3JlbWVudChldmVudCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOiB7XG4gICAgICAgIHRoaXMuX2luY3JlbWVudChldmVudCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIF9kZWNyZW1lbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQsIHN0ZXBzOiBudW1iZXIgPSAxKTogdm9pZCB7XG4gICAgdGhpcy5fb2Zmc2V0KC1zdGVwcywgZXZlbnQuc2hpZnRLZXkpO1xuICB9XG4gIHByb3RlY3RlZCBfaW5jcmVtZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50LCBzdGVwczogbnVtYmVyID0gMSk6IHZvaWQge1xuICAgIHRoaXMuX29mZnNldCgrc3RlcHMsIGV2ZW50LnNoaWZ0S2V5KTtcbiAgfVxufVxuIl19
241
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtc2xpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9zbGlkZXIvYWJzdHJhY3Qtc2xpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUNMLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFN0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDL0QsT0FBTyxFQUNMLHdCQUF3QixFQUV4QixxQkFBcUIsR0FHdEIsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFHeEIsTUFBTSxPQUFnQixlQUFtQixTQUFRLHFCQUFxQjtJQUR0RTs7UUFLa0IsZUFBVSxHQUFHLFNBQVMsQ0FBMEIsT0FBTyxDQUFDLENBQUM7UUFFdEQsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixhQUFRLEdB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USxDQUFDO2dCQXdEN0MsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXksIFNjcm9sbFN0cmF0ZWd5T3B0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIERpcmVjdGl2ZSxcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBSZW5kZXJlcjIsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBjb21wdXRlZCxcclxuICBjb250ZW50Q2hpbGQsXHJcbiAgaW5qZWN0LFxyXG4gIGlucHV0LFxyXG4gIG91dHB1dCxcclxuICBzaWduYWwsXHJcbiAgdmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIGNvZXJjZU51bWJlclByb3BlcnR5IH0gZnJvbSAnQGFyZGl1bS11aS9kZXZraXQnO1xyXG5pbXBvcnQgeyByb3VuZFRvTXVsdGlwbGUsIHJvdW5kVG9QcmVjaXNpb24gfSBmcm9tICdtb3JlLXJvdW5kaW5nJztcclxuaW1wb3J0IHsgaXNEZWZpbmVkLCBpc09iamVjdCB9IGZyb20gJ3NpbXBsZS1ib29sJztcclxuaW1wb3J0IHsgX05nTW9kZWxDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vX2ludGVybmFsL25nbW9kZWwtY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2ltcGxlQ29tcG9uZW50Q29sb3IgfSBmcm9tICcuLi90eXBlcy9jb2xvcnMudHlwZXMnO1xyXG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJy4uL3R5cGVzL3V0aWxpdHkudHlwZXMnO1xyXG5pbXBvcnQgeyBBcmRTbGlkZXJUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi9zbGlkZXIuZGlyZWN0aXZlJztcclxuaW1wb3J0IHtcclxuICBTbGlkZXJEZWNvcmF0aW9uUG9zaXRpb24sXHJcbiAgU2xpZGVyTGFiZWxPYmplY3QsXHJcbiAgU2xpZGVyVG9vbHRpcEJlaGF2aW9yLFxyXG4gIFNsaWRlclRvb2x0aXBGb3JtYXRGbixcclxuICBfSW50ZXJuYWxTbGlkZXJMYWJlbE9iamVjdCxcclxufSBmcm9tICcuL3NsaWRlci50eXBlcyc7XHJcblxyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIF9BYnN0cmFjdFNsaWRlcjxUPiBleHRlbmRzIF9OZ01vZGVsQ29tcG9uZW50QmFzZSB7XHJcbiAgYWJzdHJhY3QgcmVhZG9ubHkgY29tcG9uZW50SWQ6IHN0cmluZztcclxuICBhYnN0cmFjdCByZWFkb25seSBjb21wb25lbnROYW1lOiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyByZWFkb25seSBlbGVtZW50UmVmID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PigndHJhY2snKTtcclxuXHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgb3ZlcmxheSA9IGluamVjdChPdmVybGF5KTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2Nyb2xsU3RyYXRlZ3lPcHRzID0gaW5qZWN0KFNjcm9sbFN0cmF0ZWd5T3B0aW9ucyk7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XHJcblxyXG4gIHJlYWRvbmx5IG5vVG9vbHRpcCA9IGlucHV0PGJvb2xlYW4sIGFueT4oZmFsc2UsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuXHJcbiAgcmVhZG9ubHkgdG9vbHRpcEZvcm1hdCA9IGlucHV0PE51bGxhYmxlPFNsaWRlclRvb2x0aXBGb3JtYXRGbj4+KCk7XHJcblxyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBfdXBkYXRlVG9vbHRpcFZhbHVlKCk6IHZvaWQ7XHJcblxyXG4gIC8vISBtaW4sIG1heCwgc3RlcCBzaXplc1xyXG4gIHJlYWRvbmx5IG1pbiA9IGlucHV0PG51bWJlciwgYW55PigwLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2LCAwKSB9KTtcclxuICByZWFkb25seSBtYXggPSBpbnB1dDxudW1iZXIsIGFueT4oMTAwLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2LCAxMDApIH0pO1xyXG5cclxuICByZWFkb25seSBzdGVwID0gaW5wdXQ8bnVtYmVyLCBhbnk+KDEsIHtcclxuICAgIHRyYW5zZm9ybTogdiA9PiB7XHJcbiAgICAgIGNvbnN0IHN0ZXAgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2LCAxKTtcclxuICAgICAgaWYgKHN0ZXAgPT09IDApIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEFSRC1GVCR7dGhpcy5jb21wb25lbnRJZH0wYTogQ2Fubm90IHNldCA8YXJkLSR7dGhpcy5jb21wb25lbnROYW1lfT4ncyBbc3RlcF0gdG8gMC5gKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoc3RlcCA8IDApIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEFSRC1GVCR7dGhpcy5jb21wb25lbnRJZH0wYjogQ2Fubm90IHNldCA8YXJkLSR7dGhpcy5jb21wb25lbnROYW1lfT4ncyBbc3RlcF0gdG8gYSBuZWdhdGl2ZSB2YWx1ZSwgZ290ICR7c3RlcH0uYCk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHN0ZXA7XHJcbiAgICB9LFxyXG4gIH0pO1xyXG5cclxuICByZWFkb25seSBzaGlmdE11bHRpcGxpZXIgPSBpbnB1dDxudW1iZXIsIGFueT4oNSwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlTnVtYmVyUHJvcGVydHkodiwgMSkgfSk7XHJcblxyXG4gIHByb3RlY3RlZCByZWFkb25seSBfc3RlcFNpemVDb21wdXRlZCA9IGNvbXB1dGVkPG51bWJlcj4oKCkgPT4gdGhpcy5zdGVwKCkgLyBNYXRoLmFicyh0aGlzLm1pbigpIC0gdGhpcy5tYXgoKSkpO1xyXG5cclxuICAvLyEgdmFsdWUgdGlja3NcclxuICByZWFkb25seSBzaG93VmFsdWVUaWNrcyA9IGlucHV0PGJvb2xlYW4sIGFueT4oZmFsc2UsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuXHJcbiAgcmVhZG9ubHkgcGVyY2VudFN0ZXBTaXplID0gY29tcHV0ZWQ8bnVtYmVyPigoKSA9PiB0aGlzLl9zdGVwU2l6ZUNvbXB1dGVkKCkgKiAxMDApO1xyXG5cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3RpY2tBcnJheSA9IGNvbXB1dGVkPHN0cmluZ1tdPigoKSA9PiB7XHJcbiAgICBjb25zdCBuZXdBcnI6IG51bWJlcltdID0gW107XHJcblxyXG4gICAgbGV0IHBvc2l0aW9uUGVyY2VudEN1bXVsYXRpdmUgPSAwO1xyXG4gICAgd2hpbGUgKHBvc2l0aW9uUGVyY2VudEN1bXVsYXRpdmUgPCAxMDApIHtcclxuICAgICAgbmV3QXJyLnB1c2gocG9zaXRpb25QZXJjZW50Q3VtdWxhdGl2ZSk7XHJcbiAgICAgIHBvc2l0aW9uUGVyY2VudEN1bXVsYXRpdmUgKz0gdGhpcy5fc3RlcFNpemVDb21wdXRlZCgpICogMTAwO1xyXG4gICAgICBwb3NpdGlvblBlcmNlbnRDdW11bGF0aXZlID0gcm91bmRUb1ByZWNpc2lvbihwb3NpdGlvblBlcmNlbnRDdW11bGF0aXZlLCA2KTtcclxuICAgIH1cclxuICAgIG5ld0Fyci5wdXNoKDEwMCk7XHJcblxyXG4gICAgcmV0dXJuIG5ld0Fyci5tYXAodiA9PiBgJHt2fSVgKTtcclxuICB9KTtcclxuXHJcbiAgLy8hIGxhYmVsc1xyXG4gIHJlYWRvbmx5IGxhYmVsUG9zaXRpb24gPSBpbnB1dDxTbGlkZXJEZWNvcmF0aW9uUG9zaXRpb24+KFNsaWRlckRlY29yYXRpb25Qb3NpdGlvbi5Cb3R0b20pO1xyXG5cclxuICByZWFkb25seSBsYWJlbE9iamVjdHMgPSBpbnB1dDxfSW50ZXJuYWxTbGlkZXJMYWJlbE9iamVjdFtdLCBTbGlkZXJMYWJlbE9iamVjdFtdIHwgbnVtYmVyW10gfCBudWxsPihbXSwge1xyXG4gICAgYWxpYXM6ICdsYWJlbHMnLFxyXG4gICAgdHJhbnNmb3JtOiB2YWwgPT4ge1xyXG4gICAgICBpZiAoIWlzRGVmaW5lZCh2YWwpIHx8IHZhbC5sZW5ndGggPT09IDApIHtcclxuICAgICAgICByZXR1cm4gW107XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHZhbC5tYXAodGhpcy5fbnVtYmVyTGFiZWxBcnJheU1hcEZuKS5tYXAobGFiZWwgPT4ge1xyXG4gICAgICAgIGNvbnN0IHYgPSB0aGlzLl9jbGFtcFZhbHVlKGxhYmVsLmZvcik7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGxhYmVsOiBTdHJpbmcobGFiZWwubGFiZWwpLFxyXG4gICAgICAgICAgcG9zaXRpb25QZXJjZW50OiBgJHt0aGlzLl92YWx1ZVRvUGVyY2VudCh2KSAqIDEwMH0lYCxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICAgIH0sXHJcbiAgfSk7XHJcblxyXG4gIHByb3RlY3RlZCBfbnVtYmVyTGFiZWxBcnJheU1hcEZuKHZhbDogU2xpZGVyTGFiZWxPYmplY3QgfCBudW1iZXIpOiBTbGlkZXJMYWJlbE9iamVjdCB7XHJcbiAgICBpZiAoaXNPYmplY3QodmFsKSkgcmV0dXJuIHZhbDtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGxhYmVsOiB2YWwsXHJcbiAgICAgIGZvcjogdmFsLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8vISBhcHBlYXJhbmNlXHJcbiAgcmVhZG9ubHkgY29sb3IgPSBpbnB1dDxTaW1wbGVDb21wb25lbnRDb2xvcj4oU2ltcGxlQ29tcG9uZW50Q29sb3IuUHJpbWFyeSk7XHJcblxyXG4gIHJlYWRvbmx5IGNvbXBhY3QgPSBpbnB1dDxib29sZWFuLCBhbnk+KGZhbHNlLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XHJcblxyXG4gIHJlYWRvbmx5IG5nQ2xhc3NlcyA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT5cclxuICAgIFtcclxuICAgICAgYGFyZC1jb2xvci0ke3RoaXMuY29sb3IoKX1gLFxyXG4gICAgICBgYXJkLWxhYmVscy0ke3RoaXMubGFiZWxQb3NpdGlvbigpfWAsXHJcbiAgICAgIGBhcmQtdG9vbHRpcC0ke3RoaXMudG9vbHRpcFBvc2l0aW9uKCl9YCxcclxuICAgICAgdGhpcy5jb21wYWN0KCkgPyAnYXJkLWNvbXBhY3QnIDogJycsXHJcbiAgICBdLmpvaW4oJyAnKVxyXG4gICk7XHJcblxyXG4gIC8vISBkZXRlcm1pbmluZyB0cmFuc2l0aW9uXHJcbiAgcmVhZG9ubHkgc2xpZGVyVHJhbnNpdGlvbiA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIGNvbnN0IHggPSB0aGlzLl90b3RhbFN0ZXBzKCk7XHJcbiAgICAvL3RoaXMgaXMgZGV0ZXJtaW5lZCB1c2luZyB0aGlzIGdyYXBoOiBodHRwczovL3d3dy5nZW9nZWJyYS5vcmcvY2FsY3VsYXRvci9ucWduaHBhcFxyXG4gICAgLy9jYXBwZWQgYXQgeT04MFxyXG4gICAgLy90aGlzIHNwZWNpZmljIGdyYXBoIGlzIGNob3NlbiBiZWNhdXNlIGl0IGxvb2tzIHRoZSBiZXN0IGluIG15IG9waW5pb25cclxuICAgIGNvbnN0IGZvcm11bGFSZXN1bHQgPSAoMjAgKiAoeCArIDIwMCkpIC8gKHggKyAyMCkgLSA4MDtcclxuICAgIGNvbnN0IGZvcm11bGFSZXN1bHRSb3VuZGVkID0gcm91bmRUb1ByZWNpc2lvbihmb3JtdWxhUmVzdWx0LCAzKTtcclxuXHJcbiAgICBpZiAoZm9ybXVsYVJlc3VsdFJvdW5kZWQgPCAwKSByZXR1cm4gJzAnO1xyXG5cclxuICAgIGNvbnN0IHRyYW5zaXRpb25EdXJhdGlvbiA9IE1hdGgubWluKDgwLCBmb3JtdWxhUmVzdWx0Um91bmRlZCk7XHJcbiAgICByZXR1cm4gdHJhbnNpdGlvbkR1cmF0aW9uICsgJ21zJztcclxuICB9KTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF90b3RhbFN0ZXBzID0gY29tcHV0ZWQ8bnVtYmVyPigoKSA9PiAodGhpcy5tYXgoKSAtIHRoaXMubWluKCkpIC8gdGhpcy5zdGVwKCkpO1xyXG5cclxuICAvLyEgdmFsdWUgaW5wdXQgJiBvdXRwdXRcclxuICAvLyEgYWJzdHJhY3QgaGVyZVxyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBfdmFsdWU6IFQ7XHJcbiAgQElucHV0KClcclxuICBzZXQgdmFsdWUobmV3VmFsdWU6IFQpIHtcclxuICAgIHRoaXMud3JpdGVWYWx1ZShuZXdWYWx1ZSk7XHJcbiAgfVxyXG4gIGdldCB2YWx1ZSgpOiBUIHtcclxuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcclxuICB9XHJcbiAgcmVhZG9ubHkgdmFsdWVDaGFuZ2UgPSBvdXRwdXQ8VD4oKTtcclxuXHJcbiAgLy8hIHdyaXRlVmFsdWVcclxuICAvLyEgYWJzdHJhY3QgaGVyZVxyXG4gIGFic3RyYWN0IG92ZXJyaWRlIHdyaXRlVmFsdWUodjogYW55KTogdm9pZDsgLy8qIGFic3RhY3RcclxuICAvLyEgbWV0aG9kcyBmb3IgcHJvZ3JhbW1hdGljIG1hbmlwdWxhdGlvblxyXG4gIGFic3RyYWN0IHJlc2V0KCk6IHZvaWQ7XHJcblxyXG4gIHByb3RlY3RlZCBfb2Zmc2V0KG9mZnNldDogbnVtYmVyLCBoYXNTaGlmdDogYm9vbGVhbiwgaGFuZGxlSWQgPSAxKTogdm9pZCB7XHJcbiAgICBjb25zdCBzdGVwU2l6ZSA9IHRoaXMuX3N0ZXBTaXplQ29tcHV0ZWQoKSAqIChoYXNTaGlmdCA/IHRoaXMuc2hpZnRNdWx0aXBsaWVyKCkgOiAxKTtcclxuICAgIGxldCBuZXdQZXJjZW50ID0gdGhpcy5fcG9zaXRpb25QZXJjZW50W2hhbmRsZUlkIC0gMV0gKyBzdGVwU2l6ZSAqIG9mZnNldDtcclxuICAgIG5ld1BlcmNlbnQgPSB0aGlzLl9jbGFtcFBlcmNlbnRWYWx1ZShuZXdQZXJjZW50KTtcclxuICAgIHRoaXMuX3NldFZhbHVlRnJvbVBlcmNlbnQobmV3UGVyY2VudCk7XHJcbiAgfVxyXG5cclxuICAvLyEgaGVscGVyIG1ldGhvZHNcclxuICBwcm90ZWN0ZWQgX2NsYW1wVmFsdWUodjogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgIC8vY2xhbXAgYmV0d2VlbiBtaW4gYW5kIG1heFxyXG4gICAgdiA9IE1hdGgubWluKHYsIHRoaXMubWF4KCkpO1xyXG4gICAgdiA9IE1hdGgubWF4KHYsIHRoaXMubWluKCkpO1xyXG4gICAgLy9yb3VuZCB0byB0aGUgbmVhcmVzdCBzdGVwXHJcbiAgICB2IC09IHRoaXMubWluKCk7XHJcbiAgICB2ID0gcm91bmRUb011bHRpcGxlKHYsIHRoaXMuc3RlcCgpKTtcclxuICAgIHYgKz0gdGhpcy5taW4oKTtcclxuICAgIHJldHVybiB2O1xyXG4gIH1cclxuICBwcm90ZWN0ZWQgX3ZhbHVlVG9QZXJjZW50KHY6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICBjb25zdCBtaW5NYXhEaWZmZXJlbmNlID0gTWF0aC5hYnModGhpcy5taW4oKSAtIHRoaXMubWF4KCkpO1xyXG4gICAgcmV0dXJuICh2IC0gdGhpcy5taW4oKSkgLyBtaW5NYXhEaWZmZXJlbmNlO1xyXG4gIH1cclxuICBwcm90ZWN0ZWQgX2VtaXRDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICBjb25zdCB2ID0gdGhpcy52YWx1ZTtcclxuICAgIHRoaXMuX29uQ2hhbmdlUmVnaXN0ZXJlZD8uKHYpO1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHYpO1xyXG4gIH1cclxuXHJcbiAgLy8hIHRvb2x0aXBcclxuICByZWFkb25seSB0b29sdGlwVGVtcGxhdGUgPSBjb250ZW50Q2hpbGQoQXJkU2xpZGVyVG9vbHRpcERpcmVjdGl2ZSk7XHJcblxyXG4gIHJlYWRvbmx5IHRvb2x0aXBQb3NpdGlvbiA9IGlucHV0PFNsaWRlckRlY29yYXRpb25Qb3NpdGlvbj4oU2xpZGVyRGVjb3JhdGlvblBvc2l0aW9uLlRvcCk7XHJcbiAgcmVhZG9ubHkgdG9vbHRpcEJlaGF2aW9yID0gaW5wdXQ8U2xpZGVyVG9vbHRpcEJlaGF2aW9yPihTbGlkZXJUb29sdGlwQmVoYXZpb3IuQXV0byk7XHJcblxyXG4gIC8vISBldmVudCBoYW5kbGVyc1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBfZ3JhYmJlZEhhbmRsZUlkID0gc2lnbmFsPG51bGwgfCBudW1iZXI+KG51bGwpO1xyXG4gIHByb3RlY3RlZCBfc2hvdWxkQ2hlY2tGb3JNb3ZlbWVudCA9IGZhbHNlO1xyXG4gIHByb3RlY3RlZCBfYm9keUhhc0NsYXNzID0gZmFsc2U7XHJcblxyXG4gIHJlYWRvbmx5IGlzU2xpZGVySGFuZGxlR3JhYmJlZCA9IGNvbXB1dGVkKCgpID0+ICEhdGhpcy5fZ3JhYmJlZEhhbmRsZUlkKCkpO1xyXG5cclxuICBhYnN0cmFjdCBvblRyYWNrSGl0Ym94UG9pbnRlckRvd24oZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KTogdm9pZDsgLy8qIGFic3RhY3RcclxuXHJcbiAgb25Qb2ludGVyRG93bk9uSGFuZGxlKGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCwgaGFuZGxlSWQgPSAxKTogdm9pZCB7XHJcbiAgICB0aGlzLl9ncmFiYmVkSGFuZGxlSWQuc2V0KGhhbmRsZUlkKTtcclxuICAgIHRoaXMuX3Nob3VsZENoZWNrRm9yTW92ZW1lbnQgPSB0cnVlO1xyXG4gICAgaWYgKCF0aGlzLl9ib2R5SGFzQ2xhc3MpIHtcclxuICAgICAgdGhpcy5fYm9keUhhc0NsYXNzID0gdHJ1ZTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmRvY3VtZW50LmJvZHksICdhcmQtcHJldmVudC10b3VjaC1hY3Rpb25zJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhYnN0cmFjdCBvblBvaW50ZXJNb3ZlKGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCk6IHZvaWQ7IC8vKiBhYnN0YWN0XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OnBvaW50ZXJ1cCcsIFsnJGV2ZW50J10pXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6dG91Y2hlbmQnLCBbJyRldmVudCddKVxyXG4gIG9uUG9pbnRlclVwKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLl9zaG91bGRDaGVja0Zvck1vdmVtZW50KSByZXR1cm47XHJcbiAgICB0aGlzLl9ncmFiYmVkSGFuZGxlSWQuc2V0KG51bGwpO1xyXG4gICAgdGhpcy5fc2hvdWxkQ2hlY2tGb3JNb3ZlbWVudCA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMuX2JvZHlIYXNDbGFzcykge1xyXG4gICAgICB0aGlzLl9ib2R5SGFzQ2xhc3MgPSBmYWxzZTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmRvY3VtZW50LmJvZHksICdhcmQtcHJldmVudC10b3VjaC1hY3Rpb25zJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyEgcG9zaXRpb24gY2FsY3VsYXRvcnNcclxuICBwcm90ZWN0ZWQgX3Bvc2l0aW9uUGVyY2VudDogW251bWJlcl0gfCBbbnVtYmVyLCBudW1iZXJdID0gWzBdO1xyXG4gIGdldEhhbmRsZVBvc2l0aW9uKGhhbmRsZUlkID0gMSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fcG9zaXRpb25QZXJjZW50W2hhbmRsZUlkIC0gMV0gKiAxMDAgKyAnJSc7XHJcbiAgfVxyXG4gIHByb3RlY3RlZCBfc2V0VmFsdWVGcm9tUGVyY2VudChwZXJjZW50OiBudW1iZXIsIGhhbmRsZUlkOiBudW1iZXIgfCBudWxsID0gMSk6IHZvaWQge1xyXG4gICAgaWYgKCFoYW5kbGVJZCkgcmV0dXJuO1xyXG4gICAgaWYgKHRoaXMuX3Bvc2l0aW9uUGVyY2VudFtoYW5kbGVJZCAtIDFdID09PSBwZXJjZW50KSByZXR1cm47XHJcbiAgICB0aGlzLl9wb3NpdGlvblBlcmNlbnRbaGFuZGxlSWQgLSAxXSA9IHBlcmNlbnQ7XHJcbiAgICB0aGlzLl92YWx1ZSA9IHRoaXMuX3BlcmNlbnRWYWx1ZVRvVmFsdWUocGVyY2VudCwgaGFuZGxlSWQpO1xyXG5cclxuICAgIHRoaXMuX3VwZGF0ZVRvb2x0aXBWYWx1ZSgpO1xyXG5cclxuICAgIHRoaXMuX2VtaXRDaGFuZ2UoKTtcclxuICB9XHJcbiAgcHJvdGVjdGVkIF93cml0ZVZhbHVlRnJvbUV2ZW50KGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCwgaGFuZGxlSWQ/OiBudW1iZXIgfCBudWxsKTogdm9pZCB7XHJcbiAgICBjb25zdCBwZXJjZW50ID0gdGhpcy5fZ2V0UGVyY2VudFZhbHVlRnJvbUV2ZW50KGV2ZW50KTtcclxuICAgIHRoaXMuX3NldFZhbHVlRnJvbVBlcmNlbnQocGVyY2VudCwgaGFuZGxlSWQpO1xyXG4gIH1cclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgX3BlcmNlbnRWYWx1ZVRvVmFsdWUocGVyY2VudDogbnVtYmVyLCBoYW5kbGVJZD86IG51bWJlcik6IFQ7IC8vKiBhYnN0YWN0XHJcblxyXG4gIHByb3RlY3RlZCBfZ2V0RWxlbWVudFJlY3QoKTogRE9NUmVjdCB7XHJcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmKCkhLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgfVxyXG4gIHByb3RlY3RlZCBfY2xhbXBQZXJjZW50VmFsdWUocGVyY2VudDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgIC8vY2xhbXAgYmV0d2VlbiAwIGFuZCAxXHJcbiAgICBwZXJjZW50ID0gTWF0aC5taW4ocGVyY2VudCwgMSk7XHJcbiAgICBwZXJjZW50ID0gTWF0aC5tYXgocGVyY2VudCwgMCk7XHJcbiAgICAvL3JvdW5kIHRvIHRoZSBuZWFyZXN0IHN0ZXBcclxuICAgIHBlcmNlbnQgPSByb3VuZFRvTXVsdGlwbGUocGVyY2VudCwgdGhpcy5fc3RlcFNpemVDb21wdXRlZCgpKTtcclxuICAgIHJldHVybiBwZXJjZW50O1xyXG4gIH1cclxuICBwcm90ZWN0ZWQgX2dldFBlcmNlbnRWYWx1ZUZyb21FdmVudChldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpOiBudW1iZXIge1xyXG4gICAgY29uc3QgcmVjdCA9IHRoaXMuX2dldEVsZW1lbnRSZWN0KCk7XHJcbiAgICBsZXQgcG9zaXRpb246IG51bWJlcjtcclxuICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE1vdXNlRXZlbnQpIHtcclxuICAgICAgcG9zaXRpb24gPSBldmVudC5jbGllbnRYO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcG9zaXRpb24gPSBldmVudC50YXJnZXRUb3VjaGVzWzBdLmNsaWVudFg7XHJcbiAgICB9XHJcbiAgICBjb25zdCBwZXJjZW50ID0gKHBvc2l0aW9uIC0gcmVjdC5sZWZ0KSAvIHJlY3Qud2lkdGg7XHJcbiAgICByZXR1cm4gdGhpcy5fY2xhbXBQZXJjZW50VmFsdWUocGVyY2VudCk7XHJcbiAgfVxyXG4gIC8vISBrZXkgcHJlc3MgaGFuZGxlcnNcclxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcclxuICBvbktleVByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBzd2l0Y2ggKGV2ZW50LmNvZGUpIHtcclxuICAgICAgY2FzZSAnQXJyb3dMZWZ0Jzoge1xyXG4gICAgICAgIHRoaXMuX2RlY3JlbWVudChldmVudCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOiB7XHJcbiAgICAgICAgdGhpcy5faW5jcmVtZW50KGV2ZW50KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcHJvdGVjdGVkIF9kZWNyZW1lbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQsIHN0ZXBzID0gMSk6IHZvaWQge1xyXG4gICAgdGhpcy5fb2Zmc2V0KC1zdGVwcywgZXZlbnQuc2hpZnRLZXkpO1xyXG4gIH1cclxuICBwcm90ZWN0ZWQgX2luY3JlbWVudChldmVudDogS2V5Ym9hcmRFdmVudCwgc3RlcHMgPSAxKTogdm9pZCB7XHJcbiAgICB0aGlzLl9vZmZzZXQoK3N0ZXBzLCBldmVudC5zaGlmdEtleSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,7 @@
1
+ export * from './slider.module';
2
+ export * from './slider.component';
3
+ export * from './slider.directive';
4
+ export * from './slider.types';
5
+ export * from './range-slider/range-slider.module';
6
+ export * from './range-slider/range-slider.component';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL3NsaWRlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyx1Q0FBdUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2xpZGVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NsaWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zbGlkZXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc2xpZGVyLnR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vcmFuZ2Utc2xpZGVyL3JhbmdlLXNsaWRlci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9yYW5nZS1zbGlkZXIvcmFuZ2Utc2xpZGVyLmNvbXBvbmVudCc7XG4iXX0=