@ng-nest/ui 17.0.0 → 17.0.2

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 (661) hide show
  1. package/affix/affix.component.d.ts +1 -2
  2. package/affix/affix.module.d.ts +1 -3
  3. package/alert/alert.component.d.ts +4 -5
  4. package/alert/alert.module.d.ts +1 -8
  5. package/anchor/anchor-inner.component.d.ts +1 -1
  6. package/anchor/anchor.component.d.ts +6 -7
  7. package/anchor/anchor.module.d.ts +2 -6
  8. package/api/api.component.d.ts +4 -4
  9. package/api/api.module.d.ts +1 -2
  10. package/auto-complete/auto-complete-portal.component.d.ts +3 -5
  11. package/auto-complete/auto-complete.component.d.ts +12 -13
  12. package/auto-complete/auto-complete.module.d.ts +1 -9
  13. package/avatar/avatar-group.component.d.ts +1 -2
  14. package/avatar/avatar.component.d.ts +6 -7
  15. package/avatar/avatar.module.d.ts +2 -6
  16. package/back-top/back-top.component.d.ts +7 -12
  17. package/back-top/back-top.module.d.ts +1 -5
  18. package/badge/badge.component.d.ts +3 -8
  19. package/badge/badge.module.d.ts +1 -3
  20. package/base-form/base-form.component.d.ts +1 -1
  21. package/base-form/base-form.module.d.ts +1 -2
  22. package/border/border.component.d.ts +4 -4
  23. package/border/border.module.d.ts +1 -1
  24. package/button/button.component.d.ts +8 -10
  25. package/button/button.module.d.ts +1 -5
  26. package/button/buttons.component.d.ts +4 -5
  27. package/calendar/calendar.component.d.ts +9 -13
  28. package/calendar/calendar.module.d.ts +1 -10
  29. package/card/card.component.d.ts +2 -6
  30. package/card/card.module.d.ts +1 -5
  31. package/carousel/carousel-panel.component.d.ts +10 -13
  32. package/carousel/carousel.component.d.ts +4 -7
  33. package/carousel/carousel.module.d.ts +1 -5
  34. package/cascade/cascade-portal.component.d.ts +4 -5
  35. package/cascade/cascade.component.d.ts +14 -13
  36. package/cascade/cascade.module.d.ts +1 -9
  37. package/checkbox/checkbox.component.d.ts +6 -8
  38. package/checkbox/checkbox.module.d.ts +1 -8
  39. package/collapse/collapse-panel.component.d.ts +5 -8
  40. package/collapse/collapse.component.d.ts +3 -7
  41. package/collapse/collapse.module.d.ts +1 -5
  42. package/color/color.component.d.ts +4 -5
  43. package/color/color.module.d.ts +1 -3
  44. package/color-picker/color-picker-portal.component.d.ts +7 -11
  45. package/color-picker/color-picker.component.d.ts +11 -12
  46. package/color-picker/color-picker.module.d.ts +1 -11
  47. package/comment/comment-reply.component.d.ts +4 -9
  48. package/comment/comment.component.d.ts +5 -9
  49. package/comment/comment.module.d.ts +1 -11
  50. package/container/aside.component.d.ts +5 -5
  51. package/container/container.component.d.ts +2 -3
  52. package/container/container.module.d.ts +1 -3
  53. package/container/footer.component.d.ts +5 -7
  54. package/container/header.component.d.ts +5 -7
  55. package/container/main.component.d.ts +4 -4
  56. package/crumb/crumb.component.d.ts +4 -5
  57. package/crumb/crumb.module.d.ts +1 -5
  58. package/date-picker/date-picker-portal.component.d.ts +5 -9
  59. package/date-picker/date-picker.component.d.ts +14 -16
  60. package/date-picker/date-picker.module.d.ts +2 -21
  61. package/date-picker/date-quarter.pipe.d.ts +1 -1
  62. package/date-picker/date-range-portal.component.d.ts +1 -1
  63. package/date-picker/date-range.component.d.ts +16 -18
  64. package/date-picker/picker-date.component.d.ts +8 -11
  65. package/date-picker/picker-month.component.d.ts +8 -11
  66. package/date-picker/picker-quarter.component.d.ts +9 -14
  67. package/date-picker/picker-year.component.d.ts +5 -8
  68. package/description/description-item.component.d.ts +1 -2
  69. package/description/description.component.d.ts +4 -5
  70. package/description/description.module.d.ts +2 -5
  71. package/dialog/dialog-container.component.d.ts +1 -2
  72. package/dialog/dialog-portal.component.d.ts +1 -1
  73. package/dialog/dialog-portal.directives.d.ts +13 -17
  74. package/dialog/dialog.component.d.ts +15 -17
  75. package/dialog/dialog.module.d.ts +1 -14
  76. package/dialog/dialog.service.d.ts +8 -10
  77. package/doc/doc.component.d.ts +6 -6
  78. package/doc/doc.module.d.ts +1 -2
  79. package/drag/drag.directive.d.ts +5 -6
  80. package/drag/drag.module.d.ts +1 -2
  81. package/drawer/drawer-container.component.d.ts +1 -2
  82. package/drawer/drawer-portal.component.d.ts +1 -2
  83. package/drawer/drawer-portal.directives.d.ts +5 -6
  84. package/drawer/drawer.component.d.ts +10 -15
  85. package/drawer/drawer.module.d.ts +2 -8
  86. package/drawer/drawer.service.d.ts +5 -7
  87. package/dropdown/dropdown-portal.component.d.ts +1 -1
  88. package/dropdown/dropdown.component.d.ts +10 -13
  89. package/dropdown/dropdown.module.d.ts +1 -7
  90. package/empty/empty.component.d.ts +4 -7
  91. package/empty/empty.module.d.ts +1 -6
  92. package/esm2022/affix/affix.component.mjs +10 -10
  93. package/esm2022/affix/affix.module.mjs +4 -7
  94. package/esm2022/alert/alert.component.mjs +26 -18
  95. package/esm2022/alert/alert.module.mjs +4 -12
  96. package/esm2022/alert/alert.property.mjs +1 -1
  97. package/esm2022/anchor/anchor-inner.component.mjs +3 -2
  98. package/esm2022/anchor/anchor.component.mjs +21 -21
  99. package/esm2022/anchor/anchor.module.mjs +4 -9
  100. package/esm2022/anchor/anchor.property.mjs +1 -1
  101. package/esm2022/api/api.component.mjs +13 -11
  102. package/esm2022/api/api.module.mjs +4 -6
  103. package/esm2022/auto-complete/auto-complete-portal.component.mjs +14 -15
  104. package/esm2022/auto-complete/auto-complete.component.mjs +43 -30
  105. package/esm2022/auto-complete/auto-complete.module.mjs +5 -14
  106. package/esm2022/avatar/avatar-group.component.mjs +6 -6
  107. package/esm2022/avatar/avatar.component.mjs +17 -18
  108. package/esm2022/avatar/avatar.module.mjs +4 -9
  109. package/esm2022/avatar/avatar.property.mjs +1 -1
  110. package/esm2022/back-top/back-top.component.mjs +25 -29
  111. package/esm2022/back-top/back-top.module.mjs +4 -9
  112. package/esm2022/badge/badge.component.mjs +18 -22
  113. package/esm2022/badge/badge.module.mjs +4 -7
  114. package/esm2022/base-form/base-form.component.mjs +9 -4
  115. package/esm2022/base-form/base-form.module.mjs +4 -5
  116. package/esm2022/base-form/base-form.property.mjs +1 -1
  117. package/esm2022/border/border.component.mjs +13 -11
  118. package/esm2022/border/border.module.mjs +3 -3
  119. package/esm2022/button/button.component.mjs +19 -23
  120. package/esm2022/button/button.module.mjs +4 -9
  121. package/esm2022/button/button.property.mjs +1 -1
  122. package/esm2022/button/buttons.component.mjs +15 -14
  123. package/esm2022/calendar/calendar.component.mjs +35 -25
  124. package/esm2022/calendar/calendar.module.mjs +4 -14
  125. package/esm2022/card/card.component.mjs +14 -16
  126. package/esm2022/card/card.module.mjs +4 -9
  127. package/esm2022/carousel/carousel-panel.component.mjs +37 -33
  128. package/esm2022/carousel/carousel.component.mjs +19 -22
  129. package/esm2022/carousel/carousel.module.mjs +5 -10
  130. package/esm2022/carousel/carousel.property.mjs +1 -1
  131. package/esm2022/cascade/cascade-portal.component.mjs +19 -17
  132. package/esm2022/cascade/cascade.component.mjs +37 -30
  133. package/esm2022/cascade/cascade.module.mjs +5 -14
  134. package/esm2022/checkbox/checkbox.component.mjs +31 -23
  135. package/esm2022/checkbox/checkbox.module.mjs +4 -12
  136. package/esm2022/collapse/collapse-panel.component.mjs +19 -20
  137. package/esm2022/collapse/collapse.component.mjs +11 -14
  138. package/esm2022/collapse/collapse.module.mjs +4 -9
  139. package/esm2022/color/color.component.mjs +15 -16
  140. package/esm2022/color/color.module.mjs +4 -7
  141. package/esm2022/color-picker/color-picker-portal.component.mjs +53 -35
  142. package/esm2022/color-picker/color-picker.component.mjs +36 -35
  143. package/esm2022/color-picker/color-picker.module.mjs +5 -42
  144. package/esm2022/comment/comment-reply.component.mjs +18 -18
  145. package/esm2022/comment/comment.component.mjs +32 -24
  146. package/esm2022/comment/comment.module.mjs +4 -41
  147. package/esm2022/comment/comment.property.mjs +1 -1
  148. package/esm2022/container/aside.component.mjs +15 -12
  149. package/esm2022/container/container.component.mjs +14 -13
  150. package/esm2022/container/container.module.mjs +5 -35
  151. package/esm2022/container/footer.component.mjs +17 -20
  152. package/esm2022/container/header.component.mjs +17 -20
  153. package/esm2022/container/main.component.mjs +14 -11
  154. package/esm2022/core/config/config.service.mjs +8 -3
  155. package/esm2022/core/services/preloading-strategy.service.mjs +4 -3
  156. package/esm2022/crumb/crumb.component.mjs +15 -15
  157. package/esm2022/crumb/crumb.module.mjs +4 -9
  158. package/esm2022/date-picker/date-picker-portal.component.mjs +36 -27
  159. package/esm2022/date-picker/date-picker.component.mjs +51 -46
  160. package/esm2022/date-picker/date-picker.module.mjs +5 -106
  161. package/esm2022/date-picker/date-quarter.pipe.mjs +3 -3
  162. package/esm2022/date-picker/date-range-portal.component.mjs +22 -11
  163. package/esm2022/date-picker/date-range.component.mjs +53 -51
  164. package/esm2022/date-picker/picker-date.component.mjs +44 -38
  165. package/esm2022/date-picker/picker-month.component.mjs +30 -28
  166. package/esm2022/date-picker/picker-quarter.component.mjs +30 -30
  167. package/esm2022/date-picker/picker-year.component.mjs +25 -23
  168. package/esm2022/description/description-item.component.mjs +7 -9
  169. package/esm2022/description/description.component.mjs +13 -13
  170. package/esm2022/description/description.module.mjs +4 -8
  171. package/esm2022/dialog/dialog-container.component.mjs +8 -7
  172. package/esm2022/dialog/dialog-portal.component.mjs +27 -11
  173. package/esm2022/dialog/dialog-portal.directives.mjs +39 -39
  174. package/esm2022/dialog/dialog-ref.mjs +1 -1
  175. package/esm2022/dialog/dialog.component.mjs +40 -47
  176. package/esm2022/dialog/dialog.module.mjs +11 -69
  177. package/esm2022/dialog/dialog.service.mjs +15 -16
  178. package/esm2022/doc/doc.component.mjs +12 -9
  179. package/esm2022/doc/doc.module.mjs +4 -6
  180. package/esm2022/drag/drag.directive.mjs +10 -10
  181. package/esm2022/drag/drag.module.mjs +4 -6
  182. package/esm2022/drawer/drawer-container.component.mjs +8 -7
  183. package/esm2022/drawer/drawer-portal.component.mjs +12 -11
  184. package/esm2022/drawer/drawer-portal.directives.mjs +17 -16
  185. package/esm2022/drawer/drawer.component.mjs +23 -32
  186. package/esm2022/drawer/drawer.module.mjs +9 -25
  187. package/esm2022/drawer/drawer.service.mjs +14 -14
  188. package/esm2022/dropdown/dropdown-portal.component.mjs +7 -5
  189. package/esm2022/dropdown/dropdown.component.mjs +31 -24
  190. package/esm2022/dropdown/dropdown.module.mjs +5 -12
  191. package/esm2022/empty/empty.component.mjs +21 -17
  192. package/esm2022/empty/empty.module.mjs +4 -10
  193. package/esm2022/examples/examples.component.mjs +12 -9
  194. package/esm2022/examples/examples.module.mjs +4 -6
  195. package/esm2022/find/find.component.mjs +48 -29
  196. package/esm2022/find/find.module.mjs +4 -52
  197. package/esm2022/form/control.component.mjs +69 -39
  198. package/esm2022/form/form.component.mjs +27 -18
  199. package/esm2022/form/form.module.mjs +4 -69
  200. package/esm2022/highlight/highlight.component.mjs +26 -23
  201. package/esm2022/highlight/highlight.module.mjs +4 -8
  202. package/esm2022/i18n/i18n.directive.mjs +13 -10
  203. package/esm2022/i18n/i18n.module.mjs +3 -3
  204. package/esm2022/i18n/i18n.pipe.mjs +4 -3
  205. package/esm2022/i18n/i18n.service.mjs +7 -11
  206. package/esm2022/icon/icon.component.mjs +20 -21
  207. package/esm2022/icon/icon.module.mjs +4 -9
  208. package/esm2022/icon/icon.property.mjs +1 -1
  209. package/esm2022/icon/icon.service.mjs +35 -34
  210. package/esm2022/image/image-group.component.mjs +4 -3
  211. package/esm2022/image/image-preview.component.mjs +26 -31
  212. package/esm2022/image/image.component.mjs +30 -29
  213. package/esm2022/image/image.module.mjs +4 -13
  214. package/esm2022/inner/inner.component.mjs +14 -13
  215. package/esm2022/inner/inner.module.mjs +4 -7
  216. package/esm2022/input/input-group.component.mjs +12 -13
  217. package/esm2022/input/input.component.mjs +33 -34
  218. package/esm2022/input/input.module.mjs +4 -11
  219. package/esm2022/input-number/input-number.component.mjs +23 -26
  220. package/esm2022/input-number/input-number.module.mjs +4 -11
  221. package/esm2022/keyword/keyword.directive.mjs +13 -13
  222. package/esm2022/keyword/keyword.module.mjs +4 -7
  223. package/esm2022/keyword/keyword.property.mjs +3 -3
  224. package/esm2022/layout/col.component.mjs +14 -18
  225. package/esm2022/layout/layout.module.mjs +4 -7
  226. package/esm2022/layout/layout.property.mjs +1 -1
  227. package/esm2022/layout/row.component.mjs +12 -12
  228. package/esm2022/link/link.component.mjs +17 -18
  229. package/esm2022/link/link.module.mjs +4 -10
  230. package/esm2022/list/list-drop-group.directive.mjs +3 -2
  231. package/esm2022/list/list-option.component.mjs +16 -16
  232. package/esm2022/list/list.component.mjs +38 -32
  233. package/esm2022/list/list.module.mjs +4 -52
  234. package/esm2022/loading/loading.component.mjs +19 -21
  235. package/esm2022/loading/loading.module.mjs +4 -10
  236. package/esm2022/menu/menu-node.component.mjs +17 -17
  237. package/esm2022/menu/menu.component.mjs +21 -23
  238. package/esm2022/menu/menu.module.mjs +4 -11
  239. package/esm2022/message/message.component.mjs +10 -11
  240. package/esm2022/message/message.module.mjs +5 -12
  241. package/esm2022/message/message.service.mjs +12 -12
  242. package/esm2022/message-box/message-box.component.mjs +20 -8
  243. package/esm2022/message-box/message-box.module.mjs +5 -47
  244. package/esm2022/message-box/message-box.service.mjs +12 -11
  245. package/esm2022/notification/notification.component.mjs +10 -11
  246. package/esm2022/notification/notification.module.mjs +5 -12
  247. package/esm2022/notification/notification.service.mjs +14 -10
  248. package/esm2022/outlet/outlet.directive.mjs +9 -9
  249. package/esm2022/outlet/outlet.module.mjs +4 -6
  250. package/esm2022/page-header/page-header.component.mjs +19 -18
  251. package/esm2022/page-header/page-header.module.mjs +4 -8
  252. package/esm2022/pagination/pagination.component.mjs +39 -29
  253. package/esm2022/pagination/pagination.module.mjs +4 -13
  254. package/esm2022/pattern/pattern.component.mjs +12 -9
  255. package/esm2022/pattern/pattern.module.mjs +4 -6
  256. package/esm2022/popconfirm/popconfirm.component.mjs +24 -25
  257. package/esm2022/popconfirm/popconfirm.module.mjs +4 -11
  258. package/esm2022/popover/popover-portal.component.mjs +15 -14
  259. package/esm2022/popover/popover.directive.mjs +16 -18
  260. package/esm2022/popover/popover.module.mjs +5 -11
  261. package/esm2022/portal/portal.module.mjs +6 -9
  262. package/esm2022/portal/portal.service.mjs +12 -11
  263. package/esm2022/progress/progress.component.mjs +16 -18
  264. package/esm2022/progress/progress.module.mjs +4 -9
  265. package/esm2022/radio/radio.component.mjs +21 -21
  266. package/esm2022/radio/radio.module.mjs +4 -12
  267. package/esm2022/rate/rate.component.mjs +22 -21
  268. package/esm2022/rate/rate.module.mjs +4 -11
  269. package/esm2022/resizable/resizable.directive.mjs +56 -45
  270. package/esm2022/resizable/resizable.module.mjs +5 -7
  271. package/esm2022/resizable/resizable.property.mjs +3 -3
  272. package/esm2022/result/result.component.mjs +15 -18
  273. package/esm2022/result/result.module.mjs +4 -9
  274. package/esm2022/ripple/ripple.directive.mjs +11 -10
  275. package/esm2022/ripple/ripple.module.mjs +5 -8
  276. package/esm2022/select/select-portal.component.mjs +6 -4
  277. package/esm2022/select/select.component.mjs +52 -50
  278. package/esm2022/select/select.module.mjs +5 -46
  279. package/esm2022/skeleton/skeleton.component.mjs +14 -16
  280. package/esm2022/skeleton/skeleton.module.mjs +4 -8
  281. package/esm2022/slider/slider.component.mjs +38 -35
  282. package/esm2022/slider/slider.module.mjs +5 -11
  283. package/esm2022/slider-select/slider-select.component.mjs +45 -37
  284. package/esm2022/slider-select/slider-select.module.mjs +4 -36
  285. package/esm2022/statistic/countdown.component.mjs +14 -15
  286. package/esm2022/statistic/statistic.component.mjs +13 -13
  287. package/esm2022/statistic/statistic.module.mjs +4 -9
  288. package/esm2022/steps/steps.component.mjs +17 -18
  289. package/esm2022/steps/steps.module.mjs +4 -9
  290. package/esm2022/switch/switch.component.mjs +18 -17
  291. package/esm2022/switch/switch.module.mjs +4 -11
  292. package/esm2022/table/table-body.component.mjs +19 -9
  293. package/esm2022/table/table-foot.component.mjs +12 -15
  294. package/esm2022/table/table-head.component.mjs +33 -27
  295. package/esm2022/table/table.component.mjs +20 -10
  296. package/esm2022/table/table.module.mjs +4 -69
  297. package/esm2022/tabs/tab-content.component.mjs +12 -9
  298. package/esm2022/tabs/tab-link.directive.mjs +7 -5
  299. package/esm2022/tabs/tab.component.mjs +11 -10
  300. package/esm2022/tabs/tabs.component.mjs +28 -26
  301. package/esm2022/tabs/tabs.module.mjs +5 -26
  302. package/esm2022/tag/tag.component.mjs +16 -19
  303. package/esm2022/tag/tag.module.mjs +4 -9
  304. package/esm2022/text-retract/text-retract.component.mjs +17 -18
  305. package/esm2022/text-retract/text-retract.module.mjs +4 -10
  306. package/esm2022/textarea/textarea.component.mjs +24 -24
  307. package/esm2022/textarea/textarea.module.mjs +4 -10
  308. package/esm2022/theme/theme.component.mjs +44 -30
  309. package/esm2022/theme/theme.module.mjs +4 -40
  310. package/esm2022/time-ago/time-ago.module.mjs +4 -6
  311. package/esm2022/time-ago/time-ago.pipe.mjs +20 -20
  312. package/esm2022/time-picker/time-picker-frame.component.mjs +31 -29
  313. package/esm2022/time-picker/time-picker-portal.component.mjs +19 -19
  314. package/esm2022/time-picker/time-picker.component.mjs +39 -40
  315. package/esm2022/time-picker/time-picker.module.mjs +5 -46
  316. package/esm2022/time-range/time-range.module.mjs +4 -4
  317. package/esm2022/time-range/time-range.pipe.mjs +3 -3
  318. package/esm2022/timeline/timeline.component.mjs +17 -19
  319. package/esm2022/timeline/timeline.module.mjs +4 -11
  320. package/esm2022/tooltip/tooltip-portal.component.mjs +15 -14
  321. package/esm2022/tooltip/tooltip.directive.mjs +15 -18
  322. package/esm2022/tooltip/tooltip.module.mjs +5 -11
  323. package/esm2022/transfer/transfer.component.mjs +68 -54
  324. package/esm2022/transfer/transfer.module.mjs +4 -57
  325. package/esm2022/tree/tree-node.component.mjs +36 -29
  326. package/esm2022/tree/tree.component.mjs +10 -12
  327. package/esm2022/tree/tree.module.mjs +4 -41
  328. package/esm2022/tree/tree.service.mjs +4 -3
  329. package/esm2022/tree-file/tree-file.component.mjs +34 -30
  330. package/esm2022/tree-file/tree-file.module.mjs +4 -13
  331. package/esm2022/tree-select/tree-select-portal.component.mjs +25 -25
  332. package/esm2022/tree-select/tree-select.component.mjs +53 -51
  333. package/esm2022/tree-select/tree-select.module.mjs +6 -54
  334. package/esm2022/typography/typography.component.mjs +11 -11
  335. package/esm2022/typography/typography.module.mjs +4 -7
  336. package/esm2022/upload/upload-portal.component.mjs +11 -12
  337. package/esm2022/upload/upload.component.mjs +42 -39
  338. package/esm2022/upload/upload.module.mjs +4 -53
  339. package/examples/examples.component.d.ts +6 -6
  340. package/examples/examples.module.d.ts +1 -2
  341. package/fesm2022/ng-nest-ui-affix.mjs +12 -15
  342. package/fesm2022/ng-nest-ui-affix.mjs.map +1 -1
  343. package/fesm2022/ng-nest-ui-alert.mjs +26 -25
  344. package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
  345. package/fesm2022/ng-nest-ui-anchor.mjs +24 -26
  346. package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
  347. package/fesm2022/ng-nest-ui-api.mjs +15 -15
  348. package/fesm2022/ng-nest-ui-api.mjs.map +1 -1
  349. package/fesm2022/ng-nest-ui-auto-complete.mjs +58 -50
  350. package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
  351. package/fesm2022/ng-nest-ui-avatar.mjs +23 -27
  352. package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
  353. package/fesm2022/ng-nest-ui-back-top.mjs +26 -33
  354. package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
  355. package/fesm2022/ng-nest-ui-badge.mjs +20 -26
  356. package/fesm2022/ng-nest-ui-badge.mjs.map +1 -1
  357. package/fesm2022/ng-nest-ui-base-form.mjs +11 -6
  358. package/fesm2022/ng-nest-ui-base-form.mjs.map +1 -1
  359. package/fesm2022/ng-nest-ui-border.mjs +14 -12
  360. package/fesm2022/ng-nest-ui-border.mjs.map +1 -1
  361. package/fesm2022/ng-nest-ui-button.mjs +30 -38
  362. package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
  363. package/fesm2022/ng-nest-ui-calendar.mjs +35 -33
  364. package/fesm2022/ng-nest-ui-calendar.mjs.map +1 -1
  365. package/fesm2022/ng-nest-ui-card.mjs +15 -21
  366. package/fesm2022/ng-nest-ui-card.mjs.map +1 -1
  367. package/fesm2022/ng-nest-ui-carousel.mjs +52 -54
  368. package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
  369. package/fesm2022/ng-nest-ui-cascade.mjs +54 -51
  370. package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
  371. package/fesm2022/ng-nest-ui-checkbox.mjs +32 -30
  372. package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
  373. package/fesm2022/ng-nest-ui-collapse.mjs +27 -36
  374. package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
  375. package/fesm2022/ng-nest-ui-color-picker.mjs +84 -98
  376. package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
  377. package/fesm2022/ng-nest-ui-color.mjs +16 -18
  378. package/fesm2022/ng-nest-ui-color.mjs.map +1 -1
  379. package/fesm2022/ng-nest-ui-comment.mjs +43 -72
  380. package/fesm2022/ng-nest-ui-comment.mjs.map +1 -1
  381. package/fesm2022/ng-nest-ui-container.mjs +61 -94
  382. package/fesm2022/ng-nest-ui-container.mjs.map +1 -1
  383. package/fesm2022/ng-nest-ui-core.mjs +10 -4
  384. package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
  385. package/fesm2022/ng-nest-ui-crumb.mjs +16 -20
  386. package/fesm2022/ng-nest-ui-crumb.mjs.map +1 -1
  387. package/fesm2022/ng-nest-ui-date-picker.mjs +247 -293
  388. package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
  389. package/fesm2022/ng-nest-ui-description.mjs +19 -25
  390. package/fesm2022/ng-nest-ui-description.mjs.map +1 -1
  391. package/fesm2022/ng-nest-ui-dialog.mjs +180 -223
  392. package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
  393. package/fesm2022/ng-nest-ui-doc.mjs +13 -12
  394. package/fesm2022/ng-nest-ui-doc.mjs.map +1 -1
  395. package/fesm2022/ng-nest-ui-drag.mjs +13 -14
  396. package/fesm2022/ng-nest-ui-drag.mjs.map +1 -1
  397. package/fesm2022/ng-nest-ui-drawer.mjs +114 -133
  398. package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
  399. package/fesm2022/ng-nest-ui-dropdown.mjs +39 -33
  400. package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
  401. package/fesm2022/ng-nest-ui-empty.mjs +21 -24
  402. package/fesm2022/ng-nest-ui-empty.mjs.map +1 -1
  403. package/fesm2022/ng-nest-ui-examples.mjs +13 -12
  404. package/fesm2022/ng-nest-ui-examples.mjs.map +1 -1
  405. package/fesm2022/ng-nest-ui-find.mjs +49 -76
  406. package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
  407. package/fesm2022/ng-nest-ui-form.mjs +88 -112
  408. package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
  409. package/fesm2022/ng-nest-ui-highlight.mjs +28 -27
  410. package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
  411. package/fesm2022/ng-nest-ui-i18n.mjs +21 -21
  412. package/fesm2022/ng-nest-ui-i18n.mjs.map +1 -1
  413. package/fesm2022/ng-nest-ui-icon.mjs +55 -57
  414. package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
  415. package/fesm2022/ng-nest-ui-image.mjs +50 -61
  416. package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
  417. package/fesm2022/ng-nest-ui-inner.mjs +15 -17
  418. package/fesm2022/ng-nest-ui-inner.mjs.map +1 -1
  419. package/fesm2022/ng-nest-ui-input-number.mjs +25 -31
  420. package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
  421. package/fesm2022/ng-nest-ui-input.mjs +41 -49
  422. package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
  423. package/fesm2022/ng-nest-ui-keyword.mjs +17 -19
  424. package/fesm2022/ng-nest-ui-keyword.mjs.map +1 -1
  425. package/fesm2022/ng-nest-ui-layout.mjs +25 -31
  426. package/fesm2022/ng-nest-ui-layout.mjs.map +1 -1
  427. package/fesm2022/ng-nest-ui-link.mjs +18 -24
  428. package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
  429. package/fesm2022/ng-nest-ui-list.mjs +51 -86
  430. package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
  431. package/fesm2022/ng-nest-ui-loading.mjs +20 -27
  432. package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
  433. package/fesm2022/ng-nest-ui-menu.mjs +33 -41
  434. package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
  435. package/fesm2022/ng-nest-ui-message-box.mjs +33 -58
  436. package/fesm2022/ng-nest-ui-message-box.mjs.map +1 -1
  437. package/fesm2022/ng-nest-ui-message.mjs +22 -28
  438. package/fesm2022/ng-nest-ui-message.mjs.map +1 -1
  439. package/fesm2022/ng-nest-ui-notification.mjs +24 -26
  440. package/fesm2022/ng-nest-ui-notification.mjs.map +1 -1
  441. package/fesm2022/ng-nest-ui-outlet.mjs +11 -13
  442. package/fesm2022/ng-nest-ui-outlet.mjs.map +1 -1
  443. package/fesm2022/ng-nest-ui-page-header.mjs +20 -23
  444. package/fesm2022/ng-nest-ui-page-header.mjs.map +1 -1
  445. package/fesm2022/ng-nest-ui-pagination.mjs +39 -37
  446. package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
  447. package/fesm2022/ng-nest-ui-pattern.mjs +13 -12
  448. package/fesm2022/ng-nest-ui-pattern.mjs.map +1 -1
  449. package/fesm2022/ng-nest-ui-popconfirm.mjs +25 -33
  450. package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
  451. package/fesm2022/ng-nest-ui-popover.mjs +31 -35
  452. package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
  453. package/fesm2022/ng-nest-ui-portal.mjs +25 -25
  454. package/fesm2022/ng-nest-ui-portal.mjs.map +1 -1
  455. package/fesm2022/ng-nest-ui-progress.mjs +16 -22
  456. package/fesm2022/ng-nest-ui-progress.mjs.map +1 -1
  457. package/fesm2022/ng-nest-ui-radio.mjs +22 -28
  458. package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
  459. package/fesm2022/ng-nest-ui-rate.mjs +23 -27
  460. package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
  461. package/fesm2022/ng-nest-ui-resizable.mjs +62 -52
  462. package/fesm2022/ng-nest-ui-resizable.mjs.map +1 -1
  463. package/fesm2022/ng-nest-ui-result.mjs +16 -23
  464. package/fesm2022/ng-nest-ui-result.mjs.map +1 -1
  465. package/fesm2022/ng-nest-ui-ripple.mjs +14 -15
  466. package/fesm2022/ng-nest-ui-ripple.mjs.map +1 -1
  467. package/fesm2022/ng-nest-ui-select.mjs +59 -92
  468. package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
  469. package/fesm2022/ng-nest-ui-skeleton.mjs +15 -20
  470. package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
  471. package/fesm2022/ng-nest-ui-slider-select.mjs +46 -66
  472. package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
  473. package/fesm2022/ng-nest-ui-slider.mjs +40 -42
  474. package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
  475. package/fesm2022/ng-nest-ui-statistic.mjs +25 -30
  476. package/fesm2022/ng-nest-ui-statistic.mjs.map +1 -1
  477. package/fesm2022/ng-nest-ui-steps.mjs +18 -23
  478. package/fesm2022/ng-nest-ui-steps.mjs.map +1 -1
  479. package/fesm2022/ng-nest-ui-switch.mjs +19 -23
  480. package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
  481. package/fesm2022/ng-nest-ui-table.mjs +86 -128
  482. package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
  483. package/fesm2022/ng-nest-ui-tabs.mjs +52 -63
  484. package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
  485. package/fesm2022/ng-nest-ui-tag.mjs +17 -24
  486. package/fesm2022/ng-nest-ui-tag.mjs.map +1 -1
  487. package/fesm2022/ng-nest-ui-text-retract.mjs +17 -23
  488. package/fesm2022/ng-nest-ui-text-retract.mjs.map +1 -1
  489. package/fesm2022/ng-nest-ui-textarea.mjs +25 -29
  490. package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
  491. package/fesm2022/ng-nest-ui-theme.mjs +45 -64
  492. package/fesm2022/ng-nest-ui-theme.mjs.map +1 -1
  493. package/fesm2022/ng-nest-ui-time-ago.mjs +21 -23
  494. package/fesm2022/ng-nest-ui-time-ago.mjs.map +1 -1
  495. package/fesm2022/ng-nest-ui-time-picker.mjs +82 -119
  496. package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
  497. package/fesm2022/ng-nest-ui-time-range.mjs +5 -5
  498. package/fesm2022/ng-nest-ui-time-range.mjs.map +1 -1
  499. package/fesm2022/ng-nest-ui-timeline.mjs +18 -26
  500. package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
  501. package/fesm2022/ng-nest-ui-tooltip.mjs +30 -35
  502. package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
  503. package/fesm2022/ng-nest-ui-transfer.mjs +68 -104
  504. package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
  505. package/fesm2022/ng-nest-ui-tree-file.mjs +35 -39
  506. package/fesm2022/ng-nest-ui-tree-file.mjs.map +1 -1
  507. package/fesm2022/ng-nest-ui-tree-select.mjs +77 -119
  508. package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
  509. package/fesm2022/ng-nest-ui-tree.mjs +48 -76
  510. package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
  511. package/fesm2022/ng-nest-ui-typography.mjs +13 -15
  512. package/fesm2022/ng-nest-ui-typography.mjs.map +1 -1
  513. package/fesm2022/ng-nest-ui-upload.mjs +51 -95
  514. package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
  515. package/find/find.component.d.ts +6 -7
  516. package/find/find.module.d.ts +1 -13
  517. package/form/control.component.d.ts +6 -7
  518. package/form/form.component.d.ts +4 -6
  519. package/form/form.module.d.ts +1 -24
  520. package/highlight/highlight.component.d.ts +12 -10
  521. package/highlight/highlight.module.d.ts +1 -4
  522. package/i18n/i18n.directive.d.ts +6 -7
  523. package/i18n/i18n.module.d.ts +1 -1
  524. package/i18n/i18n.pipe.d.ts +1 -1
  525. package/i18n/i18n.service.d.ts +3 -2
  526. package/icon/icon.component.d.ts +7 -9
  527. package/icon/icon.module.d.ts +1 -3
  528. package/icon/icon.property.d.ts +1 -1
  529. package/icon/icon.service.d.ts +6 -7
  530. package/image/image-group.component.d.ts +1 -1
  531. package/image/image-preview.component.d.ts +5 -10
  532. package/image/image.component.d.ts +9 -14
  533. package/image/image.module.d.ts +3 -11
  534. package/inner/inner.component.d.ts +2 -3
  535. package/inner/inner.module.d.ts +1 -3
  536. package/input/input-group.component.d.ts +3 -6
  537. package/input/input.component.d.ts +8 -10
  538. package/input/input.module.d.ts +2 -8
  539. package/input-number/input-number.component.d.ts +5 -6
  540. package/input-number/input-number.module.d.ts +1 -7
  541. package/keyword/keyword.directive.d.ts +3 -4
  542. package/keyword/keyword.module.d.ts +1 -3
  543. package/keyword/keyword.property.d.ts +1 -1
  544. package/layout/col.component.d.ts +5 -7
  545. package/layout/layout.module.d.ts +1 -3
  546. package/layout/row.component.d.ts +3 -4
  547. package/link/link.component.d.ts +5 -7
  548. package/link/link.module.d.ts +1 -6
  549. package/list/list-drop-group.directive.d.ts +1 -1
  550. package/list/list-option.component.d.ts +6 -7
  551. package/list/list.component.d.ts +9 -12
  552. package/list/list.module.d.ts +1 -13
  553. package/loading/loading.component.d.ts +7 -10
  554. package/loading/loading.module.d.ts +1 -6
  555. package/menu/menu-node.component.d.ts +6 -7
  556. package/menu/menu.component.d.ts +4 -7
  557. package/menu/menu.module.d.ts +1 -7
  558. package/message/message.component.d.ts +3 -6
  559. package/message/message.module.d.ts +1 -5
  560. package/message/message.service.d.ts +4 -5
  561. package/message-box/message-box.component.d.ts +1 -1
  562. package/message-box/message-box.module.d.ts +1 -11
  563. package/message-box/message-box.service.d.ts +2 -5
  564. package/notification/notification.component.d.ts +3 -6
  565. package/notification/notification.module.d.ts +1 -5
  566. package/notification/notification.service.d.ts +1 -3
  567. package/outlet/outlet.directive.d.ts +4 -5
  568. package/outlet/outlet.module.d.ts +1 -2
  569. package/package.json +72 -72
  570. package/page-header/page-header.component.d.ts +5 -7
  571. package/page-header/page-header.module.d.ts +1 -4
  572. package/pagination/pagination.component.d.ts +8 -10
  573. package/pagination/pagination.module.d.ts +1 -9
  574. package/pattern/pattern.component.d.ts +4 -4
  575. package/pattern/pattern.module.d.ts +1 -2
  576. package/popconfirm/popconfirm.component.d.ts +6 -9
  577. package/popconfirm/popconfirm.module.d.ts +1 -7
  578. package/popover/popover-portal.component.d.ts +4 -5
  579. package/popover/popover.directive.d.ts +9 -10
  580. package/popover/popover.module.d.ts +1 -6
  581. package/portal/portal.module.d.ts +1 -3
  582. package/portal/portal.service.d.ts +3 -4
  583. package/progress/progress.component.d.ts +3 -7
  584. package/progress/progress.module.d.ts +1 -5
  585. package/radio/radio.component.d.ts +6 -8
  586. package/radio/radio.module.d.ts +1 -8
  587. package/rate/rate.component.d.ts +6 -8
  588. package/rate/rate.module.d.ts +1 -7
  589. package/resizable/resizable.directive.d.ts +5 -7
  590. package/resizable/resizable.module.d.ts +1 -2
  591. package/resizable/resizable.property.d.ts +1 -1
  592. package/result/result.component.d.ts +3 -7
  593. package/result/result.module.d.ts +1 -5
  594. package/ripple/ripple.directive.d.ts +4 -5
  595. package/ripple/ripple.module.d.ts +1 -3
  596. package/select/select-portal.component.d.ts +1 -1
  597. package/select/select.component.d.ts +14 -15
  598. package/select/select.module.d.ts +1 -12
  599. package/skeleton/skeleton.component.d.ts +3 -6
  600. package/skeleton/skeleton.module.d.ts +1 -4
  601. package/slider/slider.component.d.ts +5 -7
  602. package/slider/slider.module.d.ts +1 -7
  603. package/slider-select/slider-select.component.d.ts +6 -7
  604. package/slider-select/slider-select.module.d.ts +1 -9
  605. package/statistic/countdown.component.d.ts +6 -7
  606. package/statistic/statistic.component.d.ts +2 -3
  607. package/statistic/statistic.module.d.ts +1 -5
  608. package/steps/steps.component.d.ts +4 -7
  609. package/steps/steps.module.d.ts +1 -5
  610. package/style/core/base.scss +0 -7
  611. package/style/core/index.css +1 -8
  612. package/style/core/index.css.map +1 -1
  613. package/style/params/colors.scss +1 -1
  614. package/switch/switch.component.d.ts +6 -7
  615. package/switch/switch.module.d.ts +1 -7
  616. package/table/table-body.component.d.ts +1 -1
  617. package/table/table-foot.component.d.ts +3 -6
  618. package/table/table-head.component.d.ts +5 -7
  619. package/table/table.component.d.ts +1 -1
  620. package/table/table.module.d.ts +4 -17
  621. package/tabs/tab-content.component.d.ts +6 -6
  622. package/tabs/tab-link.directive.d.ts +2 -2
  623. package/tabs/tab.component.d.ts +2 -3
  624. package/tabs/tabs.component.d.ts +8 -9
  625. package/tabs/tabs.module.d.ts +3 -9
  626. package/tag/tag.component.d.ts +4 -8
  627. package/tag/tag.module.d.ts +1 -5
  628. package/text-retract/text-retract.component.d.ts +6 -10
  629. package/text-retract/text-retract.module.d.ts +1 -6
  630. package/textarea/textarea.component.d.ts +5 -7
  631. package/textarea/textarea.module.d.ts +1 -6
  632. package/theme/theme.component.d.ts +8 -9
  633. package/theme/theme.module.d.ts +1 -10
  634. package/time-ago/time-ago.module.d.ts +1 -1
  635. package/time-ago/time-ago.pipe.d.ts +6 -9
  636. package/time-picker/time-picker-frame.component.d.ts +5 -6
  637. package/time-picker/time-picker-portal.component.d.ts +5 -7
  638. package/time-picker/time-picker.component.d.ts +14 -16
  639. package/time-picker/time-picker.module.d.ts +2 -13
  640. package/time-range/time-range.module.d.ts +1 -1
  641. package/time-range/time-range.pipe.d.ts +1 -1
  642. package/timeline/timeline.component.d.ts +5 -8
  643. package/timeline/timeline.module.d.ts +1 -7
  644. package/tooltip/tooltip-portal.component.d.ts +4 -5
  645. package/tooltip/tooltip.directive.d.ts +8 -9
  646. package/tooltip/tooltip.module.d.ts +1 -6
  647. package/transfer/transfer.component.d.ts +6 -9
  648. package/transfer/transfer.module.d.ts +1 -15
  649. package/tree/tree-node.component.d.ts +6 -10
  650. package/tree/tree.component.d.ts +1 -1
  651. package/tree/tree.module.d.ts +1 -11
  652. package/tree-file/tree-file.component.d.ts +5 -10
  653. package/tree-file/tree-file.module.d.ts +1 -9
  654. package/tree-select/tree-select-portal.component.d.ts +5 -7
  655. package/tree-select/tree-select.component.d.ts +14 -15
  656. package/tree-select/tree-select.module.d.ts +1 -14
  657. package/typography/typography.component.d.ts +3 -4
  658. package/typography/typography.module.d.ts +1 -3
  659. package/upload/upload-portal.component.d.ts +5 -7
  660. package/upload/upload.component.d.ts +12 -15
  661. package/upload/upload.module.d.ts +1 -14
@@ -1,21 +1,20 @@
1
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, inject } from '@angular/core';
2
- import { DOCUMENT } from '@angular/common';
1
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, Renderer2, ElementRef, inject } from '@angular/core';
2
+ import { CommonModule, DOCUMENT } from '@angular/common';
3
3
  import { XColorPrefix, XColorProperty } from './color.property';
4
- import { toHex, mixColors, XComputed } from '@ng-nest/ui/core';
4
+ import { toHex, mixColors, XConfigService, XComputed } from '@ng-nest/ui/core';
5
5
  import * as i0 from "@angular/core";
6
- import * as i1 from "@ng-nest/ui/core";
7
- import * as i2 from "@angular/common";
6
+ import * as i1 from "@angular/common";
8
7
  export class XColorComponent extends XColorProperty {
9
- constructor(renderer, elementRef, configService) {
10
- super();
11
- this.renderer = renderer;
12
- this.elementRef = elementRef;
13
- this.configService = configService;
8
+ constructor() {
9
+ super(...arguments);
14
10
  this.colors = [];
15
11
  this.doc = inject(DOCUMENT);
16
- this.renderer.addClass(this.elementRef.nativeElement, XColorPrefix);
12
+ this.renderer = inject(Renderer2);
13
+ this.elementRef = inject(ElementRef);
14
+ this.configService = inject(XConfigService);
17
15
  }
18
16
  ngOnInit() {
17
+ this.renderer.addClass(this.elementRef.nativeElement, XColorPrefix);
19
18
  if (!this.hex || this.hex === 'var(--x-primary)')
20
19
  this.hex = XComputed(this.doc.documentElement).getPropertyValue('--x-primary');
21
20
  if (this.hex)
@@ -31,11 +30,11 @@ export class XColorComponent extends XColorProperty {
31
30
  trackByColor(_index, item) {
32
31
  return item;
33
32
  }
34
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XColorComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
35
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: XColorComponent, selector: "x-color", usesInheritance: true, ngImport: i0, template: "<div class=\"x-color-box\">\r\n <div class=\"x-color-primary\" [style.background-color]=\"hex\" [class.x-color-only]=\"colors.length === 0\">\r\n <span>{{ label }}</span>\r\n <span class=\"x-color-hex\">{{ hex }}</span>\r\n </div>\r\n <div class=\"x-color-gradual\">\r\n <div class=\"x-color-item\" *ngFor=\"let color of colors; index as i; trackBy: trackByColor\" [style.background-color]=\"color\"></div>\r\n </div>\r\n</div>\r\n", styles: [".x-color{margin:0;padding:0;display:block;color:var(--x-white)}.x-color-primary{padding:1rem;border-top-left-radius:.125rem;border-top-right-radius:.125rem}.x-color-only{border-bottom-left-radius:.125rem;border-bottom-right-radius:.125rem}.x-color-hex{margin-top:.25rem;display:block;font-size:.75rem;opacity:.7}.x-color-gradual{display:flex}.x-color-item{flex:1;height:2.5rem}.x-color-item:first-child{border-bottom-left-radius:.125rem}.x-color-item:last-child{border-bottom-right-radius:.125rem}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
33
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XColorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
34
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: XColorComponent, isStandalone: true, selector: "x-color", usesInheritance: true, ngImport: i0, template: "<div class=\"x-color-box\">\r\n <div class=\"x-color-primary\" [style.background-color]=\"hex\" [class.x-color-only]=\"colors.length === 0\">\r\n <span>{{ label }}</span>\r\n <span class=\"x-color-hex\">{{ hex }}</span>\r\n </div>\r\n <div class=\"x-color-gradual\">\r\n <div class=\"x-color-item\" *ngFor=\"let color of colors; index as i; trackBy: trackByColor\" [style.background-color]=\"color\"></div>\r\n </div>\r\n</div>\r\n", styles: [".x-color{margin:0;padding:0;display:block;color:var(--x-white)}.x-color-primary{padding:1rem;border-top-left-radius:.125rem;border-top-right-radius:.125rem}.x-color-only{border-bottom-left-radius:.125rem;border-bottom-right-radius:.125rem}.x-color-hex{margin-top:.25rem;display:block;font-size:.75rem;opacity:.7}.x-color-gradual{display:flex}.x-color-item{flex:1;height:2.5rem}.x-color-item:first-child{border-bottom-left-radius:.125rem}.x-color-item:last-child{border-bottom-right-radius:.125rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
36
35
  }
37
36
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XColorComponent, decorators: [{
38
37
  type: Component,
39
- args: [{ selector: 'x-color', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"x-color-box\">\r\n <div class=\"x-color-primary\" [style.background-color]=\"hex\" [class.x-color-only]=\"colors.length === 0\">\r\n <span>{{ label }}</span>\r\n <span class=\"x-color-hex\">{{ hex }}</span>\r\n </div>\r\n <div class=\"x-color-gradual\">\r\n <div class=\"x-color-item\" *ngFor=\"let color of colors; index as i; trackBy: trackByColor\" [style.background-color]=\"color\"></div>\r\n </div>\r\n</div>\r\n", styles: [".x-color{margin:0;padding:0;display:block;color:var(--x-white)}.x-color-primary{padding:1rem;border-top-left-radius:.125rem;border-top-right-radius:.125rem}.x-color-only{border-bottom-left-radius:.125rem;border-bottom-right-radius:.125rem}.x-color-hex{margin-top:.25rem;display:block;font-size:.75rem;opacity:.7}.x-color-gradual{display:flex}.x-color-item{flex:1;height:2.5rem}.x-color-item:first-child{border-bottom-left-radius:.125rem}.x-color-item:last-child{border-bottom-right-radius:.125rem}\n"] }]
40
- }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.XConfigService }] });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvY29sb3IvY29sb3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvY29sb3IvY29sb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBeUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFrQixTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQVMvRSxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxjQUFjO0lBSWpELFlBQW9CLFFBQW1CLEVBQVUsVUFBbUMsRUFBUyxhQUE2QjtRQUN4SCxLQUFLLEVBQUUsQ0FBQztRQURVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFBVSxlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUFTLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUgxSCxXQUFNLEdBQWEsRUFBRSxDQUFDO1FBQ2QsUUFBRyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUk3QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssa0JBQWtCO1lBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNqSSxJQUFJLElBQUksQ0FBQyxHQUFHO1lBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLEtBQUssSUFBSSxNQUFNLElBQUksSUFBSSxDQUFDLE9BQXdCLEVBQUU7WUFDaEQsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFlLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxNQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3hGO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFjLEVBQUUsSUFBWTtRQUN2QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7aUlBeEJVLGVBQWU7cUhBQWYsZUFBZSxzRUNaNUIsOGJBU0E7OzJGREdhLGVBQWU7a0JBUDNCLFNBQVM7K0JBQ0UsU0FBUyxpQkFHSixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgUmVuZGVyZXIyLCBFbGVtZW50UmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBYQ29sb3JQcmVmaXgsIFhDb2xvclByb3BlcnR5IH0gZnJvbSAnLi9jb2xvci5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IHRvSGV4LCBtaXhDb2xvcnMsIFhDb25maWdTZXJ2aWNlLCBYQ29tcHV0ZWQgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAneC1jb2xvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zdHlsZS9pbmRleC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWENvbG9yQ29tcG9uZW50IGV4dGVuZHMgWENvbG9yUHJvcGVydHkgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGNvbG9yczogc3RyaW5nW10gPSBbXTtcclxuICBwcml2YXRlIGRvYyA9IGluamVjdChET0NVTUVOVCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiwgcHVibGljIGNvbmZpZ1NlcnZpY2U6IFhDb25maWdTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgWENvbG9yUHJlZml4KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKCF0aGlzLmhleCB8fCB0aGlzLmhleCA9PT0gJ3ZhcigtLXgtcHJpbWFyeSknKSB0aGlzLmhleCA9IFhDb21wdXRlZCh0aGlzLmRvYy5kb2N1bWVudEVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJy0teC1wcmltYXJ5Jyk7XHJcbiAgICBpZiAodGhpcy5oZXgpIHRoaXMuc2V0Q29sb3JzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRDb2xvcnMoKSB7XHJcbiAgICBsZXQgY29sb3JzID0gW107XHJcbiAgICBmb3IgKGxldCBhbW91bnQgb2YgdGhpcy5hbW91bnRzIGFzIEFycmF5PG51bWJlcj4pIHtcclxuICAgICAgY29sb3JzLnB1c2godG9IZXgobWl4Q29sb3JzKHRoaXMubWVyZ2UgYXMgc3RyaW5nLCB0aGlzLmhleC50cmltKCksIGFtb3VudCBhcyBudW1iZXIpKSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbG9ycyA9IGNvbG9ycztcclxuICB9XHJcblxyXG4gIHRyYWNrQnlDb2xvcihfaW5kZXg6IG51bWJlciwgaXRlbTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gaXRlbTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIngtY29sb3ItYm94XCI+XHJcbiAgPGRpdiBjbGFzcz1cIngtY29sb3ItcHJpbWFyeVwiIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImhleFwiIFtjbGFzcy54LWNvbG9yLW9ubHldPVwiY29sb3JzLmxlbmd0aCA9PT0gMFwiPlxyXG4gICAgPHNwYW4+e3sgbGFiZWwgfX08L3NwYW4+XHJcbiAgICA8c3BhbiBjbGFzcz1cIngtY29sb3ItaGV4XCI+e3sgaGV4IH19PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLWdyYWR1YWxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLWl0ZW1cIiAqbmdGb3I9XCJsZXQgY29sb3Igb2YgY29sb3JzOyBpbmRleCBhcyBpOyB0cmFja0J5OiB0cmFja0J5Q29sb3JcIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJjb2xvclwiPjwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
38
+ args: [{ selector: 'x-color', standalone: true, imports: [CommonModule], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"x-color-box\">\r\n <div class=\"x-color-primary\" [style.background-color]=\"hex\" [class.x-color-only]=\"colors.length === 0\">\r\n <span>{{ label }}</span>\r\n <span class=\"x-color-hex\">{{ hex }}</span>\r\n </div>\r\n <div class=\"x-color-gradual\">\r\n <div class=\"x-color-item\" *ngFor=\"let color of colors; index as i; trackBy: trackByColor\" [style.background-color]=\"color\"></div>\r\n </div>\r\n</div>\r\n", styles: [".x-color{margin:0;padding:0;display:block;color:var(--x-white)}.x-color-primary{padding:1rem;border-top-left-radius:.125rem;border-top-right-radius:.125rem}.x-color-only{border-bottom-left-radius:.125rem;border-bottom-right-radius:.125rem}.x-color-hex{margin-top:.25rem;display:block;font-size:.75rem;opacity:.7}.x-color-gradual{display:flex}.x-color-item{flex:1;height:2.5rem}.x-color-item:first-child{border-bottom-left-radius:.125rem}.x-color-item:last-child{border-bottom-right-radius:.125rem}\n"] }]
39
+ }] });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvY29sb3IvY29sb3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvY29sb3IvY29sb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQVcvRSxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxjQUFjO0lBVG5EOztRQVVFLFdBQU0sR0FBYSxFQUFFLENBQUM7UUFDZCxRQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZCLGFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0IsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4QyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztLQW9CeEM7SUFsQkMsUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssa0JBQWtCO1lBQzlDLElBQUksQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDakYsSUFBSSxJQUFJLENBQUMsR0FBRztZQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNoQixLQUFLLElBQUksTUFBTSxJQUFJLElBQUksQ0FBQyxPQUF3QixFQUFFO1lBQ2hELE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBZSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsTUFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN4RjtRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBYyxFQUFFLElBQVk7UUFDdkMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO2lJQXhCVSxlQUFlO3FIQUFmLGVBQWUsMEZDdEI1Qiw4YkFTQSw0aUJET1ksWUFBWTs7MkZBTVgsZUFBZTtrQkFUM0IsU0FBUzsrQkFDRSxTQUFTLGNBQ1AsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDLGlCQUdSLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgaW5qZWN0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBYQ29sb3JQcmVmaXgsIFhDb2xvclByb3BlcnR5IH0gZnJvbSAnLi9jb2xvci5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IHRvSGV4LCBtaXhDb2xvcnMsIFhDb25maWdTZXJ2aWNlLCBYQ29tcHV0ZWQgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAneC1jb2xvcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29sb3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3N0eWxlL2luZGV4LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYQ29sb3JDb21wb25lbnQgZXh0ZW5kcyBYQ29sb3JQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgY29sb3JzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHByaXZhdGUgZG9jID0gaW5qZWN0KERPQ1VNRU5UKTtcclxuICBwcml2YXRlIHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XHJcbiAgcHJpdmF0ZSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xyXG4gIGNvbmZpZ1NlcnZpY2UgPSBpbmplY3QoWENvbmZpZ1NlcnZpY2UpO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFhDb2xvclByZWZpeCk7XHJcbiAgICBpZiAoIXRoaXMuaGV4IHx8IHRoaXMuaGV4ID09PSAndmFyKC0teC1wcmltYXJ5KScpXHJcbiAgICAgIHRoaXMuaGV4ID0gWENvbXB1dGVkKHRoaXMuZG9jLmRvY3VtZW50RWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgnLS14LXByaW1hcnknKTtcclxuICAgIGlmICh0aGlzLmhleCkgdGhpcy5zZXRDb2xvcnMoKTtcclxuICB9XHJcblxyXG4gIHNldENvbG9ycygpIHtcclxuICAgIGxldCBjb2xvcnMgPSBbXTtcclxuICAgIGZvciAobGV0IGFtb3VudCBvZiB0aGlzLmFtb3VudHMgYXMgQXJyYXk8bnVtYmVyPikge1xyXG4gICAgICBjb2xvcnMucHVzaCh0b0hleChtaXhDb2xvcnModGhpcy5tZXJnZSBhcyBzdHJpbmcsIHRoaXMuaGV4LnRyaW0oKSwgYW1vdW50IGFzIG51bWJlcikpKTtcclxuICAgIH1cclxuICAgIHRoaXMuY29sb3JzID0gY29sb3JzO1xyXG4gIH1cclxuXHJcbiAgdHJhY2tCeUNvbG9yKF9pbmRleDogbnVtYmVyLCBpdGVtOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBpdGVtO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwieC1jb2xvci1ib3hcIj5cclxuICA8ZGl2IGNsYXNzPVwieC1jb2xvci1wcmltYXJ5XCIgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiaGV4XCIgW2NsYXNzLngtY29sb3Itb25seV09XCJjb2xvcnMubGVuZ3RoID09PSAwXCI+XHJcbiAgICA8c3Bhbj57eyBsYWJlbCB9fTwvc3Bhbj5cclxuICAgIDxzcGFuIGNsYXNzPVwieC1jb2xvci1oZXhcIj57eyBoZXggfX08L3NwYW4+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIngtY29sb3ItZ3JhZHVhbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIngtY29sb3ItaXRlbVwiICpuZ0Zvcj1cImxldCBjb2xvciBvZiBjb2xvcnM7IGluZGV4IGFzIGk7IHRyYWNrQnk6IHRyYWNrQnlDb2xvclwiIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImNvbG9yXCI+PC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,19 +1,16 @@
1
1
  import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
2
  import { XColorComponent } from './color.component';
4
- import { XColorProperty } from './color.property';
5
3
  import * as i0 from "@angular/core";
6
4
  export class XColorModule {
7
5
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XColorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.2", ngImport: i0, type: XColorModule, declarations: [XColorComponent, XColorProperty], imports: [CommonModule], exports: [XColorComponent] }); }
9
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XColorModule, imports: [CommonModule] }); }
6
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.2", ngImport: i0, type: XColorModule, imports: [XColorComponent], exports: [XColorComponent] }); }
7
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XColorModule, imports: [XColorComponent] }); }
10
8
  }
11
9
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XColorModule, decorators: [{
12
10
  type: NgModule,
13
11
  args: [{
14
- declarations: [XColorComponent, XColorProperty],
15
12
  exports: [XColorComponent],
16
- imports: [CommonModule]
13
+ imports: [XColorComponent]
17
14
  }]
18
15
  }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvY29sb3IvY29sb3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBT2xELE1BQU0sT0FBTyxZQUFZO2lJQUFaLFlBQVk7a0lBQVosWUFBWSxpQkFKUixlQUFlLEVBQUUsY0FBYyxhQUVwQyxZQUFZLGFBRFosZUFBZTtrSUFHZCxZQUFZLFlBRmIsWUFBWTs7MkZBRVgsWUFBWTtrQkFMeEIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxlQUFlLEVBQUUsY0FBYyxDQUFDO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7b0JBQzFCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBYQ29sb3JDb21wb25lbnQgfSBmcm9tICcuL2NvbG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFhDb2xvclByb3BlcnR5IH0gZnJvbSAnLi9jb2xvci5wcm9wZXJ0eSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1hDb2xvckNvbXBvbmVudCwgWENvbG9yUHJvcGVydHldLFxyXG4gIGV4cG9ydHM6IFtYQ29sb3JDb21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYQ29sb3JNb2R1bGUge31cclxuIl19
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvY29sb3IvY29sb3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQU1wRCxNQUFNLE9BQU8sWUFBWTtpSUFBWixZQUFZO2tJQUFaLFlBQVksWUFGYixlQUFlLGFBRGYsZUFBZTtrSUFHZCxZQUFZLFlBRmIsZUFBZTs7MkZBRWQsWUFBWTtrQkFKeEIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7b0JBQzFCLE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQztpQkFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYQ29sb3JDb21wb25lbnQgfSBmcm9tICcuL2NvbG9yLmNvbXBvbmVudCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGV4cG9ydHM6IFtYQ29sb3JDb21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtYQ29sb3JDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYQ29sb3JNb2R1bGUge31cclxuIl19
@@ -1,40 +1,42 @@
1
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, Inject, ViewChild, HostListener, HostBinding } from '@angular/core';
1
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, ChangeDetectorRef, Renderer2, ViewChild, HostListener, HostBinding, inject } from '@angular/core';
2
2
  import { XColorPickerPortalPrefix } from './color-picker.property';
3
3
  import { XIsEmpty, XConnectBaseAnimation, XComputed } from '@ng-nest/ui/core';
4
+ import { XSliderSelectComponent } from '@ng-nest/ui/slider-select';
4
5
  import { Subject } from 'rxjs';
5
- import { DOCUMENT, DecimalPipe, PercentPipe } from '@angular/common';
6
+ import { CommonModule, DOCUMENT, DecimalPipe, PercentPipe } from '@angular/common';
6
7
  import { takeUntil } from 'rxjs/operators';
8
+ import { XInputComponent } from '@ng-nest/ui/input';
9
+ import { DragDropModule } from '@angular/cdk/drag-drop';
10
+ import { XTabsComponent, XTabComponent } from '@ng-nest/ui/tabs';
11
+ import { FormsModule } from '@angular/forms';
7
12
  import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/common";
9
- import * as i2 from "@angular/forms";
10
- import * as i3 from "@angular/cdk/drag-drop";
11
- import * as i4 from "@ng-nest/ui/slider-select";
12
- import * as i5 from "@ng-nest/ui/tabs";
13
- import * as i6 from "@ng-nest/ui/input";
13
+ import * as i1 from "@angular/forms";
14
+ import * as i2 from "@angular/cdk/drag-drop";
14
15
  export class XColorPickerPortalComponent {
15
- done(event) {
16
- this.animating(false);
17
- event.toState === 'void' && this.destroyPortal();
18
- }
19
- start() {
20
- this.animating(true);
21
- }
22
- constructor(elementRef, renderer, doc, ngZone, cdr, decimal, percent) {
23
- this.elementRef = elementRef;
24
- this.renderer = renderer;
25
- this.doc = doc;
26
- this.ngZone = ngZone;
27
- this.cdr = cdr;
28
- this.decimal = decimal;
29
- this.percent = percent;
16
+ constructor() {
30
17
  this.sliderColorNum = 0;
31
18
  this.offset = 0;
32
19
  this.transform = { x: 0, y: 0 };
33
20
  this.initTransform = { x: 0, y: 0 };
34
21
  this.drag = false;
35
22
  this.rgba = { a: 1 };
36
- this.hsla = { h: 0, a: 1 };
23
+ this.hsla = {
24
+ h: 0,
25
+ a: 1
26
+ };
37
27
  this._unSubject = new Subject();
28
+ this.doc = inject(DOCUMENT);
29
+ this.renderer = inject(Renderer2);
30
+ this.cdr = inject(ChangeDetectorRef);
31
+ this.decimal = inject(DecimalPipe);
32
+ this.percent = inject(PercentPipe);
33
+ }
34
+ done(event) {
35
+ this.animating(false);
36
+ event.toState === 'void' && this.destroyPortal();
37
+ }
38
+ start() {
39
+ this.animating(true);
38
40
  }
39
41
  ngOnInit() {
40
42
  this.valueChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {
@@ -169,7 +171,10 @@ export class XColorPickerPortalComponent {
169
171
  moved(drag) {
170
172
  const transform = drag.source.getFreeDragPosition();
171
173
  drag.source.reset();
172
- this.transform = { x: transform.x + this.initTransform.x, y: transform.y + this.initTransform.y };
174
+ this.transform = {
175
+ x: transform.x + this.initTransform.x,
176
+ y: transform.y + this.initTransform.y
177
+ };
173
178
  let left = this.transform.x + this.offset;
174
179
  let top = this.transform.y + this.offset;
175
180
  this.setLetfTop(left, top);
@@ -189,7 +194,10 @@ export class XColorPickerPortalComponent {
189
194
  s = (s * v) / (2 - l * 2);
190
195
  }
191
196
  }
192
- [this.hsla.s, this.hsla.l] = [Number(this.decimal.transform(s, '1.2-2')), Number(this.decimal.transform(l, '1.2-2'))];
197
+ [this.hsla.s, this.hsla.l] = [
198
+ Number(this.decimal.transform(s, '1.2-2')),
199
+ Number(this.decimal.transform(l, '1.2-2'))
200
+ ];
193
201
  this.setHslaPercent();
194
202
  Object.assign(this.rgba, this.hslaToRgba(this.hsla));
195
203
  this.hex = this.rgbaToHex(this.rgba);
@@ -262,7 +270,12 @@ export class XColorPickerPortalComponent {
262
270
  g = hue2rgb(p, q, h / 360);
263
271
  b = hue2rgb(p, q, h / 360 - 1 / 3);
264
272
  }
265
- return { r: Math.round(r * 255), g: Math.round(g * 255), b: Math.round(b * 255), a: Number(hsla.a) };
273
+ return {
274
+ r: Math.round(r * 255),
275
+ g: Math.round(g * 255),
276
+ b: Math.round(b * 255),
277
+ a: Number(hsla.a)
278
+ };
266
279
  }
267
280
  rgbaToHex(rgba) {
268
281
  let hex = [
@@ -358,16 +371,21 @@ export class XColorPickerPortalComponent {
358
371
  }
359
372
  return result;
360
373
  }
361
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XColorPickerPortalComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: DOCUMENT }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i1.DecimalPipe }, { token: i1.PercentPipe }], target: i0.ɵɵFactoryTarget.Component }); }
362
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: XColorPickerPortalComponent, selector: "x-color-picker-portal", host: { listeners: { "@x-connect-base-animation.done": "done($event)", "@x-connect-base-animation.start": "start($event)" }, properties: { "@x-connect-base-animation": "this.placement" } }, providers: [DecimalPipe, PercentPipe], viewQueries: [{ propertyName: "panelRef", first: true, predicate: ["panelRef"], descendants: true, static: true }, { propertyName: "plateRef", first: true, predicate: ["plateRef"], descendants: true, static: true }, { propertyName: "transparentCom", first: true, predicate: ["transparentCom"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"x-color-picker-portal\" tabindex=\"-1\" (click)=\"stopPropagation($event)\">\r\n <div #panelRef class=\"x-color-picker-portal-panel\">\r\n <div #plateRef class=\"x-color-picker-portal-plate\" (click)=\"plateClick($event)\">\r\n <div class=\"x-color-picker-portal-white\"></div>\r\n <div class=\"x-color-picker-portal-black\"></div>\r\n <div\r\n #dragCom\r\n class=\"x-color-picker-portal-cursor\"\r\n [style.left.px]=\"transform.x\"\r\n [style.top.px]=\"transform.y\"\r\n cdkDrag\r\n [cdkDragBoundary]=\"panelRef\"\r\n (cdkDragStarted)=\"started()\"\r\n (cdkDragEnded)=\"ended()\"\r\n (cdkDragMoved)=\"moved($event)\"\r\n ></div>\r\n </div>\r\n </div>\r\n <div class=\"x-color-picker-portal-tool\">\r\n <div class=\"x-color-picker-portal-operations\">\r\n <!-- <x-button icon=\"fto-edit-2\" onlyIcon></x-button> -->\r\n <div class=\"x-color-picker-portal-selected\">\r\n <div [style.background-color]=\"value\"></div>\r\n </div>\r\n <div class=\"x-color-picker-portal-area\">\r\n <div class=\"x-color-picker-portal-slider\">\r\n <x-slider-select\r\n [style.width.%]=\"100\"\r\n [(ngModel)]=\"hsla.h\"\r\n min=\"0\"\r\n max=\"360\"\r\n step=\"1\"\r\n (dragStartEmit)=\"started()\"\r\n (dragEndEmit)=\"ended()\"\r\n (ngModelChange)=\"hueChange()\"\r\n ></x-slider-select>\r\n </div>\r\n <div class=\"x-color-picker-portal-transparent\">\r\n <x-slider-select\r\n [style.width.%]=\"100\"\r\n #transparentCom\r\n [(ngModel)]=\"hsla.a\"\r\n min=\"0\"\r\n max=\"1\"\r\n step=\"0.01\"\r\n (dragStarted)=\"started()\"\r\n (dragEnded)=\"ended()\"\r\n (ngModelChange)=\"transparentChange()\"\r\n ></x-slider-select>\r\n <div class=\"x-color-picker-portal-alpha\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"x-color-picker-portal-type\">\r\n <x-tabs animated=\"false\" justify=\"center\">\r\n <x-tab label=\"HEX\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [style.width.%]=\"100\" [(ngModel)]=\"hex\" (ngModelChange)=\"hexChange()\"></x-input>\r\n </div>\r\n </x-tab>\r\n <x-tab label=\"RGBA\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [(ngModel)]=\"rgba.r\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"rgba.g\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"rgba.b\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"rgba.a\" [disabled]=\"true\"></x-input>\r\n </div>\r\n </x-tab>\r\n <x-tab label=\"HSLA\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [(ngModel)]=\"hsla.h\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"hsla.sp\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"hsla.lp\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"hsla.a\" [disabled]=\"true\"></x-input>\r\n </div>\r\n </x-tab>\r\n </x-tabs>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-color-picker-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background);width:15rem;overflow:hidden}.x-color-picker-portal:focus{outline:none}.x-color-picker-portal-panel{padding:.375rem;margin:-.375rem}.x-color-picker-portal-plate{width:100%;height:8rem;display:flex;border-radius:var(--x-border-radius);position:relative}.x-color-picker-portal-white,.x-color-picker-portal-black{position:absolute;inset:0}.x-color-picker-portal-white{background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.x-color-picker-portal-black{background:linear-gradient(0deg,#000,transparent)}.x-color-picker-portal-cursor{position:absolute;width:.75rem;height:.75rem;display:inline-block;border-radius:50%;border:.0625rem solid var(--x-background-100)}.x-color-picker-portal-tool{padding:.4rem}.x-color-picker-portal-operations{display:flex;align-items:center;padding:.4rem 0}.x-color-picker-portal-selected{margin-left:.4rem;width:2rem;height:2rem;border-radius:2rem;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.x-color-picker-portal-selected>div{width:2rem;height:2rem;border-radius:2rem}.x-color-picker-portal-area{margin-left:.4rem;position:relative;flex:1}.x-color-picker-portal-area .x-slider-select:hover:not(.x-disabled) .x-slider-select-track{background-color:transparent}.x-color-picker-portal-area .x-slider-select>.x-slider-select-inner>.x-slider-select-rail{height:.75rem}.x-color-picker-portal-area .x-slider-select>.x-slider-select-inner>.x-slider-select-track>.x-slider-select-process{background-color:transparent}.x-color-picker-portal-area .x-slider-select>.x-slider-select-inner>.x-slider-select-drags>.x-slider-select-drag>.x-slider-select-button{border-color:var(--x-border);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color)}.x-color-picker-portal-slider{position:relative;width:100%}.x-color-picker-portal-slider .x-slider-select>.x-slider-select-inner>.x-slider-select-rail{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.x-color-picker-portal-transparent{margin-top:.4rem;position:relative;width:100%}.x-color-picker-portal-transparent .x-slider-select>.x-slider-select-inner>.x-slider-select-rail{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.x-color-picker-portal-transparent .x-slider-select>.x-slider-select-inner>.x-slider-select-rail:after{content:\"\";height:100%;display:block}.x-color-picker-portal-type{height:5rem}.x-color-picker-portal-type .x-tabs .x-tabs-list{display:flex;justify-content:center}.x-color-picker-portal-type-content{padding:.8rem .4rem;display:flex}.x-color-picker-portal-type-content .x-input .x-input-row input{text-align:center}\n"], 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: "directive", type: i3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: i4.XSliderSelectComponent, selector: "x-slider-select" }, { kind: "component", type: i5.XTabsComponent, selector: "x-tabs" }, { kind: "component", type: i5.XTabComponent, selector: "x-tab" }, { kind: "component", type: i6.XInputComponent, selector: "x-input" }], animations: [XConnectBaseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
374
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XColorPickerPortalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
375
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: XColorPickerPortalComponent, isStandalone: true, selector: "x-color-picker-portal", host: { listeners: { "@x-connect-base-animation.done": "done($event)", "@x-connect-base-animation.start": "start($event)" }, properties: { "@x-connect-base-animation": "this.placement" } }, providers: [DecimalPipe, PercentPipe], viewQueries: [{ propertyName: "panelRef", first: true, predicate: ["panelRef"], descendants: true, static: true }, { propertyName: "plateRef", first: true, predicate: ["plateRef"], descendants: true, static: true }, { propertyName: "transparentCom", first: true, predicate: ["transparentCom"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"x-color-picker-portal\" tabindex=\"-1\" (click)=\"stopPropagation($event)\">\r\n <div #panelRef class=\"x-color-picker-portal-panel\">\r\n <div #plateRef class=\"x-color-picker-portal-plate\" (click)=\"plateClick($event)\">\r\n <div class=\"x-color-picker-portal-white\"></div>\r\n <div class=\"x-color-picker-portal-black\"></div>\r\n <div\r\n #dragCom\r\n class=\"x-color-picker-portal-cursor\"\r\n [style.left.px]=\"transform.x\"\r\n [style.top.px]=\"transform.y\"\r\n cdkDrag\r\n [cdkDragBoundary]=\"panelRef\"\r\n (cdkDragStarted)=\"started()\"\r\n (cdkDragEnded)=\"ended()\"\r\n (cdkDragMoved)=\"moved($event)\"\r\n ></div>\r\n </div>\r\n </div>\r\n <div class=\"x-color-picker-portal-tool\">\r\n <div class=\"x-color-picker-portal-operations\">\r\n <!-- <x-button icon=\"fto-edit-2\" onlyIcon></x-button> -->\r\n <div class=\"x-color-picker-portal-selected\">\r\n <div [style.background-color]=\"value\"></div>\r\n </div>\r\n <div class=\"x-color-picker-portal-area\">\r\n <div class=\"x-color-picker-portal-slider\">\r\n <x-slider-select\r\n [style.width.%]=\"100\"\r\n [(ngModel)]=\"hsla.h\"\r\n min=\"0\"\r\n max=\"360\"\r\n step=\"1\"\r\n (dragStartEmit)=\"started()\"\r\n (dragEndEmit)=\"ended()\"\r\n (ngModelChange)=\"hueChange()\"\r\n ></x-slider-select>\r\n </div>\r\n <div class=\"x-color-picker-portal-transparent\">\r\n <x-slider-select\r\n [style.width.%]=\"100\"\r\n #transparentCom\r\n [(ngModel)]=\"hsla.a\"\r\n min=\"0\"\r\n max=\"1\"\r\n step=\"0.01\"\r\n (dragStarted)=\"started()\"\r\n (dragEnded)=\"ended()\"\r\n (ngModelChange)=\"transparentChange()\"\r\n ></x-slider-select>\r\n <div class=\"x-color-picker-portal-alpha\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"x-color-picker-portal-type\">\r\n <x-tabs animated=\"false\" justify=\"center\">\r\n <x-tab label=\"HEX\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [style.width.%]=\"100\" [(ngModel)]=\"hex\" (ngModelChange)=\"hexChange()\"></x-input>\r\n </div>\r\n </x-tab>\r\n <x-tab label=\"RGBA\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [(ngModel)]=\"rgba.r\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"rgba.g\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"rgba.b\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"rgba.a\" [disabled]=\"true\"></x-input>\r\n </div>\r\n </x-tab>\r\n <x-tab label=\"HSLA\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [(ngModel)]=\"hsla.h\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"hsla.sp\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"hsla.lp\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"hsla.a\" [disabled]=\"true\"></x-input>\r\n </div>\r\n </x-tab>\r\n </x-tabs>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-color-picker-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background);width:15rem;overflow:hidden}.x-color-picker-portal:focus{outline:none}.x-color-picker-portal-panel{padding:.375rem;margin:-.375rem}.x-color-picker-portal-plate{width:100%;height:8rem;display:flex;border-radius:var(--x-border-radius);position:relative}.x-color-picker-portal-white,.x-color-picker-portal-black{position:absolute;inset:0}.x-color-picker-portal-white{background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.x-color-picker-portal-black{background:linear-gradient(0deg,#000,transparent)}.x-color-picker-portal-cursor{position:absolute;width:.75rem;height:.75rem;display:inline-block;border-radius:50%;border:.0625rem solid var(--x-background-100)}.x-color-picker-portal-tool{padding:.4rem}.x-color-picker-portal-operations{display:flex;align-items:center;padding:.4rem 0}.x-color-picker-portal-selected{margin-left:.4rem;width:2rem;height:2rem;border-radius:2rem;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.x-color-picker-portal-selected>div{width:2rem;height:2rem;border-radius:2rem}.x-color-picker-portal-area{margin-left:.4rem;position:relative;flex:1}.x-color-picker-portal-area .x-slider-select:hover:not(.x-disabled) .x-slider-select-process{background-color:transparent}.x-color-picker-portal-area .x-slider-select>.x-slider-select-inner .x-slider-select-rail{height:.75rem}.x-color-picker-portal-area .x-slider-select>.x-slider-select-inner .x-slider-select-process{background-color:transparent}.x-color-picker-portal-area .x-slider-select>.x-slider-select-inner>.x-slider-select-drags>.x-slider-select-drag>.x-slider-select-button{border-color:var(--x-border);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color)}.x-color-picker-portal-slider{position:relative;width:100%}.x-color-picker-portal-slider .x-slider-select>.x-slider-select-inner>.x-slider-select-rail{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.x-color-picker-portal-transparent{margin-top:.4rem;position:relative;width:100%}.x-color-picker-portal-transparent .x-slider-select>.x-slider-select-inner>.x-slider-select-rail{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.x-color-picker-portal-transparent .x-slider-select>.x-slider-select-inner>.x-slider-select-rail:after{content:\"\";height:100%;display:block}.x-color-picker-portal-type{height:5rem}.x-color-picker-portal-type .x-tabs .x-tabs-list{display:flex;justify-content:center}.x-color-picker-portal-type-content{padding:.8rem .4rem;display:flex}.x-color-picker-portal-type-content .x-input .x-input-row input{text-align:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: DragDropModule }, { 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"] }, { kind: "component", type: XSliderSelectComponent, selector: "x-slider-select" }, { kind: "component", type: XTabsComponent, selector: "x-tabs" }, { kind: "component", type: XTabComponent, selector: "x-tab" }, { kind: "component", type: XInputComponent, selector: "x-input" }], animations: [XConnectBaseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
363
376
  }
364
377
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XColorPickerPortalComponent, decorators: [{
365
378
  type: Component,
366
- args: [{ selector: `${XColorPickerPortalPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [DecimalPipe, PercentPipe], animations: [XConnectBaseAnimation], template: "<div class=\"x-color-picker-portal\" tabindex=\"-1\" (click)=\"stopPropagation($event)\">\r\n <div #panelRef class=\"x-color-picker-portal-panel\">\r\n <div #plateRef class=\"x-color-picker-portal-plate\" (click)=\"plateClick($event)\">\r\n <div class=\"x-color-picker-portal-white\"></div>\r\n <div class=\"x-color-picker-portal-black\"></div>\r\n <div\r\n #dragCom\r\n class=\"x-color-picker-portal-cursor\"\r\n [style.left.px]=\"transform.x\"\r\n [style.top.px]=\"transform.y\"\r\n cdkDrag\r\n [cdkDragBoundary]=\"panelRef\"\r\n (cdkDragStarted)=\"started()\"\r\n (cdkDragEnded)=\"ended()\"\r\n (cdkDragMoved)=\"moved($event)\"\r\n ></div>\r\n </div>\r\n </div>\r\n <div class=\"x-color-picker-portal-tool\">\r\n <div class=\"x-color-picker-portal-operations\">\r\n <!-- <x-button icon=\"fto-edit-2\" onlyIcon></x-button> -->\r\n <div class=\"x-color-picker-portal-selected\">\r\n <div [style.background-color]=\"value\"></div>\r\n </div>\r\n <div class=\"x-color-picker-portal-area\">\r\n <div class=\"x-color-picker-portal-slider\">\r\n <x-slider-select\r\n [style.width.%]=\"100\"\r\n [(ngModel)]=\"hsla.h\"\r\n min=\"0\"\r\n max=\"360\"\r\n step=\"1\"\r\n (dragStartEmit)=\"started()\"\r\n (dragEndEmit)=\"ended()\"\r\n (ngModelChange)=\"hueChange()\"\r\n ></x-slider-select>\r\n </div>\r\n <div class=\"x-color-picker-portal-transparent\">\r\n <x-slider-select\r\n [style.width.%]=\"100\"\r\n #transparentCom\r\n [(ngModel)]=\"hsla.a\"\r\n min=\"0\"\r\n max=\"1\"\r\n step=\"0.01\"\r\n (dragStarted)=\"started()\"\r\n (dragEnded)=\"ended()\"\r\n (ngModelChange)=\"transparentChange()\"\r\n ></x-slider-select>\r\n <div class=\"x-color-picker-portal-alpha\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"x-color-picker-portal-type\">\r\n <x-tabs animated=\"false\" justify=\"center\">\r\n <x-tab label=\"HEX\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [style.width.%]=\"100\" [(ngModel)]=\"hex\" (ngModelChange)=\"hexChange()\"></x-input>\r\n </div>\r\n </x-tab>\r\n <x-tab label=\"RGBA\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [(ngModel)]=\"rgba.r\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"rgba.g\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"rgba.b\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"rgba.a\" [disabled]=\"true\"></x-input>\r\n </div>\r\n </x-tab>\r\n <x-tab label=\"HSLA\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [(ngModel)]=\"hsla.h\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"hsla.sp\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"hsla.lp\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"hsla.a\" [disabled]=\"true\"></x-input>\r\n </div>\r\n </x-tab>\r\n </x-tabs>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-color-picker-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background);width:15rem;overflow:hidden}.x-color-picker-portal:focus{outline:none}.x-color-picker-portal-panel{padding:.375rem;margin:-.375rem}.x-color-picker-portal-plate{width:100%;height:8rem;display:flex;border-radius:var(--x-border-radius);position:relative}.x-color-picker-portal-white,.x-color-picker-portal-black{position:absolute;inset:0}.x-color-picker-portal-white{background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.x-color-picker-portal-black{background:linear-gradient(0deg,#000,transparent)}.x-color-picker-portal-cursor{position:absolute;width:.75rem;height:.75rem;display:inline-block;border-radius:50%;border:.0625rem solid var(--x-background-100)}.x-color-picker-portal-tool{padding:.4rem}.x-color-picker-portal-operations{display:flex;align-items:center;padding:.4rem 0}.x-color-picker-portal-selected{margin-left:.4rem;width:2rem;height:2rem;border-radius:2rem;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.x-color-picker-portal-selected>div{width:2rem;height:2rem;border-radius:2rem}.x-color-picker-portal-area{margin-left:.4rem;position:relative;flex:1}.x-color-picker-portal-area .x-slider-select:hover:not(.x-disabled) .x-slider-select-track{background-color:transparent}.x-color-picker-portal-area .x-slider-select>.x-slider-select-inner>.x-slider-select-rail{height:.75rem}.x-color-picker-portal-area .x-slider-select>.x-slider-select-inner>.x-slider-select-track>.x-slider-select-process{background-color:transparent}.x-color-picker-portal-area .x-slider-select>.x-slider-select-inner>.x-slider-select-drags>.x-slider-select-drag>.x-slider-select-button{border-color:var(--x-border);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color)}.x-color-picker-portal-slider{position:relative;width:100%}.x-color-picker-portal-slider .x-slider-select>.x-slider-select-inner>.x-slider-select-rail{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.x-color-picker-portal-transparent{margin-top:.4rem;position:relative;width:100%}.x-color-picker-portal-transparent .x-slider-select>.x-slider-select-inner>.x-slider-select-rail{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.x-color-picker-portal-transparent .x-slider-select>.x-slider-select-inner>.x-slider-select-rail:after{content:\"\";height:100%;display:block}.x-color-picker-portal-type{height:5rem}.x-color-picker-portal-type .x-tabs .x-tabs-list{display:flex;justify-content:center}.x-color-picker-portal-type-content{padding:.8rem .4rem;display:flex}.x-color-picker-portal-type-content .x-input .x-input-row input{text-align:center}\n"] }]
367
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
368
- type: Inject,
369
- args: [DOCUMENT]
370
- }] }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i1.DecimalPipe }, { type: i1.PercentPipe }], propDecorators: { placement: [{
379
+ args: [{ selector: `${XColorPickerPortalPrefix}`, standalone: true, imports: [
380
+ CommonModule,
381
+ FormsModule,
382
+ DragDropModule,
383
+ XSliderSelectComponent,
384
+ XTabsComponent,
385
+ XTabComponent,
386
+ XInputComponent
387
+ ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [DecimalPipe, PercentPipe], animations: [XConnectBaseAnimation], template: "<div class=\"x-color-picker-portal\" tabindex=\"-1\" (click)=\"stopPropagation($event)\">\r\n <div #panelRef class=\"x-color-picker-portal-panel\">\r\n <div #plateRef class=\"x-color-picker-portal-plate\" (click)=\"plateClick($event)\">\r\n <div class=\"x-color-picker-portal-white\"></div>\r\n <div class=\"x-color-picker-portal-black\"></div>\r\n <div\r\n #dragCom\r\n class=\"x-color-picker-portal-cursor\"\r\n [style.left.px]=\"transform.x\"\r\n [style.top.px]=\"transform.y\"\r\n cdkDrag\r\n [cdkDragBoundary]=\"panelRef\"\r\n (cdkDragStarted)=\"started()\"\r\n (cdkDragEnded)=\"ended()\"\r\n (cdkDragMoved)=\"moved($event)\"\r\n ></div>\r\n </div>\r\n </div>\r\n <div class=\"x-color-picker-portal-tool\">\r\n <div class=\"x-color-picker-portal-operations\">\r\n <!-- <x-button icon=\"fto-edit-2\" onlyIcon></x-button> -->\r\n <div class=\"x-color-picker-portal-selected\">\r\n <div [style.background-color]=\"value\"></div>\r\n </div>\r\n <div class=\"x-color-picker-portal-area\">\r\n <div class=\"x-color-picker-portal-slider\">\r\n <x-slider-select\r\n [style.width.%]=\"100\"\r\n [(ngModel)]=\"hsla.h\"\r\n min=\"0\"\r\n max=\"360\"\r\n step=\"1\"\r\n (dragStartEmit)=\"started()\"\r\n (dragEndEmit)=\"ended()\"\r\n (ngModelChange)=\"hueChange()\"\r\n ></x-slider-select>\r\n </div>\r\n <div class=\"x-color-picker-portal-transparent\">\r\n <x-slider-select\r\n [style.width.%]=\"100\"\r\n #transparentCom\r\n [(ngModel)]=\"hsla.a\"\r\n min=\"0\"\r\n max=\"1\"\r\n step=\"0.01\"\r\n (dragStarted)=\"started()\"\r\n (dragEnded)=\"ended()\"\r\n (ngModelChange)=\"transparentChange()\"\r\n ></x-slider-select>\r\n <div class=\"x-color-picker-portal-alpha\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"x-color-picker-portal-type\">\r\n <x-tabs animated=\"false\" justify=\"center\">\r\n <x-tab label=\"HEX\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [style.width.%]=\"100\" [(ngModel)]=\"hex\" (ngModelChange)=\"hexChange()\"></x-input>\r\n </div>\r\n </x-tab>\r\n <x-tab label=\"RGBA\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [(ngModel)]=\"rgba.r\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"rgba.g\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"rgba.b\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"rgba.a\" [disabled]=\"true\"></x-input>\r\n </div>\r\n </x-tab>\r\n <x-tab label=\"HSLA\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [(ngModel)]=\"hsla.h\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"hsla.sp\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"hsla.lp\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"hsla.a\" [disabled]=\"true\"></x-input>\r\n </div>\r\n </x-tab>\r\n </x-tabs>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-color-picker-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background);width:15rem;overflow:hidden}.x-color-picker-portal:focus{outline:none}.x-color-picker-portal-panel{padding:.375rem;margin:-.375rem}.x-color-picker-portal-plate{width:100%;height:8rem;display:flex;border-radius:var(--x-border-radius);position:relative}.x-color-picker-portal-white,.x-color-picker-portal-black{position:absolute;inset:0}.x-color-picker-portal-white{background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.x-color-picker-portal-black{background:linear-gradient(0deg,#000,transparent)}.x-color-picker-portal-cursor{position:absolute;width:.75rem;height:.75rem;display:inline-block;border-radius:50%;border:.0625rem solid var(--x-background-100)}.x-color-picker-portal-tool{padding:.4rem}.x-color-picker-portal-operations{display:flex;align-items:center;padding:.4rem 0}.x-color-picker-portal-selected{margin-left:.4rem;width:2rem;height:2rem;border-radius:2rem;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.x-color-picker-portal-selected>div{width:2rem;height:2rem;border-radius:2rem}.x-color-picker-portal-area{margin-left:.4rem;position:relative;flex:1}.x-color-picker-portal-area .x-slider-select:hover:not(.x-disabled) .x-slider-select-process{background-color:transparent}.x-color-picker-portal-area .x-slider-select>.x-slider-select-inner .x-slider-select-rail{height:.75rem}.x-color-picker-portal-area .x-slider-select>.x-slider-select-inner .x-slider-select-process{background-color:transparent}.x-color-picker-portal-area .x-slider-select>.x-slider-select-inner>.x-slider-select-drags>.x-slider-select-drag>.x-slider-select-button{border-color:var(--x-border);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color)}.x-color-picker-portal-slider{position:relative;width:100%}.x-color-picker-portal-slider .x-slider-select>.x-slider-select-inner>.x-slider-select-rail{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.x-color-picker-portal-transparent{margin-top:.4rem;position:relative;width:100%}.x-color-picker-portal-transparent .x-slider-select>.x-slider-select-inner>.x-slider-select-rail{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.x-color-picker-portal-transparent .x-slider-select>.x-slider-select-inner>.x-slider-select-rail:after{content:\"\";height:100%;display:block}.x-color-picker-portal-type{height:5rem}.x-color-picker-portal-type .x-tabs .x-tabs-list{display:flex;justify-content:center}.x-color-picker-portal-type-content{padding:.8rem .4rem;display:flex}.x-color-picker-portal-type-content .x-input .x-input-row input{text-align:center}\n"] }]
388
+ }], propDecorators: { placement: [{
371
389
  type: HostBinding,
372
390
  args: ['@x-connect-base-animation']
373
391
  }], done: [{
@@ -386,4 +404,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
386
404
  type: ViewChild,
387
405
  args: ['transparentCom', { static: true }]
388
406
  }] } });
389
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLXBvcnRhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9jb2xvci1waWNrZXIvY29sb3ItcGlja2VyLXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9jb2xvci1waWNrZXIvY29sb3ItcGlja2VyLXBvcnRhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQix1QkFBdUIsRUFDdkIsTUFBTSxFQU9OLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx3QkFBd0IsRUFBYyxNQUFNLHlCQUF5QixDQUFDO0FBQy9FLE9BQU8sRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQXNCLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWxHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQVkzQyxNQUFNLE9BQU8sMkJBQTJCO0lBRXNCLElBQUksQ0FBQyxLQUF1QjtRQUN0RixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLEtBQUssQ0FBQyxPQUFPLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0lBQzRELEtBQUs7UUFDaEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBOEJELFlBQ1MsVUFBbUMsRUFDbkMsUUFBbUIsRUFDRCxHQUFRLEVBQzFC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QkFBQyxpQ0FBaUMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFJbEIsUUFBUTtzQkFBaEQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNFLFFBQVE7c0JBQWhELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDUSxjQUFjO3NCQUE1RCxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIEluamVjdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBPbkluaXQsXHJcbiAgRWxlbWVudFJlZixcclxuICBOZ1pvbmUsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIE9uRGVzdHJveSxcclxuICBWaWV3Q2hpbGQsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIEhvc3RCaW5kaW5nXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhDb2xvclBpY2tlclBvcnRhbFByZWZpeCwgWENvbG9yVHlwZSB9IGZyb20gJy4vY29sb3ItcGlja2VyLnByb3BlcnR5JztcclxuaW1wb3J0IHsgWElzRW1wdHksIFhDb25uZWN0QmFzZUFuaW1hdGlvbiwgWFBvc2l0aW9uVG9wQm90dG9tLCBYQ29tcHV0ZWQgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgWFNsaWRlclNlbGVjdENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3NsaWRlci1zZWxlY3QnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENka0RyYWdNb3ZlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IERPQ1VNRU5ULCBEZWNpbWFsUGlwZSwgUGVyY2VudFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFhJbnB1dENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2lucHV0JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYQ29sb3JQaWNrZXJQb3J0YWxQcmVmaXh9YCxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29sb3ItcGlja2VyLXBvcnRhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29sb3ItcGlja2VyLXBvcnRhbC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbRGVjaW1hbFBpcGUsIFBlcmNlbnRQaXBlXSxcclxuICBhbmltYXRpb25zOiBbWENvbm5lY3RCYXNlQW5pbWF0aW9uXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWENvbG9yUGlja2VyUG9ydGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBIb3N0QmluZGluZygnQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbicpIHB1YmxpYyBwbGFjZW1lbnQhOiBYUG9zaXRpb25Ub3BCb3R0b207XHJcbiAgQEhvc3RMaXN0ZW5lcignQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbi5kb25lJywgWyckZXZlbnQnXSkgZG9uZShldmVudDogeyB0b1N0YXRlOiBhbnkgfSkge1xyXG4gICAgdGhpcy5hbmltYXRpbmcoZmFsc2UpO1xyXG4gICAgZXZlbnQudG9TdGF0ZSA9PT0gJ3ZvaWQnICYmIHRoaXMuZGVzdHJveVBvcnRhbCgpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uLnN0YXJ0JywgWyckZXZlbnQnXSkgc3RhcnQoKSB7XHJcbiAgICB0aGlzLmFuaW1hdGluZyh0cnVlKTtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3BhbmVsUmVmJywgeyBzdGF0aWM6IHRydWUgfSkgcGFuZWxSZWYhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKCdwbGF0ZVJlZicsIHsgc3RhdGljOiB0cnVlIH0pIHBsYXRlUmVmITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgQFZpZXdDaGlsZCgndHJhbnNwYXJlbnRDb20nLCB7IHN0YXRpYzogdHJ1ZSB9KSB0cmFuc3BhcmVudENvbSE6IFhTbGlkZXJTZWxlY3RDb21wb25lbnQ7XHJcbiAgdmFsdWUhOiBzdHJpbmc7XHJcbiAgdHJhbnNwYXJlbnRSYWlsITogSFRNTEVsZW1lbnQ7XHJcbiAgdmFsdWVDaGFuZ2UhOiBTdWJqZWN0PHN0cmluZz47XHJcbiAgcG9zaXRpb25DaGFuZ2UhOiBTdWJqZWN0PGFueT47XHJcbiAgY2xvc2VQb3J0YWwhOiBGdW5jdGlvbjtcclxuICBkZXN0cm95UG9ydGFsITogRnVuY3Rpb247XHJcbiAgYW5pbWF0aW5nITogRnVuY3Rpb247XHJcbiAgbm9kZUVtaXQhOiBGdW5jdGlvbjtcclxuICBpbnB1dENvbSE6IFhJbnB1dENvbXBvbmVudDtcclxuXHJcbiAgc2xpZGVyQ29sb3JOdW0gPSAwO1xyXG4gIHR5cGUhOiBYQ29sb3JUeXBlO1xyXG4gIG9mZnNldCA9IDA7XHJcbiAgcGFuZWwhOiBET01SZWN0O1xyXG4gIHBsYXRlITogRE9NUmVjdDtcclxuICB0cmFuc2Zvcm0gPSB7IHg6IDAsIHk6IDAgfTtcclxuICBpbml0VHJhbnNmb3JtID0geyB4OiAwLCB5OiAwIH07XHJcbiAgZHJhZyA9IGZhbHNlO1xyXG5cclxuICByZ2JhOiB7IHI/OiBudW1iZXI7IGc/OiBudW1iZXI7IGI/OiBudW1iZXI7IGE/OiBudW1iZXIgfSA9IHsgYTogMSB9O1xyXG4gIGhzbGE6IHsgaD86IG51bWJlcjsgcz86IG51bWJlcjsgbD86IG51bWJlcjsgYT86IG51bWJlcjsgc3A/OiBzdHJpbmc7IGxwPzogc3RyaW5nIH0gPSB7IGg6IDAsIGE6IDEgfTtcclxuICBoZXghOiBzdHJpbmc7XHJcblxyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwdWJsaWMgZG9jOiBhbnksXHJcbiAgICBwdWJsaWMgbmdab25lOiBOZ1pvbmUsXHJcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBkZWNpbWFsOiBEZWNpbWFsUGlwZSxcclxuICAgIHB1YmxpYyBwZXJjZW50OiBQZXJjZW50UGlwZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoeDogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB4O1xyXG4gICAgICB0aGlzLmluaXQoKTtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnBvc2l0aW9uQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICB0aGlzLnBsYWNlbWVudCA9IHg7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5pbml0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMucGFuZWwgPSB0aGlzLnBhbmVsUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICB0aGlzLnBsYXRlID0gdGhpcy5wbGF0ZVJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgdGhpcy5vZmZzZXQgPSAodGhpcy5wYW5lbC53aWR0aCAtIHRoaXMucGxhdGUud2lkdGgpIC8gMjtcclxuICAgIHRoaXMudHJhbnNwYXJlbnRSYWlsID0gdGhpcy50cmFuc3BhcmVudENvbS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLngtc2xpZGVyLXNlbGVjdC1yYWlsIGRpdicpITtcclxuICAgIHRoaXMuc2V0VHJhbnNmb3JtKCk7XHJcbiAgICB0aGlzLnNldFBsYXRlQmFja2dyb3VuZCgpO1xyXG4gICAgdGhpcy5zZXRSYWlsQmFja2dyb3VuZCgpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgaGV4Q2hhbmdlKCkge1xyXG4gICAgaWYgKHRoaXMuZHJhZyB8fCAhLyheI1swLTlBLUZdezZ9JCkvaS50ZXN0KHRoaXMuaGV4KSkgcmV0dXJuO1xyXG4gICAgdGhpcy5yZ2JhID0gdGhpcy5oZXhUb1JnYmEodGhpcy5oZXgpO1xyXG4gICAgdGhpcy5oc2xhID0gdGhpcy5yZ2JhVG9Ic2xhKHRoaXMucmdiYSk7XHJcbiAgICB0aGlzLnNldEhzbGFQZXJjZW50KCk7XHJcbiAgICB0aGlzLnNldFRyYW5zZm9ybSgpO1xyXG4gICAgdGhpcy5zZXRQbGF0ZUJhY2tncm91bmQoKTtcclxuICAgIHRoaXMuc2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIHJnYmFDaGFuZ2UoKSB7fVxyXG5cclxuICBpbml0KCkge1xyXG4gICAgaWYgKCFYSXNFbXB0eSh0aGlzLnZhbHVlKSkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmdldFByaW1hcnkoKTtcclxuICAgIH1cclxuICAgIHRoaXMuY29sb3JDb252ZXJ0KCk7XHJcbiAgfVxyXG5cclxuICBzdG9wUHJvcGFnYXRpb24oZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIHNldERlZmF1bHQoKSB7fVxyXG5cclxuICBjb2xvckNvbnZlcnQoKSB7XHJcbiAgICBpZiAoL14jLy50ZXN0KHRoaXMudmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuaGV4ID0gdGhpcy52YWx1ZTtcclxuICAgICAgdGhpcy5yZ2JhID0gdGhpcy5oZXhUb1JnYmEodGhpcy5oZXgpO1xyXG4gICAgICB0aGlzLmhzbGEgPSB0aGlzLnJnYmFUb0hzbGEodGhpcy5yZ2JhKTtcclxuICAgICAgdGhpcy5zZXRIc2xhUGVyY2VudCgpO1xyXG4gICAgICB0aGlzLnR5cGUgPSAnaGV4JztcclxuICAgIH0gZWxzZSBpZiAoL3JnYi8udGVzdCh0aGlzLnZhbHVlKSkge1xyXG4gICAgICB0aGlzLnJnYmFDb252ZXJ0KHRoaXMudmFsdWUpO1xyXG4gICAgICB0aGlzLmhleCA9IHRoaXMucmdiYVRvSGV4KHRoaXMucmdiYSk7XHJcbiAgICAgIHRoaXMuaHNsYSA9IHRoaXMucmdiYVRvSHNsYSh0aGlzLnJnYmEpO1xyXG4gICAgICB0aGlzLnNldEhzbGFQZXJjZW50KCk7XHJcbiAgICAgIHRoaXMudHlwZSA9ICdyZ2JhJztcclxuICAgIH0gZWxzZSBpZiAoL2hzbC8udGVzdCh0aGlzLnZhbHVlKSkge1xyXG4gICAgICB0aGlzLmhzbGFDb252ZXJ0KHRoaXMudmFsdWUpO1xyXG4gICAgICB0aGlzLnJnYmEgPSB0aGlzLmhzbGFUb1JnYmEodGhpcy5oc2xhKTtcclxuICAgICAgdGhpcy5oZXggPSB0aGlzLnJnYmFUb0hleCh0aGlzLnJnYmEpO1xyXG4gICAgICB0aGlzLnR5cGUgPSAnaHNsYSc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZ2JhQ29udmVydChzdHI6IHN0cmluZykge1xyXG4gICAgbGV0IHJnYmEgPSBzdHJcclxuICAgICAgLnJlcGxhY2UoL3JnYmE/XFwoLywgJycpXHJcbiAgICAgIC5yZXBsYWNlKC9yZ2I/XFwoLywgJycpXHJcbiAgICAgIC5yZXBsYWNlKC9cXCkvLCAnJylcclxuICAgICAgLnJlcGxhY2UoL1tcXHMrXS9nLCAnJylcclxuICAgICAgLnNwbGl0KCcsJyk7XHJcbiAgICBpZiAocmdiYS5sZW5ndGggPiAyKSB7XHJcbiAgICAgIHRoaXMucmdiYSA9IHtcclxuICAgICAgICByOiBOdW1iZXIocmdiYVswXSksXHJcbiAgICAgICAgZzogTnVtYmVyKHJnYmFbMV0pLFxyXG4gICAgICAgIGI6IE51bWJlcihyZ2JhWzJdKSxcclxuICAgICAgICBhOiBOdW1iZXIocmdiYS5sZW5ndGggPiAzID8gcmdiYVszXSA6IDEpXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoc2xhQ29udmVydChzdHI6IHN0cmluZykge1xyXG4gICAgbGV0IGhzbGEgPSBzdHJcclxuICAgICAgLnJlcGxhY2UoL2hzbGE/XFwoLywgJycpXHJcbiAgICAgIC5yZXBsYWNlKC9oc2w/XFwoLywgJycpXHJcbiAgICAgIC5yZXBsYWNlKC9cXCkvLCAnJylcclxuICAgICAgLnJlcGxhY2UoL1tcXHMrXS9nLCAnJylcclxuICAgICAgLnNwbGl0KCcsJyk7XHJcbiAgICBpZiAoaHNsYS5sZW5ndGggPiAyKSB7XHJcbiAgICAgIHRoaXMuaHNsYSA9IHtcclxuICAgICAgICBoOiBOdW1iZXIoaHNsYVswXSksXHJcbiAgICAgICAgczogTnVtYmVyKGhzbGFbMV0ucmVwbGFjZSgnJScsICcnKSkgLyAxMDAsXHJcbiAgICAgICAgbDogTnVtYmVyKGhzbGFbMl0ucmVwbGFjZSgnJScsICcnKSkgLyAxMDAsXHJcbiAgICAgICAgYTogTnVtYmVyKGhzbGEubGVuZ3RoID4gMyA/IGhzbGFbM10gOiAxKVxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLnNldEhzbGFQZXJjZW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwbGF0ZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5kcmFnKSByZXR1cm47XHJcbiAgICBjb25zdCByZWN0ID0gdGhpcy5wbGF0ZVJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgbGV0IGxlZnQgPSBldmVudC5jbGllbnRYIC0gcmVjdC5sZWZ0O1xyXG4gICAgbGV0IHRvcCA9IGV2ZW50LmNsaWVudFkgLSByZWN0LnRvcDtcclxuICAgIHRoaXMudHJhbnNmb3JtID0geyB4OiBsZWZ0IC0gdGhpcy5vZmZzZXQsIHk6IHRvcCAtIHRoaXMub2Zmc2V0IH07XHJcbiAgICB0aGlzLmluaXRUcmFuc2Zvcm0gPSB7IHg6IHRoaXMudHJhbnNmb3JtLngsIHk6IHRoaXMudHJhbnNmb3JtLnkgfTtcclxuICAgIHRoaXMuc2V0TGV0ZlRvcChsZWZ0LCB0b3ApO1xyXG4gIH1cclxuXHJcbiAgc2V0VHJhbnNmb3JtKCkge1xyXG4gICAgbGV0IGhzdiA9IHRoaXMuaHNsVG9Ic3YodGhpcy5oc2xhLmggYXMgbnVtYmVyLCB0aGlzLmhzbGEucyBhcyBudW1iZXIsIHRoaXMuaHNsYS5sIGFzIG51bWJlcik7XHJcbiAgICB0aGlzLnRyYW5zZm9ybS54ID0gaHN2LnMgKiB0aGlzLnBsYXRlLndpZHRoIC0gdGhpcy5vZmZzZXQ7XHJcbiAgICB0aGlzLnRyYW5zZm9ybS55ID0gKDEgLSBoc3YudikgKiB0aGlzLnBsYXRlLmhlaWdodCAtIHRoaXMub2Zmc2V0O1xyXG4gICAgdGhpcy5pbml0VHJhbnNmb3JtID0geyB4OiB0aGlzLnRyYW5zZm9ybS54LCB5OiB0aGlzLnRyYW5zZm9ybS55IH07XHJcbiAgfVxyXG5cclxuICBzdGFydGVkKCkge1xyXG4gICAgdGhpcy5kcmFnID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGVuZGVkKCkge1xyXG4gICAgdGhpcy5pbml0VHJhbnNmb3JtID0geyB4OiB0aGlzLnRyYW5zZm9ybS54LCB5OiB0aGlzLnRyYW5zZm9ybS55IH07XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5kcmFnID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG1vdmVkKGRyYWc6IENka0RyYWdNb3ZlKSB7XHJcbiAgICBjb25zdCB0cmFuc2Zvcm0gPSBkcmFnLnNvdXJjZS5nZXRGcmVlRHJhZ1Bvc2l0aW9uKCk7XHJcbiAgICBkcmFnLnNvdXJjZS5yZXNldCgpO1xyXG4gICAgdGhpcy50cmFuc2Zvcm0gPSB7IHg6IHRyYW5zZm9ybS54ICsgdGhpcy5pbml0VHJhbnNmb3JtLngsIHk6IHRyYW5zZm9ybS55ICsgdGhpcy5pbml0VHJhbnNmb3JtLnkgfTtcclxuICAgIGxldCBsZWZ0ID0gdGhpcy50cmFuc2Zvcm0ueCArIHRoaXMub2Zmc2V0O1xyXG4gICAgbGV0IHRvcCA9IHRoaXMudHJhbnNmb3JtLnkgKyB0aGlzLm9mZnNldDtcclxuICAgIHRoaXMuc2V0TGV0ZlRvcChsZWZ0LCB0b3ApO1xyXG4gIH1cclxuXHJcbiAgc2V0TGV0ZlRvcChsZWZ0OiBudW1iZXIsIHRvcDogbnVtYmVyKSB7XHJcbiAgICBsZXQgcyA9IGxlZnQgLyB0aGlzLnBsYXRlLndpZHRoO1xyXG4gICAgbGV0IHYgPSAxIC0gdG9wIC8gdGhpcy5wbGF0ZS5oZWlnaHQ7XHJcbiAgICBsZXQgbCA9ICgoMiAtIHMpICogdikgLyAyO1xyXG4gICAgaWYgKGwgIT09IDApIHtcclxuICAgICAgaWYgKGwgPT09IDEpIHtcclxuICAgICAgICBzID0gMDtcclxuICAgICAgfSBlbHNlIGlmIChsIDwgMC41KSB7XHJcbiAgICAgICAgcyA9IChzICogdikgLyAobCAqIDIpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHMgPSAocyAqIHYpIC8gKDIgLSBsICogMik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFt0aGlzLmhzbGEucywgdGhpcy5oc2xhLmxdID0gW051bWJlcih0aGlzLmRlY2ltYWwudHJhbnNmb3JtKHMsICcxLjItMicpKSwgTnVtYmVyKHRoaXMuZGVjaW1hbC50cmFuc2Zvcm0obCwgJzEuMi0yJykpXTtcclxuICAgIHRoaXMuc2V0SHNsYVBlcmNlbnQoKTtcclxuICAgIE9iamVjdC5hc3NpZ24odGhpcy5yZ2JhLCB0aGlzLmhzbGFUb1JnYmEodGhpcy5oc2xhKSk7XHJcbiAgICB0aGlzLmhleCA9IHRoaXMucmdiYVRvSGV4KHRoaXMucmdiYSk7XHJcbiAgICB0aGlzLnNldFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRIc2xhUGVyY2VudCgpIHtcclxuICAgIHRoaXMuaHNsYS5zcCA9IHRoaXMuaHNsYS5zID09PSAwID8gJzAlJyA6ICh0aGlzLnBlcmNlbnQudHJhbnNmb3JtKHRoaXMuaHNsYS5zLCAnMS4wLTAnKSBhcyBzdHJpbmcpO1xyXG4gICAgdGhpcy5oc2xhLmxwID0gdGhpcy5oc2xhLmwgPT09IDAgPyAnMCUnIDogKHRoaXMucGVyY2VudC50cmFuc2Zvcm0odGhpcy5oc2xhLmwsICcxLjAtMCcpIGFzIHN0cmluZyk7XHJcbiAgfVxyXG5cclxuICBnZXRQcmltYXJ5KCkge1xyXG4gICAgcmV0dXJuIFhDb21wdXRlZCh0aGlzLmRvYy5kb2N1bWVudEVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJy0teC1wcmltYXJ5JykudHJpbSgpO1xyXG4gIH1cclxuXHJcbiAgaHVlQ2hhbmdlKCkge1xyXG4gICAgdGhpcy5zZXRQbGF0ZUJhY2tncm91bmQoKTtcclxuICAgIE9iamVjdC5hc3NpZ24odGhpcy5yZ2JhLCB0aGlzLmhzbGFUb1JnYmEodGhpcy5oc2xhKSk7XHJcbiAgICB0aGlzLmhleCA9IHRoaXMucmdiYVRvSGV4KHRoaXMucmdiYSk7XHJcbiAgICB0aGlzLnNldFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRQbGF0ZUJhY2tncm91bmQoKSB7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucGxhdGVSZWYubmF0aXZlRWxlbWVudCwgJ2JhY2tncm91bmQtY29sb3InLCBgaHNsKCR7dGhpcy5oc2xhLmh9LCAxMDAlLCA1MCUpYCk7XHJcbiAgfVxyXG5cclxuICBzZXRSYWlsQmFja2dyb3VuZCgpIHtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXHJcbiAgICAgIHRoaXMudHJhbnNwYXJlbnRSYWlsLFxyXG4gICAgICAnYmFja2dyb3VuZCcsXHJcbiAgICAgIGBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoJHt0aGlzLnJnYmEucn0sICR7dGhpcy5yZ2JhLmd9LCAke3RoaXMucmdiYS5ifSwgMCkgMCUsIHJnYmEoJHt0aGlzLnJnYmEucn0sICR7dGhpcy5yZ2JhLmd9LCAke3RoaXMucmdiYS5ifSwgMSkgMTAwJSlgXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdHJhbnNwYXJlbnRDaGFuZ2UoKSB7XHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMucmdiYSwgdGhpcy5oc2xhVG9SZ2JhKHRoaXMuaHNsYSkpO1xyXG4gICAgdGhpcy5oZXggPSB0aGlzLnJnYmFUb0hleCh0aGlzLnJnYmEpO1xyXG4gICAgdGhpcy5zZXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0VmFsdWUoKSB7XHJcbiAgICB0aGlzLnNldFZhbHVlQnlUeXBlKCk7XHJcbiAgICB0aGlzLnNldFJhaWxCYWNrZ3JvdW5kKCk7XHJcbiAgICB0aGlzLm5vZGVFbWl0KHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2V0VmFsdWVCeVR5cGUoKSB7XHJcbiAgICBpZiAodGhpcy50eXBlID09PSAnaGV4Jykge1xyXG4gICAgICB0aGlzLnZhbHVlID0gYCR7dGhpcy5oZXh9YDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAncmdiYScpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IGByZ2JhKCR7dGhpcy5yZ2JhLnJ9LCAke3RoaXMucmdiYS5nfSwgJHt0aGlzLnJnYmEuYn0sICR7dGhpcy5yZ2JhLmF9KWA7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ2hzbGEnKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBgaHNsYSgke3RoaXMuaHNsYS5ofSwgJHt0aGlzLmhzbGEuc3B9LCAke3RoaXMuaHNsYS5scH0sICR7dGhpcy5oc2xhLmF9KWA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoc2xhVG9SZ2JhKGhzbGE6IHsgaD86IG51bWJlcjsgcz86IG51bWJlcjsgbD86IG51bWJlcjsgYT86IG51bWJlciB9KSB7XHJcbiAgICBsZXQgciwgZywgYjtcclxuICAgIGxldCBbaCwgcywgbF0gPSBbaHNsYS5oIGFzIG51bWJlciwgaHNsYS5zIGFzIG51bWJlciwgaHNsYS5sIGFzIG51bWJlcl07XHJcbiAgICBpZiAocyA9PSAwKSB7XHJcbiAgICAgIHIgPSBnID0gYiA9IGw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgaHVlMnJnYiA9IChwOiBudW1iZXIsIHE6IG51bWJlciwgdDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgaWYgKHQgPCAwKSB0ICs9IDE7XHJcbiAgICAgICAgaWYgKHQgPiAxKSB0IC09IDE7XHJcbiAgICAgICAgaWYgKHQgPCAxIC8gNikgcmV0dXJuIHAgKyAocSAtIHApICogNiAqIHQ7XHJcbiAgICAgICAgaWYgKHQgPCAxIC8gMikgcmV0dXJuIHE7XHJcbiAgICAgICAgaWYgKHQgPCAyIC8gMykgcmV0dXJuIHAgKyAocSAtIHApICogKDIgLyAzIC0gdCkgKiA2O1xyXG4gICAgICAgIHJldHVybiBwO1xyXG4gICAgICB9O1xyXG5cclxuICAgICAgbGV0IHEgPSBsIDwgMC41ID8gbCAqICgxICsgcykgOiBsICsgcyAtIGwgKiBzO1xyXG4gICAgICBsZXQgcCA9IDIgKiBsIC0gcTtcclxuICAgICAgciA9IGh1ZTJyZ2IocCwgcSwgaCAvIDM2MCArIDEgLyAzKTtcclxuICAgICAgZyA9IGh1ZTJyZ2IocCwgcSwgaCAvIDM2MCk7XHJcbiAgICAgIGIgPSBodWUycmdiKHAsIHEsIGggLyAzNjAgLSAxIC8gMyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4geyByOiBNYXRoLnJvdW5kKHIgKiAyNTUpLCBnOiBNYXRoLnJvdW5kKGcgKiAyNTUpLCBiOiBNYXRoLnJvdW5kKGIgKiAyNTUpLCBhOiBOdW1iZXIoaHNsYS5hKSB9O1xyXG4gIH1cclxuXHJcbiAgcmdiYVRvSGV4KHJnYmE6IHsgcj86IG51bWJlcjsgZz86IG51bWJlcjsgYj86IG51bWJlcjsgYT86IG51bWJlciB9KSB7XHJcbiAgICBsZXQgaGV4ID0gW1xyXG4gICAgICAocmdiYS5yIGFzIG51bWJlcikudG9TdHJpbmcoMTYpLFxyXG4gICAgICAocmdiYS5nIGFzIG51bWJlcikudG9TdHJpbmcoMTYpLFxyXG4gICAgICAocmdiYS5iIGFzIG51bWJlcikudG9TdHJpbmcoMTYpLFxyXG4gICAgICBNYXRoLnJvdW5kKDI1NSAqIChyZ2JhLmEgYXMgbnVtYmVyKSkudG9TdHJpbmcoMTYpXHJcbiAgICBdO1xyXG4gICAgaGV4LmZvckVhY2goKHgsIGluZGV4KSA9PiB7XHJcbiAgICAgIGlmIChpbmRleCA9PT0gMyAmJiB4ID09PSAnZmYnKSB7XHJcbiAgICAgICAgaGV4W2luZGV4XSA9ICcnO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh4Lmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgIGhleFtpbmRleF0gPSAnMCcgKyB4O1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBgIyR7aGV4LmpvaW4oJycpfWA7XHJcbiAgfVxyXG5cclxuICByZ2JhVG9Ic2xhKHJnYmE6IHsgcj86IG51bWJlcjsgZz86IG51bWJlcjsgYj86IG51bWJlcjsgYT86IG51bWJlciB9KSB7XHJcbiAgICBsZXQgW3IsIGcsIGJdID0gWyhyZ2JhLnIgYXMgbnVtYmVyKSAvIDI1NSwgKHJnYmEuZyBhcyBudW1iZXIpIC8gMjU1LCAocmdiYS5iIGFzIG51bWJlcikgLyAyNTVdO1xyXG4gICAgbGV0IFttYXgsIG1pbl0gPSBbTWF0aC5tYXgociwgZywgYiksIE1hdGgubWluKHIsIGcsIGIpXTtcclxuICAgIGxldCBoID0gMDtcclxuICAgIGxldCBzID0gMDtcclxuICAgIGxldCBsID0gKG1heCArIG1pbikgLyAyO1xyXG5cclxuICAgIGlmIChtYXggPT09IG1pbikge1xyXG4gICAgICBoID0gcyA9IDA7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgZCA9IG1heCAtIG1pbjtcclxuICAgICAgcyA9IGwgPiAwLjUgPyBkIC8gKDIgLSBtYXggLSBtaW4pIDogZCAvIChtYXggKyBtaW4pO1xyXG4gICAgICBzd2l0Y2ggKG1heCkge1xyXG4gICAgICAgIGNhc2UgcjpcclxuICAgICAgICAgIGggPSAoZyAtIGIpIC8gZCArIChnIDwgYiA/IDYgOiAwKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgZzpcclxuICAgICAgICAgIGggPSAoYiAtIHIpIC8gZCArIDI7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIGI6XHJcbiAgICAgICAgICBoID0gKHIgLSBnKSAvIGQgKyA0O1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgaCAvPSA2O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGg6IE1hdGgucm91bmQoaCAqIDM2MCksXHJcbiAgICAgIHM6IE51bWJlcih0aGlzLmRlY2ltYWwudHJhbnNmb3JtKHMsICcxLjItMicpKSxcclxuICAgICAgbDogTnVtYmVyKHRoaXMuZGVjaW1hbC50cmFuc2Zvcm0obCwgJzEuMi0yJykpLFxyXG4gICAgICBhOiBOdW1iZXIocmdiYS5hKVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGhleFRvUmdiYShoZXg6IHN0cmluZykge1xyXG4gICAgbGV0IGhleE51bSA9IGhleC5zdWJzdHJpbmcoMSk7XHJcbiAgICBsZXQgYSA9IDE7XHJcbiAgICBpZiAoaGV4TnVtLmxlbmd0aCA9PT0gOCkge1xyXG4gICAgICBhID0gTnVtYmVyKHRoaXMuZGVjaW1hbC50cmFuc2Zvcm0oTnVtYmVyKCcweCcgKyBoZXhOdW0uc2xpY2UoLTIpKSAvIDI1NSwgJzEuMi0yJykpO1xyXG4gICAgICBoZXhOdW0gPSBoZXhOdW0uc3Vic3RyaW5nKDAsIGhleE51bS5sZW5ndGggLSAyKTtcclxuICAgIH1cclxuICAgIGxldCBudW0gPSBOdW1iZXIoJzB4JyArIChoZXhOdW0ubGVuZ3RoIDwgNiA/IHRoaXMucmVwZWF0TGV0dGVyKGhleE51bSwgMikgOiBoZXhOdW0pKTtcclxuICAgIHJldHVybiB7IHI6IG51bSA+PiAxNiwgZzogKG51bSA+PiA4KSAmIDB4ZmYsIGI6IG51bSAmIDB4ZmYsIGE6IGEgfTtcclxuICB9XHJcblxyXG4gIGhzbFRvSHN2KGg6IG51bWJlciwgczogbnVtYmVyLCBsOiBudW1iZXIpIHtcclxuICAgIGxldCBoSHN2LCBzSHN2LCB2O1xyXG5cclxuICAgIGhIc3YgPSBoO1xyXG5cclxuICAgIGlmIChsID09IDApIHtcclxuICAgICAgc0hzdiA9IDA7XHJcbiAgICAgIHYgPSAwO1xyXG4gICAgfSBlbHNlIGlmIChsID4gMCAmJiBsIDw9IDAuNSkge1xyXG4gICAgICBzSHN2ID0gKDIgKiBzKSAvICgxICsgcyk7XHJcbiAgICAgIHYgPSBsICogKDEgKyBzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNIc3YgPSAoMiAqIHMgLSAyICogcyAqIGwpIC8gKHMgLSBzICogbCArIGwpO1xyXG4gICAgICB2ID0gcyAtIHMgKiBsICsgbDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBoOiBoSHN2LFxyXG4gICAgICBzOiBOdW1iZXIodGhpcy5kZWNpbWFsLnRyYW5zZm9ybShzSHN2LCAnMS4yLTInKSksXHJcbiAgICAgIHY6IE51bWJlcih0aGlzLmRlY2ltYWwudHJhbnNmb3JtKHYsICcxLjItMicpKVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHJlcGVhdFdvcmQod29yZDogc3RyaW5nLCBudW06IG51bWJlcikge1xyXG4gICAgbGV0IHJlc3VsdCA9ICcnO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW07IGkrKykge1xyXG4gICAgICByZXN1bHQgKz0gd29yZDtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICByZXBlYXRMZXR0ZXIod29yZDogc3RyaW5nLCBudW06IG51bWJlcikge1xyXG4gICAgbGV0IHJlc3VsdCA9ICcnO1xyXG4gICAgZm9yIChsZXQgbGV0dGVyIG9mIHdvcmQpIHtcclxuICAgICAgcmVzdWx0ICs9IHRoaXMucmVwZWF0V29yZChsZXR0ZXIsIG51bSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsXCIgdGFiaW5kZXg9XCItMVwiIChjbGljayk9XCJzdG9wUHJvcGFnYXRpb24oJGV2ZW50KVwiPlxyXG4gIDxkaXYgI3BhbmVsUmVmIGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLXBhbmVsXCI+XHJcbiAgICA8ZGl2ICNwbGF0ZVJlZiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXBvcnRhbC1wbGF0ZVwiIChjbGljayk9XCJwbGF0ZUNsaWNrKCRldmVudClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXBvcnRhbC13aGl0ZVwiPjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLWJsYWNrXCI+PC9kaXY+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICAjZHJhZ0NvbVxyXG4gICAgICAgIGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLWN1cnNvclwiXHJcbiAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwidHJhbnNmb3JtLnhcIlxyXG4gICAgICAgIFtzdHlsZS50b3AucHhdPVwidHJhbnNmb3JtLnlcIlxyXG4gICAgICAgIGNka0RyYWdcclxuICAgICAgICBbY2RrRHJhZ0JvdW5kYXJ5XT1cInBhbmVsUmVmXCJcclxuICAgICAgICAoY2RrRHJhZ1N0YXJ0ZWQpPVwic3RhcnRlZCgpXCJcclxuICAgICAgICAoY2RrRHJhZ0VuZGVkKT1cImVuZGVkKClcIlxyXG4gICAgICAgIChjZGtEcmFnTW92ZWQpPVwibW92ZWQoJGV2ZW50KVwiXHJcbiAgICAgID48L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtdG9vbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXBvcnRhbC1vcGVyYXRpb25zXCI+XHJcbiAgICAgIDwhLS0gPHgtYnV0dG9uIGljb249XCJmdG8tZWRpdC0yXCIgb25seUljb24+PC94LWJ1dHRvbj4gLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtc2VsZWN0ZWRcIj5cclxuICAgICAgICA8ZGl2IFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cInZhbHVlXCI+PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLWFyZWFcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLXNsaWRlclwiPlxyXG4gICAgICAgICAgPHgtc2xpZGVyLXNlbGVjdFxyXG4gICAgICAgICAgICBbc3R5bGUud2lkdGguJV09XCIxMDBcIlxyXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImhzbGEuaFwiXHJcbiAgICAgICAgICAgIG1pbj1cIjBcIlxyXG4gICAgICAgICAgICBtYXg9XCIzNjBcIlxyXG4gICAgICAgICAgICBzdGVwPVwiMVwiXHJcbiAgICAgICAgICAgIChkcmFnU3RhcnRFbWl0KT1cInN0YXJ0ZWQoKVwiXHJcbiAgICAgICAgICAgIChkcmFnRW5kRW1pdCk9XCJlbmRlZCgpXCJcclxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiaHVlQ2hhbmdlKClcIlxyXG4gICAgICAgICAgPjwveC1zbGlkZXItc2VsZWN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtdHJhbnNwYXJlbnRcIj5cclxuICAgICAgICAgIDx4LXNsaWRlci1zZWxlY3RcclxuICAgICAgICAgICAgW3N0eWxlLndpZHRoLiVdPVwiMTAwXCJcclxuICAgICAgICAgICAgI3RyYW5zcGFyZW50Q29tXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaHNsYS5hXCJcclxuICAgICAgICAgICAgbWluPVwiMFwiXHJcbiAgICAgICAgICAgIG1heD1cIjFcIlxyXG4gICAgICAgICAgICBzdGVwPVwiMC4wMVwiXHJcbiAgICAgICAgICAgIChkcmFnU3RhcnRlZCk9XCJzdGFydGVkKClcIlxyXG4gICAgICAgICAgICAoZHJhZ0VuZGVkKT1cImVuZGVkKClcIlxyXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ0cmFuc3BhcmVudENoYW5nZSgpXCJcclxuICAgICAgICAgID48L3gtc2xpZGVyLXNlbGVjdD5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtYWxwaGFcIj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtdHlwZVwiPlxyXG4gICAgICA8eC10YWJzIGFuaW1hdGVkPVwiZmFsc2VcIiBqdXN0aWZ5PVwiY2VudGVyXCI+XHJcbiAgICAgICAgPHgtdGFiIGxhYmVsPVwiSEVYXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLXR5cGUtY29udGVudFwiPlxyXG4gICAgICAgICAgICA8eC1pbnB1dCBbc3R5bGUud2lkdGguJV09XCIxMDBcIiBbKG5nTW9kZWwpXT1cImhleFwiIChuZ01vZGVsQ2hhbmdlKT1cImhleENoYW5nZSgpXCI+PC94LWlucHV0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC94LXRhYj5cclxuICAgICAgICA8eC10YWIgbGFiZWw9XCJSR0JBXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLXR5cGUtY29udGVudFwiPlxyXG4gICAgICAgICAgICA8eC1pbnB1dCBbKG5nTW9kZWwpXT1cInJnYmEuclwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC94LWlucHV0PlxyXG4gICAgICAgICAgICA8eC1pbnB1dCBbKG5nTW9kZWwpXT1cInJnYmEuZ1wiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC94LWlucHV0PlxyXG4gICAgICAgICAgICA8eC1pbnB1dCBbKG5nTW9kZWwpXT1cInJnYmEuYlwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC94LWlucHV0PlxyXG4gICAgICAgICAgICA8eC1pbnB1dCBbKG5nTW9kZWwpXT1cInJnYmEuYVwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC94LWlucHV0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC94LXRhYj5cclxuICAgICAgICA8eC10YWIgbGFiZWw9XCJIU0xBXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLXR5cGUtY29udGVudFwiPlxyXG4gICAgICAgICAgICA8eC1pbnB1dCBbKG5nTW9kZWwpXT1cImhzbGEuaFwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC94LWlucHV0PlxyXG4gICAgICAgICAgICA8eC1pbnB1dCBbKG5nTW9kZWwpXT1cImhzbGEuc3BcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwveC1pbnB1dD5cclxuICAgICAgICAgICAgPHgtaW5wdXQgWyhuZ01vZGVsKV09XCJoc2xhLmxwXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L3gtaW5wdXQ+XHJcbiAgICAgICAgICAgIDx4LWlucHV0IFsobmdNb2RlbCldPVwiaHNsYS5hXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L3gtaW5wdXQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3gtdGFiPlxyXG4gICAgICA8L3gtdGFicz5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
407
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLXBvcnRhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9jb2xvci1waWNrZXIvY29sb3ItcGlja2VyLXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9jb2xvci1waWNrZXIvY29sb3ItcGlja2VyLXBvcnRhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQix1QkFBdUIsRUFDdkIsaUJBQWlCLEVBR2pCLFNBQVMsRUFFVCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHdCQUF3QixFQUFjLE1BQU0seUJBQXlCLENBQUM7QUFDL0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBc0IsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFxQjdDLE1B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LFNBQVM7K0JBQ0UsR0FBRyx3QkFBd0IsRUFBRSxjQUMzQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGNBQWM7d0JBQ2Qsc0JBQXNCO3dCQUN0QixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsZUFBZTtxQkFDaEIsaUJBR2MsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsY0FDekIsQ0FBQyxxQkFBcUIsQ0FBQzs4QkFHYyxTQUFTO3NCQUF6RCxXQUFXO3VCQUFDLDJCQUEyQjtnQkFDb0IsSUFBSTtzQkFBL0QsWUFBWTt1QkFBQyxnQ0FBZ0MsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFJRyxLQUFLO3NCQUFqRSxZQUFZO3VCQUFDLGlDQUFpQyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUlsQixRQUFRO3NCQUFoRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0UsUUFBUTtzQkFBaEQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNRLGNBQWM7c0JBQTVELFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgT25Jbml0LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIE9uRGVzdHJveSxcclxuICBWaWV3Q2hpbGQsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIGluamVjdFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYQ29sb3JQaWNrZXJQb3J0YWxQcmVmaXgsIFhDb2xvclR5cGUgfSBmcm9tICcuL2NvbG9yLXBpY2tlci5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJc0VtcHR5LCBYQ29ubmVjdEJhc2VBbmltYXRpb24sIFhQb3NpdGlvblRvcEJvdHRvbSwgWENvbXB1dGVkIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IFhTbGlkZXJTZWxlY3RDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9zbGlkZXItc2VsZWN0JztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDZGtEcmFnTW92ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIERPQ1VNRU5ULCBEZWNpbWFsUGlwZSwgUGVyY2VudFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFhJbnB1dENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2lucHV0JztcclxuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgWFRhYnNDb21wb25lbnQsIFhUYWJDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS90YWJzJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WENvbG9yUGlja2VyUG9ydGFsUHJlZml4fWAsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIERyYWdEcm9wTW9kdWxlLFxyXG4gICAgWFNsaWRlclNlbGVjdENvbXBvbmVudCxcclxuICAgIFhUYWJzQ29tcG9uZW50LFxyXG4gICAgWFRhYkNvbXBvbmVudCxcclxuICAgIFhJbnB1dENvbXBvbmVudFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbG9yLXBpY2tlci1wb3J0YWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbG9yLXBpY2tlci1wb3J0YWwuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW0RlY2ltYWxQaXBlLCBQZXJjZW50UGlwZV0sXHJcbiAgYW5pbWF0aW9uczogW1hDb25uZWN0QmFzZUFuaW1hdGlvbl1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhDb2xvclBpY2tlclBvcnRhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASG9zdEJpbmRpbmcoJ0B4LWNvbm5lY3QtYmFzZS1hbmltYXRpb24nKSBwdWJsaWMgcGxhY2VtZW50ITogWFBvc2l0aW9uVG9wQm90dG9tO1xyXG4gIEBIb3N0TGlzdGVuZXIoJ0B4LWNvbm5lY3QtYmFzZS1hbmltYXRpb24uZG9uZScsIFsnJGV2ZW50J10pIGRvbmUoZXZlbnQ6IHsgdG9TdGF0ZTogYW55IH0pIHtcclxuICAgIHRoaXMuYW5pbWF0aW5nKGZhbHNlKTtcclxuICAgIGV2ZW50LnRvU3RhdGUgPT09ICd2b2lkJyAmJiB0aGlzLmRlc3Ryb3lQb3J0YWwoKTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbi5zdGFydCcsIFsnJGV2ZW50J10pIHN0YXJ0KCkge1xyXG4gICAgdGhpcy5hbmltYXRpbmcodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkKCdwYW5lbFJlZicsIHsgc3RhdGljOiB0cnVlIH0pIHBhbmVsUmVmITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgQFZpZXdDaGlsZCgncGxhdGVSZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KSBwbGF0ZVJlZiE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoJ3RyYW5zcGFyZW50Q29tJywgeyBzdGF0aWM6IHRydWUgfSkgdHJhbnNwYXJlbnRDb20hOiBYU2xpZGVyU2VsZWN0Q29tcG9uZW50O1xyXG4gIHZhbHVlITogc3RyaW5nO1xyXG4gIHRyYW5zcGFyZW50UmFpbCE6IEhUTUxFbGVtZW50O1xyXG4gIHZhbHVlQ2hhbmdlITogU3ViamVjdDxzdHJpbmc+O1xyXG4gIHBvc2l0aW9uQ2hhbmdlITogU3ViamVjdDxhbnk+O1xyXG4gIGNsb3NlUG9ydGFsITogRnVuY3Rpb247XHJcbiAgZGVzdHJveVBvcnRhbCE6IEZ1bmN0aW9uO1xyXG4gIGFuaW1hdGluZyE6IEZ1bmN0aW9uO1xyXG4gIG5vZGVFbWl0ITogRnVuY3Rpb247XHJcbiAgaW5wdXRDb20hOiBYSW5wdXRDb21wb25lbnQ7XHJcblxyXG4gIHNsaWRlckNvbG9yTnVtID0gMDtcclxuICB0eXBlITogWENvbG9yVHlwZTtcclxuICBvZmZzZXQgPSAwO1xyXG4gIHBhbmVsITogRE9NUmVjdDtcclxuICBwbGF0ZSE6IERPTVJlY3Q7XHJcbiAgdHJhbnNmb3JtID0geyB4OiAwLCB5OiAwIH07XHJcbiAgaW5pdFRyYW5zZm9ybSA9IHsgeDogMCwgeTogMCB9O1xyXG4gIGRyYWcgPSBmYWxzZTtcclxuXHJcbiAgcmdiYTogeyByPzogbnVtYmVyOyBnPzogbnVtYmVyOyBiPzogbnVtYmVyOyBhPzogbnVtYmVyIH0gPSB7IGE6IDEgfTtcclxuICBoc2xhOiB7IGg/OiBudW1iZXI7IHM/OiBudW1iZXI7IGw/OiBudW1iZXI7IGE/OiBudW1iZXI7IHNwPzogc3RyaW5nOyBscD86IHN0cmluZyB9ID0ge1xyXG4gICAgaDogMCxcclxuICAgIGE6IDFcclxuICB9O1xyXG4gIGhleCE6IHN0cmluZztcclxuXHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIGRvYyA9IGluamVjdChET0NVTUVOVCk7XHJcbiAgcHJpdmF0ZSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xyXG4gIHByaXZhdGUgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuICBwcml2YXRlIGRlY2ltYWwgPSBpbmplY3QoRGVjaW1hbFBpcGUpO1xyXG4gIHByaXZhdGUgcGVyY2VudCA9IGluamVjdChQZXJjZW50UGlwZSk7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKHg6IHN0cmluZykgPT4ge1xyXG4gICAgICB0aGlzLnZhbHVlID0geDtcclxuICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5wb3NpdGlvbkNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy5wbGFjZW1lbnQgPSB4O1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuaW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLnBhbmVsID0gdGhpcy5wYW5lbFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgdGhpcy5wbGF0ZSA9IHRoaXMucGxhdGVSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIHRoaXMub2Zmc2V0ID0gKHRoaXMucGFuZWwud2lkdGggLSB0aGlzLnBsYXRlLndpZHRoKSAvIDI7XHJcbiAgICB0aGlzLnRyYW5zcGFyZW50UmFpbCA9IHRoaXMudHJhbnNwYXJlbnRDb20uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy54LXNsaWRlci1zZWxlY3QtcmFpbCBkaXYnKSE7XHJcbiAgICB0aGlzLnNldFRyYW5zZm9ybSgpO1xyXG4gICAgdGhpcy5zZXRQbGF0ZUJhY2tncm91bmQoKTtcclxuICAgIHRoaXMuc2V0UmFpbEJhY2tncm91bmQoKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGhleENoYW5nZSgpIHtcclxuICAgIGlmICh0aGlzLmRyYWcgfHwgIS8oXiNbMC05QS1GXXs2fSQpL2kudGVzdCh0aGlzLmhleCkpIHJldHVybjtcclxuICAgIHRoaXMucmdiYSA9IHRoaXMuaGV4VG9SZ2JhKHRoaXMuaGV4KTtcclxuICAgIHRoaXMuaHNsYSA9IHRoaXMucmdiYVRvSHNsYSh0aGlzLnJnYmEpO1xyXG4gICAgdGhpcy5zZXRIc2xhUGVyY2VudCgpO1xyXG4gICAgdGhpcy5zZXRUcmFuc2Zvcm0oKTtcclxuICAgIHRoaXMuc2V0UGxhdGVCYWNrZ3JvdW5kKCk7XHJcbiAgICB0aGlzLnNldFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICByZ2JhQ2hhbmdlKCkge31cclxuXHJcbiAgaW5pdCgpIHtcclxuICAgIGlmICghWElzRW1wdHkodGhpcy52YWx1ZSkpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMudmFsdWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5nZXRQcmltYXJ5KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbG9yQ29udmVydCgpO1xyXG4gIH1cclxuXHJcbiAgc3RvcFByb3BhZ2F0aW9uKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBzZXREZWZhdWx0KCkge31cclxuXHJcbiAgY29sb3JDb252ZXJ0KCkge1xyXG4gICAgaWYgKC9eIy8udGVzdCh0aGlzLnZhbHVlKSkge1xyXG4gICAgICB0aGlzLmhleCA9IHRoaXMudmFsdWU7XHJcbiAgICAgIHRoaXMucmdiYSA9IHRoaXMuaGV4VG9SZ2JhKHRoaXMuaGV4KTtcclxuICAgICAgdGhpcy5oc2xhID0gdGhpcy5yZ2JhVG9Ic2xhKHRoaXMucmdiYSk7XHJcbiAgICAgIHRoaXMuc2V0SHNsYVBlcmNlbnQoKTtcclxuICAgICAgdGhpcy50eXBlID0gJ2hleCc7XHJcbiAgICB9IGVsc2UgaWYgKC9yZ2IvLnRlc3QodGhpcy52YWx1ZSkpIHtcclxuICAgICAgdGhpcy5yZ2JhQ29udmVydCh0aGlzLnZhbHVlKTtcclxuICAgICAgdGhpcy5oZXggPSB0aGlzLnJnYmFUb0hleCh0aGlzLnJnYmEpO1xyXG4gICAgICB0aGlzLmhzbGEgPSB0aGlzLnJnYmFUb0hzbGEodGhpcy5yZ2JhKTtcclxuICAgICAgdGhpcy5zZXRIc2xhUGVyY2VudCgpO1xyXG4gICAgICB0aGlzLnR5cGUgPSAncmdiYSc7XHJcbiAgICB9IGVsc2UgaWYgKC9oc2wvLnRlc3QodGhpcy52YWx1ZSkpIHtcclxuICAgICAgdGhpcy5oc2xhQ29udmVydCh0aGlzLnZhbHVlKTtcclxuICAgICAgdGhpcy5yZ2JhID0gdGhpcy5oc2xhVG9SZ2JhKHRoaXMuaHNsYSk7XHJcbiAgICAgIHRoaXMuaGV4ID0gdGhpcy5yZ2JhVG9IZXgodGhpcy5yZ2JhKTtcclxuICAgICAgdGhpcy50eXBlID0gJ2hzbGEnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmdiYUNvbnZlcnQoc3RyOiBzdHJpbmcpIHtcclxuICAgIGxldCByZ2JhID0gc3RyXHJcbiAgICAgIC5yZXBsYWNlKC9yZ2JhP1xcKC8sICcnKVxyXG4gICAgICAucmVwbGFjZSgvcmdiP1xcKC8sICcnKVxyXG4gICAgICAucmVwbGFjZSgvXFwpLywgJycpXHJcbiAgICAgIC5yZXBsYWNlKC9bXFxzK10vZywgJycpXHJcbiAgICAgIC5zcGxpdCgnLCcpO1xyXG4gICAgaWYgKHJnYmEubGVuZ3RoID4gMikge1xyXG4gICAgICB0aGlzLnJnYmEgPSB7XHJcbiAgICAgICAgcjogTnVtYmVyKHJnYmFbMF0pLFxyXG4gICAgICAgIGc6IE51bWJlcihyZ2JhWzFdKSxcclxuICAgICAgICBiOiBOdW1iZXIocmdiYVsyXSksXHJcbiAgICAgICAgYTogTnVtYmVyKHJnYmEubGVuZ3RoID4gMyA/IHJnYmFbM10gOiAxKVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaHNsYUNvbnZlcnQoc3RyOiBzdHJpbmcpIHtcclxuICAgIGxldCBoc2xhID0gc3RyXHJcbiAgICAgIC5yZXBsYWNlKC9oc2xhP1xcKC8sICcnKVxyXG4gICAgICAucmVwbGFjZSgvaHNsP1xcKC8sICcnKVxyXG4gICAgICAucmVwbGFjZSgvXFwpLywgJycpXHJcbiAgICAgIC5yZXBsYWNlKC9bXFxzK10vZywgJycpXHJcbiAgICAgIC5zcGxpdCgnLCcpO1xyXG4gICAgaWYgKGhzbGEubGVuZ3RoID4gMikge1xyXG4gICAgICB0aGlzLmhzbGEgPSB7XHJcbiAgICAgICAgaDogTnVtYmVyKGhzbGFbMF0pLFxyXG4gICAgICAgIHM6IE51bWJlcihoc2xhWzFdLnJlcGxhY2UoJyUnLCAnJykpIC8gMTAwLFxyXG4gICAgICAgIGw6IE51bWJlcihoc2xhWzJdLnJlcGxhY2UoJyUnLCAnJykpIC8gMTAwLFxyXG4gICAgICAgIGE6IE51bWJlcihoc2xhLmxlbmd0aCA+IDMgPyBoc2xhWzNdIDogMSlcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5zZXRIc2xhUGVyY2VudCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcGxhdGVDbGljayhldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgaWYgKHRoaXMuZHJhZykgcmV0dXJuO1xyXG4gICAgY29uc3QgcmVjdCA9IHRoaXMucGxhdGVSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGxldCBsZWZ0ID0gZXZlbnQuY2xpZW50WCAtIHJlY3QubGVmdDtcclxuICAgIGxldCB0b3AgPSBldmVudC5jbGllbnRZIC0gcmVjdC50b3A7XHJcbiAgICB0aGlzLnRyYW5zZm9ybSA9IHsgeDogbGVmdCAtIHRoaXMub2Zmc2V0LCB5OiB0b3AgLSB0aGlzLm9mZnNldCB9O1xyXG4gICAgdGhpcy5pbml0VHJhbnNmb3JtID0geyB4OiB0aGlzLnRyYW5zZm9ybS54LCB5OiB0aGlzLnRyYW5zZm9ybS55IH07XHJcbiAgICB0aGlzLnNldExldGZUb3AobGVmdCwgdG9wKTtcclxuICB9XHJcblxyXG4gIHNldFRyYW5zZm9ybSgpIHtcclxuICAgIGxldCBoc3YgPSB0aGlzLmhzbFRvSHN2KHRoaXMuaHNsYS5oIGFzIG51bWJlciwgdGhpcy5oc2xhLnMgYXMgbnVtYmVyLCB0aGlzLmhzbGEubCBhcyBudW1iZXIpO1xyXG4gICAgdGhpcy50cmFuc2Zvcm0ueCA9IGhzdi5zICogdGhpcy5wbGF0ZS53aWR0aCAtIHRoaXMub2Zmc2V0O1xyXG4gICAgdGhpcy50cmFuc2Zvcm0ueSA9ICgxIC0gaHN2LnYpICogdGhpcy5wbGF0ZS5oZWlnaHQgLSB0aGlzLm9mZnNldDtcclxuICAgIHRoaXMuaW5pdFRyYW5zZm9ybSA9IHsgeDogdGhpcy50cmFuc2Zvcm0ueCwgeTogdGhpcy50cmFuc2Zvcm0ueSB9O1xyXG4gIH1cclxuXHJcbiAgc3RhcnRlZCgpIHtcclxuICAgIHRoaXMuZHJhZyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBlbmRlZCgpIHtcclxuICAgIHRoaXMuaW5pdFRyYW5zZm9ybSA9IHsgeDogdGhpcy50cmFuc2Zvcm0ueCwgeTogdGhpcy50cmFuc2Zvcm0ueSB9O1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZHJhZyA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBtb3ZlZChkcmFnOiBDZGtEcmFnTW92ZSkge1xyXG4gICAgY29uc3QgdHJhbnNmb3JtID0gZHJhZy5zb3VyY2UuZ2V0RnJlZURyYWdQb3NpdGlvbigpO1xyXG4gICAgZHJhZy5zb3VyY2UucmVzZXQoKTtcclxuICAgIHRoaXMudHJhbnNmb3JtID0ge1xyXG4gICAgICB4OiB0cmFuc2Zvcm0ueCArIHRoaXMuaW5pdFRyYW5zZm9ybS54LFxyXG4gICAgICB5OiB0cmFuc2Zvcm0ueSArIHRoaXMuaW5pdFRyYW5zZm9ybS55XHJcbiAgICB9O1xyXG4gICAgbGV0IGxlZnQgPSB0aGlzLnRyYW5zZm9ybS54ICsgdGhpcy5vZmZzZXQ7XHJcbiAgICBsZXQgdG9wID0gdGhpcy50cmFuc2Zvcm0ueSArIHRoaXMub2Zmc2V0O1xyXG4gICAgdGhpcy5zZXRMZXRmVG9wKGxlZnQsIHRvcCk7XHJcbiAgfVxyXG5cclxuICBzZXRMZXRmVG9wKGxlZnQ6IG51bWJlciwgdG9wOiBudW1iZXIpIHtcclxuICAgIGxldCBzID0gbGVmdCAvIHRoaXMucGxhdGUud2lkdGg7XHJcbiAgICBsZXQgdiA9IDEgLSB0b3AgLyB0aGlzLnBsYXRlLmhlaWdodDtcclxuICAgIGxldCBsID0gKCgyIC0gcykgKiB2KSAvIDI7XHJcbiAgICBpZiAobCAhPT0gMCkge1xyXG4gICAgICBpZiAobCA9PT0gMSkge1xyXG4gICAgICAgIHMgPSAwO1xyXG4gICAgICB9IGVsc2UgaWYgKGwgPCAwLjUpIHtcclxuICAgICAgICBzID0gKHMgKiB2KSAvIChsICogMik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcyA9IChzICogdikgLyAoMiAtIGwgKiAyKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgW3RoaXMuaHNsYS5zLCB0aGlzLmhzbGEubF0gPSBbXHJcbiAgICAgIE51bWJlcih0aGlzLmRlY2ltYWwudHJhbnNmb3JtKHMsICcxLjItMicpKSxcclxuICAgICAgTnVtYmVyKHRoaXMuZGVjaW1hbC50cmFuc2Zvcm0obCwgJzEuMi0yJykpXHJcbiAgICBdO1xyXG4gICAgdGhpcy5zZXRIc2xhUGVyY2VudCgpO1xyXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLnJnYmEsIHRoaXMuaHNsYVRvUmdiYSh0aGlzLmhzbGEpKTtcclxuICAgIHRoaXMuaGV4ID0gdGhpcy5yZ2JhVG9IZXgodGhpcy5yZ2JhKTtcclxuICAgIHRoaXMuc2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIHNldEhzbGFQZXJjZW50KCkge1xyXG4gICAgdGhpcy5oc2xhLnNwID0gdGhpcy5oc2xhLnMgPT09IDAgPyAnMCUnIDogKHRoaXMucGVyY2VudC50cmFuc2Zvcm0odGhpcy5oc2xhLnMsICcxLjAtMCcpIGFzIHN0cmluZyk7XHJcbiAgICB0aGlzLmhzbGEubHAgPSB0aGlzLmhzbGEubCA9PT0gMCA/ICcwJScgOiAodGhpcy5wZXJjZW50LnRyYW5zZm9ybSh0aGlzLmhzbGEubCwgJzEuMC0wJykgYXMgc3RyaW5nKTtcclxuICB9XHJcblxyXG4gIGdldFByaW1hcnkoKSB7XHJcbiAgICByZXR1cm4gWENvbXB1dGVkKHRoaXMuZG9jLmRvY3VtZW50RWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgnLS14LXByaW1hcnknKS50cmltKCk7XHJcbiAgfVxyXG5cclxuICBodWVDaGFuZ2UoKSB7XHJcbiAgICB0aGlzLnNldFBsYXRlQmFja2dyb3VuZCgpO1xyXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLnJnYmEsIHRoaXMuaHNsYVRvUmdiYSh0aGlzLmhzbGEpKTtcclxuICAgIHRoaXMuaGV4ID0gdGhpcy5yZ2JhVG9IZXgodGhpcy5yZ2JhKTtcclxuICAgIHRoaXMuc2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIHNldFBsYXRlQmFja2dyb3VuZCgpIHtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5wbGF0ZVJlZi5uYXRpdmVFbGVtZW50LCAnYmFja2dyb3VuZC1jb2xvcicsIGBoc2woJHt0aGlzLmhzbGEuaH0sIDEwMCUsIDUwJSlgKTtcclxuICB9XHJcblxyXG4gIHNldFJhaWxCYWNrZ3JvdW5kKCkge1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcclxuICAgICAgdGhpcy50cmFuc3BhcmVudFJhaWwsXHJcbiAgICAgICdiYWNrZ3JvdW5kJyxcclxuICAgICAgYGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgke3RoaXMucmdiYS5yfSwgJHt0aGlzLnJnYmEuZ30sICR7dGhpcy5yZ2JhLmJ9LCAwKSAwJSwgcmdiYSgke3RoaXMucmdiYS5yfSwgJHt0aGlzLnJnYmEuZ30sICR7dGhpcy5yZ2JhLmJ9LCAxKSAxMDAlKWBcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB0cmFuc3BhcmVudENoYW5nZSgpIHtcclxuICAgIE9iamVjdC5hc3NpZ24odGhpcy5yZ2JhLCB0aGlzLmhzbGFUb1JnYmEodGhpcy5oc2xhKSk7XHJcbiAgICB0aGlzLmhleCA9IHRoaXMucmdiYVRvSGV4KHRoaXMucmdiYSk7XHJcbiAgICB0aGlzLnNldFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRWYWx1ZSgpIHtcclxuICAgIHRoaXMuc2V0VmFsdWVCeVR5cGUoKTtcclxuICAgIHRoaXMuc2V0UmFpbEJhY2tncm91bmQoKTtcclxuICAgIHRoaXMubm9kZUVtaXQodGhpcy52YWx1ZSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRWYWx1ZUJ5VHlwZSgpIHtcclxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdoZXgnKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBgJHt0aGlzLmhleH1gO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdyZ2JhJykge1xyXG4gICAgICB0aGlzLnZhbHVlID0gYHJnYmEoJHt0aGlzLnJnYmEucn0sICR7dGhpcy5yZ2JhLmd9LCAke3RoaXMucmdiYS5ifSwgJHt0aGlzLnJnYmEuYX0pYDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAnaHNsYScpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IGBoc2xhKCR7dGhpcy5oc2xhLmh9LCAke3RoaXMuaHNsYS5zcH0sICR7dGhpcy5oc2xhLmxwfSwgJHt0aGlzLmhzbGEuYX0pYDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhzbGFUb1JnYmEoaHNsYTogeyBoPzogbnVtYmVyOyBzPzogbnVtYmVyOyBsPzogbnVtYmVyOyBhPzogbnVtYmVyIH0pIHtcclxuICAgIGxldCByLCBnLCBiO1xyXG4gICAgbGV0IFtoLCBzLCBsXSA9IFtoc2xhLmggYXMgbnVtYmVyLCBoc2xhLnMgYXMgbnVtYmVyLCBoc2xhLmwgYXMgbnVtYmVyXTtcclxuICAgIGlmIChzID09IDApIHtcclxuICAgICAgciA9IGcgPSBiID0gbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBodWUycmdiID0gKHA6IG51bWJlciwgcTogbnVtYmVyLCB0OiBudW1iZXIpID0+IHtcclxuICAgICAgICBpZiAodCA8IDApIHQgKz0gMTtcclxuICAgICAgICBpZiAodCA+IDEpIHQgLT0gMTtcclxuICAgICAgICBpZiAodCA8IDEgLyA2KSByZXR1cm4gcCArIChxIC0gcCkgKiA2ICogdDtcclxuICAgICAgICBpZiAodCA8IDEgLyAyKSByZXR1cm4gcTtcclxuICAgICAgICBpZiAodCA8IDIgLyAzKSByZXR1cm4gcCArIChxIC0gcCkgKiAoMiAvIDMgLSB0KSAqIDY7XHJcbiAgICAgICAgcmV0dXJuIHA7XHJcbiAgICAgIH07XHJcblxyXG4gICAgICBsZXQgcSA9IGwgPCAwLjUgPyBsICogKDEgKyBzKSA6IGwgKyBzIC0gbCAqIHM7XHJcbiAgICAgIGxldCBwID0gMiAqIGwgLSBxO1xyXG4gICAgICByID0gaHVlMnJnYihwLCBxLCBoIC8gMzYwICsgMSAvIDMpO1xyXG4gICAgICBnID0gaHVlMnJnYihwLCBxLCBoIC8gMzYwKTtcclxuICAgICAgYiA9IGh1ZTJyZ2IocCwgcSwgaCAvIDM2MCAtIDEgLyAzKTtcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgIHI6IE1hdGgucm91bmQociAqIDI1NSksXHJcbiAgICAgIGc6IE1hdGgucm91bmQoZyAqIDI1NSksXHJcbiAgICAgIGI6IE1hdGgucm91bmQoYiAqIDI1NSksXHJcbiAgICAgIGE6IE51bWJlcihoc2xhLmEpXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcmdiYVRvSGV4KHJnYmE6IHsgcj86IG51bWJlcjsgZz86IG51bWJlcjsgYj86IG51bWJlcjsgYT86IG51bWJlciB9KSB7XHJcbiAgICBsZXQgaGV4ID0gW1xyXG4gICAgICAocmdiYS5yIGFzIG51bWJlcikudG9TdHJpbmcoMTYpLFxyXG4gICAgICAocmdiYS5nIGFzIG51bWJlcikudG9TdHJpbmcoMTYpLFxyXG4gICAgICAocmdiYS5iIGFzIG51bWJlcikudG9TdHJpbmcoMTYpLFxyXG4gICAgICBNYXRoLnJvdW5kKDI1NSAqIChyZ2JhLmEgYXMgbnVtYmVyKSkudG9TdHJpbmcoMTYpXHJcbiAgICBdO1xyXG4gICAgaGV4LmZvckVhY2goKHgsIGluZGV4KSA9PiB7XHJcbiAgICAgIGlmIChpbmRleCA9PT0gMyAmJiB4ID09PSAnZmYnKSB7XHJcbiAgICAgICAgaGV4W2luZGV4XSA9ICcnO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh4Lmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgIGhleFtpbmRleF0gPSAnMCcgKyB4O1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBgIyR7aGV4LmpvaW4oJycpfWA7XHJcbiAgfVxyXG5cclxuICByZ2JhVG9Ic2xhKHJnYmE6IHsgcj86IG51bWJlcjsgZz86IG51bWJlcjsgYj86IG51bWJlcjsgYT86IG51bWJlciB9KSB7XHJcbiAgICBsZXQgW3IsIGcsIGJdID0gWyhyZ2JhLnIgYXMgbnVtYmVyKSAvIDI1NSwgKHJnYmEuZyBhcyBudW1iZXIpIC8gMjU1LCAocmdiYS5iIGFzIG51bWJlcikgLyAyNTVdO1xyXG4gICAgbGV0IFttYXgsIG1pbl0gPSBbTWF0aC5tYXgociwgZywgYiksIE1hdGgubWluKHIsIGcsIGIpXTtcclxuICAgIGxldCBoID0gMDtcclxuICAgIGxldCBzID0gMDtcclxuICAgIGxldCBsID0gKG1heCArIG1pbikgLyAyO1xyXG5cclxuICAgIGlmIChtYXggPT09IG1pbikge1xyXG4gICAgICBoID0gcyA9IDA7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgZCA9IG1heCAtIG1pbjtcclxuICAgICAgcyA9IGwgPiAwLjUgPyBkIC8gKDIgLSBtYXggLSBtaW4pIDogZCAvIChtYXggKyBtaW4pO1xyXG4gICAgICBzd2l0Y2ggKG1heCkge1xyXG4gICAgICAgIGNhc2UgcjpcclxuICAgICAgICAgIGggPSAoZyAtIGIpIC8gZCArIChnIDwgYiA/IDYgOiAwKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgZzpcclxuICAgICAgICAgIGggPSAoYiAtIHIpIC8gZCArIDI7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIGI6XHJcbiAgICAgICAgICBoID0gKHIgLSBnKSAvIGQgKyA0O1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgaCAvPSA2O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGg6IE1hdGgucm91bmQoaCAqIDM2MCksXHJcbiAgICAgIHM6IE51bWJlcih0aGlzLmRlY2ltYWwudHJhbnNmb3JtKHMsICcxLjItMicpKSxcclxuICAgICAgbDogTnVtYmVyKHRoaXMuZGVjaW1hbC50cmFuc2Zvcm0obCwgJzEuMi0yJykpLFxyXG4gICAgICBhOiBOdW1iZXIocmdiYS5hKVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGhleFRvUmdiYShoZXg6IHN0cmluZykge1xyXG4gICAgbGV0IGhleE51bSA9IGhleC5zdWJzdHJpbmcoMSk7XHJcbiAgICBsZXQgYSA9IDE7XHJcbiAgICBpZiAoaGV4TnVtLmxlbmd0aCA9PT0gOCkge1xyXG4gICAgICBhID0gTnVtYmVyKHRoaXMuZGVjaW1hbC50cmFuc2Zvcm0oTnVtYmVyKCcweCcgKyBoZXhOdW0uc2xpY2UoLTIpKSAvIDI1NSwgJzEuMi0yJykpO1xyXG4gICAgICBoZXhOdW0gPSBoZXhOdW0uc3Vic3RyaW5nKDAsIGhleE51bS5sZW5ndGggLSAyKTtcclxuICAgIH1cclxuICAgIGxldCBudW0gPSBOdW1iZXIoJzB4JyArIChoZXhOdW0ubGVuZ3RoIDwgNiA/IHRoaXMucmVwZWF0TGV0dGVyKGhleE51bSwgMikgOiBoZXhOdW0pKTtcclxuICAgIHJldHVybiB7IHI6IG51bSA+PiAxNiwgZzogKG51bSA+PiA4KSAmIDB4ZmYsIGI6IG51bSAmIDB4ZmYsIGE6IGEgfTtcclxuICB9XHJcblxyXG4gIGhzbFRvSHN2KGg6IG51bWJlciwgczogbnVtYmVyLCBsOiBudW1iZXIpIHtcclxuICAgIGxldCBoSHN2LCBzSHN2LCB2O1xyXG5cclxuICAgIGhIc3YgPSBoO1xyXG5cclxuICAgIGlmIChsID09IDApIHtcclxuICAgICAgc0hzdiA9IDA7XHJcbiAgICAgIHYgPSAwO1xyXG4gICAgfSBlbHNlIGlmIChsID4gMCAmJiBsIDw9IDAuNSkge1xyXG4gICAgICBzSHN2ID0gKDIgKiBzKSAvICgxICsgcyk7XHJcbiAgICAgIHYgPSBsICogKDEgKyBzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNIc3YgPSAoMiAqIHMgLSAyICogcyAqIGwpIC8gKHMgLSBzICogbCArIGwpO1xyXG4gICAgICB2ID0gcyAtIHMgKiBsICsgbDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBoOiBoSHN2LFxyXG4gICAgICBzOiBOdW1iZXIodGhpcy5kZWNpbWFsLnRyYW5zZm9ybShzSHN2LCAnMS4yLTInKSksXHJcbiAgICAgIHY6IE51bWJlcih0aGlzLmRlY2ltYWwudHJhbnNmb3JtKHYsICcxLjItMicpKVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHJlcGVhdFdvcmQod29yZDogc3RyaW5nLCBudW06IG51bWJlcikge1xyXG4gICAgbGV0IHJlc3VsdCA9ICcnO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW07IGkrKykge1xyXG4gICAgICByZXN1bHQgKz0gd29yZDtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICByZXBlYXRMZXR0ZXIod29yZDogc3RyaW5nLCBudW06IG51bWJlcikge1xyXG4gICAgbGV0IHJlc3VsdCA9ICcnO1xyXG4gICAgZm9yIChsZXQgbGV0dGVyIG9mIHdvcmQpIHtcclxuICAgICAgcmVzdWx0ICs9IHRoaXMucmVwZWF0V29yZChsZXR0ZXIsIG51bSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsXCIgdGFiaW5kZXg9XCItMVwiIChjbGljayk9XCJzdG9wUHJvcGFnYXRpb24oJGV2ZW50KVwiPlxyXG4gIDxkaXYgI3BhbmVsUmVmIGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLXBhbmVsXCI+XHJcbiAgICA8ZGl2ICNwbGF0ZVJlZiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXBvcnRhbC1wbGF0ZVwiIChjbGljayk9XCJwbGF0ZUNsaWNrKCRldmVudClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXBvcnRhbC13aGl0ZVwiPjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLWJsYWNrXCI+PC9kaXY+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICAjZHJhZ0NvbVxyXG4gICAgICAgIGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLWN1cnNvclwiXHJcbiAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwidHJhbnNmb3JtLnhcIlxyXG4gICAgICAgIFtzdHlsZS50b3AucHhdPVwidHJhbnNmb3JtLnlcIlxyXG4gICAgICAgIGNka0RyYWdcclxuICAgICAgICBbY2RrRHJhZ0JvdW5kYXJ5XT1cInBhbmVsUmVmXCJcclxuICAgICAgICAoY2RrRHJhZ1N0YXJ0ZWQpPVwic3RhcnRlZCgpXCJcclxuICAgICAgICAoY2RrRHJhZ0VuZGVkKT1cImVuZGVkKClcIlxyXG4gICAgICAgIChjZGtEcmFnTW92ZWQpPVwibW92ZWQoJGV2ZW50KVwiXHJcbiAgICAgID48L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtdG9vbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXBvcnRhbC1vcGVyYXRpb25zXCI+XHJcbiAgICAgIDwhLS0gPHgtYnV0dG9uIGljb249XCJmdG8tZWRpdC0yXCIgb25seUljb24+PC94LWJ1dHRvbj4gLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtc2VsZWN0ZWRcIj5cclxuICAgICAgICA8ZGl2IFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cInZhbHVlXCI+PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLWFyZWFcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLXNsaWRlclwiPlxyXG4gICAgICAgICAgPHgtc2xpZGVyLXNlbGVjdFxyXG4gICAgICAgICAgICBbc3R5bGUud2lkdGguJV09XCIxMDBcIlxyXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImhzbGEuaFwiXHJcbiAgICAgICAgICAgIG1pbj1cIjBcIlxyXG4gICAgICAgICAgICBtYXg9XCIzNjBcIlxyXG4gICAgICAgICAgICBzdGVwPVwiMVwiXHJcbiAgICAgICAgICAgIChkcmFnU3RhcnRFbWl0KT1cInN0YXJ0ZWQoKVwiXHJcbiAgICAgICAgICAgIChkcmFnRW5kRW1pdCk9XCJlbmRlZCgpXCJcclxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiaHVlQ2hhbmdlKClcIlxyXG4gICAgICAgICAgPjwveC1zbGlkZXItc2VsZWN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtdHJhbnNwYXJlbnRcIj5cclxuICAgICAgICAgIDx4LXNsaWRlci1zZWxlY3RcclxuICAgICAgICAgICAgW3N0eWxlLndpZHRoLiVdPVwiMTAwXCJcclxuICAgICAgICAgICAgI3RyYW5zcGFyZW50Q29tXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaHNsYS5hXCJcclxuICAgICAgICAgICAgbWluPVwiMFwiXHJcbiAgICAgICAgICAgIG1heD1cIjFcIlxyXG4gICAgICAgICAgICBzdGVwPVwiMC4wMVwiXHJcbiAgICAgICAgICAgIChkcmFnU3RhcnRlZCk9XCJzdGFydGVkKClcIlxyXG4gICAgICAgICAgICAoZHJhZ0VuZGVkKT1cImVuZGVkKClcIlxyXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ0cmFuc3BhcmVudENoYW5nZSgpXCJcclxuICAgICAgICAgID48L3gtc2xpZGVyLXNlbGVjdD5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtYWxwaGFcIj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtdHlwZVwiPlxyXG4gICAgICA8eC10YWJzIGFuaW1hdGVkPVwiZmFsc2VcIiBqdXN0aWZ5PVwiY2VudGVyXCI+XHJcbiAgICAgICAgPHgtdGFiIGxhYmVsPVwiSEVYXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLXR5cGUtY29udGVudFwiPlxyXG4gICAgICAgICAgICA8eC1pbnB1dCBbc3R5bGUud2lkdGguJV09XCIxMDBcIiBbKG5nTW9kZWwpXT1cImhleFwiIChuZ01vZGVsQ2hhbmdlKT1cImhleENoYW5nZSgpXCI+PC94LWlucHV0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC94LXRhYj5cclxuICAgICAgICA8eC10YWIgbGFiZWw9XCJSR0JBXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLXR5cGUtY29udGVudFwiPlxyXG4gICAgICAgICAgICA8eC1pbnB1dCBbKG5nTW9kZWwpXT1cInJnYmEuclwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC94LWlucHV0PlxyXG4gICAgICAgICAgICA8eC1pbnB1dCBbKG5nTW9kZWwpXT1cInJnYmEuZ1wiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC94LWlucHV0PlxyXG4gICAgICAgICAgICA8eC1pbnB1dCBbKG5nTW9kZWwpXT1cInJnYmEuYlwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC94LWlucHV0PlxyXG4gICAgICAgICAgICA8eC1pbnB1dCBbKG5nTW9kZWwpXT1cInJnYmEuYVwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC94LWlucHV0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC94LXRhYj5cclxuICAgICAgICA8eC10YWIgbGFiZWw9XCJIU0xBXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLXR5cGUtY29udGVudFwiPlxyXG4gICAgICAgICAgICA8eC1pbnB1dCBbKG5nTW9kZWwpXT1cImhzbGEuaFwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC94LWlucHV0PlxyXG4gICAgICAgICAgICA8eC1pbnB1dCBbKG5nTW9kZWwpXT1cImhzbGEuc3BcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwveC1pbnB1dD5cclxuICAgICAgICAgICAgPHgtaW5wdXQgWyhuZ01vZGVsKV09XCJoc2xhLmxwXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L3gtaW5wdXQ+XHJcbiAgICAgICAgICAgIDx4LWlucHV0IFsobmdNb2RlbCldPVwiaHNsYS5hXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L3gtaW5wdXQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3gtdGFiPlxyXG4gICAgICA8L3gtdGFicz5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19