@acorex/components 7.2.7 → 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 (275) hide show
  1. package/alert/lib/alert.component.d.ts +2 -1
  2. package/button/lib/button-group.component.d.ts +6 -6
  3. package/button/lib/button-item.component.d.ts +6 -6
  4. package/calendar/lib/calendar.component.d.ts +1 -0
  5. package/checkbox/lib/checkbox.component.d.ts +4 -3
  6. package/chips/lib/chips.component.d.ts +2 -2
  7. package/color-palette/lib/color-palette-input.component.d.ts +9 -6
  8. package/color-palette/lib/color-palette-picker.component.d.ts +10 -5
  9. package/color-palette/lib/color-palette-preview.component.d.ts +8 -4
  10. package/color-palette/lib/color-palette-swatches.component.d.ts +9 -6
  11. package/color-palette/lib/color-palette.class.d.ts +12 -6
  12. package/color-palette/lib/color-palette.component.d.ts +3 -15
  13. package/color-palette/lib/color-palette.module.d.ts +9 -8
  14. package/color-picker/lib/color-picker.component.d.ts +16 -16
  15. package/common/index.d.ts +1 -0
  16. package/common/lib/classes/components.class.d.ts +2 -1
  17. package/common/lib/components/base-component.class.d.ts +4 -2
  18. package/common/lib/components/input-base-value-component.class.d.ts +26 -0
  19. package/common/lib/components/interactive-component.class.d.ts +7 -0
  20. package/common/lib/components/value-component.class.d.ts +15 -8
  21. package/drawer/lib/drawer.component.d.ts +1 -1
  22. package/esm2022/acorex-components.mjs +1 -1
  23. package/esm2022/action-sheet/lib/action-sheet.component.mjs +3 -3
  24. package/esm2022/action-sheet/lib/action-sheet.module.mjs +4 -4
  25. package/esm2022/action-sheet/lib/action-sheet.service.mjs +3 -3
  26. package/esm2022/alert/lib/alert.component.mjs +12 -11
  27. package/esm2022/alert/lib/alert.module.mjs +4 -4
  28. package/esm2022/avatar/lib/avatar-group.component.mjs +3 -3
  29. package/esm2022/avatar/lib/avatar.component.mjs +3 -3
  30. package/esm2022/avatar/lib/avatar.module.mjs +4 -4
  31. package/esm2022/badge/lib/badge.component.mjs +5 -5
  32. package/esm2022/badge/lib/badge.module.mjs +4 -4
  33. package/esm2022/breadcrumbs/lib/breadcrumbs-item.component.mjs +3 -3
  34. package/esm2022/breadcrumbs/lib/breadcrumbs.component.mjs +3 -3
  35. package/esm2022/breadcrumbs/lib/breadcrumbs.module.mjs +4 -4
  36. package/esm2022/button/lib/button-group.component.mjs +3 -3
  37. package/esm2022/button/lib/button-item.component.mjs +3 -3
  38. package/esm2022/button/lib/button.component.mjs +3 -3
  39. package/esm2022/button/lib/button.module.mjs +4 -4
  40. package/esm2022/calendar/lib/calendar-range.component.mjs +3 -3
  41. package/esm2022/calendar/lib/calendar.class.mjs +3 -3
  42. package/esm2022/calendar/lib/calendar.component.mjs +15 -14
  43. package/esm2022/calendar/lib/calendar.module.mjs +4 -4
  44. package/esm2022/checkbox/lib/checkbox.component.mjs +28 -12
  45. package/esm2022/checkbox/lib/checkbox.module.mjs +4 -4
  46. package/esm2022/chips/lib/chips.component.mjs +7 -6
  47. package/esm2022/chips/lib/chips.module.mjs +4 -4
  48. package/esm2022/collapse/lib/collapse-group.component.mjs +3 -3
  49. package/esm2022/collapse/lib/collapse.component.mjs +3 -3
  50. package/esm2022/collapse/lib/collapse.module.mjs +4 -4
  51. package/esm2022/color-palette/lib/color-palette-input.component.mjs +56 -71
  52. package/esm2022/color-palette/lib/color-palette-picker.component.mjs +63 -58
  53. package/esm2022/color-palette/lib/color-palette-preview.component.mjs +30 -25
  54. package/esm2022/color-palette/lib/color-palette-swatches.component.mjs +32 -246
  55. package/esm2022/color-palette/lib/color-palette.class.mjs +229 -8
  56. package/esm2022/color-palette/lib/color-palette.component.mjs +32 -47
  57. package/esm2022/color-palette/lib/color-palette.module.mjs +9 -6
  58. package/esm2022/color-picker/lib/color-picker.component.mjs +3 -3
  59. package/esm2022/color-picker/lib/color-picker.module.mjs +4 -4
  60. package/esm2022/common/index.mjs +2 -1
  61. package/esm2022/common/lib/classes/components.class.mjs +19 -19
  62. package/esm2022/common/lib/common.module.mjs +4 -4
  63. package/esm2022/common/lib/components/base-component.class.mjs +9 -6
  64. package/esm2022/common/lib/components/input-base-value-component.class.mjs +47 -0
  65. package/esm2022/common/lib/components/interactive-component.class.mjs +31 -4
  66. package/esm2022/common/lib/components/value-component.class.mjs +47 -31
  67. package/esm2022/common/lib/directives/auto-focus.directive.mjs +3 -3
  68. package/esm2022/common/lib/directives/debounce-time.directive.mjs +3 -3
  69. package/esm2022/common/lib/directives/hotkey.directive.mjs +3 -3
  70. package/esm2022/common/lib/directives/infinite-scroll.directive.mjs +3 -3
  71. package/esm2022/common/lib/directives/responsive.directive.mjs +3 -3
  72. package/esm2022/common/lib/services/custom-cdk-overlay.service.mjs +6 -6
  73. package/esm2022/common/lib/services/hotkey.service.mjs +3 -3
  74. package/esm2022/common/lib/services/overlay.service.mjs +3 -3
  75. package/esm2022/context-menu/lib/context-menu.component.mjs +3 -3
  76. package/esm2022/context-menu/lib/context-menu.module.mjs +4 -4
  77. package/esm2022/data-pager/lib/data-pager-base.component.mjs +6 -6
  78. package/esm2022/data-pager/lib/data-pager-info.component.mjs +3 -3
  79. package/esm2022/data-pager/lib/data-pager-input-selector.component.mjs +3 -3
  80. package/esm2022/data-pager/lib/data-pager-next-buttons.components.mjs +3 -3
  81. package/esm2022/data-pager/lib/data-pager-numeric-selector.component.mjs +3 -3
  82. package/esm2022/data-pager/lib/data-pager-pagesize-dropdown.component.mjs +3 -3
  83. package/esm2022/data-pager/lib/data-pager-prev-buttons.component.mjs +3 -3
  84. package/esm2022/data-pager/lib/data-pager.component.mjs +3 -3
  85. package/esm2022/data-pager/lib/data-pager.module.mjs +4 -4
  86. package/esm2022/data-table/lib/data-column-cell-template.directive.mjs +3 -3
  87. package/esm2022/data-table/lib/data-column.directive.mjs +3 -3
  88. package/esm2022/data-table/lib/data-table.component.mjs +3 -3
  89. package/esm2022/data-table/lib/data-table.module.mjs +4 -4
  90. package/esm2022/date-picker/lib/datepicker.component.mjs +3 -3
  91. package/esm2022/date-picker/lib/datepicker.module.mjs +4 -4
  92. package/esm2022/decorators/lib/close-button.component.mjs +3 -3
  93. package/esm2022/decorators/lib/content.component.mjs +3 -3
  94. package/esm2022/decorators/lib/decorators.module.mjs +4 -4
  95. package/esm2022/decorators/lib/divider.component.mjs +3 -3
  96. package/esm2022/decorators/lib/footer.component.mjs +3 -3
  97. package/esm2022/decorators/lib/form-hint.component.mjs +3 -3
  98. package/esm2022/decorators/lib/header.component.mjs +3 -3
  99. package/esm2022/decorators/lib/icon.component.mjs +3 -3
  100. package/esm2022/decorators/lib/overlay.component.mjs +3 -3
  101. package/esm2022/decorators/lib/placeholder.component.mjs +3 -3
  102. package/esm2022/decorators/lib/prefix.component.mjs +3 -3
  103. package/esm2022/decorators/lib/sub-title.component.mjs +3 -3
  104. package/esm2022/decorators/lib/suffix.component.mjs +3 -3
  105. package/esm2022/decorators/lib/text.component.mjs +3 -3
  106. package/esm2022/decorators/lib/title.component.mjs +3 -3
  107. package/esm2022/dialog/lib/dialog.component.mjs +3 -3
  108. package/esm2022/dialog/lib/dialog.module.mjs +4 -4
  109. package/esm2022/dialog/lib/dialog.service.mjs +3 -3
  110. package/esm2022/drawer/lib/drawer-container.component.mjs +3 -3
  111. package/esm2022/drawer/lib/drawer.component.mjs +6 -5
  112. package/esm2022/drawer/lib/drawer.module.mjs +4 -4
  113. package/esm2022/dropdown/lib/dropdown-panel.component.mjs +3 -3
  114. package/esm2022/dropdown/lib/dropdown.module.mjs +4 -4
  115. package/esm2022/form/lib/form-field.component.mjs +3 -3
  116. package/esm2022/form/lib/form.component.mjs +3 -3
  117. package/esm2022/form/lib/form.module.mjs +4 -4
  118. package/esm2022/form/lib/validation-rule.widget.mjs +3 -3
  119. package/esm2022/form/lib/validation-summary.component.mjs +3 -3
  120. package/esm2022/image/lib/image.component.mjs +3 -3
  121. package/esm2022/image/lib/image.module.mjs +4 -4
  122. package/esm2022/index.mjs +1 -1
  123. package/esm2022/label/lib/label.component.mjs +3 -3
  124. package/esm2022/label/lib/label.module.mjs +4 -4
  125. package/esm2022/loading/lib/loading-spinner.component.mjs +3 -3
  126. package/esm2022/loading/lib/loading.component.mjs +3 -3
  127. package/esm2022/loading/lib/loading.directive.mjs +3 -3
  128. package/esm2022/loading/lib/loading.module.mjs +4 -4
  129. package/esm2022/loading/lib/loading.service.mjs +3 -3
  130. package/esm2022/menu/lib/menu.component.mjs +3 -3
  131. package/esm2022/menu/lib/menu.module.mjs +4 -4
  132. package/esm2022/mixin/lib/base-components.class.mjs +3 -3
  133. package/esm2022/mixin/lib/base-menu-mixin.class.mjs +3 -3
  134. package/esm2022/notification/lib/notification.component.mjs +3 -3
  135. package/esm2022/notification/lib/notification.module.mjs +4 -4
  136. package/esm2022/notification/lib/notification.service.mjs +3 -3
  137. package/esm2022/number-box/lib/number-box.component.mjs +3 -3
  138. package/esm2022/number-box/lib/number-box.module.mjs +4 -4
  139. package/esm2022/otp/lib/otp.component.mjs +3 -3
  140. package/esm2022/otp/lib/otp.module.mjs +4 -4
  141. package/esm2022/page/lib/base-page.class.mjs +3 -3
  142. package/esm2022/page/lib/page.component.mjs +3 -3
  143. package/esm2022/page/lib/page.module.mjs +4 -4
  144. package/esm2022/password-box/lib/password-box.component.mjs +3 -3
  145. package/esm2022/password-box/lib/password-box.module.mjs +4 -4
  146. package/esm2022/popover/lib/dropdown-component.class.mjs +3 -3
  147. package/esm2022/popover/lib/popover.component.mjs +3 -3
  148. package/esm2022/popover/lib/popover.module.mjs +4 -4
  149. package/esm2022/popup/lib/popup.component.mjs +3 -3
  150. package/esm2022/popup/lib/popup.module.mjs +4 -4
  151. package/esm2022/popup/lib/popup.service.mjs +3 -3
  152. package/esm2022/progress-bar/lib/progress-bar.component.mjs +3 -3
  153. package/esm2022/progress-bar/lib/progress-bar.module.mjs +4 -4
  154. package/esm2022/radio/lib/radio.component.mjs +3 -3
  155. package/esm2022/radio/lib/radio.module.mjs +4 -4
  156. package/esm2022/range-slider/lib/range-slider.component.mjs +27 -22
  157. package/esm2022/range-slider/lib/range-slider.module.mjs +7 -6
  158. package/esm2022/result/lib/result.component.mjs +3 -3
  159. package/esm2022/result/lib/result.module.mjs +4 -4
  160. package/esm2022/search-box/lib/search-box.component.mjs +3 -3
  161. package/esm2022/search-box/lib/search-box.module.mjs +4 -4
  162. package/esm2022/select-box/lib/select-box.component.mjs +3 -3
  163. package/esm2022/select-box/lib/select-box.module.mjs +4 -4
  164. package/esm2022/selection-list/lib/selection-list.component.mjs +3 -3
  165. package/esm2022/selection-list/lib/selection-list.module.mjs +4 -4
  166. package/esm2022/switch/lib/switch-content.component.mjs +3 -3
  167. package/esm2022/switch/lib/switch.component.mjs +27 -24
  168. package/esm2022/switch/lib/switch.module.mjs +4 -4
  169. package/esm2022/tabs/lib/tab-content.directive.mjs +3 -3
  170. package/esm2022/tabs/lib/tab-item.component.mjs +3 -3
  171. package/esm2022/tabs/lib/tabs.component.mjs +3 -3
  172. package/esm2022/tabs/lib/tabs.module.mjs +4 -4
  173. package/esm2022/tag/lib/tag.component.mjs +3 -3
  174. package/esm2022/tag/lib/tag.module.mjs +4 -4
  175. package/esm2022/textarea/lib/textarea.component.mjs +3 -3
  176. package/esm2022/textarea/lib/textarea.module.mjs +4 -4
  177. package/esm2022/textbox/lib/mask-options.directive.mjs +3 -3
  178. package/esm2022/textbox/lib/textbox.component.mjs +39 -21
  179. package/esm2022/textbox/lib/textbox.module.mjs +4 -4
  180. package/esm2022/time-box/lib/time-box.component.mjs +3 -3
  181. package/esm2022/time-box/lib/time-box.module.mjs +4 -4
  182. package/esm2022/toast/lib/toast.component.mjs +3 -3
  183. package/esm2022/toast/lib/toast.module.mjs +4 -4
  184. package/esm2022/toast/lib/toast.service.mjs +3 -3
  185. package/esm2022/tooltip/lib/tooltip.component.mjs +3 -3
  186. package/esm2022/tooltip/lib/tooltip.directive.mjs +3 -3
  187. package/esm2022/tooltip/lib/tooltip.module.mjs +4 -4
  188. package/esm2022/uploader/lib/uploader.component.mjs +3 -3
  189. package/esm2022/uploader/lib/uploader.module.mjs +4 -4
  190. package/fesm2022/acorex-components-action-sheet.mjs +10 -10
  191. package/fesm2022/acorex-components-alert.mjs +15 -14
  192. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  193. package/fesm2022/acorex-components-avatar.mjs +10 -10
  194. package/fesm2022/acorex-components-badge.mjs +8 -8
  195. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  196. package/fesm2022/acorex-components-breadcrumbs.mjs +10 -10
  197. package/fesm2022/acorex-components-button.mjs +13 -13
  198. package/fesm2022/acorex-components-calendar.mjs +24 -23
  199. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  200. package/fesm2022/acorex-components-checkbox.mjs +32 -17
  201. package/fesm2022/acorex-components-checkbox.mjs.map +1 -1
  202. package/fesm2022/acorex-components-chips.mjs +10 -9
  203. package/fesm2022/acorex-components-chips.mjs.map +1 -1
  204. package/fesm2022/acorex-components-collapse.mjs +10 -10
  205. package/fesm2022/acorex-components-color-palette.mjs +423 -434
  206. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  207. package/fesm2022/acorex-components-color-picker.mjs +7 -7
  208. package/fesm2022/acorex-components-color-picker.mjs.map +1 -1
  209. package/fesm2022/acorex-components-common.mjs +176 -88
  210. package/fesm2022/acorex-components-common.mjs.map +1 -1
  211. package/fesm2022/acorex-components-context-menu.mjs +7 -7
  212. package/fesm2022/acorex-components-data-pager.mjs +31 -31
  213. package/fesm2022/acorex-components-data-table.mjs +13 -13
  214. package/fesm2022/acorex-components-date-picker.mjs +7 -7
  215. package/fesm2022/acorex-components-decorators.mjs +46 -46
  216. package/fesm2022/acorex-components-dialog.mjs +10 -10
  217. package/fesm2022/acorex-components-drawer.mjs +11 -10
  218. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  219. package/fesm2022/acorex-components-dropdown.mjs +7 -7
  220. package/fesm2022/acorex-components-form.mjs +16 -16
  221. package/fesm2022/acorex-components-image.mjs +7 -7
  222. package/fesm2022/acorex-components-label.mjs +7 -7
  223. package/fesm2022/acorex-components-loading.mjs +16 -16
  224. package/fesm2022/acorex-components-menu.mjs +7 -7
  225. package/fesm2022/acorex-components-mixin.mjs +4 -5
  226. package/fesm2022/acorex-components-mixin.mjs.map +1 -1
  227. package/fesm2022/acorex-components-notification.mjs +10 -10
  228. package/fesm2022/acorex-components-number-box.mjs +7 -7
  229. package/fesm2022/acorex-components-otp.mjs +7 -7
  230. package/fesm2022/acorex-components-page.mjs +10 -10
  231. package/fesm2022/acorex-components-password-box.mjs +7 -7
  232. package/fesm2022/acorex-components-popover.mjs +10 -10
  233. package/fesm2022/acorex-components-popup.mjs +10 -10
  234. package/fesm2022/acorex-components-progress-bar.mjs +7 -7
  235. package/fesm2022/acorex-components-radio.mjs +7 -7
  236. package/fesm2022/acorex-components-range-slider.mjs +31 -27
  237. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  238. package/fesm2022/acorex-components-result.mjs +7 -7
  239. package/fesm2022/acorex-components-search-box.mjs +7 -7
  240. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  241. package/fesm2022/acorex-components-select-box.mjs +7 -7
  242. package/fesm2022/acorex-components-selection-list.mjs +7 -7
  243. package/fesm2022/acorex-components-switch.mjs +33 -31
  244. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  245. package/fesm2022/acorex-components-tabs.mjs +13 -13
  246. package/fesm2022/acorex-components-tag.mjs +7 -7
  247. package/fesm2022/acorex-components-textarea.mjs +7 -7
  248. package/fesm2022/acorex-components-textbox.mjs +45 -28
  249. package/fesm2022/acorex-components-textbox.mjs.map +1 -1
  250. package/fesm2022/acorex-components-time-box.mjs +7 -7
  251. package/fesm2022/acorex-components-toast.mjs +10 -10
  252. package/fesm2022/acorex-components-tooltip.mjs +10 -10
  253. package/fesm2022/acorex-components-uploader.mjs +7 -7
  254. package/fesm2022/acorex-components.mjs.map +1 -1
  255. package/mixin/lib/base-components.class.d.ts +2 -2
  256. package/mixin/lib/base-menu-mixin.class.d.ts +5 -5
  257. package/mixin/lib/button-mixin.class.d.ts +2 -2
  258. package/mixin/lib/clickable-mixin.class.d.ts +2 -2
  259. package/mixin/lib/color-look-mixing.class.d.ts +2 -2
  260. package/mixin/lib/datalist-component.class.d.ts +10 -10
  261. package/mixin/lib/dropdown-mixin.class.d.ts +2 -2
  262. package/mixin/lib/interactive-mixin.class.d.ts +4 -4
  263. package/mixin/lib/loading-mixin.class.d.ts +2 -2
  264. package/mixin/lib/mixin.class.d.ts +61 -61
  265. package/mixin/lib/page-component.class.d.ts +2 -2
  266. package/mixin/lib/selection-component.class.d.ts +2 -2
  267. package/mixin/lib/sizable-mixin.class.d.ts +2 -2
  268. package/mixin/lib/textbox-mixin.class.d.ts +2 -2
  269. package/mixin/lib/value-mixin.class.d.ts +8 -8
  270. package/package.json +19 -19
  271. package/range-slider/lib/range-slider.component.d.ts +6 -14
  272. package/range-slider/lib/range-slider.module.d.ts +3 -2
  273. package/switch/lib/switch.component.d.ts +10 -8
  274. package/tabs/lib/tab-item.component.d.ts +2 -2
  275. package/textbox/lib/textbox.component.d.ts +8 -8
@@ -1,17 +1,18 @@
1
- import { AXColorUtil } from '@acorex/core/utils';
2
- import { Inject, Optional } from '@angular/core';
3
- import { ChangeDetectionStrategy, Component, ViewEncapsulation, } from '@angular/core';
4
- import { distinctUntilChanged } from 'rxjs/operators';
1
+ import { AXColorUtil, AXUnsubscriber } from '@acorex/core/utils';
2
+ import { ChangeDetectionStrategy, Component, Inject, ViewEncapsulation, } from '@angular/core';
5
3
  import { MXBaseComponent } from '@acorex/components/common';
6
- import { AXColorComponent, AXColorPaletteChildComponent, } from './color-palette.class';
4
+ import { AXColorPaletteChildComponent, AXColorPaletteParentComponent, } from './color-palette.class';
7
5
  import * as i0 from "@angular/core";
8
- import * as i1 from "@acorex/components/range-slider";
9
- import * as i2 from "@angular/cdk/drag-drop";
10
- import * as i3 from "./color-palette.class";
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
11
  export class AXColorPalettePickerComponent extends MXBaseComponent {
12
- constructor(_parent) {
12
+ constructor(_parent, _unsubscriber) {
13
13
  super();
14
14
  this._parent = _parent;
15
+ this._unsubscriber = _unsubscriber;
15
16
  this._rgba = {
16
17
  r: 0,
17
18
  g: 0,
@@ -29,54 +30,58 @@ export class AXColorPalettePickerComponent extends MXBaseComponent {
29
30
  { color: 'rgb(255, 0, 255)', pos: 0.83 },
30
31
  { color: 'rgb(255, 0, 0)', pos: 1 },
31
32
  ];
33
+ this._gradients = AXColorUtil.gradient(this._gradientColors);
34
+ this._colors = this._gradients.rgb(100);
32
35
  this.dragPosition = { x: 0, y: 0 };
33
- _parent._onInternalColorChanged$
34
- .pipe(distinctUntilChanged())
36
+ _parent.onValueChanged
37
+ .pipe(_unsubscriber.takeUntilDestroy)
35
38
  .subscribe((e) => {
36
- if (!e.color) {
37
- this._rgba = {
38
- r: 0,
39
- g: 0,
40
- b: 0,
41
- a: 0,
42
- };
43
- }
44
- else {
45
- if (!AXColorUtil.equal(e.color, this._rgba)) {
46
- Object.assign(this._rgba, AXColorUtil.to(e.color, 'rgba'));
47
- }
48
- }
49
- this.setHSV();
50
- this.cdr.detectChanges();
39
+ this._handleParentColorChanged();
40
+ });
41
+ _parent.onOptionChanged
42
+ .pipe(_unsubscriber.takeUntilDestroy)
43
+ .subscribe((e) => {
44
+ this.cdr.markForCheck();
51
45
  });
52
46
  }
53
47
  setHSV() {
54
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); });
55
52
  this._bgColor = AXColorUtil.toString({ h: hsv.h, s: 1, v: 1, a: this._rgba.a }, 'rgba');
56
53
  this.setPointerByPercent(hsv.s * 100, hsv.v * 100);
57
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
+ }
58
73
  _handleAlphaChanged(e) {
59
- if (e.value != null && e.value != this._rgba.a) {
74
+ if (e.isUserInteraction && e.value != this._rgba.a) {
60
75
  const { r, g, b } = this._rgba;
61
76
  const _color = `rgba(${r},${g},${b},${e.value})`;
62
- this._parent.setUserInteraction();
63
- this._parent._onInternalColorChanged$.next({
64
- color: AXColorUtil.toString(_color, 'rgba'),
65
- sender: this,
66
- });
77
+ this._parent.commitValue(AXColorUtil.toString(_color, 'rgba'), e.isUserInteraction);
67
78
  }
68
79
  }
69
80
  _handleGradientChanged(e) {
70
- if (e.value != null && e.value != this._gradient) {
71
- const gradient = AXColorUtil.gradient(this._gradientColors);
72
- const colors = gradient.rgb(100);
81
+ if (e.isUserInteraction && e.value != this._gradient) {
73
82
  const { s, v } = AXColorUtil.to(this._rgba, "hsva");
74
- const { h } = colors[e.value].toHsv();
75
- this._parent.setUserInteraction();
76
- this._parent._onInternalColorChanged$.next({
77
- color: AXColorUtil.toString({ h, s, v, a: this._rgba.a }, 'rgba'),
78
- sender: this,
79
- });
83
+ const { h } = this._colors[e.value].toHsv();
84
+ this._parent.commitValue(AXColorUtil.toString({ h, s, v, a: this._rgba.a }, 'rgba'), e.isUserInteraction);
80
85
  }
81
86
  }
82
87
  _handleSurfaceClick(e) {
@@ -86,14 +91,15 @@ export class AXColorPalettePickerComponent extends MXBaseComponent {
86
91
  return;
87
92
  }
88
93
  const surface = this.getHostElement().querySelector(".ax-color-picker-overlay");
89
- const sb = surface.getBoundingClientRect();
90
94
  const pointer = this.getHostElement().querySelector(".ax-color-picker-pointer");
91
- const pb = pointer.getBoundingClientRect();
92
95
  let x = e.offsetX;
93
96
  let y = e.offsetY;
94
97
  this.setColorByXY(x, y);
95
98
  }
96
99
  _handleDrag() {
100
+ if (this._parent.disabled || this._parent.readonly) {
101
+ return;
102
+ }
97
103
  const surface = this.getHostElement().querySelector(".ax-color-picker-overlay");
98
104
  const sb = surface.getBoundingClientRect();
99
105
  const pointer = this.getHostElement().querySelector(".ax-color-picker-pointer");
@@ -120,13 +126,12 @@ export class AXColorPalettePickerComponent extends MXBaseComponent {
120
126
  s: (x / sb.width),
121
127
  v: ((sb.height - y) / sb.height)
122
128
  };
123
- this._parent._onInternalColorChanged$.next({
124
- color: AXColorUtil.toString(hsv, 'rgba'),
125
- sender: this,
126
- });
129
+ this._parent.commitValue(AXColorUtil.toString(hsv, 'rgba'), true);
127
130
  }
128
131
  setPointerByPercent(x, y) {
129
132
  const surface = this.getHostElement().querySelector(".ax-color-picker-overlay");
133
+ if (!surface)
134
+ return;
130
135
  const sb = surface.getBoundingClientRect();
131
136
  const pointer = this.getHostElement().querySelector(".ax-color-picker-pointer");
132
137
  const pb = pointer.getBoundingClientRect();
@@ -138,26 +143,26 @@ export class AXColorPalettePickerComponent extends MXBaseComponent {
138
143
  y: (height - (((y * height)) / 100)) - w
139
144
  };
140
145
  }
141
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AXColorPalettePickerComponent, deps: [{ token: AXColorComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
142
- 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: [
143
148
  {
144
149
  provide: AXColorPaletteChildComponent,
145
150
  useExisting: AXColorPalettePickerComponent,
146
151
  },
147
- ], 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\n </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 [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\">\n</ax-range-slider>\n<ax-range-slider class=\"ax-color-picker-transparent\" [minValue]=\"0\" [maxValue]=\"1\" [step]=\"0.01\" [value]=\"_rgba.a\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n (onValueChanged)=\"_handleAlphaChanged($event)\">\n</ax-range-slider>", dependencies: [{ kind: "component", type: i1.AXRangeSliderComponent, selector: "ax-range-slider", inputs: ["readonly", "disabled", "value", "name", "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 }); }
148
154
  }
149
- 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: [{
150
156
  type: Component,
151
157
  args: [{ selector: 'ax-color-palette-picker', host: { class: 'ax-color-palette-picker' }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
152
158
  {
153
159
  provide: AXColorPaletteChildComponent,
154
160
  useExisting: AXColorPalettePickerComponent,
155
161
  },
156
- ], 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\n </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 [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\">\n</ax-range-slider>\n<ax-range-slider class=\"ax-color-picker-transparent\" [minValue]=\"0\" [maxValue]=\"1\" [step]=\"0.01\" [value]=\"_rgba.a\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n (onValueChanged)=\"_handleAlphaChanged($event)\">\n</ax-range-slider>" }]
157
- }], ctorParameters: function () { return [{ type: i3.AXColorComponent, decorators: [{
158
- type: Optional
159
- }, {
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: [{
160
165
  type: Inject,
161
- args: [AXColorComponent]
162
- }] }]; } });
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGFsZXR0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbG9yLXBhbGV0dGUvc3JjL2xpYi9jb2xvci1wYWxldHRlLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29sb3ItcGFsZXR0ZS9zcmMvbGliL2NvbG9yLXBhbGV0dGUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQWMsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFzQixlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLDRCQUE0QixHQUM3QixNQUFNLHVCQUF1QixDQUFDOzs7OztBQWUvQixNQUFNLE9BQU8sNkJBQThCLFNBQVEsZUFBZTtJQXdCaEUsWUFHUyxPQUF5QjtRQUVoQyxLQUFLLEVBQUUsQ0FBQztRQUZELFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBMUJsQyxVQUFLLEdBQW1EO1lBQ3RELENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1NBQ0wsQ0FBQztRQUVRLGNBQVMsR0FBVyxDQUFDLENBQUM7UUFFdEIsYUFBUSxHQUFXLE1BQU0sQ0FBQztRQUU1QixvQkFBZSxHQUFVO1lBQy9CLEVBQUUsS0FBSyxFQUFF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QzNCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLDRCQUE0Qjs0QkFDckMsV0FBVywrQkFBK0I7eUJBQzNDO3FCQUNGOzswQkEyQkUsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbG9yVXRpbCB9IGZyb20gJ0BhY29yZXgvY29yZS91dGlscyc7XG5pbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3QsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBWFZhbHVlQ2hhbmdlZEV2ZW50LE1YQmFzZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHtcbiAgQVhDb2xvckNvbXBvbmVudCxcbiAgQVhDb2xvclBhbGV0dGVDaGlsZENvbXBvbmVudCxcbn0gZnJvbSAnLi9jb2xvci1wYWxldHRlLmNsYXNzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtY29sb3ItcGFsZXR0ZS1waWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY29sb3ItcGFsZXR0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7IGNsYXNzOiAnYXgtY29sb3ItcGFsZXR0ZS1waWNrZXInIH0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWENvbG9yUGFsZXR0ZUNoaWxkQ29tcG9uZW50LFxuICAgICAgdXNlRXhpc3Rpbmc6IEFYQ29sb3JQYWxldHRlUGlja2VyQ29tcG9uZW50LFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYQ29sb3JQYWxldHRlUGlja2VyQ29tcG9uZW50IGV4dGVuZHMgTVhCYXNlQ29tcG9uZW50IHtcbiAgX3JnYmE6IHsgcjogbnVtYmVyOyBnOiBudW1iZXI7IGI6IG51bWJlcjsgYTogbnVtYmVyIH0gPSB7XG4gICAgcjogMCxcbiAgICBnOiAwLFxuICAgIGI6IDAsXG4gICAgYTogMCxcbiAgfTtcblxuICBwcm90ZWN0ZWQgX2dyYWRpZW50OiBudW1iZXIgPSAwO1xuXG4gIHByb3RlY3RlZCBfYmdDb2xvcjogc3RyaW5nID0gJyNGMDAnO1xuXG4gIHByaXZhdGUgX2dyYWRpZW50Q29sb3JzOiBhbnlbXSA9IFtcbiAgICB7IGNvbG9yOiAncmdiKDI1NSwgMCwgMCknLCBwb3M6IDAgfSxcbiAgICB7IGNvbG9yOiAncmdiKDI1NSwgMjU1LCAwKScsIHBvczogMC4xNyB9LFxuICAgIHsgY29sb3I6ICdyZ2IoMCwgMjU1LCAwKScsIHBvczogMC4zMyB9LFxuICAgIHsgY29sb3I6ICdyZ2IoMCwgMjU1LCAyNTUpJywgcG9zOiAwLjUgfSxcbiAgICB7IGNvbG9yOiAncmdiKDAsIDAsIDI1NSknLCBwb3M6IDAuNjcgfSxcbiAgICB7IGNvbG9yOiAncmdiKDI1NSwgMCwgMjU1KScsIHBvczogMC44MyB9LFxuICAgIHsgY29sb3I6ICdyZ2IoMjU1LCAwLCAwKScsIHBvczogMSB9LFxuICBdO1xuXG4gIHByb3RlY3RlZCBkcmFnUG9zaXRpb24gPSB7IHg6IDAsIHk6IDAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoQVhDb2xvckNvbXBvbmVudClcbiAgICBwdWJsaWMgX3BhcmVudDogQVhDb2xvckNvbXBvbmVudFxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIF9wYXJlbnQuX29uSW50ZXJuYWxDb2xvckNoYW5nZWQkXG4gICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxuICAgICAgLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgICBpZiAoIWUuY29sb3IpIHtcbiAgICAgICAgICB0aGlzLl9yZ2JhID0ge1xuICAgICAgICAgICAgcjogMCxcbiAgICAgICAgICAgIGc6IDAsXG4gICAgICAgICAgICBiOiAwLFxuICAgICAgICAgICAgYTogMCxcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICghQVhDb2xvclV0aWwuZXF1YWwoZS5jb2xvciwgdGhpcy5fcmdiYSkpIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fcmdiYSwgQVhDb2xvclV0aWwudG8oZS5jb2xvciwgJ3JnYmEnKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0SFNWKClcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldEhTVigpIHtcbiAgICBjb25zdCBoc3YgPSBBWENvbG9yVXRpbC50byh0aGlzLl9yZ2JhLCAnaHN2YScpIGFzIGFueTtcbiAgICB0aGlzLl9iZ0NvbG9yID0gQVhDb2xvclV0aWwudG9TdHJpbmcoeyBoOiBoc3YuaCwgczogMSwgdjogMSwgYTogdGhpcy5fcmdiYS5hIH0sICdyZ2JhJyk7XG4gICAgdGhpcy5zZXRQb2ludGVyQnlQZXJjZW50KGhzdi5zICogMTAwLCBoc3YudiAqIDEwMCk7XG4gIH1cblxuXG4gIHByb3RlY3RlZCBfaGFuZGxlQWxwaGFDaGFuZ2VkKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQ8bnVtYmVyPikge1xuICAgIGlmIChlLnZhbHVlICE9IG51bGwgJiYgZS52YWx1ZSAhPSB0aGlzLl9yZ2JhLmEpIHtcbiAgICAgIGNvbnN0IHsgciwgZywgYiB9ID0gdGhpcy5fcmdiYTtcbiAgICAgIGNvbnN0IF9jb2xvciA9IGByZ2JhKCR7cn0sJHtnfSwke2J9LCR7ZS52YWx1ZX0pYDtcbiAgICAgIHRoaXMuX3BhcmVudC5zZXRVc2VySW50ZXJhY3Rpb24oKTtcbiAgICAgIHRoaXMuX3BhcmVudC5fb25JbnRlcm5hbENvbG9yQ2hhbmdlZCQubmV4dCh7XG4gICAgICAgIGNvbG9yOiBBWENvbG9yVXRpbC50b1N0cmluZyhfY29sb3IsICdyZ2JhJyksXG4gICAgICAgIHNlbmRlcjogdGhpcyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlR3JhZGllbnRDaGFuZ2VkKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQ8bnVtYmVyPikge1xuICAgIGlmIChlLnZhbHVlICE9IG51bGwgJiYgZS52YWx1ZSAhPSB0aGlzLl9ncmFkaWVudCkge1xuICAgICAgY29uc3QgZ3JhZGllbnQgPSBBWENvbG9yVXRpbC5ncmFkaWVudCh0aGlzLl9ncmFkaWVudENvbG9ycyk7XG4gICAgICBjb25zdCBjb2xvcnMgPSBncmFkaWVudC5yZ2IoMTAwKTtcbiAgICAgIGNvbnN0IHsgcywgdiB9ID0gQVhDb2xvclV0aWwudG8odGhpcy5fcmdiYSwgXCJoc3ZhXCIpIGFzIGFueTtcbiAgICAgIGNvbnN0IHsgaCB9ID0gY29sb3JzW2UudmFsdWVdLnRvSHN2KCk7XG4gICAgICB0aGlzLl9wYXJlbnQuc2V0VXNlckludGVyYWN0aW9uKCk7XG4gICAgICB0aGlzLl9wYXJlbnQuX29uSW50ZXJuYWxDb2xvckNoYW5nZWQkLm5leHQoe1xuICAgICAgICBjb2xvcjogQVhDb2xvclV0aWwudG9TdHJpbmcoeyBoLCBzLCB2LCBhOiB0aGlzLl9yZ2JhLmEgfSwgJ3JnYmEnKSxcbiAgICAgICAgc2VuZGVyOiB0aGlzLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVTdXJmYWNlQ2xpY2soZTogTW91c2VFdmVudCkge1xuICAgIGlmKHRoaXMuX3BhcmVudC5kaXNhYmxlZCB8fCB0aGlzLl9wYXJlbnQucmVhZG9ubHkpXG4gICAge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgc3VyZmFjZSA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PihcIi5heC1jb2xvci1waWNrZXItb3ZlcmxheVwiKTtcbiAgICBjb25zdCBzYiA9IHN1cmZhY2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgcG9pbnRlciA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PihcIi5heC1jb2xvci1waWNrZXItcG9pbnRlclwiKTtcbiAgICBjb25zdCBwYiA9IHBvaW50ZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgbGV0IHggPSBlLm9mZnNldFg7XG4gICAgbGV0IHkgPSBlLm9mZnNldFk7XG4gICAgdGhpcy5zZXRDb2xvckJ5WFkoeCwgeSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2hhbmRsZURyYWcoKSB7XG4gICAgY29uc3Qgc3VyZmFjZSA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PihcIi5heC1jb2xvci1waWNrZXItb3ZlcmxheVwiKTtcbiAgICBjb25zdCBzYiA9IHN1cmZhY2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgcG9pbnRlciA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PihcIi5heC1jb2xvci1waWNrZXItcG9pbnRlclwiKTtcbiAgICBjb25zdCBwYiA9IHBvaW50ZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgdyA9IChwYi53aWR0aCAvIDIpO1xuICAgIGxldCB4ID0gKHBiLmxlZnQgLSBzYi5sZWZ0KSArIHc7XG4gICAgbGV0IHkgPSAocGIudG9wIC0gc2IudG9wKSArIHc7XG4gICAgLy9cbiAgICB4ID0geCA8IDAgPyAwIDogeDtcbiAgICB4ID0geCA+IHNiLndpZHRoID8gc2Iud2lkdGggOiB4O1xuICAgIC8vXG4gICAgeSA9IHkgPCAwID8gMCA6IHk7XG4gICAgeSA9IHkgPiBzYi5oZWlnaHQgPyBzYi5oZWlnaHQgOiB5O1xuICAgIC8vXG4gICAgdGhpcy5zZXRDb2xvckJ5WFkoeCwgeSk7XG4gIH1cblxuICBwcml2YXRlIHNldENvbG9yQnlYWSh4OiBudW1iZXIsIHk6IG51bWJlcikge1xuICAgIGNvbnN0IHN1cmZhY2UgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4oXCIuYXgtY29sb3ItcGlja2VyLW92ZXJsYXlcIik7XG4gICAgY29uc3Qgc2IgPSBzdXJmYWNlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIC8vXG4gICAgY29uc3QgeyBoIH0gPSBBWENvbG9yVXRpbC50byh0aGlzLl9iZ0NvbG9yLCBcImhzdmFcIikgYXMgYW55O1xuICAgIGNvbnN0IGhzdiA9IHtcbiAgICAgIGgsXG4gICAgICBzOiAoeCAvIHNiLndpZHRoKSxcbiAgICAgIHY6ICgoc2IuaGVpZ2h0IC0geSkgLyBzYi5oZWlnaHQpXG4gICAgfVxuICAgIHRoaXMuX3BhcmVudC5fb25JbnRlcm5hbENvbG9yQ2hhbmdlZCQubmV4dCh7XG4gICAgICBjb2xvcjogQVhDb2xvclV0aWwudG9TdHJpbmcoaHN2LCAncmdiYScpLFxuICAgICAgc2VuZGVyOiB0aGlzLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRQb2ludGVyQnlQZXJjZW50KHg6IG51bWJlciwgeTogbnVtYmVyKSB7XG4gICAgY29uc3Qgc3VyZmFjZSA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PihcIi5heC1jb2xvci1waWNrZXItb3ZlcmxheVwiKTtcbiAgICBjb25zdCBzYiA9IHN1cmZhY2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgcG9pbnRlciA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PihcIi5heC1jb2xvci1waWNrZXItcG9pbnRlclwiKTtcbiAgICBjb25zdCBwYiA9IHBvaW50ZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgdyA9IChwYi53aWR0aCAvIDIpO1xuICAgIGNvbnN0IHdpZHRoID0gc2Iud2lkdGg7Ly8rIHBiLndpZHRoXG4gICAgY29uc3QgaGVpZ2h0ID0gc2IuaGVpZ2h0Oy8vICsgcGIud2lkdGhcbiAgICB0aGlzLmRyYWdQb3NpdGlvbiA9IHtcbiAgICAgIHg6ICgoeCAqIHdpZHRoKSAvIDEwMCkgLSB3LFxuICAgICAgeTogKGhlaWdodCAtICgoKHkgKiBoZWlnaHQpKSAvIDEwMCkpIC0gd1xuICAgIH07XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1jb2xvci1waWNrZXItb3ZlcmxheS10cmFuc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJheC1jb2xvci1waWNrZXItb3ZlcmxheVwiIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cIl9iZ0NvbG9yXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1jb2xvci1waWNrZXItb3ZlcmxheS1nMVwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY29sb3ItcGlja2VyLW92ZXJsYXktZzJcIiAoY2xpY2spPVwiX2hhbmRsZVN1cmZhY2VDbGljaygkZXZlbnQpXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1jb2xvci1waWNrZXItcG9pbnRlclwiIGNka0RyYWcgY2RrRHJhZ0JvdW5kYXJ5PVwiLmF4LWNvbG9yLXBpY2tlci1vdmVybGF5XCIgW2Nka0RyYWdGcmVlRHJhZ1Bvc2l0aW9uXT1cImRyYWdQb3NpdGlvblwiIChjZGtEcmFnRW5kZWQpPVwiX2hhbmRsZURyYWcoKVwiIFxuICAgICAgICBbY2RrRHJhZ0Rpc2FibGVkXT1cIl9wYXJlbnQuZGlzYWJsZWQgfHwgX3BhcmVudC5yZWFkb25seVwiPlxuXG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG48YXgtcmFuZ2Utc2xpZGVyIGNsYXNzPVwiYXgtY29sb3ItcGlja2VyLWdyYWRpZW50XCIgW21pblZhbHVlXT1cIjBcIiBbbWF4VmFsdWVdPVwiOTlcIiBbc3RlcF09XCIxXCIgW3ZhbHVlXT1cIl9ncmFkaWVudFwiIFxuICAgIChvblZhbHVlQ2hhbmdlZCk9XCJfaGFuZGxlR3JhZGllbnRDaGFuZ2VkKCRldmVudClcIiAgXG4gICAgW2Rpc2FibGVkXT1cIl9wYXJlbnQuZGlzYWJsZWRcIlxuICAgIFtyZWFkb25seV09XCJfcGFyZW50LnJlYWRvbmx5XCI+XG48L2F4LXJhbmdlLXNsaWRlcj5cbjxheC1yYW5nZS1zbGlkZXIgY2xhc3M9XCJheC1jb2xvci1waWNrZXItdHJhbnNwYXJlbnRcIiBbbWluVmFsdWVdPVwiMFwiIFttYXhWYWx1ZV09XCIxXCIgW3N0ZXBdPVwiMC4wMVwiIFt2YWx1ZV09XCJfcmdiYS5hXCJcbiAgICBbZGlzYWJsZWRdPVwiX3BhcmVudC5kaXNhYmxlZFwiXG4gICAgW3JlYWRvbmx5XT1cIl9wYXJlbnQucmVhZG9ubHlcIlxuICAgIChvblZhbHVlQ2hhbmdlZCk9XCJfaGFuZGxlQWxwaGFDaGFuZ2VkKCRldmVudClcIj5cbjwvYXgtcmFuZ2Utc2xpZGVyPiJdfQ==
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=
@@ -1,40 +1,46 @@
1
1
  import { MXBaseComponent } from '@acorex/components/common';
2
- import { AXColorUtil } from '@acorex/core/utils';
3
- import { ChangeDetectionStrategy, Component, Inject, NgZone, Optional, ViewEncapsulation, } from '@angular/core';
4
- import { distinctUntilChanged } from 'rxjs/operators';
5
- import { AXColorComponent, AXColorPaletteChildComponent, } from './color-palette.class';
2
+ import { AXColorUtil, AXUnsubscriber } from '@acorex/core/utils';
3
+ import { ChangeDetectionStrategy, Component, Inject, NgZone, ViewEncapsulation, } from '@angular/core';
4
+ import { AXColorPaletteChildComponent, AXColorPaletteParentComponent, } from './color-palette.class';
6
5
  import * as i0 from "@angular/core";
7
- import * as i1 from "./color-palette.class";
6
+ import * as i1 from "@acorex/core/utils";
7
+ import * as i2 from "./color-palette.class";
8
8
  export class AXColorPalettePreviewComponent extends MXBaseComponent {
9
- constructor(_parent, _zone) {
9
+ constructor(_parent, _zone, _unsubscriber) {
10
10
  super();
11
11
  this._parent = _parent;
12
12
  this._zone = _zone;
13
- _parent._onInternalColorChanged$
14
- .pipe(distinctUntilChanged())
13
+ this._unsubscriber = _unsubscriber;
14
+ _parent.onValueChanged
15
+ .pipe(_unsubscriber.takeUntilDestroy)
15
16
  .subscribe((e) => {
16
- _zone.runOutsideAngular(() => {
17
- const inner = this.getHostElement().firstElementChild;
18
- inner.style.backgroundColor = e.color;
19
- inner.innerText = AXColorUtil.toString(e.color);
20
- const color = AXColorUtil.toString(e.color, 'hex');
21
- const ratio = AXColorUtil.contrastToWhite(color);
22
- this.getHostElement().style.color = !(ratio > 2.0) ? '#000' : '#fff';
23
- });
17
+ _zone.runOutsideAngular(this.applyParent.bind(this));
24
18
  });
25
19
  }
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AXColorPalettePreviewComponent, deps: [{ token: AXColorComponent, optional: true }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
27
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: AXColorPalettePreviewComponent, selector: "ax-color-palette-preview", host: { classAttribute: "ax-color-palette-preview" }, providers: [
20
+ ngAfterViewInit() {
21
+ this.applyParent();
22
+ }
23
+ applyParent() {
24
+ const inner = this.getHostElement().firstElementChild;
25
+ inner.style.backgroundColor = this._parent.value;
26
+ inner.innerText = AXColorUtil.toString(this._parent.value);
27
+ const color = AXColorUtil.toString(this._parent.value, 'hex');
28
+ const ratio = AXColorUtil.contrastToWhite(color);
29
+ this.getHostElement().style.color = !(ratio > 2.0) ? '#000' : '#fff';
30
+ }
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AXColorPalettePreviewComponent, deps: [{ token: AXColorPaletteParentComponent }, { token: i0.NgZone }, { token: i1.AXUnsubscriber }], target: i0.ɵɵFactoryTarget.Component }); }
32
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AXColorPalettePreviewComponent, selector: "ax-color-palette-preview", host: { classAttribute: "ax-color-palette-preview" }, providers: [
28
33
  {
29
34
  provide: AXColorPaletteChildComponent,
30
35
  useExisting: AXColorPalettePreviewComponent,
31
36
  },
37
+ AXUnsubscriber
32
38
  ], usesInheritance: true, ngImport: i0, template: `<div
33
39
  class="palette-preview-overlay"
34
40
  [class.ax-state-disabled]="_parent.disabled"
35
41
  ></div>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
36
42
  }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AXColorPalettePreviewComponent, decorators: [{
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AXColorPalettePreviewComponent, decorators: [{
38
44
  type: Component,
39
45
  args: [{
40
46
  selector: 'ax-color-palette-preview',
@@ -50,12 +56,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
50
56
  provide: AXColorPaletteChildComponent,
51
57
  useExisting: AXColorPalettePreviewComponent,
52
58
  },
59
+ AXUnsubscriber
53
60
  ],
54
61
  }]
55
- }], ctorParameters: function () { return [{ type: i1.AXColorComponent, decorators: [{
56
- type: Optional
57
- }, {
62
+ }], ctorParameters: function () { return [{ type: i2.AXColorPaletteParentComponent, decorators: [{
58
63
  type: Inject,
59
- args: [AXColorComponent]
60
- }] }, { type: i0.NgZone }]; } });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGFsZXR0ZS1wcmV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb2xvci1wYWxldHRlL3NyYy9saWIvY29sb3ItcGFsZXR0ZS1wcmV2aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULE1BQU0sRUFDTixNQUFNLEVBQ04sUUFBUSxFQUNSLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLDRCQUE0QixHQUM3QixNQUFNLHVCQUF1QixDQUFDOzs7QUFrQi9CLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSxlQUFlO0lBQ2pFLFlBR1MsT0FBeUIsRUFDeEIsS0FBYTtRQUVyQixLQUFLLEVBQUUsQ0FBQztRQUhELFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBQ3hCLFVBQUssR0FBTCxLQUFLLENBQVE7UUFHckIsT0FBTyxDQUFDLHdCQUF3QjthQUM3QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQzthQUM1QixTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNmLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7Z0JBQzNCLE1BQU0sS0FBSyxHQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxpQkFBb0MsQ0FBQztnQkFDeEUsS0FBSyxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztnQkFDdEMsS0FBSyxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDaEQsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUNuRCxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNqRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUN2RSxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0FwQlUsOEJBQThCLGtCQUcvQixnQkFBZ0I7a0dBSGYsOEJBQThCLHlHQVA5QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSw0QkFBNEI7Z0JBQ3JDLFdBQVcsRUFBRSw4QkFBOEI7YUFDNUM7U0FDRixpREFaUzs7O1VBR0Y7OzJGQVdHLDhCQUE4QjtrQkFoQjFDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsUUFBUSxFQUFFOzs7VUFHRjtvQkFDUixJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsMEJBQTBCLEVBQUU7b0JBQzNDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSw0QkFBNEI7NEJBQ3JDLFdBQVcsZ0NBQWdDO3lCQUM1QztxQkFDRjtpQkFDRjs7MEJBR0ksUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNWEJhc2VDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IEFYQ29sb3JVdGlsIH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbmplY3QsXG4gIE5nWm9uZSxcbiAgT3B0aW9uYWwsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgQVhDb2xvckNvbXBvbmVudCxcbiAgQVhDb2xvclBhbGV0dGVDaGlsZENvbXBvbmVudCxcbn0gZnJvbSAnLi9jb2xvci1wYWxldHRlLmNsYXNzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtY29sb3ItcGFsZXR0ZS1wcmV2aWV3JyxcbiAgdGVtcGxhdGU6IGA8ZGl2XG4gICAgY2xhc3M9XCJwYWxldHRlLXByZXZpZXctb3ZlcmxheVwiXG4gICAgW2NsYXNzLmF4LXN0YXRlLWRpc2FibGVkXT1cIl9wYXJlbnQuZGlzYWJsZWRcIlxuICA+PC9kaXY+YCxcbiAgaG9zdDogeyBjbGFzczogJ2F4LWNvbG9yLXBhbGV0dGUtcHJldmlldycgfSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYQ29sb3JQYWxldHRlQ2hpbGRDb21wb25lbnQsXG4gICAgICB1c2VFeGlzdGluZzogQVhDb2xvclBhbGV0dGVQcmV2aWV3Q29tcG9uZW50LFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYQ29sb3JQYWxldHRlUHJldmlld0NvbXBvbmVudCBleHRlbmRzIE1YQmFzZUNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChBWENvbG9yQ29tcG9uZW50KVxuICAgIHB1YmxpYyBfcGFyZW50OiBBWENvbG9yQ29tcG9uZW50LFxuICAgIHByaXZhdGUgX3pvbmU6IE5nWm9uZVxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIF9wYXJlbnQuX29uSW50ZXJuYWxDb2xvckNoYW5nZWQkXG4gICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxuICAgICAgLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgICBfem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgY29uc3QgaW5uZXI9KHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5maXJzdEVsZW1lbnRDaGlsZCBhcyBIVE1MRGl2RWxlbWVudCk7XG4gICAgICAgICAgaW5uZXIuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gZS5jb2xvcjtcbiAgICAgICAgICBpbm5lci5pbm5lclRleHQgPSBBWENvbG9yVXRpbC50b1N0cmluZyhlLmNvbG9yKTtcbiAgICAgICAgICBjb25zdCBjb2xvciA9IEFYQ29sb3JVdGlsLnRvU3RyaW5nKGUuY29sb3IsICdoZXgnKTtcbiAgICAgICAgICBjb25zdCByYXRpbyA9IEFYQ29sb3JVdGlsLmNvbnRyYXN0VG9XaGl0ZShjb2xvcik7XG4gICAgICAgICAgdGhpcy5nZXRIb3N0RWxlbWVudCgpLnN0eWxlLmNvbG9yID0gIShyYXRpbyA+IDIuMCkgPyAnIzAwMCcgOiAnI2ZmZic7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cbn1cbiJdfQ==
64
+ args: [AXColorPaletteParentComponent]
65
+ }] }, { type: i0.NgZone }, { type: i1.AXUnsubscriber }]; } });
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGFsZXR0ZS1wcmV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb2xvci1wYWxldHRlL3NyYy9saWIvY29sb3ItcGFsZXR0ZS1wcmV2aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04sTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsNEJBQTRCLEVBQUUsNkJBQTZCLEdBQzVELE1BQU0sdUJBQXVCLENBQUM7Ozs7QUFtQi9CLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSxlQUFlO0lBQ2pFLFlBRVMsT0FBc0MsRUFDckMsS0FBYSxFQUNiLGFBQTZCO1FBRXJDLEtBQUssRUFBRSxDQUFDO1FBSkQsWUFBTyxHQUFQLE9BQU8sQ0FBK0I7UUFDckMsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUdyQyxPQUFPLENBQUMsY0FBYzthQUNuQixJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDO2FBQ3BDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2YsS0FBSyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDdkQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBR08sV0FBVztRQUNqQixNQUFNLEtBQUssR0FBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsaUJBQW9DLENBQUM7UUFDMUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDakQsS0FBSyxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0QsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM5RCxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3ZFLENBQUM7OEdBM0JVLDhCQUE4QixrQkFFL0IsNkJBQTZCO2tHQUY1Qiw4QkFBOEIseUdBUjlCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLDRCQUE0QjtnQkFDckMsV0FBVyxFQUFFLDhCQUE4QjthQUM1QztZQUNELGNBQWM7U0FDZixpREFiUzs7O1VBR0Y7OzJGQVlHLDhCQUE4QjtrQkFqQjFDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsUUFBUSxFQUFFOzs7VUFHRjtvQkFDUixJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsMEJBQTBCLEVBQUU7b0JBQzNDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSw0QkFBNEI7NEJBQ3JDLFdBQVcsZ0NBQWdDO3lCQUM1Qzt3QkFDRCxjQUFjO3FCQUNmO2lCQUNGOzswQkFHSSxNQUFNOzJCQUFDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1YQmFzZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgQVhDb2xvclV0aWwsIEFYVW5zdWJzY3JpYmVyIH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEluamVjdCxcbiAgTmdab25lLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBWENvbG9yUGFsZXR0ZUNoaWxkQ29tcG9uZW50LCBBWENvbG9yUGFsZXR0ZVBhcmVudENvbXBvbmVudCxcbn0gZnJvbSAnLi9jb2xvci1wYWxldHRlLmNsYXNzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtY29sb3ItcGFsZXR0ZS1wcmV2aWV3JyxcbiAgdGVtcGxhdGU6IGA8ZGl2XG4gICAgY2xhc3M9XCJwYWxldHRlLXByZXZpZXctb3ZlcmxheVwiXG4gICAgW2NsYXNzLmF4LXN0YXRlLWRpc2FibGVkXT1cIl9wYXJlbnQuZGlzYWJsZWRcIlxuICA+PC9kaXY+YCxcbiAgaG9zdDogeyBjbGFzczogJ2F4LWNvbG9yLXBhbGV0dGUtcHJldmlldycgfSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYQ29sb3JQYWxldHRlQ2hpbGRDb21wb25lbnQsXG4gICAgICB1c2VFeGlzdGluZzogQVhDb2xvclBhbGV0dGVQcmV2aWV3Q29tcG9uZW50LFxuICAgIH0sXG4gICAgQVhVbnN1YnNjcmliZXJcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhDb2xvclBhbGV0dGVQcmV2aWV3Q29tcG9uZW50IGV4dGVuZHMgTVhCYXNlQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChBWENvbG9yUGFsZXR0ZVBhcmVudENvbXBvbmVudClcbiAgICBwdWJsaWMgX3BhcmVudDogQVhDb2xvclBhbGV0dGVQYXJlbnRDb21wb25lbnQsXG4gICAgcHJpdmF0ZSBfem9uZTogTmdab25lLFxuICAgIHByaXZhdGUgX3Vuc3Vic2NyaWJlcjogQVhVbnN1YnNjcmliZXJcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICBfcGFyZW50Lm9uVmFsdWVDaGFuZ2VkXG4gICAgICAucGlwZShfdW5zdWJzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3kpXG4gICAgICAuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICAgIF96b25lLnJ1bk91dHNpZGVBbmd1bGFyKHRoaXMuYXBwbHlQYXJlbnQuYmluZCh0aGlzKSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmFwcGx5UGFyZW50KCk7XG4gIH1cblxuXG4gIHByaXZhdGUgYXBwbHlQYXJlbnQoKSB7XG4gICAgY29uc3QgaW5uZXIgPSAodGhpcy5nZXRIb3N0RWxlbWVudCgpLmZpcnN0RWxlbWVudENoaWxkIGFzIEhUTUxEaXZFbGVtZW50KTtcbiAgICBpbm5lci5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSB0aGlzLl9wYXJlbnQudmFsdWU7XG4gICAgaW5uZXIuaW5uZXJUZXh0ID0gQVhDb2xvclV0aWwudG9TdHJpbmcodGhpcy5fcGFyZW50LnZhbHVlKTtcbiAgICBjb25zdCBjb2xvciA9IEFYQ29sb3JVdGlsLnRvU3RyaW5nKHRoaXMuX3BhcmVudC52YWx1ZSwgJ2hleCcpO1xuICAgIGNvbnN0IHJhdGlvID0gQVhDb2xvclV0aWwuY29udHJhc3RUb1doaXRlKGNvbG9yKTtcbiAgICB0aGlzLmdldEhvc3RFbGVtZW50KCkuc3R5bGUuY29sb3IgPSAhKHJhdGlvID4gMi4wKSA/ICcjMDAwJyA6ICcjZmZmJztcbiAgfVxufVxuIl19