@ng-nest/ui 17.0.3 → 17.0.5

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 (426) hide show
  1. package/checkbox/checkbox.component.d.ts +0 -1
  2. package/checkbox/checkbox.property.d.ts +11 -1
  3. package/esm2022/affix/affix.component.mjs +3 -3
  4. package/esm2022/affix/affix.module.mjs +4 -4
  5. package/esm2022/affix/affix.property.mjs +3 -3
  6. package/esm2022/alert/alert.component.mjs +5 -5
  7. package/esm2022/alert/alert.module.mjs +4 -4
  8. package/esm2022/alert/alert.property.mjs +3 -3
  9. package/esm2022/anchor/anchor-inner.component.mjs +3 -3
  10. package/esm2022/anchor/anchor.component.mjs +3 -3
  11. package/esm2022/anchor/anchor.module.mjs +4 -4
  12. package/esm2022/anchor/anchor.property.mjs +6 -6
  13. package/esm2022/api/api.component.mjs +3 -3
  14. package/esm2022/api/api.module.mjs +4 -4
  15. package/esm2022/auto-complete/auto-complete-portal.component.mjs +3 -3
  16. package/esm2022/auto-complete/auto-complete.component.mjs +3 -3
  17. package/esm2022/auto-complete/auto-complete.module.mjs +4 -4
  18. package/esm2022/auto-complete/auto-complete.property.mjs +3 -3
  19. package/esm2022/avatar/avatar-group.component.mjs +3 -3
  20. package/esm2022/avatar/avatar.component.mjs +3 -3
  21. package/esm2022/avatar/avatar.module.mjs +4 -4
  22. package/esm2022/avatar/avatar.property.mjs +6 -6
  23. package/esm2022/back-top/back-top.component.mjs +3 -3
  24. package/esm2022/back-top/back-top.module.mjs +4 -4
  25. package/esm2022/back-top/back-top.property.mjs +3 -3
  26. package/esm2022/badge/badge.component.mjs +3 -3
  27. package/esm2022/badge/badge.module.mjs +4 -4
  28. package/esm2022/badge/badge.property.mjs +3 -3
  29. package/esm2022/base-form/base-form.component.mjs +3 -3
  30. package/esm2022/base-form/base-form.module.mjs +4 -4
  31. package/esm2022/base-form/base-form.property.mjs +3 -3
  32. package/esm2022/border/border.component.mjs +3 -3
  33. package/esm2022/border/border.module.mjs +4 -4
  34. package/esm2022/button/button.component.mjs +5 -4
  35. package/esm2022/button/button.module.mjs +4 -4
  36. package/esm2022/button/button.property.mjs +6 -6
  37. package/esm2022/button/buttons.component.mjs +3 -3
  38. package/esm2022/calendar/calendar.component.mjs +3 -3
  39. package/esm2022/calendar/calendar.module.mjs +4 -4
  40. package/esm2022/calendar/calendar.property.mjs +3 -3
  41. package/esm2022/card/card.component.mjs +3 -3
  42. package/esm2022/card/card.module.mjs +4 -4
  43. package/esm2022/card/card.property.mjs +3 -3
  44. package/esm2022/carousel/carousel-panel.component.mjs +3 -3
  45. package/esm2022/carousel/carousel.component.mjs +3 -3
  46. package/esm2022/carousel/carousel.module.mjs +4 -4
  47. package/esm2022/carousel/carousel.property.mjs +6 -6
  48. package/esm2022/cascade/cascade-portal.component.mjs +3 -3
  49. package/esm2022/cascade/cascade.component.mjs +3 -3
  50. package/esm2022/cascade/cascade.module.mjs +4 -4
  51. package/esm2022/cascade/cascade.property.mjs +3 -3
  52. package/esm2022/checkbox/checkbox.component.mjs +5 -7
  53. package/esm2022/checkbox/checkbox.module.mjs +4 -4
  54. package/esm2022/checkbox/checkbox.property.mjs +30 -4
  55. package/esm2022/collapse/collapse-panel.component.mjs +3 -3
  56. package/esm2022/collapse/collapse.component.mjs +3 -3
  57. package/esm2022/collapse/collapse.module.mjs +4 -4
  58. package/esm2022/collapse/collapse.property.mjs +6 -6
  59. package/esm2022/color/color.component.mjs +3 -3
  60. package/esm2022/color/color.module.mjs +4 -4
  61. package/esm2022/color/color.property.mjs +3 -3
  62. package/esm2022/color-picker/color-picker-portal.component.mjs +5 -5
  63. package/esm2022/color-picker/color-picker.component.mjs +3 -3
  64. package/esm2022/color-picker/color-picker.module.mjs +4 -4
  65. package/esm2022/color-picker/color-picker.property.mjs +3 -3
  66. package/esm2022/comment/comment-reply.component.mjs +3 -3
  67. package/esm2022/comment/comment.component.mjs +3 -3
  68. package/esm2022/comment/comment.module.mjs +4 -4
  69. package/esm2022/comment/comment.property.mjs +6 -6
  70. package/esm2022/container/aside.component.mjs +3 -3
  71. package/esm2022/container/container.component.mjs +3 -3
  72. package/esm2022/container/container.module.mjs +4 -4
  73. package/esm2022/container/container.property.mjs +12 -12
  74. package/esm2022/container/footer.component.mjs +3 -3
  75. package/esm2022/container/header.component.mjs +3 -3
  76. package/esm2022/container/main.component.mjs +3 -3
  77. package/esm2022/core/config/config.service.mjs +3 -3
  78. package/esm2022/core/services/http.service.mjs +3 -3
  79. package/esm2022/core/services/preloading-strategy.service.mjs +3 -3
  80. package/esm2022/core/services/storage.service.mjs +3 -3
  81. package/esm2022/core/theme/theme.service.mjs +3 -3
  82. package/esm2022/crumb/crumb.component.mjs +3 -3
  83. package/esm2022/crumb/crumb.module.mjs +4 -4
  84. package/esm2022/crumb/crumb.property.mjs +3 -3
  85. package/esm2022/date-picker/date-picker-portal.component.mjs +3 -3
  86. package/esm2022/date-picker/date-picker.component.mjs +3 -3
  87. package/esm2022/date-picker/date-picker.module.mjs +4 -4
  88. package/esm2022/date-picker/date-picker.property.mjs +18 -18
  89. package/esm2022/date-picker/date-quarter.pipe.mjs +3 -3
  90. package/esm2022/date-picker/date-range-portal.component.mjs +3 -3
  91. package/esm2022/date-picker/date-range.component.mjs +3 -3
  92. package/esm2022/date-picker/picker-date.component.mjs +3 -3
  93. package/esm2022/date-picker/picker-month.component.mjs +3 -3
  94. package/esm2022/date-picker/picker-quarter.component.mjs +3 -3
  95. package/esm2022/date-picker/picker-year.component.mjs +3 -3
  96. package/esm2022/description/description-item.component.mjs +3 -3
  97. package/esm2022/description/description.component.mjs +3 -3
  98. package/esm2022/description/description.module.mjs +4 -4
  99. package/esm2022/description/description.property.mjs +6 -6
  100. package/esm2022/dialog/dialog-container.component.mjs +5 -5
  101. package/esm2022/dialog/dialog-portal.component.mjs +3 -3
  102. package/esm2022/dialog/dialog-portal.directives.mjs +18 -18
  103. package/esm2022/dialog/dialog.component.mjs +5 -5
  104. package/esm2022/dialog/dialog.module.mjs +4 -4
  105. package/esm2022/dialog/dialog.property.mjs +6 -6
  106. package/esm2022/dialog/dialog.service.mjs +3 -3
  107. package/esm2022/doc/doc.component.mjs +3 -3
  108. package/esm2022/doc/doc.module.mjs +4 -4
  109. package/esm2022/drag/drag.directive.mjs +3 -3
  110. package/esm2022/drag/drag.module.mjs +4 -4
  111. package/esm2022/drag/drag.property.mjs +3 -3
  112. package/esm2022/drawer/drawer-container.component.mjs +5 -5
  113. package/esm2022/drawer/drawer-portal.component.mjs +3 -3
  114. package/esm2022/drawer/drawer-portal.directives.mjs +9 -9
  115. package/esm2022/drawer/drawer.component.mjs +3 -3
  116. package/esm2022/drawer/drawer.module.mjs +4 -4
  117. package/esm2022/drawer/drawer.property.mjs +6 -6
  118. package/esm2022/drawer/drawer.service.mjs +3 -3
  119. package/esm2022/dropdown/dropdown-portal.component.mjs +3 -3
  120. package/esm2022/dropdown/dropdown.component.mjs +3 -3
  121. package/esm2022/dropdown/dropdown.module.mjs +4 -4
  122. package/esm2022/dropdown/dropdown.property.mjs +3 -3
  123. package/esm2022/empty/empty.component.mjs +3 -3
  124. package/esm2022/empty/empty.module.mjs +4 -4
  125. package/esm2022/empty/empty.property.mjs +3 -3
  126. package/esm2022/examples/examples.component.mjs +4 -4
  127. package/esm2022/examples/examples.module.mjs +4 -4
  128. package/esm2022/find/find.component.mjs +5 -5
  129. package/esm2022/find/find.module.mjs +4 -4
  130. package/esm2022/find/find.property.mjs +3 -3
  131. package/esm2022/form/control.component.mjs +3 -3
  132. package/esm2022/form/form.component.mjs +3 -3
  133. package/esm2022/form/form.module.mjs +4 -4
  134. package/esm2022/form/form.property.mjs +6 -6
  135. package/esm2022/highlight/highlight.component.mjs +3 -3
  136. package/esm2022/highlight/highlight.module.mjs +4 -4
  137. package/esm2022/highlight/highlight.property.mjs +3 -3
  138. package/esm2022/i18n/i18n.directive.mjs +3 -3
  139. package/esm2022/i18n/i18n.module.mjs +4 -4
  140. package/esm2022/i18n/i18n.pipe.mjs +3 -3
  141. package/esm2022/i18n/i18n.service.mjs +3 -3
  142. package/esm2022/icon/icon.component.mjs +3 -3
  143. package/esm2022/icon/icon.module.mjs +4 -4
  144. package/esm2022/icon/icon.property.mjs +3 -3
  145. package/esm2022/icon/icon.service.mjs +3 -3
  146. package/esm2022/image/image-group.component.mjs +3 -3
  147. package/esm2022/image/image-preview.component.mjs +3 -3
  148. package/esm2022/image/image.component.mjs +5 -5
  149. package/esm2022/image/image.module.mjs +4 -4
  150. package/esm2022/image/image.property.mjs +6 -6
  151. package/esm2022/inner/inner.component.mjs +3 -3
  152. package/esm2022/inner/inner.module.mjs +4 -4
  153. package/esm2022/inner/inner.property.mjs +3 -3
  154. package/esm2022/input/input-group.component.mjs +3 -3
  155. package/esm2022/input/input.component.mjs +5 -5
  156. package/esm2022/input/input.module.mjs +4 -4
  157. package/esm2022/input/input.property.mjs +6 -6
  158. package/esm2022/input-number/input-number.component.mjs +16 -11
  159. package/esm2022/input-number/input-number.module.mjs +4 -4
  160. package/esm2022/input-number/input-number.property.mjs +3 -3
  161. package/esm2022/keyword/keyword.directive.mjs +3 -3
  162. package/esm2022/keyword/keyword.module.mjs +4 -4
  163. package/esm2022/keyword/keyword.property.mjs +3 -3
  164. package/esm2022/layout/col.component.mjs +3 -3
  165. package/esm2022/layout/layout.module.mjs +4 -4
  166. package/esm2022/layout/layout.property.mjs +6 -6
  167. package/esm2022/layout/row.component.mjs +3 -3
  168. package/esm2022/link/link.component.mjs +3 -3
  169. package/esm2022/link/link.module.mjs +4 -4
  170. package/esm2022/link/link.property.mjs +3 -3
  171. package/esm2022/list/list-drop-group.directive.mjs +3 -3
  172. package/esm2022/list/list-option.component.mjs +3 -3
  173. package/esm2022/list/list.component.mjs +3 -3
  174. package/esm2022/list/list.module.mjs +4 -4
  175. package/esm2022/list/list.property.mjs +6 -6
  176. package/esm2022/loading/loading.component.mjs +3 -3
  177. package/esm2022/loading/loading.module.mjs +4 -4
  178. package/esm2022/loading/loading.property.mjs +3 -3
  179. package/esm2022/menu/menu-node.component.mjs +3 -3
  180. package/esm2022/menu/menu.component.mjs +5 -5
  181. package/esm2022/menu/menu.module.mjs +4 -4
  182. package/esm2022/menu/menu.property.mjs +6 -6
  183. package/esm2022/message/message.component.mjs +3 -3
  184. package/esm2022/message/message.module.mjs +4 -4
  185. package/esm2022/message/message.property.mjs +1 -1
  186. package/esm2022/message/message.service.mjs +4 -5
  187. package/esm2022/message-box/message-box.component.mjs +7 -5
  188. package/esm2022/message-box/message-box.module.mjs +4 -4
  189. package/esm2022/message-box/message-box.service.mjs +3 -3
  190. package/esm2022/notification/notification.component.mjs +3 -3
  191. package/esm2022/notification/notification.module.mjs +4 -4
  192. package/esm2022/notification/notification.service.mjs +3 -3
  193. package/esm2022/outlet/outlet.directive.mjs +3 -3
  194. package/esm2022/outlet/outlet.module.mjs +4 -4
  195. package/esm2022/page-header/page-header.component.mjs +3 -3
  196. package/esm2022/page-header/page-header.module.mjs +4 -4
  197. package/esm2022/page-header/page-header.property.mjs +3 -3
  198. package/esm2022/pagination/pagination.component.mjs +3 -3
  199. package/esm2022/pagination/pagination.module.mjs +4 -4
  200. package/esm2022/pagination/pagination.property.mjs +3 -3
  201. package/esm2022/pattern/pattern.component.mjs +3 -3
  202. package/esm2022/pattern/pattern.module.mjs +4 -4
  203. package/esm2022/popconfirm/popconfirm.component.mjs +3 -3
  204. package/esm2022/popconfirm/popconfirm.module.mjs +4 -4
  205. package/esm2022/popconfirm/popconfirm.property.mjs +3 -3
  206. package/esm2022/popover/popover-portal.component.mjs +3 -3
  207. package/esm2022/popover/popover.directive.mjs +3 -3
  208. package/esm2022/popover/popover.module.mjs +4 -4
  209. package/esm2022/popover/popover.property.mjs +3 -3
  210. package/esm2022/portal/portal.module.mjs +4 -4
  211. package/esm2022/portal/portal.service.mjs +3 -3
  212. package/esm2022/progress/progress.component.mjs +3 -3
  213. package/esm2022/progress/progress.module.mjs +4 -4
  214. package/esm2022/progress/progress.property.mjs +3 -3
  215. package/esm2022/radio/radio.component.mjs +5 -5
  216. package/esm2022/radio/radio.module.mjs +4 -4
  217. package/esm2022/radio/radio.property.mjs +14 -4
  218. package/esm2022/rate/rate.component.mjs +3 -3
  219. package/esm2022/rate/rate.module.mjs +4 -4
  220. package/esm2022/rate/rate.property.mjs +3 -3
  221. package/esm2022/resizable/resizable.directive.mjs +3 -3
  222. package/esm2022/resizable/resizable.module.mjs +4 -4
  223. package/esm2022/resizable/resizable.property.mjs +3 -3
  224. package/esm2022/result/result.component.mjs +3 -3
  225. package/esm2022/result/result.module.mjs +4 -4
  226. package/esm2022/result/result.property.mjs +3 -3
  227. package/esm2022/ripple/ripple.directive.mjs +3 -3
  228. package/esm2022/ripple/ripple.module.mjs +4 -4
  229. package/esm2022/ripple/ripple.property.mjs +3 -3
  230. package/esm2022/select/select-portal.component.mjs +3 -3
  231. package/esm2022/select/select.component.mjs +3 -3
  232. package/esm2022/select/select.module.mjs +4 -4
  233. package/esm2022/select/select.property.mjs +3 -3
  234. package/esm2022/skeleton/skeleton.component.mjs +3 -3
  235. package/esm2022/skeleton/skeleton.module.mjs +4 -4
  236. package/esm2022/skeleton/skeleton.property.mjs +3 -3
  237. package/esm2022/slider/slider.component.mjs +3 -3
  238. package/esm2022/slider/slider.module.mjs +4 -4
  239. package/esm2022/slider/slider.property.mjs +3 -3
  240. package/esm2022/slider-select/slider-select.component.mjs +3 -3
  241. package/esm2022/slider-select/slider-select.module.mjs +4 -4
  242. package/esm2022/slider-select/slider-select.property.mjs +3 -3
  243. package/esm2022/statistic/countdown.component.mjs +3 -3
  244. package/esm2022/statistic/statistic.component.mjs +3 -3
  245. package/esm2022/statistic/statistic.module.mjs +4 -4
  246. package/esm2022/statistic/statistic.property.mjs +6 -6
  247. package/esm2022/steps/steps.component.mjs +3 -3
  248. package/esm2022/steps/steps.module.mjs +4 -4
  249. package/esm2022/steps/steps.property.mjs +3 -3
  250. package/esm2022/switch/switch.component.mjs +3 -3
  251. package/esm2022/switch/switch.module.mjs +4 -4
  252. package/esm2022/switch/switch.property.mjs +3 -3
  253. package/esm2022/table/table-body.component.mjs +9 -7
  254. package/esm2022/table/table-foot.component.mjs +3 -3
  255. package/esm2022/table/table-head.component.mjs +5 -5
  256. package/esm2022/table/table.component.mjs +16 -6
  257. package/esm2022/table/table.module.mjs +4 -4
  258. package/esm2022/table/table.property.mjs +12 -12
  259. package/esm2022/tabs/tab-content.component.mjs +3 -3
  260. package/esm2022/tabs/tab-link.directive.mjs +6 -6
  261. package/esm2022/tabs/tab.component.mjs +3 -3
  262. package/esm2022/tabs/tabs.component.mjs +5 -5
  263. package/esm2022/tabs/tabs.module.mjs +4 -4
  264. package/esm2022/tabs/tabs.property.mjs +6 -6
  265. package/esm2022/tag/tag.component.mjs +3 -3
  266. package/esm2022/tag/tag.module.mjs +4 -4
  267. package/esm2022/tag/tag.property.mjs +3 -3
  268. package/esm2022/text-retract/text-retract.component.mjs +3 -3
  269. package/esm2022/text-retract/text-retract.module.mjs +4 -4
  270. package/esm2022/text-retract/text-retract.property.mjs +3 -3
  271. package/esm2022/textarea/textarea.component.mjs +3 -3
  272. package/esm2022/textarea/textarea.module.mjs +4 -4
  273. package/esm2022/textarea/textarea.property.mjs +3 -3
  274. package/esm2022/theme/theme.component.mjs +3 -3
  275. package/esm2022/theme/theme.module.mjs +4 -4
  276. package/esm2022/theme/theme.property.mjs +3 -3
  277. package/esm2022/time-ago/time-ago.module.mjs +4 -4
  278. package/esm2022/time-ago/time-ago.pipe.mjs +3 -3
  279. package/esm2022/time-picker/time-picker-frame.component.mjs +3 -3
  280. package/esm2022/time-picker/time-picker-portal.component.mjs +3 -3
  281. package/esm2022/time-picker/time-picker.component.mjs +3 -3
  282. package/esm2022/time-picker/time-picker.module.mjs +4 -4
  283. package/esm2022/time-picker/time-picker.property.mjs +3 -3
  284. package/esm2022/time-range/time-range.module.mjs +4 -4
  285. package/esm2022/time-range/time-range.pipe.mjs +3 -3
  286. package/esm2022/timeline/timeline.component.mjs +3 -3
  287. package/esm2022/timeline/timeline.module.mjs +4 -4
  288. package/esm2022/timeline/timeline.property.mjs +3 -3
  289. package/esm2022/tooltip/tooltip-portal.component.mjs +3 -3
  290. package/esm2022/tooltip/tooltip.directive.mjs +3 -3
  291. package/esm2022/tooltip/tooltip.module.mjs +4 -4
  292. package/esm2022/tooltip/tooltip.property.mjs +3 -3
  293. package/esm2022/transfer/transfer.component.mjs +5 -5
  294. package/esm2022/transfer/transfer.module.mjs +4 -4
  295. package/esm2022/transfer/transfer.property.mjs +3 -3
  296. package/esm2022/tree/tree-node.component.mjs +5 -5
  297. package/esm2022/tree/tree.component.mjs +3 -3
  298. package/esm2022/tree/tree.module.mjs +4 -4
  299. package/esm2022/tree/tree.property.mjs +6 -6
  300. package/esm2022/tree/tree.service.mjs +3 -3
  301. package/esm2022/tree-file/tree-file.component.mjs +3 -3
  302. package/esm2022/tree-file/tree-file.module.mjs +4 -4
  303. package/esm2022/tree-file/tree-file.property.mjs +3 -3
  304. package/esm2022/tree-select/tree-select-portal.component.mjs +3 -3
  305. package/esm2022/tree-select/tree-select.component.mjs +3 -3
  306. package/esm2022/tree-select/tree-select.module.mjs +4 -4
  307. package/esm2022/tree-select/tree-select.property.mjs +3 -3
  308. package/esm2022/typography/typography.component.mjs +3 -3
  309. package/esm2022/typography/typography.module.mjs +4 -4
  310. package/esm2022/typography/typography.property.mjs +3 -3
  311. package/esm2022/upload/upload-portal.component.mjs +5 -5
  312. package/esm2022/upload/upload.component.mjs +3 -3
  313. package/esm2022/upload/upload.module.mjs +4 -4
  314. package/esm2022/upload/upload.property.mjs +3 -3
  315. package/fesm2022/ng-nest-ui-affix.mjs +10 -10
  316. package/fesm2022/ng-nest-ui-alert.mjs +12 -12
  317. package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
  318. package/fesm2022/ng-nest-ui-anchor.mjs +16 -16
  319. package/fesm2022/ng-nest-ui-api.mjs +8 -8
  320. package/fesm2022/ng-nest-ui-auto-complete.mjs +14 -14
  321. package/fesm2022/ng-nest-ui-avatar.mjs +16 -16
  322. package/fesm2022/ng-nest-ui-back-top.mjs +11 -11
  323. package/fesm2022/ng-nest-ui-badge.mjs +10 -10
  324. package/fesm2022/ng-nest-ui-base-form.mjs +11 -11
  325. package/fesm2022/ng-nest-ui-border.mjs +8 -8
  326. package/fesm2022/ng-nest-ui-button.mjs +19 -18
  327. package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
  328. package/fesm2022/ng-nest-ui-calendar.mjs +11 -11
  329. package/fesm2022/ng-nest-ui-card.mjs +10 -10
  330. package/fesm2022/ng-nest-ui-carousel.mjs +17 -17
  331. package/fesm2022/ng-nest-ui-cascade.mjs +15 -15
  332. package/fesm2022/ng-nest-ui-checkbox.mjs +38 -14
  333. package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
  334. package/fesm2022/ng-nest-ui-collapse.mjs +16 -16
  335. package/fesm2022/ng-nest-ui-color-picker.mjs +14 -14
  336. package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
  337. package/fesm2022/ng-nest-ui-color.mjs +11 -11
  338. package/fesm2022/ng-nest-ui-comment.mjs +18 -18
  339. package/fesm2022/ng-nest-ui-container.mjs +32 -32
  340. package/fesm2022/ng-nest-ui-core.mjs +16 -16
  341. package/fesm2022/ng-nest-ui-crumb.mjs +11 -11
  342. package/fesm2022/ng-nest-ui-date-picker.mjs +50 -50
  343. package/fesm2022/ng-nest-ui-description.mjs +16 -16
  344. package/fesm2022/ng-nest-ui-dialog.mjs +44 -44
  345. package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
  346. package/fesm2022/ng-nest-ui-doc.mjs +8 -8
  347. package/fesm2022/ng-nest-ui-drag.mjs +10 -10
  348. package/fesm2022/ng-nest-ui-drawer.mjs +33 -33
  349. package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
  350. package/fesm2022/ng-nest-ui-dropdown.mjs +15 -15
  351. package/fesm2022/ng-nest-ui-empty.mjs +11 -11
  352. package/fesm2022/ng-nest-ui-examples.mjs +9 -9
  353. package/fesm2022/ng-nest-ui-examples.mjs.map +1 -1
  354. package/fesm2022/ng-nest-ui-find.mjs +12 -12
  355. package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
  356. package/fesm2022/ng-nest-ui-form.mjs +17 -17
  357. package/fesm2022/ng-nest-ui-highlight.mjs +12 -12
  358. package/fesm2022/ng-nest-ui-i18n.mjs +13 -13
  359. package/fesm2022/ng-nest-ui-icon.mjs +13 -13
  360. package/fesm2022/ng-nest-ui-image.mjs +20 -20
  361. package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
  362. package/fesm2022/ng-nest-ui-inner.mjs +11 -11
  363. package/fesm2022/ng-nest-ui-input-number.mjs +22 -17
  364. package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
  365. package/fesm2022/ng-nest-ui-input.mjs +17 -17
  366. package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
  367. package/fesm2022/ng-nest-ui-keyword.mjs +11 -11
  368. package/fesm2022/ng-nest-ui-layout.mjs +17 -17
  369. package/fesm2022/ng-nest-ui-link.mjs +11 -11
  370. package/fesm2022/ng-nest-ui-list.mjs +20 -20
  371. package/fesm2022/ng-nest-ui-loading.mjs +11 -11
  372. package/fesm2022/ng-nest-ui-menu.mjs +18 -18
  373. package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
  374. package/fesm2022/ng-nest-ui-message-box.mjs +14 -12
  375. package/fesm2022/ng-nest-ui-message-box.mjs.map +1 -1
  376. package/fesm2022/ng-nest-ui-message.mjs +11 -12
  377. package/fesm2022/ng-nest-ui-message.mjs.map +1 -1
  378. package/fesm2022/ng-nest-ui-notification.mjs +11 -11
  379. package/fesm2022/ng-nest-ui-outlet.mjs +8 -8
  380. package/fesm2022/ng-nest-ui-page-header.mjs +11 -11
  381. package/fesm2022/ng-nest-ui-pagination.mjs +11 -11
  382. package/fesm2022/ng-nest-ui-pattern.mjs +8 -8
  383. package/fesm2022/ng-nest-ui-popconfirm.mjs +11 -11
  384. package/fesm2022/ng-nest-ui-popover.mjs +14 -14
  385. package/fesm2022/ng-nest-ui-portal.mjs +7 -7
  386. package/fesm2022/ng-nest-ui-progress.mjs +10 -10
  387. package/fesm2022/ng-nest-ui-radio.mjs +22 -12
  388. package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
  389. package/fesm2022/ng-nest-ui-rate.mjs +11 -11
  390. package/fesm2022/ng-nest-ui-resizable.mjs +10 -10
  391. package/fesm2022/ng-nest-ui-result.mjs +10 -10
  392. package/fesm2022/ng-nest-ui-ripple.mjs +13 -13
  393. package/fesm2022/ng-nest-ui-select.mjs +13 -13
  394. package/fesm2022/ng-nest-ui-skeleton.mjs +11 -11
  395. package/fesm2022/ng-nest-ui-slider-select.mjs +11 -11
  396. package/fesm2022/ng-nest-ui-slider.mjs +11 -11
  397. package/fesm2022/ng-nest-ui-statistic.mjs +16 -16
  398. package/fesm2022/ng-nest-ui-steps.mjs +11 -11
  399. package/fesm2022/ng-nest-ui-switch.mjs +11 -11
  400. package/fesm2022/ng-nest-ui-table.mjs +47 -35
  401. package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
  402. package/fesm2022/ng-nest-ui-tabs.mjs +26 -26
  403. package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
  404. package/fesm2022/ng-nest-ui-tag.mjs +10 -10
  405. package/fesm2022/ng-nest-ui-text-retract.mjs +11 -11
  406. package/fesm2022/ng-nest-ui-textarea.mjs +11 -11
  407. package/fesm2022/ng-nest-ui-theme.mjs +11 -11
  408. package/fesm2022/ng-nest-ui-time-ago.mjs +7 -7
  409. package/fesm2022/ng-nest-ui-time-picker.mjs +18 -18
  410. package/fesm2022/ng-nest-ui-time-range.mjs +7 -7
  411. package/fesm2022/ng-nest-ui-timeline.mjs +11 -11
  412. package/fesm2022/ng-nest-ui-tooltip.mjs +14 -14
  413. package/fesm2022/ng-nest-ui-transfer.mjs +12 -12
  414. package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
  415. package/fesm2022/ng-nest-ui-tree-file.mjs +11 -11
  416. package/fesm2022/ng-nest-ui-tree-select.mjs +14 -14
  417. package/fesm2022/ng-nest-ui-tree.mjs +21 -21
  418. package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
  419. package/fesm2022/ng-nest-ui-typography.mjs +11 -11
  420. package/fesm2022/ng-nest-ui-upload.mjs +15 -15
  421. package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
  422. package/input-number/input-number.component.d.ts +1 -1
  423. package/message/message.property.d.ts +0 -1
  424. package/package.json +30 -30
  425. package/radio/radio.property.d.ts +6 -1
  426. package/table/table.component.d.ts +1 -0
@@ -371,12 +371,12 @@ export class XColorPickerPortalComponent {
371
371
  }
372
372
  return result;
373
373
  }
374
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XColorPickerPortalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
375
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", 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: 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 }); }
374
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XColorPickerPortalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
375
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", 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,#fff0)}.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,#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: 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 }); }
376
376
  }
377
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XColorPickerPortalComponent, decorators: [{
377
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XColorPickerPortalComponent, decorators: [{
378
378
  type: Component,
379
- args: [{ selector: `${XColorPickerPortalPrefix}`, standalone: true, imports: [FormsModule, DragDropModule, XSliderSelectComponent, XTabsComponent, XTabComponent, XInputComponent], 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"] }]
379
+ args: [{ selector: `${XColorPickerPortalPrefix}`, standalone: true, imports: [FormsModule, DragDropModule, XSliderSelectComponent, XTabsComponent, XTabComponent, XInputComponent], 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,#fff0)}.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,#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"] }]
380
380
  }], propDecorators: { placement: [{
381
381
  type: HostBinding,
382
382
  args: ['@x-connect-base-animation']
@@ -396,4 +396,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
396
396
  type: ViewChild,
397
397
  args: ['transparentCom', { static: true }]
398
398
  }] } });
399
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLXBvcnRhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9jb2xvci1waWNrZXIvY29sb3ItcGlja2VyLXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9jb2xvci1waWNrZXIvY29sb3ItcGlja2VyLXBvcnRhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQix1QkFBdUIsRUFDdkIsaUJBQWlCLEVBR2pCLFNBQVMsRUFFVCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHdCQUF3QixFQUFjLE1BQU0seUJBQXlCLENBQUM7QUFDL0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBc0IsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQWE3QyxNQUFNLE9BQU8sMkJB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RUFBRSxjQUMzQixJQUFJLFdBQ1AsQ0FBQyxXQUFXLEVBQUUsY0FBYyxFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsZUFBZSxDQUFDLGlCQUcvRixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxjQUN6QixDQUFDLHFCQUFxQixDQUFDOzhCQUdjLFNBQVM7c0JBQXpELFdBQVc7dUJBQUMsMkJBQTJCO2dCQUNvQixJQUFJO3NCQUEvRCxZQUFZO3VCQUFDLGdDQUFnQyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUlHLEtBQUs7c0JBQWpFLFlBQVk7dUJBQUMsaUNBQWlDLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBSWxCLFFBQVE7c0JBQWhELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDRSxRQUFRO3NCQUFoRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ1EsY0FBYztzQkFBNUQsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBPbkluaXQsXHJcbiAgRWxlbWVudFJlZixcclxuICBSZW5kZXJlcjIsXHJcbiAgT25EZXN0cm95LFxyXG4gIFZpZXdDaGlsZCxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgaW5qZWN0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhDb2xvclBpY2tlclBvcnRhbFByZWZpeCwgWENvbG9yVHlwZSB9IGZyb20gJy4vY29sb3ItcGlja2VyLnByb3BlcnR5JztcclxuaW1wb3J0IHsgWElzRW1wdHksIFhDb25uZWN0QmFzZUFuaW1hdGlvbiwgWFBvc2l0aW9uVG9wQm90dG9tLCBYQ29tcHV0ZWQgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgWFNsaWRlclNlbGVjdENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3NsaWRlci1zZWxlY3QnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENka0RyYWdNb3ZlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IERPQ1VNRU5ULCBEZWNpbWFsUGlwZSwgUGVyY2VudFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFhJbnB1dENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2lucHV0JztcclxuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgWFRhYnNDb21wb25lbnQsIFhUYWJDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS90YWJzJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WENvbG9yUGlja2VyUG9ydGFsUHJlZml4fWAsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbRm9ybXNNb2R1bGUsIERyYWdEcm9wTW9kdWxlLCBYU2xpZGVyU2VsZWN0Q29tcG9uZW50LCBYVGFic0NvbXBvbmVudCwgWFRhYkNvbXBvbmVudCwgWElucHV0Q29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29sb3ItcGlja2VyLXBvcnRhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29sb3ItcGlja2VyLXBvcnRhbC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbRGVjaW1hbFBpcGUsIFBlcmNlbnRQaXBlXSxcclxuICBhbmltYXRpb25zOiBbWENvbm5lY3RCYXNlQW5pbWF0aW9uXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWENvbG9yUGlja2VyUG9ydGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBIb3N0QmluZGluZygnQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbicpIHB1YmxpYyBwbGFjZW1lbnQhOiBYUG9zaXRpb25Ub3BCb3R0b207XHJcbiAgQEhvc3RMaXN0ZW5lcignQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbi5kb25lJywgWyckZXZlbnQnXSkgZG9uZShldmVudDogeyB0b1N0YXRlOiBhbnkgfSkge1xyXG4gICAgdGhpcy5hbmltYXRpbmcoZmFsc2UpO1xyXG4gICAgZXZlbnQudG9TdGF0ZSA9PT0gJ3ZvaWQnICYmIHRoaXMuZGVzdHJveVBvcnRhbCgpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uLnN0YXJ0JywgWyckZXZlbnQnXSkgc3RhcnQoKSB7XHJcbiAgICB0aGlzLmFuaW1hdGluZyh0cnVlKTtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3BhbmVsUmVmJywgeyBzdGF0aWM6IHRydWUgfSkgcGFuZWxSZWYhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKCdwbGF0ZVJlZicsIHsgc3RhdGljOiB0cnVlIH0pIHBsYXRlUmVmITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgQFZpZXdDaGlsZCgndHJhbnNwYXJlbnRDb20nLCB7IHN0YXRpYzogdHJ1ZSB9KSB0cmFuc3BhcmVudENvbSE6IFhTbGlkZXJTZWxlY3RDb21wb25lbnQ7XHJcbiAgdmFsdWUhOiBzdHJpbmc7XHJcbiAgdHJhbnNwYXJlbnRSYWlsITogSFRNTEVsZW1lbnQ7XHJcbiAgdmFsdWVDaGFuZ2UhOiBTdWJqZWN0PHN0cmluZz47XHJcbiAgcG9zaXRpb25DaGFuZ2UhOiBTdWJqZWN0PGFueT47XHJcbiAgY2xvc2VQb3J0YWwhOiBGdW5jdGlvbjtcclxuICBkZXN0cm95UG9ydGFsITogRnVuY3Rpb247XHJcbiAgYW5pbWF0aW5nITogRnVuY3Rpb247XHJcbiAgbm9kZUVtaXQhOiBGdW5jdGlvbjtcclxuICBpbnB1dENvbSE6IFhJbnB1dENvbXBvbmVudDtcclxuXHJcbiAgc2xpZGVyQ29sb3JOdW0gPSAwO1xyXG4gIHR5cGUhOiBYQ29sb3JUeXBlO1xyXG4gIG9mZnNldCA9IDA7XHJcbiAgcGFuZWwhOiBET01SZWN0O1xyXG4gIHBsYXRlITogRE9NUmVjdDtcclxuICB0cmFuc2Zvcm0gPSB7IHg6IDAsIHk6IDAgfTtcclxuICBpbml0VHJhbnNmb3JtID0geyB4OiAwLCB5OiAwIH07XHJcbiAgZHJhZyA9IGZhbHNlO1xyXG5cclxuICByZ2JhOiB7IHI/OiBudW1iZXI7IGc/OiBudW1iZXI7IGI/OiBudW1iZXI7IGE/OiBudW1iZXIgfSA9IHsgYTogMSB9O1xyXG4gIGhzbGE6IHsgaD86IG51bWJlcjsgcz86IG51bWJlcjsgbD86IG51bWJlcjsgYT86IG51bWJlcjsgc3A/OiBzdHJpbmc7IGxwPzogc3RyaW5nIH0gPSB7XHJcbiAgICBoOiAwLFxyXG4gICAgYTogMVxyXG4gIH07XHJcbiAgaGV4ITogc3RyaW5nO1xyXG5cclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgZG9jID0gaW5qZWN0KERPQ1VNRU5UKTtcclxuICBwcml2YXRlIHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XHJcbiAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIHByaXZhdGUgZGVjaW1hbCA9IGluamVjdChEZWNpbWFsUGlwZSk7XHJcbiAgcHJpdmF0ZSBwZXJjZW50ID0gaW5qZWN0KFBlcmNlbnRQaXBlKTtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoeDogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB4O1xyXG4gICAgICB0aGlzLmluaXQoKTtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnBvc2l0aW9uQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICB0aGlzLnBsYWNlbWVudCA9IHg7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5pbml0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMucGFuZWwgPSB0aGlzLnBhbmVsUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICB0aGlzLnBsYXRlID0gdGhpcy5wbGF0ZVJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgdGhpcy5vZmZzZXQgPSAodGhpcy5wYW5lbC53aWR0aCAtIHRoaXMucGxhdGUud2lkdGgpIC8gMjtcclxuICAgIHRoaXMudHJhbnNwYXJlbnRSYWlsID0gdGhpcy50cmFuc3BhcmVudENvbS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLngtc2xpZGVyLXNlbGVjdC1yYWlsIGRpdicpITtcclxuICAgIHRoaXMuc2V0VHJhbnNmb3JtKCk7XHJcbiAgICB0aGlzLnNldFBsYXRlQmFja2dyb3VuZCgpO1xyXG4gICAgdGhpcy5zZXRSYWlsQmFja2dyb3VuZCgpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgaGV4Q2hhbmdlKCkge1xyXG4gICAgaWYgKHRoaXMuZHJhZyB8fCAhLyheI1swLTlBLUZdezZ9JCkvaS50ZXN0KHRoaXMuaGV4KSkgcmV0dXJuO1xyXG4gICAgdGhpcy5yZ2JhID0gdGhpcy5oZXhUb1JnYmEodGhpcy5oZXgpO1xyXG4gICAgdGhpcy5oc2xhID0gdGhpcy5yZ2JhVG9Ic2xhKHRoaXMucmdiYSk7XHJcbiAgICB0aGlzLnNldEhzbGFQZXJjZW50KCk7XHJcbiAgICB0aGlzLnNldFRyYW5zZm9ybSgpO1xyXG4gICAgdGhpcy5zZXRQbGF0ZUJhY2tncm91bmQoKTtcclxuICAgIHRoaXMuc2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIHJnYmFDaGFuZ2UoKSB7fVxyXG5cclxuICBpbml0KCkge1xyXG4gICAgaWYgKCFYSXNFbXB0eSh0aGlzLnZhbHVlKSkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmdldFByaW1hcnkoKTtcclxuICAgIH1cclxuICAgIHRoaXMuY29sb3JDb252ZXJ0KCk7XHJcbiAgfVxyXG5cclxuICBzdG9wUHJvcGFnYXRpb24oZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIHNldERlZmF1bHQoKSB7fVxyXG5cclxuICBjb2xvckNvbnZlcnQoKSB7XHJcbiAgICBpZiAoL14jLy50ZXN0KHRoaXMudmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuaGV4ID0gdGhpcy52YWx1ZTtcclxuICAgICAgdGhpcy5yZ2JhID0gdGhpcy5oZXhUb1JnYmEodGhpcy5oZXgpO1xyXG4gICAgICB0aGlzLmhzbGEgPSB0aGlzLnJnYmFUb0hzbGEodGhpcy5yZ2JhKTtcclxuICAgICAgdGhpcy5zZXRIc2xhUGVyY2VudCgpO1xyXG4gICAgICB0aGlzLnR5cGUgPSAnaGV4JztcclxuICAgIH0gZWxzZSBpZiAoL3JnYi8udGVzdCh0aGlzLnZhbHVlKSkge1xyXG4gICAgICB0aGlzLnJnYmFDb252ZXJ0KHRoaXMudmFsdWUpO1xyXG4gICAgICB0aGlzLmhleCA9IHRoaXMucmdiYVRvSGV4KHRoaXMucmdiYSk7XHJcbiAgICAgIHRoaXMuaHNsYSA9IHRoaXMucmdiYVRvSHNsYSh0aGlzLnJnYmEpO1xyXG4gICAgICB0aGlzLnNldEhzbGFQZXJjZW50KCk7XHJcbiAgICAgIHRoaXMudHlwZSA9ICdyZ2JhJztcclxuICAgIH0gZWxzZSBpZiAoL2hzbC8udGVzdCh0aGlzLnZhbHVlKSkge1xyXG4gICAgICB0aGlzLmhzbGFDb252ZXJ0KHRoaXMudmFsdWUpO1xyXG4gICAgICB0aGlzLnJnYmEgPSB0aGlzLmhzbGFUb1JnYmEodGhpcy5oc2xhKTtcclxuICAgICAgdGhpcy5oZXggPSB0aGlzLnJnYmFUb0hleCh0aGlzLnJnYmEpO1xyXG4gICAgICB0aGlzLnR5cGUgPSAnaHNsYSc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZ2JhQ29udmVydChzdHI6IHN0cmluZykge1xyXG4gICAgbGV0IHJnYmEgPSBzdHJcclxuICAgICAgLnJlcGxhY2UoL3JnYmE/XFwoLywgJycpXHJcbiAgICAgIC5yZXBsYWNlKC9yZ2I/XFwoLywgJycpXHJcbiAgICAgIC5yZXBsYWNlKC9cXCkvLCAnJylcclxuICAgICAgLnJlcGxhY2UoL1tcXHMrXS9nLCAnJylcclxuICAgICAgLnNwbGl0KCcsJyk7XHJcbiAgICBpZiAocmdiYS5sZW5ndGggPiAyKSB7XHJcbiAgICAgIHRoaXMucmdiYSA9IHtcclxuICAgICAgICByOiBOdW1iZXIocmdiYVswXSksXHJcbiAgICAgICAgZzogTnVtYmVyKHJnYmFbMV0pLFxyXG4gICAgICAgIGI6IE51bWJlcihyZ2JhWzJdKSxcclxuICAgICAgICBhOiBOdW1iZXIocmdiYS5sZW5ndGggPiAzID8gcmdiYVszXSA6IDEpXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoc2xhQ29udmVydChzdHI6IHN0cmluZykge1xyXG4gICAgbGV0IGhzbGEgPSBzdHJcclxuICAgICAgLnJlcGxhY2UoL2hzbGE/XFwoLywgJycpXHJcbiAgICAgIC5yZXBsYWNlKC9oc2w/XFwoLywgJycpXHJcbiAgICAgIC5yZXBsYWNlKC9cXCkvLCAnJylcclxuICAgICAgLnJlcGxhY2UoL1tcXHMrXS9nLCAnJylcclxuICAgICAgLnNwbGl0KCcsJyk7XHJcbiAgICBpZiAoaHNsYS5sZW5ndGggPiAyKSB7XHJcbiAgICAgIHRoaXMuaHNsYSA9IHtcclxuICAgICAgICBoOiBOdW1iZXIoaHNsYVswXSksXHJcbiAgICAgICAgczogTnVtYmVyKGhzbGFbMV0ucmVwbGFjZSgnJScsICcnKSkgLyAxMDAsXHJcbiAgICAgICAgbDogTnVtYmVyKGhzbGFbMl0ucmVwbGFjZSgnJScsICcnKSkgLyAxMDAsXHJcbiAgICAgICAgYTogTnVtYmVyKGhzbGEubGVuZ3RoID4gMyA/IGhzbGFbM10gOiAxKVxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLnNldEhzbGFQZXJjZW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwbGF0ZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5kcmFnKSByZXR1cm47XHJcbiAgICBjb25zdCByZWN0ID0gdGhpcy5wbGF0ZVJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgbGV0IGxlZnQgPSBldmVudC5jbGllbnRYIC0gcmVjdC5sZWZ0O1xyXG4gICAgbGV0IHRvcCA9IGV2ZW50LmNsaWVudFkgLSByZWN0LnRvcDtcclxuICAgIHRoaXMudHJhbnNmb3JtID0geyB4OiBsZWZ0IC0gdGhpcy5vZmZzZXQsIHk6IHRvcCAtIHRoaXMub2Zmc2V0IH07XHJcbiAgICB0aGlzLmluaXRUcmFuc2Zvcm0gPSB7IHg6IHRoaXMudHJhbnNmb3JtLngsIHk6IHRoaXMudHJhbnNmb3JtLnkgfTtcclxuICAgIHRoaXMuc2V0TGV0ZlRvcChsZWZ0LCB0b3ApO1xyXG4gIH1cclxuXHJcbiAgc2V0VHJhbnNmb3JtKCkge1xyXG4gICAgbGV0IGhzdiA9IHRoaXMuaHNsVG9Ic3YodGhpcy5oc2xhLmggYXMgbnVtYmVyLCB0aGlzLmhzbGEucyBhcyBudW1iZXIsIHRoaXMuaHNsYS5sIGFzIG51bWJlcik7XHJcbiAgICB0aGlzLnRyYW5zZm9ybS54ID0gaHN2LnMgKiB0aGlzLnBsYXRlLndpZHRoIC0gdGhpcy5vZmZzZXQ7XHJcbiAgICB0aGlzLnRyYW5zZm9ybS55ID0gKDEgLSBoc3YudikgKiB0aGlzLnBsYXRlLmhlaWdodCAtIHRoaXMub2Zmc2V0O1xyXG4gICAgdGhpcy5pbml0VHJhbnNmb3JtID0geyB4OiB0aGlzLnRyYW5zZm9ybS54LCB5OiB0aGlzLnRyYW5zZm9ybS55IH07XHJcbiAgfVxyXG5cclxuICBzdGFydGVkKCkge1xyXG4gICAgdGhpcy5kcmFnID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGVuZGVkKCkge1xyXG4gICAgdGhpcy5pbml0VHJhbnNmb3JtID0geyB4OiB0aGlzLnRyYW5zZm9ybS54LCB5OiB0aGlzLnRyYW5zZm9ybS55IH07XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5kcmFnID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG1vdmVkKGRyYWc6IENka0RyYWdNb3ZlKSB7XHJcbiAgICBjb25zdCB0cmFuc2Zvcm0gPSBkcmFnLnNvdXJjZS5nZXRGcmVlRHJhZ1Bvc2l0aW9uKCk7XHJcbiAgICBkcmFnLnNvdXJjZS5yZXNldCgpO1xyXG4gICAgdGhpcy50cmFuc2Zvcm0gPSB7XHJcbiAgICAgIHg6IHRyYW5zZm9ybS54ICsgdGhpcy5pbml0VHJhbnNmb3JtLngsXHJcbiAgICAgIHk6IHRyYW5zZm9ybS55ICsgdGhpcy5pbml0VHJhbnNmb3JtLnlcclxuICAgIH07XHJcbiAgICBsZXQgbGVmdCA9IHRoaXMudHJhbnNmb3JtLnggKyB0aGlzLm9mZnNldDtcclxuICAgIGxldCB0b3AgPSB0aGlzLnRyYW5zZm9ybS55ICsgdGhpcy5vZmZzZXQ7XHJcbiAgICB0aGlzLnNldExldGZUb3AobGVmdCwgdG9wKTtcclxuICB9XHJcblxyXG4gIHNldExldGZUb3AobGVmdDogbnVtYmVyLCB0b3A6IG51bWJlcikge1xyXG4gICAgbGV0IHMgPSBsZWZ0IC8gdGhpcy5wbGF0ZS53aWR0aDtcclxuICAgIGxldCB2ID0gMSAtIHRvcCAvIHRoaXMucGxhdGUuaGVpZ2h0O1xyXG4gICAgbGV0IGwgPSAoKDIgLSBzKSAqIHYpIC8gMjtcclxuICAgIGlmIChsICE9PSAwKSB7XHJcbiAgICAgIGlmIChsID09PSAxKSB7XHJcbiAgICAgICAgcyA9IDA7XHJcbiAgICAgIH0gZWxzZSBpZiAobCA8IDAuNSkge1xyXG4gICAgICAgIHMgPSAocyAqIHYpIC8gKGwgKiAyKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzID0gKHMgKiB2KSAvICgyIC0gbCAqIDIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBbdGhpcy5oc2xhLnMsIHRoaXMuaHNsYS5sXSA9IFtcclxuICAgICAgTnVtYmVyKHRoaXMuZGVjaW1hbC50cmFuc2Zvcm0ocywgJzEuMi0yJykpLFxyXG4gICAgICBOdW1iZXIodGhpcy5kZWNpbWFsLnRyYW5zZm9ybShsLCAnMS4yLTInKSlcclxuICAgIF07XHJcbiAgICB0aGlzLnNldEhzbGFQZXJjZW50KCk7XHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMucmdiYSwgdGhpcy5oc2xhVG9SZ2JhKHRoaXMuaHNsYSkpO1xyXG4gICAgdGhpcy5oZXggPSB0aGlzLnJnYmFUb0hleCh0aGlzLnJnYmEpO1xyXG4gICAgdGhpcy5zZXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0SHNsYVBlcmNlbnQoKSB7XHJcbiAgICB0aGlzLmhzbGEuc3AgPSB0aGlzLmhzbGEucyA9PT0gMCA/ICcwJScgOiAodGhpcy5wZXJjZW50LnRyYW5zZm9ybSh0aGlzLmhzbGEucywgJzEuMC0wJykgYXMgc3RyaW5nKTtcclxuICAgIHRoaXMuaHNsYS5scCA9IHRoaXMuaHNsYS5sID09PSAwID8gJzAlJyA6ICh0aGlzLnBlcmNlbnQudHJhbnNmb3JtKHRoaXMuaHNsYS5sLCAnMS4wLTAnKSBhcyBzdHJpbmcpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UHJpbWFyeSgpIHtcclxuICAgIHJldHVybiBYQ29tcHV0ZWQodGhpcy5kb2MuZG9jdW1lbnRFbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCctLXgtcHJpbWFyeScpLnRyaW0oKTtcclxuICB9XHJcblxyXG4gIGh1ZUNoYW5nZSgpIHtcclxuICAgIHRoaXMuc2V0UGxhdGVCYWNrZ3JvdW5kKCk7XHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMucmdiYSwgdGhpcy5oc2xhVG9SZ2JhKHRoaXMuaHNsYSkpO1xyXG4gICAgdGhpcy5oZXggPSB0aGlzLnJnYmFUb0hleCh0aGlzLnJnYmEpO1xyXG4gICAgdGhpcy5zZXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0UGxhdGVCYWNrZ3JvdW5kKCkge1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnBsYXRlUmVmLm5hdGl2ZUVsZW1lbnQsICdiYWNrZ3JvdW5kLWNvbG9yJywgYGhzbCgke3RoaXMuaHNsYS5ofSwgMTAwJSwgNTAlKWApO1xyXG4gIH1cclxuXHJcbiAgc2V0UmFpbEJhY2tncm91bmQoKSB7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxyXG4gICAgICB0aGlzLnRyYW5zcGFyZW50UmFpbCxcclxuICAgICAgJ2JhY2tncm91bmQnLFxyXG4gICAgICBgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKCR7dGhpcy5yZ2JhLnJ9LCAke3RoaXMucmdiYS5nfSwgJHt0aGlzLnJnYmEuYn0sIDApIDAlLCByZ2JhKCR7dGhpcy5yZ2JhLnJ9LCAke3RoaXMucmdiYS5nfSwgJHt0aGlzLnJnYmEuYn0sIDEpIDEwMCUpYFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHRyYW5zcGFyZW50Q2hhbmdlKCkge1xyXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLnJnYmEsIHRoaXMuaHNsYVRvUmdiYSh0aGlzLmhzbGEpKTtcclxuICAgIHRoaXMuaGV4ID0gdGhpcy5yZ2JhVG9IZXgodGhpcy5yZ2JhKTtcclxuICAgIHRoaXMuc2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIHNldFZhbHVlKCkge1xyXG4gICAgdGhpcy5zZXRWYWx1ZUJ5VHlwZSgpO1xyXG4gICAgdGhpcy5zZXRSYWlsQmFja2dyb3VuZCgpO1xyXG4gICAgdGhpcy5ub2RlRW1pdCh0aGlzLnZhbHVlKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHNldFZhbHVlQnlUeXBlKCkge1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2hleCcpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IGAke3RoaXMuaGV4fWA7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ3JnYmEnKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBgcmdiYSgke3RoaXMucmdiYS5yfSwgJHt0aGlzLnJnYmEuZ30sICR7dGhpcy5yZ2JhLmJ9LCAke3RoaXMucmdiYS5hfSlgO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdoc2xhJykge1xyXG4gICAgICB0aGlzLnZhbHVlID0gYGhzbGEoJHt0aGlzLmhzbGEuaH0sICR7dGhpcy5oc2xhLnNwfSwgJHt0aGlzLmhzbGEubHB9LCAke3RoaXMuaHNsYS5hfSlgO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaHNsYVRvUmdiYShoc2xhOiB7IGg/OiBudW1iZXI7IHM/OiBudW1iZXI7IGw/OiBudW1iZXI7IGE/OiBudW1iZXIgfSkge1xyXG4gICAgbGV0IHIsIGcsIGI7XHJcbiAgICBsZXQgW2gsIHMsIGxdID0gW2hzbGEuaCBhcyBudW1iZXIsIGhzbGEucyBhcyBudW1iZXIsIGhzbGEubCBhcyBudW1iZXJdO1xyXG4gICAgaWYgKHMgPT0gMCkge1xyXG4gICAgICByID0gZyA9IGIgPSBsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IGh1ZTJyZ2IgPSAocDogbnVtYmVyLCBxOiBudW1iZXIsIHQ6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIGlmICh0IDwgMCkgdCArPSAxO1xyXG4gICAgICAgIGlmICh0ID4gMSkgdCAtPSAxO1xyXG4gICAgICAgIGlmICh0IDwgMSAvIDYpIHJldHVybiBwICsgKHEgLSBwKSAqIDYgKiB0O1xyXG4gICAgICAgIGlmICh0IDwgMSAvIDIpIHJldHVybiBxO1xyXG4gICAgICAgIGlmICh0IDwgMiAvIDMpIHJldHVybiBwICsgKHEgLSBwKSAqICgyIC8gMyAtIHQpICogNjtcclxuICAgICAgICByZXR1cm4gcDtcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGxldCBxID0gbCA8IDAuNSA/IGwgKiAoMSArIHMpIDogbCArIHMgLSBsICogcztcclxuICAgICAgbGV0IHAgPSAyICogbCAtIHE7XHJcbiAgICAgIHIgPSBodWUycmdiKHAsIHEsIGggLyAzNjAgKyAxIC8gMyk7XHJcbiAgICAgIGcgPSBodWUycmdiKHAsIHEsIGggLyAzNjApO1xyXG4gICAgICBiID0gaHVlMnJnYihwLCBxLCBoIC8gMzYwIC0gMSAvIDMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgcjogTWF0aC5yb3VuZChyICogMjU1KSxcclxuICAgICAgZzogTWF0aC5yb3VuZChnICogMjU1KSxcclxuICAgICAgYjogTWF0aC5yb3VuZChiICogMjU1KSxcclxuICAgICAgYTogTnVtYmVyKGhzbGEuYSlcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICByZ2JhVG9IZXgocmdiYTogeyByPzogbnVtYmVyOyBnPzogbnVtYmVyOyBiPzogbnVtYmVyOyBhPzogbnVtYmVyIH0pIHtcclxuICAgIGxldCBoZXggPSBbXHJcbiAgICAgIChyZ2JhLnIgYXMgbnVtYmVyKS50b1N0cmluZygxNiksXHJcbiAgICAgIChyZ2JhLmcgYXMgbnVtYmVyKS50b1N0cmluZygxNiksXHJcbiAgICAgIChyZ2JhLmIgYXMgbnVtYmVyKS50b1N0cmluZygxNiksXHJcbiAgICAgIE1hdGgucm91bmQoMjU1ICogKHJnYmEuYSBhcyBudW1iZXIpKS50b1N0cmluZygxNilcclxuICAgIF07XHJcbiAgICBoZXguZm9yRWFjaCgoeCwgaW5kZXgpID0+IHtcclxuICAgICAgaWYgKGluZGV4ID09PSAzICYmIHggPT09ICdmZicpIHtcclxuICAgICAgICBoZXhbaW5kZXhdID0gJyc7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHgubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgaGV4W2luZGV4XSA9ICcwJyArIHg7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGAjJHtoZXguam9pbignJyl9YDtcclxuICB9XHJcblxyXG4gIHJnYmFUb0hzbGEocmdiYTogeyByPzogbnVtYmVyOyBnPzogbnVtYmVyOyBiPzogbnVtYmVyOyBhPzogbnVtYmVyIH0pIHtcclxuICAgIGxldCBbciwgZywgYl0gPSBbKHJnYmEuciBhcyBudW1iZXIpIC8gMjU1LCAocmdiYS5nIGFzIG51bWJlcikgLyAyNTUsIChyZ2JhLmIgYXMgbnVtYmVyKSAvIDI1NV07XHJcbiAgICBsZXQgW21heCwgbWluXSA9IFtNYXRoLm1heChyLCBnLCBiKSwgTWF0aC5taW4ociwgZywgYildO1xyXG4gICAgbGV0IGggPSAwO1xyXG4gICAgbGV0IHMgPSAwO1xyXG4gICAgbGV0IGwgPSAobWF4ICsgbWluKSAvIDI7XHJcblxyXG4gICAgaWYgKG1heCA9PT0gbWluKSB7XHJcbiAgICAgIGggPSBzID0gMDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBkID0gbWF4IC0gbWluO1xyXG4gICAgICBzID0gbCA+IDAuNSA/IGQgLyAoMiAtIG1heCAtIG1pbikgOiBkIC8gKG1heCArIG1pbik7XHJcbiAgICAgIHN3aXRjaCAobWF4KSB7XHJcbiAgICAgICAgY2FzZSByOlxyXG4gICAgICAgICAgaCA9IChnIC0gYikgLyBkICsgKGcgPCBiID8gNiA6IDApO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBnOlxyXG4gICAgICAgICAgaCA9IChiIC0gcikgLyBkICsgMjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgYjpcclxuICAgICAgICAgIGggPSAociAtIGcpIC8gZCArIDQ7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBoIC89IDY7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgaDogTWF0aC5yb3VuZChoICogMzYwKSxcclxuICAgICAgczogTnVtYmVyKHRoaXMuZGVjaW1hbC50cmFuc2Zvcm0ocywgJzEuMi0yJykpLFxyXG4gICAgICBsOiBOdW1iZXIodGhpcy5kZWNpbWFsLnRyYW5zZm9ybShsLCAnMS4yLTInKSksXHJcbiAgICAgIGE6IE51bWJlcihyZ2JhLmEpXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgaGV4VG9SZ2JhKGhleDogc3RyaW5nKSB7XHJcbiAgICBsZXQgaGV4TnVtID0gaGV4LnN1YnN0cmluZygxKTtcclxuICAgIGxldCBhID0gMTtcclxuICAgIGlmIChoZXhOdW0ubGVuZ3RoID09PSA4KSB7XHJcbiAgICAgIGEgPSBOdW1iZXIodGhpcy5kZWNpbWFsLnRyYW5zZm9ybShOdW1iZXIoJzB4JyArIGhleE51bS5zbGljZSgtMikpIC8gMjU1LCAnMS4yLTInKSk7XHJcbiAgICAgIGhleE51bSA9IGhleE51bS5zdWJzdHJpbmcoMCwgaGV4TnVtLmxlbmd0aCAtIDIpO1xyXG4gICAgfVxyXG4gICAgbGV0IG51bSA9IE51bWJlcignMHgnICsgKGhleE51bS5sZW5ndGggPCA2ID8gdGhpcy5yZXBlYXRMZXR0ZXIoaGV4TnVtLCAyKSA6IGhleE51bSkpO1xyXG4gICAgcmV0dXJuIHsgcjogbnVtID4+IDE2LCBnOiAobnVtID4+IDgpICYgMHhmZiwgYjogbnVtICYgMHhmZiwgYTogYSB9O1xyXG4gIH1cclxuXHJcbiAgaHNsVG9Ic3YoaDogbnVtYmVyLCBzOiBudW1iZXIsIGw6IG51bWJlcikge1xyXG4gICAgbGV0IGhIc3YsIHNIc3YsIHY7XHJcblxyXG4gICAgaEhzdiA9IGg7XHJcblxyXG4gICAgaWYgKGwgPT0gMCkge1xyXG4gICAgICBzSHN2ID0gMDtcclxuICAgICAgdiA9IDA7XHJcbiAgICB9IGVsc2UgaWYgKGwgPiAwICYmIGwgPD0gMC41KSB7XHJcbiAgICAgIHNIc3YgPSAoMiAqIHMpIC8gKDEgKyBzKTtcclxuICAgICAgdiA9IGwgKiAoMSArIHMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc0hzdiA9ICgyICogcyAtIDIgKiBzICogbCkgLyAocyAtIHMgKiBsICsgbCk7XHJcbiAgICAgIHYgPSBzIC0gcyAqIGwgKyBsO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGg6IGhIc3YsXHJcbiAgICAgIHM6IE51bWJlcih0aGlzLmRlY2ltYWwudHJhbnNmb3JtKHNIc3YsICcxLjItMicpKSxcclxuICAgICAgdjogTnVtYmVyKHRoaXMuZGVjaW1hbC50cmFuc2Zvcm0odiwgJzEuMi0yJykpXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcmVwZWF0V29yZCh3b3JkOiBzdHJpbmcsIG51bTogbnVtYmVyKSB7XHJcbiAgICBsZXQgcmVzdWx0ID0gJyc7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bTsgaSsrKSB7XHJcbiAgICAgIHJlc3VsdCArPSB3b3JkO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIHJlcGVhdExldHRlcih3b3JkOiBzdHJpbmcsIG51bTogbnVtYmVyKSB7XHJcbiAgICBsZXQgcmVzdWx0ID0gJyc7XHJcbiAgICBmb3IgKGxldCBsZXR0ZXIgb2Ygd29yZCkge1xyXG4gICAgICByZXN1bHQgKz0gdGhpcy5yZXBlYXRXb3JkKGxldHRlciwgbnVtKTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWxcIiB0YWJpbmRleD1cIi0xXCIgKGNsaWNrKT1cInN0b3BQcm9wYWdhdGlvbigkZXZlbnQpXCI+XHJcbiAgPGRpdiAjcGFuZWxSZWYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtcGFuZWxcIj5cclxuICAgIDxkaXYgI3BsYXRlUmVmIGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLXBsYXRlXCIgKGNsaWNrKT1cInBsYXRlQ2xpY2soJGV2ZW50KVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLXdoaXRlXCI+PC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtYmxhY2tcIj48L2Rpdj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgICNkcmFnQ29tXHJcbiAgICAgICAgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtY3Vyc29yXCJcclxuICAgICAgICBbc3R5bGUubGVmdC5weF09XCJ0cmFuc2Zvcm0ueFwiXHJcbiAgICAgICAgW3N0eWxlLnRvcC5weF09XCJ0cmFuc2Zvcm0ueVwiXHJcbiAgICAgICAgY2RrRHJhZ1xyXG4gICAgICAgIFtjZGtEcmFnQm91bmRhcnldPVwicGFuZWxSZWZcIlxyXG4gICAgICAgIChjZGtEcmFnU3RhcnRlZCk9XCJzdGFydGVkKClcIlxyXG4gICAgICAgIChjZGtEcmFnRW5kZWQpPVwiZW5kZWQoKVwiXHJcbiAgICAgICAgKGNka0RyYWdNb3ZlZCk9XCJtb3ZlZCgkZXZlbnQpXCJcclxuICAgICAgPjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXBvcnRhbC10b29sXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLW9wZXJhdGlvbnNcIj5cclxuICAgICAgPCEtLSA8eC1idXR0b24gaWNvbj1cImZ0by1lZGl0LTJcIiBvbmx5SWNvbj48L3gtYnV0dG9uPiAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXBvcnRhbC1zZWxlY3RlZFwiPlxyXG4gICAgICAgIDxkaXYgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwidmFsdWVcIj48L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtYXJlYVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtc2xpZGVyXCI+XHJcbiAgICAgICAgICA8eC1zbGlkZXItc2VsZWN0XHJcbiAgICAgICAgICAgIFtzdHlsZS53aWR0aC4lXT1cIjEwMFwiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaHNsYS5oXCJcclxuICAgICAgICAgICAgbWluPVwiMFwiXHJcbiAgICAgICAgICAgIG1heD1cIjM2MFwiXHJcbiAgICAgICAgICAgIHN0ZXA9XCIxXCJcclxuICAgICAgICAgICAgKGRyYWdTdGFydEVtaXQpPVwic3RhcnRlZCgpXCJcclxuICAgICAgICAgICAgKGRyYWdFbmRFbWl0KT1cImVuZGVkKClcIlxyXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJodWVDaGFuZ2UoKVwiXHJcbiAgICAgICAgICA+PC94LXNsaWRlci1zZWxlY3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXBvcnRhbC10cmFuc3BhcmVudFwiPlxyXG4gICAgICAgICAgPHgtc2xpZGVyLXNlbGVjdFxyXG4gICAgICAgICAgICBbc3R5bGUud2lkdGguJV09XCIxMDBcIlxyXG4gICAgICAgICAgICAjdHJhbnNwYXJlbnRDb21cclxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJoc2xhLmFcIlxyXG4gICAgICAgICAgICBtaW49XCIwXCJcclxuICAgICAgICAgICAgbWF4PVwiMVwiXHJcbiAgICAgICAgICAgIHN0ZXA9XCIwLjAxXCJcclxuICAgICAgICAgICAgKGRyYWdTdGFydGVkKT1cInN0YXJ0ZWQoKVwiXHJcbiAgICAgICAgICAgIChkcmFnRW5kZWQpPVwiZW5kZWQoKVwiXHJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInRyYW5zcGFyZW50Q2hhbmdlKClcIlxyXG4gICAgICAgICAgPjwveC1zbGlkZXItc2VsZWN0PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXBvcnRhbC1hbHBoYVwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXBvcnRhbC10eXBlXCI+XHJcbiAgICAgIDx4LXRhYnMgYW5pbWF0ZWQ9XCJmYWxzZVwiIGp1c3RpZnk9XCJjZW50ZXJcIj5cclxuICAgICAgICA8eC10YWIgbGFiZWw9XCJIRVhcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtdHlwZS1jb250ZW50XCI+XHJcbiAgICAgICAgICAgIDx4LWlucHV0IFtzdHlsZS53aWR0aC4lXT1cIjEwMFwiIFsobmdNb2RlbCldPVwiaGV4XCIgKG5nTW9kZWxDaGFuZ2UpPVwiaGV4Q2hhbmdlKClcIj48L3gtaW5wdXQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3gtdGFiPlxyXG4gICAgICAgIDx4LXRhYiBsYWJlbD1cIlJHQkFcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtdHlwZS1jb250ZW50XCI+XHJcbiAgICAgICAgICAgIDx4LWlucHV0IFsobmdNb2RlbCldPVwicmdiYS5yXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L3gtaW5wdXQ+XHJcbiAgICAgICAgICAgIDx4LWlucHV0IFsobmdNb2RlbCldPVwicmdiYS5nXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L3gtaW5wdXQ+XHJcbiAgICAgICAgICAgIDx4LWlucHV0IFsobmdNb2RlbCldPVwicmdiYS5iXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L3gtaW5wdXQ+XHJcbiAgICAgICAgICAgIDx4LWlucHV0IFsobmdNb2RlbCldPVwicmdiYS5hXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L3gtaW5wdXQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3gtdGFiPlxyXG4gICAgICAgIDx4LXRhYiBsYWJlbD1cIkhTTEFcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtdHlwZS1jb250ZW50XCI+XHJcbiAgICAgICAgICAgIDx4LWlucHV0IFsobmdNb2RlbCldPVwiaHNsYS5oXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L3gtaW5wdXQ+XHJcbiAgICAgICAgICAgIDx4LWlucHV0IFsobmdNb2RlbCldPVwiaHNsYS5zcFwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC94LWlucHV0PlxyXG4gICAgICAgICAgICA8eC1pbnB1dCBbKG5nTW9kZWwpXT1cImhzbGEubHBcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwveC1pbnB1dD5cclxuICAgICAgICAgICAgPHgtaW5wdXQgWyhuZ01vZGVsKV09XCJoc2xhLmFcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwveC1pbnB1dD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwveC10YWI+XHJcbiAgICAgIDwveC10YWJzPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
399
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLXBvcnRhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9jb2xvci1waWNrZXIvY29sb3ItcGlja2VyLXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9jb2xvci1waWNrZXIvY29sb3ItcGlja2VyLXBvcnRhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQix1QkFBdUIsRUFDdkIsaUJBQWlCLEVBR2pCLFNBQVMsRUFFVCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHdCQUF3QixFQUFjLE1BQU0seUJBQXlCLENBQUM7QUFDL0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBc0IsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQWE3QyxNQUFNLE9BQU8sMkJB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RUFBRSxjQUMzQixJQUFJLFdBQ1AsQ0FBQyxXQUFXLEVBQUUsY0FBYyxFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsZUFBZSxDQUFDLGlCQUcvRixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxjQUN6QixDQUFDLHFCQUFxQixDQUFDOzhCQUdjLFNBQVM7c0JBQXpELFdBQVc7dUJBQUMsMkJBQTJCO2dCQUNvQixJQUFJO3NCQUEvRCxZQUFZO3VCQUFDLGdDQUFnQyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUlHLEtBQUs7c0JBQWpFLFlBQVk7dUJBQUMsaUNBQWlDLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBSWxCLFFBQVE7c0JBQWhELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDRSxRQUFRO3NCQUFoRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ1EsY0FBYztzQkFBNUQsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBPbkluaXQsXHJcbiAgRWxlbWVudFJlZixcclxuICBSZW5kZXJlcjIsXHJcbiAgT25EZXN0cm95LFxyXG4gIFZpZXdDaGlsZCxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgaW5qZWN0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhDb2xvclBpY2tlclBvcnRhbFByZWZpeCwgWENvbG9yVHlwZSB9IGZyb20gJy4vY29sb3ItcGlja2VyLnByb3BlcnR5JztcclxuaW1wb3J0IHsgWElzRW1wdHksIFhDb25uZWN0QmFzZUFuaW1hdGlvbiwgWFBvc2l0aW9uVG9wQm90dG9tLCBYQ29tcHV0ZWQgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgWFNsaWRlclNlbGVjdENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3NsaWRlci1zZWxlY3QnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENka0RyYWdNb3ZlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IERPQ1VNRU5ULCBEZWNpbWFsUGlwZSwgUGVyY2VudFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFhJbnB1dENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2lucHV0JztcclxuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgWFRhYnNDb21wb25lbnQsIFhUYWJDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS90YWJzJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WENvbG9yUGlja2VyUG9ydGFsUHJlZml4fWAsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbRm9ybXNNb2R1bGUsIERyYWdEcm9wTW9kdWxlLCBYU2xpZGVyU2VsZWN0Q29tcG9uZW50LCBYVGFic0NvbXBvbmVudCwgWFRhYkNvbXBvbmVudCwgWElucHV0Q29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29sb3ItcGlja2VyLXBvcnRhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29sb3ItcGlja2VyLXBvcnRhbC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbRGVjaW1hbFBpcGUsIFBlcmNlbnRQaXBlXSxcclxuICBhbmltYXRpb25zOiBbWENvbm5lY3RCYXNlQW5pbWF0aW9uXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWENvbG9yUGlja2VyUG9ydGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBIb3N0QmluZGluZygnQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbicpIHB1YmxpYyBwbGFjZW1lbnQhOiBYUG9zaXRpb25Ub3BCb3R0b207XHJcbiAgQEhvc3RMaXN0ZW5lcignQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbi5kb25lJywgWyckZXZlbnQnXSkgZG9uZShldmVudDogeyB0b1N0YXRlOiBhbnkgfSkge1xyXG4gICAgdGhpcy5hbmltYXRpbmcoZmFsc2UpO1xyXG4gICAgZXZlbnQudG9TdGF0ZSA9PT0gJ3ZvaWQnICYmIHRoaXMuZGVzdHJveVBvcnRhbCgpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uLnN0YXJ0JywgWyckZXZlbnQnXSkgc3RhcnQoKSB7XHJcbiAgICB0aGlzLmFuaW1hdGluZyh0cnVlKTtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3BhbmVsUmVmJywgeyBzdGF0aWM6IHRydWUgfSkgcGFuZWxSZWYhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKCdwbGF0ZVJlZicsIHsgc3RhdGljOiB0cnVlIH0pIHBsYXRlUmVmITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgQFZpZXdDaGlsZCgndHJhbnNwYXJlbnRDb20nLCB7IHN0YXRpYzogdHJ1ZSB9KSB0cmFuc3BhcmVudENvbSE6IFhTbGlkZXJTZWxlY3RDb21wb25lbnQ7XHJcbiAgdmFsdWUhOiBzdHJpbmc7XHJcbiAgdHJhbnNwYXJlbnRSYWlsITogSFRNTEVsZW1lbnQ7XHJcbiAgdmFsdWVDaGFuZ2UhOiBTdWJqZWN0PHN0cmluZz47XHJcbiAgcG9zaXRpb25DaGFuZ2UhOiBTdWJqZWN0PGFueT47XHJcbiAgY2xvc2VQb3J0YWwhOiBGdW5jdGlvbjtcclxuICBkZXN0cm95UG9ydGFsITogRnVuY3Rpb247XHJcbiAgYW5pbWF0aW5nITogRnVuY3Rpb247XHJcbiAgbm9kZUVtaXQhOiBGdW5jdGlvbjtcclxuICBpbnB1dENvbSE6IFhJbnB1dENvbXBvbmVudDtcclxuXHJcbiAgc2xpZGVyQ29sb3JOdW0gPSAwO1xyXG4gIHR5cGUhOiBYQ29sb3JUeXBlO1xyXG4gIG9mZnNldCA9IDA7XHJcbiAgcGFuZWwhOiBET01SZWN0O1xyXG4gIHBsYXRlITogRE9NUmVjdDtcclxuICB0cmFuc2Zvcm0gPSB7IHg6IDAsIHk6IDAgfTtcclxuICBpbml0VHJhbnNmb3JtID0geyB4OiAwLCB5OiAwIH07XHJcbiAgZHJhZyA9IGZhbHNlO1xyXG5cclxuICByZ2JhOiB7IHI/OiBudW1iZXI7IGc/OiBudW1iZXI7IGI/OiBudW1iZXI7IGE/OiBudW1iZXIgfSA9IHsgYTogMSB9O1xyXG4gIGhzbGE6IHsgaD86IG51bWJlcjsgcz86IG51bWJlcjsgbD86IG51bWJlcjsgYT86IG51bWJlcjsgc3A/OiBzdHJpbmc7IGxwPzogc3RyaW5nIH0gPSB7XHJcbiAgICBoOiAwLFxyXG4gICAgYTogMVxyXG4gIH07XHJcbiAgaGV4ITogc3RyaW5nO1xyXG5cclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgZG9jID0gaW5qZWN0KERPQ1VNRU5UKTtcclxuICBwcml2YXRlIHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XHJcbiAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIHByaXZhdGUgZGVjaW1hbCA9IGluamVjdChEZWNpbWFsUGlwZSk7XHJcbiAgcHJpdmF0ZSBwZXJjZW50ID0gaW5qZWN0KFBlcmNlbnRQaXBlKTtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoeDogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB4O1xyXG4gICAgICB0aGlzLmluaXQoKTtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnBvc2l0aW9uQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICB0aGlzLnBsYWNlbWVudCA9IHg7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5pbml0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMucGFuZWwgPSB0aGlzLnBhbmVsUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICB0aGlzLnBsYXRlID0gdGhpcy5wbGF0ZVJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgdGhpcy5vZmZzZXQgPSAodGhpcy5wYW5lbC53aWR0aCAtIHRoaXMucGxhdGUud2lkdGgpIC8gMjtcclxuICAgIHRoaXMudHJhbnNwYXJlbnRSYWlsID0gdGhpcy50cmFuc3BhcmVudENvbS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLngtc2xpZGVyLXNlbGVjdC1yYWlsIGRpdicpITtcclxuICAgIHRoaXMuc2V0VHJhbnNmb3JtKCk7XHJcbiAgICB0aGlzLnNldFBsYXRlQmFja2dyb3VuZCgpO1xyXG4gICAgdGhpcy5zZXRSYWlsQmFja2dyb3VuZCgpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgaGV4Q2hhbmdlKCkge1xyXG4gICAgaWYgKHRoaXMuZHJhZyB8fCAhLyheI1swLTlBLUZdezZ9JCkvaS50ZXN0KHRoaXMuaGV4KSkgcmV0dXJuO1xyXG4gICAgdGhpcy5yZ2JhID0gdGhpcy5oZXhUb1JnYmEodGhpcy5oZXgpO1xyXG4gICAgdGhpcy5oc2xhID0gdGhpcy5yZ2JhVG9Ic2xhKHRoaXMucmdiYSk7XHJcbiAgICB0aGlzLnNldEhzbGFQZXJjZW50KCk7XHJcbiAgICB0aGlzLnNldFRyYW5zZm9ybSgpO1xyXG4gICAgdGhpcy5zZXRQbGF0ZUJhY2tncm91bmQoKTtcclxuICAgIHRoaXMuc2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIHJnYmFDaGFuZ2UoKSB7fVxyXG5cclxuICBpbml0KCkge1xyXG4gICAgaWYgKCFYSXNFbXB0eSh0aGlzLnZhbHVlKSkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmdldFByaW1hcnkoKTtcclxuICAgIH1cclxuICAgIHRoaXMuY29sb3JDb252ZXJ0KCk7XHJcbiAgfVxyXG5cclxuICBzdG9wUHJvcGFnYXRpb24oZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIHNldERlZmF1bHQoKSB7fVxyXG5cclxuICBjb2xvckNvbnZlcnQoKSB7XHJcbiAgICBpZiAoL14jLy50ZXN0KHRoaXMudmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuaGV4ID0gdGhpcy52YWx1ZTtcclxuICAgICAgdGhpcy5yZ2JhID0gdGhpcy5oZXhUb1JnYmEodGhpcy5oZXgpO1xyXG4gICAgICB0aGlzLmhzbGEgPSB0aGlzLnJnYmFUb0hzbGEodGhpcy5yZ2JhKTtcclxuICAgICAgdGhpcy5zZXRIc2xhUGVyY2VudCgpO1xyXG4gICAgICB0aGlzLnR5cGUgPSAnaGV4JztcclxuICAgIH0gZWxzZSBpZiAoL3JnYi8udGVzdCh0aGlzLnZhbHVlKSkge1xyXG4gICAgICB0aGlzLnJnYmFDb252ZXJ0KHRoaXMudmFsdWUpO1xyXG4gICAgICB0aGlzLmhleCA9IHRoaXMucmdiYVRvSGV4KHRoaXMucmdiYSk7XHJcbiAgICAgIHRoaXMuaHNsYSA9IHRoaXMucmdiYVRvSHNsYSh0aGlzLnJnYmEpO1xyXG4gICAgICB0aGlzLnNldEhzbGFQZXJjZW50KCk7XHJcbiAgICAgIHRoaXMudHlwZSA9ICdyZ2JhJztcclxuICAgIH0gZWxzZSBpZiAoL2hzbC8udGVzdCh0aGlzLnZhbHVlKSkge1xyXG4gICAgICB0aGlzLmhzbGFDb252ZXJ0KHRoaXMudmFsdWUpO1xyXG4gICAgICB0aGlzLnJnYmEgPSB0aGlzLmhzbGFUb1JnYmEodGhpcy5oc2xhKTtcclxuICAgICAgdGhpcy5oZXggPSB0aGlzLnJnYmFUb0hleCh0aGlzLnJnYmEpO1xyXG4gICAgICB0aGlzLnR5cGUgPSAnaHNsYSc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZ2JhQ29udmVydChzdHI6IHN0cmluZykge1xyXG4gICAgbGV0IHJnYmEgPSBzdHJcclxuICAgICAgLnJlcGxhY2UoL3JnYmE/XFwoLywgJycpXHJcbiAgICAgIC5yZXBsYWNlKC9yZ2I/XFwoLywgJycpXHJcbiAgICAgIC5yZXBsYWNlKC9cXCkvLCAnJylcclxuICAgICAgLnJlcGxhY2UoL1tcXHMrXS9nLCAnJylcclxuICAgICAgLnNwbGl0KCcsJyk7XHJcbiAgICBpZiAocmdiYS5sZW5ndGggPiAyKSB7XHJcbiAgICAgIHRoaXMucmdiYSA9IHtcclxuICAgICAgICByOiBOdW1iZXIocmdiYVswXSksXHJcbiAgICAgICAgZzogTnVtYmVyKHJnYmFbMV0pLFxyXG4gICAgICAgIGI6IE51bWJlcihyZ2JhWzJdKSxcclxuICAgICAgICBhOiBOdW1iZXIocmdiYS5sZW5ndGggPiAzID8gcmdiYVszXSA6IDEpXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoc2xhQ29udmVydChzdHI6IHN0cmluZykge1xyXG4gICAgbGV0IGhzbGEgPSBzdHJcclxuICAgICAgLnJlcGxhY2UoL2hzbGE/XFwoLywgJycpXHJcbiAgICAgIC5yZXBsYWNlKC9oc2w/XFwoLywgJycpXHJcbiAgICAgIC5yZXBsYWNlKC9cXCkvLCAnJylcclxuICAgICAgLnJlcGxhY2UoL1tcXHMrXS9nLCAnJylcclxuICAgICAgLnNwbGl0KCcsJyk7XHJcbiAgICBpZiAoaHNsYS5sZW5ndGggPiAyKSB7XHJcbiAgICAgIHRoaXMuaHNsYSA9IHtcclxuICAgICAgICBoOiBOdW1iZXIoaHNsYVswXSksXHJcbiAgICAgICAgczogTnVtYmVyKGhzbGFbMV0ucmVwbGFjZSgnJScsICcnKSkgLyAxMDAsXHJcbiAgICAgICAgbDogTnVtYmVyKGhzbGFbMl0ucmVwbGFjZSgnJScsICcnKSkgLyAxMDAsXHJcbiAgICAgICAgYTogTnVtYmVyKGhzbGEubGVuZ3RoID4gMyA/IGhzbGFbM10gOiAxKVxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLnNldEhzbGFQZXJjZW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwbGF0ZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5kcmFnKSByZXR1cm47XHJcbiAgICBjb25zdCByZWN0ID0gdGhpcy5wbGF0ZVJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgbGV0IGxlZnQgPSBldmVudC5jbGllbnRYIC0gcmVjdC5sZWZ0O1xyXG4gICAgbGV0IHRvcCA9IGV2ZW50LmNsaWVudFkgLSByZWN0LnRvcDtcclxuICAgIHRoaXMudHJhbnNmb3JtID0geyB4OiBsZWZ0IC0gdGhpcy5vZmZzZXQsIHk6IHRvcCAtIHRoaXMub2Zmc2V0IH07XHJcbiAgICB0aGlzLmluaXRUcmFuc2Zvcm0gPSB7IHg6IHRoaXMudHJhbnNmb3JtLngsIHk6IHRoaXMudHJhbnNmb3JtLnkgfTtcclxuICAgIHRoaXMuc2V0TGV0ZlRvcChsZWZ0LCB0b3ApO1xyXG4gIH1cclxuXHJcbiAgc2V0VHJhbnNmb3JtKCkge1xyXG4gICAgbGV0IGhzdiA9IHRoaXMuaHNsVG9Ic3YodGhpcy5oc2xhLmggYXMgbnVtYmVyLCB0aGlzLmhzbGEucyBhcyBudW1iZXIsIHRoaXMuaHNsYS5sIGFzIG51bWJlcik7XHJcbiAgICB0aGlzLnRyYW5zZm9ybS54ID0gaHN2LnMgKiB0aGlzLnBsYXRlLndpZHRoIC0gdGhpcy5vZmZzZXQ7XHJcbiAgICB0aGlzLnRyYW5zZm9ybS55ID0gKDEgLSBoc3YudikgKiB0aGlzLnBsYXRlLmhlaWdodCAtIHRoaXMub2Zmc2V0O1xyXG4gICAgdGhpcy5pbml0VHJhbnNmb3JtID0geyB4OiB0aGlzLnRyYW5zZm9ybS54LCB5OiB0aGlzLnRyYW5zZm9ybS55IH07XHJcbiAgfVxyXG5cclxuICBzdGFydGVkKCkge1xyXG4gICAgdGhpcy5kcmFnID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGVuZGVkKCkge1xyXG4gICAgdGhpcy5pbml0VHJhbnNmb3JtID0geyB4OiB0aGlzLnRyYW5zZm9ybS54LCB5OiB0aGlzLnRyYW5zZm9ybS55IH07XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5kcmFnID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG1vdmVkKGRyYWc6IENka0RyYWdNb3ZlKSB7XHJcbiAgICBjb25zdCB0cmFuc2Zvcm0gPSBkcmFnLnNvdXJjZS5nZXRGcmVlRHJhZ1Bvc2l0aW9uKCk7XHJcbiAgICBkcmFnLnNvdXJjZS5yZXNldCgpO1xyXG4gICAgdGhpcy50cmFuc2Zvcm0gPSB7XHJcbiAgICAgIHg6IHRyYW5zZm9ybS54ICsgdGhpcy5pbml0VHJhbnNmb3JtLngsXHJcbiAgICAgIHk6IHRyYW5zZm9ybS55ICsgdGhpcy5pbml0VHJhbnNmb3JtLnlcclxuICAgIH07XHJcbiAgICBsZXQgbGVmdCA9IHRoaXMudHJhbnNmb3JtLnggKyB0aGlzLm9mZnNldDtcclxuICAgIGxldCB0b3AgPSB0aGlzLnRyYW5zZm9ybS55ICsgdGhpcy5vZmZzZXQ7XHJcbiAgICB0aGlzLnNldExldGZUb3AobGVmdCwgdG9wKTtcclxuICB9XHJcblxyXG4gIHNldExldGZUb3AobGVmdDogbnVtYmVyLCB0b3A6IG51bWJlcikge1xyXG4gICAgbGV0IHMgPSBsZWZ0IC8gdGhpcy5wbGF0ZS53aWR0aDtcclxuICAgIGxldCB2ID0gMSAtIHRvcCAvIHRoaXMucGxhdGUuaGVpZ2h0O1xyXG4gICAgbGV0IGwgPSAoKDIgLSBzKSAqIHYpIC8gMjtcclxuICAgIGlmIChsICE9PSAwKSB7XHJcbiAgICAgIGlmIChsID09PSAxKSB7XHJcbiAgICAgICAgcyA9IDA7XHJcbiAgICAgIH0gZWxzZSBpZiAobCA8IDAuNSkge1xyXG4gICAgICAgIHMgPSAocyAqIHYpIC8gKGwgKiAyKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzID0gKHMgKiB2KSAvICgyIC0gbCAqIDIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBbdGhpcy5oc2xhLnMsIHRoaXMuaHNsYS5sXSA9IFtcclxuICAgICAgTnVtYmVyKHRoaXMuZGVjaW1hbC50cmFuc2Zvcm0ocywgJzEuMi0yJykpLFxyXG4gICAgICBOdW1iZXIodGhpcy5kZWNpbWFsLnRyYW5zZm9ybShsLCAnMS4yLTInKSlcclxuICAgIF07XHJcbiAgICB0aGlzLnNldEhzbGFQZXJjZW50KCk7XHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMucmdiYSwgdGhpcy5oc2xhVG9SZ2JhKHRoaXMuaHNsYSkpO1xyXG4gICAgdGhpcy5oZXggPSB0aGlzLnJnYmFUb0hleCh0aGlzLnJnYmEpO1xyXG4gICAgdGhpcy5zZXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0SHNsYVBlcmNlbnQoKSB7XHJcbiAgICB0aGlzLmhzbGEuc3AgPSB0aGlzLmhzbGEucyA9PT0gMCA/ICcwJScgOiAodGhpcy5wZXJjZW50LnRyYW5zZm9ybSh0aGlzLmhzbGEucywgJzEuMC0wJykgYXMgc3RyaW5nKTtcclxuICAgIHRoaXMuaHNsYS5scCA9IHRoaXMuaHNsYS5sID09PSAwID8gJzAlJyA6ICh0aGlzLnBlcmNlbnQudHJhbnNmb3JtKHRoaXMuaHNsYS5sLCAnMS4wLTAnKSBhcyBzdHJpbmcpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UHJpbWFyeSgpIHtcclxuICAgIHJldHVybiBYQ29tcHV0ZWQodGhpcy5kb2MuZG9jdW1lbnRFbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCctLXgtcHJpbWFyeScpLnRyaW0oKTtcclxuICB9XHJcblxyXG4gIGh1ZUNoYW5nZSgpIHtcclxuICAgIHRoaXMuc2V0UGxhdGVCYWNrZ3JvdW5kKCk7XHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMucmdiYSwgdGhpcy5oc2xhVG9SZ2JhKHRoaXMuaHNsYSkpO1xyXG4gICAgdGhpcy5oZXggPSB0aGlzLnJnYmFUb0hleCh0aGlzLnJnYmEpO1xyXG4gICAgdGhpcy5zZXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0UGxhdGVCYWNrZ3JvdW5kKCkge1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnBsYXRlUmVmLm5hdGl2ZUVsZW1lbnQsICdiYWNrZ3JvdW5kLWNvbG9yJywgYGhzbCgke3RoaXMuaHNsYS5ofSwgMTAwJSwgNTAlKWApO1xyXG4gIH1cclxuXHJcbiAgc2V0UmFpbEJhY2tncm91bmQoKSB7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxyXG4gICAgICB0aGlzLnRyYW5zcGFyZW50UmFpbCxcclxuICAgICAgJ2JhY2tncm91bmQnLFxyXG4gICAgICBgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKCR7dGhpcy5yZ2JhLnJ9LCAke3RoaXMucmdiYS5nfSwgJHt0aGlzLnJnYmEuYn0sIDApIDAlLCByZ2JhKCR7dGhpcy5yZ2JhLnJ9LCAke3RoaXMucmdiYS5nfSwgJHt0aGlzLnJnYmEuYn0sIDEpIDEwMCUpYFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHRyYW5zcGFyZW50Q2hhbmdlKCkge1xyXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLnJnYmEsIHRoaXMuaHNsYVRvUmdiYSh0aGlzLmhzbGEpKTtcclxuICAgIHRoaXMuaGV4ID0gdGhpcy5yZ2JhVG9IZXgodGhpcy5yZ2JhKTtcclxuICAgIHRoaXMuc2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIHNldFZhbHVlKCkge1xyXG4gICAgdGhpcy5zZXRWYWx1ZUJ5VHlwZSgpO1xyXG4gICAgdGhpcy5zZXRSYWlsQmFja2dyb3VuZCgpO1xyXG4gICAgdGhpcy5ub2RlRW1pdCh0aGlzLnZhbHVlKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHNldFZhbHVlQnlUeXBlKCkge1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2hleCcpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IGAke3RoaXMuaGV4fWA7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ3JnYmEnKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBgcmdiYSgke3RoaXMucmdiYS5yfSwgJHt0aGlzLnJnYmEuZ30sICR7dGhpcy5yZ2JhLmJ9LCAke3RoaXMucmdiYS5hfSlgO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdoc2xhJykge1xyXG4gICAgICB0aGlzLnZhbHVlID0gYGhzbGEoJHt0aGlzLmhzbGEuaH0sICR7dGhpcy5oc2xhLnNwfSwgJHt0aGlzLmhzbGEubHB9LCAke3RoaXMuaHNsYS5hfSlgO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaHNsYVRvUmdiYShoc2xhOiB7IGg/OiBudW1iZXI7IHM/OiBudW1iZXI7IGw/OiBudW1iZXI7IGE/OiBudW1iZXIgfSkge1xyXG4gICAgbGV0IHIsIGcsIGI7XHJcbiAgICBsZXQgW2gsIHMsIGxdID0gW2hzbGEuaCBhcyBudW1iZXIsIGhzbGEucyBhcyBudW1iZXIsIGhzbGEubCBhcyBudW1iZXJdO1xyXG4gICAgaWYgKHMgPT0gMCkge1xyXG4gICAgICByID0gZyA9IGIgPSBsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IGh1ZTJyZ2IgPSAocDogbnVtYmVyLCBxOiBudW1iZXIsIHQ6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIGlmICh0IDwgMCkgdCArPSAxO1xyXG4gICAgICAgIGlmICh0ID4gMSkgdCAtPSAxO1xyXG4gICAgICAgIGlmICh0IDwgMSAvIDYpIHJldHVybiBwICsgKHEgLSBwKSAqIDYgKiB0O1xyXG4gICAgICAgIGlmICh0IDwgMSAvIDIpIHJldHVybiBxO1xyXG4gICAgICAgIGlmICh0IDwgMiAvIDMpIHJldHVybiBwICsgKHEgLSBwKSAqICgyIC8gMyAtIHQpICogNjtcclxuICAgICAgICByZXR1cm4gcDtcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGxldCBxID0gbCA8IDAuNSA/IGwgKiAoMSArIHMpIDogbCArIHMgLSBsICogcztcclxuICAgICAgbGV0IHAgPSAyICogbCAtIHE7XHJcbiAgICAgIHIgPSBodWUycmdiKHAsIHEsIGggLyAzNjAgKyAxIC8gMyk7XHJcbiAgICAgIGcgPSBodWUycmdiKHAsIHEsIGggLyAzNjApO1xyXG4gICAgICBiID0gaHVlMnJnYihwLCBxLCBoIC8gMzYwIC0gMSAvIDMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgcjogTWF0aC5yb3VuZChyICogMjU1KSxcclxuICAgICAgZzogTWF0aC5yb3VuZChnICogMjU1KSxcclxuICAgICAgYjogTWF0aC5yb3VuZChiICogMjU1KSxcclxuICAgICAgYTogTnVtYmVyKGhzbGEuYSlcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICByZ2JhVG9IZXgocmdiYTogeyByPzogbnVtYmVyOyBnPzogbnVtYmVyOyBiPzogbnVtYmVyOyBhPzogbnVtYmVyIH0pIHtcclxuICAgIGxldCBoZXggPSBbXHJcbiAgICAgIChyZ2JhLnIgYXMgbnVtYmVyKS50b1N0cmluZygxNiksXHJcbiAgICAgIChyZ2JhLmcgYXMgbnVtYmVyKS50b1N0cmluZygxNiksXHJcbiAgICAgIChyZ2JhLmIgYXMgbnVtYmVyKS50b1N0cmluZygxNiksXHJcbiAgICAgIE1hdGgucm91bmQoMjU1ICogKHJnYmEuYSBhcyBudW1iZXIpKS50b1N0cmluZygxNilcclxuICAgIF07XHJcbiAgICBoZXguZm9yRWFjaCgoeCwgaW5kZXgpID0+IHtcclxuICAgICAgaWYgKGluZGV4ID09PSAzICYmIHggPT09ICdmZicpIHtcclxuICAgICAgICBoZXhbaW5kZXhdID0gJyc7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHgubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgaGV4W2luZGV4XSA9ICcwJyArIHg7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGAjJHtoZXguam9pbignJyl9YDtcclxuICB9XHJcblxyXG4gIHJnYmFUb0hzbGEocmdiYTogeyByPzogbnVtYmVyOyBnPzogbnVtYmVyOyBiPzogbnVtYmVyOyBhPzogbnVtYmVyIH0pIHtcclxuICAgIGxldCBbciwgZywgYl0gPSBbKHJnYmEuciBhcyBudW1iZXIpIC8gMjU1LCAocmdiYS5nIGFzIG51bWJlcikgLyAyNTUsIChyZ2JhLmIgYXMgbnVtYmVyKSAvIDI1NV07XHJcbiAgICBsZXQgW21heCwgbWluXSA9IFtNYXRoLm1heChyLCBnLCBiKSwgTWF0aC5taW4ociwgZywgYildO1xyXG4gICAgbGV0IGggPSAwO1xyXG4gICAgbGV0IHMgPSAwO1xyXG4gICAgbGV0IGwgPSAobWF4ICsgbWluKSAvIDI7XHJcblxyXG4gICAgaWYgKG1heCA9PT0gbWluKSB7XHJcbiAgICAgIGggPSBzID0gMDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBkID0gbWF4IC0gbWluO1xyXG4gICAgICBzID0gbCA+IDAuNSA/IGQgLyAoMiAtIG1heCAtIG1pbikgOiBkIC8gKG1heCArIG1pbik7XHJcbiAgICAgIHN3aXRjaCAobWF4KSB7XHJcbiAgICAgICAgY2FzZSByOlxyXG4gICAgICAgICAgaCA9IChnIC0gYikgLyBkICsgKGcgPCBiID8gNiA6IDApO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBnOlxyXG4gICAgICAgICAgaCA9IChiIC0gcikgLyBkICsgMjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgYjpcclxuICAgICAgICAgIGggPSAociAtIGcpIC8gZCArIDQ7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBoIC89IDY7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgaDogTWF0aC5yb3VuZChoICogMzYwKSxcclxuICAgICAgczogTnVtYmVyKHRoaXMuZGVjaW1hbC50cmFuc2Zvcm0ocywgJzEuMi0yJykpLFxyXG4gICAgICBsOiBOdW1iZXIodGhpcy5kZWNpbWFsLnRyYW5zZm9ybShsLCAnMS4yLTInKSksXHJcbiAgICAgIGE6IE51bWJlcihyZ2JhLmEpXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgaGV4VG9SZ2JhKGhleDogc3RyaW5nKSB7XHJcbiAgICBsZXQgaGV4TnVtID0gaGV4LnN1YnN0cmluZygxKTtcclxuICAgIGxldCBhID0gMTtcclxuICAgIGlmIChoZXhOdW0ubGVuZ3RoID09PSA4KSB7XHJcbiAgICAgIGEgPSBOdW1iZXIodGhpcy5kZWNpbWFsLnRyYW5zZm9ybShOdW1iZXIoJzB4JyArIGhleE51bS5zbGljZSgtMikpIC8gMjU1LCAnMS4yLTInKSk7XHJcbiAgICAgIGhleE51bSA9IGhleE51bS5zdWJzdHJpbmcoMCwgaGV4TnVtLmxlbmd0aCAtIDIpO1xyXG4gICAgfVxyXG4gICAgbGV0IG51bSA9IE51bWJlcignMHgnICsgKGhleE51bS5sZW5ndGggPCA2ID8gdGhpcy5yZXBlYXRMZXR0ZXIoaGV4TnVtLCAyKSA6IGhleE51bSkpO1xyXG4gICAgcmV0dXJuIHsgcjogbnVtID4+IDE2LCBnOiAobnVtID4+IDgpICYgMHhmZiwgYjogbnVtICYgMHhmZiwgYTogYSB9O1xyXG4gIH1cclxuXHJcbiAgaHNsVG9Ic3YoaDogbnVtYmVyLCBzOiBudW1iZXIsIGw6IG51bWJlcikge1xyXG4gICAgbGV0IGhIc3YsIHNIc3YsIHY7XHJcblxyXG4gICAgaEhzdiA9IGg7XHJcblxyXG4gICAgaWYgKGwgPT0gMCkge1xyXG4gICAgICBzSHN2ID0gMDtcclxuICAgICAgdiA9IDA7XHJcbiAgICB9IGVsc2UgaWYgKGwgPiAwICYmIGwgPD0gMC41KSB7XHJcbiAgICAgIHNIc3YgPSAoMiAqIHMpIC8gKDEgKyBzKTtcclxuICAgICAgdiA9IGwgKiAoMSArIHMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc0hzdiA9ICgyICogcyAtIDIgKiBzICogbCkgLyAocyAtIHMgKiBsICsgbCk7XHJcbiAgICAgIHYgPSBzIC0gcyAqIGwgKyBsO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGg6IGhIc3YsXHJcbiAgICAgIHM6IE51bWJlcih0aGlzLmRlY2ltYWwudHJhbnNmb3JtKHNIc3YsICcxLjItMicpKSxcclxuICAgICAgdjogTnVtYmVyKHRoaXMuZGVjaW1hbC50cmFuc2Zvcm0odiwgJzEuMi0yJykpXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcmVwZWF0V29yZCh3b3JkOiBzdHJpbmcsIG51bTogbnVtYmVyKSB7XHJcbiAgICBsZXQgcmVzdWx0ID0gJyc7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bTsgaSsrKSB7XHJcbiAgICAgIHJlc3VsdCArPSB3b3JkO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIHJlcGVhdExldHRlcih3b3JkOiBzdHJpbmcsIG51bTogbnVtYmVyKSB7XHJcbiAgICBsZXQgcmVzdWx0ID0gJyc7XHJcbiAgICBmb3IgKGxldCBsZXR0ZXIgb2Ygd29yZCkge1xyXG4gICAgICByZXN1bHQgKz0gdGhpcy5yZXBlYXRXb3JkKGxldHRlciwgbnVtKTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWxcIiB0YWJpbmRleD1cIi0xXCIgKGNsaWNrKT1cInN0b3BQcm9wYWdhdGlvbigkZXZlbnQpXCI+XHJcbiAgPGRpdiAjcGFuZWxSZWYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtcGFuZWxcIj5cclxuICAgIDxkaXYgI3BsYXRlUmVmIGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLXBsYXRlXCIgKGNsaWNrKT1cInBsYXRlQ2xpY2soJGV2ZW50KVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLXdoaXRlXCI+PC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtYmxhY2tcIj48L2Rpdj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgICNkcmFnQ29tXHJcbiAgICAgICAgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtY3Vyc29yXCJcclxuICAgICAgICBbc3R5bGUubGVmdC5weF09XCJ0cmFuc2Zvcm0ueFwiXHJcbiAgICAgICAgW3N0eWxlLnRvcC5weF09XCJ0cmFuc2Zvcm0ueVwiXHJcbiAgICAgICAgY2RrRHJhZ1xyXG4gICAgICAgIFtjZGtEcmFnQm91bmRhcnldPVwicGFuZWxSZWZcIlxyXG4gICAgICAgIChjZGtEcmFnU3RhcnRlZCk9XCJzdGFydGVkKClcIlxyXG4gICAgICAgIChjZGtEcmFnRW5kZWQpPVwiZW5kZWQoKVwiXHJcbiAgICAgICAgKGNka0RyYWdNb3ZlZCk9XCJtb3ZlZCgkZXZlbnQpXCJcclxuICAgICAgPjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXBvcnRhbC10b29sXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLW9wZXJhdGlvbnNcIj5cclxuICAgICAgPCEtLSA8eC1idXR0b24gaWNvbj1cImZ0by1lZGl0LTJcIiBvbmx5SWNvbj48L3gtYnV0dG9uPiAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXBvcnRhbC1zZWxlY3RlZFwiPlxyXG4gICAgICAgIDxkaXYgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwidmFsdWVcIj48L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtYXJlYVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtc2xpZGVyXCI+XHJcbiAgICAgICAgICA8eC1zbGlkZXItc2VsZWN0XHJcbiAgICAgICAgICAgIFtzdHlsZS53aWR0aC4lXT1cIjEwMFwiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaHNsYS5oXCJcclxuICAgICAgICAgICAgbWluPVwiMFwiXHJcbiAgICAgICAgICAgIG1heD1cIjM2MFwiXHJcbiAgICAgICAgICAgIHN0ZXA9XCIxXCJcclxuICAgICAgICAgICAgKGRyYWdTdGFydEVtaXQpPVwic3RhcnRlZCgpXCJcclxuICAgICAgICAgICAgKGRyYWdFbmRFbWl0KT1cImVuZGVkKClcIlxyXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJodWVDaGFuZ2UoKVwiXHJcbiAgICAgICAgICA+PC94LXNsaWRlci1zZWxlY3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXBvcnRhbC10cmFuc3BhcmVudFwiPlxyXG4gICAgICAgICAgPHgtc2xpZGVyLXNlbGVjdFxyXG4gICAgICAgICAgICBbc3R5bGUud2lkdGguJV09XCIxMDBcIlxyXG4gICAgICAgICAgICAjdHJhbnNwYXJlbnRDb21cclxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJoc2xhLmFcIlxyXG4gICAgICAgICAgICBtaW49XCIwXCJcclxuICAgICAgICAgICAgbWF4PVwiMVwiXHJcbiAgICAgICAgICAgIHN0ZXA9XCIwLjAxXCJcclxuICAgICAgICAgICAgKGRyYWdTdGFydGVkKT1cInN0YXJ0ZWQoKVwiXHJcbiAgICAgICAgICAgIChkcmFnRW5kZWQpPVwiZW5kZWQoKVwiXHJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInRyYW5zcGFyZW50Q2hhbmdlKClcIlxyXG4gICAgICAgICAgPjwveC1zbGlkZXItc2VsZWN0PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXBvcnRhbC1hbHBoYVwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXBvcnRhbC10eXBlXCI+XHJcbiAgICAgIDx4LXRhYnMgYW5pbWF0ZWQ9XCJmYWxzZVwiIGp1c3RpZnk9XCJjZW50ZXJcIj5cclxuICAgICAgICA8eC10YWIgbGFiZWw9XCJIRVhcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtdHlwZS1jb250ZW50XCI+XHJcbiAgICAgICAgICAgIDx4LWlucHV0IFtzdHlsZS53aWR0aC4lXT1cIjEwMFwiIFsobmdNb2RlbCldPVwiaGV4XCIgKG5nTW9kZWxDaGFuZ2UpPVwiaGV4Q2hhbmdlKClcIj48L3gtaW5wdXQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3gtdGFiPlxyXG4gICAgICAgIDx4LXRhYiBsYWJlbD1cIlJHQkFcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtdHlwZS1jb250ZW50XCI+XHJcbiAgICAgICAgICAgIDx4LWlucHV0IFsobmdNb2RlbCldPVwicmdiYS5yXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L3gtaW5wdXQ+XHJcbiAgICAgICAgICAgIDx4LWlucHV0IFsobmdNb2RlbCldPVwicmdiYS5nXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L3gtaW5wdXQ+XHJcbiAgICAgICAgICAgIDx4LWlucHV0IFsobmdNb2RlbCldPVwicmdiYS5iXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L3gtaW5wdXQ+XHJcbiAgICAgICAgICAgIDx4LWlucHV0IFsobmdNb2RlbCldPVwicmdiYS5hXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L3gtaW5wdXQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3gtdGFiPlxyXG4gICAgICAgIDx4LXRhYiBsYWJlbD1cIkhTTEFcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtdHlwZS1jb250ZW50XCI+XHJcbiAgICAgICAgICAgIDx4LWlucHV0IFsobmdNb2RlbCldPVwiaHNsYS5oXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L3gtaW5wdXQ+XHJcbiAgICAgICAgICAgIDx4LWlucHV0IFsobmdNb2RlbCldPVwiaHNsYS5zcFwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC94LWlucHV0PlxyXG4gICAgICAgICAgICA8eC1pbnB1dCBbKG5nTW9kZWwpXT1cImhzbGEubHBcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwveC1pbnB1dD5cclxuICAgICAgICAgICAgPHgtaW5wdXQgWyhuZ01vZGVsKV09XCJoc2xhLmFcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwveC1pbnB1dD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwveC10YWI+XHJcbiAgICAgIDwveC10YWJzPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -222,10 +222,10 @@ export class XColorPickerComponent extends XColorPickerProperty {
222
222
  this.ngOnInit();
223
223
  this.cdr.detectChanges();
224
224
  }
225
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XColorPickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
226
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: XColorPickerComponent, isStandalone: true, selector: "x-color-picker", providers: [XValueAccessor(XColorPickerComponent)], viewQueries: [{ propertyName: "colorPicker", first: true, predicate: ["colorPicker"], descendants: true, static: true }, { propertyName: "inputCom", first: true, predicate: ["inputCom"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div #colorPicker class=\"x-color-picker\">\r\n <div class=\"x-color-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [validator]=\"validator\"\r\n [icon]=\"icon\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable\"\r\n [(ngModel)]=\"displayValue\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"before\"\r\n [after]=\"after\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n [inputStyle]=\"inputStyle\"\r\n [pointer]=\"true\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xClick)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-color-picker{display:inline-block;width:12rem}.x-color-picker{margin:0;padding:0;width:100%}.x-color-picker x-input{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: XInputComponent, selector: "x-input" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
225
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XColorPickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
226
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: XColorPickerComponent, isStandalone: true, selector: "x-color-picker", providers: [XValueAccessor(XColorPickerComponent)], viewQueries: [{ propertyName: "colorPicker", first: true, predicate: ["colorPicker"], descendants: true, static: true }, { propertyName: "inputCom", first: true, predicate: ["inputCom"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div #colorPicker class=\"x-color-picker\">\r\n <div class=\"x-color-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [validator]=\"validator\"\r\n [icon]=\"icon\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable\"\r\n [(ngModel)]=\"displayValue\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"before\"\r\n [after]=\"after\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n [inputStyle]=\"inputStyle\"\r\n [pointer]=\"true\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xClick)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-color-picker{display:inline-block;width:12rem}.x-color-picker{margin:0;padding:0;width:100%}.x-color-picker x-input{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: XInputComponent, selector: "x-input" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
227
227
  }
228
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XColorPickerComponent, decorators: [{
228
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XColorPickerComponent, decorators: [{
229
229
  type: Component,
230
230
  args: [{ selector: 'x-color-picker', standalone: true, imports: [FormsModule, ReactiveFormsModule, XInputComponent, XControlValueAccessor], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XColorPickerComponent)], template: "<div #colorPicker class=\"x-color-picker\">\r\n <div class=\"x-color-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [validator]=\"validator\"\r\n [icon]=\"icon\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable\"\r\n [(ngModel)]=\"displayValue\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"before\"\r\n [after]=\"after\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n [inputStyle]=\"inputStyle\"\r\n [pointer]=\"true\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xClick)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-color-picker{display:inline-block;width:12rem}.x-color-picker{margin:0;padding:0;width:100%}.x-color-picker x-input{width:100%}\n"] }]
231
231
  }], propDecorators: { colorPicker: [{
@@ -2,11 +2,11 @@ import { NgModule } from '@angular/core';
2
2
  import { XColorPickerComponent } from './color-picker.component';
3
3
  import * as i0 from "@angular/core";
4
4
  export class XColorPickerModule {
5
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XColorPickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.7", ngImport: i0, type: XColorPickerModule, imports: [XColorPickerComponent], exports: [XColorPickerComponent] }); }
7
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XColorPickerModule, imports: [XColorPickerComponent] }); }
5
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XColorPickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.0", ngImport: i0, type: XColorPickerModule, imports: [XColorPickerComponent], exports: [XColorPickerComponent] }); }
7
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XColorPickerModule, imports: [XColorPickerComponent] }); }
8
8
  }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XColorPickerModule, decorators: [{
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XColorPickerModule, decorators: [{
10
10
  type: NgModule,
11
11
  args: [{
12
12
  imports: [XColorPickerComponent],
@@ -14,8 +14,8 @@ const X_CONFIG_NAME = 'colorPicker';
14
14
  * ColorPicker Property
15
15
  */
16
16
  export class XColorPickerProperty extends XControlValueAccessor {
17
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XColorPickerProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
18
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: XColorPickerProperty, selector: "x-color-picker-property", inputs: { placement: "placement", size: "size", bordered: "bordered" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
17
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XColorPickerProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
18
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: XColorPickerProperty, selector: "x-color-picker-property", inputs: { placement: "placement", size: "size", bordered: "bordered" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
19
19
  }
20
20
  __decorate([
21
21
  XWithConfig(X_CONFIG_NAME, 'bottom-start')
@@ -27,7 +27,7 @@ __decorate([
27
27
  XInputBoolean(),
28
28
  XWithConfig(X_CONFIG_NAME, true)
29
29
  ], XColorPickerProperty.prototype, "bordered", void 0);
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XColorPickerProperty, decorators: [{
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XColorPickerProperty, decorators: [{
31
31
  type: Component,
32
32
  args: [{ selector: `${XColorPickerPrefix}-property`, template: '' }]
33
33
  }], propDecorators: { placement: [{
@@ -29,10 +29,10 @@ export class XCommentReplyComponent extends XCommentReplyProperty {
29
29
  sureOnClick() {
30
30
  this.sureClick.emit(this.inputValue);
31
31
  }
32
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XCommentReplyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
33
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: XCommentReplyComponent, isStandalone: true, selector: "x-comment-reply", usesInheritance: true, ngImport: i0, template: "<div #commentReply class=\"x-comment-reply\">\r\n <x-input [placeholder]=\"'comment.placeholder' | xI18n\" [maxlength]=\"maxlength\" [(ngModel)]=\"inputValue\"></x-input>\r\n <div class=\"x-comment-reply-buttons\">\r\n <x-button type=\"primary\" (click)=\"sureOnClick()\">{{ 'comment.sure' | xI18n }}</x-button>\r\n </div>\r\n</div>\r\n", styles: [".x-comment-reply{margin:0;padding:0}.x-comment-reply-buttons{display:flex;justify-content:space-between;align-items:center;margin-top:.625rem}.x-comment-reply-buttons .x-button-icon{padding:0}.x-comment-reply-buttons .x-button-icon>.x-button-inner>.x-icon{font-size:1.25rem}.x-comment-reply-buttons .x-buttons:not(.x-buttons-space)>.x-button:not(:first-child){margin-left:.5rem}.x-comment-reply-sure{display:flex;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: XInputComponent, selector: "x-input" }, { kind: "pipe", type: XI18nPipe, name: "xI18n" }, { kind: "component", type: XButtonComponent, selector: "x-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
32
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XCommentReplyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
33
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: XCommentReplyComponent, isStandalone: true, selector: "x-comment-reply", usesInheritance: true, ngImport: i0, template: "<div #commentReply class=\"x-comment-reply\">\r\n <x-input [placeholder]=\"'comment.placeholder' | xI18n\" [maxlength]=\"maxlength\" [(ngModel)]=\"inputValue\"></x-input>\r\n <div class=\"x-comment-reply-buttons\">\r\n <x-button type=\"primary\" (click)=\"sureOnClick()\">{{ 'comment.sure' | xI18n }}</x-button>\r\n </div>\r\n</div>\r\n", styles: [".x-comment-reply{margin:0;padding:0}.x-comment-reply-buttons{display:flex;justify-content:space-between;align-items:center;margin-top:.625rem}.x-comment-reply-buttons .x-button-icon{padding:0}.x-comment-reply-buttons .x-button-icon>.x-button-inner>.x-icon{font-size:1.25rem}.x-comment-reply-buttons .x-buttons:not(.x-buttons-space)>.x-button:not(:first-child){margin-left:.5rem}.x-comment-reply-sure{display:flex;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: XInputComponent, selector: "x-input" }, { kind: "pipe", type: XI18nPipe, name: "xI18n" }, { kind: "component", type: XButtonComponent, selector: "x-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
34
34
  }
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XCommentReplyComponent, decorators: [{
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XCommentReplyComponent, decorators: [{
36
36
  type: Component,
37
37
  args: [{ selector: `${XCommentReplyPrefix}`, standalone: true, imports: [FormsModule, XInputComponent, XI18nPipe, XButtonComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #commentReply class=\"x-comment-reply\">\r\n <x-input [placeholder]=\"'comment.placeholder' | xI18n\" [maxlength]=\"maxlength\" [(ngModel)]=\"inputValue\"></x-input>\r\n <div class=\"x-comment-reply-buttons\">\r\n <x-button type=\"primary\" (click)=\"sureOnClick()\">{{ 'comment.sure' | xI18n }}</x-button>\r\n </div>\r\n</div>\r\n", styles: [".x-comment-reply{margin:0;padding:0}.x-comment-reply-buttons{display:flex;justify-content:space-between;align-items:center;margin-top:.625rem}.x-comment-reply-buttons .x-button-icon{padding:0}.x-comment-reply-buttons .x-button-icon>.x-button-inner>.x-icon{font-size:1.25rem}.x-comment-reply-buttons .x-buttons:not(.x-buttons-space)>.x-button:not(:first-child){margin-left:.5rem}.x-comment-reply-sure{display:flex;align-items:center}\n"] }]
38
38
  }] });
@@ -65,10 +65,10 @@ export class XCommentComponent extends XCommentProperty {
65
65
  this.cdr?.detectChanges();
66
66
  });
67
67
  }
68
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XCommentComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
69
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.7", type: XCommentComponent, isStandalone: true, selector: "x-comment", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #comment class=\"x-comment\">\r\n <div class=\"x-comment-list\">\r\n @for (node of nodes; track node.id) {\r\n <div class=\"x-comment-item\">\r\n <div class=\"x-comment-avatar\">\r\n <x-avatar [src]=\"node.src\"></x-avatar>\r\n </div>\r\n <div class=\"x-comment-content\">\r\n <div class=\"x-comment-author\">\r\n <x-link>{{ node.author }}</x-link>\r\n <span class=\"x-comment-time\">{{ node.datetime | xTimeAgo }}</span>\r\n </div>\r\n <div>\r\n <x-text-retract [content]=\"node.content\"></x-text-retract>\r\n </div>\r\n <div class=\"x-comment-action\">\r\n <x-buttons>\r\n <x-button\r\n icon=\"fto-message-square\"\r\n [activated]=\"node.commentShow\"\r\n (click)=\"commentOnClick(node)\"\r\n onlyIcon\r\n >\r\n {{ 'comment.comments' | xI18n }} {{ node.count ? node.count : '' }}\r\n </x-button>\r\n <x-button icon=\"fto-thumbs-up\" (click)=\"likeOnClick(node)\" onlyIcon>\r\n {{ 'comment.giveALike' | xI18n }} {{ node.likes ? node.likes : '' }}\r\n </x-button>\r\n </x-buttons>\r\n </div>\r\n @if (node.commentShow) {\r\n <x-comment-reply [maxlength]=\"contentMax\" (sureClick)=\"sureOnClick($event, node)\"></x-comment-reply>\r\n }\r\n <ul>\r\n @for (child of node.children; track child.id) {\r\n <li>\r\n <div>\r\n <div>\r\n <x-link>{{ child.author }}</x-link>\r\n @if (child.replyAuthor) {\r\n <span class=\"x-comment-reply\">{{ 'comment.reply' | xI18n }}</span>\r\n <x-link>{{ child.replyAuthor }}</x-link>\r\n }\r\n \uFF1A\r\n <span>\r\n <x-text-retract [content]=\"child.content\"></x-text-retract>\r\n </span>\r\n </div>\r\n <div class=\"x-comment-action\">\r\n <span class=\"x-comment-time\">{{ child.datetime | xTimeAgo }}</span>\r\n <x-buttons>\r\n <x-button\r\n icon=\"fto-message-square\"\r\n [activated]=\"child.commentShow\"\r\n (click)=\"replyOnClick(child)\"\r\n onlyIcon\r\n >{{ 'comment.reply' | xI18n }}</x-button\r\n >\r\n <x-button icon=\"fto-thumbs-up\" (click)=\"likeOnClick(child)\" onlyIcon>\r\n {{ 'comment.giveALike' | xI18n }} {{ child.likes ? child.likes : '' }}</x-button\r\n >\r\n </x-buttons>\r\n </div>\r\n @if (child.commentShow) {\r\n <x-comment-reply\r\n [maxlength]=\"contentMax\"\r\n (sureClick)=\"sureOnClick($event, child)\"\r\n ></x-comment-reply>\r\n }\r\n </div>\r\n </li>\r\n }\r\n @if (hasMore(node)) {\r\n <li class=\"x-comment-more\">\r\n <x-link icon=\"fto-chevron-right\" type=\"primary\" (click)=\"moreOnClick(node)\" iconRight\r\n >{{ 'comment.more' | xI18n }}\r\n </x-link>\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: [".x-comment{margin:0;padding:0;font-size:var(--x-font-size);box-sizing:border-box}.x-comment p{line-height:1.5;margin:.375rem 0}.x-comment-content{margin-left:1rem;flex:1}.x-comment-content ul,.x-comment-content li{margin:0;padding:0;list-style:none}.x-comment-content>ul{margin-top:.375rem}.x-comment-content>ul>li{padding:0 .875rem;background-color:var(--x-background);transition:.3s}.x-comment-content>ul>li>div{padding:.5rem 0}.x-comment-content>ul>li>div>p>span{color:var(--x-text-300)}.x-comment-content>ul>li>div>.x-comment-action{display:flex;justify-content:space-between;align-items:center}.x-comment-content>ul>li>div>.x-comment-action>.x-comment-time{margin-left:0}.x-comment-content>ul>li:not(:last-child)>div{border-bottom:.0625rem solid var(--x-border-100)}.x-comment-content>ul>li.x-comment-more{padding:.875rem}.x-comment-content>ul>li:hover{background-color:var(--x-background-a100);border-color:transparent}.x-comment-content .x-comment-reply{margin:.875rem 0 1rem}.x-comment-author{margin:.25rem 0;display:inline-flex;align-items:center;color:var(--x-text-300)}.x-comment-author>.x-button{padding:0}.x-comment-time{margin-left:.5rem;color:var(--x-text-400);font-size:.75rem}.x-comment-action{text-align:right}.x-comment-action>.x-buttons>.x-button{padding:0}.x-comment-action>.x-buttons:not(.x-buttons-space)>.x-button:not(:first-child){margin-left:.65rem}.x-comment-item{display:flex;padding:1rem 0;border-bottom:.0625rem solid var(--x-border-100)}.x-comment-item:first-child{padding-top:0}.x-comment-reply{margin:0 .75rem}\n"], dependencies: [{ kind: "pipe", type: XI18nPipe, name: "xI18n" }, { kind: "component", type: XLinkComponent, selector: "x-link" }, { kind: "component", type: XAvatarComponent, selector: "x-avatar" }, { kind: "component", type: XButtonComponent, selector: "x-button" }, { kind: "component", type: XButtonsComponent, selector: "x-buttons" }, { kind: "component", type: XTextRetractComponent, selector: "x-text-retract" }, { kind: "pipe", type: XTimeAgoPipe, name: "xTimeAgo" }, { kind: "component", type: XCommentReplyComponent, selector: "x-comment-reply" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
68
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XCommentComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
69
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.0", type: XCommentComponent, isStandalone: true, selector: "x-comment", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #comment class=\"x-comment\">\r\n <div class=\"x-comment-list\">\r\n @for (node of nodes; track node.id) {\r\n <div class=\"x-comment-item\">\r\n <div class=\"x-comment-avatar\">\r\n <x-avatar [src]=\"node.src\"></x-avatar>\r\n </div>\r\n <div class=\"x-comment-content\">\r\n <div class=\"x-comment-author\">\r\n <x-link>{{ node.author }}</x-link>\r\n <span class=\"x-comment-time\">{{ node.datetime | xTimeAgo }}</span>\r\n </div>\r\n <div>\r\n <x-text-retract [content]=\"node.content\"></x-text-retract>\r\n </div>\r\n <div class=\"x-comment-action\">\r\n <x-buttons>\r\n <x-button\r\n icon=\"fto-message-square\"\r\n [activated]=\"node.commentShow\"\r\n (click)=\"commentOnClick(node)\"\r\n onlyIcon\r\n >\r\n {{ 'comment.comments' | xI18n }} {{ node.count ? node.count : '' }}\r\n </x-button>\r\n <x-button icon=\"fto-thumbs-up\" (click)=\"likeOnClick(node)\" onlyIcon>\r\n {{ 'comment.giveALike' | xI18n }} {{ node.likes ? node.likes : '' }}\r\n </x-button>\r\n </x-buttons>\r\n </div>\r\n @if (node.commentShow) {\r\n <x-comment-reply [maxlength]=\"contentMax\" (sureClick)=\"sureOnClick($event, node)\"></x-comment-reply>\r\n }\r\n <ul>\r\n @for (child of node.children; track child.id) {\r\n <li>\r\n <div>\r\n <div>\r\n <x-link>{{ child.author }}</x-link>\r\n @if (child.replyAuthor) {\r\n <span class=\"x-comment-reply\">{{ 'comment.reply' | xI18n }}</span>\r\n <x-link>{{ child.replyAuthor }}</x-link>\r\n }\r\n \uFF1A\r\n <span>\r\n <x-text-retract [content]=\"child.content\"></x-text-retract>\r\n </span>\r\n </div>\r\n <div class=\"x-comment-action\">\r\n <span class=\"x-comment-time\">{{ child.datetime | xTimeAgo }}</span>\r\n <x-buttons>\r\n <x-button\r\n icon=\"fto-message-square\"\r\n [activated]=\"child.commentShow\"\r\n (click)=\"replyOnClick(child)\"\r\n onlyIcon\r\n >{{ 'comment.reply' | xI18n }}</x-button\r\n >\r\n <x-button icon=\"fto-thumbs-up\" (click)=\"likeOnClick(child)\" onlyIcon>\r\n {{ 'comment.giveALike' | xI18n }} {{ child.likes ? child.likes : '' }}</x-button\r\n >\r\n </x-buttons>\r\n </div>\r\n @if (child.commentShow) {\r\n <x-comment-reply\r\n [maxlength]=\"contentMax\"\r\n (sureClick)=\"sureOnClick($event, child)\"\r\n ></x-comment-reply>\r\n }\r\n </div>\r\n </li>\r\n }\r\n @if (hasMore(node)) {\r\n <li class=\"x-comment-more\">\r\n <x-link icon=\"fto-chevron-right\" type=\"primary\" (click)=\"moreOnClick(node)\" iconRight\r\n >{{ 'comment.more' | xI18n }}\r\n </x-link>\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: [".x-comment{margin:0;padding:0;font-size:var(--x-font-size);box-sizing:border-box}.x-comment p{line-height:1.5;margin:.375rem 0}.x-comment-content{margin-left:1rem;flex:1}.x-comment-content ul,.x-comment-content li{margin:0;padding:0;list-style:none}.x-comment-content>ul{margin-top:.375rem}.x-comment-content>ul>li{padding:0 .875rem;background-color:var(--x-background);transition:.3s}.x-comment-content>ul>li>div{padding:.5rem 0}.x-comment-content>ul>li>div>p>span{color:var(--x-text-300)}.x-comment-content>ul>li>div>.x-comment-action{display:flex;justify-content:space-between;align-items:center}.x-comment-content>ul>li>div>.x-comment-action>.x-comment-time{margin-left:0}.x-comment-content>ul>li:not(:last-child)>div{border-bottom:.0625rem solid var(--x-border-100)}.x-comment-content>ul>li.x-comment-more{padding:.875rem}.x-comment-content>ul>li:hover{background-color:var(--x-background-a100);border-color:transparent}.x-comment-content .x-comment-reply{margin:.875rem 0 1rem}.x-comment-author{margin:.25rem 0;display:inline-flex;align-items:center;color:var(--x-text-300)}.x-comment-author>.x-button{padding:0}.x-comment-time{margin-left:.5rem;color:var(--x-text-400);font-size:.75rem}.x-comment-action{text-align:right}.x-comment-action>.x-buttons>.x-button{padding:0}.x-comment-action>.x-buttons:not(.x-buttons-space)>.x-button:not(:first-child){margin-left:.65rem}.x-comment-item{display:flex;padding:1rem 0;border-bottom:.0625rem solid var(--x-border-100)}.x-comment-item:first-child{padding-top:0}.x-comment-reply{margin:0 .75rem}\n"], dependencies: [{ kind: "pipe", type: XI18nPipe, name: "xI18n" }, { kind: "component", type: XLinkComponent, selector: "x-link" }, { kind: "component", type: XAvatarComponent, selector: "x-avatar" }, { kind: "component", type: XButtonComponent, selector: "x-button" }, { kind: "component", type: XButtonsComponent, selector: "x-buttons" }, { kind: "component", type: XTextRetractComponent, selector: "x-text-retract" }, { kind: "pipe", type: XTimeAgoPipe, name: "xTimeAgo" }, { kind: "component", type: XCommentReplyComponent, selector: "x-comment-reply" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
70
70
  }
71
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XCommentComponent, decorators: [{
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XCommentComponent, decorators: [{
72
72
  type: Component,
73
73
  args: [{ selector: `${XCommentPrefix}`, standalone: true, imports: [
74
74
  XI18nPipe,
@@ -3,11 +3,11 @@ import { XCommentComponent } from './comment.component';
3
3
  import { XCommentReplyComponent } from './comment-reply.component';
4
4
  import * as i0 from "@angular/core";
5
5
  export class XCommentModule {
6
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XCommentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.7", ngImport: i0, type: XCommentModule, imports: [XCommentComponent, XCommentReplyComponent], exports: [XCommentComponent, XCommentReplyComponent] }); }
8
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XCommentModule, imports: [XCommentComponent, XCommentReplyComponent] }); }
6
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XCommentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.0", ngImport: i0, type: XCommentModule, imports: [XCommentComponent, XCommentReplyComponent], exports: [XCommentComponent, XCommentReplyComponent] }); }
8
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XCommentModule, imports: [XCommentComponent, XCommentReplyComponent] }); }
9
9
  }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XCommentModule, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XCommentModule, decorators: [{
11
11
  type: NgModule,
12
12
  args: [{
13
13
  exports: [XCommentComponent, XCommentReplyComponent],
@@ -46,8 +46,8 @@ export class XCommentProperty extends XProperty {
46
46
  */
47
47
  this.moreClick = new EventEmitter();
48
48
  }
49
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XCommentProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
50
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: XCommentProperty, selector: "x-comment-property", inputs: { data: "data", contentMax: "contentMax" }, outputs: { likeClick: "likeClick", commentClick: "commentClick", replyClick: "replyClick", sureClick: "sureClick", moreClick: "moreClick" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
49
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XCommentProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
50
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: XCommentProperty, selector: "x-comment-property", inputs: { data: "data", contentMax: "contentMax" }, outputs: { likeClick: "likeClick", commentClick: "commentClick", replyClick: "replyClick", sureClick: "sureClick", moreClick: "moreClick" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
51
51
  }
52
52
  __decorate([
53
53
  XDataConvert()
@@ -55,7 +55,7 @@ __decorate([
55
55
  __decorate([
56
56
  XWithConfig(X_CONFIG_NAME, 512)
57
57
  ], XCommentProperty.prototype, "contentMax", void 0);
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XCommentProperty, decorators: [{
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XCommentProperty, decorators: [{
59
59
  type: Component,
60
60
  args: [{ selector: `${XCommentPrefix}-property`, template: '' }]
61
61
  }], propDecorators: { data: [{
@@ -96,13 +96,13 @@ export class XCommentReplyProperty extends XProperty {
96
96
  */
97
97
  this.sureClick = new EventEmitter();
98
98
  }
99
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XCommentReplyProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
100
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: XCommentReplyProperty, selector: "x-comment-reply-property", inputs: { maxlength: "maxlength" }, outputs: { sureClick: "sureClick" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
99
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XCommentReplyProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
100
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: XCommentReplyProperty, selector: "x-comment-reply-property", inputs: { maxlength: "maxlength" }, outputs: { sureClick: "sureClick" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
101
101
  }
102
102
  __decorate([
103
103
  XInputNumber()
104
104
  ], XCommentReplyProperty.prototype, "maxlength", void 0);
105
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XCommentReplyProperty, decorators: [{
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XCommentReplyProperty, decorators: [{
106
106
  type: Component,
107
107
  args: [{ selector: `${XCommentReplyPrefix}-property`, template: '' }]
108
108
  }], propDecorators: { maxlength: [{
@@ -15,10 +15,10 @@ export class XAsideComponent extends XAsideProperty {
15
15
  ngOnInit() {
16
16
  this.renderer.addClass(this.elementRef.nativeElement, XAsidePrefix);
17
17
  }
18
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XAsideComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
19
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: XAsideComponent, isStandalone: true, selector: "x-aside", host: { properties: { "style.width.rem": "this.getWidth" } }, usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".x-aside{margin:0;padding:0;overflow:auto;flex-shrink:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
18
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XAsideComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
19
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: XAsideComponent, isStandalone: true, selector: "x-aside", host: { properties: { "style.width.rem": "this.getWidth" } }, usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".x-aside{margin:0;padding:0;overflow:auto;flex-shrink:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
20
20
  }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XAsideComponent, decorators: [{
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XAsideComponent, decorators: [{
22
22
  type: Component,
23
23
  args: [{ selector: `${XAsidePrefix}`, standalone: true, template: '<ng-content></ng-content>', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".x-aside{margin:0;padding:0;overflow:auto;flex-shrink:0}\n"] }]
24
24
  }], propDecorators: { getWidth: [{
@@ -24,10 +24,10 @@ export class XContainerComponent extends XContainerProperty {
24
24
  this.renderer.addClass(this.elementRef.nativeElement, `x-direction-${this.direction}`);
25
25
  }
26
26
  }
27
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
28
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: XContainerComponent, isStandalone: true, selector: "x-container", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".x-container{margin:0;padding:0;display:flex;flex-direction:row;flex:1;flex-basis:auto;box-sizing:border-box;min-width:0}.x-container.x-direction-column{flex-direction:column}.x-container.x-direction-column-reverse{flex-direction:column-reverse}.x-container.x-direction-row{flex-direction:row}.x-container.x-direction-row-reverse{flex-direction:row-reverse}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
27
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
28
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: XContainerComponent, isStandalone: true, selector: "x-container", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".x-container{margin:0;padding:0;display:flex;flex-direction:row;flex:1;flex-basis:auto;box-sizing:border-box;min-width:0}.x-container.x-direction-column{flex-direction:column}.x-container.x-direction-column-reverse{flex-direction:column-reverse}.x-container.x-direction-row{flex-direction:row}.x-container.x-direction-row-reverse{flex-direction:row-reverse}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
29
29
  }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XContainerComponent, decorators: [{
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XContainerComponent, decorators: [{
31
31
  type: Component,
32
32
  args: [{ selector: `${XContainerPrefix}`, standalone: true, template: '<ng-content></ng-content>', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".x-container{margin:0;padding:0;display:flex;flex-direction:row;flex:1;flex-basis:auto;box-sizing:border-box;min-width:0}.x-container.x-direction-column{flex-direction:column}.x-container.x-direction-column-reverse{flex-direction:column-reverse}.x-container.x-direction-row{flex-direction:row}.x-container.x-direction-row-reverse{flex-direction:row-reverse}\n"] }]
33
33
  }] });
@@ -6,11 +6,11 @@ import { XAsideComponent } from './aside.component';
6
6
  import { XHeaderComponent } from './header.component';
7
7
  import * as i0 from "@angular/core";
8
8
  export class XContainerModule {
9
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XContainerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.7", ngImport: i0, type: XContainerModule, imports: [XContainerComponent, XHeaderComponent, XAsideComponent, XMainComponent, XFooterComponent], exports: [XContainerComponent, XHeaderComponent, XAsideComponent, XMainComponent, XFooterComponent] }); }
11
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XContainerModule }); }
9
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XContainerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.0", ngImport: i0, type: XContainerModule, imports: [XContainerComponent, XHeaderComponent, XAsideComponent, XMainComponent, XFooterComponent], exports: [XContainerComponent, XHeaderComponent, XAsideComponent, XMainComponent, XFooterComponent] }); }
11
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XContainerModule }); }
12
12
  }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XContainerModule, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XContainerModule, decorators: [{
14
14
  type: NgModule,
15
15
  args: [{
16
16
  imports: [XContainerComponent, XHeaderComponent, XAsideComponent, XMainComponent, XFooterComponent],