@acorex/components 7.2.6 → 7.2.8

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 (289) hide show
  1. package/alert/lib/alert.component.d.ts +2 -1
  2. package/breadcrumbs/lib/breadcrumbs-item.component.d.ts +5 -69
  3. package/button/lib/button-group.component.d.ts +6 -6
  4. package/button/lib/button-item.component.d.ts +6 -6
  5. package/calendar/lib/calendar.component.d.ts +1 -0
  6. package/checkbox/lib/checkbox.component.d.ts +15 -9
  7. package/chips/lib/chips.component.d.ts +5 -64
  8. package/collapse/lib/collapse-group.component.d.ts +22 -10
  9. package/collapse/lib/collapse.component.d.ts +13 -7
  10. package/color-palette/lib/color-palette-input.component.d.ts +11 -10
  11. package/color-palette/lib/color-palette-picker.component.d.ts +12 -10
  12. package/color-palette/lib/color-palette-preview.component.d.ts +11 -7
  13. package/color-palette/lib/color-palette-swatches.component.d.ts +13 -11
  14. package/color-palette/lib/color-palette.class.d.ts +12 -6
  15. package/color-palette/lib/color-palette.component.d.ts +4 -10
  16. package/color-palette/lib/color-palette.module.d.ts +9 -8
  17. package/color-picker/lib/color-picker.component.d.ts +21 -18
  18. package/common/index.d.ts +1 -0
  19. package/common/lib/classes/components.class.d.ts +2 -1
  20. package/common/lib/components/base-component.class.d.ts +11 -9
  21. package/common/lib/components/input-base-value-component.class.d.ts +26 -0
  22. package/common/lib/components/interactive-component.class.d.ts +7 -0
  23. package/common/lib/components/value-component.class.d.ts +15 -7
  24. package/decorators/index.d.ts +1 -0
  25. package/decorators/lib/divider.component.d.ts +5 -0
  26. package/drawer/lib/drawer.component.d.ts +1 -1
  27. package/esm2022/acorex-components.mjs +1 -1
  28. package/esm2022/action-sheet/lib/action-sheet.component.mjs +3 -3
  29. package/esm2022/action-sheet/lib/action-sheet.module.mjs +4 -4
  30. package/esm2022/action-sheet/lib/action-sheet.service.mjs +3 -3
  31. package/esm2022/alert/lib/alert.component.mjs +13 -11
  32. package/esm2022/alert/lib/alert.module.mjs +4 -4
  33. package/esm2022/avatar/lib/avatar-group.component.mjs +3 -3
  34. package/esm2022/avatar/lib/avatar.component.mjs +3 -3
  35. package/esm2022/avatar/lib/avatar.module.mjs +4 -4
  36. package/esm2022/badge/lib/badge.component.mjs +5 -5
  37. package/esm2022/badge/lib/badge.module.mjs +4 -4
  38. package/esm2022/breadcrumbs/lib/breadcrumbs-item.component.mjs +11 -20
  39. package/esm2022/breadcrumbs/lib/breadcrumbs.component.mjs +4 -4
  40. package/esm2022/breadcrumbs/lib/breadcrumbs.module.mjs +4 -4
  41. package/esm2022/button/lib/button-group.component.mjs +3 -3
  42. package/esm2022/button/lib/button-item.component.mjs +3 -3
  43. package/esm2022/button/lib/button.component.mjs +3 -3
  44. package/esm2022/button/lib/button.module.mjs +4 -4
  45. package/esm2022/calendar/lib/calendar-range.component.mjs +3 -3
  46. package/esm2022/calendar/lib/calendar.class.mjs +6 -5
  47. package/esm2022/calendar/lib/calendar.component.mjs +15 -14
  48. package/esm2022/calendar/lib/calendar.module.mjs +4 -4
  49. package/esm2022/checkbox/lib/checkbox.component.mjs +44 -20
  50. package/esm2022/checkbox/lib/checkbox.module.mjs +4 -4
  51. package/esm2022/chips/lib/chips.component.mjs +9 -11
  52. package/esm2022/chips/lib/chips.module.mjs +4 -4
  53. package/esm2022/collapse/lib/collapse-group.component.mjs +81 -25
  54. package/esm2022/collapse/lib/collapse.component.mjs +29 -16
  55. package/esm2022/collapse/lib/collapse.module.mjs +4 -4
  56. package/esm2022/color-palette/lib/color-palette-input.component.mjs +59 -74
  57. package/esm2022/color-palette/lib/color-palette-picker.component.mjs +78 -69
  58. package/esm2022/color-palette/lib/color-palette-preview.component.mjs +33 -27
  59. package/esm2022/color-palette/lib/color-palette-swatches.component.mjs +37 -251
  60. package/esm2022/color-palette/lib/color-palette.class.mjs +229 -8
  61. package/esm2022/color-palette/lib/color-palette.component.mjs +32 -58
  62. package/esm2022/color-palette/lib/color-palette.module.mjs +9 -6
  63. package/esm2022/color-picker/lib/color-picker.component.mjs +5 -8
  64. package/esm2022/color-picker/lib/color-picker.module.mjs +4 -4
  65. package/esm2022/common/index.mjs +2 -1
  66. package/esm2022/common/lib/classes/components.class.mjs +19 -19
  67. package/esm2022/common/lib/common.module.mjs +4 -4
  68. package/esm2022/common/lib/components/base-component.class.mjs +12 -8
  69. package/esm2022/common/lib/components/input-base-value-component.class.mjs +47 -0
  70. package/esm2022/common/lib/components/interactive-component.class.mjs +31 -4
  71. package/esm2022/common/lib/components/value-component.class.mjs +60 -38
  72. package/esm2022/common/lib/directives/auto-focus.directive.mjs +3 -3
  73. package/esm2022/common/lib/directives/debounce-time.directive.mjs +3 -3
  74. package/esm2022/common/lib/directives/hotkey.directive.mjs +3 -3
  75. package/esm2022/common/lib/directives/infinite-scroll.directive.mjs +3 -3
  76. package/esm2022/common/lib/directives/responsive.directive.mjs +3 -3
  77. package/esm2022/common/lib/services/custom-cdk-overlay.service.mjs +6 -6
  78. package/esm2022/common/lib/services/hotkey.service.mjs +3 -3
  79. package/esm2022/common/lib/services/overlay.service.mjs +3 -3
  80. package/esm2022/context-menu/lib/context-menu.component.mjs +3 -3
  81. package/esm2022/context-menu/lib/context-menu.module.mjs +4 -4
  82. package/esm2022/data-pager/lib/data-pager-base.component.mjs +6 -6
  83. package/esm2022/data-pager/lib/data-pager-info.component.mjs +3 -3
  84. package/esm2022/data-pager/lib/data-pager-input-selector.component.mjs +3 -3
  85. package/esm2022/data-pager/lib/data-pager-next-buttons.components.mjs +3 -3
  86. package/esm2022/data-pager/lib/data-pager-numeric-selector.component.mjs +3 -3
  87. package/esm2022/data-pager/lib/data-pager-pagesize-dropdown.component.mjs +3 -3
  88. package/esm2022/data-pager/lib/data-pager-prev-buttons.component.mjs +3 -3
  89. package/esm2022/data-pager/lib/data-pager.component.mjs +3 -3
  90. package/esm2022/data-pager/lib/data-pager.module.mjs +4 -4
  91. package/esm2022/data-table/lib/data-column-cell-template.directive.mjs +3 -3
  92. package/esm2022/data-table/lib/data-column.directive.mjs +3 -3
  93. package/esm2022/data-table/lib/data-table.component.mjs +3 -3
  94. package/esm2022/data-table/lib/data-table.module.mjs +4 -4
  95. package/esm2022/date-picker/lib/datepicker.component.mjs +3 -3
  96. package/esm2022/date-picker/lib/datepicker.module.mjs +4 -4
  97. package/esm2022/decorators/index.mjs +2 -1
  98. package/esm2022/decorators/lib/close-button.component.mjs +3 -3
  99. package/esm2022/decorators/lib/content.component.mjs +3 -3
  100. package/esm2022/decorators/lib/decorators.module.mjs +4 -4
  101. package/esm2022/decorators/lib/divider.component.mjs +17 -0
  102. package/esm2022/decorators/lib/footer.component.mjs +3 -3
  103. package/esm2022/decorators/lib/form-hint.component.mjs +6 -6
  104. package/esm2022/decorators/lib/header.component.mjs +3 -3
  105. package/esm2022/decorators/lib/icon.component.mjs +3 -3
  106. package/esm2022/decorators/lib/overlay.component.mjs +3 -3
  107. package/esm2022/decorators/lib/placeholder.component.mjs +3 -3
  108. package/esm2022/decorators/lib/prefix.component.mjs +3 -3
  109. package/esm2022/decorators/lib/sub-title.component.mjs +3 -3
  110. package/esm2022/decorators/lib/suffix.component.mjs +4 -4
  111. package/esm2022/decorators/lib/text.component.mjs +3 -3
  112. package/esm2022/decorators/lib/title.component.mjs +3 -3
  113. package/esm2022/dialog/lib/dialog.component.mjs +3 -3
  114. package/esm2022/dialog/lib/dialog.module.mjs +4 -4
  115. package/esm2022/dialog/lib/dialog.service.mjs +3 -3
  116. package/esm2022/drawer/lib/drawer-container.component.mjs +3 -3
  117. package/esm2022/drawer/lib/drawer.component.mjs +6 -5
  118. package/esm2022/drawer/lib/drawer.module.mjs +4 -4
  119. package/esm2022/dropdown/lib/dropdown-panel.component.mjs +3 -3
  120. package/esm2022/dropdown/lib/dropdown.module.mjs +4 -4
  121. package/esm2022/form/lib/form-field.component.mjs +4 -4
  122. package/esm2022/form/lib/form.component.mjs +4 -6
  123. package/esm2022/form/lib/form.module.mjs +4 -4
  124. package/esm2022/form/lib/validation-rule.widget.mjs +3 -3
  125. package/esm2022/form/lib/validation-summary.component.mjs +3 -3
  126. package/esm2022/image/lib/image.component.mjs +3 -3
  127. package/esm2022/image/lib/image.module.mjs +4 -4
  128. package/esm2022/index.mjs +1 -1
  129. package/esm2022/label/lib/label.component.mjs +4 -4
  130. package/esm2022/label/lib/label.module.mjs +4 -4
  131. package/esm2022/loading/lib/loading-spinner.component.mjs +3 -3
  132. package/esm2022/loading/lib/loading.component.mjs +3 -3
  133. package/esm2022/loading/lib/loading.directive.mjs +3 -3
  134. package/esm2022/loading/lib/loading.module.mjs +4 -4
  135. package/esm2022/loading/lib/loading.service.mjs +3 -3
  136. package/esm2022/menu/lib/menu.component.mjs +3 -3
  137. package/esm2022/menu/lib/menu.module.mjs +4 -4
  138. package/esm2022/mixin/lib/base-components.class.mjs +3 -3
  139. package/esm2022/mixin/lib/base-menu-mixin.class.mjs +3 -3
  140. package/esm2022/mixin/lib/value-mixin.class.mjs +4 -1
  141. package/esm2022/notification/lib/notification.component.mjs +3 -3
  142. package/esm2022/notification/lib/notification.module.mjs +4 -4
  143. package/esm2022/notification/lib/notification.service.mjs +3 -3
  144. package/esm2022/number-box/lib/number-box.component.mjs +3 -3
  145. package/esm2022/number-box/lib/number-box.module.mjs +4 -4
  146. package/esm2022/otp/lib/otp.component.mjs +3 -3
  147. package/esm2022/otp/lib/otp.module.mjs +4 -4
  148. package/esm2022/page/lib/base-page.class.mjs +3 -3
  149. package/esm2022/page/lib/page.component.mjs +3 -3
  150. package/esm2022/page/lib/page.module.mjs +4 -4
  151. package/esm2022/password-box/lib/password-box.component.mjs +3 -3
  152. package/esm2022/password-box/lib/password-box.module.mjs +4 -4
  153. package/esm2022/popover/lib/dropdown-component.class.mjs +3 -3
  154. package/esm2022/popover/lib/popover.component.mjs +3 -3
  155. package/esm2022/popover/lib/popover.module.mjs +4 -4
  156. package/esm2022/popup/lib/popup.component.mjs +3 -3
  157. package/esm2022/popup/lib/popup.module.mjs +4 -4
  158. package/esm2022/popup/lib/popup.service.mjs +3 -3
  159. package/esm2022/progress-bar/lib/progress-bar.component.mjs +3 -3
  160. package/esm2022/progress-bar/lib/progress-bar.module.mjs +4 -4
  161. package/esm2022/radio/lib/radio.component.mjs +3 -3
  162. package/esm2022/radio/lib/radio.module.mjs +4 -4
  163. package/esm2022/range-slider/lib/range-slider.component.mjs +36 -23
  164. package/esm2022/range-slider/lib/range-slider.module.mjs +7 -6
  165. package/esm2022/result/lib/result.component.mjs +3 -3
  166. package/esm2022/result/lib/result.module.mjs +4 -4
  167. package/esm2022/search-box/lib/search-box.component.mjs +3 -3
  168. package/esm2022/search-box/lib/search-box.module.mjs +4 -4
  169. package/esm2022/select-box/lib/select-box.component.mjs +3 -3
  170. package/esm2022/select-box/lib/select-box.module.mjs +4 -4
  171. package/esm2022/selection-list/lib/selection-list.component.mjs +3 -3
  172. package/esm2022/selection-list/lib/selection-list.module.mjs +4 -4
  173. package/esm2022/switch/lib/switch-content.component.mjs +3 -3
  174. package/esm2022/switch/lib/switch.component.mjs +27 -25
  175. package/esm2022/switch/lib/switch.module.mjs +4 -4
  176. package/esm2022/tabs/lib/tab-content.directive.mjs +3 -3
  177. package/esm2022/tabs/lib/tab-item.component.mjs +3 -3
  178. package/esm2022/tabs/lib/tabs.component.mjs +3 -3
  179. package/esm2022/tabs/lib/tabs.module.mjs +4 -4
  180. package/esm2022/tag/lib/tag.component.mjs +3 -3
  181. package/esm2022/tag/lib/tag.module.mjs +4 -4
  182. package/esm2022/textarea/lib/textarea.component.mjs +3 -3
  183. package/esm2022/textarea/lib/textarea.module.mjs +4 -4
  184. package/esm2022/textbox/lib/mask-options.directive.mjs +3 -3
  185. package/esm2022/textbox/lib/textbox.component.mjs +39 -21
  186. package/esm2022/textbox/lib/textbox.module.mjs +4 -4
  187. package/esm2022/time-box/lib/time-box.component.mjs +4 -6
  188. package/esm2022/time-box/lib/time-box.module.mjs +4 -4
  189. package/esm2022/toast/lib/toast.component.mjs +3 -3
  190. package/esm2022/toast/lib/toast.module.mjs +4 -4
  191. package/esm2022/toast/lib/toast.service.mjs +3 -3
  192. package/esm2022/tooltip/lib/tooltip.component.mjs +3 -3
  193. package/esm2022/tooltip/lib/tooltip.directive.mjs +3 -3
  194. package/esm2022/tooltip/lib/tooltip.module.mjs +4 -4
  195. package/esm2022/uploader/lib/uploader.component.mjs +3 -3
  196. package/esm2022/uploader/lib/uploader.module.mjs +4 -4
  197. package/fesm2022/acorex-components-action-sheet.mjs +10 -10
  198. package/fesm2022/acorex-components-alert.mjs +16 -14
  199. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  200. package/fesm2022/acorex-components-avatar.mjs +10 -10
  201. package/fesm2022/acorex-components-badge.mjs +8 -8
  202. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  203. package/fesm2022/acorex-components-breadcrumbs.mjs +18 -28
  204. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  205. package/fesm2022/acorex-components-button.mjs +13 -13
  206. package/fesm2022/acorex-components-calendar.mjs +26 -24
  207. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  208. package/fesm2022/acorex-components-checkbox.mjs +47 -24
  209. package/fesm2022/acorex-components-checkbox.mjs.map +1 -1
  210. package/fesm2022/acorex-components-chips.mjs +13 -15
  211. package/fesm2022/acorex-components-chips.mjs.map +1 -1
  212. package/fesm2022/acorex-components-collapse.mjs +110 -41
  213. package/fesm2022/acorex-components-collapse.mjs.map +1 -1
  214. package/fesm2022/acorex-components-color-palette.mjs +445 -461
  215. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  216. package/fesm2022/acorex-components-color-picker.mjs +8 -11
  217. package/fesm2022/acorex-components-color-picker.mjs.map +1 -1
  218. package/fesm2022/acorex-components-common.mjs +192 -97
  219. package/fesm2022/acorex-components-common.mjs.map +1 -1
  220. package/fesm2022/acorex-components-context-menu.mjs +7 -7
  221. package/fesm2022/acorex-components-data-pager.mjs +31 -31
  222. package/fesm2022/acorex-components-data-table.mjs +13 -13
  223. package/fesm2022/acorex-components-date-picker.mjs +7 -7
  224. package/fesm2022/acorex-components-decorators.mjs +60 -45
  225. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  226. package/fesm2022/acorex-components-dialog.mjs +10 -10
  227. package/fesm2022/acorex-components-drawer.mjs +11 -10
  228. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  229. package/fesm2022/acorex-components-dropdown.mjs +7 -7
  230. package/fesm2022/acorex-components-form.mjs +17 -19
  231. package/fesm2022/acorex-components-form.mjs.map +1 -1
  232. package/fesm2022/acorex-components-image.mjs +7 -7
  233. package/fesm2022/acorex-components-label.mjs +8 -8
  234. package/fesm2022/acorex-components-label.mjs.map +1 -1
  235. package/fesm2022/acorex-components-loading.mjs +16 -16
  236. package/fesm2022/acorex-components-menu.mjs +7 -7
  237. package/fesm2022/acorex-components-mixin.mjs +7 -5
  238. package/fesm2022/acorex-components-mixin.mjs.map +1 -1
  239. package/fesm2022/acorex-components-notification.mjs +10 -10
  240. package/fesm2022/acorex-components-number-box.mjs +7 -7
  241. package/fesm2022/acorex-components-otp.mjs +7 -7
  242. package/fesm2022/acorex-components-page.mjs +10 -10
  243. package/fesm2022/acorex-components-password-box.mjs +7 -7
  244. package/fesm2022/acorex-components-popover.mjs +10 -10
  245. package/fesm2022/acorex-components-popup.mjs +10 -10
  246. package/fesm2022/acorex-components-progress-bar.mjs +7 -7
  247. package/fesm2022/acorex-components-radio.mjs +7 -7
  248. package/fesm2022/acorex-components-range-slider.mjs +40 -28
  249. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  250. package/fesm2022/acorex-components-result.mjs +7 -7
  251. package/fesm2022/acorex-components-search-box.mjs +7 -7
  252. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  253. package/fesm2022/acorex-components-select-box.mjs +7 -7
  254. package/fesm2022/acorex-components-selection-list.mjs +7 -7
  255. package/fesm2022/acorex-components-switch.mjs +33 -32
  256. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  257. package/fesm2022/acorex-components-tabs.mjs +13 -13
  258. package/fesm2022/acorex-components-tag.mjs +7 -7
  259. package/fesm2022/acorex-components-textarea.mjs +7 -7
  260. package/fesm2022/acorex-components-textbox.mjs +45 -28
  261. package/fesm2022/acorex-components-textbox.mjs.map +1 -1
  262. package/fesm2022/acorex-components-time-box.mjs +7 -9
  263. package/fesm2022/acorex-components-time-box.mjs.map +1 -1
  264. package/fesm2022/acorex-components-toast.mjs +10 -10
  265. package/fesm2022/acorex-components-tooltip.mjs +10 -10
  266. package/fesm2022/acorex-components-uploader.mjs +7 -7
  267. package/fesm2022/acorex-components.mjs.map +1 -1
  268. package/mixin/lib/base-components.class.d.ts +2 -2
  269. package/mixin/lib/base-menu-mixin.class.d.ts +5 -5
  270. package/mixin/lib/button-mixin.class.d.ts +2 -2
  271. package/mixin/lib/clickable-mixin.class.d.ts +2 -2
  272. package/mixin/lib/color-look-mixing.class.d.ts +2 -2
  273. package/mixin/lib/datalist-component.class.d.ts +10 -10
  274. package/mixin/lib/dropdown-mixin.class.d.ts +2 -2
  275. package/mixin/lib/interactive-mixin.class.d.ts +4 -4
  276. package/mixin/lib/loading-mixin.class.d.ts +2 -2
  277. package/mixin/lib/mixin.class.d.ts +62 -61
  278. package/mixin/lib/page-component.class.d.ts +2 -2
  279. package/mixin/lib/selection-component.class.d.ts +2 -2
  280. package/mixin/lib/sizable-mixin.class.d.ts +2 -2
  281. package/mixin/lib/textbox-mixin.class.d.ts +2 -2
  282. package/mixin/lib/value-mixin.class.d.ts +9 -8
  283. package/package.json +25 -25
  284. package/range-slider/lib/range-slider.component.d.ts +8 -9
  285. package/range-slider/lib/range-slider.module.d.ts +3 -2
  286. package/switch/lib/switch.component.d.ts +10 -8
  287. package/tabs/lib/tab-item.component.d.ts +2 -2
  288. package/textbox/lib/textbox.component.d.ts +8 -8
  289. package/time-box/lib/time-box.component.d.ts +1 -1
@@ -1,18 +1,19 @@
1
- import { AXColorUtil } from '@acorex/core/utils';
2
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Inject, Optional, ViewEncapsulation, } from '@angular/core';
3
- import { distinctUntilChanged } from 'rxjs/operators';
4
- import { AXColorComponent, AXColorPaletteChildComponent, } from './color-palette.class';
5
- import { AXBaseComponent } from '@acorex/components/mixin';
1
+ import { AXColorUtil, AXUnsubscriber } from '@acorex/core/utils';
2
+ import { ChangeDetectionStrategy, Component, Inject, ViewEncapsulation, } from '@angular/core';
3
+ import { MXBaseComponent } from '@acorex/components/common';
4
+ import { AXColorPaletteChildComponent, AXColorPaletteParentComponent, } from './color-palette.class';
6
5
  import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common";
8
- import * as i2 from "@acorex/components/textbox";
9
- import * as i3 from "@acorex/components/number-box";
10
- import * as i4 from "./color-palette.class";
11
- export class AXColorPaletteInputComponent extends AXBaseComponent {
12
- constructor(_elementRef, _cdr, _parent) {
13
- super(_elementRef, _cdr);
6
+ import * as i1 from "@acorex/core/utils";
7
+ import * as i2 from "@angular/common";
8
+ import * as i3 from "@angular/forms";
9
+ import * as i4 from "@acorex/components/textbox";
10
+ import * as i5 from "@acorex/components/number-box";
11
+ import * as i6 from "./color-palette.class";
12
+ export class AXColorPaletteInputComponent extends MXBaseComponent {
13
+ constructor(_parent, _unsubscriber) {
14
+ super();
14
15
  this._parent = _parent;
15
- this._isTouched = false;
16
+ this._unsubscriber = _unsubscriber;
16
17
  this.isValid = true;
17
18
  this._rgba = {
18
19
  r: 0,
@@ -28,34 +29,42 @@ export class AXColorPaletteInputComponent extends AXBaseComponent {
28
29
  return m.typedValue?.startsWith('#') || str == '#' ? str.trim() : '#' + str.trim();
29
30
  },
30
31
  };
31
- _parent._onInternalColorChanged$
32
- .pipe(distinctUntilChanged())
32
+ _parent.onValueChanged
33
+ .pipe(_unsubscriber.takeUntilDestroy)
33
34
  .subscribe((e) => {
34
- if (!e.color) {
35
- this._hex = '';
36
- this._rgba = {
37
- r: null,
38
- g: null,
39
- b: null,
40
- a: null,
41
- };
35
+ this.applyParent(e.isUserInteraction);
36
+ });
37
+ }
38
+ applyParent(u = false) {
39
+ const value = this._parent.value;
40
+ if (!value) {
41
+ this._hex = '';
42
+ this._rgba = {
43
+ r: null,
44
+ g: null,
45
+ b: null,
46
+ a: null,
47
+ };
48
+ }
49
+ else {
50
+ Object.assign(this._rgba, AXColorUtil.to(value, 'rgba'));
51
+ if (this._colorMode != 'hex' || !this._hex) {
52
+ this._hex = AXColorUtil.toString(value, 'hex');
42
53
  }
43
- else {
44
- Object.assign(this._rgba, AXColorUtil.to(e.color, 'rgba'));
45
- if (this._colorMode != 'hex' || !this._hex)
46
- this._hex = AXColorUtil.toString(e.color, 'hex');
47
- if (this._colorMode == 'hex')
48
- this._hex = e.color;
49
- if (this._rgba.a != 1 && !this._isTouched) {
50
- this._colorMode = 'rgba';
51
- }
54
+ if (this._colorMode == 'hex') {
55
+ this._hex = value;
52
56
  }
53
- this.checkValid();
54
- _cdr.detectChanges();
55
- });
57
+ if (!u && this._rgba.a != 1) {
58
+ this._colorMode = 'rgba';
59
+ }
60
+ }
61
+ this.checkValid();
62
+ this.cdr.detectChanges();
63
+ }
64
+ ngAfterViewInit() {
65
+ this.applyParent();
56
66
  }
57
67
  _handleChangeInputMode() {
58
- this._isTouched = true;
59
68
  switch (this._colorMode) {
60
69
  case 'rgba':
61
70
  this._colorMode = 'hex';
@@ -70,60 +79,36 @@ export class AXColorPaletteInputComponent extends AXBaseComponent {
70
79
  return;
71
80
  const { r, g, b, a } = this._rgba;
72
81
  const _color = `rgba(${r},${g},${b},${a})`;
73
- if (e.isUserInteraction) {
74
- this._parent._setUserInteraction();
75
- this._isTouched = true;
76
- }
77
- this._parent._onInternalColorChanged$.next({
78
- color: AXColorUtil.toString(_color, 'rgba'),
79
- sender: this,
80
- });
82
+ this._parent.commitValue(AXColorUtil.toString(_color, 'rgba'), e.isUserInteraction);
81
83
  }
82
84
  _handleHEXAValueChanged(e) {
83
- if (!e.value && !e.oldValue)
84
- return;
85
- //
86
- if (e.isUserInteraction) {
87
- this._parent._setUserInteraction();
88
- this._isTouched = true;
89
- }
90
- //
91
- if (!e.value && e.oldValue) {
92
- this._parent._onInternalColorChanged$.next({
93
- color: null,
94
- sender: this
95
- });
96
- }
97
- else {
98
- this._parent._onInternalColorChanged$.next({
99
- color: e.value,
100
- sender: this
101
- });
85
+ if (e.isUserInteraction && e.value?.trim() != this._hex?.trim()) {
86
+ this._parent.commitValue(e.value, e.isUserInteraction);
102
87
  }
103
88
  }
104
89
  checkValid() {
105
90
  this.isValid = AXColorUtil.isValid(this._hex);
106
91
  }
107
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AXColorPaletteInputComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: AXColorComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
108
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: AXColorPaletteInputComponent, selector: "ax-color-palette-input", host: { classAttribute: "ax-color-palette-input" }, providers: [
92
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AXColorPaletteInputComponent, deps: [{ token: AXColorPaletteParentComponent }, { token: i1.AXUnsubscriber }], target: i0.ɵɵFactoryTarget.Component }); }
93
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AXColorPaletteInputComponent, selector: "ax-color-palette-input", host: { classAttribute: "ax-color-palette-input" }, providers: [
109
94
  {
110
95
  provide: AXColorPaletteChildComponent,
111
96
  useExisting: AXColorPaletteInputComponent,
112
97
  },
113
- ], usesInheritance: true, ngImport: i0, template: "<ng-container [ngSwitch]=\"this._colorMode\">\n <div class=\"palette-inputs\">\n <ng-container *ngSwitchCase=\"'hex'\">\n <div>\n <ax-text-box\n class=\"ax-sm\"\n [value]=\"_hex\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n [state]=\"isValid ? 'clear' : 'error'\"\n (onValueChanged)=\"_handleHEXAValueChanged($event)\"\n [mask-options]=\"_hexMaskOptions\">\n </ax-text-box>\n <label>HEX</label>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'rgba'\">\n <div>\n <ax-number-box\n class=\"ax-sm\"\n [minValue]=\"0\"\n [maxValue]=\"255\"\n [(value)]=\"_rgba.r\"\n [showSpinButtons]=\"false\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n (onValueChanged)=\"_handleRGBAValueChanged($event)\">\n </ax-number-box>\n <label>R</label>\n </div>\n <div>\n <ax-number-box\n class=\"ax-sm\"\n [minValue]=\"0\"\n [maxValue]=\"255\"\n [(value)]=\"_rgba.g\"\n [showSpinButtons]=\"false\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n (onValueChanged)=\"_handleRGBAValueChanged($event)\">\n </ax-number-box>\n <label>G</label>\n </div>\n <div>\n <ax-number-box\n class=\"ax-sm\"\n [minValue]=\"0\"\n [maxValue]=\"255\"\n [(value)]=\"_rgba.b\"\n [showSpinButtons]=\"false\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n (onValueChanged)=\"_handleRGBAValueChanged($event)\">\n </ax-number-box>\n <label>B</label>\n </div>\n <div>\n <ax-number-box\n class=\"ax-sm\"\n [minValue]=\"0\"\n [maxValue]=\"1\"\n [(value)]=\"_rgba.a\"\n [decimals]=\"2\"\n [step]=\"0.1\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n [showSpinButtons]=\"false\"\n (onValueChanged)=\"_handleRGBAValueChanged($event)\">\n </ax-number-box>\n <label>A</label>\n </div>\n </ng-container>\n </div>\n <button\n class=\"ax-general-button ax-button-rounded ax-button-icon ax-sm\"\n (click)=\"_handleChangeInputMode()\"\n [disabled]=\"_parent.disabled\">\n <span class=\"ax-icon ax-icon-unfold-more\"></span>\n </button>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i2.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "mask-options"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged"] }, { kind: "component", type: i3.AXNumberBoxComponent, selector: "ax-number-box", inputs: ["disabled", "readonly", "tabIndex", "size", "value", "state", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "name", "checked", "thousandsSeparator", "padDecimalZeros", "step", "decimals", "decimalStep", "showSpinButtons", "minValue", "maxValue"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
98
+ AXUnsubscriber
99
+ ], usesInheritance: true, ngImport: i0, template: "<ng-container [ngSwitch]=\"this._colorMode\">\n <div class=\"palette-inputs\">\n <ng-container *ngSwitchCase=\"'hex'\">\n <div>\n <ax-text-box\n class=\"ax-sm\"\n [ngModel]=\"_hex\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n [state]=\"isValid ? 'clear' : 'error'\"\n (onValueChanged)=\"_handleHEXAValueChanged($event)\"\n [mask-options]=\"_hexMaskOptions\">\n </ax-text-box>\n <label>HEX</label>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'rgba'\">\n <div>\n <ax-number-box\n class=\"ax-sm\"\n [minValue]=\"0\"\n [maxValue]=\"255\"\n [(value)]=\"_rgba.r\"\n [showSpinButtons]=\"false\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n (onValueChanged)=\"_handleRGBAValueChanged($event)\">\n </ax-number-box>\n <label>R</label>\n </div>\n <div>\n <ax-number-box\n class=\"ax-sm\"\n [minValue]=\"0\"\n [maxValue]=\"255\"\n [(value)]=\"_rgba.g\"\n [showSpinButtons]=\"false\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n (onValueChanged)=\"_handleRGBAValueChanged($event)\">\n </ax-number-box>\n <label>G</label>\n </div>\n <div>\n <ax-number-box\n class=\"ax-sm\"\n [minValue]=\"0\"\n [maxValue]=\"255\"\n [(value)]=\"_rgba.b\"\n [showSpinButtons]=\"false\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n (onValueChanged)=\"_handleRGBAValueChanged($event)\">\n </ax-number-box>\n <label>B</label>\n </div>\n <div>\n <ax-number-box\n class=\"ax-sm\"\n [minValue]=\"0\"\n [maxValue]=\"1\"\n [(value)]=\"_rgba.a\"\n [decimals]=\"2\"\n [step]=\"0.1\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n [showSpinButtons]=\"false\"\n (onValueChanged)=\"_handleRGBAValueChanged($event)\">\n </ax-number-box>\n <label>A</label>\n </div>\n </ng-container>\n </div>\n <button\n class=\"ax-general-button ax-button-rounded ax-button-icon ax-sm\"\n (click)=\"_handleChangeInputMode()\"\n [disabled]=\"_parent.disabled\">\n <span class=\"ax-icon ax-icon-unfold-more\"></span>\n </button>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "mask-options"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange"] }, { kind: "component", type: i5.AXNumberBoxComponent, selector: "ax-number-box", inputs: ["disabled", "readonly", "tabIndex", "size", "value", "state", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "name", "checked", "thousandsSeparator", "padDecimalZeros", "step", "decimals", "decimalStep", "showSpinButtons", "minValue", "maxValue"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
114
100
  }
115
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AXColorPaletteInputComponent, decorators: [{
101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AXColorPaletteInputComponent, decorators: [{
116
102
  type: Component,
117
103
  args: [{ selector: 'ax-color-palette-input', host: { class: 'ax-color-palette-input' }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
118
104
  {
119
105
  provide: AXColorPaletteChildComponent,
120
106
  useExisting: AXColorPaletteInputComponent,
121
107
  },
122
- ], template: "<ng-container [ngSwitch]=\"this._colorMode\">\n <div class=\"palette-inputs\">\n <ng-container *ngSwitchCase=\"'hex'\">\n <div>\n <ax-text-box\n class=\"ax-sm\"\n [value]=\"_hex\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n [state]=\"isValid ? 'clear' : 'error'\"\n (onValueChanged)=\"_handleHEXAValueChanged($event)\"\n [mask-options]=\"_hexMaskOptions\">\n </ax-text-box>\n <label>HEX</label>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'rgba'\">\n <div>\n <ax-number-box\n class=\"ax-sm\"\n [minValue]=\"0\"\n [maxValue]=\"255\"\n [(value)]=\"_rgba.r\"\n [showSpinButtons]=\"false\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n (onValueChanged)=\"_handleRGBAValueChanged($event)\">\n </ax-number-box>\n <label>R</label>\n </div>\n <div>\n <ax-number-box\n class=\"ax-sm\"\n [minValue]=\"0\"\n [maxValue]=\"255\"\n [(value)]=\"_rgba.g\"\n [showSpinButtons]=\"false\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n (onValueChanged)=\"_handleRGBAValueChanged($event)\">\n </ax-number-box>\n <label>G</label>\n </div>\n <div>\n <ax-number-box\n class=\"ax-sm\"\n [minValue]=\"0\"\n [maxValue]=\"255\"\n [(value)]=\"_rgba.b\"\n [showSpinButtons]=\"false\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n (onValueChanged)=\"_handleRGBAValueChanged($event)\">\n </ax-number-box>\n <label>B</label>\n </div>\n <div>\n <ax-number-box\n class=\"ax-sm\"\n [minValue]=\"0\"\n [maxValue]=\"1\"\n [(value)]=\"_rgba.a\"\n [decimals]=\"2\"\n [step]=\"0.1\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n [showSpinButtons]=\"false\"\n (onValueChanged)=\"_handleRGBAValueChanged($event)\">\n </ax-number-box>\n <label>A</label>\n </div>\n </ng-container>\n </div>\n <button\n class=\"ax-general-button ax-button-rounded ax-button-icon ax-sm\"\n (click)=\"_handleChangeInputMode()\"\n [disabled]=\"_parent.disabled\">\n <span class=\"ax-icon ax-icon-unfold-more\"></span>\n </button>\n</ng-container>\n" }]
123
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i4.AXColorComponent, decorators: [{
124
- type: Optional
125
- }, {
108
+ AXUnsubscriber
109
+ ], template: "<ng-container [ngSwitch]=\"this._colorMode\">\n <div class=\"palette-inputs\">\n <ng-container *ngSwitchCase=\"'hex'\">\n <div>\n <ax-text-box\n class=\"ax-sm\"\n [ngModel]=\"_hex\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n [state]=\"isValid ? 'clear' : 'error'\"\n (onValueChanged)=\"_handleHEXAValueChanged($event)\"\n [mask-options]=\"_hexMaskOptions\">\n </ax-text-box>\n <label>HEX</label>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'rgba'\">\n <div>\n <ax-number-box\n class=\"ax-sm\"\n [minValue]=\"0\"\n [maxValue]=\"255\"\n [(value)]=\"_rgba.r\"\n [showSpinButtons]=\"false\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n (onValueChanged)=\"_handleRGBAValueChanged($event)\">\n </ax-number-box>\n <label>R</label>\n </div>\n <div>\n <ax-number-box\n class=\"ax-sm\"\n [minValue]=\"0\"\n [maxValue]=\"255\"\n [(value)]=\"_rgba.g\"\n [showSpinButtons]=\"false\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n (onValueChanged)=\"_handleRGBAValueChanged($event)\">\n </ax-number-box>\n <label>G</label>\n </div>\n <div>\n <ax-number-box\n class=\"ax-sm\"\n [minValue]=\"0\"\n [maxValue]=\"255\"\n [(value)]=\"_rgba.b\"\n [showSpinButtons]=\"false\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n (onValueChanged)=\"_handleRGBAValueChanged($event)\">\n </ax-number-box>\n <label>B</label>\n </div>\n <div>\n <ax-number-box\n class=\"ax-sm\"\n [minValue]=\"0\"\n [maxValue]=\"1\"\n [(value)]=\"_rgba.a\"\n [decimals]=\"2\"\n [step]=\"0.1\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n [showSpinButtons]=\"false\"\n (onValueChanged)=\"_handleRGBAValueChanged($event)\">\n </ax-number-box>\n <label>A</label>\n </div>\n </ng-container>\n </div>\n <button\n class=\"ax-general-button ax-button-rounded ax-button-icon ax-sm\"\n (click)=\"_handleChangeInputMode()\"\n [disabled]=\"_parent.disabled\">\n <span class=\"ax-icon ax-icon-unfold-more\"></span>\n </button>\n</ng-container>\n" }]
110
+ }], ctorParameters: function () { return [{ type: i6.AXColorPaletteParentComponent, decorators: [{
126
111
  type: Inject,
127
- args: [AXColorComponent]
128
- }] }]; } });
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGFsZXR0ZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29sb3ItcGFsZXR0ZS9zcmMvbGliL2NvbG9yLXBhbGV0dGUtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbG9yLXBhbGV0dGUvc3JjL2xpYi9jb2xvci1wYWxldHRlLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRELE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsNEJBQTRCLEdBQzdCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7QUFpQjNELE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxlQUFlO0lBdUIvRCxZQUNFLFdBQXVCLEVBQ3ZCLElBQXVCLEVBR2hCLE9BQXlCO1FBRWhDLEtBQUssQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFGbEIsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUEzQmxDLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsWUFBTyxHQUFHLElBQUksQ0FBQztRQUVmLFVBQUssR0FBUTtZQUNYLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1NBQ0wsQ0FBQztRQUVG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QyxTQUFTOytCQUNFLHdCQUF3QixRQUU1QixFQUFFLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxpQkFDMUIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsNEJBQTRCOzRCQUNyQyxXQUFXLDhCQUE4Qjt5QkFDMUM7cUJBQ0Y7OzBCQTRCRSxRQUFROzswQkFDUixNQUFNOzJCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29sb3JVdGlsIH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbmplY3QsXG4gIE9wdGlvbmFsLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFYVmFsdWVDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7XG4gIEFYQ29sb3JDb21wb25lbnQsXG4gIEFYQ29sb3JQYWxldHRlQ2hpbGRDb21wb25lbnQsXG59IGZyb20gJy4vY29sb3ItcGFsZXR0ZS5jbGFzcyc7XG5pbXBvcnQgeyBBWEJhc2VDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbWl4aW4nO1xuaW1wb3J0IHsgQVhNYXNrT3B0aW9ucyB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90ZXh0Ym94JztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1jb2xvci1wYWxldHRlLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbG9yLXBhbGV0dGUtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7IGNsYXNzOiAnYXgtY29sb3ItcGFsZXR0ZS1pbnB1dCcgfSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYQ29sb3JQYWxldHRlQ2hpbGRDb21wb25lbnQsXG4gICAgICB1c2VFeGlzdGluZzogQVhDb2xvclBhbGV0dGVJbnB1dENvbXBvbmVudCxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWENvbG9yUGFsZXR0ZUlucHV0Q29tcG9uZW50IGV4dGVuZHMgQVhCYXNlQ29tcG9uZW50IHtcbiAgX2lzVG91Y2hlZCA9IGZhbHNlO1xuICBpc1ZhbGlkID0gdHJ1ZTtcblxuICBfcmdiYTogYW55ID0ge1xuICAgIHI6IDAsXG4gICAgZzogMCxcbiAgICBiOiAwLFxuICAgIGE6IDAsXG4gIH07XG5cbiAgX2hleDogc3RyaW5nID0gJyc7XG5cbiAgcHJvdGVjdGVkIF9jb2xvck1vZGU6IFwiaGV4XCIgfCBcInJnYmFcIiA9IFwiaGV4XCI7XG5cblxuICBwcm90ZWN0ZWQgX2hleE1hc2tPcHRpb25zOiBBWE1hc2tPcHRpb25zID0ge1xuICAgIG1hc2s6IC9eI1swLTlhLWZdezAsNn1bMC05YS1mXXswLDJ9JC9pLFxuICAgIHByZXBhcmU6IChzdHIsIG0sIGEpID0+IHtcbiAgICAgIHJldHVybiBtLnR5cGVkVmFsdWU/LnN0YXJ0c1dpdGgoJyMnKSB8fCBzdHIgPT0gJyMnID8gc3RyLnRyaW0oKSA6ICcjJyArIHN0ci50cmltKCk7XG4gICAgfSxcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChBWENvbG9yQ29tcG9uZW50KVxuICAgIHB1YmxpYyBfcGFyZW50OiBBWENvbG9yQ29tcG9uZW50XG4gICkge1xuICAgIHN1cGVyKF9lbGVtZW50UmVmLCBfY2RyKTtcbiAgICBfcGFyZW50Ll9vbkludGVybmFsQ29sb3JDaGFuZ2VkJFxuICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAgICAgaWYgKCFlLmNvbG9yKSB7XG4gICAgICAgICAgdGhpcy5faGV4ID0gJyc7XG4gICAgICAgICAgdGhpcy5fcmdiYSA9IHtcbiAgICAgICAgICAgIHI6IG51bGwsXG4gICAgICAgICAgICBnOiBudWxsLFxuICAgICAgICAgICAgYjogbnVsbCxcbiAgICAgICAgICAgIGE6IG51bGwsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuX3JnYmEsIEFYQ29sb3JVdGlsLnRvKGUuY29sb3IsICdyZ2JhJykpO1xuICAgICAgICAgIGlmICh0aGlzLl9jb2xvck1vZGUgIT0gJ2hleCcgfHwgIXRoaXMuX2hleClcbiAgICAgICAgICAgIHRoaXMuX2hleCA9IEFYQ29sb3JVdGlsLnRvU3RyaW5nKGUuY29sb3IsICdoZXgnKTtcbiAgICAgICAgICBpZiAodGhpcy5fY29sb3JNb2RlID09ICdoZXgnKVxuICAgICAgICAgICAgdGhpcy5faGV4ID0gZS5jb2xvcjtcbiAgICAgICAgICBpZiAodGhpcy5fcmdiYS5hICE9IDEgJiYgIXRoaXMuX2lzVG91Y2hlZCkge1xuICAgICAgICAgICAgdGhpcy5fY29sb3JNb2RlID0gJ3JnYmEnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNoZWNrVmFsaWQoKTtcbiAgICAgICAgX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIF9oYW5kbGVDaGFuZ2VJbnB1dE1vZGUoKSB7XG4gICAgdGhpcy5faXNUb3VjaGVkID0gdHJ1ZVxuICAgIHN3aXRjaCAodGhpcy5fY29sb3JNb2RlKSB7XG4gICAgICBjYXNlICdyZ2JhJzpcbiAgICAgICAgdGhpcy5fY29sb3JNb2RlID0gJ2hleCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhpcy5fY29sb3JNb2RlID0gJ3JnYmEnO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBfaGFuZGxlUkdCQVZhbHVlQ2hhbmdlZChlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50PG51bWJlcj4pIHtcbiAgICBpZiAoZS52YWx1ZSA9PSBudWxsIHx8IChlLnZhbHVlID09IDAgJiYgIWUub2xkVmFsdWUpKSByZXR1cm47XG4gICAgY29uc3QgeyByLCBnLCBiLCBhIH0gPSB0aGlzLl9yZ2JhO1xuICAgIGNvbnN0IF9jb2xvciA9IGByZ2JhKCR7cn0sJHtnfSwke2J9LCR7YX0pYDtcbiAgICBpZiAoZS5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgdGhpcy5fcGFyZW50Ll9zZXRVc2VySW50ZXJhY3Rpb24oKTtcbiAgICAgIHRoaXMuX2lzVG91Y2hlZCA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMuX3BhcmVudC5fb25JbnRlcm5hbENvbG9yQ2hhbmdlZCQubmV4dCh7XG4gICAgICBjb2xvcjogQVhDb2xvclV0aWwudG9TdHJpbmcoX2NvbG9yLCAncmdiYScpLFxuICAgICAgc2VuZGVyOiB0aGlzLFxuICAgIH0pO1xuICB9XG5cbiAgX2hhbmRsZUhFWEFWYWx1ZUNoYW5nZWQoZTogQVhWYWx1ZUNoYW5nZWRFdmVudDxzdHJpbmc+KSB7XG4gICAgaWYgKCFlLnZhbHVlICYmICFlLm9sZFZhbHVlKSByZXR1cm47XG4gICAgLy9cbiAgICBpZiAoZS5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgdGhpcy5fcGFyZW50Ll9zZXRVc2VySW50ZXJhY3Rpb24oKTtcbiAgICAgIHRoaXMuX2lzVG91Y2hlZCA9IHRydWU7XG4gICAgfVxuICAgIC8vXG4gICAgaWYgKCFlLnZhbHVlICYmIGUub2xkVmFsdWUpIHtcbiAgICAgIHRoaXMuX3BhcmVudC5fb25JbnRlcm5hbENvbG9yQ2hhbmdlZCQubmV4dCh7XG4gICAgICAgIGNvbG9yOiBudWxsLFxuICAgICAgICBzZW5kZXI6IHRoaXNcbiAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuX3BhcmVudC5fb25JbnRlcm5hbENvbG9yQ2hhbmdlZCQubmV4dCh7XG4gICAgICAgIGNvbG9yOiBlLnZhbHVlLFxuICAgICAgICBzZW5kZXI6IHRoaXNcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG5cbiAgcHJpdmF0ZSBjaGVja1ZhbGlkKCkge1xuICAgIHRoaXMuaXNWYWxpZCA9IEFYQ29sb3JVdGlsLmlzVmFsaWQodGhpcy5faGV4KTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwidGhpcy5fY29sb3JNb2RlXCI+XG4gIDxkaXYgY2xhc3M9XCJwYWxldHRlLWlucHV0c1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidoZXgnXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8YXgtdGV4dC1ib3hcbiAgICAgICAgICBjbGFzcz1cImF4LXNtXCJcbiAgICAgICAgICBbdmFsdWVdPVwiX2hleFwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIl9wYXJlbnQuZGlzYWJsZWRcIlxuICAgICAgICAgIFtyZWFkb25seV09XCJfcGFyZW50LnJlYWRvbmx5XCJcbiAgICAgICAgICBbc3RhdGVdPVwiaXNWYWxpZCA/ICdjbGVhcicgOiAnZXJyb3InXCJcbiAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiX2hhbmRsZUhFWEFWYWx1ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgW21hc2stb3B0aW9uc109XCJfaGV4TWFza09wdGlvbnNcIj5cbiAgICAgICAgPC9heC10ZXh0LWJveD5cbiAgICAgICAgPGxhYmVsPkhFWDwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncmdiYSdcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxheC1udW1iZXItYm94XG4gICAgICAgICAgY2xhc3M9XCJheC1zbVwiXG4gICAgICAgICAgW21pblZhbHVlXT1cIjBcIlxuICAgICAgICAgIFttYXhWYWx1ZV09XCIyNTVcIlxuICAgICAgICAgIFsodmFsdWUpXT1cIl9yZ2JhLnJcIlxuICAgICAgICAgIFtzaG93U3BpbkJ1dHRvbnNdPVwiZmFsc2VcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJfcGFyZW50LmRpc2FibGVkXCJcbiAgICAgICAgICBbcmVhZG9ubHldPVwiX3BhcmVudC5yZWFkb25seVwiXG4gICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cIl9oYW5kbGVSR0JBVmFsdWVDaGFuZ2VkKCRldmVudClcIj5cbiAgICAgICAgPC9heC1udW1iZXItYm94PlxuICAgICAgICA8bGFiZWw+UjwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxheC1udW1iZXItYm94XG4gICAgICAgICAgY2xhc3M9XCJheC1zbVwiXG4gICAgICAgICAgW21pblZhbHVlXT1cIjBcIlxuICAgICAgICAgIFttYXhWYWx1ZV09XCIyNTVcIlxuICAgICAgICAgIFsodmFsdWUpXT1cIl9yZ2JhLmdcIlxuICAgICAgICAgIFtzaG93U3BpbkJ1dHRvbnNdPVwiZmFsc2VcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJfcGFyZW50LmRpc2FibGVkXCJcbiAgICAgICAgICBbcmVhZG9ubHldPVwiX3BhcmVudC5yZWFkb25seVwiXG4gICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cIl9oYW5kbGVSR0JBVmFsdWVDaGFuZ2VkKCRldmVudClcIj5cbiAgICAgICAgPC9heC1udW1iZXItYm94PlxuICAgICAgICA8bGFiZWw+RzwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxheC1udW1iZXItYm94XG4gICAgICAgICAgY2xhc3M9XCJheC1zbVwiXG4gICAgICAgICAgW21pblZhbHVlXT1cIjBcIlxuICAgICAgICAgIFttYXhWYWx1ZV09XCIyNTVcIlxuICAgICAgICAgIFsodmFsdWUpXT1cIl9yZ2JhLmJcIlxuICAgICAgICAgIFtzaG93U3BpbkJ1dHRvbnNdPVwiZmFsc2VcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJfcGFyZW50LmRpc2FibGVkXCJcbiAgICAgICAgICBbcmVhZG9ubHldPVwiX3BhcmVudC5yZWFkb25seVwiXG4gICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cIl9oYW5kbGVSR0JBVmFsdWVDaGFuZ2VkKCRldmVudClcIj5cbiAgICAgICAgPC9heC1udW1iZXItYm94PlxuICAgICAgICA8bGFiZWw+QjwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxheC1udW1iZXItYm94XG4gICAgICAgICAgY2xhc3M9XCJheC1zbVwiXG4gICAgICAgICAgW21pblZhbHVlXT1cIjBcIlxuICAgICAgICAgIFttYXhWYWx1ZV09XCIxXCJcbiAgICAgICAgICBbKHZhbHVlKV09XCJfcmdiYS5hXCJcbiAgICAgICAgICBbZGVjaW1hbHNdPVwiMlwiXG4gICAgICAgICAgW3N0ZXBdPVwiMC4xXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiX3BhcmVudC5kaXNhYmxlZFwiXG4gICAgICAgICAgW3JlYWRvbmx5XT1cIl9wYXJlbnQucmVhZG9ubHlcIlxuICAgICAgICAgIFtzaG93U3BpbkJ1dHRvbnNdPVwiZmFsc2VcIlxuICAgICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJfaGFuZGxlUkdCQVZhbHVlQ2hhbmdlZCgkZXZlbnQpXCI+XG4gICAgICAgIDwvYXgtbnVtYmVyLWJveD5cbiAgICAgICAgPGxhYmVsPkE8L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJheC1nZW5lcmFsLWJ1dHRvbiBheC1idXR0b24tcm91bmRlZCBheC1idXR0b24taWNvbiBheC1zbVwiXG4gICAgKGNsaWNrKT1cIl9oYW5kbGVDaGFuZ2VJbnB1dE1vZGUoKVwiXG4gICAgW2Rpc2FibGVkXT1cIl9wYXJlbnQuZGlzYWJsZWRcIj5cbiAgICA8c3BhbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi11bmZvbGQtbW9yZVwiPjwvc3Bhbj5cbiAgPC9idXR0b24+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
112
+ args: [AXColorPaletteParentComponent]
113
+ }] }, { type: i1.AXUnsubscriber }]; } });
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGFsZXR0ZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29sb3ItcGFsZXR0ZS9zcmMvbGliL2NvbG9yLXBhbGV0dGUtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbG9yLXBhbGV0dGUvc3JjL2xpYi9jb2xvci1wYWxldHRlLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakUsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXVCLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pGLE9BQU8sRUFDTCw0QkFBNEIsRUFBRSw2QkFBNkIsR0FDNUQsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7QUFrQi9CLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxlQUFlO0lBc0IvRCxZQUVTLE9BQXNDLEVBQ3JDLGFBQTZCO1FBRXJDLEtBQUssRUFBRSxDQUFDO1FBSEQsWUFBTyxHQUFQLE9BQU8sQ0FBK0I7UUFDckMsa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBeEJ2QyxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBRWYsVUFBSyxHQUFRO1lBQ1gsQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7U0FDTCxDQUFDO1FBRUYsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUVSLGVBQVUsR0FBbUIsS0FBSyxDQUFDO1FBR25DLG9CQUFlLEdBQWtCO1lBQ3pDLElBQUksRUFBRSxnQ0FBZ0M7WUFDdEMsT0FB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Q0FBQztJQUN0RixDQUFDO0lBRVMsdUJBQXVCLENBQUMsQ0FBOEI7UUFDOUQsSUFBSSxDQUFDLENBQUMsaUJBQWlCLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFO1lBQy9ELElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDeEQ7SUFDSCxDQUFDO0lBRU8sVUFBVTtRQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7OEdBNUZVLDRCQUE0QixrQkF1QjdCLDZCQUE2QjtrR0F2QjVCLDRCQUE0QixxR0FSNUI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsNEJBQTRCO2dCQUNyQyxXQUFXLEVBQUUsNEJBQTRCO2FBQzFDO1lBQ0QsY0FBYztTQUNmLGlEQzFCSCxnaEZBZ0ZBOzsyRkRwRGEsNEJBQTRCO2tCQWR4QyxTQUFTOytCQUNFLHdCQUF3QixRQUU1QixFQUFFLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxpQkFDMUIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsNEJBQTRCOzRCQUNyQyxXQUFXLDhCQUE4Qjt5QkFDMUM7d0JBQ0QsY0FBYztxQkFDZjs7MEJBeUJFLE1BQU07MkJBQUMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDb2xvclV0aWwsIEFYVW5zdWJzY3JpYmVyIH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEluamVjdCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhWYWx1ZUNoYW5nZWRFdmVudCwgTVhCYXNlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQge1xuICBBWENvbG9yUGFsZXR0ZUNoaWxkQ29tcG9uZW50LCBBWENvbG9yUGFsZXR0ZVBhcmVudENvbXBvbmVudCxcbn0gZnJvbSAnLi9jb2xvci1wYWxldHRlLmNsYXNzJztcbmltcG9ydCB7IEFYTWFza09wdGlvbnMgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGV4dGJveCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtY29sb3ItcGFsZXR0ZS1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2xvci1wYWxldHRlLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgaG9zdDogeyBjbGFzczogJ2F4LWNvbG9yLXBhbGV0dGUtaW5wdXQnIH0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWENvbG9yUGFsZXR0ZUNoaWxkQ29tcG9uZW50LFxuICAgICAgdXNlRXhpc3Rpbmc6IEFYQ29sb3JQYWxldHRlSW5wdXRDb21wb25lbnQsXG4gICAgfSxcbiAgICBBWFVuc3Vic2NyaWJlclxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWENvbG9yUGFsZXR0ZUlucHV0Q29tcG9uZW50IGV4dGVuZHMgTVhCYXNlQ29tcG9uZW50IHtcbiAgaXNWYWxpZCA9IHRydWU7XG5cbiAgX3JnYmE6IGFueSA9IHtcbiAgICByOiAwLFxuICAgIGc6IDAsXG4gICAgYjogMCxcbiAgICBhOiAwLFxuICB9O1xuXG4gIF9oZXg6IHN0cmluZyA9ICcnO1xuXG4gIHByb3RlY3RlZCBfY29sb3JNb2RlOiBcImhleFwiIHwgXCJyZ2JhXCIgPSBcImhleFwiO1xuXG5cbiAgcHJvdGVjdGVkIF9oZXhNYXNrT3B0aW9uczogQVhNYXNrT3B0aW9ucyA9IHtcbiAgICBtYXNrOiAvXiNbMC05YS1mXXswLDZ9WzAtOWEtZl17MCwyfSQvaSxcbiAgICBwcmVwYXJlOiAoc3RyLCBtLCBhKSA9PiB7XG4gICAgICByZXR1cm4gbS50eXBlZFZhbHVlPy5zdGFydHNXaXRoKCcjJykgfHwgc3RyID09ICcjJyA/IHN0ci50cmltKCkgOiAnIycgKyBzdHIudHJpbSgpO1xuICAgIH0sXG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEFYQ29sb3JQYWxldHRlUGFyZW50Q29tcG9uZW50KVxuICAgIHB1YmxpYyBfcGFyZW50OiBBWENvbG9yUGFsZXR0ZVBhcmVudENvbXBvbmVudCxcbiAgICBwcml2YXRlIF91bnN1YnNjcmliZXI6IEFYVW5zdWJzY3JpYmVyXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgX3BhcmVudC5vblZhbHVlQ2hhbmdlZFxuICAgICAgLnBpcGUoX3Vuc3Vic2NyaWJlci50YWtlVW50aWxEZXN0cm95KVxuICAgICAgLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgICB0aGlzLmFwcGx5UGFyZW50KGUuaXNVc2VySW50ZXJhY3Rpb24pO1xuICAgICAgfSk7XG4gIH1cblxuXG4gIHByaXZhdGUgYXBwbHlQYXJlbnQodTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLl9wYXJlbnQudmFsdWU7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgdGhpcy5faGV4ID0gJyc7XG4gICAgICB0aGlzLl9yZ2JhID0ge1xuICAgICAgICByOiBudWxsLFxuICAgICAgICBnOiBudWxsLFxuICAgICAgICBiOiBudWxsLFxuICAgICAgICBhOiBudWxsLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl9yZ2JhLCBBWENvbG9yVXRpbC50byh2YWx1ZSwgJ3JnYmEnKSk7XG4gICAgICBpZiAodGhpcy5fY29sb3JNb2RlICE9ICdoZXgnIHx8ICF0aGlzLl9oZXgpIHtcbiAgICAgICAgdGhpcy5faGV4ID0gQVhDb2xvclV0aWwudG9TdHJpbmcodmFsdWUsICdoZXgnKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLl9jb2xvck1vZGUgPT0gJ2hleCcpIHtcbiAgICAgICAgdGhpcy5faGV4ID0gdmFsdWU7XG4gICAgICB9XG4gICAgICBpZiAoIXUgJiYgdGhpcy5fcmdiYS5hICE9IDEpIHtcbiAgICAgICAgdGhpcy5fY29sb3JNb2RlID0gJ3JnYmEnO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNoZWNrVmFsaWQoKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5hcHBseVBhcmVudCgpO1xuICB9XG5cbiAgX2hhbmRsZUNoYW5nZUlucHV0TW9kZSgpIHtcbiAgICBzd2l0Y2ggKHRoaXMuX2NvbG9yTW9kZSkge1xuICAgICAgY2FzZSAncmdiYSc6XG4gICAgICAgIHRoaXMuX2NvbG9yTW9kZSA9ICdoZXgnO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuX2NvbG9yTW9kZSA9ICdyZ2JhJztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgX2hhbmRsZVJHQkFWYWx1ZUNoYW5nZWQoZTogQVhWYWx1ZUNoYW5nZWRFdmVudDxudW1iZXI+KSB7XG4gICAgaWYgKGUudmFsdWUgPT0gbnVsbCB8fCAoZS52YWx1ZSA9PSAwICYmICFlLm9sZFZhbHVlKSkgcmV0dXJuO1xuICAgIGNvbnN0IHsgciwgZywgYiwgYSB9ID0gdGhpcy5fcmdiYTtcbiAgICBjb25zdCBfY29sb3IgPSBgcmdiYSgke3J9LCR7Z30sJHtifSwke2F9KWA7XG4gICAgdGhpcy5fcGFyZW50LmNvbW1pdFZhbHVlKEFYQ29sb3JVdGlsLnRvU3RyaW5nKF9jb2xvciwgJ3JnYmEnKSwgZS5pc1VzZXJJbnRlcmFjdGlvbik7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2hhbmRsZUhFWEFWYWx1ZUNoYW5nZWQoZTogQVhWYWx1ZUNoYW5nZWRFdmVudDxzdHJpbmc+KSB7XG4gICAgaWYgKGUuaXNVc2VySW50ZXJhY3Rpb24gJiYgZS52YWx1ZT8udHJpbSgpICE9IHRoaXMuX2hleD8udHJpbSgpKSB7XG4gICAgICB0aGlzLl9wYXJlbnQuY29tbWl0VmFsdWUoZS52YWx1ZSwgZS5pc1VzZXJJbnRlcmFjdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1ZhbGlkKCkge1xuICAgIHRoaXMuaXNWYWxpZCA9IEFYQ29sb3JVdGlsLmlzVmFsaWQodGhpcy5faGV4KTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwidGhpcy5fY29sb3JNb2RlXCI+XG4gIDxkaXYgY2xhc3M9XCJwYWxldHRlLWlucHV0c1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidoZXgnXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8YXgtdGV4dC1ib3hcbiAgICAgICAgICBjbGFzcz1cImF4LXNtXCJcbiAgICAgICAgICBbbmdNb2RlbF09XCJfaGV4XCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiX3BhcmVudC5kaXNhYmxlZFwiXG4gICAgICAgICAgW3JlYWRvbmx5XT1cIl9wYXJlbnQucmVhZG9ubHlcIlxuICAgICAgICAgIFtzdGF0ZV09XCJpc1ZhbGlkID8gJ2NsZWFyJyA6ICdlcnJvcidcIlxuICAgICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJfaGFuZGxlSEVYQVZhbHVlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICBbbWFzay1vcHRpb25zXT1cIl9oZXhNYXNrT3B0aW9uc1wiPlxuICAgICAgICA8L2F4LXRleHQtYm94PlxuICAgICAgICA8bGFiZWw+SEVYPC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidyZ2JhJ1wiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPGF4LW51bWJlci1ib3hcbiAgICAgICAgICBjbGFzcz1cImF4LXNtXCJcbiAgICAgICAgICBbbWluVmFsdWVdPVwiMFwiXG4gICAgICAgICAgW21heFZhbHVlXT1cIjI1NVwiXG4gICAgICAgICAgWyh2YWx1ZSldPVwiX3JnYmEuclwiXG4gICAgICAgICAgW3Nob3dTcGluQnV0dG9uc109XCJmYWxzZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIl9wYXJlbnQuZGlzYWJsZWRcIlxuICAgICAgICAgIFtyZWFkb25seV09XCJfcGFyZW50LnJlYWRvbmx5XCJcbiAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiX2hhbmRsZVJHQkFWYWx1ZUNoYW5nZWQoJGV2ZW50KVwiPlxuICAgICAgICA8L2F4LW51bWJlci1ib3g+XG4gICAgICAgIDxsYWJlbD5SPC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgPGF4LW51bWJlci1ib3hcbiAgICAgICAgICBjbGFzcz1cImF4LXNtXCJcbiAgICAgICAgICBbbWluVmFsdWVdPVwiMFwiXG4gICAgICAgICAgW21heFZhbHVlXT1cIjI1NVwiXG4gICAgICAgICAgWyh2YWx1ZSldPVwiX3JnYmEuZ1wiXG4gICAgICAgICAgW3Nob3dTcGluQnV0dG9uc109XCJmYWxzZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIl9wYXJlbnQuZGlzYWJsZWRcIlxuICAgICAgICAgIFtyZWFkb25seV09XCJfcGFyZW50LnJlYWRvbmx5XCJcbiAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiX2hhbmRsZVJHQkFWYWx1ZUNoYW5nZWQoJGV2ZW50KVwiPlxuICAgICAgICA8L2F4LW51bWJlci1ib3g+XG4gICAgICAgIDxsYWJlbD5HPC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgPGF4LW51bWJlci1ib3hcbiAgICAgICAgICBjbGFzcz1cImF4LXNtXCJcbiAgICAgICAgICBbbWluVmFsdWVdPVwiMFwiXG4gICAgICAgICAgW21heFZhbHVlXT1cIjI1NVwiXG4gICAgICAgICAgWyh2YWx1ZSldPVwiX3JnYmEuYlwiXG4gICAgICAgICAgW3Nob3dTcGluQnV0dG9uc109XCJmYWxzZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIl9wYXJlbnQuZGlzYWJsZWRcIlxuICAgICAgICAgIFtyZWFkb25seV09XCJfcGFyZW50LnJlYWRvbmx5XCJcbiAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiX2hhbmRsZVJHQkFWYWx1ZUNoYW5nZWQoJGV2ZW50KVwiPlxuICAgICAgICA8L2F4LW51bWJlci1ib3g+XG4gICAgICAgIDxsYWJlbD5CPC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgPGF4LW51bWJlci1ib3hcbiAgICAgICAgICBjbGFzcz1cImF4LXNtXCJcbiAgICAgICAgICBbbWluVmFsdWVdPVwiMFwiXG4gICAgICAgICAgW21heFZhbHVlXT1cIjFcIlxuICAgICAgICAgIFsodmFsdWUpXT1cIl9yZ2JhLmFcIlxuICAgICAgICAgIFtkZWNpbWFsc109XCIyXCJcbiAgICAgICAgICBbc3RlcF09XCIwLjFcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJfcGFyZW50LmRpc2FibGVkXCJcbiAgICAgICAgICBbcmVhZG9ubHldPVwiX3BhcmVudC5yZWFkb25seVwiXG4gICAgICAgICAgW3Nob3dTcGluQnV0dG9uc109XCJmYWxzZVwiXG4gICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cIl9oYW5kbGVSR0JBVmFsdWVDaGFuZ2VkKCRldmVudClcIj5cbiAgICAgICAgPC9heC1udW1iZXItYm94PlxuICAgICAgICA8bGFiZWw+QTwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImF4LWdlbmVyYWwtYnV0dG9uIGF4LWJ1dHRvbi1yb3VuZGVkIGF4LWJ1dHRvbi1pY29uIGF4LXNtXCJcbiAgICAoY2xpY2spPVwiX2hhbmRsZUNoYW5nZUlucHV0TW9kZSgpXCJcbiAgICBbZGlzYWJsZWRdPVwiX3BhcmVudC5kaXNhYmxlZFwiPlxuICAgIDxzcGFuIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLXVuZm9sZC1tb3JlXCI+PC9zcGFuPlxuICA8L2J1dHRvbj5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -1,18 +1,18 @@
1
- import { AXColorUtil } from '@acorex/core/utils';
2
- import { ElementRef, Inject, Optional } from '@angular/core';
3
- import { ChangeDetectorRef } from '@angular/core';
4
- import { ChangeDetectionStrategy, Component, ViewEncapsulation, } from '@angular/core';
5
- import { distinctUntilChanged } from 'rxjs/operators';
6
- import { AXColorComponent, AXColorPaletteChildComponent, } from './color-palette.class';
7
- import { AXBaseComponent } from '@acorex/components/mixin';
1
+ import { AXColorUtil, AXUnsubscriber } from '@acorex/core/utils';
2
+ import { ChangeDetectionStrategy, Component, Inject, ViewEncapsulation, } from '@angular/core';
3
+ import { MXBaseComponent } from '@acorex/components/common';
4
+ import { AXColorPaletteChildComponent, AXColorPaletteParentComponent, } from './color-palette.class';
8
5
  import * as i0 from "@angular/core";
9
- import * as i1 from "@acorex/components/range-slider";
10
- import * as i2 from "@angular/cdk/drag-drop";
11
- import * as i3 from "./color-palette.class";
12
- export class AXColorPalettePickerComponent extends AXBaseComponent {
13
- constructor(_elementRef, _cdr, _parent) {
14
- super(_elementRef, _cdr);
6
+ import * as i1 from "@acorex/core/utils";
7
+ import * as i2 from "@angular/forms";
8
+ import * as i3 from "@acorex/components/range-slider";
9
+ import * as i4 from "@angular/cdk/drag-drop";
10
+ import * as i5 from "./color-palette.class";
11
+ export class AXColorPalettePickerComponent extends MXBaseComponent {
12
+ constructor(_parent, _unsubscriber) {
13
+ super();
15
14
  this._parent = _parent;
15
+ this._unsubscriber = _unsubscriber;
16
16
  this._rgba = {
17
17
  r: 0,
18
18
  g: 0,
@@ -30,69 +30,79 @@ export class AXColorPalettePickerComponent extends AXBaseComponent {
30
30
  { color: 'rgb(255, 0, 255)', pos: 0.83 },
31
31
  { color: 'rgb(255, 0, 0)', pos: 1 },
32
32
  ];
33
+ this._gradients = AXColorUtil.gradient(this._gradientColors);
34
+ this._colors = this._gradients.rgb(100);
33
35
  this.dragPosition = { x: 0, y: 0 };
34
- _parent._onInternalColorChanged$
35
- .pipe(distinctUntilChanged())
36
+ _parent.onValueChanged
37
+ .pipe(_unsubscriber.takeUntilDestroy)
36
38
  .subscribe((e) => {
37
- if (!e.color) {
38
- this._rgba = {
39
- r: 0,
40
- g: 0,
41
- b: 0,
42
- a: 0,
43
- };
44
- }
45
- else {
46
- if (!AXColorUtil.equal(e.color, this._rgba)) {
47
- Object.assign(this._rgba, AXColorUtil.to(e.color, 'rgba'));
48
- }
49
- }
50
- this.setHSV();
51
- _cdr.detectChanges();
39
+ this._handleParentColorChanged();
40
+ });
41
+ _parent.onOptionChanged
42
+ .pipe(_unsubscriber.takeUntilDestroy)
43
+ .subscribe((e) => {
44
+ this.cdr.markForCheck();
52
45
  });
53
46
  }
54
47
  setHSV() {
55
48
  const hsv = AXColorUtil.to(this._rgba, 'hsva');
49
+ const sortedH = this._colors.map(c => c.toHsv().h);
50
+ //TODO: find closest
51
+ this._gradient = sortedH.findIndex(c => { return Math.round(c) >= Math.round(hsv.h); });
56
52
  this._bgColor = AXColorUtil.toString({ h: hsv.h, s: 1, v: 1, a: this._rgba.a }, 'rgba');
57
53
  this.setPointerByPercent(hsv.s * 100, hsv.v * 100);
58
54
  }
55
+ _handleParentColorChanged() {
56
+ const color = this._parent.value;
57
+ if (!color) {
58
+ this._rgba = {
59
+ r: 0,
60
+ g: 0,
61
+ b: 0,
62
+ a: 0,
63
+ };
64
+ }
65
+ else {
66
+ if (!AXColorUtil.equal(color, this._rgba)) {
67
+ Object.assign(this._rgba, AXColorUtil.to(color, 'rgba'));
68
+ }
69
+ }
70
+ this.setHSV();
71
+ this.cdr.detectChanges();
72
+ }
59
73
  _handleAlphaChanged(e) {
60
- if (e.value != null && e.value != this._rgba.a) {
74
+ if (e.isUserInteraction && e.value != this._rgba.a) {
61
75
  const { r, g, b } = this._rgba;
62
76
  const _color = `rgba(${r},${g},${b},${e.value})`;
63
- this._parent._setUserInteraction();
64
- this._parent._onInternalColorChanged$.next({
65
- color: AXColorUtil.toString(_color, 'rgba'),
66
- sender: this,
67
- });
77
+ this._parent.commitValue(AXColorUtil.toString(_color, 'rgba'), e.isUserInteraction);
68
78
  }
69
79
  }
70
80
  _handleGradientChanged(e) {
71
- if (e.value != null && e.value != this._gradient) {
72
- const gradient = AXColorUtil.gradient(this._gradientColors);
73
- const colors = gradient.rgb(100);
81
+ if (e.isUserInteraction && e.value != this._gradient) {
74
82
  const { s, v } = AXColorUtil.to(this._rgba, "hsva");
75
- const { h } = colors[e.value].toHsv();
76
- this._parent._setUserInteraction();
77
- this._parent._onInternalColorChanged$.next({
78
- color: AXColorUtil.toString({ h, s, v, a: this._rgba.a }, 'rgba'),
79
- sender: this,
80
- });
83
+ const { h } = this._colors[e.value].toHsv();
84
+ this._parent.commitValue(AXColorUtil.toString({ h, s, v, a: this._rgba.a }, 'rgba'), e.isUserInteraction);
81
85
  }
82
86
  }
83
87
  _handleSurfaceClick(e) {
84
- const surface = this._getHostElement().querySelector(".ax-color-picker-overlay");
85
- const sb = surface.getBoundingClientRect();
86
- const pointer = this._getHostElement().querySelector(".ax-color-picker-pointer");
87
- const pb = pointer.getBoundingClientRect();
88
+ if (this._parent.disabled || this._parent.readonly) {
89
+ e.preventDefault();
90
+ e.stopPropagation();
91
+ return;
92
+ }
93
+ const surface = this.getHostElement().querySelector(".ax-color-picker-overlay");
94
+ const pointer = this.getHostElement().querySelector(".ax-color-picker-pointer");
88
95
  let x = e.offsetX;
89
96
  let y = e.offsetY;
90
97
  this.setColorByXY(x, y);
91
98
  }
92
99
  _handleDrag() {
93
- const surface = this._getHostElement().querySelector(".ax-color-picker-overlay");
100
+ if (this._parent.disabled || this._parent.readonly) {
101
+ return;
102
+ }
103
+ const surface = this.getHostElement().querySelector(".ax-color-picker-overlay");
94
104
  const sb = surface.getBoundingClientRect();
95
- const pointer = this._getHostElement().querySelector(".ax-color-picker-pointer");
105
+ const pointer = this.getHostElement().querySelector(".ax-color-picker-pointer");
96
106
  const pb = pointer.getBoundingClientRect();
97
107
  const w = (pb.width / 2);
98
108
  let x = (pb.left - sb.left) + w;
@@ -107,7 +117,7 @@ export class AXColorPalettePickerComponent extends AXBaseComponent {
107
117
  this.setColorByXY(x, y);
108
118
  }
109
119
  setColorByXY(x, y) {
110
- const surface = this._getHostElement().querySelector(".ax-color-picker-overlay");
120
+ const surface = this.getHostElement().querySelector(".ax-color-picker-overlay");
111
121
  const sb = surface.getBoundingClientRect();
112
122
  //
113
123
  const { h } = AXColorUtil.to(this._bgColor, "hsva");
@@ -116,15 +126,14 @@ export class AXColorPalettePickerComponent extends AXBaseComponent {
116
126
  s: (x / sb.width),
117
127
  v: ((sb.height - y) / sb.height)
118
128
  };
119
- this._parent._onInternalColorChanged$.next({
120
- color: AXColorUtil.toString(hsv, 'rgba'),
121
- sender: this,
122
- });
129
+ this._parent.commitValue(AXColorUtil.toString(hsv, 'rgba'), true);
123
130
  }
124
131
  setPointerByPercent(x, y) {
125
- const surface = this._getHostElement().querySelector(".ax-color-picker-overlay");
132
+ const surface = this.getHostElement().querySelector(".ax-color-picker-overlay");
133
+ if (!surface)
134
+ return;
126
135
  const sb = surface.getBoundingClientRect();
127
- const pointer = this._getHostElement().querySelector(".ax-color-picker-pointer");
136
+ const pointer = this.getHostElement().querySelector(".ax-color-picker-pointer");
128
137
  const pb = pointer.getBoundingClientRect();
129
138
  const w = (pb.width / 2);
130
139
  const width = sb.width; //+ pb.width
@@ -134,26 +143,26 @@ export class AXColorPalettePickerComponent extends AXBaseComponent {
134
143
  y: (height - (((y * height)) / 100)) - w
135
144
  };
136
145
  }
137
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AXColorPalettePickerComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: AXColorComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
138
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: AXColorPalettePickerComponent, selector: "ax-color-palette-picker", host: { classAttribute: "ax-color-palette-picker" }, providers: [
146
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AXColorPalettePickerComponent, deps: [{ token: AXColorPaletteParentComponent }, { token: i1.AXUnsubscriber }], target: i0.ɵɵFactoryTarget.Component }); }
147
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AXColorPalettePickerComponent, selector: "ax-color-palette-picker", host: { classAttribute: "ax-color-palette-picker" }, providers: [
139
148
  {
140
149
  provide: AXColorPaletteChildComponent,
141
150
  useExisting: AXColorPalettePickerComponent,
142
151
  },
143
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-color-picker-overlay-trans\">\n <div class=\"ax-color-picker-overlay\" [style.background-color]=\"_bgColor\">\n <div class=\"ax-color-picker-overlay-g1\"></div>\n <div class=\"ax-color-picker-overlay-g2\" (click)=\"_handleSurfaceClick($event)\"></div>\n <div class=\"ax-color-picker-pointer\" cdkDrag cdkDragBoundary=\".ax-color-picker-overlay\" [cdkDragFreeDragPosition]=\"dragPosition\" (cdkDragEnded)=\"_handleDrag()\"></div>\n </div>\n</div>\n<ax-range-slider class=\"ax-color-picker-gradient\" [minValue]=\"0\" [maxValue]=\"99\" [step]=\"1\" [value]=\"_gradient\" \n (onValueChanged)=\"_handleGradientChanged($event)\">\n</ax-range-slider>\n<ax-range-slider class=\"ax-color-picker-transparent\" [minValue]=\"0\" [maxValue]=\"1\" [step]=\"0.01\" [value]=\"_rgba.a\"\n (onValueChanged)=\"_handleAlphaChanged($event)\">\n</ax-range-slider>", dependencies: [{ kind: "component", type: i1.AXRangeSliderComponent, selector: "ax-range-slider", inputs: ["readonly", "allowNull", "value", "name", "checked", "minValue", "maxValue", "step", "color", "oriantaion"], outputs: ["valueChange", "onValueChanged", "colorChange"] }, { kind: "directive", type: i2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
152
+ AXUnsubscriber
153
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-color-picker-overlay-trans\">\n <div class=\"ax-color-picker-overlay\" [style.background-color]=\"_bgColor\">\n <div class=\"ax-color-picker-overlay-g1\"></div>\n <div class=\"ax-color-picker-overlay-g2\" (click)=\"_handleSurfaceClick($event)\"></div>\n <div class=\"ax-color-picker-pointer\" cdkDrag cdkDragBoundary=\".ax-color-picker-overlay\" [cdkDragFreeDragPosition]=\"dragPosition\" (cdkDragEnded)=\"_handleDrag()\" \n [cdkDragDisabled]=\"_parent.disabled || _parent.readonly\">\n </div>\n </div>\n</div>\n<ax-range-slider class=\"ax-color-picker-gradient\" [minValue]=\"0\" [maxValue]=\"100\" [step]=\"1\" \n [ngModel]=\"_gradient\" \n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n (onValueChanged)=\"_handleGradientChanged($event)\" >\n</ax-range-slider>\n<ax-range-slider class=\"ax-color-picker-transparent\" [minValue]=\"0\" [maxValue]=\"1\" [step]=\"0.01\" \n [ngModel]=\"_rgba.a\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n (onValueChanged)=\"_handleAlphaChanged($event)\">\n</ax-range-slider>", dependencies: [{ kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.AXRangeSliderComponent, selector: "ax-range-slider", inputs: ["readonly", "disabled", "value", "name", "minValue", "maxValue", "step", "color", "oriantaion"], outputs: ["valueChange", "onValueChanged", "readonlyChange", "disabledChange", "colorChange"] }, { kind: "directive", type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
144
154
  }
145
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AXColorPalettePickerComponent, decorators: [{
155
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AXColorPalettePickerComponent, decorators: [{
146
156
  type: Component,
147
157
  args: [{ selector: 'ax-color-palette-picker', host: { class: 'ax-color-palette-picker' }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
148
158
  {
149
159
  provide: AXColorPaletteChildComponent,
150
160
  useExisting: AXColorPalettePickerComponent,
151
161
  },
152
- ], template: "<div class=\"ax-color-picker-overlay-trans\">\n <div class=\"ax-color-picker-overlay\" [style.background-color]=\"_bgColor\">\n <div class=\"ax-color-picker-overlay-g1\"></div>\n <div class=\"ax-color-picker-overlay-g2\" (click)=\"_handleSurfaceClick($event)\"></div>\n <div class=\"ax-color-picker-pointer\" cdkDrag cdkDragBoundary=\".ax-color-picker-overlay\" [cdkDragFreeDragPosition]=\"dragPosition\" (cdkDragEnded)=\"_handleDrag()\"></div>\n </div>\n</div>\n<ax-range-slider class=\"ax-color-picker-gradient\" [minValue]=\"0\" [maxValue]=\"99\" [step]=\"1\" [value]=\"_gradient\" \n (onValueChanged)=\"_handleGradientChanged($event)\">\n</ax-range-slider>\n<ax-range-slider class=\"ax-color-picker-transparent\" [minValue]=\"0\" [maxValue]=\"1\" [step]=\"0.01\" [value]=\"_rgba.a\"\n (onValueChanged)=\"_handleAlphaChanged($event)\">\n</ax-range-slider>" }]
153
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i3.AXColorComponent, decorators: [{
154
- type: Optional
155
- }, {
162
+ AXUnsubscriber
163
+ ], template: "<div class=\"ax-color-picker-overlay-trans\">\n <div class=\"ax-color-picker-overlay\" [style.background-color]=\"_bgColor\">\n <div class=\"ax-color-picker-overlay-g1\"></div>\n <div class=\"ax-color-picker-overlay-g2\" (click)=\"_handleSurfaceClick($event)\"></div>\n <div class=\"ax-color-picker-pointer\" cdkDrag cdkDragBoundary=\".ax-color-picker-overlay\" [cdkDragFreeDragPosition]=\"dragPosition\" (cdkDragEnded)=\"_handleDrag()\" \n [cdkDragDisabled]=\"_parent.disabled || _parent.readonly\">\n </div>\n </div>\n</div>\n<ax-range-slider class=\"ax-color-picker-gradient\" [minValue]=\"0\" [maxValue]=\"100\" [step]=\"1\" \n [ngModel]=\"_gradient\" \n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n (onValueChanged)=\"_handleGradientChanged($event)\" >\n</ax-range-slider>\n<ax-range-slider class=\"ax-color-picker-transparent\" [minValue]=\"0\" [maxValue]=\"1\" [step]=\"0.01\" \n [ngModel]=\"_rgba.a\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n (onValueChanged)=\"_handleAlphaChanged($event)\">\n</ax-range-slider>" }]
164
+ }], ctorParameters: function () { return [{ type: i5.AXColorPaletteParentComponent, decorators: [{
156
165
  type: Inject,
157
- args: [AXColorComponent]
158
- }] }]; } });
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGFsZXR0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbG9yLXBhbGV0dGUvc3JjL2xpYi9jb2xvci1wYWxldHRlLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29sb3ItcGFsZXR0ZS9zcmMvbGliL2NvbG9yLXBhbGV0dGUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLDRCQUE0QixHQUM3QixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7QUFlM0QsTUFBTSxPQUFPLDZCQUE4QixTQUFRLGVBQWU7SUF3QmhFLFlBQ0UsV0FBdUIsRUFDdkIsSUFBdUIsRUFHaEIsT0FBeUI7UUFFaEMsS0FBSyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUZsQixZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQTVCbEMsVUFBSyxHQUFtRDtZQUN0RCxDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUsQ0FBQztT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RSxPQUFPLEVBQUUsNEJBQTRCOzRCQUNyQyxXQUFXLCtCQUErQjt5QkFDM0M7cUJBQ0Y7OzBCQTZCRSxRQUFROzswQkFDUixNQUFNOzJCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29sb3JVdGlsIH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcbmltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFYVmFsdWVDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7XG4gIEFYQ29sb3JDb21wb25lbnQsXG4gIEFYQ29sb3JQYWxldHRlQ2hpbGRDb21wb25lbnQsXG59IGZyb20gJy4vY29sb3ItcGFsZXR0ZS5jbGFzcyc7XG5pbXBvcnQgeyBBWEJhc2VDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbWl4aW4nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1jb2xvci1wYWxldHRlLXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2xvci1wYWxldHRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIGhvc3Q6IHsgY2xhc3M6ICdheC1jb2xvci1wYWxldHRlLXBpY2tlcicgfSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYQ29sb3JQYWxldHRlQ2hpbGRDb21wb25lbnQsXG4gICAgICB1c2VFeGlzdGluZzogQVhDb2xvclBhbGV0dGVQaWNrZXJDb21wb25lbnQsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhDb2xvclBhbGV0dGVQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VDb21wb25lbnQge1xuICBfcmdiYTogeyByOiBudW1iZXI7IGc6IG51bWJlcjsgYjogbnVtYmVyOyBhOiBudW1iZXIgfSA9IHtcbiAgICByOiAwLFxuICAgIGc6IDAsXG4gICAgYjogMCxcbiAgICBhOiAwLFxuICB9O1xuXG4gIHByb3RlY3RlZCBfZ3JhZGllbnQ6IG51bWJlciA9IDA7XG5cbiAgcHJvdGVjdGVkIF9iZ0NvbG9yOiBzdHJpbmcgPSAnI0YwMCc7XG5cbiAgcHJpdmF0ZSBfZ3JhZGllbnRDb2xvcnM6IGFueVtdID0gW1xuICAgIHsgY29sb3I6ICdyZ2IoMjU1LCAwLCAwKScsIHBvczogMCB9LFxuICAgIHsgY29sb3I6ICdyZ2IoMjU1LCAyNTUsIDApJywgcG9zOiAwLjE3IH0sXG4gICAgeyBjb2xvcjogJ3JnYigwLCAyNTUsIDApJywgcG9zOiAwLjMzIH0sXG4gICAgeyBjb2xvcjogJ3JnYigwLCAyNTUsIDI1NSknLCBwb3M6IDAuNSB9LFxuICAgIHsgY29sb3I6ICdyZ2IoMCwgMCwgMjU1KScsIHBvczogMC42NyB9LFxuICAgIHsgY29sb3I6ICdyZ2IoMjU1LCAwLCAyNTUpJywgcG9zOiAwLjgzIH0sXG4gICAgeyBjb2xvcjogJ3JnYigyNTUsIDAsIDApJywgcG9zOiAxIH0sXG4gIF07XG5cbiAgcHJvdGVjdGVkIGRyYWdQb3NpdGlvbiA9IHsgeDogMCwgeTogMCB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChBWENvbG9yQ29tcG9uZW50KVxuICAgIHB1YmxpYyBfcGFyZW50OiBBWENvbG9yQ29tcG9uZW50XG4gICkge1xuICAgIHN1cGVyKF9lbGVtZW50UmVmLCBfY2RyKTtcbiAgICBfcGFyZW50Ll9vbkludGVybmFsQ29sb3JDaGFuZ2VkJFxuICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAgICAgaWYgKCFlLmNvbG9yKSB7XG4gICAgICAgICAgdGhpcy5fcmdiYSA9IHtcbiAgICAgICAgICAgIHI6IDAsXG4gICAgICAgICAgICBnOiAwLFxuICAgICAgICAgICAgYjogMCxcbiAgICAgICAgICAgIGE6IDAsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoIUFYQ29sb3JVdGlsLmVxdWFsKGUuY29sb3IsIHRoaXMuX3JnYmEpKSB7XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuX3JnYmEsIEFYQ29sb3JVdGlsLnRvKGUuY29sb3IsICdyZ2JhJykpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldEhTVigpXG4gICAgICAgIF9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldEhTVigpIHtcbiAgICBjb25zdCBoc3YgPSBBWENvbG9yVXRpbC50byh0aGlzLl9yZ2JhLCAnaHN2YScpIGFzIGFueTtcbiAgICB0aGlzLl9iZ0NvbG9yID0gQVhDb2xvclV0aWwudG9TdHJpbmcoeyBoOiBoc3YuaCwgczogMSwgdjogMSwgYTogdGhpcy5fcmdiYS5hIH0sICdyZ2JhJyk7XG4gICAgdGhpcy5zZXRQb2ludGVyQnlQZXJjZW50KGhzdi5zICogMTAwLCBoc3YudiAqIDEwMCk7XG4gIH1cblxuXG4gIHByb3RlY3RlZCBfaGFuZGxlQWxwaGFDaGFuZ2VkKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQ8bnVtYmVyPikge1xuICAgIGlmIChlLnZhbHVlICE9IG51bGwgJiYgZS52YWx1ZSAhPSB0aGlzLl9yZ2JhLmEpIHtcbiAgICAgIGNvbnN0IHsgciwgZywgYiB9ID0gdGhpcy5fcmdiYTtcbiAgICAgIGNvbnN0IF9jb2xvciA9IGByZ2JhKCR7cn0sJHtnfSwke2J9LCR7ZS52YWx1ZX0pYDtcbiAgICAgIHRoaXMuX3BhcmVudC5fc2V0VXNlckludGVyYWN0aW9uKCk7XG4gICAgICB0aGlzLl9wYXJlbnQuX29uSW50ZXJuYWxDb2xvckNoYW5nZWQkLm5leHQoe1xuICAgICAgICBjb2xvcjogQVhDb2xvclV0aWwudG9TdHJpbmcoX2NvbG9yLCAncmdiYScpLFxuICAgICAgICBzZW5kZXI6IHRoaXMsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgX2hhbmRsZUdyYWRpZW50Q2hhbmdlZChlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50PG51bWJlcj4pIHtcbiAgICBpZiAoZS52YWx1ZSAhPSBudWxsICYmIGUudmFsdWUgIT0gdGhpcy5fZ3JhZGllbnQpIHtcbiAgICAgIGNvbnN0IGdyYWRpZW50ID0gQVhDb2xvclV0aWwuZ3JhZGllbnQodGhpcy5fZ3JhZGllbnRDb2xvcnMpO1xuICAgICAgY29uc3QgY29sb3JzID0gZ3JhZGllbnQucmdiKDEwMCk7XG4gICAgICBjb25zdCB7IHMsIHYgfSA9IEFYQ29sb3JVdGlsLnRvKHRoaXMuX3JnYmEsIFwiaHN2YVwiKSBhcyBhbnk7XG4gICAgICBjb25zdCB7IGggfSA9IGNvbG9yc1tlLnZhbHVlXS50b0hzdigpO1xuICAgICAgdGhpcy5fcGFyZW50Ll9zZXRVc2VySW50ZXJhY3Rpb24oKTtcbiAgICAgIHRoaXMuX3BhcmVudC5fb25JbnRlcm5hbENvbG9yQ2hhbmdlZCQubmV4dCh7XG4gICAgICAgIGNvbG9yOiBBWENvbG9yVXRpbC50b1N0cmluZyh7IGgsIHMsIHYsIGE6IHRoaXMuX3JnYmEuYSB9LCAncmdiYScpLFxuICAgICAgICBzZW5kZXI6IHRoaXMsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgX2hhbmRsZVN1cmZhY2VDbGljayhlOiBNb3VzZUV2ZW50KSB7XG4gICAgY29uc3Qgc3VyZmFjZSA9IHRoaXMuX2dldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4oXCIuYXgtY29sb3ItcGlja2VyLW92ZXJsYXlcIik7XG4gICAgY29uc3Qgc2IgPSBzdXJmYWNlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHBvaW50ZXIgPSB0aGlzLl9nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KFwiLmF4LWNvbG9yLXBpY2tlci1wb2ludGVyXCIpO1xuICAgIGNvbnN0IHBiID0gcG9pbnRlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBsZXQgeCA9IGUub2Zmc2V0WDtcbiAgICBsZXQgeSA9IGUub2Zmc2V0WTtcbiAgICB0aGlzLnNldENvbG9yQnlYWSh4LCB5KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlRHJhZygpIHtcbiAgICBjb25zdCBzdXJmYWNlID0gdGhpcy5fZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PihcIi5heC1jb2xvci1waWNrZXItb3ZlcmxheVwiKTtcbiAgICBjb25zdCBzYiA9IHN1cmZhY2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgcG9pbnRlciA9IHRoaXMuX2dldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4oXCIuYXgtY29sb3ItcGlja2VyLXBvaW50ZXJcIik7XG4gICAgY29uc3QgcGIgPSBwb2ludGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHcgPSAocGIud2lkdGggLyAyKTtcbiAgICBsZXQgeCA9IChwYi5sZWZ0IC0gc2IubGVmdCkgKyB3O1xuICAgIGxldCB5ID0gKHBiLnRvcCAtIHNiLnRvcCkgKyB3O1xuICAgIC8vXG4gICAgeCA9IHggPCAwID8gMCA6IHg7XG4gICAgeCA9IHggPiBzYi53aWR0aCA/IHNiLndpZHRoIDogeDtcbiAgICAvL1xuICAgIHkgPSB5IDwgMCA/IDAgOiB5O1xuICAgIHkgPSB5ID4gc2IuaGVpZ2h0ID8gc2IuaGVpZ2h0IDogeTtcbiAgICAvL1xuICAgIHRoaXMuc2V0Q29sb3JCeVhZKHgsIHkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDb2xvckJ5WFkoeDogbnVtYmVyLCB5OiBudW1iZXIpIHtcbiAgICBjb25zdCBzdXJmYWNlID0gdGhpcy5fZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PihcIi5heC1jb2xvci1waWNrZXItb3ZlcmxheVwiKTtcbiAgICBjb25zdCBzYiA9IHN1cmZhY2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgLy9cbiAgICBjb25zdCB7IGggfSA9IEFYQ29sb3JVdGlsLnRvKHRoaXMuX2JnQ29sb3IsIFwiaHN2YVwiKSBhcyBhbnk7XG4gICAgY29uc3QgaHN2ID0ge1xuICAgICAgaCxcbiAgICAgIHM6ICh4IC8gc2Iud2lkdGgpLFxuICAgICAgdjogKChzYi5oZWlnaHQgLSB5KSAvIHNiLmhlaWdodClcbiAgICB9XG4gICAgdGhpcy5fcGFyZW50Ll9vbkludGVybmFsQ29sb3JDaGFuZ2VkJC5uZXh0KHtcbiAgICAgIGNvbG9yOiBBWENvbG9yVXRpbC50b1N0cmluZyhoc3YsICdyZ2JhJyksXG4gICAgICBzZW5kZXI6IHRoaXMsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldFBvaW50ZXJCeVBlcmNlbnQoeDogbnVtYmVyLCB5OiBudW1iZXIpIHtcbiAgICBjb25zdCBzdXJmYWNlID0gdGhpcy5fZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PihcIi5heC1jb2xvci1waWNrZXItb3ZlcmxheVwiKTtcbiAgICBjb25zdCBzYiA9IHN1cmZhY2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgcG9pbnRlciA9IHRoaXMuX2dldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4oXCIuYXgtY29sb3ItcGlja2VyLXBvaW50ZXJcIik7XG4gICAgY29uc3QgcGIgPSBwb2ludGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHcgPSAocGIud2lkdGggLyAyKTtcbiAgICBjb25zdCB3aWR0aCA9IHNiLndpZHRoOy8vKyBwYi53aWR0aFxuICAgIGNvbnN0IGhlaWdodCA9IHNiLmhlaWdodDsvLyArIHBiLndpZHRoXG4gICAgdGhpcy5kcmFnUG9zaXRpb24gPSB7XG4gICAgICB4OiAoKHggKiB3aWR0aCkgLyAxMDApIC0gdyxcbiAgICAgIHk6IChoZWlnaHQgLSAoKCh5ICogaGVpZ2h0KSkgLyAxMDApKSAtIHdcbiAgICB9O1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXgtY29sb3ItcGlja2VyLW92ZXJsYXktdHJhbnNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtY29sb3ItcGlja2VyLW92ZXJsYXlcIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJfYmdDb2xvclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY29sb3ItcGlja2VyLW92ZXJsYXktZzFcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNvbG9yLXBpY2tlci1vdmVybGF5LWcyXCIgKGNsaWNrKT1cIl9oYW5kbGVTdXJmYWNlQ2xpY2soJGV2ZW50KVwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY29sb3ItcGlja2VyLXBvaW50ZXJcIiBjZGtEcmFnIGNka0RyYWdCb3VuZGFyeT1cIi5heC1jb2xvci1waWNrZXItb3ZlcmxheVwiIFtjZGtEcmFnRnJlZURyYWdQb3NpdGlvbl09XCJkcmFnUG9zaXRpb25cIiAoY2RrRHJhZ0VuZGVkKT1cIl9oYW5kbGVEcmFnKClcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPGF4LXJhbmdlLXNsaWRlciBjbGFzcz1cImF4LWNvbG9yLXBpY2tlci1ncmFkaWVudFwiIFttaW5WYWx1ZV09XCIwXCIgW21heFZhbHVlXT1cIjk5XCIgW3N0ZXBdPVwiMVwiIFt2YWx1ZV09XCJfZ3JhZGllbnRcIiBcbiAgICAob25WYWx1ZUNoYW5nZWQpPVwiX2hhbmRsZUdyYWRpZW50Q2hhbmdlZCgkZXZlbnQpXCI+XG48L2F4LXJhbmdlLXNsaWRlcj5cbjxheC1yYW5nZS1zbGlkZXIgY2xhc3M9XCJheC1jb2xvci1waWNrZXItdHJhbnNwYXJlbnRcIiBbbWluVmFsdWVdPVwiMFwiIFttYXhWYWx1ZV09XCIxXCIgW3N0ZXBdPVwiMC4wMVwiIFt2YWx1ZV09XCJfcmdiYS5hXCJcbiAgICAob25WYWx1ZUNoYW5nZWQpPVwiX2hhbmRsZUFscGhhQ2hhbmdlZCgkZXZlbnQpXCI+XG48L2F4LXJhbmdlLXNsaWRlcj4iXX0=
166
+ args: [AXColorPaletteParentComponent]
167
+ }] }, { type: i1.AXUnsubscriber }]; } });
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGFsZXR0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbG9yLXBhbGV0dGUvc3JjL2xpYi9jb2xvci1wYWxldHRlLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29sb3ItcGFsZXR0ZS9zcmMvbGliL2NvbG9yLXBhbGV0dGUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakUsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXVCLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pGLE9BQU8sRUFDTCw0QkFBNEIsRUFBRSw2QkFBNkIsR0FDNUQsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7OztBQWdCL0IsTUFBTSxPQUFPLDZCQUE4QixTQUFRLGVBQWU7SUE0QmhFLFlBRVMsT0FBc0MsRUFDckMsYUFBNkI7UUFFckMsS0FBSyxFQUFFLENBQUM7UUFIRCxZQUFPLEdBQVAsT0FBTyxDQUErQjtRQUNyQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUE5QnZDLFVBQUssR0FBbUQ7WUFDdEQsQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7U0FDTCxDQUFDO1FBRVEsY0FBUyxHQUFXLENBQUMsQ0FBQztRQUV0QixhQUFRLEdBQVcsTUFBTSxDQUFDO1FBRW5CLG9CQUFlLEdBQVU7WUFDeEMsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtZ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Q0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDO1NBQ3pDLENBQUM7SUFDSixDQUFDOzhHQXZKVSw2QkFBNkIsa0JBNkI5Qiw2QkFBNkI7a0dBN0I1Qiw2QkFBNkIsdUdBUjdCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLDRCQUE0QjtnQkFDckMsV0FBVyxFQUFFLDZCQUE2QjthQUMzQztZQUNELGNBQWM7U0FDZixpREN4QkgsbW5DQW9Ca0I7OzJGRE1MLDZCQUE2QjtrQkFkekMsU0FBUzsrQkFDRSx5QkFBeUIsUUFFN0IsRUFBRSxLQUFLLEVBQUUseUJBQXlCLEVBQUUsaUJBQzNCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLDRCQUE0Qjs0QkFDckMsV0FBVywrQkFBK0I7eUJBQzNDO3dCQUNELGNBQWM7cUJBQ2Y7OzBCQStCRSxNQUFNOzJCQUFDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29sb3JVdGlsLCBBWFVuc3Vic2NyaWJlciB9IGZyb20gJ0BhY29yZXgvY29yZS91dGlscyc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbmplY3QsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYVmFsdWVDaGFuZ2VkRXZlbnQsIE1YQmFzZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHtcbiAgQVhDb2xvclBhbGV0dGVDaGlsZENvbXBvbmVudCwgQVhDb2xvclBhbGV0dGVQYXJlbnRDb21wb25lbnQsXG59IGZyb20gJy4vY29sb3ItcGFsZXR0ZS5jbGFzcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNvbG9yLXBhbGV0dGUtcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbG9yLXBhbGV0dGUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgaG9zdDogeyBjbGFzczogJ2F4LWNvbG9yLXBhbGV0dGUtcGlja2VyJyB9LFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhDb2xvclBhbGV0dGVDaGlsZENvbXBvbmVudCxcbiAgICAgIHVzZUV4aXN0aW5nOiBBWENvbG9yUGFsZXR0ZVBpY2tlckNvbXBvbmVudCxcbiAgICB9LFxuICAgIEFYVW5zdWJzY3JpYmVyXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYQ29sb3JQYWxldHRlUGlja2VyQ29tcG9uZW50IGV4dGVuZHMgTVhCYXNlQ29tcG9uZW50IHtcbiAgX3JnYmE6IHsgcjogbnVtYmVyOyBnOiBudW1iZXI7IGI6IG51bWJlcjsgYTogbnVtYmVyIH0gPSB7XG4gICAgcjogMCxcbiAgICBnOiAwLFxuICAgIGI6IDAsXG4gICAgYTogMCxcbiAgfTtcblxuICBwcm90ZWN0ZWQgX2dyYWRpZW50OiBudW1iZXIgPSAwO1xuXG4gIHByb3RlY3RlZCBfYmdDb2xvcjogc3RyaW5nID0gJyNGMDAnO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2dyYWRpZW50Q29sb3JzOiBhbnlbXSA9IFtcbiAgICB7IGNvbG9yOiAncmdiKDI1NSwgMCwgMCknLCBwb3M6IDAgfSxcbiAgICB7IGNvbG9yOiAncmdiKDI1NSwgMjU1LCAwKScsIHBvczogMC4xNyB9LFxuICAgIHsgY29sb3I6ICdyZ2IoMCwgMjU1LCAwKScsIHBvczogMC4zMyB9LFxuICAgIHsgY29sb3I6ICdyZ2IoMCwgMjU1LCAyNTUpJywgcG9zOiAwLjUgfSxcbiAgICB7IGNvbG9yOiAncmdiKDAsIDAsIDI1NSknLCBwb3M6IDAuNjcgfSxcbiAgICB7IGNvbG9yOiAncmdiKDI1NSwgMCwgMjU1KScsIHBvczogMC44MyB9LFxuICAgIHsgY29sb3I6ICdyZ2IoMjU1LCAwLCAwKScsIHBvczogMSB9LFxuICBdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2dyYWRpZW50cyA9IEFYQ29sb3JVdGlsLmdyYWRpZW50KHRoaXMuX2dyYWRpZW50Q29sb3JzKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY29sb3JzID0gdGhpcy5fZ3JhZGllbnRzLnJnYigxMDApO1xuXG5cbiAgcHJvdGVjdGVkIGRyYWdQb3NpdGlvbiA9IHsgeDogMCwgeTogMCB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoQVhDb2xvclBhbGV0dGVQYXJlbnRDb21wb25lbnQpXG4gICAgcHVibGljIF9wYXJlbnQ6IEFYQ29sb3JQYWxldHRlUGFyZW50Q29tcG9uZW50LFxuICAgIHByaXZhdGUgX3Vuc3Vic2NyaWJlcjogQVhVbnN1YnNjcmliZXJcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICBfcGFyZW50Lm9uVmFsdWVDaGFuZ2VkXG4gICAgICAucGlwZShfdW5zdWJzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3kpXG4gICAgICAuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICAgIHRoaXMuX2hhbmRsZVBhcmVudENvbG9yQ2hhbmdlZCgpO1xuICAgICAgfSk7XG4gICAgX3BhcmVudC5vbk9wdGlvbkNoYW5nZWRcbiAgICAgIC5waXBlKF91bnN1YnNjcmliZXIudGFrZVVudGlsRGVzdHJveSlcbiAgICAgIC5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0SFNWKCkge1xuICAgIGNvbnN0IGhzdiA9IEFYQ29sb3JVdGlsLnRvKHRoaXMuX3JnYmEsICdoc3ZhJykgYXMgYW55O1xuICAgIGNvbnN0IHNvcnRlZEggPSB0aGlzLl9jb2xvcnMubWFwKGMgPT4gYy50b0hzdigpLmgpO1xuICAgIC8vVE9ETzogZmluZCBjbG9zZXN0XG4gICAgdGhpcy5fZ3JhZGllbnQgPSBzb3J0ZWRILmZpbmRJbmRleChjID0+IHsgcmV0dXJuIE1hdGgucm91bmQoYykgPj0gTWF0aC5yb3VuZChoc3YuaCkgfSk7XG4gICAgdGhpcy5fYmdDb2xvciA9IEFYQ29sb3JVdGlsLnRvU3RyaW5nKHsgaDogaHN2LmgsIHM6IDEsIHY6IDEsIGE6IHRoaXMuX3JnYmEuYSB9LCAncmdiYScpO1xuICAgIHRoaXMuc2V0UG9pbnRlckJ5UGVyY2VudChoc3YucyAqIDEwMCwgaHN2LnYgKiAxMDApO1xuICB9XG5cblxuICBwcml2YXRlIF9oYW5kbGVQYXJlbnRDb2xvckNoYW5nZWQoKSB7XG4gICAgY29uc3QgY29sb3IgPSB0aGlzLl9wYXJlbnQudmFsdWU7XG4gICAgaWYgKCFjb2xvcikge1xuICAgICAgdGhpcy5fcmdiYSA9IHtcbiAgICAgICAgcjogMCxcbiAgICAgICAgZzogMCxcbiAgICAgICAgYjogMCxcbiAgICAgICAgYTogMCxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghQVhDb2xvclV0aWwuZXF1YWwoY29sb3IsIHRoaXMuX3JnYmEpKSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fcmdiYSwgQVhDb2xvclV0aWwudG8oY29sb3IsICdyZ2JhJykpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNldEhTVigpXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVBbHBoYUNoYW5nZWQoZTogQVhWYWx1ZUNoYW5nZWRFdmVudDxudW1iZXI+KSB7XG4gICAgaWYgKGUuaXNVc2VySW50ZXJhY3Rpb24gJiYgZS52YWx1ZSAhPSB0aGlzLl9yZ2JhLmEpIHtcbiAgICAgIGNvbnN0IHsgciwgZywgYiB9ID0gdGhpcy5fcmdiYTtcbiAgICAgIGNvbnN0IF9jb2xvciA9IGByZ2JhKCR7cn0sJHtnfSwke2J9LCR7ZS52YWx1ZX0pYDtcbiAgICAgIHRoaXMuX3BhcmVudC5jb21taXRWYWx1ZShBWENvbG9yVXRpbC50b1N0cmluZyhfY29sb3IsICdyZ2JhJyksIGUuaXNVc2VySW50ZXJhY3Rpb24pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlR3JhZGllbnRDaGFuZ2VkKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQ8bnVtYmVyPikge1xuICAgIGlmIChlLmlzVXNlckludGVyYWN0aW9uICYmIGUudmFsdWUgIT0gdGhpcy5fZ3JhZGllbnQpIHtcbiAgICAgIGNvbnN0IHsgcywgdiB9ID0gQVhDb2xvclV0aWwudG8odGhpcy5fcmdiYSwgXCJoc3ZhXCIpIGFzIGFueTtcbiAgICAgIGNvbnN0IHsgaCB9ID0gdGhpcy5fY29sb3JzW2UudmFsdWVdLnRvSHN2KCk7XG4gICAgICB0aGlzLl9wYXJlbnQuY29tbWl0VmFsdWUoQVhDb2xvclV0aWwudG9TdHJpbmcoeyBoLCBzLCB2LCBhOiB0aGlzLl9yZ2JhLmEgfSwgJ3JnYmEnKSwgZS5pc1VzZXJJbnRlcmFjdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVTdXJmYWNlQ2xpY2soZTogTW91c2VFdmVudCkge1xuICAgIGlmICh0aGlzLl9wYXJlbnQuZGlzYWJsZWQgfHwgdGhpcy5fcGFyZW50LnJlYWRvbmx5KSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzdXJmYWNlID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KFwiLmF4LWNvbG9yLXBpY2tlci1vdmVybGF5XCIpO1xuICAgIGNvbnN0IHBvaW50ZXIgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4oXCIuYXgtY29sb3ItcGlja2VyLXBvaW50ZXJcIik7XG4gICAgbGV0IHggPSBlLm9mZnNldFg7XG4gICAgbGV0IHkgPSBlLm9mZnNldFk7XG4gICAgdGhpcy5zZXRDb2xvckJ5WFkoeCwgeSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2hhbmRsZURyYWcoKSB7XG4gICAgaWYgKHRoaXMuX3BhcmVudC5kaXNhYmxlZCB8fCB0aGlzLl9wYXJlbnQucmVhZG9ubHkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgc3VyZmFjZSA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PihcIi5heC1jb2xvci1waWNrZXItb3ZlcmxheVwiKTtcbiAgICBjb25zdCBzYiA9IHN1cmZhY2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgcG9pbnRlciA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PihcIi5heC1jb2xvci1waWNrZXItcG9pbnRlclwiKTtcbiAgICBjb25zdCBwYiA9IHBvaW50ZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgdyA9IChwYi53aWR0aCAvIDIpO1xuICAgIGxldCB4ID0gKHBiLmxlZnQgLSBzYi5sZWZ0KSArIHc7XG4gICAgbGV0IHkgPSAocGIudG9wIC0gc2IudG9wKSArIHc7XG4gICAgLy9cbiAgICB4ID0geCA8IDAgPyAwIDogeDtcbiAgICB4ID0geCA+IHNiLndpZHRoID8gc2Iud2lkdGggOiB4O1xuICAgIC8vXG4gICAgeSA9IHkgPCAwID8gMCA6IHk7XG4gICAgeSA9IHkgPiBzYi5oZWlnaHQgPyBzYi5oZWlnaHQgOiB5O1xuICAgIC8vXG4gICAgdGhpcy5zZXRDb2xvckJ5WFkoeCwgeSk7XG4gIH1cblxuICBwcml2YXRlIHNldENvbG9yQnlYWSh4OiBudW1iZXIsIHk6IG51bWJlcikge1xuICAgIGNvbnN0IHN1cmZhY2UgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4oXCIuYXgtY29sb3ItcGlja2VyLW92ZXJsYXlcIik7XG4gICAgY29uc3Qgc2IgPSBzdXJmYWNlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIC8vXG4gICAgY29uc3QgeyBoIH0gPSBBWENvbG9yVXRpbC50byh0aGlzLl9iZ0NvbG9yLCBcImhzdmFcIikgYXMgYW55O1xuICAgIGNvbnN0IGhzdiA9IHtcbiAgICAgIGgsXG4gICAgICBzOiAoeCAvIHNiLndpZHRoKSxcbiAgICAgIHY6ICgoc2IuaGVpZ2h0IC0geSkgLyBzYi5oZWlnaHQpXG4gICAgfVxuICAgIHRoaXMuX3BhcmVudC5jb21taXRWYWx1ZShBWENvbG9yVXRpbC50b1N0cmluZyhoc3YsICdyZ2JhJyksIHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRQb2ludGVyQnlQZXJjZW50KHg6IG51bWJlciwgeTogbnVtYmVyKSB7XG4gICAgY29uc3Qgc3VyZmFjZSA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PihcIi5heC1jb2xvci1waWNrZXItb3ZlcmxheVwiKTtcbiAgICBpZiAoIXN1cmZhY2UpXG4gICAgICByZXR1cm47XG4gICAgY29uc3Qgc2IgPSBzdXJmYWNlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHBvaW50ZXIgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4oXCIuYXgtY29sb3ItcGlja2VyLXBvaW50ZXJcIik7XG4gICAgY29uc3QgcGIgPSBwb2ludGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHcgPSAocGIud2lkdGggLyAyKTtcbiAgICBjb25zdCB3aWR0aCA9IHNiLndpZHRoOy8vKyBwYi53aWR0aFxuICAgIGNvbnN0IGhlaWdodCA9IHNiLmhlaWdodDsvLyArIHBiLndpZHRoXG4gICAgdGhpcy5kcmFnUG9zaXRpb24gPSB7XG4gICAgICB4OiAoKHggKiB3aWR0aCkgLyAxMDApIC0gdyxcbiAgICAgIHk6IChoZWlnaHQgLSAoKCh5ICogaGVpZ2h0KSkgLyAxMDApKSAtIHdcbiAgICB9O1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXgtY29sb3ItcGlja2VyLW92ZXJsYXktdHJhbnNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtY29sb3ItcGlja2VyLW92ZXJsYXlcIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJfYmdDb2xvclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY29sb3ItcGlja2VyLW92ZXJsYXktZzFcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNvbG9yLXBpY2tlci1vdmVybGF5LWcyXCIgKGNsaWNrKT1cIl9oYW5kbGVTdXJmYWNlQ2xpY2soJGV2ZW50KVwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY29sb3ItcGlja2VyLXBvaW50ZXJcIiBjZGtEcmFnIGNka0RyYWdCb3VuZGFyeT1cIi5heC1jb2xvci1waWNrZXItb3ZlcmxheVwiIFtjZGtEcmFnRnJlZURyYWdQb3NpdGlvbl09XCJkcmFnUG9zaXRpb25cIiAoY2RrRHJhZ0VuZGVkKT1cIl9oYW5kbGVEcmFnKClcIiBcbiAgICAgICAgW2Nka0RyYWdEaXNhYmxlZF09XCJfcGFyZW50LmRpc2FibGVkIHx8IF9wYXJlbnQucmVhZG9ubHlcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxheC1yYW5nZS1zbGlkZXIgY2xhc3M9XCJheC1jb2xvci1waWNrZXItZ3JhZGllbnRcIiBbbWluVmFsdWVdPVwiMFwiIFttYXhWYWx1ZV09XCIxMDBcIiBbc3RlcF09XCIxXCIgXG4gICAgW25nTW9kZWxdPVwiX2dyYWRpZW50XCIgXG4gICAgW2Rpc2FibGVkXT1cIl9wYXJlbnQuZGlzYWJsZWRcIlxuICAgIFtyZWFkb25seV09XCJfcGFyZW50LnJlYWRvbmx5XCJcbiAgICAob25WYWx1ZUNoYW5nZWQpPVwiX2hhbmRsZUdyYWRpZW50Q2hhbmdlZCgkZXZlbnQpXCIgID5cbjwvYXgtcmFuZ2Utc2xpZGVyPlxuPGF4LXJhbmdlLXNsaWRlciBjbGFzcz1cImF4LWNvbG9yLXBpY2tlci10cmFuc3BhcmVudFwiIFttaW5WYWx1ZV09XCIwXCIgW21heFZhbHVlXT1cIjFcIiBbc3RlcF09XCIwLjAxXCIgXG4gICAgW25nTW9kZWxdPVwiX3JnYmEuYVwiXG4gICAgW2Rpc2FibGVkXT1cIl9wYXJlbnQuZGlzYWJsZWRcIlxuICAgIFtyZWFkb25seV09XCJfcGFyZW50LnJlYWRvbmx5XCJcbiAgICAob25WYWx1ZUNoYW5nZWQpPVwiX2hhbmRsZUFscGhhQ2hhbmdlZCgkZXZlbnQpXCI+XG48L2F4LXJhbmdlLXNsaWRlcj4iXX0=