@ardium-ui/ui 1.0.2 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (390) hide show
  1. package/esm2022/lib/_internal/boolean-component.mjs +28 -42
  2. package/esm2022/lib/_internal/clear-button/clear-button.component.mjs +5 -5
  3. package/esm2022/lib/_internal/clear-button/clear-button.module.mjs +4 -4
  4. package/esm2022/lib/_internal/disablable-component.mjs +24 -22
  5. package/esm2022/lib/_internal/focusable-component.mjs +12 -25
  6. package/esm2022/lib/_internal/item-storages/dropdown-item-storage.mjs +172 -169
  7. package/esm2022/lib/_internal/item-storages/simple-item-storage.mjs +115 -120
  8. package/esm2022/lib/_internal/item-storages/simplest-item-storage.mjs +56 -53
  9. package/esm2022/lib/_internal/models/pagination.model.mjs +72 -106
  10. package/esm2022/lib/_internal/ngmodel-component.mjs +5 -5
  11. package/esm2022/lib/_internal/queue.mjs +1 -1
  12. package/esm2022/lib/_internal/selectable-list-component.mjs +74 -98
  13. package/esm2022/lib/badge/badge.directive.mjs +70 -99
  14. package/esm2022/lib/badge/badge.module.mjs +4 -4
  15. package/esm2022/lib/badge/index.mjs +4 -0
  16. package/esm2022/lib/buttons/_button-base.mjs +13 -35
  17. package/esm2022/lib/buttons/button/button.component.mjs +22 -37
  18. package/esm2022/lib/buttons/button/button.module.mjs +4 -4
  19. package/esm2022/lib/buttons/button/index.mjs +3 -0
  20. package/esm2022/lib/buttons/fab/fab.component.mjs +16 -28
  21. package/esm2022/lib/buttons/fab/fab.module.mjs +4 -4
  22. package/esm2022/lib/buttons/fab/index.mjs +3 -0
  23. package/esm2022/lib/buttons/icon-button/icon-button.component.mjs +17 -25
  24. package/esm2022/lib/buttons/icon-button/icon-button.module.mjs +4 -4
  25. package/esm2022/lib/buttons/icon-button/index.mjs +3 -0
  26. package/esm2022/lib/card/card.children.mjs +32 -33
  27. package/esm2022/lib/card/card.component.mjs +14 -17
  28. package/esm2022/lib/card/card.module.mjs +4 -4
  29. package/esm2022/lib/card/index.mjs +5 -0
  30. package/esm2022/lib/checkbox/checkbox.component.mjs +33 -46
  31. package/esm2022/lib/checkbox/checkbox.module.mjs +4 -4
  32. package/esm2022/lib/checkbox/index.mjs +4 -0
  33. package/esm2022/lib/checkbox-list/checkbox-list.component.mjs +31 -57
  34. package/esm2022/lib/checkbox-list/checkbox-list.module.mjs +4 -4
  35. package/esm2022/lib/checkbox-list/index.mjs +4 -0
  36. package/esm2022/lib/chip/chip.component.mjs +22 -42
  37. package/esm2022/lib/chip/chip.module.mjs +4 -4
  38. package/esm2022/lib/chip/deletable-chip/deletable-chip.component.mjs +28 -53
  39. package/esm2022/lib/chip/index.mjs +5 -0
  40. package/esm2022/lib/chip/selectable-chip/selectable-chip.component.mjs +25 -49
  41. package/esm2022/lib/color/color-display/color-display.component.mjs +15 -32
  42. package/esm2022/lib/color/color-display/color-display.module.mjs +4 -4
  43. package/esm2022/lib/color/color-display/index.mjs +4 -0
  44. package/esm2022/lib/color/color-picker/color-picker.types.mjs +1 -1
  45. package/esm2022/lib/dialog/dialog.component.mjs +54 -130
  46. package/esm2022/lib/dialog/dialog.directives.mjs +3 -3
  47. package/esm2022/lib/dialog/dialog.module.mjs +4 -4
  48. package/esm2022/lib/dialog/dialog.types.mjs +1 -1
  49. package/esm2022/lib/dialog/index.mjs +5 -0
  50. package/esm2022/lib/divider/divider.component.mjs +9 -14
  51. package/esm2022/lib/divider/divider.module.mjs +4 -4
  52. package/esm2022/lib/divider/index.mjs +3 -0
  53. package/esm2022/lib/dropdown-panel/dropdown-panel.component.mjs +40 -59
  54. package/esm2022/lib/dropdown-panel/dropdown-panel.module.mjs +4 -4
  55. package/esm2022/lib/dropdown-panel/index.mjs +4 -0
  56. package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.component.mjs +12 -17
  57. package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.directives.mjs +9 -9
  58. package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.module.mjs +6 -6
  59. package/esm2022/lib/file-inputs/file-drop-area/index.mjs +4 -0
  60. package/esm2022/lib/file-inputs/file-input/file-input.component.mjs +24 -50
  61. package/esm2022/lib/file-inputs/file-input/file-input.directives.mjs +18 -18
  62. package/esm2022/lib/file-inputs/file-input/file-input.module.mjs +4 -4
  63. package/esm2022/lib/file-inputs/file-input/index.mjs +4 -0
  64. package/esm2022/lib/file-inputs/file-input-base.mjs +38 -72
  65. package/esm2022/lib/form-field-frame/form-field-frame.component.mjs +20 -47
  66. package/esm2022/lib/form-field-frame/form-field-frame.directives.mjs +6 -6
  67. package/esm2022/lib/form-field-frame/form-field-frame.module.mjs +4 -4
  68. package/esm2022/lib/form-field-frame/index.mjs +4 -0
  69. package/esm2022/lib/icon/icon.component.mjs +32 -67
  70. package/esm2022/lib/icon/icon.module.mjs +4 -4
  71. package/esm2022/lib/icon/icon.pipe.mjs +3 -3
  72. package/esm2022/lib/icon/index.mjs +4 -0
  73. package/esm2022/lib/inputs/color-input/color-input.directives.mjs +24 -24
  74. package/esm2022/lib/inputs/color-input/color-input.types.mjs +1 -1
  75. package/esm2022/lib/inputs/digit-input/digit-input.component.mjs +65 -115
  76. package/esm2022/lib/inputs/digit-input/digit-input.model.mjs +83 -92
  77. package/esm2022/lib/inputs/digit-input/digit-input.module.mjs +4 -4
  78. package/esm2022/lib/inputs/digit-input/digit-input.types.mjs +1 -1
  79. package/esm2022/lib/inputs/digit-input/digit-input.utils.mjs +1 -1
  80. package/esm2022/lib/inputs/digit-input/index.mjs +4 -0
  81. package/esm2022/lib/inputs/hex-input/hex-input.component.mjs +59 -122
  82. package/esm2022/lib/inputs/hex-input/hex-input.directives.mjs +9 -9
  83. package/esm2022/lib/inputs/hex-input/hex-input.module.mjs +24 -8
  84. package/esm2022/lib/inputs/hex-input/index.mjs +4 -0
  85. package/esm2022/lib/inputs/hex-input.model.mjs +24 -33
  86. package/esm2022/lib/inputs/input/index.mjs +4 -0
  87. package/esm2022/lib/inputs/input/input.component.mjs +95 -154
  88. package/esm2022/lib/inputs/input/input.directives.mjs +16 -16
  89. package/esm2022/lib/inputs/input/input.module.mjs +21 -7
  90. package/esm2022/lib/inputs/input-transformers.mjs +6 -6
  91. package/esm2022/lib/inputs/input-utils.mjs +75 -94
  92. package/esm2022/lib/inputs/number-input/index.mjs +4 -0
  93. package/esm2022/lib/inputs/number-input/number-input.component.mjs +106 -170
  94. package/esm2022/lib/inputs/number-input/number-input.directives.mjs +3 -3
  95. package/esm2022/lib/inputs/number-input/number-input.module.mjs +4 -4
  96. package/esm2022/lib/inputs/password-input/index.mjs +5 -0
  97. package/esm2022/lib/inputs/password-input/password-input.component.mjs +74 -144
  98. package/esm2022/lib/inputs/password-input/password-input.directives.mjs +12 -12
  99. package/esm2022/lib/inputs/password-input/password-input.module.mjs +4 -4
  100. package/esm2022/lib/inputs/password-input/password-input.types.mjs +1 -1
  101. package/esm2022/lib/inputs/simple-input/index.mjs +4 -0
  102. package/esm2022/lib/inputs/simple-input/simple-input.component.mjs +57 -110
  103. package/esm2022/lib/inputs/simple-input/simple-input.directives.mjs +9 -9
  104. package/esm2022/lib/inputs/simple-input/simple-input.module.mjs +4 -4
  105. package/esm2022/lib/kbd/index.mjs +4 -0
  106. package/esm2022/lib/kbd/kbd.component.mjs +15 -29
  107. package/esm2022/lib/kbd/kbd.module.mjs +4 -4
  108. package/esm2022/lib/kbd/kbd.pipe.mjs +3 -3
  109. package/esm2022/lib/kbd-shortcut/index.mjs +3 -0
  110. package/esm2022/lib/kbd-shortcut/kbd-shortcut.component.mjs +23 -40
  111. package/esm2022/lib/kbd-shortcut/kbd-shortcut.module.mjs +4 -4
  112. package/esm2022/lib/modal/index.mjs +3 -0
  113. package/esm2022/lib/modal/modal.component.mjs +42 -83
  114. package/esm2022/lib/modal/modal.module.mjs +4 -4
  115. package/esm2022/lib/option/index.mjs +3 -0
  116. package/esm2022/lib/option/option.component.mjs +24 -46
  117. package/esm2022/lib/option/option.module.mjs +4 -4
  118. package/esm2022/lib/progress-bar/index.mjs +5 -0
  119. package/esm2022/lib/progress-bar/progress-bar.component.mjs +43 -81
  120. package/esm2022/lib/progress-bar/progress-bar.directive.mjs +3 -3
  121. package/esm2022/lib/progress-bar/progress-bar.module.mjs +4 -4
  122. package/esm2022/lib/progress-bar/progress-bar.types.mjs +1 -1
  123. package/esm2022/lib/progress-circle/index.mjs +5 -0
  124. package/esm2022/lib/progress-circle/progress-circle.component.mjs +33 -78
  125. package/esm2022/lib/progress-circle/progress-circle.directive.mjs +3 -3
  126. package/esm2022/lib/progress-circle/progress-circle.module.mjs +4 -4
  127. package/esm2022/lib/progress-circle/progress-circle.types.mjs +1 -1
  128. package/esm2022/lib/radio/index.mjs +4 -0
  129. package/esm2022/lib/radio/radio/radio.component.mjs +16 -25
  130. package/esm2022/lib/radio/radio-group.component.mjs +71 -85
  131. package/esm2022/lib/radio/radio.module.mjs +4 -4
  132. package/esm2022/lib/search-functions.mjs +7 -7
  133. package/esm2022/lib/segment/index.mjs +5 -0
  134. package/esm2022/lib/segment/segment.component.mjs +70 -137
  135. package/esm2022/lib/segment/segment.directives.mjs +4 -4
  136. package/esm2022/lib/segment/segment.module.mjs +4 -4
  137. package/esm2022/lib/select/index.mjs +5 -0
  138. package/esm2022/lib/select/select.component.mjs +348 -655
  139. package/esm2022/lib/select/select.directive.mjs +46 -46
  140. package/esm2022/lib/select/select.module.mjs +4 -4
  141. package/esm2022/lib/select/select.types.mjs +1 -1
  142. package/esm2022/lib/slide-toggle/index.mjs +4 -0
  143. package/esm2022/lib/slide-toggle/slide-toggle.component.mjs +19 -24
  144. package/esm2022/lib/slide-toggle/slide-toggle.module.mjs +4 -4
  145. package/esm2022/lib/slide-toggle/slide-toggle.types.mjs +5 -0
  146. package/esm2022/lib/slider/abstract-slider.mjs +111 -200
  147. package/esm2022/lib/slider/index.mjs +7 -0
  148. package/esm2022/lib/slider/range-slider/range-slider.component.mjs +26 -23
  149. package/esm2022/lib/slider/range-slider/range-slider.module.mjs +4 -4
  150. package/esm2022/lib/slider/slider.component.mjs +13 -10
  151. package/esm2022/lib/slider/slider.directive.mjs +3 -3
  152. package/esm2022/lib/slider/slider.module.mjs +7 -7
  153. package/esm2022/lib/slider/slider.types.mjs +1 -1
  154. package/esm2022/lib/snackbar/snackbar-ref.mjs +1 -1
  155. package/esm2022/lib/snackbar/snackbar.component.mjs +8 -8
  156. package/esm2022/lib/snackbar/snackbar.service.mjs +13 -12
  157. package/esm2022/lib/snackbar/snackbar.types.mjs +1 -1
  158. package/esm2022/lib/spinner/index.mjs +3 -0
  159. package/esm2022/lib/spinner/spinner.component.mjs +9 -13
  160. package/esm2022/lib/spinner/spinner.module.mjs +4 -4
  161. package/esm2022/lib/star/index.mjs +4 -0
  162. package/esm2022/lib/star/star-button/index.mjs +3 -0
  163. package/esm2022/lib/star/star-button/star-button.component.mjs +17 -26
  164. package/esm2022/lib/star/star-button/star-button.module.mjs +4 -4
  165. package/esm2022/lib/star/star-display/index.mjs +3 -0
  166. package/esm2022/lib/star/star-display/star-display.component.mjs +48 -55
  167. package/esm2022/lib/star/star-display/star-display.module.mjs +4 -4
  168. package/esm2022/lib/star/star-input/index.mjs +3 -0
  169. package/esm2022/lib/star/star-input/star-input.component.mjs +70 -106
  170. package/esm2022/lib/star/star-input/star-input.module.mjs +4 -4
  171. package/esm2022/lib/star/star.component.mjs +12 -20
  172. package/esm2022/lib/star/star.module.mjs +4 -4
  173. package/esm2022/lib/statebox/index.mjs +3 -0
  174. package/esm2022/lib/statebox/statebox.component.mjs +64 -102
  175. package/esm2022/lib/statebox/statebox.module.mjs +4 -4
  176. package/esm2022/lib/statebox/statebox.types.mjs +1 -1
  177. package/esm2022/lib/tabber/index.mjs +4 -0
  178. package/esm2022/lib/tabber/tab/tab.component.mjs +42 -0
  179. package/esm2022/lib/tabber/tabber.component.mjs +83 -0
  180. package/esm2022/lib/tabber/tabber.module.mjs +19 -0
  181. package/esm2022/lib/table/index.mjs +5 -0
  182. package/esm2022/lib/table/table-item-storage.mjs +204 -200
  183. package/esm2022/lib/table/table.component.mjs +184 -304
  184. package/esm2022/lib/table/table.directives.mjs +19 -21
  185. package/esm2022/lib/table/table.module.mjs +4 -4
  186. package/esm2022/lib/table/utils.mjs +1 -1
  187. package/esm2022/lib/table-from-csv/index.mjs +3 -0
  188. package/esm2022/lib/table-from-csv/table-from-csv.component.mjs +85 -29
  189. package/esm2022/lib/table-from-csv/table-from-csv.module.mjs +4 -4
  190. package/esm2022/lib/table-pagination/index.mjs +4 -0
  191. package/esm2022/lib/table-pagination/table-pagination.component.mjs +46 -114
  192. package/esm2022/lib/table-pagination/table-pagination.module.mjs +4 -4
  193. package/esm2022/lib/types/item-storage.types.mjs +1 -1
  194. package/esm2022/lib/types/utility.types.mjs +2 -2
  195. package/esm2022/public-api.mjs +58 -182
  196. package/fesm2022/ardium-ui-ui.mjs +7847 -11692
  197. package/fesm2022/ardium-ui-ui.mjs.map +1 -1
  198. package/lib/_internal/boolean-component.d.ts +8 -9
  199. package/lib/_internal/clear-button/clear-button.component.d.ts +1 -1
  200. package/lib/_internal/disablable-component.d.ts +12 -7
  201. package/lib/_internal/focusable-component.d.ts +5 -7
  202. package/lib/_internal/item-storages/dropdown-item-storage.d.ts +43 -41
  203. package/lib/_internal/item-storages/simple-item-storage.d.ts +28 -25
  204. package/lib/_internal/item-storages/simplest-item-storage.d.ts +14 -9
  205. package/lib/_internal/models/pagination.model.d.ts +38 -42
  206. package/lib/_internal/ngmodel-component.d.ts +1 -1
  207. package/lib/_internal/selectable-list-component.d.ts +30 -30
  208. package/lib/badge/badge.directive.d.ts +15 -20
  209. package/lib/badge/index.d.ts +3 -0
  210. package/lib/buttons/_button-base.d.ts +9 -12
  211. package/lib/buttons/button/button.component.d.ts +6 -8
  212. package/lib/buttons/button/index.d.ts +2 -0
  213. package/lib/buttons/fab/fab.component.d.ts +4 -6
  214. package/lib/buttons/fab/index.d.ts +2 -0
  215. package/lib/buttons/icon-button/icon-button.component.d.ts +6 -7
  216. package/lib/buttons/icon-button/index.d.ts +2 -0
  217. package/lib/card/card.children.d.ts +4 -3
  218. package/lib/card/card.component.d.ts +5 -4
  219. package/lib/card/index.d.ts +4 -0
  220. package/lib/checkbox/checkbox.component.d.ts +8 -12
  221. package/lib/checkbox/index.d.ts +3 -0
  222. package/lib/checkbox-list/checkbox-list.component.d.ts +22 -21
  223. package/lib/checkbox-list/index.d.ts +3 -0
  224. package/lib/chip/chip.component.d.ts +8 -10
  225. package/lib/chip/deletable-chip/deletable-chip.component.d.ts +11 -14
  226. package/lib/chip/index.d.ts +4 -0
  227. package/lib/chip/selectable-chip/selectable-chip.component.d.ts +10 -12
  228. package/lib/color/color-display/color-display.component.d.ts +6 -9
  229. package/lib/color/color-display/index.d.ts +3 -0
  230. package/lib/color/color-picker/color-picker.types.d.ts +4 -4
  231. package/lib/dialog/dialog.component.d.ts +25 -35
  232. package/lib/dialog/dialog.types.d.ts +2 -2
  233. package/lib/dialog/index.d.ts +4 -0
  234. package/lib/divider/divider.component.d.ts +3 -4
  235. package/lib/divider/index.d.ts +2 -0
  236. package/lib/dropdown-panel/dropdown-panel.component.d.ts +17 -20
  237. package/lib/dropdown-panel/index.d.ts +3 -0
  238. package/lib/file-inputs/file-drop-area/file-drop-area.component.d.ts +5 -4
  239. package/lib/file-inputs/file-drop-area/index.d.ts +3 -0
  240. package/lib/file-inputs/file-input/file-input.component.d.ts +13 -17
  241. package/lib/file-inputs/file-input/index.d.ts +3 -0
  242. package/lib/file-inputs/file-input-base.d.ts +13 -18
  243. package/lib/form-field-frame/form-field-frame.component.d.ts +12 -16
  244. package/lib/form-field-frame/index.d.ts +3 -0
  245. package/lib/icon/icon.component.d.ts +10 -19
  246. package/lib/icon/index.d.ts +3 -0
  247. package/lib/inputs/color-input/color-input.types.d.ts +2 -2
  248. package/lib/inputs/digit-input/digit-input.component.d.ts +22 -30
  249. package/lib/inputs/digit-input/digit-input.model.d.ts +8 -12
  250. package/lib/inputs/digit-input/digit-input.types.d.ts +4 -4
  251. package/lib/inputs/digit-input/digit-input.utils.d.ts +4 -5
  252. package/lib/inputs/digit-input/index.d.ts +3 -0
  253. package/lib/inputs/hex-input/hex-input.component.d.ts +32 -38
  254. package/lib/inputs/hex-input/index.d.ts +3 -0
  255. package/lib/inputs/hex-input.model.d.ts +10 -11
  256. package/lib/inputs/input/index.d.ts +3 -0
  257. package/lib/inputs/input/input.component.d.ts +34 -40
  258. package/lib/inputs/input/input.directives.d.ts +3 -3
  259. package/lib/inputs/input-utils.d.ts +24 -27
  260. package/lib/inputs/number-input/index.d.ts +3 -0
  261. package/lib/inputs/number-input/number-input.component.d.ts +38 -48
  262. package/lib/inputs/password-input/index.d.ts +4 -0
  263. package/lib/inputs/password-input/password-input.component.d.ts +28 -40
  264. package/lib/inputs/password-input/password-input.types.d.ts +2 -2
  265. package/lib/inputs/simple-input/index.d.ts +3 -0
  266. package/lib/inputs/simple-input/simple-input.component.d.ts +30 -35
  267. package/lib/kbd/index.d.ts +3 -0
  268. package/lib/kbd/kbd.component.d.ts +6 -8
  269. package/lib/kbd-shortcut/index.d.ts +2 -0
  270. package/lib/kbd-shortcut/kbd-shortcut.component.d.ts +7 -10
  271. package/lib/modal/index.d.ts +2 -0
  272. package/lib/modal/modal.component.d.ts +22 -30
  273. package/lib/option/index.d.ts +2 -0
  274. package/lib/option/option.component.d.ts +11 -16
  275. package/lib/progress-bar/index.d.ts +4 -0
  276. package/lib/progress-bar/progress-bar.component.d.ts +14 -20
  277. package/lib/progress-bar/progress-bar.types.d.ts +2 -2
  278. package/lib/progress-circle/index.d.ts +4 -0
  279. package/lib/progress-circle/progress-circle.component.d.ts +12 -20
  280. package/lib/progress-circle/progress-circle.types.d.ts +2 -2
  281. package/lib/radio/index.d.ts +3 -0
  282. package/lib/radio/radio/radio.component.d.ts +7 -8
  283. package/lib/radio/radio-group.component.d.ts +13 -16
  284. package/lib/segment/index.d.ts +4 -0
  285. package/lib/segment/segment.component.d.ts +22 -34
  286. package/lib/segment/segment.directives.d.ts +2 -3
  287. package/lib/select/index.d.ts +4 -0
  288. package/lib/select/select.component.d.ts +114 -160
  289. package/lib/select/select.directive.d.ts +3 -3
  290. package/lib/select/select.types.d.ts +2 -76
  291. package/lib/slide-toggle/index.d.ts +3 -0
  292. package/lib/slide-toggle/slide-toggle.component.d.ts +9 -7
  293. package/lib/slide-toggle/slide-toggle.types.d.ts +5 -0
  294. package/lib/slider/abstract-slider.d.ts +38 -55
  295. package/lib/slider/index.d.ts +6 -0
  296. package/lib/slider/range-slider/range-slider.component.d.ts +3 -1
  297. package/lib/slider/slider.component.d.ts +2 -0
  298. package/lib/slider/slider.types.d.ts +8 -8
  299. package/lib/snackbar/snackbar-ref.d.ts +1 -2
  300. package/lib/snackbar/snackbar.component.d.ts +3 -3
  301. package/lib/snackbar/snackbar.service.d.ts +2 -2
  302. package/lib/snackbar/snackbar.types.d.ts +4 -4
  303. package/lib/spinner/index.d.ts +2 -0
  304. package/lib/spinner/spinner.component.d.ts +3 -3
  305. package/lib/star/index.d.ts +3 -0
  306. package/lib/star/star-button/index.d.ts +2 -0
  307. package/lib/star/star-button/star-button.component.d.ts +7 -7
  308. package/lib/star/star-display/index.d.ts +2 -0
  309. package/lib/star/star-display/star-display.component.d.ts +8 -12
  310. package/lib/star/star-input/index.d.ts +2 -0
  311. package/lib/star/star-input/star-input.component.d.ts +17 -22
  312. package/lib/star/star.component.d.ts +5 -5
  313. package/lib/statebox/index.d.ts +3 -0
  314. package/lib/statebox/statebox.component.d.ts +15 -21
  315. package/lib/statebox/statebox.types.d.ts +12 -8
  316. package/lib/tabber/index.d.ts +3 -0
  317. package/lib/tabber/tab/tab.component.d.ts +18 -0
  318. package/lib/tabber/tabber.component.d.ts +25 -0
  319. package/lib/tabber/tabber.module.d.ts +9 -0
  320. package/lib/table/index.d.ts +4 -0
  321. package/lib/table/table-item-storage.d.ts +70 -58
  322. package/lib/table/table.component.d.ts +59 -78
  323. package/lib/table/table.directives.d.ts +4 -3
  324. package/lib/table-from-csv/index.d.ts +2 -0
  325. package/lib/table-from-csv/table-from-csv.component.d.ts +46 -9
  326. package/lib/table-pagination/index.d.ts +3 -0
  327. package/lib/table-pagination/table-pagination.component.d.ts +21 -30
  328. package/lib/types/item-storage.types.d.ts +19 -18
  329. package/lib/types/utility.types.d.ts +2 -1
  330. package/package.json +8 -9
  331. package/prebuilt-themes/default/badge.css +5 -5
  332. package/prebuilt-themes/default/buttons/fab.css +4 -3
  333. package/prebuilt-themes/default/buttons/fab.css.map +1 -1
  334. package/prebuilt-themes/default/card.css +7 -7
  335. package/prebuilt-themes/default/chips.css +3 -8
  336. package/prebuilt-themes/default/chips.css.map +1 -1
  337. package/prebuilt-themes/default/core.css +6 -3
  338. package/prebuilt-themes/default/core.css.map +1 -1
  339. package/prebuilt-themes/default/inputs/color-input.css +1 -1
  340. package/prebuilt-themes/default/inputs/digit-input.css +1 -1
  341. package/prebuilt-themes/default/inputs/file-input.css +139 -2
  342. package/prebuilt-themes/default/inputs/file-input.css.map +1 -1
  343. package/prebuilt-themes/default/inputs/hex-input.css +2 -2
  344. package/prebuilt-themes/default/inputs/input.css +1 -1
  345. package/prebuilt-themes/default/inputs/search-bar.css +1 -1
  346. package/prebuilt-themes/default/inputs/simple-input.css +1 -1
  347. package/prebuilt-themes/default/modal.css +1 -1
  348. package/prebuilt-themes/default/segment.css +2 -2
  349. package/prebuilt-themes/default/segment.css.map +1 -1
  350. package/prebuilt-themes/default/select.css +5 -3
  351. package/prebuilt-themes/default/select.css.map +1 -1
  352. package/prebuilt-themes/default/snackbar.css +0 -1
  353. package/prebuilt-themes/default/snackbar.css.map +1 -1
  354. package/prebuilt-themes/default/tabber.css +207 -0
  355. package/prebuilt-themes/default/tabber.css.map +1 -0
  356. package/public-api.d.ts +43 -136
  357. package/themes/default/_clear-button.scss +1 -1
  358. package/themes/default/badge.scss +5 -5
  359. package/themes/default/buttons/fab.scss +5 -3
  360. package/themes/default/card.scss +7 -7
  361. package/themes/default/chips.scss +2 -8
  362. package/themes/default/core.scss +6 -3
  363. package/themes/default/inputs/digit-input.scss +1 -1
  364. package/themes/default/inputs/file-input.scss +8 -1
  365. package/themes/default/inputs/hex-input.scss +1 -1
  366. package/themes/default/modal.scss +1 -1
  367. package/themes/default/segment.scss +2 -1
  368. package/themes/default/select.scss +4 -2
  369. package/themes/default/snackbar.scss +0 -2
  370. package/themes/default/tabber.scss +86 -0
  371. package/esm2022/lib/calendar/calendar.component.mjs +0 -979
  372. package/esm2022/lib/calendar/calendar.directives.mjs +0 -107
  373. package/esm2022/lib/calendar/calendar.helpers.mjs +0 -47
  374. package/esm2022/lib/calendar/calendar.module.mjs +0 -21
  375. package/esm2022/lib/calendar/calendar.types.mjs +0 -11
  376. package/esm2022/lib/color/color-picker/color-picker.component.mjs +0 -484
  377. package/esm2022/lib/color/color-picker/color-picker.directives.mjs +0 -55
  378. package/esm2022/lib/color/color-picker/color-picker.module.mjs +0 -43
  379. package/esm2022/lib/inputs/color-input/color-input.component.mjs +0 -421
  380. package/esm2022/lib/inputs/color-input/color-input.module.mjs +0 -85
  381. package/lib/calendar/calendar.component.d.ts +0 -155
  382. package/lib/calendar/calendar.directives.d.ts +0 -51
  383. package/lib/calendar/calendar.helpers.d.ts +0 -15
  384. package/lib/calendar/calendar.module.d.ts +0 -11
  385. package/lib/calendar/calendar.types.d.ts +0 -80
  386. package/lib/color/color-picker/color-picker.component.d.ts +0 -125
  387. package/lib/color/color-picker/color-picker.directives.d.ts +0 -27
  388. package/lib/color/color-picker/color-picker.module.d.ts +0 -13
  389. package/lib/inputs/color-input/color-input.component.d.ts +0 -147
  390. package/lib/inputs/color-input/color-input.module.d.ts +0 -16
@@ -1,55 +0,0 @@
1
- import { Directive } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class ArdColorPickerShadeIndicatorTemplateDirective {
4
- constructor(template) {
5
- this.template = template;
6
- }
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdColorPickerShadeIndicatorTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.7", type: ArdColorPickerShadeIndicatorTemplateDirective, selector: "ard-color-picker > ng-template[ard-shade-indicator-tmp]", ngImport: i0 }); }
9
- }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdColorPickerShadeIndicatorTemplateDirective, decorators: [{
11
- type: Directive,
12
- args: [{
13
- selector: 'ard-color-picker > ng-template[ard-shade-indicator-tmp]',
14
- }]
15
- }], ctorParameters: () => [{ type: i0.TemplateRef }] });
16
- export class ArdColorPickerHueIndicatorTemplateDirective {
17
- constructor(template) {
18
- this.template = template;
19
- }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdColorPickerHueIndicatorTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
21
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.7", type: ArdColorPickerHueIndicatorTemplateDirective, selector: "ard-color-picker > ng-template[ard-hue-indicator-tmp]", ngImport: i0 }); }
22
- }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdColorPickerHueIndicatorTemplateDirective, decorators: [{
24
- type: Directive,
25
- args: [{
26
- selector: 'ard-color-picker > ng-template[ard-hue-indicator-tmp]',
27
- }]
28
- }], ctorParameters: () => [{ type: i0.TemplateRef }] });
29
- export class ArdColorPickerOpacityIndicatorTemplateDirective {
30
- constructor(template) {
31
- this.template = template;
32
- }
33
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdColorPickerOpacityIndicatorTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
34
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.7", type: ArdColorPickerOpacityIndicatorTemplateDirective, selector: "ard-color-picker > ng-template[ard-opacity-indicator-tmp]", ngImport: i0 }); }
35
- }
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdColorPickerOpacityIndicatorTemplateDirective, decorators: [{
37
- type: Directive,
38
- args: [{
39
- selector: 'ard-color-picker > ng-template[ard-opacity-indicator-tmp]',
40
- }]
41
- }], ctorParameters: () => [{ type: i0.TemplateRef }] });
42
- export class ArdColorPickerColorReferenceTemplateDirective {
43
- constructor(template) {
44
- this.template = template;
45
- }
46
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdColorPickerColorReferenceTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
47
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.7", type: ArdColorPickerColorReferenceTemplateDirective, selector: "ard-color-picker > ng-template[ard-color-reference-tmp]", ngImport: i0 }); }
48
- }
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdColorPickerColorReferenceTemplateDirective, decorators: [{
50
- type: Directive,
51
- args: [{
52
- selector: 'ard-color-picker > ng-template[ard-color-reference-tmp]',
53
- }]
54
- }], ctorParameters: () => [{ type: i0.TemplateRef }] });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLmRpcmVjdGl2ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbG9yL2NvbG9yLXBpY2tlci9jb2xvci1waWNrZXIuZGlyZWN0aXZlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFlLE1BQU0sZUFBZSxDQUFDOztBQU12RCxNQUFNLE9BQU8sNkNBQTZDO0lBQ3hELFlBQW1CLFFBQWtEO1FBQWxELGFBQVEsR0FBUixRQUFRLENBQTBDO0lBQUcsQ0FBQzs4R0FEOUQsNkNBQTZDO2tHQUE3Qyw2Q0FBNkM7OzJGQUE3Qyw2Q0FBNkM7a0JBSHpELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlEQUF5RDtpQkFDcEU7O0FBUUQsTUFBTSxPQUFPLDJDQUEyQztJQUN0RCxZQUFtQixRQUFrRDtRQUFsRCxhQUFRLEdBQVIsUUFBUSxDQUEwQztJQUFHLENBQUM7OEdBRDlELDJDQUEyQztrR0FBM0MsMkNBQTJDOzsyRkFBM0MsMkNBQTJDO2tCQUh2RCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1REFBdUQ7aUJBQ2xFOztBQVFELE1BQU0sT0FBTywrQ0FBK0M7SUFDMUQsWUFBbUIsUUFBa0Q7UUFBbEQsYUFBUSxHQUFSLFFBQVEsQ0FBMEM7SUFBRyxDQUFDOzhHQUQ5RCwrQ0FBK0M7a0dBQS9DLCtDQUErQzs7MkZBQS9DLCtDQUErQztrQkFIM0QsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMkRBQTJEO2lCQUN0RTs7QUFRRCxNQUFNLE9BQU8sNkNBQTZDO0lBQ3hELFlBQW1CLFFBQXVEO1FBQXZELGFBQVEsR0FBUixRQUFRLENBQStDO0lBQUcsQ0FBQzs4R0FEbkUsNkNBQTZDO2tHQUE3Qyw2Q0FBNkM7OzJGQUE3Qyw2Q0FBNkM7a0JBSHpELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlEQUF5RDtpQkFDcEUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb2xvclBpY2tlckNvbG9yUmVmZXJlbmNlQ29udGV4dCwgQ29sb3JQaWNrZXJJbmRpY2F0b3JDb250ZXh0IH0gZnJvbSAnLi9jb2xvci1waWNrZXIudHlwZXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdhcmQtY29sb3ItcGlja2VyID4gbmctdGVtcGxhdGVbYXJkLXNoYWRlLWluZGljYXRvci10bXBdJyxcbn0pXG5leHBvcnQgY2xhc3MgQXJkQ29sb3JQaWNrZXJTaGFkZUluZGljYXRvclRlbXBsYXRlRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxDb2xvclBpY2tlckluZGljYXRvckNvbnRleHQ+KSB7fVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdhcmQtY29sb3ItcGlja2VyID4gbmctdGVtcGxhdGVbYXJkLWh1ZS1pbmRpY2F0b3ItdG1wXScsXG59KVxuZXhwb3J0IGNsYXNzIEFyZENvbG9yUGlja2VySHVlSW5kaWNhdG9yVGVtcGxhdGVEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPENvbG9yUGlja2VySW5kaWNhdG9yQ29udGV4dD4pIHt9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2FyZC1jb2xvci1waWNrZXIgPiBuZy10ZW1wbGF0ZVthcmQtb3BhY2l0eS1pbmRpY2F0b3ItdG1wXScsXG59KVxuZXhwb3J0IGNsYXNzIEFyZENvbG9yUGlja2VyT3BhY2l0eUluZGljYXRvclRlbXBsYXRlRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxDb2xvclBpY2tlckluZGljYXRvckNvbnRleHQ+KSB7fVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdhcmQtY29sb3ItcGlja2VyID4gbmctdGVtcGxhdGVbYXJkLWNvbG9yLXJlZmVyZW5jZS10bXBdJyxcbn0pXG5leHBvcnQgY2xhc3MgQXJkQ29sb3JQaWNrZXJDb2xvclJlZmVyZW5jZVRlbXBsYXRlRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxDb2xvclBpY2tlckNvbG9yUmVmZXJlbmNlQ29udGV4dD4pIHt9XG59XG4iXX0=
@@ -1,43 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { ArdiumHexInputModule } from '../../inputs/hex-input/hex-input.module';
4
- import { ArdiumNumberInputModule } from '../../inputs/number-input/number-input.module';
5
- import { ArdiumOptionModule } from '../../option/option.module';
6
- import { ArdiumSelectModule } from '../../select/select.module';
7
- import { ArdiumColorPickerComponent } from './color-picker.component';
8
- import { ArdColorPickerColorReferenceTemplateDirective, ArdColorPickerHueIndicatorTemplateDirective, ArdColorPickerOpacityIndicatorTemplateDirective, ArdColorPickerShadeIndicatorTemplateDirective, } from './color-picker.directives';
9
- import * as i0 from "@angular/core";
10
- export class ArdiumColorPickerModule {
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdiumColorPickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.7", ngImport: i0, type: ArdiumColorPickerModule, declarations: [ArdiumColorPickerComponent,
13
- ArdColorPickerHueIndicatorTemplateDirective,
14
- ArdColorPickerShadeIndicatorTemplateDirective,
15
- ArdColorPickerColorReferenceTemplateDirective,
16
- ArdColorPickerOpacityIndicatorTemplateDirective], imports: [CommonModule, ArdiumSelectModule, ArdiumOptionModule, ArdiumNumberInputModule, ArdiumHexInputModule], exports: [ArdiumColorPickerComponent,
17
- ArdColorPickerHueIndicatorTemplateDirective,
18
- ArdColorPickerShadeIndicatorTemplateDirective,
19
- ArdColorPickerColorReferenceTemplateDirective,
20
- ArdColorPickerOpacityIndicatorTemplateDirective] }); }
21
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdiumColorPickerModule, imports: [CommonModule, ArdiumSelectModule, ArdiumOptionModule, ArdiumNumberInputModule, ArdiumHexInputModule] }); }
22
- }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdiumColorPickerModule, decorators: [{
24
- type: NgModule,
25
- args: [{
26
- declarations: [
27
- ArdiumColorPickerComponent,
28
- ArdColorPickerHueIndicatorTemplateDirective,
29
- ArdColorPickerShadeIndicatorTemplateDirective,
30
- ArdColorPickerColorReferenceTemplateDirective,
31
- ArdColorPickerOpacityIndicatorTemplateDirective,
32
- ],
33
- imports: [CommonModule, ArdiumSelectModule, ArdiumOptionModule, ArdiumNumberInputModule, ArdiumHexInputModule],
34
- exports: [
35
- ArdiumColorPickerComponent,
36
- ArdColorPickerHueIndicatorTemplateDirective,
37
- ArdColorPickerShadeIndicatorTemplateDirective,
38
- ArdColorPickerColorReferenceTemplateDirective,
39
- ArdColorPickerOpacityIndicatorTemplateDirective,
40
- ],
41
- }]
42
- }] });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29sb3IvY29sb3ItcGlja2VyL2NvbG9yLXBpY2tlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDeEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUNMLDZDQUE2QyxFQUM3QywyQ0FBMkMsRUFDM0MsK0NBQStDLEVBQy9DLDZDQUE2QyxHQUM5QyxNQUFNLDJCQUEyQixDQUFDOztBQW1CbkMsTUFBTSxPQUFPLHVCQUF1Qjs4R0FBdkIsdUJBQXVCOytHQUF2Qix1QkFBdUIsaUJBZmhDLDBCQUEwQjtZQUMxQiwyQ0FBMkM7WUFDM0MsNkNBQTZDO1lBQzdDLDZDQUE2QztZQUM3QywrQ0FBK0MsYUFFdkMsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLHVCQUF1QixFQUFFLG9CQUFvQixhQUUzRywwQkFBMEI7WUFDMUIsMkNBQTJDO1lBQzNDLDZDQUE2QztZQUM3Qyw2Q0FBNkM7WUFDN0MsK0NBQStDOytHQUd0Qyx1QkFBdUIsWUFUeEIsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLHVCQUF1QixFQUFFLG9CQUFvQjs7MkZBU2xHLHVCQUF1QjtrQkFqQm5DLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLDBCQUEwQjt3QkFDMUIsMkNBQTJDO3dCQUMzQyw2Q0FBNkM7d0JBQzdDLDZDQUE2Qzt3QkFDN0MsK0NBQStDO3FCQUNoRDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsdUJBQXVCLEVBQUUsb0JBQW9CLENBQUM7b0JBQzlHLE9BQU8sRUFBRTt3QkFDUCwwQkFBMEI7d0JBQzFCLDJDQUEyQzt3QkFDM0MsNkNBQTZDO3dCQUM3Qyw2Q0FBNkM7d0JBQzdDLCtDQUErQztxQkFDaEQ7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFyZGl1bUhleElucHV0TW9kdWxlIH0gZnJvbSAnLi4vLi4vaW5wdXRzL2hleC1pbnB1dC9oZXgtaW5wdXQubW9kdWxlJztcbmltcG9ydCB7IEFyZGl1bU51bWJlcklucHV0TW9kdWxlIH0gZnJvbSAnLi4vLi4vaW5wdXRzL251bWJlci1pbnB1dC9udW1iZXItaW5wdXQubW9kdWxlJztcbmltcG9ydCB7IEFyZGl1bU9wdGlvbk1vZHVsZSB9IGZyb20gJy4uLy4uL29wdGlvbi9vcHRpb24ubW9kdWxlJztcbmltcG9ydCB7IEFyZGl1bVNlbGVjdE1vZHVsZSB9IGZyb20gJy4uLy4uL3NlbGVjdC9zZWxlY3QubW9kdWxlJztcbmltcG9ydCB7IEFyZGl1bUNvbG9yUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9jb2xvci1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEFyZENvbG9yUGlja2VyQ29sb3JSZWZlcmVuY2VUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgQXJkQ29sb3JQaWNrZXJIdWVJbmRpY2F0b3JUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgQXJkQ29sb3JQaWNrZXJPcGFjaXR5SW5kaWNhdG9yVGVtcGxhdGVEaXJlY3RpdmUsXG4gIEFyZENvbG9yUGlja2VyU2hhZGVJbmRpY2F0b3JUZW1wbGF0ZURpcmVjdGl2ZSxcbn0gZnJvbSAnLi9jb2xvci1waWNrZXIuZGlyZWN0aXZlcyc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEFyZGl1bUNvbG9yUGlja2VyQ29tcG9uZW50LFxuICAgIEFyZENvbG9yUGlja2VySHVlSW5kaWNhdG9yVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgQXJkQ29sb3JQaWNrZXJTaGFkZUluZGljYXRvclRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIEFyZENvbG9yUGlja2VyQ29sb3JSZWZlcmVuY2VUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBBcmRDb2xvclBpY2tlck9wYWNpdHlJbmRpY2F0b3JUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQXJkaXVtU2VsZWN0TW9kdWxlLCBBcmRpdW1PcHRpb25Nb2R1bGUsIEFyZGl1bU51bWJlcklucHV0TW9kdWxlLCBBcmRpdW1IZXhJbnB1dE1vZHVsZV0sXG4gIGV4cG9ydHM6IFtcbiAgICBBcmRpdW1Db2xvclBpY2tlckNvbXBvbmVudCxcbiAgICBBcmRDb2xvclBpY2tlckh1ZUluZGljYXRvclRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIEFyZENvbG9yUGlja2VyU2hhZGVJbmRpY2F0b3JUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBBcmRDb2xvclBpY2tlckNvbG9yUmVmZXJlbmNlVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgQXJkQ29sb3JQaWNrZXJPcGFjaXR5SW5kaWNhdG9yVGVtcGxhdGVEaXJlY3RpdmUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFyZGl1bUNvbG9yUGlja2VyTW9kdWxlIHt9XG4iXX0=
@@ -1,421 +0,0 @@
1
- import { OverlayConfig } from '@angular/cdk/overlay';
2
- import { TemplatePortal } from '@angular/cdk/portal';
3
- import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, EventEmitter, forwardRef, Input, Output, TemplateRef, ViewChild, ViewEncapsulation, } from '@angular/core';
4
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
5
- import { coerceBooleanProperty } from '@ardium-ui/devkit';
6
- import * as Color from 'color';
7
- import { ButtonVariant } from '../../buttons/general-button.types';
8
- import { DropdownPanelAppearance, DropdownPanelVariant } from '../../dropdown-panel/dropdown-panel.types';
9
- import { FormElementAppearance, FormElementVariant } from '../../types/theming.types';
10
- import { _NgModelComponentBase } from '../../_internal/ngmodel-component';
11
- import { CaseTransformerType } from '../input-types';
12
- import { ArdColorInputActionButtonsTemplateDirective, ArdColorInputColorReferenceTemplateDirective, ArdColorInputHueIndicatorTemplateDirective, ArdColorInputOpacityIndicatorTemplateDirective, ArdColorInputPlaceholderTemplateDirective, ArdColorInputPrefixTemplateDirective, ArdColorInputShadeIndicatorTemplateDirective, ArdColorInputSuffixTemplateDirective, } from './color-input.directives';
13
- import * as i0 from "@angular/core";
14
- import * as i1 from "@angular/cdk/overlay";
15
- import * as i2 from "@angular/common";
16
- import * as i3 from "../../form-field-frame/form-field-frame.component";
17
- import * as i4 from "../../_internal/clear-button/clear-button.component";
18
- import * as i5 from "../../color/color-picker/color-picker.component";
19
- import * as i6 from "../../color/color-display/color-display.component";
20
- import * as i7 from "../../card/card.component";
21
- import * as i8 from "../../card/card.children";
22
- import * as i9 from "@ardium-ui/devkit";
23
- import * as i10 from "../../buttons/button/button.component";
24
- export class ArdiumColorInputComponent extends _NgModelComponentBase {
25
- constructor(_cd, viewContainerRef, overlay, scrollStrategyOpts, elementRef) {
26
- super();
27
- this._cd = _cd;
28
- this.viewContainerRef = viewContainerRef;
29
- this.overlay = overlay;
30
- this.scrollStrategyOpts = scrollStrategyOpts;
31
- this.DEFAULTS = {
32
- clearButtonTitle: 'Clear',
33
- };
34
- //! placeholder
35
- this.placeholder = '';
36
- //! appearance
37
- //all handled in ard-form-field-frame component
38
- this.appearance = FormElementAppearance.Outlined;
39
- this.variant = FormElementVariant.Rounded;
40
- this._compact = false;
41
- //! settings
42
- this.case = CaseTransformerType.NoChange;
43
- this._withActionButtons = false;
44
- //! clear button
45
- this._clearable = true;
46
- this.clearButtonTitle = this.DEFAULTS.clearButtonTitle;
47
- //! other inputs
48
- this.inputAttrs = {};
49
- //! value two-way binding
50
- this._value = null;
51
- this.valueChange = new EventEmitter();
52
- //* event emitters
53
- this.changeEvent = new EventEmitter();
54
- this.clearEvent = new EventEmitter();
55
- //! state
56
- this._touched = false;
57
- //! overlay state handlers
58
- this._isOverlayOpen = false;
59
- this.openEvent = new EventEmitter();
60
- this.closeEvent = new EventEmitter();
61
- //! overlay appearance
62
- this._overlayAppearance = undefined;
63
- this._overlayVariant = undefined;
64
- //! color picker integration
65
- this._temporaryValue = null;
66
- this.element = elementRef.nativeElement;
67
- }
68
- //! ChangeDetectorRef
69
- detectChanges() {
70
- if (!this._cd.destroyed) {
71
- this._cd.detectChanges();
72
- }
73
- }
74
- ngAfterViewInit() {
75
- this._setInputAttributes();
76
- }
77
- get shouldDisplayPlaceholder() {
78
- return Boolean(this.placeholder) && !this.value;
79
- }
80
- get compact() {
81
- return this._compact;
82
- }
83
- set compact(v) {
84
- this._compact = coerceBooleanProperty(v);
85
- }
86
- get withActionButtons() {
87
- return this._withActionButtons;
88
- }
89
- set withActionButtons(v) {
90
- this._withActionButtons = coerceBooleanProperty(v);
91
- }
92
- get clearable() {
93
- return this._clearable;
94
- }
95
- set clearable(v) {
96
- this._clearable = coerceBooleanProperty(v);
97
- if (this.value == null) {
98
- this.value = Color('red');
99
- }
100
- }
101
- get shouldShowClearButton() {
102
- return this._clearable && !this.disabled && Boolean(this.value);
103
- }
104
- onClearButtonClick(event) {
105
- event.stopPropagation();
106
- this.clear();
107
- this.focus();
108
- }
109
- //! control value accessor's write value implementation
110
- writeValue(v) {
111
- this.value = v;
112
- }
113
- //! clear function
114
- clear() {
115
- if (!this.clearable)
116
- return;
117
- this.writeValue(null);
118
- this._emitChange();
119
- this.clearEvent.emit();
120
- }
121
- set value(v) {
122
- this._value = v;
123
- this._updateInputElValue();
124
- }
125
- get value() {
126
- return this._value;
127
- }
128
- //! event handlers
129
- //change
130
- onChange(event) {
131
- event.stopPropagation();
132
- this._emitChange();
133
- }
134
- _emitChange() {
135
- const v = this.value;
136
- if (!v)
137
- return;
138
- this._onChangeRegistered?.(v);
139
- this.changeEvent.emit(v);
140
- this.valueChange.emit(v);
141
- }
142
- _onTouched() {
143
- this.touched = true;
144
- this._onTouchedRegistered?.();
145
- }
146
- //smart focus
147
- onMouseup() {
148
- this.toggle();
149
- }
150
- onCopy(event) {
151
- const v = this.value;
152
- if (!v)
153
- return;
154
- event.clipboardData?.setData('text/plain', v.hex().toString());
155
- event.preventDefault();
156
- }
157
- get touched() {
158
- return this._touched;
159
- }
160
- set touched(state) {
161
- this._touched = state;
162
- }
163
- _createOverlay() {
164
- const strategy = this.overlay
165
- .position()
166
- .flexibleConnectedTo(this.overlayHost)
167
- .withPositions([
168
- {
169
- originX: 'end',
170
- originY: 'bottom',
171
- overlayX: 'end',
172
- overlayY: 'top',
173
- },
174
- {
175
- originX: 'start',
176
- originY: 'bottom',
177
- overlayX: 'end',
178
- overlayY: 'top',
179
- },
180
- {
181
- originX: 'start',
182
- originY: 'top',
183
- overlayX: 'start',
184
- overlayY: 'bottom',
185
- },
186
- {
187
- originX: 'start',
188
- originY: 'top',
189
- overlayX: 'start',
190
- overlayY: 'bottom',
191
- },
192
- ]);
193
- const config = new OverlayConfig({
194
- positionStrategy: strategy,
195
- scrollStrategy: this.scrollStrategyOpts.block(),
196
- hasBackdrop: false,
197
- });
198
- this.overlayRef = this.overlay.create(config);
199
- const portal = new TemplatePortal(this.overlayTemplate, this.viewContainerRef);
200
- this.overlayRef.attach(portal);
201
- }
202
- _destroyOverlay() {
203
- if (!this.overlayRef)
204
- return;
205
- this.overlayRef.dispose();
206
- delete this.overlayRef;
207
- }
208
- toggle() {
209
- if (this._isOverlayOpen) {
210
- this.close();
211
- return;
212
- }
213
- this.open();
214
- }
215
- open() {
216
- if (this.disabled || this._isOverlayOpen)
217
- return;
218
- this._isOverlayOpen = true;
219
- this._createOverlay();
220
- this.focus();
221
- this.openEvent.emit();
222
- }
223
- close() {
224
- if (!this._isOverlayOpen)
225
- return;
226
- this._isOverlayOpen = false;
227
- this._temporaryValue = null;
228
- this._destroyOverlay();
229
- this._onTouched();
230
- this.closeEvent.emit();
231
- }
232
- set overlayAppearance(v) {
233
- this._overlayAppearance = v;
234
- }
235
- get overlayAppearance() {
236
- if (this._overlayAppearance)
237
- return this._overlayAppearance;
238
- if (this.appearance == FormElementAppearance.Outlined)
239
- return DropdownPanelAppearance.Outlined;
240
- return DropdownPanelAppearance.Raised;
241
- }
242
- set overlayVariant(v) {
243
- this._overlayVariant = v;
244
- }
245
- get overlayVariant() {
246
- if (this._overlayVariant)
247
- return this._overlayVariant;
248
- if (this.variant == FormElementVariant.Pill)
249
- return DropdownPanelVariant.Rounded;
250
- return this.variant;
251
- }
252
- onColorPickerChange(event) {
253
- if (this.withActionButtons) {
254
- this._temporaryValue = event;
255
- return;
256
- }
257
- this.value = event;
258
- this.detectChanges();
259
- }
260
- handleOutsideClick(event) {
261
- if (!this._isOverlayOpen)
262
- return;
263
- const target = event.target;
264
- if (this.element.contains(target))
265
- return;
266
- this.close();
267
- }
268
- apply() {
269
- if (!this._temporaryValue)
270
- return this.cancel();
271
- this.value = this._temporaryValue;
272
- this.detectChanges();
273
- this.close();
274
- }
275
- cancel() {
276
- this.close();
277
- }
278
- reset() {
279
- this._temporaryValue = this.value;
280
- }
281
- get actionButtonVariant() {
282
- if (this.variant == FormElementVariant.Sharp)
283
- return ButtonVariant.Sharp;
284
- return ButtonVariant.Rounded;
285
- }
286
- getActionButtonsContext() {
287
- return {
288
- apply: () => {
289
- this.apply();
290
- },
291
- cancel: () => {
292
- this.cancel();
293
- },
294
- reset: () => {
295
- this.reset();
296
- },
297
- };
298
- }
299
- //! helpers
300
- _updateInputElValue() {
301
- this.textInputEl.nativeElement.value = this.value?.hex().toString() ?? '';
302
- }
303
- _setInputAttributes() {
304
- const input = this.textInputEl.nativeElement;
305
- const attributes = {
306
- type: 'text',
307
- autocorrect: 'off',
308
- autocapitalize: 'off',
309
- autocomplete: 'off',
310
- tabindex: String(this.tabIndex),
311
- ...this.inputAttrs,
312
- };
313
- for (const key of Object.keys(attributes)) {
314
- input.setAttribute(key, String(attributes[key]));
315
- }
316
- }
317
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdiumColorInputComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ViewContainerRef }, { token: i1.Overlay }, { token: i1.ScrollStrategyOptions }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
318
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: ArdiumColorInputComponent, selector: "ard-color-input", inputs: { inputId: "inputId", placeholder: "placeholder", appearance: "appearance", variant: "variant", compact: "compact", case: "case", withActionButtons: "withActionButtons", clearable: "clearable", clearButtonTitle: "clearButtonTitle", inputAttrs: "inputAttrs", value: "value", overlayAppearance: "overlayAppearance", overlayVariant: "overlayVariant" }, outputs: { valueChange: "valueChange", changeEvent: "change", clearEvent: "clear", openEvent: "open", closeEvent: "close" }, providers: [
319
- {
320
- provide: NG_VALUE_ACCESSOR,
321
- useExisting: forwardRef(() => ArdiumColorInputComponent),
322
- multi: true,
323
- },
324
- ], queries: [{ propertyName: "prefixTemplate", first: true, predicate: ArdColorInputPrefixTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "suffixTemplate", first: true, predicate: ArdColorInputSuffixTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "placeholderTemplate", first: true, predicate: ArdColorInputPlaceholderTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "shadeIndicatorTemplate", first: true, predicate: ArdColorInputShadeIndicatorTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "hueIndicatorTemplate", first: true, predicate: ArdColorInputHueIndicatorTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "opacityIndicatorTemplate", first: true, predicate: ArdColorInputOpacityIndicatorTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "colorReferenceTemplate", first: true, predicate: ArdColorInputColorReferenceTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "actionButtonsTemplate", first: true, predicate: ArdColorInputActionButtonsTemplateDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "textInputEl", first: true, predicate: ["textInput"], descendants: true }, { propertyName: "overlayHost", first: true, predicate: ["overlayHost"], descendants: true, read: ElementRef }, { propertyName: "overlayTemplate", first: true, predicate: ["overlayTemplate"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<ard-form-field-frame\r\n [appearance]=\"appearance\"\r\n [variant]=\"variant\"\r\n [compact]=\"compact\"\r\n [isFocused]=\"isFocused\"\r\n [prefixTemplate]=\"prefixTemplate\"\r\n [suffixTemplate]=\"suffixTemplate\"\r\n #overlayHost\r\n>\r\n <div class=\"ard-color-input\"\r\n [class.ard-has-value]=\"value\"\r\n (mouseup)=\"onMouseup()\"\r\n >\r\n <div class=\"ard-input-container\">\r\n <ng-container *ngIf=\"shouldDisplayPlaceholder\">\r\n <ng-template #defaultPlaceholderTemplate>\r\n <div class=\"ard-placeholder\">{{ placeholder }}</div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate || defaultPlaceholderTemplate\"></ng-template>\r\n </ng-container>\r\n\r\n <input #textInput\r\n [attr.id]=\"inputId\"\r\n tabindex=\"-1\"\r\n readonly\r\n >\r\n </div>\r\n\r\n <ard-_clear-button\r\n *ngIf=\"shouldShowClearButton\"\r\n [title]=\"clearButtonTitle\"\r\n (mouseup)=\"onClearButtonClick($event)\"\r\n ></ard-_clear-button>\r\n\r\n <button\r\n class=\"ard-color-display-button\"\r\n #focusableElement\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n (copy)=\"onCopy($event)\"\r\n >\r\n <ard-color-display [color]=\"value\"></ard-color-display>\r\n </button>\r\n </div>\r\n</ard-form-field-frame>\r\n\r\n<ng-template #overlayTemplate>\r\n <ard-card\r\n class=\"ard-overlay-card ard-color-input-overlay-card\"\r\n [appearance]=\"overlayAppearance\"\r\n [variant]=\"overlayVariant\"\r\n (ardClickOutside)=\"handleOutsideClick($event)\"\r\n >\r\n <ard-color-picker\r\n [value]=\"value\"\r\n (valueChange)=\"onColorPickerChange($event)\"\r\n [hueIndicatorTemplate]=\"hueIndicatorTemplate\"\r\n [shadeIndicatorTemplate]=\"shadeIndicatorTemplate\"\r\n [opacityIndicatorTemplate]=\"opacityIndicatorTemplate\"\r\n [colorReferenceTemplate]=\"colorReferenceTemplate\"\r\n ></ard-color-picker>\r\n <ard-card-action-buttons *ngIf=\"withActionButtons\">\r\n <ng-template #defaultActionButtonsTemplate let-applyFn=\"apply\" let-cancelFn=\"cancel\">\r\n <ard-button appearance=\"transparent\" [variant]=\"actionButtonVariant\" (click)=\"cancelFn()\">Cancel</ard-button>\r\n <ard-button appearance=\"raised-strong\" [variant]=\"actionButtonVariant\" (click)=\"applyFn()\">Apply</ard-button>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"actionButtonsTemplate ?? defaultActionButtonsTemplate\"\r\n [ngTemplateOutletContext]=\"getActionButtonsContext()\"\r\n />\r\n </ard-card-action-buttons>\r\n </ard-card>\r\n</ng-template>", styles: [".ard-input-container{position:relative}.ard-placeholder{position:absolute;left:0;right:0}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.ArdiumFormFieldFrameComponent, selector: "ard-form-field-frame", inputs: ["isFocused", "appearance", "variant", "compact", "prefixTemplate", "suffixTemplate"] }, { kind: "component", type: i4._ClearButtonComponent, selector: "ard-_clear-button" }, { kind: "component", type: i5.ArdiumColorPickerComponent, selector: "ard-color-picker", inputs: ["withOpacity", "referenceColor", "wrapperClasses", "variant", "vertical", "value", "colorHue", "colorSaturation", "colorValue", "colorOpacity", "shadeIndicatorTemplate", "hueIndicatorTemplate", "opacityIndicatorTemplate", "colorReferenceTemplate"], outputs: ["valueChange", "colorHueChange", "colorSaturationChange", "colorValueChange", "colorOpacityChange"] }, { kind: "component", type: i6.ArdiumColorDisplayComponent, selector: "ard-color-display", inputs: ["ariaLabel", "withLabel", "appearance", "color"] }, { kind: "component", type: i7.ArdiumCardComponent, selector: "ard-card" }, { kind: "directive", type: i8.ArdiumCardActionButtonsDirective, selector: "ard-card-action-buttons, [ard-card-action-buttons]", inputs: ["align"] }, { kind: "directive", type: i9.ClickOutsideDirective, selector: "[ardClickOutside]", outputs: ["ardClickOutside"] }, { kind: "component", type: i10.ArdiumButtonComponent, selector: "ard-button", inputs: ["variant", "alignIcon", "vertical", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
325
- }
326
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdiumColorInputComponent, decorators: [{
327
- type: Component,
328
- args: [{ selector: 'ard-color-input', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
329
- {
330
- provide: NG_VALUE_ACCESSOR,
331
- useExisting: forwardRef(() => ArdiumColorInputComponent),
332
- multi: true,
333
- },
334
- ], template: "<ard-form-field-frame\r\n [appearance]=\"appearance\"\r\n [variant]=\"variant\"\r\n [compact]=\"compact\"\r\n [isFocused]=\"isFocused\"\r\n [prefixTemplate]=\"prefixTemplate\"\r\n [suffixTemplate]=\"suffixTemplate\"\r\n #overlayHost\r\n>\r\n <div class=\"ard-color-input\"\r\n [class.ard-has-value]=\"value\"\r\n (mouseup)=\"onMouseup()\"\r\n >\r\n <div class=\"ard-input-container\">\r\n <ng-container *ngIf=\"shouldDisplayPlaceholder\">\r\n <ng-template #defaultPlaceholderTemplate>\r\n <div class=\"ard-placeholder\">{{ placeholder }}</div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate || defaultPlaceholderTemplate\"></ng-template>\r\n </ng-container>\r\n\r\n <input #textInput\r\n [attr.id]=\"inputId\"\r\n tabindex=\"-1\"\r\n readonly\r\n >\r\n </div>\r\n\r\n <ard-_clear-button\r\n *ngIf=\"shouldShowClearButton\"\r\n [title]=\"clearButtonTitle\"\r\n (mouseup)=\"onClearButtonClick($event)\"\r\n ></ard-_clear-button>\r\n\r\n <button\r\n class=\"ard-color-display-button\"\r\n #focusableElement\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n (copy)=\"onCopy($event)\"\r\n >\r\n <ard-color-display [color]=\"value\"></ard-color-display>\r\n </button>\r\n </div>\r\n</ard-form-field-frame>\r\n\r\n<ng-template #overlayTemplate>\r\n <ard-card\r\n class=\"ard-overlay-card ard-color-input-overlay-card\"\r\n [appearance]=\"overlayAppearance\"\r\n [variant]=\"overlayVariant\"\r\n (ardClickOutside)=\"handleOutsideClick($event)\"\r\n >\r\n <ard-color-picker\r\n [value]=\"value\"\r\n (valueChange)=\"onColorPickerChange($event)\"\r\n [hueIndicatorTemplate]=\"hueIndicatorTemplate\"\r\n [shadeIndicatorTemplate]=\"shadeIndicatorTemplate\"\r\n [opacityIndicatorTemplate]=\"opacityIndicatorTemplate\"\r\n [colorReferenceTemplate]=\"colorReferenceTemplate\"\r\n ></ard-color-picker>\r\n <ard-card-action-buttons *ngIf=\"withActionButtons\">\r\n <ng-template #defaultActionButtonsTemplate let-applyFn=\"apply\" let-cancelFn=\"cancel\">\r\n <ard-button appearance=\"transparent\" [variant]=\"actionButtonVariant\" (click)=\"cancelFn()\">Cancel</ard-button>\r\n <ard-button appearance=\"raised-strong\" [variant]=\"actionButtonVariant\" (click)=\"applyFn()\">Apply</ard-button>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"actionButtonsTemplate ?? defaultActionButtonsTemplate\"\r\n [ngTemplateOutletContext]=\"getActionButtonsContext()\"\r\n />\r\n </ard-card-action-buttons>\r\n </ard-card>\r\n</ng-template>", styles: [".ard-input-container{position:relative}.ard-placeholder{position:absolute;left:0;right:0}\n"] }]
335
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ViewContainerRef }, { type: i1.Overlay }, { type: i1.ScrollStrategyOptions }, { type: i0.ElementRef }], propDecorators: { textInputEl: [{
336
- type: ViewChild,
337
- args: ['textInput']
338
- }], inputId: [{
339
- type: Input
340
- }], prefixTemplate: [{
341
- type: ContentChild,
342
- args: [ArdColorInputPrefixTemplateDirective, { read: TemplateRef }]
343
- }], suffixTemplate: [{
344
- type: ContentChild,
345
- args: [ArdColorInputSuffixTemplateDirective, { read: TemplateRef }]
346
- }], placeholder: [{
347
- type: Input
348
- }], placeholderTemplate: [{
349
- type: ContentChild,
350
- args: [ArdColorInputPlaceholderTemplateDirective, {
351
- read: TemplateRef,
352
- }]
353
- }], appearance: [{
354
- type: Input
355
- }], variant: [{
356
- type: Input
357
- }], compact: [{
358
- type: Input
359
- }], case: [{
360
- type: Input
361
- }], withActionButtons: [{
362
- type: Input
363
- }], clearable: [{
364
- type: Input
365
- }], clearButtonTitle: [{
366
- type: Input
367
- }], inputAttrs: [{
368
- type: Input
369
- }], value: [{
370
- type: Input
371
- }], valueChange: [{
372
- type: Output
373
- }], changeEvent: [{
374
- type: Output,
375
- args: ['change']
376
- }], clearEvent: [{
377
- type: Output,
378
- args: ['clear']
379
- }], overlayHost: [{
380
- type: ViewChild,
381
- args: ['overlayHost', { read: ElementRef }]
382
- }], overlayTemplate: [{
383
- type: ViewChild,
384
- args: ['overlayTemplate', { read: TemplateRef }]
385
- }], openEvent: [{
386
- type: Output,
387
- args: ['open']
388
- }], closeEvent: [{
389
- type: Output,
390
- args: ['close']
391
- }], overlayAppearance: [{
392
- type: Input
393
- }], overlayVariant: [{
394
- type: Input
395
- }], shadeIndicatorTemplate: [{
396
- type: ContentChild,
397
- args: [ArdColorInputShadeIndicatorTemplateDirective, {
398
- read: TemplateRef,
399
- }]
400
- }], hueIndicatorTemplate: [{
401
- type: ContentChild,
402
- args: [ArdColorInputHueIndicatorTemplateDirective, {
403
- read: TemplateRef,
404
- }]
405
- }], opacityIndicatorTemplate: [{
406
- type: ContentChild,
407
- args: [ArdColorInputOpacityIndicatorTemplateDirective, {
408
- read: TemplateRef,
409
- }]
410
- }], colorReferenceTemplate: [{
411
- type: ContentChild,
412
- args: [ArdColorInputColorReferenceTemplateDirective, {
413
- read: TemplateRef,
414
- }]
415
- }], actionButtonsTemplate: [{
416
- type: ContentChild,
417
- args: [ArdColorInputActionButtonsTemplateDirective, {
418
- read: TemplateRef,
419
- }]
420
- }] } });
421
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvY29sb3ItaW5wdXQvY29sb3ItaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvY29sb3ItaW5wdXQvY29sb3ItaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFXLGFBQWEsRUFBcUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFFVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVuRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQ0wsMkNBQTJDLEVB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QUksRUFBRSxXQUFXO3FCQUNsQjtnQkFLRCxzQkFBc0I7c0JBSHJCLFlBQVk7dUJBQUMsNENBQTRDLEVBQUU7d0JBQzFELElBQUksRUFBRSxXQUFXO3FCQUNsQjtnQkFLRCxxQkFBcUI7c0JBSHBCLFlBQVk7dUJBQUMsMkNBQTJDLEVBQUU7d0JBQ3pELElBQUksRUFBRSxXQUFXO3FCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYsIFNjcm9sbFN0cmF0ZWd5T3B0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0BhcmRpdW0tdWkvZGV2a2l0JztcbmltcG9ydCAqIGFzIENvbG9yIGZyb20gJ2NvbG9yJztcbmltcG9ydCB7IEJ1dHRvblZhcmlhbnQgfSBmcm9tICcuLi8uLi9idXR0b25zL2dlbmVyYWwtYnV0dG9uLnR5cGVzJztcbmltcG9ydCB7IENhcmRBcHBlYXJhbmNlLCBDYXJkVmFyaWFudCB9IGZyb20gJy4uLy4uL2NhcmQvY2FyZC50eXBlcyc7XG5pbXBvcnQgeyBEcm9wZG93blBhbmVsQXBwZWFyYW5jZSwgRHJvcGRvd25QYW5lbFZhcmlhbnQgfSBmcm9tICcuLi8uLi9kcm9wZG93bi1wYW5lbC9kcm9wZG93bi1wYW5lbC50eXBlcyc7XG5pbXBvcnQgeyBGb3JtRWxlbWVudEFwcGVhcmFuY2UsIEZvcm1FbGVtZW50VmFyaWFudCB9IGZyb20gJy4uLy4uL3R5cGVzL3RoZW1pbmcudHlwZXMnO1xuaW1wb3J0IHsgX05nTW9kZWxDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vLi4vX2ludGVybmFsL25nbW9kZWwtY29tcG9uZW50JztcbmltcG9ydCB7IENhc2VUcmFuc2Zvcm1lclR5cGUgfSBmcm9tICcuLi9pbnB1dC10eXBlcyc7XG5pbXBvcnQge1xuICBBcmRDb2xvcklucHV0QWN0aW9uQnV0dG9uc1RlbXBsYXRlRGlyZWN0aXZlLFxuICBBcmRDb2xvcklucHV0Q29sb3JSZWZlcmVuY2VUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgQXJkQ29sb3JJbnB1dEh1ZUluZGljYXRvclRlbXBsYXRlRGlyZWN0aXZlLFxuICBBcmRDb2xvcklucHV0T3BhY2l0eUluZGljYXRvclRlbXBsYXRlRGlyZWN0aXZlLFxuICBBcmRDb2xvcklucHV0UGxhY2Vob2xkZXJUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgQXJkQ29sb3JJbnB1dFByZWZpeFRlbXBsYXRlRGlyZWN0aXZlLFxuICBBcmRDb2xvcklucHV0U2hhZGVJbmRpY2F0b3JUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgQXJkQ29sb3JJbnB1dFN1ZmZpeFRlbXBsYXRlRGlyZWN0aXZlLFxufSBmcm9tICcuL2NvbG9yLWlucHV0LmRpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgQ29sb3JJbnB1dEFjdGlvbkJ1dHRvbnNDb250ZXh0IH0gZnJvbSAnLi9jb2xvci1pbnB1dC50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FyZC1jb2xvci1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2xvci1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbG9yLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFyZGl1bUNvbG9ySW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQXJkaXVtQ29sb3JJbnB1dENvbXBvbmVudCBleHRlbmRzIF9OZ01vZGVsQ29tcG9uZW50QmFzZSBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0IHtcbiAgcmVhZG9ubHkgZWxlbWVudCE6IEhUTUxFbGVtZW50O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgc2Nyb2xsU3RyYXRlZ3lPcHRzOiBTY3JvbGxTdHJhdGVneU9wdGlvbnMsXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD5cbiAgKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuZWxlbWVudCA9IGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgfVxuICAvLyEgQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgZGV0ZWN0Q2hhbmdlcygpOiB2b2lkIHtcbiAgICBpZiAoISg8YW55PnRoaXMuX2NkKS5kZXN0cm95ZWQpIHtcbiAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICAvLyEgaW5wdXQgdmlld1xuICBAVmlld0NoaWxkKCd0ZXh0SW5wdXQnKVxuICBwcm90ZWN0ZWQgdGV4dElucHV0RWwhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fc2V0SW5wdXRBdHRyaWJ1dGVzKCk7XG4gIH1cblxuICByZWFkb25seSBERUZBVUxUUyA9IHtcbiAgICBjbGVhckJ1dHRvblRpdGxlOiAnQ2xlYXInLFxuICB9O1xuXG4gIEBJbnB1dCgpIGlucHV0SWQ/OiBzdHJpbmc7XG5cbiAgLy8hIHByZWZpeCAmIHN1ZmZpeFxuICBAQ29udGVudENoaWxkKEFyZENvbG9ySW5wdXRQcmVmaXhUZW1wbGF0ZURpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICBwcmVmaXhUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gIEBDb250ZW50Q2hpbGQoQXJkQ29sb3JJbnB1dFN1ZmZpeFRlbXBsYXRlRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIHN1ZmZpeFRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcblxuICAvLyEgcGxhY2Vob2xkZXJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xuXG4gIEBDb250ZW50Q2hpbGQoQXJkQ29sb3JJbnB1dFBsYWNlaG9sZGVyVGVtcGxhdGVEaXJlY3RpdmUsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgfSlcbiAgcGxhY2Vob2xkZXJUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgZ2V0IHNob3VsZERpc3BsYXlQbGFjZWhvbGRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQm9vbGVhbih0aGlzLnBsYWNlaG9sZGVyKSAmJiAhdGhpcy52YWx1ZTtcbiAgfVxuXG4gIC8vISBhcHBlYXJhbmNlXG4gIC8vYWxsIGhhbmRsZWQgaW4gYXJkLWZvcm0tZmllbGQtZnJhbWUgY29tcG9uZW50XG4gIEBJbnB1dCgpIGFwcGVhcmFuY2U6IEZvcm1FbGVtZW50QXBwZWFyYW5jZSA9IEZvcm1FbGVtZW50QXBwZWFyYW5jZS5PdXRsaW5lZDtcbiAgQElucHV0KCkgdmFyaWFudDogRm9ybUVsZW1lbnRWYXJpYW50ID0gRm9ybUVsZW1lbnRWYXJpYW50LlJvdW5kZWQ7XG5cbiAgcHJpdmF0ZSBfY29tcGFjdDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBnZXQgY29tcGFjdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY29tcGFjdDtcbiAgfVxuICBzZXQgY29tcGFjdCh2OiBhbnkpIHtcbiAgICB0aGlzLl9jb21wYWN0ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpO1xuICB9XG5cbiAgLy8hIHNldHRpbmdzXG4gIEBJbnB1dCgpIGNhc2U6IENhc2VUcmFuc2Zvcm1lclR5cGUgPSBDYXNlVHJhbnNmb3JtZXJUeXBlLk5vQ2hhbmdlO1xuXG4gIHByaXZhdGUgX3dpdGhBY3Rpb25CdXR0b25zOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpXG4gIGdldCB3aXRoQWN0aW9uQnV0dG9ucygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fd2l0aEFjdGlvbkJ1dHRvbnM7XG4gIH1cbiAgc2V0IHdpdGhBY3Rpb25CdXR0b25zKHY6IGFueSkge1xuICAgIHRoaXMuX3dpdGhBY3Rpb25CdXR0b25zID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpO1xuICB9XG5cbiAgLy8hIGNsZWFyIGJ1dHRvblxuICBwcml2YXRlIF9jbGVhcmFibGU6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKVxuICBnZXQgY2xlYXJhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9jbGVhcmFibGU7XG4gIH1cbiAgc2V0IGNsZWFyYWJsZSh2OiBhbnkpIHtcbiAgICB0aGlzLl9jbGVhcmFibGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodik7XG4gICAgaWYgKHRoaXMudmFsdWUgPT0gbnVsbCkge1xuICAgICAgdGhpcy52YWx1ZSA9IENvbG9yKCdyZWQnKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKSBjbGVhckJ1dHRvblRpdGxlOiBzdHJpbmcgPSB0aGlzLkRFRkFVTFRTLmNsZWFyQnV0dG9uVGl0bGU7XG5cbiAgZ2V0IHNob3VsZFNob3dDbGVhckJ1dHRvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY2xlYXJhYmxlICYmICF0aGlzLmRpc2FibGVkICYmIEJvb2xlYW4odGhpcy52YWx1ZSk7XG4gIH1cbiAgb25DbGVhckJ1dHRvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5jbGVhcigpO1xuICAgIHRoaXMuZm9jdXMoKTtcbiAgfVxuXG4gIC8vISBvdGhlciBpbnB1dHNcbiAgQElucHV0KCkgaW5wdXRBdHRyczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuXG4gIC8vISBjb250cm9sIHZhbHVlIGFjY2Vzc29yJ3Mgd3JpdGUgdmFsdWUgaW1wbGVtZW50YXRpb25cbiAgd3JpdGVWYWx1ZSh2OiBDb2xvciB8IG51bGwpIHtcbiAgICB0aGlzLnZhbHVlID0gdjtcbiAgfVxuXG4gIC8vISBjbGVhciBmdW5jdGlvblxuICBjbGVhcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY2xlYXJhYmxlKSByZXR1cm47XG5cbiAgICB0aGlzLndyaXRlVmFsdWUobnVsbCk7XG4gICAgdGhpcy5fZW1pdENoYW5nZSgpO1xuICAgIHRoaXMuY2xlYXJFdmVudC5lbWl0KCk7XG4gIH1cblxuICAvLyEgdmFsdWUgdHdvLXdheSBiaW5kaW5nXG4gIHByb3RlY3RlZCBfdmFsdWU6IENvbG9yIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpXG4gIHNldCB2YWx1ZSh2OiBDb2xvciB8IG51bGwpIHtcbiAgICB0aGlzLl92YWx1ZSA9IHY7XG4gICAgdGhpcy5fdXBkYXRlSW5wdXRFbFZhbHVlKCk7XG4gIH1cbiAgZ2V0IHZhbHVlKCk6IENvbG9yIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q29sb3I+KCk7XG5cbiAgLy8qIGV2ZW50IGVtaXR0ZXJzXG4gIEBPdXRwdXQoJ2NoYW5nZScpIGNoYW5nZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxDb2xvcj4oKTtcbiAgQE91dHB1dCgnY2xlYXInKSBjbGVhckV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLy8hIGV2ZW50IGhhbmRsZXJzXG4gIC8vY2hhbmdlXG4gIG9uQ2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuX2VtaXRDaGFuZ2UoKTtcbiAgfVxuICBwcm90ZWN0ZWQgX2VtaXRDaGFuZ2UoKTogdm9pZCB7XG4gICAgY29uc3QgdiA9IHRoaXMudmFsdWU7XG4gICAgaWYgKCF2KSByZXR1cm47XG5cbiAgICB0aGlzLl9vbkNoYW5nZVJlZ2lzdGVyZWQ/Lih2KTtcbiAgICB0aGlzLmNoYW5nZUV2ZW50LmVtaXQodik7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHYpO1xuICB9XG4gIHByaXZhdGUgX29uVG91Y2hlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnRvdWNoZWQgPSB0cnVlO1xuICAgIHRoaXMuX29uVG91Y2hlZFJlZ2lzdGVyZWQ/LigpO1xuICB9XG5cbiAgLy9zbWFydCBmb2N1c1xuICBvbk1vdXNldXAoKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGUoKTtcbiAgfVxuXG4gIG9uQ29weShldmVudDogQ2xpcGJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB2ID0gdGhpcy52YWx1ZTtcbiAgICBpZiAoIXYpIHJldHVybjtcblxuICAgIGV2ZW50LmNsaXBib2FyZERhdGE/LnNldERhdGEoJ3RleHQvcGxhaW4nLCB2LmhleCgpLnRvU3RyaW5nKCkpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICAvLyEgc3RhdGVcbiAgcHJpdmF0ZSBfdG91Y2hlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBnZXQgdG91Y2hlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdG91Y2hlZDtcbiAgfVxuICBwcml2YXRlIHNldCB0b3VjaGVkKHN0YXRlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fdG91Y2hlZCA9IHN0YXRlO1xuICB9XG5cbiAgLy8hIGNvbG9yIHBpY2tlciBvdmVybGF5XG4gIEBWaWV3Q2hpbGQoJ292ZXJsYXlIb3N0JywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIG92ZXJsYXlIb3N0ITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ292ZXJsYXlUZW1wbGF0ZScsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgb3ZlcmxheVRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwcml2YXRlIG92ZXJsYXlSZWY/OiBPdmVybGF5UmVmO1xuXG4gIHByaXZhdGUgX2NyZWF0ZU92ZXJsYXkoKTogdm9pZCB7XG4gICAgY29uc3Qgc3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlcbiAgICAgIC5wb3NpdGlvbigpXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLm92ZXJsYXlIb3N0KVxuICAgICAgLndpdGhQb3NpdGlvbnMoW1xuICAgICAgICB7XG4gICAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXG4gICAgICAgICAgb3ZlcmxheVg6ICdlbmQnLFxuICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXG4gICAgICAgICAgb3ZlcmxheVg6ICdlbmQnLFxuICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICBvdmVybGF5WTogJ2JvdHRvbScsXG4gICAgICAgIH0sXG4gICAgICBdKTtcblxuICAgIGNvbnN0IGNvbmZpZyA9IG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHN0cmF0ZWd5LFxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMuc2Nyb2xsU3RyYXRlZ3lPcHRzLmJsb2NrKCksXG4gICAgICBoYXNCYWNrZHJvcDogZmFsc2UsXG4gICAgfSk7XG5cbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKGNvbmZpZyk7XG5cbiAgICBjb25zdCBwb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5vdmVybGF5VGVtcGxhdGUsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpO1xuICB9XG4gIHByaXZhdGUgX2Rlc3Ryb3lPdmVybGF5KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5vdmVybGF5UmVmKSByZXR1cm47XG5cbiAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgIGRlbGV0ZSB0aGlzLm92ZXJsYXlSZWY7XG4gIH1cblxuICAvLyEgb3ZlcmxheSBzdGF0ZSBoYW5kbGVyc1xuICBwcml2YXRlIF9pc092ZXJsYXlPcGVuOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgnb3BlbicpIG9wZW5FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCdjbG9zZScpIGNsb3NlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICB0b2dnbGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2lzT3ZlcmxheU9wZW4pIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5vcGVuKCk7XG4gIH1cbiAgb3BlbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLl9pc092ZXJsYXlPcGVuKSByZXR1cm47XG5cbiAgICB0aGlzLl9pc092ZXJsYXlPcGVuID0gdHJ1ZTtcblxuICAgIHRoaXMuX2NyZWF0ZU92ZXJsYXkoKTtcbiAgICB0aGlzLmZvY3VzKCk7XG5cbiAgICB0aGlzLm9wZW5FdmVudC5lbWl0KCk7XG4gIH1cbiAgY2xvc2UoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9pc092ZXJsYXlPcGVuKSByZXR1cm47XG5cbiAgICB0aGlzLl9pc092ZXJsYXlPcGVuID0gZmFsc2U7XG4gICAgdGhpcy5fdGVtcG9yYXJ5VmFsdWUgPSBudWxsO1xuXG4gICAgdGhpcy5fZGVzdHJveU92ZXJsYXkoKTtcblxuICAgIHRoaXMuX29uVG91Y2hlZCgpO1xuICAgIHRoaXMuY2xvc2VFdmVudC5lbWl0KCk7XG4gIH1cbiAgLy8hIG92ZXJsYXkgYXBwZWFyYW5jZVxuICBwcml2YXRlIF9vdmVybGF5QXBwZWFyYW5jZT86IENhcmRBcHBlYXJhbmNlID0gdW5kZWZpbmVkO1xuICBASW5wdXQoKVxuICBzZXQgb3ZlcmxheUFwcGVhcmFuY2UodjogQ2FyZEFwcGVhcmFuY2UpIHtcbiAgICB0aGlzLl9vdmVybGF5QXBwZWFyYW5jZSA9IHY7XG4gIH1cbiAgZ2V0IG92ZXJsYXlBcHBlYXJhbmNlKCk6IENhcmRBcHBlYXJhbmNlIHtcbiAgICBpZiAodGhpcy5fb3ZlcmxheUFwcGVhcmFuY2UpIHJldHVybiB0aGlzLl9vdmVybGF5QXBwZWFyYW5jZTtcbiAgICBpZiAodGhpcy5hcHBlYXJhbmNlID09IEZvcm1FbGVtZW50QXBwZWFyYW5jZS5PdXRsaW5lZCkgcmV0dXJuIERyb3Bkb3duUGFuZWxBcHBlYXJhbmNlLk91dGxpbmVkO1xuICAgIHJldHVybiBEcm9wZG93blBhbmVsQXBwZWFyYW5jZS5SYWlzZWQ7XG4gIH1cbiAgcHJpdmF0ZSBfb3ZlcmxheVZhcmlhbnQ/OiBDYXJkVmFyaWFudCA9IHVuZGVmaW5lZDtcbiAgQElucHV0KClcbiAgc2V0IG92ZXJsYXlWYXJpYW50KHY6IENhcmRWYXJpYW50KSB7XG4gICAgdGhpcy5fb3ZlcmxheVZhcmlhbnQgPSB2O1xuICB9XG4gIGdldCBvdmVybGF5VmFyaWFudCgpOiBDYXJkVmFyaWFudCB7XG4gICAgaWYgKHRoaXMuX292ZXJsYXlWYXJpYW50KSByZXR1cm4gdGhpcy5fb3ZlcmxheVZhcmlhbnQ7XG4gICAgaWYgKHRoaXMudmFyaWFudCA9PSBGb3JtRWxlbWVudFZhcmlhbnQuUGlsbCkgcmV0dXJuIERyb3Bkb3duUGFuZWxWYXJpYW50LlJvdW5kZWQ7XG4gICAgcmV0dXJuIHRoaXMudmFyaWFudDtcbiAgfVxuXG4gIC8vISBjb2xvciBwaWNrZXIgaW50ZWdyYXRpb25cbiAgcHJpdmF0ZSBfdGVtcG9yYXJ5VmFsdWU6IENvbG9yIHwgbnVsbCA9IG51bGw7XG4gIG9uQ29sb3JQaWNrZXJDaGFuZ2UoZXZlbnQ6IENvbG9yKTogdm9pZCB7XG4gICAgaWYgKHRoaXMud2l0aEFjdGlvbkJ1dHRvbnMpIHtcbiAgICAgIHRoaXMuX3RlbXBvcmFyeVZhbHVlID0gZXZlbnQ7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudmFsdWUgPSBldmVudDtcbiAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuICBoYW5kbGVPdXRzaWRlQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2lzT3ZlcmxheU9wZW4pIHJldHVybjtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgaWYgKHRoaXMuZWxlbWVudC5jb250YWlucyh0YXJnZXQpKSByZXR1cm47XG5cbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cbiAgYXBwbHkoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl90ZW1wb3JhcnlWYWx1ZSkgcmV0dXJuIHRoaXMuY2FuY2VsKCk7XG5cbiAgICB0aGlzLnZhbHVlID0gdGhpcy5fdGVtcG9yYXJ5VmFsdWU7XG4gICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG4gIGNhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cbiAgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5fdGVtcG9yYXJ5VmFsdWUgPSB0aGlzLnZhbHVlO1xuICB9XG5cbiAgLy8hIG92ZXJsYXkgdGVtcGxhdGVzXG4gIEBDb250ZW50Q2hpbGQoQXJkQ29sb3JJbnB1dFNoYWRlSW5kaWNhdG9yVGVtcGxhdGVEaXJlY3RpdmUsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgfSlcbiAgc2hhZGVJbmRpY2F0b3JUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gIEBDb250ZW50Q2hpbGQoQXJkQ29sb3JJbnB1dEh1ZUluZGljYXRvclRlbXBsYXRlRGlyZWN0aXZlLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gIH0pXG4gIGh1ZUluZGljYXRvclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgQENvbnRlbnRDaGlsZChBcmRDb2xvcklucHV0T3BhY2l0eUluZGljYXRvclRlbXBsYXRlRGlyZWN0aXZlLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gIH0pXG4gIG9wYWNpdHlJbmRpY2F0b3JUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gIEBDb250ZW50Q2hpbGQoQXJkQ29sb3JJbnB1dENvbG9yUmVmZXJlbmNlVGVtcGxhdGVEaXJlY3RpdmUsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgfSlcbiAgY29sb3JSZWZlcmVuY2VUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gIEBDb250ZW50Q2hpbGQoQXJkQ29sb3JJbnB1dEFjdGlvbkJ1dHRvbnNUZW1wbGF0ZURpcmVjdGl2ZSwge1xuICAgIHJlYWQ6IFRlbXBsYXRlUmVmLFxuICB9KVxuICBhY3Rpb25CdXR0b25zVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGdldCBhY3Rpb25CdXR0b25WYXJpYW50KCk6IEJ1dHRvblZhcmlhbnQge1xuICAgIGlmICh0aGlzLnZhcmlhbnQgPT0gRm9ybUVsZW1lbnRWYXJpYW50LlNoYXJwKSByZXR1cm4gQnV0dG9uVmFyaWFudC5TaGFycDtcbiAgICByZXR1cm4gQnV0dG9uVmFyaWFudC5Sb3VuZGVkO1xuICB9XG4gIGdldEFjdGlvbkJ1dHRvbnNDb250ZXh0KCk6IENvbG9ySW5wdXRBY3Rpb25CdXR0b25zQ29udGV4dCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFwcGx5OiAoKSA9PiB7XG4gICAgICAgIHRoaXMuYXBwbHkoKTtcbiAgICAgIH0sXG4gICAgICBjYW5jZWw6ICgpID0+IHtcbiAgICAgICAgdGhpcy5jYW5jZWwoKTtcbiAgICAgIH0sXG4gICAgICByZXNldDogKCkgPT4ge1xuICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICAvLyEgaGVscGVyc1xuICBwcm90ZWN0ZWQgX3VwZGF0ZUlucHV0RWxWYWx1ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRleHRJbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLnZhbHVlPy5oZXgoKS50b1N0cmluZygpID8/ICcnO1xuICB9XG4gIHByb3RlY3RlZCBfc2V0SW5wdXRBdHRyaWJ1dGVzKCkge1xuICAgIGNvbnN0IGlucHV0ID0gdGhpcy50ZXh0SW5wdXRFbC5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IGF0dHJpYnV0ZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG4gICAgICB0eXBlOiAndGV4dCcsXG4gICAgICBhdXRvY29ycmVjdDogJ29mZicsXG4gICAgICBhdXRvY2FwaXRhbGl6ZTogJ29mZicsXG4gICAgICBhdXRvY29tcGxldGU6ICdvZmYnLFxuICAgICAgdGFiaW5kZXg6IFN0cmluZyh0aGlzLnRhYkluZGV4KSxcbiAgICAgIC4uLnRoaXMuaW5wdXRBdHRycyxcbiAgICB9O1xuXG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoYXR0cmlidXRlcykpIHtcbiAgICAgIGlucHV0LnNldEF0dHJpYnV0ZShrZXksIFN0cmluZyhhdHRyaWJ1dGVzW2tleV0pKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxhcmQtZm9ybS1maWVsZC1mcmFtZVxyXG4gICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXHJcbiAgICBbdmFyaWFudF09XCJ2YXJpYW50XCJcclxuICAgIFtjb21wYWN0XT1cImNvbXBhY3RcIlxyXG4gICAgW2lzRm9jdXNlZF09XCJpc0ZvY3VzZWRcIlxyXG4gICAgW3ByZWZpeFRlbXBsYXRlXT1cInByZWZpeFRlbXBsYXRlXCJcclxuICAgIFtzdWZmaXhUZW1wbGF0ZV09XCJzdWZmaXhUZW1wbGF0ZVwiXHJcbiAgICAjb3ZlcmxheUhvc3RcclxuPlxyXG4gICAgPGRpdiBjbGFzcz1cImFyZC1jb2xvci1pbnB1dFwiXHJcbiAgICAgICAgW2NsYXNzLmFyZC1oYXMtdmFsdWVdPVwidmFsdWVcIlxyXG4gICAgICAgIChtb3VzZXVwKT1cIm9uTW91c2V1cCgpXCJcclxuICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWlucHV0LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvdWxkRGlzcGxheVBsYWNlaG9sZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRQbGFjZWhvbGRlclRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtcGxhY2Vob2xkZXJcIj57eyBwbGFjZWhvbGRlciB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwicGxhY2Vob2xkZXJUZW1wbGF0ZSB8fCBkZWZhdWx0UGxhY2Vob2xkZXJUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgPGlucHV0ICN0ZXh0SW5wdXRcclxuICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cImlucHV0SWRcIlxyXG4gICAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXHJcbiAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxhcmQtX2NsZWFyLWJ1dHRvblxyXG4gICAgICAgICAgICAqbmdJZj1cInNob3VsZFNob3dDbGVhckJ1dHRvblwiXHJcbiAgICAgICAgICAgIFt0aXRsZV09XCJjbGVhckJ1dHRvblRpdGxlXCJcclxuICAgICAgICAgICAgKG1vdXNldXApPVwib25DbGVhckJ1dHRvbkNsaWNrKCRldmVudClcIlxyXG4gICAgICAgID48L2FyZC1fY2xlYXItYnV0dG9uPlxyXG5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYXJkLWNvbG9yLWRpc3BsYXktYnV0dG9uXCJcclxuICAgICAgICAgICAgI2ZvY3VzYWJsZUVsZW1lbnRcclxuICAgICAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcclxuICAgICAgICAgICAgKGNvcHkpPVwib25Db3B5KCRldmVudClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPGFyZC1jb2xvci1kaXNwbGF5IFtjb2xvcl09XCJ2YWx1ZVwiPjwvYXJkLWNvbG9yLWRpc3BsYXk+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuPC9hcmQtZm9ybS1maWVsZC1mcmFtZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjb3ZlcmxheVRlbXBsYXRlPlxyXG4gICAgPGFyZC1jYXJkXHJcbiAgICAgICAgY2xhc3M9XCJhcmQtb3ZlcmxheS1jYXJkIGFyZC1jb2xvci1pbnB1dC1vdmVybGF5LWNhcmRcIlxyXG4gICAgICAgIFthcHBlYXJhbmNlXT1cIm92ZXJsYXlBcHBlYXJhbmNlXCJcclxuICAgICAgICBbdmFyaWFudF09XCJvdmVybGF5VmFyaWFudFwiXHJcbiAgICAgICAgKGFyZENsaWNrT3V0c2lkZSk9XCJoYW5kbGVPdXRzaWRlQ2xpY2soJGV2ZW50KVwiXHJcbiAgICA+XHJcbiAgICAgICAgPGFyZC1jb2xvci1waWNrZXJcclxuICAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcclxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uQ29sb3JQaWNrZXJDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIFtodWVJbmRpY2F0b3JUZW1wbGF0ZV09XCJodWVJbmRpY2F0b3JUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgIFtzaGFkZUluZGljYXRvclRlbXBsYXRlXT1cInNoYWRlSW5kaWNhdG9yVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICBbb3BhY2l0eUluZGljYXRvclRlbXBsYXRlXT1cIm9wYWNpdHlJbmRpY2F0b3JUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgIFtjb2xvclJlZmVyZW5jZVRlbXBsYXRlXT1cImNvbG9yUmVmZXJlbmNlVGVtcGxhdGVcIlxyXG4gICAgICAgID48L2FyZC1jb2xvci1waWNrZXI+XHJcbiAgICAgICAgPGFyZC1jYXJkLWFjdGlvbi1idXR0b25zICpuZ0lmPVwid2l0aEFjdGlvbkJ1dHRvbnNcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0QWN0aW9uQnV0dG9uc1RlbXBsYXRlIGxldC1hcHBseUZuPVwiYXBwbHlcIiBsZXQtY2FuY2VsRm49XCJjYW5jZWxcIj5cclxuICAgICAgICAgICAgICAgIDxhcmQtYnV0dG9uIGFwcGVhcmFuY2U9XCJ0cmFuc3BhcmVudFwiIFt2YXJpYW50XT1cImFjdGlvbkJ1dHRvblZhcmlhbnRcIiAoY2xpY2spPVwiY2FuY2VsRm4oKVwiPkNhbmNlbDwvYXJkLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxhcmQtYnV0dG9uIGFwcGVhcmFuY2U9XCJyYWlzZWQtc3Ryb25nXCIgW3ZhcmlhbnRdPVwiYWN0aW9uQnV0dG9uVmFyaWFudFwiIChjbGljayk9XCJhcHBseUZuKClcIj5BcHBseTwvYXJkLWJ1dHRvbj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiYWN0aW9uQnV0dG9uc1RlbXBsYXRlID8/IGRlZmF1bHRBY3Rpb25CdXR0b25zVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImdldEFjdGlvbkJ1dHRvbnNDb250ZXh0KClcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgIDwvYXJkLWNhcmQtYWN0aW9uLWJ1dHRvbnM+XHJcbiAgICA8L2FyZC1jYXJkPlxyXG48L25nLXRlbXBsYXRlPiJdfQ==