@acorex/components 6.5.29 → 6.5.31

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 (364) hide show
  1. package/README.md +3 -3
  2. package/acorex-components.d.ts +5 -5
  3. package/esm2020/acorex-components.mjs +4 -4
  4. package/esm2020/lib/accordion/accordion.component.mjs +44 -44
  5. package/esm2020/lib/accordion/accordion.module.mjs +20 -20
  6. package/esm2020/lib/base/base-page.class.mjs +94 -94
  7. package/esm2020/lib/base/components.class.mjs +17 -17
  8. package/esm2020/lib/base/element.class.mjs +294 -294
  9. package/esm2020/lib/base/events.class.mjs +11 -11
  10. package/esm2020/lib/button/button.component.mjs +71 -71
  11. package/esm2020/lib/button/button.module.mjs +21 -21
  12. package/esm2020/lib/calendar/calendar-box/calendar-box.component.mjs +413 -413
  13. package/esm2020/lib/calendar/calendar-box/calendar-box.module.mjs +22 -22
  14. package/esm2020/lib/calendar/scheduler/scheduler-views.property.mjs +54 -54
  15. package/esm2020/lib/calendar/scheduler/scheduler.class.mjs +18 -18
  16. package/esm2020/lib/calendar/scheduler/scheduler.component.mjs +213 -213
  17. package/esm2020/lib/calendar/scheduler/scheduler.module.mjs +68 -68
  18. package/esm2020/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.mjs +132 -132
  19. package/esm2020/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.mjs +37 -37
  20. package/esm2020/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.mjs +47 -47
  21. package/esm2020/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.mjs +95 -95
  22. package/esm2020/lib/calendar/scheduler/views/month/scheduler-month-view.component.mjs +204 -204
  23. package/esm2020/lib/calendar/scheduler/views/scheduler-view.component.mjs +99 -99
  24. package/esm2020/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.mjs +77 -77
  25. package/esm2020/lib/checkbox/checkbox.component.mjs +98 -98
  26. package/esm2020/lib/checkbox/checkbox.module.mjs +20 -20
  27. package/esm2020/lib/color-picker/color-box/color-box.component.mjs +422 -422
  28. package/esm2020/lib/color-picker/color-picker.component.mjs +82 -82
  29. package/esm2020/lib/color-picker/color-picker.module.mjs +24 -24
  30. package/esm2020/lib/context-menu/context-menu.component.mjs +65 -65
  31. package/esm2020/lib/context-menu/context-menu.directive.mjs +135 -135
  32. package/esm2020/lib/context-menu/context-menu.module.mjs +20 -20
  33. package/esm2020/lib/data-filter/columns/filter-column-date.component.mjs +138 -138
  34. package/esm2020/lib/data-filter/columns/filter-column-number.component.mjs +117 -117
  35. package/esm2020/lib/data-filter/columns/filter-column-selection.component.mjs +74 -74
  36. package/esm2020/lib/data-filter/columns/filter-column-string.component.mjs +117 -117
  37. package/esm2020/lib/data-filter/filter-panel/filter-panel.component.mjs +258 -258
  38. package/esm2020/lib/data-filter/filter.class.mjs +44 -44
  39. package/esm2020/lib/data-filter/filter.module.mjs +90 -90
  40. package/esm2020/lib/data-filter/toolbar/filter-toolbar.component.mjs +166 -166
  41. package/esm2020/lib/data-list/core/data-list.component.mjs +40 -40
  42. package/esm2020/lib/data-list/list/list.component.mjs +124 -124
  43. package/esm2020/lib/data-list/list/list.module.mjs +22 -22
  44. package/esm2020/lib/data-list/list/toolbar-list-view.component.mjs +85 -85
  45. package/esm2020/lib/data-source/datasource.component.mjs +47 -47
  46. package/esm2020/lib/data-source/datasource.module.mjs +18 -18
  47. package/esm2020/lib/data-source/read-param.mjs +5 -5
  48. package/esm2020/lib/date-picker/date-picker.component.mjs +702 -702
  49. package/esm2020/lib/date-picker/date-picker.module.mjs +25 -25
  50. package/esm2020/lib/dialog/dialog.component.mjs +24 -24
  51. package/esm2020/lib/dialog/dialog.module.mjs +21 -21
  52. package/esm2020/lib/dialog/dialog.service.mjs +150 -150
  53. package/esm2020/lib/drawer/content.component.mjs +18 -18
  54. package/esm2020/lib/drawer/drawer-container.component.mjs +36 -36
  55. package/esm2020/lib/drawer/drawer.component.mjs +142 -142
  56. package/esm2020/lib/drawer/drawer.module.mjs +23 -23
  57. package/esm2020/lib/dropdown/dropdown.component.mjs +176 -176
  58. package/esm2020/lib/dropdown/dropdown.module.mjs +26 -26
  59. package/esm2020/lib/fieldset/fieldset.component.mjs +59 -59
  60. package/esm2020/lib/fieldset/fieldset.module.mjs +19 -19
  61. package/esm2020/lib/form-group/form-group.component.mjs +34 -34
  62. package/esm2020/lib/form-group/form-group.module.mjs +21 -21
  63. package/esm2020/lib/label/label.component.mjs +19 -19
  64. package/esm2020/lib/label/label.module.mjs +21 -21
  65. package/esm2020/lib/loading/loading-indicator.component.mjs +17 -17
  66. package/esm2020/lib/loading/loading-panel.component.mjs +44 -44
  67. package/esm2020/lib/loading/loading.module.mjs +21 -21
  68. package/esm2020/lib/loading/loading.service.mjs +45 -45
  69. package/esm2020/lib/menu/menu-item.component.mjs +47 -47
  70. package/esm2020/lib/menu/menu.component.mjs +86 -86
  71. package/esm2020/lib/menu/menu.module.mjs +22 -22
  72. package/esm2020/lib/menu/menu2.component.mjs +96 -96
  73. package/esm2020/lib/number-box/number-box.component.mjs +622 -622
  74. package/esm2020/lib/number-box/number-box.module.mjs +21 -21
  75. package/esm2020/lib/page/content.component.mjs +32 -32
  76. package/esm2020/lib/page/footer.component.mjs +19 -19
  77. package/esm2020/lib/page/page.component.mjs +53 -53
  78. package/esm2020/lib/page/page.module.mjs +22 -22
  79. package/esm2020/lib/panel-box/panel-box.component.mjs +88 -88
  80. package/esm2020/lib/panel-box/panel-box.module.mjs +19 -19
  81. package/esm2020/lib/password-box/password-box.component.mjs +31 -31
  82. package/esm2020/lib/password-box/password-box.module.mjs +23 -23
  83. package/esm2020/lib/popover/custom-cdk-overlay.service.mjs +48 -48
  84. package/esm2020/lib/popover/overlay.service.mjs +90 -90
  85. package/esm2020/lib/popover/popover.component.mjs +127 -127
  86. package/esm2020/lib/popover/popover.module.mjs +19 -19
  87. package/esm2020/lib/popup/popup.component.mjs +147 -147
  88. package/esm2020/lib/popup/popup.module.mjs +25 -25
  89. package/esm2020/lib/popup/popup.service.mjs +93 -93
  90. package/esm2020/lib/progress-bar/progress-bar.component.mjs +19 -19
  91. package/esm2020/lib/progress-bar/progress-bar.module.mjs +19 -19
  92. package/esm2020/lib/property-editor/editors/check-editor/check-editor.mjs +61 -61
  93. package/esm2020/lib/property-editor/editors/check-editor/check.module.mjs +22 -22
  94. package/esm2020/lib/property-editor/editors/color-editor/color.editor.mjs +38 -38
  95. package/esm2020/lib/property-editor/editors/color-editor/color.module.mjs +24 -24
  96. package/esm2020/lib/property-editor/editors/column-editor/column.editor.mjs +115 -115
  97. package/esm2020/lib/property-editor/editors/column-editor/column.module.mjs +32 -32
  98. package/esm2020/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.mjs +211 -211
  99. package/esm2020/lib/property-editor/editors/conditional-color-editor/conditional-color.module.mjs +78 -78
  100. package/esm2020/lib/property-editor/editors/date-editor/date.editor.mjs +51 -51
  101. package/esm2020/lib/property-editor/editors/date-editor/date.module.mjs +24 -24
  102. package/esm2020/lib/property-editor/editors/number-editor/number.editor.mjs +63 -63
  103. package/esm2020/lib/property-editor/editors/number-editor/number.module.mjs +24 -24
  104. package/esm2020/lib/property-editor/editors/range-editor/range.editor.mjs +140 -140
  105. package/esm2020/lib/property-editor/editors/range-editor/range.module.mjs +61 -61
  106. package/esm2020/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.mjs +72 -72
  107. package/esm2020/lib/property-editor/editors/selectbox-editor/selectbox.editor.mjs +71 -71
  108. package/esm2020/lib/property-editor/editors/selectbox-editor/selectbox.module.mjs +25 -25
  109. package/esm2020/lib/property-editor/editors/selection-editor/selection-editor.mjs +69 -69
  110. package/esm2020/lib/property-editor/editors/selection-editor/selection.module.mjs +22 -22
  111. package/esm2020/lib/property-editor/editors/switch-editor/number.editor.mjs +29 -29
  112. package/esm2020/lib/property-editor/editors/switch-editor/number.module.mjs +25 -25
  113. package/esm2020/lib/property-editor/editors/text-editor/text.editor.mjs +32 -32
  114. package/esm2020/lib/property-editor/editors/text-editor/text.module.mjs +24 -24
  115. package/esm2020/lib/property-editor/editors/textarea-editor/textarea.editor.mjs +32 -32
  116. package/esm2020/lib/property-editor/editors/textarea-editor/textarea.module.mjs +24 -24
  117. package/esm2020/lib/property-editor/editors/time-editor/time.editor.mjs +43 -43
  118. package/esm2020/lib/property-editor/editors/time-editor/time.module.mjs +24 -24
  119. package/esm2020/lib/property-editor/property-editor-renderer.directive.mjs +154 -154
  120. package/esm2020/lib/property-editor/property-editor.class.mjs +101 -101
  121. package/esm2020/lib/property-editor/property-editor.module.mjs +196 -196
  122. package/esm2020/lib/query-builder/query-builder-group.component.mjs +124 -124
  123. package/esm2020/lib/query-builder/query-builder-popup/query-builder-popup.component.mjs +171 -171
  124. package/esm2020/lib/query-builder/query-builder-rule.component.mjs +395 -395
  125. package/esm2020/lib/query-builder/query-builder.class.mjs +20 -20
  126. package/esm2020/lib/query-builder/query-builder.component.mjs +82 -82
  127. package/esm2020/lib/query-builder/query-builder.module.mjs +62 -62
  128. package/esm2020/lib/query-builder/query-builder.service.mjs +197 -197
  129. package/esm2020/lib/search-bar/search-bar.component.mjs +283 -283
  130. package/esm2020/lib/search-bar/search-bar.module.mjs +63 -63
  131. package/esm2020/lib/searchbox/searchbox.component.mjs +79 -79
  132. package/esm2020/lib/searchbox/searchbox.module.mjs +24 -24
  133. package/esm2020/lib/selectbox/selectbox.component.mjs +961 -961
  134. package/esm2020/lib/selectbox/selectbox.module.mjs +44 -44
  135. package/esm2020/lib/selectbox/selectbox2.component.mjs +574 -574
  136. package/esm2020/lib/selection-list/selection-list.component.mjs +108 -108
  137. package/esm2020/lib/selection-list/selection-list.module.mjs +21 -21
  138. package/esm2020/lib/switch/switch.component.mjs +51 -51
  139. package/esm2020/lib/switch/switch.module.mjs +20 -20
  140. package/esm2020/lib/tab-page/tab-page-Renderer.component.mjs +71 -71
  141. package/esm2020/lib/tab-page/tab-page-host.component.mjs +116 -116
  142. package/esm2020/lib/tab-page/tab-page.module.mjs +21 -21
  143. package/esm2020/lib/tab-page/tab-page.service.mjs +156 -156
  144. package/esm2020/lib/tab-strip/tab-strip.component.mjs +36 -36
  145. package/esm2020/lib/tab-strip/tab-strip.module.mjs +19 -19
  146. package/esm2020/lib/tab-view/dynamic-tabs.directive.mjs +24 -24
  147. package/esm2020/lib/tab-view/tab-view.component.mjs +105 -105
  148. package/esm2020/lib/tab-view/tab-view.module.mjs +21 -21
  149. package/esm2020/lib/tab-view/tab.component.mjs +30 -30
  150. package/esm2020/lib/textarea/textarea.component.mjs +26 -26
  151. package/esm2020/lib/textarea/textarea.module.mjs +21 -21
  152. package/esm2020/lib/textbox/textbox.component.mjs +39 -39
  153. package/esm2020/lib/textbox/textbox.module.mjs +24 -24
  154. package/esm2020/lib/time-picker/time-picker.component.mjs +943 -943
  155. package/esm2020/lib/time-picker/time-picker.module.mjs +22 -22
  156. package/esm2020/lib/toast/toast-message/toast-message.component.mjs +74 -74
  157. package/esm2020/lib/toast/toast-wrapper/toast-wrapper.component.mjs +13 -13
  158. package/esm2020/lib/toast/toast.module.mjs +21 -21
  159. package/esm2020/lib/toast/toast.service.mjs +44 -44
  160. package/esm2020/lib/toolbar/group-button/toolbar-group-button.component.mjs +78 -78
  161. package/esm2020/lib/toolbar/menu/toolbar-menu.component.mjs +57 -57
  162. package/esm2020/lib/toolbar/search/toolbar-search.component.mjs +54 -54
  163. package/esm2020/lib/toolbar/title/toolbar-title.component.mjs +47 -47
  164. package/esm2020/lib/toolbar/toolbar-item.mjs +6 -6
  165. package/esm2020/lib/toolbar/toolbar.component.mjs +13 -13
  166. package/esm2020/lib/toolbar/toolbar.module.mjs +40 -40
  167. package/esm2020/lib/tooltip/tooltip.directive.mjs +100 -100
  168. package/esm2020/lib/tooltip/tooltip.module.mjs +19 -19
  169. package/esm2020/lib/tree-side-menu/tree-side-menu.component.mjs +646 -646
  170. package/esm2020/lib/tree-side-menu/tree-side-menu.module.mjs +35 -35
  171. package/esm2020/lib/tree-view/tree-view.component.mjs +775 -775
  172. package/esm2020/lib/tree-view/tree-view.module.mjs +22 -22
  173. package/esm2020/lib/upload-file/upload-file.component.mjs +208 -208
  174. package/esm2020/lib/upload-file/upload-file.events.mjs +2 -2
  175. package/esm2020/lib/upload-file/upload-file.module.mjs +24 -24
  176. package/esm2020/lib/validation/validation-form.component.mjs +65 -65
  177. package/esm2020/lib/validation/validation-rule.widget.mjs +111 -111
  178. package/esm2020/lib/validation/validation.class.mjs +2 -2
  179. package/esm2020/lib/validation/validation.component.mjs +89 -89
  180. package/esm2020/lib/validation/validation.module.mjs +34 -34
  181. package/esm2020/public-api.mjs +158 -158
  182. package/fesm2015/acorex-components.mjs +15616 -15616
  183. package/fesm2015/acorex-components.mjs.map +1 -1
  184. package/fesm2020/acorex-components.mjs +15552 -15552
  185. package/fesm2020/acorex-components.mjs.map +1 -1
  186. package/lib/accordion/accordion.component.d.ts +13 -13
  187. package/lib/accordion/accordion.module.d.ts +9 -9
  188. package/lib/base/base-page.class.d.ts +46 -46
  189. package/lib/base/components.class.d.ts +10 -10
  190. package/lib/base/element.class.d.ts +106 -106
  191. package/lib/base/events.class.d.ts +18 -18
  192. package/lib/button/button.component.d.ts +21 -21
  193. package/lib/button/button.module.d.ts +8 -8
  194. package/lib/calendar/calendar-box/calendar-box.component.d.ts +81 -81
  195. package/lib/calendar/calendar-box/calendar-box.module.d.ts +11 -11
  196. package/lib/calendar/scheduler/scheduler-views.property.d.ts +19 -19
  197. package/lib/calendar/scheduler/scheduler.class.d.ts +36 -36
  198. package/lib/calendar/scheduler/scheduler.component.d.ts +39 -39
  199. package/lib/calendar/scheduler/scheduler.module.d.ts +21 -21
  200. package/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.d.ts +25 -25
  201. package/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.d.ts +14 -14
  202. package/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.d.ts +16 -16
  203. package/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.d.ts +26 -26
  204. package/lib/calendar/scheduler/views/month/scheduler-month-view.component.d.ts +37 -37
  205. package/lib/calendar/scheduler/views/scheduler-view.component.d.ts +28 -28
  206. package/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.d.ts +24 -24
  207. package/lib/checkbox/checkbox.component.d.ts +30 -30
  208. package/lib/checkbox/checkbox.module.d.ts +9 -9
  209. package/lib/color-picker/color-box/color-box.component.d.ts +25 -25
  210. package/lib/color-picker/color-picker.component.d.ts +30 -30
  211. package/lib/color-picker/color-picker.module.d.ts +13 -13
  212. package/lib/context-menu/context-menu.component.d.ts +22 -22
  213. package/lib/context-menu/context-menu.directive.d.ts +38 -38
  214. package/lib/context-menu/context-menu.module.d.ts +9 -9
  215. package/lib/data-filter/columns/filter-column-date.component.d.ts +22 -22
  216. package/lib/data-filter/columns/filter-column-number.component.d.ts +15 -15
  217. package/lib/data-filter/columns/filter-column-selection.component.d.ts +18 -18
  218. package/lib/data-filter/columns/filter-column-string.component.d.ts +15 -15
  219. package/lib/data-filter/filter-panel/filter-panel.component.d.ts +45 -45
  220. package/lib/data-filter/filter.class.d.ts +40 -40
  221. package/lib/data-filter/filter.module.d.ts +24 -24
  222. package/lib/data-filter/toolbar/filter-toolbar.component.d.ts +25 -25
  223. package/lib/data-list/core/data-list.component.d.ts +15 -15
  224. package/lib/data-list/list/list.component.d.ts +40 -40
  225. package/lib/data-list/list/list.module.d.ts +11 -11
  226. package/lib/data-list/list/toolbar-list-view.component.d.ts +17 -17
  227. package/lib/data-source/datasource.component.d.ts +16 -16
  228. package/lib/data-source/datasource.module.d.ts +7 -7
  229. package/lib/data-source/read-param.d.ts +40 -40
  230. package/lib/date-picker/date-picker.component.d.ts +81 -81
  231. package/lib/date-picker/date-picker.module.d.ts +14 -14
  232. package/lib/dialog/dialog.component.d.ts +14 -14
  233. package/lib/dialog/dialog.module.d.ts +10 -10
  234. package/lib/dialog/dialog.service.d.ts +36 -36
  235. package/lib/drawer/content.component.d.ts +7 -7
  236. package/lib/drawer/drawer-container.component.d.ts +10 -10
  237. package/lib/drawer/drawer.component.d.ts +34 -34
  238. package/lib/drawer/drawer.module.d.ts +10 -10
  239. package/lib/dropdown/dropdown.component.d.ts +38 -38
  240. package/lib/dropdown/dropdown.module.d.ts +13 -13
  241. package/lib/fieldset/fieldset.component.d.ts +11 -11
  242. package/lib/fieldset/fieldset.module.d.ts +8 -8
  243. package/lib/form-group/form-group.component.d.ts +14 -14
  244. package/lib/form-group/form-group.module.d.ts +8 -8
  245. package/lib/label/label.component.d.ts +9 -9
  246. package/lib/label/label.module.d.ts +8 -8
  247. package/lib/loading/loading-indicator.component.d.ts +9 -9
  248. package/lib/loading/loading-panel.component.d.ts +13 -13
  249. package/lib/loading/loading.module.d.ts +10 -10
  250. package/lib/loading/loading.service.d.ts +13 -13
  251. package/lib/menu/menu-item.component.d.ts +18 -18
  252. package/lib/menu/menu.component.d.ts +35 -35
  253. package/lib/menu/menu.module.d.ts +11 -11
  254. package/lib/menu/menu2.component.d.ts +21 -21
  255. package/lib/number-box/number-box.component.d.ts +52 -52
  256. package/lib/number-box/number-box.module.d.ts +10 -10
  257. package/lib/page/content.component.d.ts +8 -8
  258. package/lib/page/footer.component.d.ts +5 -5
  259. package/lib/page/page.component.d.ts +16 -16
  260. package/lib/page/page.module.d.ts +11 -11
  261. package/lib/panel-box/panel-box.component.d.ts +19 -19
  262. package/lib/panel-box/panel-box.module.d.ts +8 -8
  263. package/lib/password-box/password-box.component.d.ts +12 -12
  264. package/lib/password-box/password-box.module.d.ts +10 -10
  265. package/lib/popover/custom-cdk-overlay.service.d.ts +19 -19
  266. package/lib/popover/overlay.service.d.ts +31 -31
  267. package/lib/popover/popover.component.d.ts +34 -34
  268. package/lib/popover/popover.module.d.ts +8 -8
  269. package/lib/popup/popup.component.d.ts +40 -40
  270. package/lib/popup/popup.module.d.ts +13 -13
  271. package/lib/popup/popup.service.d.ts +22 -22
  272. package/lib/progress-bar/progress-bar.component.d.ts +7 -7
  273. package/lib/progress-bar/progress-bar.module.d.ts +8 -8
  274. package/lib/property-editor/editors/check-editor/check-editor.d.ts +19 -19
  275. package/lib/property-editor/editors/check-editor/check.module.d.ts +11 -11
  276. package/lib/property-editor/editors/color-editor/color.editor.d.ts +13 -13
  277. package/lib/property-editor/editors/color-editor/color.module.d.ts +12 -12
  278. package/lib/property-editor/editors/column-editor/column.editor.d.ts +34 -34
  279. package/lib/property-editor/editors/column-editor/column.module.d.ts +20 -20
  280. package/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.d.ts +44 -44
  281. package/lib/property-editor/editors/conditional-color-editor/conditional-color.module.d.ts +19 -19
  282. package/lib/property-editor/editors/date-editor/date.editor.d.ts +28 -28
  283. package/lib/property-editor/editors/date-editor/date.module.d.ts +12 -12
  284. package/lib/property-editor/editors/number-editor/number.editor.d.ts +20 -20
  285. package/lib/property-editor/editors/number-editor/number.module.d.ts +12 -12
  286. package/lib/property-editor/editors/range-editor/range.editor.d.ts +29 -29
  287. package/lib/property-editor/editors/range-editor/range.module.d.ts +18 -18
  288. package/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.d.ts +29 -29
  289. package/lib/property-editor/editors/selectbox-editor/selectbox.editor.d.ts +28 -28
  290. package/lib/property-editor/editors/selectbox-editor/selectbox.module.d.ts +14 -14
  291. package/lib/property-editor/editors/selection-editor/selection-editor.d.ts +25 -25
  292. package/lib/property-editor/editors/selection-editor/selection.module.d.ts +11 -11
  293. package/lib/property-editor/editors/switch-editor/number.editor.d.ts +11 -11
  294. package/lib/property-editor/editors/switch-editor/number.module.d.ts +13 -13
  295. package/lib/property-editor/editors/text-editor/text.editor.d.ts +18 -18
  296. package/lib/property-editor/editors/text-editor/text.module.d.ts +12 -12
  297. package/lib/property-editor/editors/textarea-editor/textarea.editor.d.ts +17 -17
  298. package/lib/property-editor/editors/textarea-editor/textarea.module.d.ts +12 -12
  299. package/lib/property-editor/editors/time-editor/time.editor.d.ts +17 -17
  300. package/lib/property-editor/editors/time-editor/time.module.d.ts +12 -12
  301. package/lib/property-editor/property-editor-renderer.directive.d.ts +30 -30
  302. package/lib/property-editor/property-editor.class.d.ts +92 -92
  303. package/lib/property-editor/property-editor.module.d.ts +21 -21
  304. package/lib/query-builder/query-builder-group.component.d.ts +33 -33
  305. package/lib/query-builder/query-builder-popup/query-builder-popup.component.d.ts +35 -35
  306. package/lib/query-builder/query-builder-rule.component.d.ts +45 -45
  307. package/lib/query-builder/query-builder.class.d.ts +45 -45
  308. package/lib/query-builder/query-builder.component.d.ts +27 -27
  309. package/lib/query-builder/query-builder.module.d.ts +23 -23
  310. package/lib/query-builder/query-builder.service.d.ts +18 -18
  311. package/lib/search-bar/search-bar.component.d.ts +61 -61
  312. package/lib/search-bar/search-bar.module.d.ts +18 -18
  313. package/lib/searchbox/searchbox.component.d.ts +22 -22
  314. package/lib/searchbox/searchbox.module.d.ts +13 -13
  315. package/lib/selectbox/selectbox.component.d.ts +118 -118
  316. package/lib/selectbox/selectbox.module.d.ts +15 -15
  317. package/lib/selectbox/selectbox2.component.d.ts +103 -103
  318. package/lib/selection-list/selection-list.component.d.ts +32 -32
  319. package/lib/selection-list/selection-list.module.d.ts +10 -10
  320. package/lib/switch/switch.component.d.ts +20 -20
  321. package/lib/switch/switch.module.d.ts +9 -9
  322. package/lib/tab-page/tab-page-Renderer.component.d.ts +16 -16
  323. package/lib/tab-page/tab-page-host.component.d.ts +25 -25
  324. package/lib/tab-page/tab-page.module.d.ts +10 -10
  325. package/lib/tab-page/tab-page.service.d.ts +30 -30
  326. package/lib/tab-strip/tab-strip.component.d.ts +28 -28
  327. package/lib/tab-strip/tab-strip.module.d.ts +8 -8
  328. package/lib/tab-view/dynamic-tabs.directive.d.ts +16 -16
  329. package/lib/tab-view/tab-view.component.d.ts +26 -26
  330. package/lib/tab-view/tab-view.module.d.ts +10 -10
  331. package/lib/tab-view/tab.component.d.ts +12 -12
  332. package/lib/textarea/textarea.component.d.ts +12 -12
  333. package/lib/textarea/textarea.module.d.ts +8 -8
  334. package/lib/textbox/textbox.component.d.ts +16 -16
  335. package/lib/textbox/textbox.module.d.ts +11 -11
  336. package/lib/time-picker/time-picker.component.d.ts +52 -52
  337. package/lib/time-picker/time-picker.module.d.ts +11 -11
  338. package/lib/toast/toast-message/toast-message.component.d.ts +18 -18
  339. package/lib/toast/toast-wrapper/toast-wrapper.component.d.ts +8 -8
  340. package/lib/toast/toast.module.d.ts +9 -9
  341. package/lib/toast/toast.service.d.ts +18 -18
  342. package/lib/toolbar/group-button/toolbar-group-button.component.d.ts +12 -12
  343. package/lib/toolbar/menu/toolbar-menu.component.d.ts +24 -24
  344. package/lib/toolbar/search/toolbar-search.component.d.ts +16 -16
  345. package/lib/toolbar/title/toolbar-title.component.d.ts +9 -9
  346. package/lib/toolbar/toolbar-item.d.ts +3 -3
  347. package/lib/toolbar/toolbar.component.d.ts +8 -8
  348. package/lib/toolbar/toolbar.module.d.ts +14 -14
  349. package/lib/tooltip/tooltip.directive.d.ts +21 -21
  350. package/lib/tooltip/tooltip.module.d.ts +8 -8
  351. package/lib/tree-side-menu/tree-side-menu.component.d.ts +111 -111
  352. package/lib/tree-side-menu/tree-side-menu.module.d.ts +11 -11
  353. package/lib/tree-view/tree-view.component.d.ts +121 -121
  354. package/lib/tree-view/tree-view.module.d.ts +11 -11
  355. package/lib/upload-file/upload-file.component.d.ts +42 -42
  356. package/lib/upload-file/upload-file.events.d.ts +10 -10
  357. package/lib/upload-file/upload-file.module.d.ts +13 -13
  358. package/lib/validation/validation-form.component.d.ts +19 -19
  359. package/lib/validation/validation-rule.widget.d.ts +23 -23
  360. package/lib/validation/validation.class.d.ts +16 -16
  361. package/lib/validation/validation.component.d.ts +25 -25
  362. package/lib/validation/validation.module.d.ts +11 -11
  363. package/package.json +1 -1
  364. package/public-api.d.ts +155 -155
@@ -1,422 +1,422 @@
1
- import { Component, Input, Output, EventEmitter } from '@angular/core';
2
- import { AXValidatableComponent } from '../../base/element.class';
3
- import { AXColorUtil } from '@acorex/core';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../../textbox/textbox.component";
6
- import * as i2 from "@angular/common";
7
- export class AXColorBoxComponent extends AXValidatableComponent {
8
- constructor() {
9
- super();
10
- this.inputFormat = 'hex';
11
- this.onColorSelect = new EventEmitter();
12
- this.valueChange = new EventEmitter();
13
- this.rColor = 0;
14
- this.gColor = 0;
15
- this.bColor = 0;
16
- this.colors = [
17
- // Pink ***************************
18
- {
19
- code: '#FFC0CB',
20
- },
21
- {
22
- code: '#FF69B4',
23
- },
24
- {
25
- code: '#DB7093',
26
- },
27
- {
28
- code: '#C71585',
29
- },
30
- // Purple ***************************
31
- {
32
- code: '#E6E6FA',
33
- },
34
- {
35
- code: '#D8BFD8',
36
- },
37
- {
38
- code: '#DDA0DD',
39
- },
40
- {
41
- code: '#DA70D6',
42
- },
43
- {
44
- code: '#FF00FF',
45
- },
46
- {
47
- code: '#BA55D3',
48
- },
49
- {
50
- code: '#9932CC',
51
- },
52
- {
53
- code: '#8A2BE2',
54
- },
55
- {
56
- code: '#8B008B',
57
- },
58
- {
59
- code: '#9370DB',
60
- },
61
- {
62
- code: '#7B68EE',
63
- },
64
- {
65
- code: '#6A5ACD',
66
- },
67
- {
68
- code: '#483D8B',
69
- },
70
- {
71
- code: '#663399',
72
- },
73
- {
74
- code: '#4B0082',
75
- },
76
- // Red ***************************
77
- {
78
- code: '#FFA07A',
79
- },
80
- {
81
- code: '#FA8072',
82
- },
83
- {
84
- code: '#F08080',
85
- },
86
- {
87
- code: '#CD5C5C',
88
- },
89
- {
90
- code: '#DC143C',
91
- },
92
- {
93
- code: '#FF0000',
94
- },
95
- {
96
- code: '#B22222',
97
- },
98
- {
99
- code: '#8B0000',
100
- },
101
- // Orange ***************************
102
- {
103
- code: '#FFA500',
104
- },
105
- {
106
- code: '#FF8C00',
107
- },
108
- {
109
- code: '#FF7F50',
110
- },
111
- {
112
- code: '#FF6347',
113
- },
114
- {
115
- code: '#FF4500',
116
- },
117
- {
118
- code: '#FFD700',
119
- },
120
- // Yellow ***************************
121
- {
122
- code: '#FFFF00',
123
- },
124
- {
125
- code: '#FFFFE0',
126
- },
127
- {
128
- code: '#FFFACD',
129
- },
130
- {
131
- code: '#FFEFD5',
132
- },
133
- {
134
- code: '#FFE4B5',
135
- },
136
- {
137
- code: '#FFDAB9',
138
- },
139
- {
140
- code: '#EEE8AA',
141
- },
142
- {
143
- code: '#F0E68C',
144
- },
145
- {
146
- code: '#BDB76B',
147
- },
148
- // Brown ***************************
149
- // {
150
- // code: '#FFF8DC'
151
- // },
152
- // {
153
- // code: '#FFEBCD'
154
- // },
155
- // {
156
- // code: '#FFE4C4'
157
- // },
158
- {
159
- code: '#FFDEAD'
160
- },
161
- {
162
- code: '#DEB887'
163
- },
164
- {
165
- code: '#D2B48C'
166
- },
167
- {
168
- code: '#DAA520'
169
- },
170
- {
171
- code: '#B8860B'
172
- },
173
- {
174
- code: '#CD853F'
175
- },
176
- {
177
- code: '#D2691E'
178
- },
179
- {
180
- code: '#8B4513'
181
- },
182
- {
183
- code: '#A0522D'
184
- },
185
- // Green ***************************
186
- {
187
- code: '#ADFF2F',
188
- },
189
- {
190
- code: '#7FFF00',
191
- },
192
- {
193
- code: '#00FF00',
194
- },
195
- {
196
- code: '#32CD32',
197
- },
198
- {
199
- code: '#98FB98',
200
- },
201
- {
202
- code: '#90EE90',
203
- },
204
- {
205
- code: '#00FA9A',
206
- },
207
- {
208
- code: '#00FF7F',
209
- },
210
- {
211
- code: '#3CB371',
212
- },
213
- {
214
- code: '#2E8B57',
215
- },
216
- {
217
- code: '#228B22',
218
- },
219
- {
220
- code: '#008000',
221
- },
222
- {
223
- code: '#006400',
224
- },
225
- {
226
- code: '#9ACD32',
227
- },
228
- {
229
- code: '#6B8E23',
230
- },
231
- {
232
- code: '#556B2F',
233
- },
234
- {
235
- code: '#66CDAA',
236
- },
237
- {
238
- code: '#8FBC8F',
239
- },
240
- {
241
- code: '#20B2AA',
242
- },
243
- {
244
- code: '#008B8B',
245
- },
246
- // Cyan ***************************
247
- {
248
- code: '#E0FFFF',
249
- },
250
- {
251
- code: '#AFEEEE',
252
- },
253
- {
254
- code: '#7FFFD4',
255
- },
256
- {
257
- code: '#40E0D0',
258
- },
259
- {
260
- code: '#48D1CC',
261
- },
262
- {
263
- code: '#00CED1',
264
- },
265
- // Blue ***************************
266
- {
267
- code: '#5F9EA0'
268
- },
269
- {
270
- code: '#4682B4'
271
- },
272
- {
273
- code: '#B0C4DE'
274
- },
275
- {
276
- code: '#ADD8E6'
277
- },
278
- {
279
- code: '#B0E0E6'
280
- },
281
- {
282
- code: '#87CEFA'
283
- },
284
- {
285
- code: '#87CEEB'
286
- },
287
- {
288
- code: '#6495ED'
289
- },
290
- {
291
- code: '#00BFFF'
292
- },
293
- {
294
- code: '#00FFFF',
295
- },
296
- {
297
- code: '#1E90FF'
298
- },
299
- {
300
- code: '#4169E1'
301
- },
302
- {
303
- code: '#0000FF'
304
- },
305
- {
306
- code: '#0000CD'
307
- },
308
- {
309
- code: '#00008B'
310
- },
311
- {
312
- code: '#191970'
313
- },
314
- // Gray
315
- {
316
- code: '#FFFFFF'
317
- },
318
- {
319
- code: '#DCDCDC'
320
- },
321
- {
322
- code: '#808080'
323
- },
324
- {
325
- code: '#708090'
326
- },
327
- {
328
- code: '#000000'
329
- },
330
- ];
331
- }
332
- get value() {
333
- return this._value;
334
- }
335
- set value(v) {
336
- if (v != this._value) {
337
- this._value = v;
338
- if (v) {
339
- const selected = this.colors.find(c => c.code === v);
340
- if (selected) {
341
- this.selectColor(selected);
342
- }
343
- else {
344
- this.colors.forEach((i) => {
345
- i.active = false;
346
- });
347
- }
348
- const rgb = AXColorUtil.hex2Rgb(v);
349
- if (rgb) {
350
- this.rColor = rgb.r;
351
- this.gColor = rgb.g;
352
- this.bColor = rgb.b;
353
- }
354
- }
355
- else {
356
- this.rColor = null;
357
- this.gColor = null;
358
- this.bColor = null;
359
- }
360
- this.valueChange.emit(v);
361
- }
362
- }
363
- // validate(): Promise<IValidationRuleResult> {
364
- // return new Promise<IValidationRuleResult>(resolve => {
365
- // if (!this.validator) {
366
- // resolve({ result: true });
367
- // } else {
368
- // // this.validator.validate(this.model).then(r => {
369
- // // r.target = this;
370
- // // if (r.result) {
371
- // // this.errorText = null;
372
- // // } else {
373
- // // this.errorText = r.message;
374
- // // }
375
- // // resolve(r);
376
- // // });
377
- // resolve()
378
- // }
379
- // });
380
- // }
381
- focus() {
382
- }
383
- clear() {
384
- this.value = null;
385
- }
386
- onColorClick(item) {
387
- this.value = item ? item.code : null;
388
- this.selectColor(item);
389
- this.onColorSelect.emit(this.value);
390
- }
391
- handleColorChange() {
392
- this.value = AXColorUtil.rgb2Hex(this.rColor, this.gColor, this.bColor);
393
- }
394
- selectColor(item) {
395
- this.colors.forEach((i) => {
396
- i.active = false;
397
- });
398
- item.active = true;
399
- }
400
- handleKeyEvent(e) {
401
- if (e.code == 'Enter' || e.code == 'NumpadEnter') {
402
- this.onColorSelect.emit(this.value);
403
- }
404
- }
405
- }
406
- AXColorBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXColorBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
407
- AXColorBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AXColorBoxComponent, selector: "ax-color-box", inputs: { value: "value" }, outputs: { onColorSelect: "onColorSelect", valueChange: "valueChange" }, providers: [
408
- { provide: AXValidatableComponent, useExisting: AXColorBoxComponent },
409
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"color-box\">\r\n <div class=\"color-box-pallet\">\r\n <div class=\"color-item\" *ngFor=\"let item of colors\" [style.background-color]=\"item.code\" [title]=\"item.code\"\r\n (click)=\"onColorClick(item)\">\r\n <i class=\"fas fa-check-circle color-active\" *ngIf=\"item.active\"></i>\r\n </div>\r\n </div>\r\n <div class=\"text-input\">\r\n <ng-container *ngIf=\"inputFormat=='rgb';else hexTemplate\">\r\n <div class=\"color-part\">\r\n <ax-text-box [(value)]=\"rColor\" (textChange)=\"handleColorChange()\" (onKey)=\"handleKeyEvent($event)\">\r\n </ax-text-box>\r\n </div>\r\n <div class=\"color-part\">\r\n <ax-text-box [(value)]=\"gColor\" (textChange)=\"handleColorChange()\" (onKey)=\"handleKeyEvent($event)\">\r\n </ax-text-box>\r\n </div>\r\n <div class=\"color-part\">\r\n <ax-text-box [(value)]=\"bColor\" (textChange)=\"handleColorChange()\" (onKey)=\"handleKeyEvent($event)\">\r\n </ax-text-box>\r\n </div>\r\n <div class=\"color-part switch\" (click)=\"inputFormat='hex'\">\r\n <span>RGB</span>\r\n </div>\r\n </ng-container>\r\n <ng-template #hexTemplate>\r\n <div class=\"color-part\">\r\n <ax-text-box [(value)]=\"value\" size=\"sm\" (onKey)=\"handleKeyEvent($event)\">\r\n </ax-text-box>\r\n </div>\r\n <!-- <div class=\"color-part switch\" (click)=\"inputFormat='rgb'\">\r\n <span>HEX</span>\r\n </div> -->\r\n </ng-template>\r\n\r\n </div>\r\n</div>", styles: [".color-box{border:1px solid var(--ax-border-color);max-width:300px;padding:5px}.color-box .color-box-pallet{display:flex;width:100%;height:auto;flex-wrap:wrap;justify-content:space-between;align-items:center}.color-box .color-box-pallet div{width:18px;height:18px;cursor:pointer;display:flex;justify-content:center;align-items:center;border:1px solid var(--ax-border-color);margin:1px}.color-box .color-box-pallet .color-active{color:#fff;box-shadow:1px 1px 4px #5a5a5a;border-radius:50%;font-size:.875rem}.color-box .text-input{display:flex;justify-content:space-between}.color-box .text-input .color-part{padding:2px;display:flex;align-items:center;flex-direction:column;justify-content:center}.color-box .text-input .color-part.switch{cursor:pointer;font-weight:700}.color-box .text-input .color-part.switch:hover{text-decoration:underline}.color-box .text-input .color-part .ax-field-set .no-label input{margin-top:0!important;text-align:center;height:var(--ax-size-md)}\n"], components: [{ type: i1.AXTextBoxComponent, selector: "ax-text-box", inputs: ["mask", "type", "showMask", "maxLength", "maskGuid", "maskPlaceholder", "maskKeepCharPositions"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
410
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXColorBoxComponent, decorators: [{
411
- type: Component,
412
- args: [{ selector: 'ax-color-box', providers: [
413
- { provide: AXValidatableComponent, useExisting: AXColorBoxComponent },
414
- ], template: "<div class=\"color-box\">\r\n <div class=\"color-box-pallet\">\r\n <div class=\"color-item\" *ngFor=\"let item of colors\" [style.background-color]=\"item.code\" [title]=\"item.code\"\r\n (click)=\"onColorClick(item)\">\r\n <i class=\"fas fa-check-circle color-active\" *ngIf=\"item.active\"></i>\r\n </div>\r\n </div>\r\n <div class=\"text-input\">\r\n <ng-container *ngIf=\"inputFormat=='rgb';else hexTemplate\">\r\n <div class=\"color-part\">\r\n <ax-text-box [(value)]=\"rColor\" (textChange)=\"handleColorChange()\" (onKey)=\"handleKeyEvent($event)\">\r\n </ax-text-box>\r\n </div>\r\n <div class=\"color-part\">\r\n <ax-text-box [(value)]=\"gColor\" (textChange)=\"handleColorChange()\" (onKey)=\"handleKeyEvent($event)\">\r\n </ax-text-box>\r\n </div>\r\n <div class=\"color-part\">\r\n <ax-text-box [(value)]=\"bColor\" (textChange)=\"handleColorChange()\" (onKey)=\"handleKeyEvent($event)\">\r\n </ax-text-box>\r\n </div>\r\n <div class=\"color-part switch\" (click)=\"inputFormat='hex'\">\r\n <span>RGB</span>\r\n </div>\r\n </ng-container>\r\n <ng-template #hexTemplate>\r\n <div class=\"color-part\">\r\n <ax-text-box [(value)]=\"value\" size=\"sm\" (onKey)=\"handleKeyEvent($event)\">\r\n </ax-text-box>\r\n </div>\r\n <!-- <div class=\"color-part switch\" (click)=\"inputFormat='rgb'\">\r\n <span>HEX</span>\r\n </div> -->\r\n </ng-template>\r\n\r\n </div>\r\n</div>", styles: [".color-box{border:1px solid var(--ax-border-color);max-width:300px;padding:5px}.color-box .color-box-pallet{display:flex;width:100%;height:auto;flex-wrap:wrap;justify-content:space-between;align-items:center}.color-box .color-box-pallet div{width:18px;height:18px;cursor:pointer;display:flex;justify-content:center;align-items:center;border:1px solid var(--ax-border-color);margin:1px}.color-box .color-box-pallet .color-active{color:#fff;box-shadow:1px 1px 4px #5a5a5a;border-radius:50%;font-size:.875rem}.color-box .text-input{display:flex;justify-content:space-between}.color-box .text-input .color-part{padding:2px;display:flex;align-items:center;flex-direction:column;justify-content:center}.color-box .text-input .color-part.switch{cursor:pointer;font-weight:700}.color-box .text-input .color-part.switch:hover{text-decoration:underline}.color-box .text-input .color-part .ax-field-set .no-label input{margin-top:0!important;text-align:center;height:var(--ax-size-md)}\n"] }]
415
- }], ctorParameters: function () { return []; }, propDecorators: { onColorSelect: [{
416
- type: Output
417
- }], valueChange: [{
418
- type: Output
419
- }], value: [{
420
- type: Input
421
- }] } });
422
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvY29sb3ItcGlja2VyL2NvbG9yLWJveC9jb2xvci1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvc3JjL2xpYi9jb2xvci1waWNrZXIvY29sb3ItYm94L2NvbG9yLWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQVcsTUFBTSxjQUFjLENBQUM7Ozs7QUFVcEQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLHNCQUFzQjtJQUkzRDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBSFosZ0JBQVcsR0FBa0IsS0FBSyxDQUFDO1FBT25DLGtCQUFhLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFHakUsZ0JBQVcsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQXNDL0QsV0FBTSxHQUFXLENBQUMsQ0FBQztRQUNuQixXQUFNLEdBQVcsQ0FBQyxDQUFDO1FBQ25CLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFHbkIsV0FBTSxHQUFjO1lBQ2hCLG9DQUFvQztZQUNwQztnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNELHFDQUFxQztZQUNyQztnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBRWxCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRCxtQ0FBbUM7WUFDbkM7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNELHFDQUFxQztZQUNyQztnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRCxxQ0FBcUM7WUFDckM7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0QscUNBQXFDO1lBQ3JDLElBQUk7WUFDSixzQkFBc0I7WUFDdEIsS0FBSztZQUNMLElBQUk7WUFDSixzQkFBc0I7WUFDdEIsS0FBSztZQUNMLElBQUk7WUFDSixzQkFBc0I7WUFDdEIsS0FBSztZQUNMO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNELG9DQUFvQztZQUNwQztnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Qsb0NBQW9DO1lBRXBDO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNELG9DQUFvQztZQUNwQztnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFD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dCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYVmFsaWRhdGFibGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlL2VsZW1lbnQuY2xhc3MnO1xyXG5pbXBvcnQgeyBBWENvbG9yVXRpbCwgQVhDb2xvciB9IGZyb20gJ0BhY29yZXgvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXgtY29sb3ItYm94JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2xvci1ib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vY29sb3ItYm94LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7IHByb3ZpZGU6IEFYVmFsaWRhdGFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWENvbG9yQm94Q29tcG9uZW50IH0sXHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWENvbG9yQm94Q29tcG9uZW50IGV4dGVuZHMgQVhWYWxpZGF0YWJsZUNvbXBvbmVudCB7XHJcblxyXG4gICAgaW5wdXRGb3JtYXQ6ICdoZXgnIHwgJ3JnYicgPSAnaGV4JztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgb25Db2xvclNlbGVjdDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICAgIHByaXZhdGUgX3ZhbHVlOiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgc2V0IHZhbHVlKHY6IHN0cmluZykge1xyXG4gICAgICAgIGlmICh2ICE9IHRoaXMuX3ZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdjtcclxuICAgICAgICAgICAgaWYgKHYpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5jb2xvcnMuZmluZChjID0+IGMuY29kZSA9PT0gdik7XHJcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdENvbG9yKHNlbGVjdGVkKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29sb3JzLmZvckVhY2goKGkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaS5hY3RpdmUgPSBmYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc3QgcmdiID0gQVhDb2xvclV0aWwuaGV4MlJnYih2KTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAocmdiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yQ29sb3IgPSByZ2IucjtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdDb2xvciA9IHJnYi5nO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYkNvbG9yID0gcmdiLmI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJDb2xvciA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdDb2xvciA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJDb2xvciA9IG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHYpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByQ29sb3I6IG51bWJlciA9IDA7XHJcbiAgICBnQ29sb3I6IG51bWJlciA9IDA7XHJcbiAgICBiQ29sb3I6IG51bWJlciA9IDA7XHJcblxyXG5cclxuICAgIGNvbG9yczogQVhDb2xvcltdID0gW1xyXG4gICAgICAgIC8vIFBpbmsgICoqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyNGRkMwQ0InLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnI0ZGNjlCNCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICcjREI3MDkzJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyNDNzE1ODUnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8gUHVycGxlICoqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyNFNkU2RkEnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnI0Q4QkZEOCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICcjRERBMEREJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyNEQTcwRDYnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnI0ZGMDBGRicsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICcjQkE1NUQzJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyM5OTMyQ0MnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnIzhBMkJFMicsXHJcblxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnIzhCMDA4QicsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICcjOTM3MERCJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyM3QjY4RUUnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnIzZBNUFDRCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICcjNDgzRDhCJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyM2NjMzOTknLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnIzRCMDA4MicsXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBSZWQgICoqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyNGRkEwN0EnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnI0ZBODA3MicsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICcjRjA4MDgwJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyNDRDVDNUMnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnI0RDMTQzQycsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICcjRkYwMDAwJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyNCMjIyMjInLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnIzhCMDAwMCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBPcmFuZ2UgKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnI0ZGQTUwMCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICcjRkY4QzAwJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyNGRjdGNTAnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnI0ZGNjM0NycsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICcjRkY0NTAwJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyNGRkQ3MDAnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8gWWVsbG93ICoqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyNGRkZGMDAnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnI0ZGRkZFMCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICcjRkZGQUNEJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyNGRkVGRDUnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnI0ZGRTRCNScsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICcjRkZEQUI5JyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyNFRUU4QUEnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnI0YwRTY4QycsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICcjQkRCNzZCJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vICBCcm93biAqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICAgICAgICAvLyB7XHJcbiAgICAgICAgLy8gICAgIGNvZGU6ICcjRkZGOERDJ1xyXG4gICAgICAgIC8vIH0sXHJcbiAgICAgICAgLy8ge1xyXG4gICAgICAgIC8vICAgICBjb2RlOiAnI0ZGRUJDRCdcclxuICAgICAgICAvLyB9LFxyXG4gICAgICAgIC8vIHtcclxuICAgICAgICAvLyAgICAgY29kZTogJyNGRkU0QzQnXHJcbiAgICAgICAgLy8gfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICcjRkZERUFEJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnI0RFQjg4NydcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyNEMkI0OEMnXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICcjREFBNTIwJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnI0I4ODYwQidcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyNDRDg1M0YnXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICcjRDI2OTFFJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnIzhCNDUxMydcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyNBMDUyMkQnXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBHcmVlbiAqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICcjQURGRjJGJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyM3RkZGMDAnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnIzAwRkYwMCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICcjMzJDRDMyJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyM5OEZCOTgnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnIzkwRUU5MCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICcjMDBGQTlBJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyMwMEZGN0YnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnIzNDQjM3MScsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICcjMkU4QjU3JyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyMyMjhCMjInLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnIzAwODAwMCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICcjMDA2NDAwJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyM5QUNEMzInLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnIzZCOEUyMycsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICcjNTU2QjJGJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyM2NkNEQUEnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnIzhGQkM4RicsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICcjMjBCMkFBJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyMwMDhCOEInLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8gIEN5YW4gKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyNFMEZGRkYnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnI0FGRUVFRScsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICcjN0ZGRkQ0JyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyM0MEUwRDAnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnIzQ4RDFDQycsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICcjMDBDRUQxJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vICBCbHVlICoqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyM1RjlFQTAnXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICcjNDY4MkI0J1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnI0IwQzRERSdcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyNBREQ4RTYnXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICcjQjBFMEU2J1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnIzg3Q0VGQSdcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyM4N0NFRUInXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICcjNjQ5NUVEJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnIzAwQkZGRidcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyMwMEZGRkYnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnIzFFOTBGRidcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyM0MTY5RTEnXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICcjMDAwMEZGJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnIzAwMDBDRCdcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyMwMDAwOEInXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICcjMTkxOTcwJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8gR3JheVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyNGRkZGRkYnXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICcjRENEQ0RDJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnIzgwODA4MCdcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJyM3MDgwOTAnXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICcjMDAwMDAwJ1xyXG4gICAgICAgIH0sXHJcbiAgICBdO1xyXG5cclxuXHJcbiAgICAvLyB2YWxpZGF0ZSgpOiBQcm9taXNlPElWYWxpZGF0aW9uUnVsZVJlc3VsdD4ge1xyXG5cclxuICAgIC8vICAgICByZXR1cm4gbmV3IFByb21pc2U8SVZhbGlkYXRpb25SdWxlUmVzdWx0PihyZXNvbHZlID0+IHtcclxuICAgIC8vICAgICAgICAgaWYgKCF0aGlzLnZhbGlkYXRvcikge1xyXG4gICAgLy8gICAgICAgICAgICAgcmVzb2x2ZSh7IHJlc3VsdDogdHJ1ZSB9KTtcclxuICAgIC8vICAgICAgICAgfSBlbHNlIHtcclxuICAgIC8vICAgICAgICAgICAgIC8vIHRoaXMudmFsaWRhdG9yLnZhbGlkYXRlKHRoaXMubW9kZWwpLnRoZW4ociA9PiB7XHJcbiAgICAvLyAgICAgICAgICAgICAvLyAgICAgci50YXJnZXQgPSB0aGlzO1xyXG4gICAgLy8gICAgICAgICAgICAgLy8gICAgIGlmIChyLnJlc3VsdCkge1xyXG4gICAgLy8gICAgICAgICAgICAgLy8gICAgICAgICB0aGlzLmVycm9yVGV4dCA9IG51bGw7XHJcbiAgICAvLyAgICAgICAgICAgICAvLyAgICAgfSBlbHNlIHtcclxuICAgIC8vICAgICAgICAgICAgIC8vICAgICAgICAgdGhpcy5lcnJvclRleHQgPSByLm1lc3NhZ2U7XHJcbiAgICAvLyAgICAgICAgICAgICAvLyAgICAgfVxyXG4gICAgLy8gICAgICAgICAgICAgLy8gICAgIHJlc29sdmUocik7XHJcbiAgICAvLyAgICAgICAgICAgICAvLyB9KTtcclxuXHJcbiAgICAvLyAgICAgICAgICAgICByZXNvbHZlKClcclxuICAgIC8vICAgICAgICAgfVxyXG4gICAgLy8gICAgIH0pO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIGZvY3VzKCkge1xyXG4gICAgfVxyXG5cclxuICAgIGNsZWFyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ29sb3JDbGljayhpdGVtOiBBWENvbG9yKSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IGl0ZW0gPyBpdGVtLmNvZGUgOiBudWxsO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0Q29sb3IoaXRlbSk7XHJcbiAgICAgICAgdGhpcy5vbkNvbG9yU2VsZWN0LmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlQ29sb3JDaGFuZ2UoKSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IEFYQ29sb3JVdGlsLnJnYjJIZXgodGhpcy5yQ29sb3IsIHRoaXMuZ0NvbG9yLCB0aGlzLmJDb2xvcik7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2VsZWN0Q29sb3IoaXRlbTogQVhDb2xvcikge1xyXG4gICAgICAgIHRoaXMuY29sb3JzLmZvckVhY2goKGkpID0+IHtcclxuICAgICAgICAgICAgaS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpdGVtLmFjdGl2ZSA9IHRydWVcclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVLZXlFdmVudChlOiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICAgICAgaWYgKGUuY29kZSA9PSAnRW50ZXInIHx8IGUuY29kZSA9PSAnTnVtcGFkRW50ZXInKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25Db2xvclNlbGVjdC5lbWl0KHRoaXMudmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29sb3ItYm94XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sb3ItYm94LXBhbGxldFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2xvci1pdGVtXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29sb3JzXCIgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiaXRlbS5jb2RlXCIgW3RpdGxlXT1cIml0ZW0uY29kZVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkNvbG9yQ2xpY2soaXRlbSlcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2hlY2stY2lyY2xlIGNvbG9yLWFjdGl2ZVwiICpuZ0lmPVwiaXRlbS5hY3RpdmVcIj48L2k+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWlucHV0XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlucHV0Rm9ybWF0PT0ncmdiJztlbHNlIGhleFRlbXBsYXRlXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xvci1wYXJ0XCI+XHJcbiAgICAgICAgICAgICAgICA8YXgtdGV4dC1ib3ggWyh2YWx1ZSldPVwickNvbG9yXCIgKHRleHRDaGFuZ2UpPVwiaGFuZGxlQ29sb3JDaGFuZ2UoKVwiIChvbktleSk9XCJoYW5kbGVLZXlFdmVudCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICA8L2F4LXRleHQtYm94PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbG9yLXBhcnRcIj5cclxuICAgICAgICAgICAgICAgIDxheC10ZXh0LWJveCBbKHZhbHVlKV09XCJnQ29sb3JcIiAodGV4dENoYW5nZSk9XCJoYW5kbGVDb2xvckNoYW5nZSgpXCIgKG9uS2V5KT1cImhhbmRsZUtleUV2ZW50KCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgIDwvYXgtdGV4dC1ib3g+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sb3ItcGFydFwiPlxyXG4gICAgICAgICAgICAgICAgPGF4LXRleHQtYm94IFsodmFsdWUpXT1cImJDb2xvclwiICh0ZXh0Q2hhbmdlKT1cImhhbmRsZUNvbG9yQ2hhbmdlKClcIiAob25LZXkpPVwiaGFuZGxlS2V5RXZlbnQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgPC9heC10ZXh0LWJveD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xvci1wYXJ0IHN3aXRjaFwiIChjbGljayk9XCJpbnB1dEZvcm1hdD0naGV4J1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+UkdCPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI2hleFRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sb3ItcGFydFwiPlxyXG4gICAgICAgICAgICAgICAgPGF4LXRleHQtYm94IFsodmFsdWUpXT1cInZhbHVlXCIgc2l6ZT1cInNtXCIgKG9uS2V5KT1cImhhbmRsZUtleUV2ZW50KCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgIDwvYXgtdGV4dC1ib3g+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjb2xvci1wYXJ0IHN3aXRjaFwiIChjbGljayk9XCJpbnB1dEZvcm1hdD0ncmdiJ1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+SEVYPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
1
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import { AXValidatableComponent } from '../../base/element.class';
3
+ import { AXColorUtil } from '@acorex/core';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../textbox/textbox.component";
6
+ import * as i2 from "@angular/common";
7
+ export class AXColorBoxComponent extends AXValidatableComponent {
8
+ constructor() {
9
+ super();
10
+ this.inputFormat = 'hex';
11
+ this.onColorSelect = new EventEmitter();
12
+ this.valueChange = new EventEmitter();
13
+ this.rColor = 0;
14
+ this.gColor = 0;
15
+ this.bColor = 0;
16
+ this.colors = [
17
+ // Pink ***************************
18
+ {
19
+ code: '#FFC0CB',
20
+ },
21
+ {
22
+ code: '#FF69B4',
23
+ },
24
+ {
25
+ code: '#DB7093',
26
+ },
27
+ {
28
+ code: '#C71585',
29
+ },
30
+ // Purple ***************************
31
+ {
32
+ code: '#E6E6FA',
33
+ },
34
+ {
35
+ code: '#D8BFD8',
36
+ },
37
+ {
38
+ code: '#DDA0DD',
39
+ },
40
+ {
41
+ code: '#DA70D6',
42
+ },
43
+ {
44
+ code: '#FF00FF',
45
+ },
46
+ {
47
+ code: '#BA55D3',
48
+ },
49
+ {
50
+ code: '#9932CC',
51
+ },
52
+ {
53
+ code: '#8A2BE2',
54
+ },
55
+ {
56
+ code: '#8B008B',
57
+ },
58
+ {
59
+ code: '#9370DB',
60
+ },
61
+ {
62
+ code: '#7B68EE',
63
+ },
64
+ {
65
+ code: '#6A5ACD',
66
+ },
67
+ {
68
+ code: '#483D8B',
69
+ },
70
+ {
71
+ code: '#663399',
72
+ },
73
+ {
74
+ code: '#4B0082',
75
+ },
76
+ // Red ***************************
77
+ {
78
+ code: '#FFA07A',
79
+ },
80
+ {
81
+ code: '#FA8072',
82
+ },
83
+ {
84
+ code: '#F08080',
85
+ },
86
+ {
87
+ code: '#CD5C5C',
88
+ },
89
+ {
90
+ code: '#DC143C',
91
+ },
92
+ {
93
+ code: '#FF0000',
94
+ },
95
+ {
96
+ code: '#B22222',
97
+ },
98
+ {
99
+ code: '#8B0000',
100
+ },
101
+ // Orange ***************************
102
+ {
103
+ code: '#FFA500',
104
+ },
105
+ {
106
+ code: '#FF8C00',
107
+ },
108
+ {
109
+ code: '#FF7F50',
110
+ },
111
+ {
112
+ code: '#FF6347',
113
+ },
114
+ {
115
+ code: '#FF4500',
116
+ },
117
+ {
118
+ code: '#FFD700',
119
+ },
120
+ // Yellow ***************************
121
+ {
122
+ code: '#FFFF00',
123
+ },
124
+ {
125
+ code: '#FFFFE0',
126
+ },
127
+ {
128
+ code: '#FFFACD',
129
+ },
130
+ {
131
+ code: '#FFEFD5',
132
+ },
133
+ {
134
+ code: '#FFE4B5',
135
+ },
136
+ {
137
+ code: '#FFDAB9',
138
+ },
139
+ {
140
+ code: '#EEE8AA',
141
+ },
142
+ {
143
+ code: '#F0E68C',
144
+ },
145
+ {
146
+ code: '#BDB76B',
147
+ },
148
+ // Brown ***************************
149
+ // {
150
+ // code: '#FFF8DC'
151
+ // },
152
+ // {
153
+ // code: '#FFEBCD'
154
+ // },
155
+ // {
156
+ // code: '#FFE4C4'
157
+ // },
158
+ {
159
+ code: '#FFDEAD'
160
+ },
161
+ {
162
+ code: '#DEB887'
163
+ },
164
+ {
165
+ code: '#D2B48C'
166
+ },
167
+ {
168
+ code: '#DAA520'
169
+ },
170
+ {
171
+ code: '#B8860B'
172
+ },
173
+ {
174
+ code: '#CD853F'
175
+ },
176
+ {
177
+ code: '#D2691E'
178
+ },
179
+ {
180
+ code: '#8B4513'
181
+ },
182
+ {
183
+ code: '#A0522D'
184
+ },
185
+ // Green ***************************
186
+ {
187
+ code: '#ADFF2F',
188
+ },
189
+ {
190
+ code: '#7FFF00',
191
+ },
192
+ {
193
+ code: '#00FF00',
194
+ },
195
+ {
196
+ code: '#32CD32',
197
+ },
198
+ {
199
+ code: '#98FB98',
200
+ },
201
+ {
202
+ code: '#90EE90',
203
+ },
204
+ {
205
+ code: '#00FA9A',
206
+ },
207
+ {
208
+ code: '#00FF7F',
209
+ },
210
+ {
211
+ code: '#3CB371',
212
+ },
213
+ {
214
+ code: '#2E8B57',
215
+ },
216
+ {
217
+ code: '#228B22',
218
+ },
219
+ {
220
+ code: '#008000',
221
+ },
222
+ {
223
+ code: '#006400',
224
+ },
225
+ {
226
+ code: '#9ACD32',
227
+ },
228
+ {
229
+ code: '#6B8E23',
230
+ },
231
+ {
232
+ code: '#556B2F',
233
+ },
234
+ {
235
+ code: '#66CDAA',
236
+ },
237
+ {
238
+ code: '#8FBC8F',
239
+ },
240
+ {
241
+ code: '#20B2AA',
242
+ },
243
+ {
244
+ code: '#008B8B',
245
+ },
246
+ // Cyan ***************************
247
+ {
248
+ code: '#E0FFFF',
249
+ },
250
+ {
251
+ code: '#AFEEEE',
252
+ },
253
+ {
254
+ code: '#7FFFD4',
255
+ },
256
+ {
257
+ code: '#40E0D0',
258
+ },
259
+ {
260
+ code: '#48D1CC',
261
+ },
262
+ {
263
+ code: '#00CED1',
264
+ },
265
+ // Blue ***************************
266
+ {
267
+ code: '#5F9EA0'
268
+ },
269
+ {
270
+ code: '#4682B4'
271
+ },
272
+ {
273
+ code: '#B0C4DE'
274
+ },
275
+ {
276
+ code: '#ADD8E6'
277
+ },
278
+ {
279
+ code: '#B0E0E6'
280
+ },
281
+ {
282
+ code: '#87CEFA'
283
+ },
284
+ {
285
+ code: '#87CEEB'
286
+ },
287
+ {
288
+ code: '#6495ED'
289
+ },
290
+ {
291
+ code: '#00BFFF'
292
+ },
293
+ {
294
+ code: '#00FFFF',
295
+ },
296
+ {
297
+ code: '#1E90FF'
298
+ },
299
+ {
300
+ code: '#4169E1'
301
+ },
302
+ {
303
+ code: '#0000FF'
304
+ },
305
+ {
306
+ code: '#0000CD'
307
+ },
308
+ {
309
+ code: '#00008B'
310
+ },
311
+ {
312
+ code: '#191970'
313
+ },
314
+ // Gray
315
+ {
316
+ code: '#FFFFFF'
317
+ },
318
+ {
319
+ code: '#DCDCDC'
320
+ },
321
+ {
322
+ code: '#808080'
323
+ },
324
+ {
325
+ code: '#708090'
326
+ },
327
+ {
328
+ code: '#000000'
329
+ },
330
+ ];
331
+ }
332
+ get value() {
333
+ return this._value;
334
+ }
335
+ set value(v) {
336
+ if (v != this._value) {
337
+ this._value = v;
338
+ if (v) {
339
+ const selected = this.colors.find(c => c.code === v);
340
+ if (selected) {
341
+ this.selectColor(selected);
342
+ }
343
+ else {
344
+ this.colors.forEach((i) => {
345
+ i.active = false;
346
+ });
347
+ }
348
+ const rgb = AXColorUtil.hex2Rgb(v);
349
+ if (rgb) {
350
+ this.rColor = rgb.r;
351
+ this.gColor = rgb.g;
352
+ this.bColor = rgb.b;
353
+ }
354
+ }
355
+ else {
356
+ this.rColor = null;
357
+ this.gColor = null;
358
+ this.bColor = null;
359
+ }
360
+ this.valueChange.emit(v);
361
+ }
362
+ }
363
+ // validate(): Promise<IValidationRuleResult> {
364
+ // return new Promise<IValidationRuleResult>(resolve => {
365
+ // if (!this.validator) {
366
+ // resolve({ result: true });
367
+ // } else {
368
+ // // this.validator.validate(this.model).then(r => {
369
+ // // r.target = this;
370
+ // // if (r.result) {
371
+ // // this.errorText = null;
372
+ // // } else {
373
+ // // this.errorText = r.message;
374
+ // // }
375
+ // // resolve(r);
376
+ // // });
377
+ // resolve()
378
+ // }
379
+ // });
380
+ // }
381
+ focus() {
382
+ }
383
+ clear() {
384
+ this.value = null;
385
+ }
386
+ onColorClick(item) {
387
+ this.value = item ? item.code : null;
388
+ this.selectColor(item);
389
+ this.onColorSelect.emit(this.value);
390
+ }
391
+ handleColorChange() {
392
+ this.value = AXColorUtil.rgb2Hex(this.rColor, this.gColor, this.bColor);
393
+ }
394
+ selectColor(item) {
395
+ this.colors.forEach((i) => {
396
+ i.active = false;
397
+ });
398
+ item.active = true;
399
+ }
400
+ handleKeyEvent(e) {
401
+ if (e.code == 'Enter' || e.code == 'NumpadEnter') {
402
+ this.onColorSelect.emit(this.value);
403
+ }
404
+ }
405
+ }
406
+ AXColorBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXColorBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
407
+ AXColorBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AXColorBoxComponent, selector: "ax-color-box", inputs: { value: "value" }, outputs: { onColorSelect: "onColorSelect", valueChange: "valueChange" }, providers: [
408
+ { provide: AXValidatableComponent, useExisting: AXColorBoxComponent },
409
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"color-box\">\n <div class=\"color-box-pallet\">\n <div class=\"color-item\" *ngFor=\"let item of colors\" [style.background-color]=\"item.code\" [title]=\"item.code\"\n (click)=\"onColorClick(item)\">\n <i class=\"fas fa-check-circle color-active\" *ngIf=\"item.active\"></i>\n </div>\n </div>\n <div class=\"text-input\">\n <ng-container *ngIf=\"inputFormat=='rgb';else hexTemplate\">\n <div class=\"color-part\">\n <ax-text-box [(value)]=\"rColor\" (textChange)=\"handleColorChange()\" (onKey)=\"handleKeyEvent($event)\">\n </ax-text-box>\n </div>\n <div class=\"color-part\">\n <ax-text-box [(value)]=\"gColor\" (textChange)=\"handleColorChange()\" (onKey)=\"handleKeyEvent($event)\">\n </ax-text-box>\n </div>\n <div class=\"color-part\">\n <ax-text-box [(value)]=\"bColor\" (textChange)=\"handleColorChange()\" (onKey)=\"handleKeyEvent($event)\">\n </ax-text-box>\n </div>\n <div class=\"color-part switch\" (click)=\"inputFormat='hex'\">\n <span>RGB</span>\n </div>\n </ng-container>\n <ng-template #hexTemplate>\n <div class=\"color-part\">\n <ax-text-box [(value)]=\"value\" size=\"sm\" (onKey)=\"handleKeyEvent($event)\">\n </ax-text-box>\n </div>\n <!-- <div class=\"color-part switch\" (click)=\"inputFormat='rgb'\">\n <span>HEX</span>\n </div> -->\n </ng-template>\n\n </div>\n</div>", styles: [".color-box{border:1px solid var(--ax-border-color);max-width:300px;padding:5px}.color-box .color-box-pallet{display:flex;width:100%;height:auto;flex-wrap:wrap;justify-content:space-between;align-items:center}.color-box .color-box-pallet div{width:18px;height:18px;cursor:pointer;display:flex;justify-content:center;align-items:center;border:1px solid var(--ax-border-color);margin:1px}.color-box .color-box-pallet .color-active{color:#fff;box-shadow:1px 1px 4px #5a5a5a;border-radius:50%;font-size:.875rem}.color-box .text-input{display:flex;justify-content:space-between}.color-box .text-input .color-part{padding:2px;display:flex;align-items:center;flex-direction:column;justify-content:center}.color-box .text-input .color-part.switch{cursor:pointer;font-weight:700}.color-box .text-input .color-part.switch:hover{text-decoration:underline}.color-box .text-input .color-part .ax-field-set .no-label input{margin-top:0!important;text-align:center;height:var(--ax-size-md)}\n"], components: [{ type: i1.AXTextBoxComponent, selector: "ax-text-box", inputs: ["mask", "type", "showMask", "maxLength", "maskGuid", "maskPlaceholder", "maskKeepCharPositions"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
410
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXColorBoxComponent, decorators: [{
411
+ type: Component,
412
+ args: [{ selector: 'ax-color-box', providers: [
413
+ { provide: AXValidatableComponent, useExisting: AXColorBoxComponent },
414
+ ], template: "<div class=\"color-box\">\n <div class=\"color-box-pallet\">\n <div class=\"color-item\" *ngFor=\"let item of colors\" [style.background-color]=\"item.code\" [title]=\"item.code\"\n (click)=\"onColorClick(item)\">\n <i class=\"fas fa-check-circle color-active\" *ngIf=\"item.active\"></i>\n </div>\n </div>\n <div class=\"text-input\">\n <ng-container *ngIf=\"inputFormat=='rgb';else hexTemplate\">\n <div class=\"color-part\">\n <ax-text-box [(value)]=\"rColor\" (textChange)=\"handleColorChange()\" (onKey)=\"handleKeyEvent($event)\">\n </ax-text-box>\n </div>\n <div class=\"color-part\">\n <ax-text-box [(value)]=\"gColor\" (textChange)=\"handleColorChange()\" (onKey)=\"handleKeyEvent($event)\">\n </ax-text-box>\n </div>\n <div class=\"color-part\">\n <ax-text-box [(value)]=\"bColor\" (textChange)=\"handleColorChange()\" (onKey)=\"handleKeyEvent($event)\">\n </ax-text-box>\n </div>\n <div class=\"color-part switch\" (click)=\"inputFormat='hex'\">\n <span>RGB</span>\n </div>\n </ng-container>\n <ng-template #hexTemplate>\n <div class=\"color-part\">\n <ax-text-box [(value)]=\"value\" size=\"sm\" (onKey)=\"handleKeyEvent($event)\">\n </ax-text-box>\n </div>\n <!-- <div class=\"color-part switch\" (click)=\"inputFormat='rgb'\">\n <span>HEX</span>\n </div> -->\n </ng-template>\n\n </div>\n</div>", styles: [".color-box{border:1px solid var(--ax-border-color);max-width:300px;padding:5px}.color-box .color-box-pallet{display:flex;width:100%;height:auto;flex-wrap:wrap;justify-content:space-between;align-items:center}.color-box .color-box-pallet div{width:18px;height:18px;cursor:pointer;display:flex;justify-content:center;align-items:center;border:1px solid var(--ax-border-color);margin:1px}.color-box .color-box-pallet .color-active{color:#fff;box-shadow:1px 1px 4px #5a5a5a;border-radius:50%;font-size:.875rem}.color-box .text-input{display:flex;justify-content:space-between}.color-box .text-input .color-part{padding:2px;display:flex;align-items:center;flex-direction:column;justify-content:center}.color-box .text-input .color-part.switch{cursor:pointer;font-weight:700}.color-box .text-input .color-part.switch:hover{text-decoration:underline}.color-box .text-input .color-part .ax-field-set .no-label input{margin-top:0!important;text-align:center;height:var(--ax-size-md)}\n"] }]
415
+ }], ctorParameters: function () { return []; }, propDecorators: { onColorSelect: [{
416
+ type: Output
417
+ }], valueChange: [{
418
+ type: Output
419
+ }], value: [{
420
+ type: Input
421
+ }] } });
422
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvY29sb3ItcGlja2VyL2NvbG9yLWJveC9jb2xvci1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvc3JjL2xpYi9jb2xvci1waWNrZXIvY29sb3ItYm94L2NvbG9yLWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQVcsTUFBTSxjQUFjLENBQUM7Ozs7QUFVcEQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLHNCQUFzQjtJQUkzRDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBSFosZ0JBQVcsR0FBa0IsS0FBSyxDQUFDO1FBT25DLGtCQUFhLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFHakUsZ0JBQVcsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQXNDL0QsV0FBTSxHQUFXLENBQUMsQ0FBQztRQUNuQixXQUFNLEdBQVcsQ0FBQyxDQUFDO1FBQ25CLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFHbkIsV0FBTSxHQUFjO1lBQ2hCLG9DQUFvQztZQUNwQztnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNELHFDQUFxQztZQUNyQztnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBRWxCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRCxtQ0FBbUM7WUFDbkM7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNELHFDQUFxQztZQUNyQztnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRCxxQ0FBcUM7WUFDckM7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0QscUNBQXFDO1lBQ3JDLElBQUk7WUFDSixzQkFBc0I7WUFDdEIsS0FBSztZQUNMLElBQUk7WUFDSixzQkFBc0I7WUFDdEIsS0FBSztZQUNMLElBQUk7WUFDSixzQkFBc0I7WUFDdEIsS0FBSztZQUNMO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNELG9DQUFvQztZQUNwQztnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Qsb0NBQW9DO1lBRXBDO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNELG9DQUFvQztZQUNwQztnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsU0FBUzthQUNsQjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7YUFDbEI7WUFD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dCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFZhbGlkYXRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS9lbGVtZW50LmNsYXNzJztcbmltcG9ydCB7IEFYQ29sb3JVdGlsLCBBWENvbG9yIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdheC1jb2xvci1ib3gnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2xvci1ib3guY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NvbG9yLWJveC5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IEFYVmFsaWRhdGFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWENvbG9yQm94Q29tcG9uZW50IH0sXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBBWENvbG9yQm94Q29tcG9uZW50IGV4dGVuZHMgQVhWYWxpZGF0YWJsZUNvbXBvbmVudCB7XG5cbiAgICBpbnB1dEZvcm1hdDogJ2hleCcgfCAncmdiJyA9ICdoZXgnO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpXG4gICAgb25Db2xvclNlbGVjdDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgdmFsdWUodjogc3RyaW5nKSB7XG4gICAgICAgIGlmICh2ICE9IHRoaXMuX3ZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHY7XG4gICAgICAgICAgICBpZiAodikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5jb2xvcnMuZmluZChjID0+IGMuY29kZSA9PT0gdik7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0Q29sb3Ioc2VsZWN0ZWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb2xvcnMuZm9yRWFjaCgoaSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaS5hY3RpdmUgPSBmYWxzZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgcmdiID0gQVhDb2xvclV0aWwuaGV4MlJnYih2KTtcblxuICAgICAgICAgICAgICAgIGlmIChyZ2IpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yQ29sb3IgPSByZ2IucjtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nQ29sb3IgPSByZ2IuZztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iQ29sb3IgPSByZ2IuYjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJDb2xvciA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5nQ29sb3IgPSBudWxsO1xuICAgICAgICAgICAgICAgIHRoaXMuYkNvbG9yID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJDb2xvcjogbnVtYmVyID0gMDtcbiAgICBnQ29sb3I6IG51bWJlciA9IDA7XG4gICAgYkNvbG9yOiBudW1iZXIgPSAwO1xuXG5cbiAgICBjb2xvcnM6IEFYQ29sb3JbXSA9IFtcbiAgICAgICAgLy8gUGluayAgKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICcjRkZDMENCJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJyNGRjY5QjQnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnI0RCNzA5MycsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICcjQzcxNTg1JyxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gUHVycGxlICoqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnI0U2RTZGQScsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICcjRDhCRkQ4JyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJyNEREEwREQnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnI0RBNzBENicsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICcjRkYwMEZGJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJyNCQTU1RDMnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnIzk5MzJDQycsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICcjOEEyQkUyJyxcblxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnIzhCMDA4QicsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICcjOTM3MERCJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJyM3QjY4RUUnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnIzZBNUFDRCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICcjNDgzRDhCJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJyM2NjMzOTknLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnIzRCMDA4MicsXG4gICAgICAgIH0sXG4gICAgICAgIC8vIFJlZCAgKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICcjRkZBMDdBJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJyNGQTgwNzInLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnI0YwODA4MCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICcjQ0Q1QzVDJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJyNEQzE0M0MnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnI0ZGMDAwMCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICcjQjIyMjIyJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJyM4QjAwMDAnLFxuICAgICAgICB9LFxuICAgICAgICAvLyBPcmFuZ2UgKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICcjRkZBNTAwJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJyNGRjhDMDAnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnI0ZGN0Y1MCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICcjRkY2MzQ3JyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJyNGRjQ1MDAnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnI0ZGRDcwMCcsXG4gICAgICAgIH0sXG4gICAgICAgIC8vIFllbGxvdyAqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJyNGRkZGMDAnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnI0ZGRkZFMCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICcjRkZGQUNEJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJyNGRkVGRDUnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnI0ZGRTRCNScsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICcjRkZEQUI5JyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJyNFRUU4QUEnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnI0YwRTY4QycsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICcjQkRCNzZCJyxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gIEJyb3duICoqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAvLyB7XG4gICAgICAgIC8vICAgICBjb2RlOiAnI0ZGRjhEQydcbiAgICAgICAgLy8gfSxcbiAgICAgICAgLy8ge1xuICAgICAgICAvLyAgICAgY29kZTogJyNGRkVCQ0QnXG4gICAgICAgIC8vIH0sXG4gICAgICAgIC8vIHtcbiAgICAgICAgLy8gICAgIGNvZGU6ICcjRkZFNEM0J1xuICAgICAgICAvLyB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnI0ZGREVBRCdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJyNERUI4ODcnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICcjRDJCNDhDJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnI0RBQTUyMCdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJyNCODg2MEInXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICcjQ0Q4NTNGJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnI0QyNjkxRSdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJyM4QjQ1MTMnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICcjQTA1MjJEJ1xuICAgICAgICB9LFxuICAgICAgICAvLyBHcmVlbiAqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJyNBREZGMkYnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnIzdGRkYwMCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICcjMDBGRjAwJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJyMzMkNEMzInLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnIzk4RkI5OCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICcjOTBFRTkwJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJyMwMEZBOUEnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnIzAwRkY3RicsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICcjM0NCMzcxJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJyMyRThCNTcnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnIzIyOEIyMicsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICcjMDA4MDAwJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJyMwMDY0MDAnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnIzlBQ0QzMicsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICcjNkI4RTIzJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJyM1NTZCMkYnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnIzY2Q0RBQScsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICcjOEZCQzhGJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJyMyMEIyQUEnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnIzAwOEI4QicsXG4gICAgICAgIH0sXG4gICAgICAgIC8vICBDeWFuICoqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICcjRTBGRkZGJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJyNBRkVFRUUnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnIzdGRkZENCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICcjNDBFMEQwJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJyM0OEQxQ0MnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnIzAwQ0VEMScsXG4gICAgICAgIH0sXG4gICAgICAgIC8vICBCbHVlICoqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnIzVGOUVBMCdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJyM0NjgyQjQnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICcjQjBDNERFJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnI0FERDhFNidcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJyNCMEUwRTYnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICcjODdDRUZBJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnIzg3Q0VFQidcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJyM2NDk1RUQnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICcjMDBCRkZGJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnIzAwRkZGRicsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICcjMUU5MEZGJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnIzQxNjlFMSdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJyMwMDAwRkYnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICcjMDAwMENEJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnIzAwMDA4QidcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJyMxOTE5NzAnXG4gICAgICAgIH0sXG4gICAgICAgIC8vIEdyYXlcbiAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJyNGRkZGRkYnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICcjRENEQ0RDJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnIzgwODA4MCdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJyM3MDgwOTAnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICcjMDAwMDAwJ1xuICAgICAgICB9LFxuICAgIF07XG5cblxuICAgIC8vIHZhbGlkYXRlKCk6IFByb21pc2U8SVZhbGlkYXRpb25SdWxlUmVzdWx0PiB7XG5cbiAgICAvLyAgICAgcmV0dXJuIG5ldyBQcm9taXNlPElWYWxpZGF0aW9uUnVsZVJlc3VsdD4ocmVzb2x2ZSA9PiB7XG4gICAgLy8gICAgICAgICBpZiAoIXRoaXMudmFsaWRhdG9yKSB7XG4gICAgLy8gICAgICAgICAgICAgcmVzb2x2ZSh7IHJlc3VsdDogdHJ1ZSB9KTtcbiAgICAvLyAgICAgICAgIH0gZWxzZSB7XG4gICAgLy8gICAgICAgICAgICAgLy8gdGhpcy52YWxpZGF0b3IudmFsaWRhdGUodGhpcy5tb2RlbCkudGhlbihyID0+IHtcbiAgICAvLyAgICAgICAgICAgICAvLyAgICAgci50YXJnZXQgPSB0aGlzO1xuICAgIC8vICAgICAgICAgICAgIC8vICAgICBpZiAoci5yZXN1bHQpIHtcbiAgICAvLyAgICAgICAgICAgICAvLyAgICAgICAgIHRoaXMuZXJyb3JUZXh0ID0gbnVsbDtcbiAgICAvLyAgICAgICAgICAgICAvLyAgICAgfSBlbHNlIHtcbiAgICAvLyAgICAgICAgICAgICAvLyAgICAgICAgIHRoaXMuZXJyb3JUZXh0ID0gci5tZXNzYWdlO1xuICAgIC8vICAgICAgICAgICAgIC8vICAgICB9XG4gICAgLy8gICAgICAgICAgICAgLy8gICAgIHJlc29sdmUocik7XG4gICAgLy8gICAgICAgICAgICAgLy8gfSk7XG5cbiAgICAvLyAgICAgICAgICAgICByZXNvbHZlKClcbiAgICAvLyAgICAgICAgIH1cbiAgICAvLyAgICAgfSk7XG4gICAgLy8gfVxuXG4gICAgZm9jdXMoKSB7XG4gICAgfVxuXG4gICAgY2xlYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xuICAgIH1cblxuICAgIG9uQ29sb3JDbGljayhpdGVtOiBBWENvbG9yKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBpdGVtID8gaXRlbS5jb2RlIDogbnVsbDtcbiAgICAgICAgdGhpcy5zZWxlY3RDb2xvcihpdGVtKTtcbiAgICAgICAgdGhpcy5vbkNvbG9yU2VsZWN0LmVtaXQodGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgaGFuZGxlQ29sb3JDaGFuZ2UoKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBBWENvbG9yVXRpbC5yZ2IySGV4KHRoaXMuckNvbG9yLCB0aGlzLmdDb2xvciwgdGhpcy5iQ29sb3IpO1xuXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZWxlY3RDb2xvcihpdGVtOiBBWENvbG9yKSB7XG4gICAgICAgIHRoaXMuY29sb3JzLmZvckVhY2goKGkpID0+IHtcbiAgICAgICAgICAgIGkuYWN0aXZlID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgICAgICBpdGVtLmFjdGl2ZSA9IHRydWVcbiAgICB9XG5cbiAgICBoYW5kbGVLZXlFdmVudChlOiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmIChlLmNvZGUgPT0gJ0VudGVyJyB8fCBlLmNvZGUgPT0gJ051bXBhZEVudGVyJykge1xuICAgICAgICAgICAgdGhpcy5vbkNvbG9yU2VsZWN0LmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29sb3ItYm94XCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbG9yLWJveC1wYWxsZXRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbG9yLWl0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb2xvcnNcIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJpdGVtLmNvZGVcIiBbdGl0bGVdPVwiaXRlbS5jb2RlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkNvbG9yQ2xpY2soaXRlbSlcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNoZWNrLWNpcmNsZSBjb2xvci1hY3RpdmVcIiAqbmdJZj1cIml0ZW0uYWN0aXZlXCI+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1pbnB1dFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW5wdXRGb3JtYXQ9PSdyZ2InO2Vsc2UgaGV4VGVtcGxhdGVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xvci1wYXJ0XCI+XG4gICAgICAgICAgICAgICAgPGF4LXRleHQtYm94IFsodmFsdWUpXT1cInJDb2xvclwiICh0ZXh0Q2hhbmdlKT1cImhhbmRsZUNvbG9yQ2hhbmdlKClcIiAob25LZXkpPVwiaGFuZGxlS2V5RXZlbnQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgIDwvYXgtdGV4dC1ib3g+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xvci1wYXJ0XCI+XG4gICAgICAgICAgICAgICAgPGF4LXRleHQtYm94IFsodmFsdWUpXT1cImdDb2xvclwiICh0ZXh0Q2hhbmdlKT1cImhhbmRsZUNvbG9yQ2hhbmdlKClcIiAob25LZXkpPVwiaGFuZGxlS2V5RXZlbnQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgIDwvYXgtdGV4dC1ib3g+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xvci1wYXJ0XCI+XG4gICAgICAgICAgICAgICAgPGF4LXRleHQtYm94IFsodmFsdWUpXT1cImJDb2xvclwiICh0ZXh0Q2hhbmdlKT1cImhhbmRsZUNvbG9yQ2hhbmdlKClcIiAob25LZXkpPVwiaGFuZGxlS2V5RXZlbnQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgIDwvYXgtdGV4dC1ib3g+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xvci1wYXJ0IHN3aXRjaFwiIChjbGljayk9XCJpbnB1dEZvcm1hdD0naGV4J1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuPlJHQjwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNoZXhUZW1wbGF0ZT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xvci1wYXJ0XCI+XG4gICAgICAgICAgICAgICAgPGF4LXRleHQtYm94IFsodmFsdWUpXT1cInZhbHVlXCIgc2l6ZT1cInNtXCIgKG9uS2V5KT1cImhhbmRsZUtleUV2ZW50KCRldmVudClcIj5cbiAgICAgICAgICAgICAgICA8L2F4LXRleHQtYm94PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjb2xvci1wYXJ0IHN3aXRjaFwiIChjbGljayk9XCJpbnB1dEZvcm1hdD0ncmdiJ1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuPkhFWDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDwvZGl2PlxuPC9kaXY+Il19