@ardium-ui/ui 1.0.3 → 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 (445) hide show
  1. package/README.md +25 -25
  2. package/esm2022/lib/_internal/boolean-component.mjs +28 -42
  3. package/esm2022/lib/_internal/clear-button/clear-button.component.mjs +5 -5
  4. package/esm2022/lib/_internal/clear-button/clear-button.module.mjs +5 -5
  5. package/esm2022/lib/_internal/disablable-component.mjs +24 -22
  6. package/esm2022/lib/_internal/focusable-component.mjs +12 -25
  7. package/esm2022/lib/_internal/item-storages/dropdown-item-storage.mjs +172 -169
  8. package/esm2022/lib/_internal/item-storages/simple-item-storage.mjs +115 -120
  9. package/esm2022/lib/_internal/item-storages/simplest-item-storage.mjs +56 -53
  10. package/esm2022/lib/_internal/models/pagination.model.mjs +72 -106
  11. package/esm2022/lib/_internal/ngmodel-component.mjs +5 -5
  12. package/esm2022/lib/_internal/queue.mjs +1 -1
  13. package/esm2022/lib/_internal/selectable-list-component.mjs +74 -98
  14. package/esm2022/lib/badge/badge.directive.mjs +70 -99
  15. package/esm2022/lib/badge/badge.module.mjs +5 -5
  16. package/esm2022/lib/badge/badge.types.mjs +1 -1
  17. package/esm2022/lib/badge/index.mjs +4 -0
  18. package/esm2022/lib/buttons/_button-base.mjs +13 -35
  19. package/esm2022/lib/buttons/button/button.component.mjs +22 -37
  20. package/esm2022/lib/buttons/button/button.module.mjs +5 -5
  21. package/esm2022/lib/buttons/button/index.mjs +3 -0
  22. package/esm2022/lib/buttons/fab/fab.component.mjs +16 -28
  23. package/esm2022/lib/buttons/fab/fab.module.mjs +5 -5
  24. package/esm2022/lib/buttons/fab/index.mjs +3 -0
  25. package/esm2022/lib/buttons/general-button.types.mjs +1 -1
  26. package/esm2022/lib/buttons/icon-button/icon-button.component.mjs +17 -25
  27. package/esm2022/lib/buttons/icon-button/icon-button.module.mjs +5 -5
  28. package/esm2022/lib/buttons/icon-button/index.mjs +3 -0
  29. package/esm2022/lib/card/card.children.mjs +32 -33
  30. package/esm2022/lib/card/card.component.mjs +14 -17
  31. package/esm2022/lib/card/card.module.mjs +5 -5
  32. package/esm2022/lib/card/card.types.mjs +1 -1
  33. package/esm2022/lib/card/index.mjs +5 -0
  34. package/esm2022/lib/checkbox/checkbox.component.mjs +33 -46
  35. package/esm2022/lib/checkbox/checkbox.module.mjs +5 -5
  36. package/esm2022/lib/checkbox/checkbox.types.mjs +1 -1
  37. package/esm2022/lib/checkbox/index.mjs +4 -0
  38. package/esm2022/lib/checkbox-list/checkbox-list.component.mjs +31 -57
  39. package/esm2022/lib/checkbox-list/checkbox-list.module.mjs +5 -5
  40. package/esm2022/lib/checkbox-list/checkbox-list.types.mjs +1 -1
  41. package/esm2022/lib/checkbox-list/index.mjs +4 -0
  42. package/esm2022/lib/chip/chip.component.mjs +22 -42
  43. package/esm2022/lib/chip/chip.module.mjs +5 -5
  44. package/esm2022/lib/chip/deletable-chip/deletable-chip.component.mjs +28 -53
  45. package/esm2022/lib/chip/index.mjs +5 -0
  46. package/esm2022/lib/chip/selectable-chip/selectable-chip.component.mjs +25 -49
  47. package/esm2022/lib/color/color-display/color-display.component.mjs +15 -32
  48. package/esm2022/lib/color/color-display/color-display.module.mjs +5 -5
  49. package/esm2022/lib/color/color-display/color-display.types.mjs +1 -1
  50. package/esm2022/lib/color/color-display/index.mjs +4 -0
  51. package/esm2022/lib/color/color-picker/color-picker.types.mjs +1 -1
  52. package/esm2022/lib/dialog/dialog.component.mjs +54 -130
  53. package/esm2022/lib/dialog/dialog.directives.mjs +4 -4
  54. package/esm2022/lib/dialog/dialog.module.mjs +5 -5
  55. package/esm2022/lib/dialog/dialog.types.mjs +1 -1
  56. package/esm2022/lib/dialog/index.mjs +5 -0
  57. package/esm2022/lib/divider/divider.component.mjs +9 -14
  58. package/esm2022/lib/divider/divider.module.mjs +5 -5
  59. package/esm2022/lib/divider/index.mjs +3 -0
  60. package/esm2022/lib/dropdown-panel/dropdown-panel.component.mjs +40 -59
  61. package/esm2022/lib/dropdown-panel/dropdown-panel.module.mjs +5 -5
  62. package/esm2022/lib/dropdown-panel/dropdown-panel.types.mjs +1 -1
  63. package/esm2022/lib/dropdown-panel/index.mjs +4 -0
  64. package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.component.mjs +12 -17
  65. package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.directives.mjs +10 -10
  66. package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.module.mjs +6 -6
  67. package/esm2022/lib/file-inputs/file-drop-area/index.mjs +4 -0
  68. package/esm2022/lib/file-inputs/file-input/file-input.component.mjs +24 -50
  69. package/esm2022/lib/file-inputs/file-input/file-input.directives.mjs +19 -19
  70. package/esm2022/lib/file-inputs/file-input/file-input.module.mjs +5 -5
  71. package/esm2022/lib/file-inputs/file-input/index.mjs +4 -0
  72. package/esm2022/lib/file-inputs/file-input-base.mjs +38 -72
  73. package/esm2022/lib/file-inputs/file-input-types.mjs +1 -1
  74. package/esm2022/lib/form-field-frame/form-field-frame.component.mjs +20 -47
  75. package/esm2022/lib/form-field-frame/form-field-frame.directives.mjs +7 -7
  76. package/esm2022/lib/form-field-frame/form-field-frame.module.mjs +5 -5
  77. package/esm2022/lib/form-field-frame/index.mjs +4 -0
  78. package/esm2022/lib/icon/icon.component.mjs +32 -67
  79. package/esm2022/lib/icon/icon.module.mjs +5 -5
  80. package/esm2022/lib/icon/icon.pipe.mjs +4 -4
  81. package/esm2022/lib/icon/index.mjs +4 -0
  82. package/esm2022/lib/inputs/color-input/color-input.directives.mjs +25 -25
  83. package/esm2022/lib/inputs/color-input/color-input.types.mjs +1 -1
  84. package/esm2022/lib/inputs/digit-input/digit-input.component.mjs +65 -115
  85. package/esm2022/lib/inputs/digit-input/digit-input.model.mjs +83 -92
  86. package/esm2022/lib/inputs/digit-input/digit-input.module.mjs +5 -5
  87. package/esm2022/lib/inputs/digit-input/digit-input.types.mjs +1 -1
  88. package/esm2022/lib/inputs/digit-input/digit-input.utils.mjs +1 -1
  89. package/esm2022/lib/inputs/digit-input/index.mjs +4 -0
  90. package/esm2022/lib/inputs/hex-input/hex-input.component.mjs +59 -122
  91. package/esm2022/lib/inputs/hex-input/hex-input.directives.mjs +10 -10
  92. package/esm2022/lib/inputs/hex-input/hex-input.module.mjs +24 -8
  93. package/esm2022/lib/inputs/hex-input/index.mjs +4 -0
  94. package/esm2022/lib/inputs/hex-input.model.mjs +24 -33
  95. package/esm2022/lib/inputs/input/index.mjs +4 -0
  96. package/esm2022/lib/inputs/input/input.component.mjs +95 -154
  97. package/esm2022/lib/inputs/input/input.directives.mjs +16 -16
  98. package/esm2022/lib/inputs/input/input.module.mjs +21 -7
  99. package/esm2022/lib/inputs/input-transformers.mjs +6 -6
  100. package/esm2022/lib/inputs/input-types.mjs +1 -1
  101. package/esm2022/lib/inputs/input-utils.mjs +75 -94
  102. package/esm2022/lib/inputs/number-input/index.mjs +4 -0
  103. package/esm2022/lib/inputs/number-input/number-input.component.mjs +106 -170
  104. package/esm2022/lib/inputs/number-input/number-input.directives.mjs +4 -4
  105. package/esm2022/lib/inputs/number-input/number-input.module.mjs +5 -5
  106. package/esm2022/lib/inputs/password-input/index.mjs +5 -0
  107. package/esm2022/lib/inputs/password-input/password-input.component.mjs +74 -144
  108. package/esm2022/lib/inputs/password-input/password-input.directives.mjs +13 -13
  109. package/esm2022/lib/inputs/password-input/password-input.module.mjs +5 -5
  110. package/esm2022/lib/inputs/password-input/password-input.types.mjs +1 -1
  111. package/esm2022/lib/inputs/simple-input/index.mjs +4 -0
  112. package/esm2022/lib/inputs/simple-input/simple-input.component.mjs +57 -110
  113. package/esm2022/lib/inputs/simple-input/simple-input.directives.mjs +10 -10
  114. package/esm2022/lib/inputs/simple-input/simple-input.module.mjs +5 -5
  115. package/esm2022/lib/kbd/index.mjs +4 -0
  116. package/esm2022/lib/kbd/kbd.component.mjs +15 -29
  117. package/esm2022/lib/kbd/kbd.module.mjs +5 -5
  118. package/esm2022/lib/kbd/kbd.pipe.mjs +4 -4
  119. package/esm2022/lib/kbd-shortcut/index.mjs +3 -0
  120. package/esm2022/lib/kbd-shortcut/kbd-shortcut.component.mjs +23 -40
  121. package/esm2022/lib/kbd-shortcut/kbd-shortcut.module.mjs +5 -5
  122. package/esm2022/lib/modal/index.mjs +3 -0
  123. package/esm2022/lib/modal/modal.component.mjs +42 -83
  124. package/esm2022/lib/modal/modal.module.mjs +5 -5
  125. package/esm2022/lib/option/index.mjs +3 -0
  126. package/esm2022/lib/option/option.component.mjs +24 -46
  127. package/esm2022/lib/option/option.module.mjs +5 -5
  128. package/esm2022/lib/progress-bar/index.mjs +5 -0
  129. package/esm2022/lib/progress-bar/progress-bar.component.mjs +43 -81
  130. package/esm2022/lib/progress-bar/progress-bar.directive.mjs +4 -4
  131. package/esm2022/lib/progress-bar/progress-bar.module.mjs +5 -5
  132. package/esm2022/lib/progress-bar/progress-bar.types.mjs +1 -1
  133. package/esm2022/lib/progress-circle/index.mjs +5 -0
  134. package/esm2022/lib/progress-circle/progress-circle.component.mjs +33 -78
  135. package/esm2022/lib/progress-circle/progress-circle.directive.mjs +4 -4
  136. package/esm2022/lib/progress-circle/progress-circle.module.mjs +5 -5
  137. package/esm2022/lib/progress-circle/progress-circle.types.mjs +1 -1
  138. package/esm2022/lib/radio/index.mjs +4 -0
  139. package/esm2022/lib/radio/radio/radio.component.mjs +16 -25
  140. package/esm2022/lib/radio/radio-group.component.mjs +71 -85
  141. package/esm2022/lib/radio/radio.module.mjs +5 -5
  142. package/esm2022/lib/search-functions.mjs +7 -7
  143. package/esm2022/lib/segment/index.mjs +5 -0
  144. package/esm2022/lib/segment/segment.component.mjs +70 -137
  145. package/esm2022/lib/segment/segment.directives.mjs +4 -4
  146. package/esm2022/lib/segment/segment.module.mjs +5 -5
  147. package/esm2022/lib/segment/segment.types.mjs +1 -1
  148. package/esm2022/lib/select/index.mjs +5 -0
  149. package/esm2022/lib/select/select.component.mjs +348 -655
  150. package/esm2022/lib/select/select.directive.mjs +46 -46
  151. package/esm2022/lib/select/select.module.mjs +5 -5
  152. package/esm2022/lib/select/select.types.mjs +1 -1
  153. package/esm2022/lib/slide-toggle/index.mjs +4 -0
  154. package/esm2022/lib/slide-toggle/slide-toggle.component.mjs +19 -24
  155. package/esm2022/lib/slide-toggle/slide-toggle.module.mjs +5 -5
  156. package/esm2022/lib/slide-toggle/slide-toggle.types.mjs +5 -0
  157. package/esm2022/lib/slider/abstract-slider.mjs +111 -200
  158. package/esm2022/lib/slider/index.mjs +7 -0
  159. package/esm2022/lib/slider/range-slider/range-slider.component.mjs +26 -23
  160. package/esm2022/lib/slider/range-slider/range-slider.module.mjs +5 -5
  161. package/esm2022/lib/slider/slider.component.mjs +13 -10
  162. package/esm2022/lib/slider/slider.directive.mjs +4 -4
  163. package/esm2022/lib/slider/slider.module.mjs +7 -7
  164. package/esm2022/lib/slider/slider.types.mjs +1 -1
  165. package/esm2022/lib/snackbar/index.mjs +1 -1
  166. package/esm2022/lib/snackbar/snackbar-ref.mjs +1 -1
  167. package/esm2022/lib/snackbar/snackbar.component.mjs +8 -8
  168. package/esm2022/lib/snackbar/snackbar.service.mjs +13 -12
  169. package/esm2022/lib/snackbar/snackbar.token.mjs +1 -1
  170. package/esm2022/lib/snackbar/snackbar.types.mjs +1 -1
  171. package/esm2022/lib/spinner/index.mjs +3 -0
  172. package/esm2022/lib/spinner/spinner.component.mjs +9 -13
  173. package/esm2022/lib/spinner/spinner.module.mjs +5 -5
  174. package/esm2022/lib/star/index.mjs +4 -0
  175. package/esm2022/lib/star/star-button/index.mjs +3 -0
  176. package/esm2022/lib/star/star-button/star-button.component.mjs +17 -26
  177. package/esm2022/lib/star/star-button/star-button.module.mjs +5 -5
  178. package/esm2022/lib/star/star-display/index.mjs +3 -0
  179. package/esm2022/lib/star/star-display/star-display.component.mjs +48 -55
  180. package/esm2022/lib/star/star-display/star-display.module.mjs +5 -5
  181. package/esm2022/lib/star/star-input/index.mjs +3 -0
  182. package/esm2022/lib/star/star-input/star-input.component.mjs +70 -106
  183. package/esm2022/lib/star/star-input/star-input.module.mjs +5 -5
  184. package/esm2022/lib/star/star.component.mjs +12 -20
  185. package/esm2022/lib/star/star.module.mjs +5 -5
  186. package/esm2022/lib/star/star.types.mjs +1 -1
  187. package/esm2022/lib/statebox/index.mjs +3 -0
  188. package/esm2022/lib/statebox/statebox.component.mjs +64 -102
  189. package/esm2022/lib/statebox/statebox.module.mjs +5 -5
  190. package/esm2022/lib/statebox/statebox.types.mjs +1 -1
  191. package/esm2022/lib/tabber/index.mjs +4 -0
  192. package/esm2022/lib/tabber/tab/tab.component.mjs +42 -0
  193. package/esm2022/lib/tabber/tabber.component.mjs +83 -0
  194. package/esm2022/lib/tabber/tabber.module.mjs +19 -0
  195. package/esm2022/lib/table/index.mjs +5 -0
  196. package/esm2022/lib/table/table-item-storage.mjs +204 -200
  197. package/esm2022/lib/table/table.component.mjs +184 -304
  198. package/esm2022/lib/table/table.directives.mjs +19 -21
  199. package/esm2022/lib/table/table.module.mjs +5 -5
  200. package/esm2022/lib/table/table.types.mjs +1 -1
  201. package/esm2022/lib/table/utils.mjs +1 -1
  202. package/esm2022/lib/table-from-csv/index.mjs +3 -0
  203. package/esm2022/lib/table-from-csv/table-from-csv.component.mjs +85 -29
  204. package/esm2022/lib/table-from-csv/table-from-csv.module.mjs +5 -5
  205. package/esm2022/lib/table-pagination/index.mjs +4 -0
  206. package/esm2022/lib/table-pagination/table-pagination.component.mjs +46 -114
  207. package/esm2022/lib/table-pagination/table-pagination.module.mjs +5 -5
  208. package/esm2022/lib/table-pagination/table-pagination.types.mjs +1 -1
  209. package/esm2022/lib/types/alignment.types.mjs +1 -1
  210. package/esm2022/lib/types/colors.types.mjs +1 -1
  211. package/esm2022/lib/types/item-storage.types.mjs +1 -1
  212. package/esm2022/lib/types/theming.types.mjs +1 -1
  213. package/esm2022/lib/types/utility.types.mjs +2 -2
  214. package/esm2022/public-api.mjs +58 -182
  215. package/fesm2022/ardium-ui-ui.mjs +7847 -11692
  216. package/fesm2022/ardium-ui-ui.mjs.map +1 -1
  217. package/lib/_internal/boolean-component.d.ts +8 -9
  218. package/lib/_internal/clear-button/clear-button.component.d.ts +1 -1
  219. package/lib/_internal/disablable-component.d.ts +12 -7
  220. package/lib/_internal/focusable-component.d.ts +5 -7
  221. package/lib/_internal/item-storages/dropdown-item-storage.d.ts +43 -41
  222. package/lib/_internal/item-storages/simple-item-storage.d.ts +28 -25
  223. package/lib/_internal/item-storages/simplest-item-storage.d.ts +14 -9
  224. package/lib/_internal/models/pagination.model.d.ts +38 -42
  225. package/lib/_internal/ngmodel-component.d.ts +1 -1
  226. package/lib/_internal/selectable-list-component.d.ts +30 -30
  227. package/lib/badge/badge.directive.d.ts +15 -20
  228. package/lib/badge/index.d.ts +3 -0
  229. package/lib/buttons/_button-base.d.ts +9 -12
  230. package/lib/buttons/button/button.component.d.ts +6 -8
  231. package/lib/buttons/button/index.d.ts +2 -0
  232. package/lib/buttons/fab/fab.component.d.ts +4 -6
  233. package/lib/buttons/fab/index.d.ts +2 -0
  234. package/lib/buttons/icon-button/icon-button.component.d.ts +6 -7
  235. package/lib/buttons/icon-button/index.d.ts +2 -0
  236. package/lib/card/card.children.d.ts +4 -3
  237. package/lib/card/card.component.d.ts +5 -4
  238. package/lib/card/index.d.ts +4 -0
  239. package/lib/checkbox/checkbox.component.d.ts +8 -12
  240. package/lib/checkbox/index.d.ts +3 -0
  241. package/lib/checkbox-list/checkbox-list.component.d.ts +22 -21
  242. package/lib/checkbox-list/index.d.ts +3 -0
  243. package/lib/chip/chip.component.d.ts +8 -10
  244. package/lib/chip/deletable-chip/deletable-chip.component.d.ts +11 -14
  245. package/lib/chip/index.d.ts +4 -0
  246. package/lib/chip/selectable-chip/selectable-chip.component.d.ts +10 -12
  247. package/lib/color/color-display/color-display.component.d.ts +6 -9
  248. package/lib/color/color-display/index.d.ts +3 -0
  249. package/lib/color/color-picker/color-picker.types.d.ts +4 -4
  250. package/lib/dialog/dialog.component.d.ts +25 -35
  251. package/lib/dialog/dialog.types.d.ts +2 -2
  252. package/lib/dialog/index.d.ts +4 -0
  253. package/lib/divider/divider.component.d.ts +3 -4
  254. package/lib/divider/index.d.ts +2 -0
  255. package/lib/dropdown-panel/dropdown-panel.component.d.ts +17 -20
  256. package/lib/dropdown-panel/index.d.ts +3 -0
  257. package/lib/file-inputs/file-drop-area/file-drop-area.component.d.ts +5 -4
  258. package/lib/file-inputs/file-drop-area/index.d.ts +3 -0
  259. package/lib/file-inputs/file-input/file-input.component.d.ts +13 -17
  260. package/lib/file-inputs/file-input/index.d.ts +3 -0
  261. package/lib/file-inputs/file-input-base.d.ts +13 -18
  262. package/lib/form-field-frame/form-field-frame.component.d.ts +12 -16
  263. package/lib/form-field-frame/index.d.ts +3 -0
  264. package/lib/icon/icon.component.d.ts +10 -19
  265. package/lib/icon/index.d.ts +3 -0
  266. package/lib/inputs/color-input/color-input.types.d.ts +2 -2
  267. package/lib/inputs/digit-input/digit-input.component.d.ts +22 -30
  268. package/lib/inputs/digit-input/digit-input.model.d.ts +8 -12
  269. package/lib/inputs/digit-input/digit-input.types.d.ts +4 -4
  270. package/lib/inputs/digit-input/digit-input.utils.d.ts +4 -5
  271. package/lib/inputs/digit-input/index.d.ts +3 -0
  272. package/lib/inputs/hex-input/hex-input.component.d.ts +32 -38
  273. package/lib/inputs/hex-input/index.d.ts +3 -0
  274. package/lib/inputs/hex-input.model.d.ts +10 -11
  275. package/lib/inputs/input/index.d.ts +3 -0
  276. package/lib/inputs/input/input.component.d.ts +34 -40
  277. package/lib/inputs/input/input.directives.d.ts +3 -3
  278. package/lib/inputs/input-utils.d.ts +24 -27
  279. package/lib/inputs/number-input/index.d.ts +3 -0
  280. package/lib/inputs/number-input/number-input.component.d.ts +38 -48
  281. package/lib/inputs/password-input/index.d.ts +4 -0
  282. package/lib/inputs/password-input/password-input.component.d.ts +28 -40
  283. package/lib/inputs/password-input/password-input.types.d.ts +2 -2
  284. package/lib/inputs/simple-input/index.d.ts +3 -0
  285. package/lib/inputs/simple-input/simple-input.component.d.ts +30 -35
  286. package/lib/kbd/index.d.ts +3 -0
  287. package/lib/kbd/kbd.component.d.ts +6 -8
  288. package/lib/kbd-shortcut/index.d.ts +2 -0
  289. package/lib/kbd-shortcut/kbd-shortcut.component.d.ts +7 -10
  290. package/lib/modal/index.d.ts +2 -0
  291. package/lib/modal/modal.component.d.ts +22 -30
  292. package/lib/option/index.d.ts +2 -0
  293. package/lib/option/option.component.d.ts +11 -16
  294. package/lib/progress-bar/index.d.ts +4 -0
  295. package/lib/progress-bar/progress-bar.component.d.ts +14 -20
  296. package/lib/progress-bar/progress-bar.types.d.ts +2 -2
  297. package/lib/progress-circle/index.d.ts +4 -0
  298. package/lib/progress-circle/progress-circle.component.d.ts +12 -20
  299. package/lib/progress-circle/progress-circle.types.d.ts +2 -2
  300. package/lib/radio/index.d.ts +3 -0
  301. package/lib/radio/radio/radio.component.d.ts +7 -8
  302. package/lib/radio/radio-group.component.d.ts +13 -16
  303. package/lib/segment/index.d.ts +4 -0
  304. package/lib/segment/segment.component.d.ts +22 -34
  305. package/lib/segment/segment.directives.d.ts +2 -3
  306. package/lib/select/index.d.ts +4 -0
  307. package/lib/select/select.component.d.ts +114 -160
  308. package/lib/select/select.directive.d.ts +3 -3
  309. package/lib/select/select.types.d.ts +2 -76
  310. package/lib/slide-toggle/index.d.ts +3 -0
  311. package/lib/slide-toggle/slide-toggle.component.d.ts +9 -7
  312. package/lib/slide-toggle/slide-toggle.types.d.ts +5 -0
  313. package/lib/slider/abstract-slider.d.ts +38 -55
  314. package/lib/slider/index.d.ts +6 -0
  315. package/lib/slider/range-slider/range-slider.component.d.ts +3 -1
  316. package/lib/slider/slider.component.d.ts +2 -0
  317. package/lib/slider/slider.types.d.ts +8 -8
  318. package/lib/snackbar/snackbar-ref.d.ts +1 -2
  319. package/lib/snackbar/snackbar.component.d.ts +3 -3
  320. package/lib/snackbar/snackbar.service.d.ts +2 -2
  321. package/lib/snackbar/snackbar.types.d.ts +4 -4
  322. package/lib/spinner/index.d.ts +2 -0
  323. package/lib/spinner/spinner.component.d.ts +3 -3
  324. package/lib/star/index.d.ts +3 -0
  325. package/lib/star/star-button/index.d.ts +2 -0
  326. package/lib/star/star-button/star-button.component.d.ts +7 -7
  327. package/lib/star/star-display/index.d.ts +2 -0
  328. package/lib/star/star-display/star-display.component.d.ts +8 -12
  329. package/lib/star/star-input/index.d.ts +2 -0
  330. package/lib/star/star-input/star-input.component.d.ts +17 -22
  331. package/lib/star/star.component.d.ts +5 -5
  332. package/lib/statebox/index.d.ts +3 -0
  333. package/lib/statebox/statebox.component.d.ts +15 -21
  334. package/lib/statebox/statebox.types.d.ts +12 -8
  335. package/lib/tabber/index.d.ts +3 -0
  336. package/lib/tabber/tab/tab.component.d.ts +18 -0
  337. package/lib/tabber/tabber.component.d.ts +25 -0
  338. package/lib/tabber/tabber.module.d.ts +9 -0
  339. package/lib/table/index.d.ts +4 -0
  340. package/lib/table/table-item-storage.d.ts +70 -58
  341. package/lib/table/table.component.d.ts +59 -78
  342. package/lib/table/table.directives.d.ts +4 -3
  343. package/lib/table-from-csv/index.d.ts +2 -0
  344. package/lib/table-from-csv/table-from-csv.component.d.ts +46 -9
  345. package/lib/table-pagination/index.d.ts +3 -0
  346. package/lib/table-pagination/table-pagination.component.d.ts +21 -30
  347. package/lib/types/item-storage.types.d.ts +19 -18
  348. package/lib/types/utility.types.d.ts +2 -1
  349. package/package.json +8 -9
  350. package/prebuilt-themes/default/badge.css +5 -5
  351. package/prebuilt-themes/default/buttons/fab.css +4 -3
  352. package/prebuilt-themes/default/buttons/fab.css.map +1 -1
  353. package/prebuilt-themes/default/card.css +7 -7
  354. package/prebuilt-themes/default/chips.css +3 -8
  355. package/prebuilt-themes/default/chips.css.map +1 -1
  356. package/prebuilt-themes/default/core.css +6 -3
  357. package/prebuilt-themes/default/core.css.map +1 -1
  358. package/prebuilt-themes/default/inputs/color-input.css +1 -1
  359. package/prebuilt-themes/default/inputs/digit-input.css +1 -1
  360. package/prebuilt-themes/default/inputs/file-input.css +139 -2
  361. package/prebuilt-themes/default/inputs/file-input.css.map +1 -1
  362. package/prebuilt-themes/default/inputs/hex-input.css +2 -2
  363. package/prebuilt-themes/default/inputs/input.css +1 -1
  364. package/prebuilt-themes/default/inputs/search-bar.css +1 -1
  365. package/prebuilt-themes/default/inputs/simple-input.css +1 -1
  366. package/prebuilt-themes/default/modal.css +1 -1
  367. package/prebuilt-themes/default/segment.css +2 -2
  368. package/prebuilt-themes/default/segment.css.map +1 -1
  369. package/prebuilt-themes/default/select.css +5 -3
  370. package/prebuilt-themes/default/select.css.map +1 -1
  371. package/prebuilt-themes/default/snackbar.css +0 -1
  372. package/prebuilt-themes/default/snackbar.css.map +1 -1
  373. package/prebuilt-themes/default/tabber.css +207 -0
  374. package/prebuilt-themes/default/tabber.css.map +1 -0
  375. package/public-api.d.ts +43 -136
  376. package/themes/_variables.scss +121 -121
  377. package/themes/default/_clear-button.scss +73 -73
  378. package/themes/default/_coloring.scss +137 -137
  379. package/themes/default/_dropdown-arrow.scss +12 -12
  380. package/themes/default/_mixins.scss +70 -70
  381. package/themes/default/badge.scss +94 -94
  382. package/themes/default/buttons/_button-mixins.scss +144 -144
  383. package/themes/default/buttons/button.scss +62 -62
  384. package/themes/default/buttons/fab.scss +74 -72
  385. package/themes/default/buttons/icon-button.scss +59 -59
  386. package/themes/default/calendar.scss +182 -182
  387. package/themes/default/card.scss +126 -126
  388. package/themes/default/checkbox-list.scss +83 -83
  389. package/themes/default/checkbox.scss +109 -109
  390. package/themes/default/chips.scss +200 -206
  391. package/themes/default/color-display.scss +41 -41
  392. package/themes/default/color-picker.scss +111 -111
  393. package/themes/default/core.scss +99 -96
  394. package/themes/default/dialog.scss +16 -16
  395. package/themes/default/divider.scss +13 -13
  396. package/themes/default/dropdown-panel.scss +45 -45
  397. package/themes/default/file-drop-area.scss +162 -162
  398. package/themes/default/form-field-frame.scss +78 -78
  399. package/themes/default/inputs/_shared.scss +46 -46
  400. package/themes/default/inputs/color-input.scss +46 -46
  401. package/themes/default/inputs/digit-input.scss +56 -56
  402. package/themes/default/inputs/file-input.scss +85 -78
  403. package/themes/default/inputs/hex-input.scss +27 -27
  404. package/themes/default/inputs/input.scss +52 -52
  405. package/themes/default/inputs/number-input.scss +121 -121
  406. package/themes/default/inputs/password-input.scss +43 -43
  407. package/themes/default/inputs/search-bar.scss +19 -19
  408. package/themes/default/inputs/simple-input.scss +19 -19
  409. package/themes/default/kbd-shortcut.scss +13 -13
  410. package/themes/default/kbd.scss +20 -20
  411. package/themes/default/modal.scss +93 -93
  412. package/themes/default/progress-bar.scss +166 -166
  413. package/themes/default/progress-circle.scss +56 -56
  414. package/themes/default/radio.scss +112 -112
  415. package/themes/default/segment.scss +340 -339
  416. package/themes/default/select.scss +255 -253
  417. package/themes/default/slide-toggle.scss +151 -151
  418. package/themes/default/slider.scss +224 -224
  419. package/themes/default/snackbar.scss +58 -60
  420. package/themes/default/spinner.scss +21 -21
  421. package/themes/default/stars.scss +122 -122
  422. package/themes/default/statebox.scss +109 -109
  423. package/themes/default/tabber.scss +86 -0
  424. package/themes/default/table-pagination.scss +56 -56
  425. package/themes/default/table.scss +403 -403
  426. package/esm2022/lib/calendar/calendar.component.mjs +0 -979
  427. package/esm2022/lib/calendar/calendar.directives.mjs +0 -107
  428. package/esm2022/lib/calendar/calendar.helpers.mjs +0 -47
  429. package/esm2022/lib/calendar/calendar.module.mjs +0 -21
  430. package/esm2022/lib/calendar/calendar.types.mjs +0 -11
  431. package/esm2022/lib/color/color-picker/color-picker.component.mjs +0 -484
  432. package/esm2022/lib/color/color-picker/color-picker.directives.mjs +0 -55
  433. package/esm2022/lib/color/color-picker/color-picker.module.mjs +0 -43
  434. package/esm2022/lib/inputs/color-input/color-input.component.mjs +0 -421
  435. package/esm2022/lib/inputs/color-input/color-input.module.mjs +0 -85
  436. package/lib/calendar/calendar.component.d.ts +0 -155
  437. package/lib/calendar/calendar.directives.d.ts +0 -51
  438. package/lib/calendar/calendar.helpers.d.ts +0 -15
  439. package/lib/calendar/calendar.module.d.ts +0 -11
  440. package/lib/calendar/calendar.types.d.ts +0 -80
  441. package/lib/color/color-picker/color-picker.component.d.ts +0 -125
  442. package/lib/color/color-picker/color-picker.directives.d.ts +0 -27
  443. package/lib/color/color-picker/color-picker.module.d.ts +0 -13
  444. package/lib/inputs/color-input/color-input.component.d.ts +0 -147
  445. package/lib/inputs/color-input/color-input.module.d.ts +0 -16
@@ -1,25 +1,23 @@
1
+ import { computed, signal } from '@angular/core';
1
2
  import resolvePath from 'resolve-object-path';
2
- import { any, isPrimitive } from 'simple-bool';
3
+ import { any, isDefined, isPrimitive } from 'simple-bool';
3
4
  export class SimplestItemStorage {
4
- get highlightedItem() {
5
- return this._highlightedItem;
6
- }
7
5
  constructor(_ardParentComp) {
8
6
  this._ardParentComp = _ardParentComp;
9
- this._items = [];
10
- this._highlightedItem = null;
11
- }
12
- /**
13
- * Gets all items.
14
- */
15
- get items() {
16
- return this._items;
17
- }
18
- /**
19
- * Returns true if at least one item is highlighted, otherwise false.
20
- */
21
- get isAnyItemHighlighted() {
22
- return this._highlightedItem != null;
7
+ this._items = signal([]);
8
+ this._highlightedItem = signal(null);
9
+ /**
10
+ * Gets all items.
11
+ */
12
+ this.items = this._items.asReadonly();
13
+ /**
14
+ * The currently highlighted item.
15
+ */
16
+ this.highlightedItem = this._highlightedItem.asReadonly();
17
+ /**
18
+ * True if at least one item is highlighted, otherwise false.
19
+ */
20
+ this.isAnyItemHighlighted = computed(() => isDefined(this._highlightedItem()));
23
21
  }
24
22
  /**
25
23
  * Sets the component's items. Takes into account the values defined by the parent component for `suggValueFrom` and `suggLabelFrom`.
@@ -32,9 +30,9 @@ export class SimplestItemStorage {
32
30
  items = items.map(this._primitiveItemsMapFn);
33
31
  areItemsPrimitive = true;
34
32
  }
35
- this._items = items.map((item, index) => {
33
+ this._items.set(items.map((item, index) => {
36
34
  return this._setItemsMapFn(item, index, areItemsPrimitive);
37
- });
35
+ }));
38
36
  return areItemsPrimitive;
39
37
  }
40
38
  _primitiveItemsMapFn(item) {
@@ -43,25 +41,28 @@ export class SimplestItemStorage {
43
41
  _setItemsMapFn(rawItemData, index, areItemsPrimitive) {
44
42
  if (areItemsPrimitive) {
45
43
  return {
46
- itemData: rawItemData,
47
- index,
48
- value: rawItemData.value,
49
- label: rawItemData.value?.toString?.() ?? String(rawItemData.value),
44
+ itemData: signal(rawItemData),
45
+ index: signal(index),
46
+ value: signal(rawItemData.value),
47
+ label: signal(rawItemData.value?.toString?.() ?? String(rawItemData.value)),
48
+ selected: signal(false),
49
+ highlighted: signal(false),
50
50
  };
51
51
  }
52
52
  //get value
53
- const valuePath = this._ardParentComp.valueFrom ?? this._ardParentComp.labelFrom ?? this._ardParentComp.DEFAULTS.valueFrom;
53
+ const valuePath = this._ardParentComp.valueFrom() ?? this._ardParentComp.labelFrom() ?? this._ardParentComp.DEFAULTS.valueFrom;
54
54
  const value = resolvePath(rawItemData, valuePath);
55
55
  //get label
56
- const labelPath = this._ardParentComp.labelFrom ?? this._ardParentComp.valueFrom ?? this._ardParentComp.DEFAULTS.labelFrom;
56
+ const labelPath = this._ardParentComp.labelFrom() ?? this._ardParentComp.valueFrom() ?? this._ardParentComp.DEFAULTS.labelFrom;
57
57
  const label = resolvePath(rawItemData, labelPath) ?? value;
58
- const itemData = areItemsPrimitive ? rawItemData.value : rawItemData;
59
58
  //return
60
59
  return {
61
- itemData,
62
- index,
63
- value,
64
- label: label?.toString?.() ?? String(label),
60
+ itemData: signal(rawItemData),
61
+ index: signal(index),
62
+ value: signal(value),
63
+ label: signal(label?.toString?.() ?? String(label)),
64
+ selected: signal(false),
65
+ highlighted: signal(false),
65
66
  };
66
67
  }
67
68
  /**
@@ -73,18 +74,20 @@ export class SimplestItemStorage {
73
74
  return item.value;
74
75
  }
75
76
  selectCurrent() {
76
- if (!this._highlightedItem)
77
+ const hi = this._highlightedItem();
78
+ if (!hi)
77
79
  return undefined;
78
- return this.selectItem(this._highlightedItem);
80
+ return this.selectItem(hi);
79
81
  }
80
82
  /**
81
83
  * Unhighlights all currently highlighted items.
82
84
  */
83
85
  unhighlightCurrent() {
84
- if (this._highlightedItem) {
85
- this._highlightedItem.highlighted = false;
86
+ const hi = this._highlightedItem();
87
+ if (hi) {
88
+ hi.highlighted.set(false);
86
89
  }
87
- this._highlightedItem = null;
90
+ this._highlightedItem.set(null);
88
91
  }
89
92
  /**
90
93
  * Highlights a given item.
@@ -92,27 +95,27 @@ export class SimplestItemStorage {
92
95
  */
93
96
  highlightItem(item) {
94
97
  this.unhighlightCurrent();
95
- item.highlighted = true;
96
- this._highlightedItem = item;
98
+ item.highlighted.set(true);
99
+ this._highlightedItem.set(item);
97
100
  }
98
101
  /**
99
102
  * Unhighlights a given item.
100
103
  * @param item The item to be unhighlighted.
101
104
  */
102
105
  unhighlightItem(item) {
103
- item.highlighted = false;
104
- if (this._highlightedItem?.index == item.index)
105
- this._highlightedItem = null;
106
+ item.highlighted.set(false);
107
+ if (this._highlightedItem()?.index() === item.index())
108
+ this._highlightedItem.set(null);
106
109
  }
107
110
  /**
108
111
  * Highlights the first item out of all items.
109
112
  * @returns The highlighted item.
110
113
  */
111
114
  highlightFirstItem() {
112
- if (!this.items.length)
115
+ if (!this._items().length)
113
116
  return null;
114
117
  this.unhighlightCurrent();
115
- let itemToHighlight = this.items.first();
118
+ const itemToHighlight = this._items().first();
116
119
  this.highlightItem(itemToHighlight);
117
120
  return itemToHighlight;
118
121
  }
@@ -121,10 +124,10 @@ export class SimplestItemStorage {
121
124
  * @returns The highlighted item.
122
125
  */
123
126
  highlightLastItem() {
124
- if (!this.items.length)
127
+ if (!this._items().length)
125
128
  return null;
126
129
  this.unhighlightCurrent();
127
- let itemToHighlight = this.items.last();
130
+ const itemToHighlight = this._items().last();
128
131
  this.highlightItem(itemToHighlight);
129
132
  return itemToHighlight;
130
133
  }
@@ -134,22 +137,22 @@ export class SimplestItemStorage {
134
137
  * @returns The item highlighted.
135
138
  */
136
139
  highlightNextItem(offset) {
137
- const currentItem = this._highlightedItem;
140
+ const currentItem = this._highlightedItem();
138
141
  if (!currentItem) {
139
142
  return this.highlightFirstItem();
140
143
  }
141
- const itemsWithoutDisabled = this._items.filter(item => !item.disabled);
142
- const currentIndexInItems = itemsWithoutDisabled.findIndex(item => item.index == currentItem.index);
144
+ const items = this._items();
145
+ const currentIndexInItems = items.findIndex(item => item.index() === currentItem.index());
143
146
  let nextItemIndex = currentIndexInItems + offset;
144
- if (nextItemIndex >= itemsWithoutDisabled.length) {
145
- nextItemIndex -= itemsWithoutDisabled.length;
147
+ if (nextItemIndex >= items.length) {
148
+ nextItemIndex -= items.length;
146
149
  }
147
150
  else if (nextItemIndex < 0) {
148
- nextItemIndex += itemsWithoutDisabled.length;
151
+ nextItemIndex += items.length;
149
152
  }
150
- const itemToHighlight = itemsWithoutDisabled[nextItemIndex];
153
+ const itemToHighlight = items[nextItemIndex];
151
154
  this.highlightItem(itemToHighlight);
152
155
  return itemToHighlight;
153
156
  }
154
157
  }
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlc3QtaXRlbS1zdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9faW50ZXJuYWwvaXRlbS1zdG9yYWdlcy9zaW1wbGVzdC1pdGVtLXN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxXQUFXLE1BQU0scUJBQXFCLENBQUM7QUFDOUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFhL0MsTUFBTSxPQUFPLG1CQUFtQjtJQUk5QixJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQztJQUVELFlBQW9CLGNBQXVDO1FBQXZDLG1CQUFjLEdBQWQsY0FBYyxDQUF5QjtRQVBuRCxXQUFNLEdBQTZCLEVBQUUsQ0FBQztRQUN0QyxxQkFBZ0IsR0FBa0MsSUFBSSxDQUFDO0lBTUQsQ0FBQztJQUUvRDs7T0FFRztJQUNILElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLG9CQUFvQjtRQUN0QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxRQUFRLENBQUMsS0FBWTtRQUNuQixJQUFJLGlCQUFpQixHQUFHLEtBQUssQ0FBQztRQUM5QixJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLEVBQUU7WUFDM0IsS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDN0MsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1NBQzFCO1FBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1lB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QUFNLENBQUM7U0FDOUM7YUFBTSxJQUFJLGFBQWEsR0FBRyxDQUFDLEVBQUU7WUFDNUIsYUFBYSxJQUFJLG9CQUFvQixDQUFDLE1BQU0sQ0FBQztTQUM5QztRQUNELE1BQU0sZUFBZSxHQUFHLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRTVELElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFcEMsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlc29sdmVQYXRoIGZyb20gJ3Jlc29sdmUtb2JqZWN0LXBhdGgnO1xyXG5pbXBvcnQgeyBhbnksIGlzUHJpbWl0aXZlIH0gZnJvbSAnc2ltcGxlLWJvb2wnO1xyXG5pbXBvcnQgeyBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtIH0gZnJvbSAnLi4vLi4vdHlwZXMvaXRlbS1zdG9yYWdlLnR5cGVzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2ltcGxlc3RJdGVtU3RvcmFnZUhvc3REZWZhdWx0cyB7XHJcbiAgdmFsdWVGcm9tOiBzdHJpbmc7XHJcbiAgbGFiZWxGcm9tOiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTaW1wbGVzdEl0ZW1TdG9yYWdlSG9zdCB7XHJcbiAgdmFsdWVGcm9tPzogc3RyaW5nO1xyXG4gIGxhYmVsRnJvbT86IHN0cmluZztcclxuICByZWFkb25seSBERUZBVUxUUzogU2ltcGxlc3RJdGVtU3RvcmFnZUhvc3REZWZhdWx0cztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNpbXBsZXN0SXRlbVN0b3JhZ2Uge1xyXG4gIHByaXZhdGUgX2l0ZW1zOiBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtW10gPSBbXTtcclxuICBwcml2YXRlIF9oaWdobGlnaHRlZEl0ZW06IEFyZFNpbXBsZXN0U3RvcmFnZUl0ZW0gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgZ2V0IGhpZ2hsaWdodGVkSXRlbSgpOiBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5faGlnaGxpZ2h0ZWRJdGVtO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfYXJkUGFyZW50Q29tcDogU2ltcGxlc3RJdGVtU3RvcmFnZUhvc3QpIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgYWxsIGl0ZW1zLlxyXG4gICAqL1xyXG4gIGdldCBpdGVtcygpOiBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2l0ZW1zO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0cnVlIGlmIGF0IGxlYXN0IG9uZSBpdGVtIGlzIGhpZ2hsaWdodGVkLCBvdGhlcndpc2UgZmFsc2UuXHJcbiAgICovXHJcbiAgZ2V0IGlzQW55SXRlbUhpZ2hsaWdodGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2hpZ2hsaWdodGVkSXRlbSAhPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgY29tcG9uZW50J3MgaXRlbXMuIFRha2VzIGludG8gYWNjb3VudCB0aGUgdmFsdWVzIGRlZmluZWQgYnkgdGhlIHBhcmVudCBjb21wb25lbnQgZm9yIGBzdWdnVmFsdWVGcm9tYCBhbmQgYHN1Z2dMYWJlbEZyb21gLlxyXG4gICAqIEBwYXJhbSBpdGVtcyBBbiBhcnJheSBvZiBpdGVtcyB0byBiZSBzZXQgYXMgdGhlIGNvbXBvbmVudCdzIGl0ZW1zLlxyXG4gICAqIEByZXR1cm5zIHRydWUgaWYgYXQgbGVhc3Qgb25lIG9mIHRoZSBpdGVtcyBpcyBvZiBwcmltaXRpdmUgdHlwZSwgb3RoZXJ3aXNlIGZhbHNlLlxyXG4gICAqL1xyXG4gIHNldEl0ZW1zKGl0ZW1zOiBhbnlbXSk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IGFyZUl0ZW1zUHJpbWl0aXZlID0gZmFsc2U7XHJcbiAgICBpZiAoYW55KGl0ZW1zLCBpc1ByaW1pdGl2ZSkpIHtcclxuICAgICAgaXRlbXMgPSBpdGVtcy5tYXAodGhpcy5fcHJpbWl0aXZlSXRlbXNNYXBGbik7XHJcbiAgICAgIGFyZUl0ZW1zUHJpbWl0aXZlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9pdGVtcyA9IGl0ZW1zLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuX3NldEl0ZW1zTWFwRm4oaXRlbSwgaW5kZXgsIGFyZUl0ZW1zUHJpbWl0aXZlKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBhcmVJdGVtc1ByaW1pdGl2ZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfcHJpbWl0aXZlSXRlbXNNYXBGbjxUPihpdGVtOiBUKTogeyB2YWx1ZTogVCB9IHtcclxuICAgIHJldHVybiB7IHZhbHVlOiBpdGVtIH07XHJcbiAgfVxyXG4gIHByaXZhdGUgX3NldEl0ZW1zTWFwRm4ocmF3SXRlbURhdGE6IGFueSwgaW5kZXg6IG51bWJlciwgYXJlSXRlbXNQcmltaXRpdmU6IGJvb2xlYW4pOiBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtIHtcclxuICAgIGlmIChhcmVJdGVtc1ByaW1pdGl2ZSkge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGl0ZW1EYXRhOiByYXdJdGVtRGF0YSxcclxuICAgICAgICBpbmRleCxcclxuICAgICAgICB2YWx1ZTogcmF3SXRlbURhdGEudmFsdWUsXHJcbiAgICAgICAgbGFiZWw6IHJhd0l0ZW1EYXRhLnZhbHVlPy50b1N0cmluZz8uKCkgPz8gU3RyaW5nKHJhd0l0ZW1EYXRhLnZhbHVlKSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIC8vZ2V0IHZhbHVlXHJcbiAgICBjb25zdCB2YWx1ZVBhdGggPSB0aGlzLl9hcmRQYXJlbnRDb21wLnZhbHVlRnJvbSA/PyB0aGlzLl9hcmRQYXJlbnRDb21wLmxhYmVsRnJvbSA/PyB0aGlzLl9hcmRQYXJlbnRDb21wLkRFRkFVTFRTLnZhbHVlRnJvbTtcclxuICAgIGNvbnN0IHZhbHVlID0gcmVzb2x2ZVBhdGgocmF3SXRlbURhdGEsIHZhbHVlUGF0aCk7XHJcblxyXG4gICAgLy9nZXQgbGFiZWxcclxuICAgIGNvbnN0IGxhYmVsUGF0aCA9IHRoaXMuX2FyZFBhcmVudENvbXAubGFiZWxGcm9tID8/IHRoaXMuX2FyZFBhcmVudENvbXAudmFsdWVGcm9tID8/IHRoaXMuX2FyZFBhcmVudENvbXAuREVGQVVMVFMubGFiZWxGcm9tO1xyXG4gICAgY29uc3QgbGFiZWwgPSByZXNvbHZlUGF0aChyYXdJdGVtRGF0YSwgbGFiZWxQYXRoKSA/PyB2YWx1ZTtcclxuXHJcbiAgICBjb25zdCBpdGVtRGF0YSA9IGFyZUl0ZW1zUHJpbWl0aXZlID8gcmF3SXRlbURhdGEudmFsdWUgOiByYXdJdGVtRGF0YTtcclxuXHJcbiAgICAvL3JldHVyblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgaXRlbURhdGEsXHJcbiAgICAgIGluZGV4LFxyXG4gICAgICB2YWx1ZSxcclxuICAgICAgbGFiZWw6IGxhYmVsPy50b1N0cmluZz8uKCkgPz8gU3RyaW5nKGxhYmVsKSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZWxlY3RzIHRoZSBnaXZlbiBpdGVtLlxyXG4gICAqIEBwYXJhbSBpdGVtcyBUaGUgaXRlbSB0byBzZWxlY3QuXHJcbiAgICogQHJldHVybnMgVGhlIHZhbHVlIG9mIHRoZSBzZWxlY3RlZCBpdGVtLlxyXG4gICAqL1xyXG4gIHNlbGVjdEl0ZW0oaXRlbTogQXJkU2ltcGxlc3RTdG9yYWdlSXRlbSk6IGFueSB7XHJcbiAgICByZXR1cm4gaXRlbS52YWx1ZTtcclxuICB9XHJcbiAgc2VsZWN0Q3VycmVudCgpOiBhbnkge1xyXG4gICAgaWYgKCF0aGlzLl9oaWdobGlnaHRlZEl0ZW0pIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RJdGVtKHRoaXMuX2hpZ2hsaWdodGVkSXRlbSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVbmhpZ2hsaWdodHMgYWxsIGN1cnJlbnRseSBoaWdobGlnaHRlZCBpdGVtcy5cclxuICAgKi9cclxuICB1bmhpZ2hsaWdodEN1cnJlbnQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5faGlnaGxpZ2h0ZWRJdGVtKSB7XHJcbiAgICAgIHRoaXMuX2hpZ2hsaWdodGVkSXRlbS5oaWdobGlnaHRlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5faGlnaGxpZ2h0ZWRJdGVtID0gbnVsbDtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogSGlnaGxpZ2h0cyBhIGdpdmVuIGl0ZW0uXHJcbiAgICogQHBhcmFtIGl0ZW0gVGhlIGl0ZW0gdG8gYmUgaGlnaGxpZ2h0ZWQuXHJcbiAgICovXHJcbiAgaGlnaGxpZ2h0SXRlbShpdGVtOiBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtKTogdm9pZCB7XHJcbiAgICB0aGlzLnVuaGlnaGxpZ2h0Q3VycmVudCgpO1xyXG5cclxuICAgIGl0ZW0uaGlnaGxpZ2h0ZWQgPSB0cnVlO1xyXG5cclxuICAgIHRoaXMuX2hpZ2hsaWdodGVkSXRlbSA9IGl0ZW07XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFVuaGlnaGxpZ2h0cyBhIGdpdmVuIGl0ZW0uXHJcbiAgICogQHBhcmFtIGl0ZW0gVGhlIGl0ZW0gdG8gYmUgdW5oaWdobGlnaHRlZC5cclxuICAgKi9cclxuICB1bmhpZ2hsaWdodEl0ZW0oaXRlbTogQXJkU2ltcGxlc3RTdG9yYWdlSXRlbSk6IHZvaWQge1xyXG4gICAgaXRlbS5oaWdobGlnaHRlZCA9IGZhbHNlO1xyXG5cclxuICAgIGlmICh0aGlzLl9oaWdobGlnaHRlZEl0ZW0/LmluZGV4ID09IGl0ZW0uaW5kZXgpIHRoaXMuX2hpZ2hsaWdodGVkSXRlbSA9IG51bGw7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEhpZ2hsaWdodHMgdGhlIGZpcnN0IGl0ZW0gb3V0IG9mIGFsbCBpdGVtcy5cclxuICAgKiBAcmV0dXJucyBUaGUgaGlnaGxpZ2h0ZWQgaXRlbS5cclxuICAgKi9cclxuICBoaWdobGlnaHRGaXJzdEl0ZW0oKTogQXJkU2ltcGxlc3RTdG9yYWdlSXRlbSB8IG51bGwge1xyXG4gICAgaWYgKCF0aGlzLml0ZW1zLmxlbmd0aCkgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgdGhpcy51bmhpZ2hsaWdodEN1cnJlbnQoKTtcclxuXHJcbiAgICBsZXQgaXRlbVRvSGlnaGxpZ2h0ID0gdGhpcy5pdGVtcy5maXJzdCgpO1xyXG4gICAgdGhpcy5oaWdobGlnaHRJdGVtKGl0ZW1Ub0hpZ2hsaWdodCk7XHJcblxyXG4gICAgcmV0dXJuIGl0ZW1Ub0hpZ2hsaWdodDtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogSGlnaGxpZ2h0cyB0aGUgbGFzdCBpdGVtIG91dCBvZiBhbGwgaXRlbXMuXHJcbiAgICogQHJldHVybnMgVGhlIGhpZ2hsaWdodGVkIGl0ZW0uXHJcbiAgICovXHJcbiAgaGlnaGxpZ2h0TGFzdEl0ZW0oKTogQXJkU2ltcGxlc3RTdG9yYWdlSXRlbSB8IG51bGwge1xyXG4gICAgaWYgKCF0aGlzLml0ZW1zLmxlbmd0aCkgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgdGhpcy51bmhpZ2hsaWdodEN1cnJlbnQoKTtcclxuXHJcbiAgICBsZXQgaXRlbVRvSGlnaGxpZ2h0ID0gdGhpcy5pdGVtcy5sYXN0KCk7XHJcbiAgICB0aGlzLmhpZ2hsaWdodEl0ZW0oaXRlbVRvSGlnaGxpZ2h0KTtcclxuXHJcbiAgICByZXR1cm4gaXRlbVRvSGlnaGxpZ2h0O1xyXG4gIH1cclxuICAvKipcclxuICAgKiBIaWdobGlnaHRzIHRoZSBuZXh0IG5vbi1kaXNhYmxlZCBpdGVtIGRlZmluZWQgYnkgdGhlIG9mZnNldCBhbW91bnQuXHJcbiAgICogQHBhcmFtIG9mZnNldCBUaGUgYW1vdW50IG9mIGl0ZW1zIHRvIG9mZnNldCB0aGUgaGlnaGxpZ2h0IGJ5LlxyXG4gICAqIEByZXR1cm5zIFRoZSBpdGVtIGhpZ2hsaWdodGVkLlxyXG4gICAqL1xyXG4gIGhpZ2hsaWdodE5leHRJdGVtKG9mZnNldDogbnVtYmVyKTogQXJkU2ltcGxlc3RTdG9yYWdlSXRlbSB8IG51bGwge1xyXG4gICAgY29uc3QgY3VycmVudEl0ZW0gPSB0aGlzLl9oaWdobGlnaHRlZEl0ZW07XHJcbiAgICBpZiAoIWN1cnJlbnRJdGVtKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmhpZ2hsaWdodEZpcnN0SXRlbSgpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgaXRlbXNXaXRob3V0RGlzYWJsZWQgPSB0aGlzLl9pdGVtcy5maWx0ZXIoaXRlbSA9PiAhaXRlbS5kaXNhYmxlZCk7XHJcbiAgICBjb25zdCBjdXJyZW50SW5kZXhJbkl0ZW1zID0gaXRlbXNXaXRob3V0RGlzYWJsZWQuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5pbmRleCA9PSBjdXJyZW50SXRlbS5pbmRleCk7XHJcblxyXG4gICAgbGV0IG5leHRJdGVtSW5kZXggPSBjdXJyZW50SW5kZXhJbkl0ZW1zICsgb2Zmc2V0O1xyXG4gICAgaWYgKG5leHRJdGVtSW5kZXggPj0gaXRlbXNXaXRob3V0RGlzYWJsZWQubGVuZ3RoKSB7XHJcbiAgICAgIG5leHRJdGVtSW5kZXggLT0gaXRlbXNXaXRob3V0RGlzYWJsZWQubGVuZ3RoO1xyXG4gICAgfSBlbHNlIGlmIChuZXh0SXRlbUluZGV4IDwgMCkge1xyXG4gICAgICBuZXh0SXRlbUluZGV4ICs9IGl0ZW1zV2l0aG91dERpc2FibGVkLmxlbmd0aDtcclxuICAgIH1cclxuICAgIGNvbnN0IGl0ZW1Ub0hpZ2hsaWdodCA9IGl0ZW1zV2l0aG91dERpc2FibGVkW25leHRJdGVtSW5kZXhdO1xyXG5cclxuICAgIHRoaXMuaGlnaGxpZ2h0SXRlbShpdGVtVG9IaWdobGlnaHQpO1xyXG5cclxuICAgIHJldHVybiBpdGVtVG9IaWdobGlnaHQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlc3QtaXRlbS1zdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9faW50ZXJuYWwvaXRlbS1zdG9yYWdlcy9zaW1wbGVzdC1pdGVtLXN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxXQUFXLE1BQU0scUJBQXFCLENBQUM7QUFDOUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBYzFELE1BQU0sT0FBTyxtQkFBbUI7SUFJOUIsWUFBNkIsY0FBdUM7UUFBdkMsbUJBQWMsR0FBZCxjQUFjLENBQXlCO1FBSG5ELFdBQU0sR0FBRyxNQUFNLENBQTJCLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLHFCQUFnQixHQUFHLE1BQU0sQ0FBbUMsSUFBSSxDQUFDLENBQUM7UUFJbkY7O1dBRUc7UUFDTSxVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMxQzs7V0FFRztRQUNNLG9CQUFlLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzlEOztXQUVHO1FBQ00seUJBQW9CLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFiWixDQUFDO0lBZXhFOzs7O09BSUc7SUFDSCxRQUFRLENBQUMsS0FBWTtRQUNuQixJQUFJLGlCQUFpQixHQUFHLEtBQUssQ0FBQztRQUM5QixJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUM1QixLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMs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TSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUVwQyxPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNILGlCQUFpQixDQUFDLE1BQWM7UUFDOUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDNUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDbkMsQ0FBQztRQUNELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM1QixNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFMUYsSUFBSSxhQUFhLEdBQUcsbUJBQW1CLEdBQUcsTUFBTSxDQUFDO1FBQ2pELElBQUksYUFBYSxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNsQyxhQUFhLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUNoQyxDQUFDO2FBQU0sSUFBSSxhQUFhLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDN0IsYUFBYSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDaEMsQ0FBQztRQUNELE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUU3QyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXBDLE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpZ25hbCwgY29tcHV0ZWQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHJlc29sdmVQYXRoIGZyb20gJ3Jlc29sdmUtb2JqZWN0LXBhdGgnO1xuaW1wb3J0IHsgYW55LCBpc0RlZmluZWQsIGlzUHJpbWl0aXZlIH0gZnJvbSAnc2ltcGxlLWJvb2wnO1xuaW1wb3J0IHsgQXJkU2ltcGxlc3RTdG9yYWdlSXRlbSB9IGZyb20gJy4uLy4uL3R5cGVzL2l0ZW0tc3RvcmFnZS50eXBlcyc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJy4uLy4uL3R5cGVzL3V0aWxpdHkudHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNpbXBsZXN0SXRlbVN0b3JhZ2VIb3N0RGVmYXVsdHMge1xuICB2YWx1ZUZyb206IHN0cmluZztcbiAgbGFiZWxGcm9tOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIFNpbXBsZXN0SXRlbVN0b3JhZ2VIb3N0IHtcbiAgcmVhZG9ubHkgdmFsdWVGcm9tOiBTaWduYWw8TnVsbGFibGU8c3RyaW5nPj47XG4gIHJlYWRvbmx5IGxhYmVsRnJvbTogU2lnbmFsPE51bGxhYmxlPHN0cmluZz4+O1xuICByZWFkb25seSBERUZBVUxUUzogU2ltcGxlc3RJdGVtU3RvcmFnZUhvc3REZWZhdWx0cztcbn1cblxuZXhwb3J0IGNsYXNzIFNpbXBsZXN0SXRlbVN0b3JhZ2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IF9pdGVtcyA9IHNpZ25hbDxBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtW10+KFtdKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaGlnaGxpZ2h0ZWRJdGVtID0gc2lnbmFsPE51bGxhYmxlPEFyZFNpbXBsZXN0U3RvcmFnZUl0ZW0+PihudWxsKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IF9hcmRQYXJlbnRDb21wOiBTaW1wbGVzdEl0ZW1TdG9yYWdlSG9zdCkge31cblxuICAvKipcbiAgICogR2V0cyBhbGwgaXRlbXMuXG4gICAqL1xuICByZWFkb25seSBpdGVtcyA9IHRoaXMuX2l0ZW1zLmFzUmVhZG9ubHkoKTtcbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50bHkgaGlnaGxpZ2h0ZWQgaXRlbS5cbiAgICovXG4gIHJlYWRvbmx5IGhpZ2hsaWdodGVkSXRlbSA9IHRoaXMuX2hpZ2hsaWdodGVkSXRlbS5hc1JlYWRvbmx5KCk7XG4gIC8qKlxuICAgKiBUcnVlIGlmIGF0IGxlYXN0IG9uZSBpdGVtIGlzIGhpZ2hsaWdodGVkLCBvdGhlcndpc2UgZmFsc2UuXG4gICAqL1xuICByZWFkb25seSBpc0FueUl0ZW1IaWdobGlnaHRlZCA9IGNvbXB1dGVkKCgpID0+IGlzRGVmaW5lZCh0aGlzLl9oaWdobGlnaHRlZEl0ZW0oKSkpO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjb21wb25lbnQncyBpdGVtcy4gVGFrZXMgaW50byBhY2NvdW50IHRoZSB2YWx1ZXMgZGVmaW5lZCBieSB0aGUgcGFyZW50IGNvbXBvbmVudCBmb3IgYHN1Z2dWYWx1ZUZyb21gIGFuZCBgc3VnZ0xhYmVsRnJvbWAuXG4gICAqIEBwYXJhbSBpdGVtcyBBbiBhcnJheSBvZiBpdGVtcyB0byBiZSBzZXQgYXMgdGhlIGNvbXBvbmVudCdzIGl0ZW1zLlxuICAgKiBAcmV0dXJucyB0cnVlIGlmIGF0IGxlYXN0IG9uZSBvZiB0aGUgaXRlbXMgaXMgb2YgcHJpbWl0aXZlIHR5cGUsIG90aGVyd2lzZSBmYWxzZS5cbiAgICovXG4gIHNldEl0ZW1zKGl0ZW1zOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgIGxldCBhcmVJdGVtc1ByaW1pdGl2ZSA9IGZhbHNlO1xuICAgIGlmIChhbnkoaXRlbXMsIGlzUHJpbWl0aXZlKSkge1xuICAgICAgaXRlbXMgPSBpdGVtcy5tYXAodGhpcy5fcHJpbWl0aXZlSXRlbXNNYXBGbik7XG4gICAgICBhcmVJdGVtc1ByaW1pdGl2ZSA9IHRydWU7XG4gICAgfVxuXG4gICAgdGhpcy5faXRlbXMuc2V0KFxuICAgICAgaXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2V0SXRlbXNNYXBGbihpdGVtLCBpbmRleCwgYXJlSXRlbXNQcmltaXRpdmUpO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgcmV0dXJuIGFyZUl0ZW1zUHJpbWl0aXZlO1xuICB9XG4gIHByaXZhdGUgX3ByaW1pdGl2ZUl0ZW1zTWFwRm48VD4oaXRlbTogVCk6IHsgdmFsdWU6IFQgfSB7XG4gICAgcmV0dXJuIHsgdmFsdWU6IGl0ZW0gfTtcbiAgfVxuICBwcml2YXRlIF9zZXRJdGVtc01hcEZuKHJhd0l0ZW1EYXRhOiBhbnksIGluZGV4OiBudW1iZXIsIGFyZUl0ZW1zUHJpbWl0aXZlOiBib29sZWFuKTogQXJkU2ltcGxlc3RTdG9yYWdlSXRlbSB7XG4gICAgaWYgKGFyZUl0ZW1zUHJpbWl0aXZlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpdGVtRGF0YTogc2lnbmFsKHJhd0l0ZW1EYXRhKSxcbiAgICAgICAgaW5kZXg6IHNpZ25hbChpbmRleCksXG4gICAgICAgIHZhbHVlOiBzaWduYWwocmF3SXRlbURhdGEudmFsdWUpLFxuICAgICAgICBsYWJlbDogc2lnbmFsKHJhd0l0ZW1EYXRhLnZhbHVlPy50b1N0cmluZz8uKCkgPz8gU3RyaW5nKHJhd0l0ZW1EYXRhLnZhbHVlKSksXG4gICAgICAgIHNlbGVjdGVkOiBzaWduYWwoZmFsc2UpLFxuICAgICAgICBoaWdobGlnaHRlZDogc2lnbmFsKGZhbHNlKSxcbiAgICAgIH07XG4gICAgfVxuICAgIC8vZ2V0IHZhbHVlXG4gICAgY29uc3QgdmFsdWVQYXRoID1cbiAgICAgIHRoaXMuX2FyZFBhcmVudENvbXAudmFsdWVGcm9tKCkgPz8gdGhpcy5fYXJkUGFyZW50Q29tcC5sYWJlbEZyb20oKSA/PyB0aGlzLl9hcmRQYXJlbnRDb21wLkRFRkFVTFRTLnZhbHVlRnJvbTtcbiAgICBjb25zdCB2YWx1ZSA9IHJlc29sdmVQYXRoKHJhd0l0ZW1EYXRhLCB2YWx1ZVBhdGgpO1xuXG4gICAgLy9nZXQgbGFiZWxcbiAgICBjb25zdCBsYWJlbFBhdGggPVxuICAgICAgdGhpcy5fYXJkUGFyZW50Q29tcC5sYWJlbEZyb20oKSA/PyB0aGlzLl9hcmRQYXJlbnRDb21wLnZhbHVlRnJvbSgpID8/IHRoaXMuX2FyZFBhcmVudENvbXAuREVGQVVMVFMubGFiZWxGcm9tO1xuICAgIGNvbnN0IGxhYmVsID0gcmVzb2x2ZVBhdGgocmF3SXRlbURhdGEsIGxhYmVsUGF0aCkgPz8gdmFsdWU7XG5cbiAgICAvL3JldHVyblxuICAgIHJldHVybiB7XG4gICAgICBpdGVtRGF0YTogc2lnbmFsKHJhd0l0ZW1EYXRhKSxcbiAgICAgIGluZGV4OiBzaWduYWwoaW5kZXgpLFxuICAgICAgdmFsdWU6IHNpZ25hbCh2YWx1ZSksXG4gICAgICBsYWJlbDogc2lnbmFsKGxhYmVsPy50b1N0cmluZz8uKCkgPz8gU3RyaW5nKGxhYmVsKSksXG4gICAgICBzZWxlY3RlZDogc2lnbmFsKGZhbHNlKSxcbiAgICAgIGhpZ2hsaWdodGVkOiBzaWduYWwoZmFsc2UpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0cyB0aGUgZ2l2ZW4gaXRlbS5cbiAgICogQHBhcmFtIGl0ZW1zIFRoZSBpdGVtIHRvIHNlbGVjdC5cbiAgICogQHJldHVybnMgVGhlIHZhbHVlIG9mIHRoZSBzZWxlY3RlZCBpdGVtLlxuICAgKi9cbiAgc2VsZWN0SXRlbShpdGVtOiBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtKTogYW55IHtcbiAgICByZXR1cm4gaXRlbS52YWx1ZTtcbiAgfVxuICBzZWxlY3RDdXJyZW50KCk6IGFueSB7XG4gICAgY29uc3QgaGkgPSB0aGlzLl9oaWdobGlnaHRlZEl0ZW0oKTtcbiAgICBpZiAoIWhpKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiB0aGlzLnNlbGVjdEl0ZW0oaGkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuaGlnaGxpZ2h0cyBhbGwgY3VycmVudGx5IGhpZ2hsaWdodGVkIGl0ZW1zLlxuICAgKi9cbiAgdW5oaWdobGlnaHRDdXJyZW50KCk6IHZvaWQge1xuICAgIGNvbnN0IGhpID0gdGhpcy5faGlnaGxpZ2h0ZWRJdGVtKCk7XG4gICAgaWYgKGhpKSB7XG4gICAgICBoaS5oaWdobGlnaHRlZC5zZXQoZmFsc2UpO1xuICAgIH1cbiAgICB0aGlzLl9oaWdobGlnaHRlZEl0ZW0uc2V0KG51bGwpO1xuICB9XG4gIC8qKlxuICAgKiBIaWdobGlnaHRzIGEgZ2l2ZW4gaXRlbS5cbiAgICogQHBhcmFtIGl0ZW0gVGhlIGl0ZW0gdG8gYmUgaGlnaGxpZ2h0ZWQuXG4gICAqL1xuICBoaWdobGlnaHRJdGVtKGl0ZW06IEFyZFNpbXBsZXN0U3RvcmFnZUl0ZW0pOiB2b2lkIHtcbiAgICB0aGlzLnVuaGlnaGxpZ2h0Q3VycmVudCgpO1xuXG4gICAgaXRlbS5oaWdobGlnaHRlZC5zZXQodHJ1ZSk7XG5cbiAgICB0aGlzLl9oaWdobGlnaHRlZEl0ZW0uc2V0KGl0ZW0pO1xuICB9XG4gIC8qKlxuICAgKiBVbmhpZ2hsaWdodHMgYSBnaXZlbiBpdGVtLlxuICAgKiBAcGFyYW0gaXRlbSBUaGUgaXRlbSB0byBiZSB1bmhpZ2hsaWdodGVkLlxuICAgKi9cbiAgdW5oaWdobGlnaHRJdGVtKGl0ZW06IEFyZFNpbXBsZXN0U3RvcmFnZUl0ZW0pOiB2b2lkIHtcbiAgICBpdGVtLmhpZ2hsaWdodGVkLnNldChmYWxzZSk7XG5cbiAgICBpZiAodGhpcy5faGlnaGxpZ2h0ZWRJdGVtKCk/LmluZGV4KCkgPT09IGl0ZW0uaW5kZXgoKSkgdGhpcy5faGlnaGxpZ2h0ZWRJdGVtLnNldChudWxsKTtcbiAgfVxuICAvKipcbiAgICogSGlnaGxpZ2h0cyB0aGUgZmlyc3QgaXRlbSBvdXQgb2YgYWxsIGl0ZW1zLlxuICAgKiBAcmV0dXJucyBUaGUgaGlnaGxpZ2h0ZWQgaXRlbS5cbiAgICovXG4gIGhpZ2hsaWdodEZpcnN0SXRlbSgpOiBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtIHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLl9pdGVtcygpLmxlbmd0aCkgcmV0dXJuIG51bGw7XG5cbiAgICB0aGlzLnVuaGlnaGxpZ2h0Q3VycmVudCgpO1xuXG4gICAgY29uc3QgaXRlbVRvSGlnaGxpZ2h0ID0gdGhpcy5faXRlbXMoKS5maXJzdCgpO1xuICAgIHRoaXMuaGlnaGxpZ2h0SXRlbShpdGVtVG9IaWdobGlnaHQpO1xuXG4gICAgcmV0dXJuIGl0ZW1Ub0hpZ2hsaWdodDtcbiAgfVxuICAvKipcbiAgICogSGlnaGxpZ2h0cyB0aGUgbGFzdCBpdGVtIG91dCBvZiBhbGwgaXRlbXMuXG4gICAqIEByZXR1cm5zIFRoZSBoaWdobGlnaHRlZCBpdGVtLlxuICAgKi9cbiAgaGlnaGxpZ2h0TGFzdEl0ZW0oKTogQXJkU2ltcGxlc3RTdG9yYWdlSXRlbSB8IG51bGwge1xuICAgIGlmICghdGhpcy5faXRlbXMoKS5sZW5ndGgpIHJldHVybiBudWxsO1xuXG4gICAgdGhpcy51bmhpZ2hsaWdodEN1cnJlbnQoKTtcblxuICAgIGNvbnN0IGl0ZW1Ub0hpZ2hsaWdodCA9IHRoaXMuX2l0ZW1zKCkubGFzdCgpO1xuICAgIHRoaXMuaGlnaGxpZ2h0SXRlbShpdGVtVG9IaWdobGlnaHQpO1xuXG4gICAgcmV0dXJuIGl0ZW1Ub0hpZ2hsaWdodDtcbiAgfVxuICAvKipcbiAgICogSGlnaGxpZ2h0cyB0aGUgbmV4dCBub24tZGlzYWJsZWQgaXRlbSBkZWZpbmVkIGJ5IHRoZSBvZmZzZXQgYW1vdW50LlxuICAgKiBAcGFyYW0gb2Zmc2V0IFRoZSBhbW91bnQgb2YgaXRlbXMgdG8gb2Zmc2V0IHRoZSBoaWdobGlnaHQgYnkuXG4gICAqIEByZXR1cm5zIFRoZSBpdGVtIGhpZ2hsaWdodGVkLlxuICAgKi9cbiAgaGlnaGxpZ2h0TmV4dEl0ZW0ob2Zmc2V0OiBudW1iZXIpOiBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtIHwgbnVsbCB7XG4gICAgY29uc3QgY3VycmVudEl0ZW0gPSB0aGlzLl9oaWdobGlnaHRlZEl0ZW0oKTtcbiAgICBpZiAoIWN1cnJlbnRJdGVtKSB7XG4gICAgICByZXR1cm4gdGhpcy5oaWdobGlnaHRGaXJzdEl0ZW0oKTtcbiAgICB9XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLl9pdGVtcygpO1xuICAgIGNvbnN0IGN1cnJlbnRJbmRleEluSXRlbXMgPSBpdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmluZGV4KCkgPT09IGN1cnJlbnRJdGVtLmluZGV4KCkpO1xuXG4gICAgbGV0IG5leHRJdGVtSW5kZXggPSBjdXJyZW50SW5kZXhJbkl0ZW1zICsgb2Zmc2V0O1xuICAgIGlmIChuZXh0SXRlbUluZGV4ID49IGl0ZW1zLmxlbmd0aCkge1xuICAgICAgbmV4dEl0ZW1JbmRleCAtPSBpdGVtcy5sZW5ndGg7XG4gICAgfSBlbHNlIGlmIChuZXh0SXRlbUluZGV4IDwgMCkge1xuICAgICAgbmV4dEl0ZW1JbmRleCArPSBpdGVtcy5sZW5ndGg7XG4gICAgfVxuICAgIGNvbnN0IGl0ZW1Ub0hpZ2hsaWdodCA9IGl0ZW1zW25leHRJdGVtSW5kZXhdO1xuXG4gICAgdGhpcy5oaWdobGlnaHRJdGVtKGl0ZW1Ub0hpZ2hsaWdodCk7XG5cbiAgICByZXR1cm4gaXRlbVRvSGlnaGxpZ2h0O1xuICB9XG59XG4iXX0=
@@ -1,124 +1,90 @@
1
+ import { computed } from '@angular/core';
1
2
  import { isDefined } from 'simple-bool';
2
3
  export class PaginationModel {
3
- constructor() {
4
- this._itemsPerPageOptions = [10, 25, 50];
5
- this._itemsPerPage = 50;
6
- this._page = 1;
7
- this._itemsOnCurrentPageMemo = null;
8
- //! current page
9
- this._lastPageNumMemo = null;
10
- }
11
- //! total items
12
- setTotalItems(v) {
13
- this._totalItems = v;
14
- this._lastPageNumMemo = null;
15
- this._itemsOnCurrentPageMemo = null;
16
- }
17
- get isTotalItemsDefined() {
18
- return isDefined(this._totalItems);
19
- }
20
- //! items per page
21
- setItemsPerPageOptions(v) {
22
- this._itemsPerPageOptions = v;
23
- }
24
- getItemsPerPageOptions() {
25
- return this._itemsPerPageOptions;
26
- }
27
- setItemsPerPage(v) {
28
- this._itemsPerPage = v;
29
- this._lastPageNumMemo = null;
30
- this._itemsOnCurrentPageMemo = null;
31
- this.setPage(1);
32
- }
33
- getItemsPerPage() {
34
- return this._itemsPerPage;
35
- }
36
- get itemsOnCurrentPage() {
37
- if (!isDefined(this._totalItems))
38
- return null;
39
- if (!isDefined(this._itemsOnCurrentPageMemo))
40
- [
41
- (this._itemsOnCurrentPageMemo = [
42
- Math.min(this._totalItems, (this._page - 1) * this._itemsPerPage + 1),
43
- Math.min(this._totalItems, this._page * this._itemsPerPage),
44
- ]),
4
+ constructor(_ardHostCmp) {
5
+ this._ardHostCmp = _ardHostCmp;
6
+ this.isTotalItemsDefined = computed(() => isDefined(this._ardHostCmp.totalItems()));
7
+ this.lastPageNum = computed(() => {
8
+ const total = this._ardHostCmp.totalItems();
9
+ if (!total)
10
+ return null;
11
+ return Math.ceil(total / this._ardHostCmp.itemsPerPage());
12
+ });
13
+ this.isLastPage = computed(() => {
14
+ return !isDefined(this._ardHostCmp.totalItems()) || this.lastPageNum() === this._ardHostCmp.page();
15
+ });
16
+ this.itemsOnCurrentPage = computed(() => {
17
+ const total = this._ardHostCmp.totalItems();
18
+ if (!total)
19
+ return null;
20
+ return [
21
+ Math.min(total, (this._ardHostCmp.page() - 1) * this._ardHostCmp.itemsPerPage() + 1),
22
+ Math.min(total, this._ardHostCmp.page() * this._ardHostCmp.itemsPerPage()),
45
23
  ];
46
- return this._itemsOnCurrentPageMemo;
47
- }
48
- //! action disabled states
49
- get firstPageDisabled() {
50
- return !isDefined(this._totalItems) || this._page == 1;
51
- }
52
- get lastPageDisabled() {
53
- return !isDefined(this._totalItems) || this._page == this.lastPageNum;
54
- }
55
- get lastPageNum() {
56
- if (!isDefined(this._totalItems))
57
- return null;
58
- if (!isDefined(this._lastPageNumMemo)) {
59
- this._lastPageNumMemo = Math.ceil(this._totalItems / this._itemsPerPage);
60
- }
61
- return this._lastPageNumMemo;
62
- }
63
- get isLastPage() {
64
- if (!isDefined(this._totalItems))
65
- return true;
66
- return this.lastPageNum === this._page;
67
- }
24
+ });
25
+ //! action disabled states
26
+ this.firstPageDisabled = computed(() => {
27
+ return !isDefined(this._ardHostCmp.totalItems()) || this._ardHostCmp.page() === 1;
28
+ });
29
+ this.lastPageDisabled = computed(() => {
30
+ return !isDefined(this._ardHostCmp.totalItems()) || this._ardHostCmp.page() === this.lastPageNum();
31
+ });
32
+ //! context
33
+ this.getCurrentItemsContext = computed(() => {
34
+ const total = this._ardHostCmp.totalItems();
35
+ if (!total)
36
+ throw new Error(`ARD-FT${this._ardHostCmp.componentId}90: Cannot use pagination model without defining total items first.`);
37
+ const pageItems = this.itemsOnCurrentPage();
38
+ return {
39
+ totalPages: this.lastPageNum(),
40
+ totalItems: total,
41
+ page: this._ardHostCmp.page(),
42
+ currentItemsFirst: pageItems[0],
43
+ currentItemsLast: pageItems[1],
44
+ };
45
+ });
46
+ this.getPartialContext = computed(() => {
47
+ return {
48
+ ...this.getCurrentItemsContext(),
49
+ itemsPerPageOptions: this._ardHostCmp.options(),
50
+ itemsPerPage: this._ardHostCmp.itemsPerPage(),
51
+ firstPageDisabled: this.firstPageDisabled(),
52
+ prevPageDisabled: this.firstPageDisabled(),
53
+ nextPageDisabled: this.lastPageDisabled(),
54
+ lastPageDisabled: this.lastPageDisabled(),
55
+ };
56
+ });
57
+ }
58
+ //! current page
68
59
  setPage(v) {
69
- this._page = v;
70
- this._itemsOnCurrentPageMemo = null;
60
+ this._ardHostCmp.page.set(v);
71
61
  }
72
62
  getPage() {
73
- return this._page;
63
+ return this._ardHostCmp.page();
74
64
  }
75
- firstPage() {
76
- if (this.firstPageDisabled)
65
+ goToFirstPage() {
66
+ if (this.firstPageDisabled())
77
67
  return null;
78
68
  this.setPage(1);
79
69
  return 1;
80
70
  }
81
- prevPage() {
82
- if (this.firstPageDisabled)
71
+ goToPrevPage() {
72
+ if (this.firstPageDisabled())
83
73
  return null;
84
- this.setPage(this._page - 1);
85
- return this._page;
74
+ this.setPage(this._ardHostCmp.page() - 1);
75
+ return this._ardHostCmp.page();
86
76
  }
87
- nextPage() {
88
- if (this.lastPageDisabled)
77
+ goToNextPage() {
78
+ if (this.lastPageDisabled())
89
79
  return null;
90
- this.setPage(this._page + 1);
91
- return this._page;
80
+ this.setPage(this._ardHostCmp.page() + 1);
81
+ return this._ardHostCmp.page();
92
82
  }
93
- lastPage() {
94
- if (this.lastPageDisabled)
83
+ goToLastPage() {
84
+ if (this.lastPageDisabled())
95
85
  return null;
96
- this.setPage(this.lastPageNum);
97
- return this._page;
98
- }
99
- //! context
100
- getCurrentItemsContext() {
101
- if (!isDefined(this._totalItems))
102
- throw new Error('Cannot use pagination model without defining total items first.');
103
- const pageItems = this.itemsOnCurrentPage;
104
- return {
105
- totalPages: this.lastPageNum,
106
- totalItems: this._totalItems,
107
- page: this._page,
108
- currentItemsFirst: pageItems[0],
109
- currentItemsLast: pageItems[1],
110
- };
111
- }
112
- getPartialContext() {
113
- return {
114
- ...this.getCurrentItemsContext(),
115
- itemsPerPageOptions: this._itemsPerPageOptions,
116
- itemsPerPage: this._itemsPerPage,
117
- firstPageDisabled: this.firstPageDisabled,
118
- prevPageDisabled: this.firstPageDisabled,
119
- nextPageDisabled: this.lastPageDisabled,
120
- lastPageDisabled: this.lastPageDisabled,
121
- };
86
+ this.setPage(this.lastPageNum());
87
+ return this._ardHostCmp.page();
122
88
  }
123
89
  }
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvX2ludGVybmFsL21vZGVscy9wYWdpbmF0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFxQnhDLE1BQU0sT0FBTyxlQUFlO0lBQTVCO1FBRVUseUJBQW9CLEdBQWtELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuRixrQkFBYSxHQUFXLEVBQUUsQ0FBQztRQUMzQixVQUFLLEdBQVcsQ0FBQyxDQUFDO1FBNkJsQiw0QkFBdUIsR0FBNEIsSUFBSSxDQUFDO1FBcUJoRSxnQkFBZ0I7UUFDUixxQkFBZ0IsR0FBa0IsSUFBSSxDQUFDO0lBZ0VqRCxDQUFDO0lBakhDLGVBQWU7SUFDZixhQUFhLENBQUMsQ0FBUztRQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7SUFDdEMsQ0FBQztJQUNELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLHNCQUFzQixDQUFDLENBQWdEO1FBQ3JFLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUNELHNCQUFzQjtRQUNwQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNuQyxDQUFDO0lBQ0QsZUFBZSxDQUFDLENBQVM7UUFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUNELGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUdELElBQUksa0JBQWtCO1FBQ3BCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQzlDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDO1lBQzFDO2dCQUNFLENBQUMsSUFBSSxDQUFDLHVCQUF1QixHQUFHO29CQUM5QixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO29CQUNyRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO2lCQUM1RCxDQUFDO2FBQ0gsQ0FBQztRQUNKLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDO0lBQ3RDLENBQUM7SUFFRCwwQkFBMEI7SUFDMUIsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUNELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUN4RSxDQUFDO0lBSUQsSUFBSSxXQUFXO1FBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDOUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtZQUNyQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUMxRTtRQUNELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFDRCxJQUFJLFVBQVU7UUFDWixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUM5QyxPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN6QyxDQUFDO0lBQ0QsT0FBTyxDQUFDLENBQVM7UUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7SUFDdEMsQ0FBQztJQUNELE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNELFNBQVM7UUFDUCxJQUFJLElBQUksQ0FBQyxpQkFBaUI7WUFBRSxPQUFPLElBQUksQ0FBQztRQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hCLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxpQkFBaUI7WUFBRSxPQUFPLElBQUksQ0FBQztRQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsZ0JBQWdCO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLGdCQUFnQjtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVksQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsV0FBVztJQUNYLHNCQUFzQjtRQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGlFQUFpRSxDQUFDLENBQUM7UUFFckgsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGtCQUFtQixDQUFDO1FBQzNDLE9BQU87WUFDTCxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVk7WUFDN0IsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzVCLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSztZQUNoQixpQkFBaUIsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQy9CLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7U0FDL0IsQ0FBQztJQUNKLENBQUM7SUFDRCxpQkFBaUI7UUFDZixPQUFPO1lBQ0wsR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDaEMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG9CQUFvQjtZQUM5QyxZQUFZLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDaEMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtZQUN6QyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsaUJBQWlCO1lBQ3hDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtTQUN4QyxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNEZWZpbmVkIH0gZnJvbSAnc2ltcGxlLWJvb2wnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQYWdpbmF0aW9uQ3VycmVudEl0ZW1zQ29udGV4dCB7XHJcbiAgY3VycmVudEl0ZW1zRmlyc3Q6IG51bWJlcjtcclxuICBjdXJyZW50SXRlbXNMYXN0OiBudW1iZXI7XHJcbiAgdG90YWxJdGVtczogbnVtYmVyO1xyXG4gIHRvdGFsUGFnZXM6IG51bWJlcjtcclxuICBwYWdlOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGFnaW5hdGlvbkNvbnRleHQgZXh0ZW5kcyBQYWdpbmF0aW9uQ3VycmVudEl0ZW1zQ29udGV4dCB7XHJcbiAgaXRlbXNQZXJQYWdlT3B0aW9uczogbnVtYmVyW10gfCB7IHZhbHVlOiBudW1iZXI7IGxhYmVsOiBzdHJpbmcgfVtdO1xyXG4gIGl0ZW1zUGVyUGFnZTogbnVtYmVyO1xyXG4gIG9uSXRlbXNQZXJQYWdlQ2hhbmdlOiAobmV3VmFsdWU6IG51bWJlcikgPT4gdm9pZDtcclxuICBmaXJzdFBhZ2VEaXNhYmxlZDogYm9vbGVhbjtcclxuICBwcmV2UGFnZURpc2FibGVkOiBib29sZWFuO1xyXG4gIG5leHRQYWdlRGlzYWJsZWQ6IGJvb2xlYW47XHJcbiAgbGFzdFBhZ2VEaXNhYmxlZDogYm9vbGVhbjtcclxuICBvblBhZ2VDaGFuZ2U6IChuZXdQYWdlOiBudW1iZXIpID0+IHZvaWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uTW9kZWwge1xyXG4gIHByaXZhdGUgX3RvdGFsSXRlbXM/OiBudW1iZXI7XHJcbiAgcHJpdmF0ZSBfaXRlbXNQZXJQYWdlT3B0aW9uczogbnVtYmVyW10gfCB7IHZhbHVlOiBudW1iZXI7IGxhYmVsOiBzdHJpbmcgfVtdID0gWzEwLCAyNSwgNTBdO1xyXG4gIHByaXZhdGUgX2l0ZW1zUGVyUGFnZTogbnVtYmVyID0gNTA7XHJcbiAgcHJpdmF0ZSBfcGFnZTogbnVtYmVyID0gMTtcclxuXHJcbiAgLy8hIHRvdGFsIGl0ZW1zXHJcbiAgc2V0VG90YWxJdGVtcyh2OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuX3RvdGFsSXRlbXMgPSB2O1xyXG4gICAgdGhpcy5fbGFzdFBhZ2VOdW1NZW1vID0gbnVsbDtcclxuICAgIHRoaXMuX2l0ZW1zT25DdXJyZW50UGFnZU1lbW8gPSBudWxsO1xyXG4gIH1cclxuICBnZXQgaXNUb3RhbEl0ZW1zRGVmaW5lZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBpc0RlZmluZWQodGhpcy5fdG90YWxJdGVtcyk7XHJcbiAgfVxyXG5cclxuICAvLyEgaXRlbXMgcGVyIHBhZ2VcclxuICBzZXRJdGVtc1BlclBhZ2VPcHRpb25zKHY6IG51bWJlcltdIHwgeyB2YWx1ZTogbnVtYmVyOyBsYWJlbDogc3RyaW5nIH1bXSk6IHZvaWQge1xyXG4gICAgdGhpcy5faXRlbXNQZXJQYWdlT3B0aW9ucyA9IHY7XHJcbiAgfVxyXG4gIGdldEl0ZW1zUGVyUGFnZU9wdGlvbnMoKTogbnVtYmVyW10gfCB7IHZhbHVlOiBudW1iZXI7IGxhYmVsOiBzdHJpbmcgfVtdIHtcclxuICAgIHJldHVybiB0aGlzLl9pdGVtc1BlclBhZ2VPcHRpb25zO1xyXG4gIH1cclxuICBzZXRJdGVtc1BlclBhZ2UodjogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLl9pdGVtc1BlclBhZ2UgPSB2O1xyXG4gICAgdGhpcy5fbGFzdFBhZ2VOdW1NZW1vID0gbnVsbDtcclxuICAgIHRoaXMuX2l0ZW1zT25DdXJyZW50UGFnZU1lbW8gPSBudWxsO1xyXG4gICAgdGhpcy5zZXRQYWdlKDEpO1xyXG4gIH1cclxuICBnZXRJdGVtc1BlclBhZ2UoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9pdGVtc1BlclBhZ2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pdGVtc09uQ3VycmVudFBhZ2VNZW1vOiBbbnVtYmVyLCBudW1iZXJdIHwgbnVsbCA9IG51bGw7XHJcbiAgZ2V0IGl0ZW1zT25DdXJyZW50UGFnZSgpOiBbbnVtYmVyLCBudW1iZXJdIHwgbnVsbCB7XHJcbiAgICBpZiAoIWlzRGVmaW5lZCh0aGlzLl90b3RhbEl0ZW1zKSkgcmV0dXJuIG51bGw7XHJcbiAgICBpZiAoIWlzRGVmaW5lZCh0aGlzLl9pdGVtc09uQ3VycmVudFBhZ2VNZW1vKSlcclxuICAgICAgW1xyXG4gICAgICAgICh0aGlzLl9pdGVtc09uQ3VycmVudFBhZ2VNZW1vID0gW1xyXG4gICAgICAgICAgTWF0aC5taW4odGhpcy5fdG90YWxJdGVtcywgKHRoaXMuX3BhZ2UgLSAxKSAqIHRoaXMuX2l0ZW1zUGVyUGFnZSArIDEpLFxyXG4gICAgICAgICAgTWF0aC5taW4odGhpcy5fdG90YWxJdGVtcywgdGhpcy5fcGFnZSAqIHRoaXMuX2l0ZW1zUGVyUGFnZSksXHJcbiAgICAgICAgXSksXHJcbiAgICAgIF07XHJcbiAgICByZXR1cm4gdGhpcy5faXRlbXNPbkN1cnJlbnRQYWdlTWVtbztcclxuICB9XHJcblxyXG4gIC8vISBhY3Rpb24gZGlzYWJsZWQgc3RhdGVzXHJcbiAgZ2V0IGZpcnN0UGFnZURpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICFpc0RlZmluZWQodGhpcy5fdG90YWxJdGVtcykgfHwgdGhpcy5fcGFnZSA9PSAxO1xyXG4gIH1cclxuICBnZXQgbGFzdFBhZ2VEaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhaXNEZWZpbmVkKHRoaXMuX3RvdGFsSXRlbXMpIHx8IHRoaXMuX3BhZ2UgPT0gdGhpcy5sYXN0UGFnZU51bTtcclxuICB9XHJcblxyXG4gIC8vISBjdXJyZW50IHBhZ2VcclxuICBwcml2YXRlIF9sYXN0UGFnZU51bU1lbW86IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIGdldCBsYXN0UGFnZU51bSgpOiBudW1iZXIgfCBudWxsIHtcclxuICAgIGlmICghaXNEZWZpbmVkKHRoaXMuX3RvdGFsSXRlbXMpKSByZXR1cm4gbnVsbDtcclxuICAgIGlmICghaXNEZWZpbmVkKHRoaXMuX2xhc3RQYWdlTnVtTWVtbykpIHtcclxuICAgICAgdGhpcy5fbGFzdFBhZ2VOdW1NZW1vID0gTWF0aC5jZWlsKHRoaXMuX3RvdGFsSXRlbXMgLyB0aGlzLl9pdGVtc1BlclBhZ2UpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuX2xhc3RQYWdlTnVtTWVtbztcclxuICB9XHJcbiAgZ2V0IGlzTGFzdFBhZ2UoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIWlzRGVmaW5lZCh0aGlzLl90b3RhbEl0ZW1zKSkgcmV0dXJuIHRydWU7XHJcbiAgICByZXR1cm4gdGhpcy5sYXN0UGFnZU51bSA9PT0gdGhpcy5fcGFnZTtcclxuICB9XHJcbiAgc2V0UGFnZSh2OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuX3BhZ2UgPSB2O1xyXG4gICAgdGhpcy5faXRlbXNPbkN1cnJlbnRQYWdlTWVtbyA9IG51bGw7XHJcbiAgfVxyXG4gIGdldFBhZ2UoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9wYWdlO1xyXG4gIH1cclxuICBmaXJzdFBhZ2UoKTogbnVtYmVyIHwgbnVsbCB7XHJcbiAgICBpZiAodGhpcy5maXJzdFBhZ2VEaXNhYmxlZCkgcmV0dXJuIG51bGw7XHJcbiAgICB0aGlzLnNldFBhZ2UoMSk7XHJcbiAgICByZXR1cm4gMTtcclxuICB9XHJcbiAgcHJldlBhZ2UoKTogbnVtYmVyIHwgbnVsbCB7XHJcbiAgICBpZiAodGhpcy5maXJzdFBhZ2VEaXNhYmxlZCkgcmV0dXJuIG51bGw7XHJcbiAgICB0aGlzLnNldFBhZ2UodGhpcy5fcGFnZSAtIDEpO1xyXG4gICAgcmV0dXJuIHRoaXMuX3BhZ2U7XHJcbiAgfVxyXG4gIG5leHRQYWdlKCk6IG51bWJlciB8IG51bGwge1xyXG4gICAgaWYgKHRoaXMubGFzdFBhZ2VEaXNhYmxlZCkgcmV0dXJuIG51bGw7XHJcbiAgICB0aGlzLnNldFBhZ2UodGhpcy5fcGFnZSArIDEpO1xyXG4gICAgcmV0dXJuIHRoaXMuX3BhZ2U7XHJcbiAgfVxyXG4gIGxhc3RQYWdlKCk6IG51bWJlciB8IG51bGwge1xyXG4gICAgaWYgKHRoaXMubGFzdFBhZ2VEaXNhYmxlZCkgcmV0dXJuIG51bGw7XHJcbiAgICB0aGlzLnNldFBhZ2UodGhpcy5sYXN0UGFnZU51bSEpO1xyXG4gICAgcmV0dXJuIHRoaXMuX3BhZ2U7XHJcbiAgfVxyXG5cclxuICAvLyEgY29udGV4dFxyXG4gIGdldEN1cnJlbnRJdGVtc0NvbnRleHQoKTogUGFnaW5hdGlvbkN1cnJlbnRJdGVtc0NvbnRleHQge1xyXG4gICAgaWYgKCFpc0RlZmluZWQodGhpcy5fdG90YWxJdGVtcykpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHVzZSBwYWdpbmF0aW9uIG1vZGVsIHdpdGhvdXQgZGVmaW5pbmcgdG90YWwgaXRlbXMgZmlyc3QuJyk7XHJcblxyXG4gICAgY29uc3QgcGFnZUl0ZW1zID0gdGhpcy5pdGVtc09uQ3VycmVudFBhZ2UhO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdG90YWxQYWdlczogdGhpcy5sYXN0UGFnZU51bSEsXHJcbiAgICAgIHRvdGFsSXRlbXM6IHRoaXMuX3RvdGFsSXRlbXMsXHJcbiAgICAgIHBhZ2U6IHRoaXMuX3BhZ2UsXHJcbiAgICAgIGN1cnJlbnRJdGVtc0ZpcnN0OiBwYWdlSXRlbXNbMF0sXHJcbiAgICAgIGN1cnJlbnRJdGVtc0xhc3Q6IHBhZ2VJdGVtc1sxXSxcclxuICAgIH07XHJcbiAgfVxyXG4gIGdldFBhcnRpYWxDb250ZXh0KCk6IE9taXQ8UGFnaW5hdGlvbkNvbnRleHQsICdvbkl0ZW1zUGVyUGFnZUNoYW5nZScgfCAnb25QYWdlQ2hhbmdlJz4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgLi4udGhpcy5nZXRDdXJyZW50SXRlbXNDb250ZXh0KCksXHJcbiAgICAgIGl0ZW1zUGVyUGFnZU9wdGlvbnM6IHRoaXMuX2l0ZW1zUGVyUGFnZU9wdGlvbnMsXHJcbiAgICAgIGl0ZW1zUGVyUGFnZTogdGhpcy5faXRlbXNQZXJQYWdlLFxyXG4gICAgICBmaXJzdFBhZ2VEaXNhYmxlZDogdGhpcy5maXJzdFBhZ2VEaXNhYmxlZCxcclxuICAgICAgcHJldlBhZ2VEaXNhYmxlZDogdGhpcy5maXJzdFBhZ2VEaXNhYmxlZCxcclxuICAgICAgbmV4dFBhZ2VEaXNhYmxlZDogdGhpcy5sYXN0UGFnZURpc2FibGVkLFxyXG4gICAgICBsYXN0UGFnZURpc2FibGVkOiB0aGlzLmxhc3RQYWdlRGlzYWJsZWQsXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvX2ludGVybmFsL21vZGVscy9wYWdpbmF0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUE2QnhDLE1BQU0sT0FBTyxlQUFlO0lBQzFCLFlBQTZCLFdBQWdDO1FBQWhDLGdCQUFXLEdBQVgsV0FBVyxDQUFxQjtRQUVwRCx3QkFBbUIsR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXhGLGdCQUFXLEdBQUcsUUFBUSxDQUFnQixHQUFHLEVBQUU7WUFDbEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsS0FBSztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUN4QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUM1RCxDQUFDLENBQUMsQ0FBQztRQUNNLGVBQVUsR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFO1lBQzNDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JHLENBQUMsQ0FBQyxDQUFDO1FBQ00sdUJBQWtCLEdBQUcsUUFBUSxDQUEwQixHQUFHLEVBQUU7WUFDbkUsTUFBTSxLQUFLLEdBQUcsSUFB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LE9BQU8sSUFBSSxDQUFDO1FBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEIsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ0QsWUFBWTtRQUNWLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDMUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsWUFBWTtRQUNWLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsWUFBWTtRQUNWLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFHLENBQUMsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQztDQTRCRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZGVsU2lnbmFsLCBTaWduYWwsIGNvbXB1dGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc0RlZmluZWQgfSBmcm9tICdzaW1wbGUtYm9vbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnaW5hdGlvbk1vZGVsSG9zdCB7XG4gIHJlYWRvbmx5IGNvbXBvbmVudElkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRvdGFsSXRlbXM6IFNpZ25hbDxudW1iZXI+O1xuICByZWFkb25seSBvcHRpb25zOiBTaWduYWw8bnVtYmVyW10gfCB7IHZhbHVlOiBudW1iZXI7IGxhYmVsOiBzdHJpbmcgfVtdPjtcbiAgcmVhZG9ubHkgaXRlbXNQZXJQYWdlOiBNb2RlbFNpZ25hbDxudW1iZXI+O1xuICByZWFkb25seSBwYWdlOiBNb2RlbFNpZ25hbDxudW1iZXI+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2luYXRpb25DdXJyZW50SXRlbXNDb250ZXh0IHtcbiAgcmVhZG9ubHkgY3VycmVudEl0ZW1zRmlyc3Q6IG51bWJlcjtcbiAgcmVhZG9ubHkgY3VycmVudEl0ZW1zTGFzdDogbnVtYmVyO1xuICByZWFkb25seSB0b3RhbEl0ZW1zOiBudW1iZXI7XG4gIHJlYWRvbmx5IHRvdGFsUGFnZXM6IG51bWJlcjtcbiAgcmVhZG9ubHkgcGFnZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2luYXRpb25Db250ZXh0IGV4dGVuZHMgUGFnaW5hdGlvbkN1cnJlbnRJdGVtc0NvbnRleHQge1xuICByZWFkb25seSBpdGVtc1BlclBhZ2VPcHRpb25zOiBudW1iZXJbXSB8IHsgdmFsdWU6IG51bWJlcjsgbGFiZWw6IHN0cmluZyB9W107XG4gIHJlYWRvbmx5IGl0ZW1zUGVyUGFnZTogbnVtYmVyO1xuICByZWFkb25seSBvbkl0ZW1zUGVyUGFnZUNoYW5nZTogKG5ld1ZhbHVlOiBudW1iZXIpID0+IHZvaWQ7XG4gIHJlYWRvbmx5IGZpcnN0UGFnZURpc2FibGVkOiBib29sZWFuO1xuICByZWFkb25seSBwcmV2UGFnZURpc2FibGVkOiBib29sZWFuO1xuICByZWFkb25seSBuZXh0UGFnZURpc2FibGVkOiBib29sZWFuO1xuICByZWFkb25seSBsYXN0UGFnZURpc2FibGVkOiBib29sZWFuO1xuICByZWFkb25seSBvblBhZ2VDaGFuZ2U6IChuZXdQYWdlOiBudW1iZXIpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uTW9kZWwge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IF9hcmRIb3N0Q21wOiBQYWdpbmF0aW9uTW9kZWxIb3N0KSB7fVxuXG4gIHJlYWRvbmx5IGlzVG90YWxJdGVtc0RlZmluZWQgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiBpc0RlZmluZWQodGhpcy5fYXJkSG9zdENtcC50b3RhbEl0ZW1zKCkpKTtcblxuICByZWFkb25seSBsYXN0UGFnZU51bSA9IGNvbXB1dGVkPG51bWJlciB8IG51bGw+KCgpID0+IHtcbiAgICBjb25zdCB0b3RhbCA9IHRoaXMuX2FyZEhvc3RDbXAudG90YWxJdGVtcygpO1xuICAgIGlmICghdG90YWwpIHJldHVybiBudWxsO1xuICAgIHJldHVybiBNYXRoLmNlaWwodG90YWwgLyB0aGlzLl9hcmRIb3N0Q21wLml0ZW1zUGVyUGFnZSgpKTtcbiAgfSk7XG4gIHJlYWRvbmx5IGlzTGFzdFBhZ2UgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XG4gICAgcmV0dXJuICFpc0RlZmluZWQodGhpcy5fYXJkSG9zdENtcC50b3RhbEl0ZW1zKCkpIHx8IHRoaXMubGFzdFBhZ2VOdW0oKSA9PT0gdGhpcy5fYXJkSG9zdENtcC5wYWdlKCk7XG4gIH0pO1xuICByZWFkb25seSBpdGVtc09uQ3VycmVudFBhZ2UgPSBjb21wdXRlZDxbbnVtYmVyLCBudW1iZXJdIHwgbnVsbD4oKCkgPT4ge1xuICAgIGNvbnN0IHRvdGFsID0gdGhpcy5fYXJkSG9zdENtcC50b3RhbEl0ZW1zKCk7XG4gICAgaWYgKCF0b3RhbCkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIFtcbiAgICAgIE1hdGgubWluKHRvdGFsLCAodGhpcy5fYXJkSG9zdENtcC5wYWdlKCkgLSAxKSAqIHRoaXMuX2FyZEhvc3RDbXAuaXRlbXNQZXJQYWdlKCkgKyAxKSxcbiAgICAgIE1hdGgubWluKHRvdGFsLCB0aGlzLl9hcmRIb3N0Q21wLnBhZ2UoKSAqIHRoaXMuX2FyZEhvc3RDbXAuaXRlbXNQZXJQYWdlKCkpLFxuICAgIF07XG4gIH0pO1xuXG4gIC8vISBhY3Rpb24gZGlzYWJsZWQgc3RhdGVzXG4gIHJlYWRvbmx5IGZpcnN0UGFnZURpc2FibGVkID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgIHJldHVybiAhaXNEZWZpbmVkKHRoaXMuX2FyZEhvc3RDbXAudG90YWxJdGVtcygpKSB8fCB0aGlzLl9hcmRIb3N0Q21wLnBhZ2UoKSA9PT0gMTtcbiAgfSk7XG4gIHJlYWRvbmx5IGxhc3RQYWdlRGlzYWJsZWQgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XG4gICAgcmV0dXJuICFpc0RlZmluZWQodGhpcy5fYXJkSG9zdENtcC50b3RhbEl0ZW1zKCkpIHx8IHRoaXMuX2FyZEhvc3RDbXAucGFnZSgpID09PSB0aGlzLmxhc3RQYWdlTnVtKCk7XG4gIH0pO1xuXG4gIC8vISBjdXJyZW50IHBhZ2VcbiAgc2V0UGFnZSh2OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9hcmRIb3N0Q21wLnBhZ2Uuc2V0KHYpO1xuICB9XG4gIGdldFBhZ2UoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fYXJkSG9zdENtcC5wYWdlKCk7XG4gIH1cbiAgZ29Ub0ZpcnN0UGFnZSgpOiBudW1iZXIgfCBudWxsIHtcbiAgICBpZiAodGhpcy5maXJzdFBhZ2VEaXNhYmxlZCgpKSByZXR1cm4gbnVsbDtcbiAgICB0aGlzLnNldFBhZ2UoMSk7XG4gICAgcmV0dXJuIDE7XG4gIH1cbiAgZ29Ub1ByZXZQYWdlKCk6IG51bWJlciB8IG51bGwge1xuICAgIGlmICh0aGlzLmZpcnN0UGFnZURpc2FibGVkKCkpIHJldHVybiBudWxsO1xuICAgIHRoaXMuc2V0UGFnZSh0aGlzLl9hcmRIb3N0Q21wLnBhZ2UoKSAtIDEpO1xuICAgIHJldHVybiB0aGlzLl9hcmRIb3N0Q21wLnBhZ2UoKTtcbiAgfVxuICBnb1RvTmV4dFBhZ2UoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMubGFzdFBhZ2VEaXNhYmxlZCgpKSByZXR1cm4gbnVsbDtcbiAgICB0aGlzLnNldFBhZ2UodGhpcy5fYXJkSG9zdENtcC5wYWdlKCkgKyAxKTtcbiAgICByZXR1cm4gdGhpcy5fYXJkSG9zdENtcC5wYWdlKCk7XG4gIH1cbiAgZ29Ub0xhc3RQYWdlKCk6IG51bWJlciB8IG51bGwge1xuICAgIGlmICh0aGlzLmxhc3RQYWdlRGlzYWJsZWQoKSkgcmV0dXJuIG51bGw7XG4gICAgdGhpcy5zZXRQYWdlKHRoaXMubGFzdFBhZ2VOdW0oKSEpO1xuICAgIHJldHVybiB0aGlzLl9hcmRIb3N0Q21wLnBhZ2UoKTtcbiAgfVxuXG4gIC8vISBjb250ZXh0XG4gIHJlYWRvbmx5IGdldEN1cnJlbnRJdGVtc0NvbnRleHQgPSBjb21wdXRlZDxQYWdpbmF0aW9uQ3VycmVudEl0ZW1zQ29udGV4dD4oKCkgPT4ge1xuICAgIGNvbnN0IHRvdGFsID0gdGhpcy5fYXJkSG9zdENtcC50b3RhbEl0ZW1zKCk7XG4gICAgaWYgKCF0b3RhbClcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQVJELUZUJHt0aGlzLl9hcmRIb3N0Q21wLmNvbXBvbmVudElkfTkwOiBDYW5ub3QgdXNlIHBhZ2luYXRpb24gbW9kZWwgd2l0aG91dCBkZWZpbmluZyB0b3RhbCBpdGVtcyBmaXJzdC5gKTtcblxuICAgIGNvbnN0IHBhZ2VJdGVtcyA9IHRoaXMuaXRlbXNPbkN1cnJlbnRQYWdlKCkhO1xuICAgIHJldHVybiB7XG4gICAgICB0b3RhbFBhZ2VzOiB0aGlzLmxhc3RQYWdlTnVtKCkhLFxuICAgICAgdG90YWxJdGVtczogdG90YWwsXG4gICAgICBwYWdlOiB0aGlzLl9hcmRIb3N0Q21wLnBhZ2UoKSxcbiAgICAgIGN1cnJlbnRJdGVtc0ZpcnN0OiBwYWdlSXRlbXNbMF0sXG4gICAgICBjdXJyZW50SXRlbXNMYXN0OiBwYWdlSXRlbXNbMV0sXG4gICAgfTtcbiAgfSk7XG4gIHJlYWRvbmx5IGdldFBhcnRpYWxDb250ZXh0ID0gY29tcHV0ZWQ8T21pdDxQYWdpbmF0aW9uQ29udGV4dCwgJ29uSXRlbXNQZXJQYWdlQ2hhbmdlJyB8ICdvblBhZ2VDaGFuZ2UnPj4oKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLmdldEN1cnJlbnRJdGVtc0NvbnRleHQoKSxcbiAgICAgIGl0ZW1zUGVyUGFnZU9wdGlvbnM6IHRoaXMuX2FyZEhvc3RDbXAub3B0aW9ucygpLFxuICAgICAgaXRlbXNQZXJQYWdlOiB0aGlzLl9hcmRIb3N0Q21wLml0ZW1zUGVyUGFnZSgpLFxuICAgICAgZmlyc3RQYWdlRGlzYWJsZWQ6IHRoaXMuZmlyc3RQYWdlRGlzYWJsZWQoKSxcbiAgICAgIHByZXZQYWdlRGlzYWJsZWQ6IHRoaXMuZmlyc3RQYWdlRGlzYWJsZWQoKSxcbiAgICAgIG5leHRQYWdlRGlzYWJsZWQ6IHRoaXMubGFzdFBhZ2VEaXNhYmxlZCgpLFxuICAgICAgbGFzdFBhZ2VEaXNhYmxlZDogdGhpcy5sYXN0UGFnZURpc2FibGVkKCksXG4gICAgfTtcbiAgfSk7XG59XG4iXX0=
@@ -26,17 +26,17 @@ export class _NgModelComponentBase extends _FocusableComponentBase {
26
26
  * @param isDisabled the new disabled state.
27
27
  */
28
28
  setDisabledState(isDisabled) {
29
- this._disabled = isDisabled;
29
+ this.disabled.set(isDisabled);
30
30
  }
31
31
  //! event handlers
32
32
  onBlur(event) {
33
33
  super.onBlur(event);
34
34
  this._onTouchedRegistered?.();
35
35
  }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: _NgModelComponentBase, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
37
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.9", type: _NgModelComponentBase, usesInheritance: true, ngImport: i0 }); }
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: _NgModelComponentBase, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
37
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.2", type: _NgModelComponentBase, usesInheritance: true, ngImport: i0 }); }
38
38
  }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: _NgModelComponentBase, decorators: [{
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: _NgModelComponentBase, decorators: [{
40
40
  type: Directive
41
41
  }] });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdtb2RlbC1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL19pbnRlcm5hbC9uZ21vZGVsLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUVoRTs7OztHQUlHO0FBRUgsTUFBTSxPQUFnQixxQkFBc0IsU0FBUSx1QkFBdUI7SUFJekU7OztPQUdHO0lBQ0gsaUJBQWlCLENBQUMsRUFBYztRQUM5QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFDRDs7O09BR0c7SUFDSCxnQkFBZ0IsQ0FBQyxFQUFrQjtRQUNqQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFDRDs7O09BR0c7SUFDSCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNsQyxJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQztJQUM5QixDQUFDO0lBZ0JELGtCQUFrQjtJQUNULE1BQU0sQ0FBQyxLQUFpQjtRQUMvQixLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLENBQUM7SUFDaEMsQ0FBQzs4R0E1Q21CLHFCQUFxQjtrR0FBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQUQxQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBfRm9jdXNhYmxlQ29tcG9uZW50QmFzZSB9IGZyb20gJy4vZm9jdXNhYmxlLWNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuICogQ29tbW9uIGNvZGUgZm9yIGNvbXBvbmVudHMsIHdoaWNoIGltcGxlbWVudCB0aGUgQ29udHJvbFZhbHVlQWNjZXNzb3IuXHJcbiAqXHJcbiAqICoqV2FybmluZyoqOiBgd3JpdGVWYWx1ZWAgZnVuY3Rpb24gc2hvdWxkIGJlIGltcGxlbWVudGVkIG9uIHRoZSBjaGlsZCBjb21wb25lbnQhXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIF9OZ01vZGVsQ29tcG9uZW50QmFzZSBleHRlbmRzIF9Gb2N1c2FibGVDb21wb25lbnRCYXNlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gIC8vISBjb250cm9sIHZhbHVlIGFjY2Vzc29yXHJcbiAgcHJvdGVjdGVkIF9vbkNoYW5nZVJlZ2lzdGVyZWQhOiAoXzogYW55KSA9PiB2b2lkO1xyXG4gIHByb3RlY3RlZCBfb25Ub3VjaGVkUmVnaXN0ZXJlZCE6ICgpID0+IHZvaWQ7XHJcbiAgLyoqXHJcbiAgICogUmVnaXN0ZXJzIGEgZnVuY3Rpb24gdG8gaGFuZGxlIHRvdWNoZWQgc3RhdGUuIFJlcXVpcmVkIGJ5IENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxyXG4gICAqIEBwYXJhbSBmbiBUaGUgZnVuY3Rpb24gdG8gcmVnaXN0ZXIuXHJcbiAgICovXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIHRoaXMuX29uVG91Y2hlZFJlZ2lzdGVyZWQgPSBmbjtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmVnaXN0ZXJzIGEgZnVuY3Rpb24gdG8gaGFuZGxlIHZhbHVlIGNoYW5nZS4gUmVxdWlyZWQgYnkgQ29udHJvbFZhbHVlQWNjZXNzb3IuXHJcbiAgICogQHBhcmFtIGZuIFRoZSBmdW5jdGlvbiB0byByZWdpc3Rlci5cclxuICAgKi9cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogYW55KSA9PiB7fSk6IHZvaWQge1xyXG4gICAgdGhpcy5fb25DaGFuZ2VSZWdpc3RlcmVkID0gZm47XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGNvbXBvbmVudCdzIGRpc2FibGVkIHN0YXRlLiBSZXF1aXJlZCBieSBDb250cm9sVmFsdWVBY2Nlc3Nvci5cclxuICAgKiBAcGFyYW0gaXNEaXNhYmxlZCB0aGUgbmV3IGRpc2FibGVkIHN0YXRlLlxyXG4gICAqL1xyXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5fZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV3JpdGVzIHRoZSBhIG5ldyB2YWx1ZSBpbnRvIHRoZSBjb21wb25lbnQuIFJlcXVpcmVkIGJ5IENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxyXG4gICAqIEBhYnN0cmFjdFxyXG4gICAqIEBwYXJhbSB2IFRoZSBuZXcgdmFsdWUgdG8gd3JpdGUuXHJcbiAgICovXHJcbiAgYWJzdHJhY3Qgd3JpdGVWYWx1ZSh2OiBhbnkpOiB2b2lkOyAvLyogYWJzdHJhY3RcclxuXHJcbiAgLyoqXHJcbiAgICogV3JpdGVzIHRoZSBhIG5ldyB2YWx1ZSBpbnRvIHRoZSBjb21wb25lbnQuIFJlcXVpcmVkIGJ5IENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxyXG4gICAqIEBhYnN0cmFjdFxyXG4gICAqIEBwYXJhbSB2IFRoZSBuZXcgdmFsdWUgdG8gd3JpdGUuXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IF9lbWl0Q2hhbmdlKCk6IHZvaWQ7IC8vKiBhYnN0cmFjdFxyXG5cclxuICAvLyEgZXZlbnQgaGFuZGxlcnNcclxuICBvdmVycmlkZSBvbkJsdXIoZXZlbnQ6IEZvY3VzRXZlbnQpIHtcclxuICAgIHN1cGVyLm9uQmx1cihldmVudCk7XHJcbiAgICB0aGlzLl9vblRvdWNoZWRSZWdpc3RlcmVkPy4oKTtcclxuICB9XHJcbn1cclxuIl19
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdtb2RlbC1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL19pbnRlcm5hbC9uZ21vZGVsLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUVoRTs7OztHQUlHO0FBRUgsTUFBTSxPQUFnQixxQkFBc0IsU0FBUSx1QkFBdUI7SUFJekU7OztPQUdHO0lBQ0gsaUJBQWlCLENBQUMsRUFBYztRQUM5QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFDRDs7O09BR0c7SUFDSCxnQkFBZ0IsQ0FBQyxFQUFvQjtRQUNuQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFDRDs7O09BR0c7SUFDSCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNsQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBZ0JELGtCQUFrQjtJQUNULE1BQU0sQ0FBQyxLQUFpQjtRQUMvQixLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLENBQUM7SUFDaEMsQ0FBQzs4R0E1Q21CLHFCQUFxQjtrR0FBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQUQxQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IF9Gb2N1c2FibGVDb21wb25lbnRCYXNlIH0gZnJvbSAnLi9mb2N1c2FibGUtY29tcG9uZW50JztcblxuLyoqXG4gKiBDb21tb24gY29kZSBmb3IgY29tcG9uZW50cywgd2hpY2ggaW1wbGVtZW50IHRoZSBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAqXG4gKiAqKldhcm5pbmcqKjogYHdyaXRlVmFsdWVgIGZ1bmN0aW9uIHNob3VsZCBiZSBpbXBsZW1lbnRlZCBvbiB0aGUgY2hpbGQgY29tcG9uZW50IVxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBfTmdNb2RlbENvbXBvbmVudEJhc2UgZXh0ZW5kcyBfRm9jdXNhYmxlQ29tcG9uZW50QmFzZSBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgLy8hIGNvbnRyb2wgdmFsdWUgYWNjZXNzb3JcbiAgcHJvdGVjdGVkIF9vbkNoYW5nZVJlZ2lzdGVyZWQhOiAoXzogYW55KSA9PiB2b2lkO1xuICBwcm90ZWN0ZWQgX29uVG91Y2hlZFJlZ2lzdGVyZWQhOiAoKSA9PiB2b2lkO1xuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgZnVuY3Rpb24gdG8gaGFuZGxlIHRvdWNoZWQgc3RhdGUuIFJlcXVpcmVkIGJ5IENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKiBAcGFyYW0gZm4gVGhlIGZ1bmN0aW9uIHRvIHJlZ2lzdGVyLlxuICAgKi9cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vblRvdWNoZWRSZWdpc3RlcmVkID0gZm47XG4gIH1cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIGZ1bmN0aW9uIHRvIGhhbmRsZSB2YWx1ZSBjaGFuZ2UuIFJlcXVpcmVkIGJ5IENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKiBAcGFyYW0gZm4gVGhlIGZ1bmN0aW9uIHRvIHJlZ2lzdGVyLlxuICAgKi9cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX29uQ2hhbmdlUmVnaXN0ZXJlZCA9IGZuO1xuICB9XG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjb21wb25lbnQncyBkaXNhYmxlZCBzdGF0ZS4gUmVxdWlyZWQgYnkgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gICAqIEBwYXJhbSBpc0Rpc2FibGVkIHRoZSBuZXcgZGlzYWJsZWQgc3RhdGUuXG4gICAqL1xuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkLnNldChpc0Rpc2FibGVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXcml0ZXMgdGhlIGEgbmV3IHZhbHVlIGludG8gdGhlIGNvbXBvbmVudC4gUmVxdWlyZWQgYnkgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gICAqIEBhYnN0cmFjdFxuICAgKiBAcGFyYW0gdiBUaGUgbmV3IHZhbHVlIHRvIHdyaXRlLlxuICAgKi9cbiAgYWJzdHJhY3Qgd3JpdGVWYWx1ZSh2OiBhbnkpOiB2b2lkOyAvLyogYWJzdHJhY3RcblxuICAvKipcbiAgICogV3JpdGVzIHRoZSBhIG5ldyB2YWx1ZSBpbnRvIHRoZSBjb21wb25lbnQuIFJlcXVpcmVkIGJ5IENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKiBAYWJzdHJhY3RcbiAgICogQHBhcmFtIHYgVGhlIG5ldyB2YWx1ZSB0byB3cml0ZS5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBfZW1pdENoYW5nZSgpOiB2b2lkOyAvLyogYWJzdHJhY3RcblxuICAvLyEgZXZlbnQgaGFuZGxlcnNcbiAgb3ZlcnJpZGUgb25CbHVyKGV2ZW50OiBGb2N1c0V2ZW50KSB7XG4gICAgc3VwZXIub25CbHVyKGV2ZW50KTtcbiAgICB0aGlzLl9vblRvdWNoZWRSZWdpc3RlcmVkPy4oKTtcbiAgfVxufVxuIl19
@@ -56,4 +56,4 @@ export class QueueItem {
56
56
  this.next = next;
57
57
  }
58
58
  }
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL19pbnRlcm5hbC9xdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQU8sS0FBSztJQUloQixJQUFJLENBQUMsSUFBTztRQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsSUFBSyxDQUFDLElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFLLENBQUMsSUFBSyxDQUFDO0lBQy9CLENBQUM7SUFDRCxTQUFTLENBQUMsSUFBTztRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUk7WUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDeEMsQ0FBQztJQUNELEdBQUc7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTztRQUNsQixpQ0FBaUM7UUFDakMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RCLDRDQUE0QztRQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUk7WUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztRQUV0QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNELElBQUk7UUFDRixPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFDRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7UUFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQUksTUFBTTtRQUNSLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDNUIsT0FBTyxXQUFXLEVBQUU7WUFDbEIsTUFBTSxFQUFFLENBQUM7WUFDVCxXQUFXLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztTQUNoQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxPQUFPO1FBQ0wsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUNELE9BQU87UUFDTCxNQUFNLEtBQUssR0FBUSxFQUFFLENBQUM7UUFDdEIsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUM1QixPQUFPLFdBQVcsRUFBRTtZQUNsQixLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5QixXQUFXLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztTQUNoQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLFNBQVM7SUFDcEIsWUFDUyxLQUFRLEVBQ1IsSUFBbUI7UUFEbkIsVUFBSyxHQUFMLEtBQUssQ0FBRztRQUNSLFNBQUksR0FBSixJQUFJLENBQWU7SUFDekIsQ0FBQztDQUNMIiwic291cmNlc0NvbnRlbnQiOlsiaW50ZXJmYWNlIElRdWV1ZSB7XHJcbiAgcmVhZG9ubHkgbGVuZ3RoOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBRdWV1ZTxUID0gdW5rbm93bj4gaW1wbGVtZW50cyBJUXVldWUge1xyXG4gIHByaXZhdGUgaGVhZD86IFF1ZXVlSXRlbTxUPjtcclxuICBwcml2YXRlIHRhaWw/OiBRdWV1ZUl0ZW08VD47XHJcblxyXG4gIHB1c2goaXRlbTogVCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnRhaWwpIHJldHVybiB0aGlzLnB1c2hGcm9udChpdGVtKTtcclxuICAgIHRoaXMudGFpbCEubmV4dCA9IG5ldyBRdWV1ZUl0ZW0oaXRlbSk7XHJcbiAgICB0aGlzLnRhaWwgPSB0aGlzLnRhaWwhLm5leHQhO1xyXG4gIH1cclxuICBwdXNoRnJvbnQoaXRlbTogVCk6IHZvaWQge1xyXG4gICAgdGhpcy5oZWFkID0gbmV3IFF1ZXVlSXRlbShpdGVtLCB0aGlzLmhlYWQpO1xyXG4gICAgaWYgKCF0aGlzLnRhaWwpIHRoaXMudGFpbCA9IHRoaXMuaGVhZDtcclxuICB9XHJcbiAgcG9wKCk6IFQgfCB1bmRlZmluZWQge1xyXG4gICAgY29uc3QgaGVhZCA9IHRoaXMuaGVhZDtcclxuICAgIGlmICghaGVhZCkgcmV0dXJuO1xyXG4gICAgLy9yZXBsYWNlIGhlYWQgd2l0aCB0aGUgbmV4dCBpdGVtXHJcbiAgICB0aGlzLmhlYWQgPSBoZWFkLm5leHQ7XHJcbiAgICAvL2RlbGV0ZSB0aGUgdGFpbCBpZiB0aGVyZSBhcmUgbm8gbmV4dCBpdGVtc1xyXG4gICAgaWYgKCF0aGlzLmhlYWQpIHRoaXMudGFpbCA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICByZXR1cm4gaGVhZC52YWx1ZTtcclxuICB9XHJcbiAgcGVlaygpOiBUIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLmhlYWQ/LnZhbHVlO1xyXG4gIH1cclxuICBjbGVhcigpOiB2b2lkIHtcclxuICAgIHRoaXMuaGVhZCA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMudGFpbCA9IHVuZGVmaW5lZDtcclxuICB9XHJcbiAgZ2V0IGxlbmd0aCgpOiBudW1iZXIge1xyXG4gICAgbGV0IGxlbmd0aCA9IDA7XHJcbiAgICBsZXQgY3VycmVudE5vZGUgPSB0aGlzLmhlYWQ7XHJcbiAgICB3aGlsZSAoY3VycmVudE5vZGUpIHtcclxuICAgICAgbGVuZ3RoKys7XHJcbiAgICAgIGN1cnJlbnROb2RlID0gY3VycmVudE5vZGUubmV4dDtcclxuICAgIH1cclxuICAgIHJldHVybiBsZW5ndGg7XHJcbiAgfVxyXG4gIGlzRW1wdHkoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIXRoaXMuaGVhZDtcclxuICB9XHJcbiAgdG9BcnJheSgpOiBUW10ge1xyXG4gICAgY29uc3QgYXJyYXk6IFRbXSA9IFtdO1xyXG4gICAgbGV0IGN1cnJlbnROb2RlID0gdGhpcy5oZWFkO1xyXG4gICAgd2hpbGUgKGN1cnJlbnROb2RlKSB7XHJcbiAgICAgIGFycmF5LnB1c2goY3VycmVudE5vZGUudmFsdWUpO1xyXG4gICAgICBjdXJyZW50Tm9kZSA9IGN1cnJlbnROb2RlLm5leHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYXJyYXk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUXVldWVJdGVtPFQ+IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyB2YWx1ZTogVCxcclxuICAgIHB1YmxpYyBuZXh0PzogUXVldWVJdGVtPFQ+XHJcbiAgKSB7fVxyXG59XHJcbiJdfQ==
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL19pbnRlcm5hbC9xdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQU8sS0FBSztJQUloQixJQUFJLENBQUMsSUFBTztRQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsSUFBSyxDQUFDLElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFLLENBQUMsSUFBSyxDQUFDO0lBQy9CLENBQUM7SUFDRCxTQUFTLENBQUMsSUFBTztRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUk7WUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDeEMsQ0FBQztJQUNELEdBQUc7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTztRQUNsQixpQ0FBaUM7UUFDakMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RCLDRDQUE0QztRQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUk7WUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztRQUV0QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNELElBQUk7UUFDRixPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFDRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7UUFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQUksTUFBTTtRQUNSLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDNUIsT0FBTyxXQUFXLEVBQUUsQ0FBQztZQUNuQixNQUFNLEVBQUUsQ0FBQztZQUNULFdBQVcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQ2pDLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ0QsT0FBTztRQUNMLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxPQUFPO1FBQ0wsTUFBTSxLQUFLLEdBQVEsRUFBRSxDQUFDO1FBQ3RCLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDNUIsT0FBTyxXQUFXLEVBQUUsQ0FBQztZQUNuQixLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5QixXQUFXLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztRQUNqQyxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sU0FBUztJQUNwQixZQUNTLEtBQVEsRUFDUixJQUFtQjtRQURuQixVQUFLLEdBQUwsS0FBSyxDQUFHO1FBQ1IsU0FBSSxHQUFKLElBQUksQ0FBZTtJQUN6QixDQUFDO0NBQ0wiLCJzb3VyY2VzQ29udGVudCI6WyJpbnRlcmZhY2UgSVF1ZXVlIHtcbiAgcmVhZG9ubHkgbGVuZ3RoOiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBRdWV1ZTxUID0gdW5rbm93bj4gaW1wbGVtZW50cyBJUXVldWUge1xuICBwcml2YXRlIGhlYWQ/OiBRdWV1ZUl0ZW08VD47XG4gIHByaXZhdGUgdGFpbD86IFF1ZXVlSXRlbTxUPjtcblxuICBwdXNoKGl0ZW06IFQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudGFpbCkgcmV0dXJuIHRoaXMucHVzaEZyb250KGl0ZW0pO1xuICAgIHRoaXMudGFpbCEubmV4dCA9IG5ldyBRdWV1ZUl0ZW0oaXRlbSk7XG4gICAgdGhpcy50YWlsID0gdGhpcy50YWlsIS5uZXh0ITtcbiAgfVxuICBwdXNoRnJvbnQoaXRlbTogVCk6IHZvaWQge1xuICAgIHRoaXMuaGVhZCA9IG5ldyBRdWV1ZUl0ZW0oaXRlbSwgdGhpcy5oZWFkKTtcbiAgICBpZiAoIXRoaXMudGFpbCkgdGhpcy50YWlsID0gdGhpcy5oZWFkO1xuICB9XG4gIHBvcCgpOiBUIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBoZWFkID0gdGhpcy5oZWFkO1xuICAgIGlmICghaGVhZCkgcmV0dXJuO1xuICAgIC8vcmVwbGFjZSBoZWFkIHdpdGggdGhlIG5leHQgaXRlbVxuICAgIHRoaXMuaGVhZCA9IGhlYWQubmV4dDtcbiAgICAvL2RlbGV0ZSB0aGUgdGFpbCBpZiB0aGVyZSBhcmUgbm8gbmV4dCBpdGVtc1xuICAgIGlmICghdGhpcy5oZWFkKSB0aGlzLnRhaWwgPSB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4gaGVhZC52YWx1ZTtcbiAgfVxuICBwZWVrKCk6IFQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmhlYWQ/LnZhbHVlO1xuICB9XG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMuaGVhZCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnRhaWwgPSB1bmRlZmluZWQ7XG4gIH1cbiAgZ2V0IGxlbmd0aCgpOiBudW1iZXIge1xuICAgIGxldCBsZW5ndGggPSAwO1xuICAgIGxldCBjdXJyZW50Tm9kZSA9IHRoaXMuaGVhZDtcbiAgICB3aGlsZSAoY3VycmVudE5vZGUpIHtcbiAgICAgIGxlbmd0aCsrO1xuICAgICAgY3VycmVudE5vZGUgPSBjdXJyZW50Tm9kZS5uZXh0O1xuICAgIH1cbiAgICByZXR1cm4gbGVuZ3RoO1xuICB9XG4gIGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmhlYWQ7XG4gIH1cbiAgdG9BcnJheSgpOiBUW10ge1xuICAgIGNvbnN0IGFycmF5OiBUW10gPSBbXTtcbiAgICBsZXQgY3VycmVudE5vZGUgPSB0aGlzLmhlYWQ7XG4gICAgd2hpbGUgKGN1cnJlbnROb2RlKSB7XG4gICAgICBhcnJheS5wdXNoKGN1cnJlbnROb2RlLnZhbHVlKTtcbiAgICAgIGN1cnJlbnROb2RlID0gY3VycmVudE5vZGUubmV4dDtcbiAgICB9XG4gICAgcmV0dXJuIGFycmF5O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBRdWV1ZUl0ZW08VD4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgdmFsdWU6IFQsXG4gICAgcHVibGljIG5leHQ/OiBRdWV1ZUl0ZW08VD5cbiAgKSB7fVxufVxuIl19