@ng-nest/ui 16.0.11 → 17.0.1

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 (494) hide show
  1. package/README.md +1 -1
  2. package/date-picker/date-range.component.d.ts +2 -2
  3. package/dialog/dialog.property.d.ts +1 -1
  4. package/drawer/drawer.property.d.ts +1 -1
  5. package/esm2022/affix/affix.component.mjs +6 -7
  6. package/esm2022/affix/affix.module.mjs +6 -7
  7. package/esm2022/affix/affix.property.mjs +5 -6
  8. package/esm2022/alert/alert.component.mjs +6 -7
  9. package/esm2022/alert/alert.module.mjs +6 -7
  10. package/esm2022/alert/alert.property.mjs +5 -6
  11. package/esm2022/anchor/anchor-inner.component.mjs +5 -6
  12. package/esm2022/anchor/anchor.component.mjs +6 -7
  13. package/esm2022/anchor/anchor.module.mjs +6 -7
  14. package/esm2022/anchor/anchor.property.mjs +9 -11
  15. package/esm2022/api/api.component.mjs +6 -7
  16. package/esm2022/api/api.module.mjs +6 -7
  17. package/esm2022/auto-complete/auto-complete-portal.component.mjs +6 -7
  18. package/esm2022/auto-complete/auto-complete.component.mjs +6 -7
  19. package/esm2022/auto-complete/auto-complete.module.mjs +6 -7
  20. package/esm2022/auto-complete/auto-complete.property.mjs +5 -6
  21. package/esm2022/avatar/avatar-group.component.mjs +6 -7
  22. package/esm2022/avatar/avatar.component.mjs +6 -7
  23. package/esm2022/avatar/avatar.module.mjs +6 -7
  24. package/esm2022/avatar/avatar.property.mjs +9 -11
  25. package/esm2022/back-top/back-top.component.mjs +6 -7
  26. package/esm2022/back-top/back-top.module.mjs +6 -7
  27. package/esm2022/back-top/back-top.property.mjs +5 -6
  28. package/esm2022/badge/badge.component.mjs +6 -7
  29. package/esm2022/badge/badge.module.mjs +6 -7
  30. package/esm2022/badge/badge.property.mjs +5 -6
  31. package/esm2022/base-form/base-form.component.mjs +5 -6
  32. package/esm2022/base-form/base-form.module.mjs +6 -7
  33. package/esm2022/base-form/base-form.property.mjs +5 -6
  34. package/esm2022/border/border.component.mjs +6 -7
  35. package/esm2022/border/border.module.mjs +6 -7
  36. package/esm2022/button/button.component.mjs +7 -8
  37. package/esm2022/button/button.module.mjs +6 -7
  38. package/esm2022/button/button.property.mjs +9 -11
  39. package/esm2022/button/buttons.component.mjs +6 -7
  40. package/esm2022/calendar/calendar.component.mjs +7 -8
  41. package/esm2022/calendar/calendar.module.mjs +6 -7
  42. package/esm2022/calendar/calendar.property.mjs +5 -6
  43. package/esm2022/card/card.component.mjs +6 -7
  44. package/esm2022/card/card.module.mjs +6 -7
  45. package/esm2022/card/card.property.mjs +5 -6
  46. package/esm2022/carousel/carousel-panel.component.mjs +7 -8
  47. package/esm2022/carousel/carousel.component.mjs +6 -7
  48. package/esm2022/carousel/carousel.module.mjs +6 -7
  49. package/esm2022/carousel/carousel.property.mjs +9 -11
  50. package/esm2022/cascade/cascade-portal.component.mjs +6 -7
  51. package/esm2022/cascade/cascade.component.mjs +6 -7
  52. package/esm2022/cascade/cascade.module.mjs +6 -7
  53. package/esm2022/cascade/cascade.property.mjs +5 -6
  54. package/esm2022/checkbox/checkbox.component.mjs +6 -7
  55. package/esm2022/checkbox/checkbox.module.mjs +6 -7
  56. package/esm2022/checkbox/checkbox.property.mjs +5 -6
  57. package/esm2022/collapse/collapse-panel.component.mjs +7 -8
  58. package/esm2022/collapse/collapse.component.mjs +6 -7
  59. package/esm2022/collapse/collapse.module.mjs +6 -7
  60. package/esm2022/collapse/collapse.property.mjs +9 -11
  61. package/esm2022/color/color.component.mjs +6 -7
  62. package/esm2022/color/color.module.mjs +6 -7
  63. package/esm2022/color/color.property.mjs +5 -6
  64. package/esm2022/color-picker/color-picker-portal.component.mjs +7 -8
  65. package/esm2022/color-picker/color-picker.component.mjs +6 -7
  66. package/esm2022/color-picker/color-picker.module.mjs +6 -7
  67. package/esm2022/color-picker/color-picker.property.mjs +5 -6
  68. package/esm2022/comment/comment-reply.component.mjs +6 -7
  69. package/esm2022/comment/comment.component.mjs +7 -8
  70. package/esm2022/comment/comment.module.mjs +6 -7
  71. package/esm2022/comment/comment.property.mjs +9 -11
  72. package/esm2022/container/aside.component.mjs +6 -7
  73. package/esm2022/container/container.component.mjs +6 -7
  74. package/esm2022/container/container.module.mjs +6 -7
  75. package/esm2022/container/container.property.mjs +17 -21
  76. package/esm2022/container/footer.component.mjs +7 -8
  77. package/esm2022/container/header.component.mjs +7 -8
  78. package/esm2022/container/main.component.mjs +6 -7
  79. package/esm2022/core/config/config.service.mjs +6 -7
  80. package/esm2022/core/services/http.service.mjs +6 -7
  81. package/esm2022/core/services/preloading-strategy.service.mjs +5 -6
  82. package/esm2022/core/services/reuse-strategy.service.mjs +2 -3
  83. package/esm2022/core/services/storage.service.mjs +6 -7
  84. package/esm2022/core/theme/theme.service.mjs +6 -7
  85. package/esm2022/crumb/crumb.component.mjs +7 -8
  86. package/esm2022/crumb/crumb.module.mjs +6 -7
  87. package/esm2022/crumb/crumb.property.mjs +5 -6
  88. package/esm2022/date-picker/date-picker-portal.component.mjs +6 -7
  89. package/esm2022/date-picker/date-picker.component.mjs +6 -7
  90. package/esm2022/date-picker/date-picker.module.mjs +6 -7
  91. package/esm2022/date-picker/date-picker.property.mjs +25 -31
  92. package/esm2022/date-picker/date-quarter.pipe.mjs +6 -7
  93. package/esm2022/date-picker/date-range-portal.component.mjs +6 -7
  94. package/esm2022/date-picker/date-range.component.mjs +6 -7
  95. package/esm2022/date-picker/picker-date.component.mjs +6 -7
  96. package/esm2022/date-picker/picker-month.component.mjs +6 -7
  97. package/esm2022/date-picker/picker-quarter.component.mjs +6 -7
  98. package/esm2022/date-picker/picker-year.component.mjs +6 -7
  99. package/esm2022/description/description-item.component.mjs +6 -7
  100. package/esm2022/description/description.component.mjs +6 -7
  101. package/esm2022/description/description.module.mjs +6 -7
  102. package/esm2022/description/description.property.mjs +9 -11
  103. package/esm2022/dialog/dialog-container.component.mjs +6 -7
  104. package/esm2022/dialog/dialog-portal.component.mjs +6 -7
  105. package/esm2022/dialog/dialog-portal.directives.mjs +31 -37
  106. package/esm2022/dialog/dialog.component.mjs +7 -8
  107. package/esm2022/dialog/dialog.module.mjs +6 -7
  108. package/esm2022/dialog/dialog.property.mjs +9 -11
  109. package/esm2022/dialog/dialog.service.mjs +6 -7
  110. package/esm2022/doc/doc.component.mjs +6 -7
  111. package/esm2022/doc/doc.module.mjs +6 -7
  112. package/esm2022/drag/drag.directive.mjs +6 -7
  113. package/esm2022/drag/drag.module.mjs +6 -7
  114. package/esm2022/drag/drag.property.mjs +5 -6
  115. package/esm2022/drawer/drawer-container.component.mjs +6 -7
  116. package/esm2022/drawer/drawer-portal.component.mjs +6 -7
  117. package/esm2022/drawer/drawer-portal.directives.mjs +15 -18
  118. package/esm2022/drawer/drawer.component.mjs +7 -8
  119. package/esm2022/drawer/drawer.module.mjs +6 -7
  120. package/esm2022/drawer/drawer.property.mjs +9 -11
  121. package/esm2022/drawer/drawer.service.mjs +6 -7
  122. package/esm2022/dropdown/dropdown-portal.component.mjs +6 -7
  123. package/esm2022/dropdown/dropdown.component.mjs +6 -7
  124. package/esm2022/dropdown/dropdown.module.mjs +6 -7
  125. package/esm2022/dropdown/dropdown.property.mjs +5 -6
  126. package/esm2022/empty/empty.component.mjs +6 -7
  127. package/esm2022/empty/empty.module.mjs +6 -7
  128. package/esm2022/empty/empty.property.mjs +5 -6
  129. package/esm2022/examples/examples.component.mjs +6 -7
  130. package/esm2022/examples/examples.module.mjs +6 -7
  131. package/esm2022/find/find.component.mjs +6 -7
  132. package/esm2022/find/find.module.mjs +6 -7
  133. package/esm2022/find/find.property.mjs +5 -6
  134. package/esm2022/form/control.component.mjs +6 -7
  135. package/esm2022/form/form.component.mjs +6 -7
  136. package/esm2022/form/form.module.mjs +6 -7
  137. package/esm2022/form/form.property.mjs +9 -11
  138. package/esm2022/highlight/highlight.component.mjs +7 -8
  139. package/esm2022/highlight/highlight.module.mjs +6 -7
  140. package/esm2022/highlight/highlight.property.mjs +5 -6
  141. package/esm2022/i18n/i18n.directive.mjs +6 -7
  142. package/esm2022/i18n/i18n.module.mjs +6 -7
  143. package/esm2022/i18n/i18n.pipe.mjs +6 -7
  144. package/esm2022/i18n/i18n.service.mjs +7 -8
  145. package/esm2022/icon/icon.component.mjs +6 -7
  146. package/esm2022/icon/icon.module.mjs +6 -7
  147. package/esm2022/icon/icon.property.mjs +5 -6
  148. package/esm2022/icon/icon.service.mjs +7 -8
  149. package/esm2022/image/image-group.component.mjs +5 -6
  150. package/esm2022/image/image-preview.component.mjs +7 -8
  151. package/esm2022/image/image.component.mjs +7 -8
  152. package/esm2022/image/image.module.mjs +6 -7
  153. package/esm2022/image/image.property.mjs +9 -11
  154. package/esm2022/inner/inner.component.mjs +6 -7
  155. package/esm2022/inner/inner.module.mjs +6 -7
  156. package/esm2022/inner/inner.property.mjs +5 -6
  157. package/esm2022/input/input-group.component.mjs +6 -7
  158. package/esm2022/input/input.component.mjs +7 -8
  159. package/esm2022/input/input.module.mjs +6 -7
  160. package/esm2022/input/input.property.mjs +9 -11
  161. package/esm2022/input-number/input-number.component.mjs +6 -7
  162. package/esm2022/input-number/input-number.module.mjs +6 -7
  163. package/esm2022/input-number/input-number.property.mjs +5 -6
  164. package/esm2022/keyword/keyword.directive.mjs +6 -7
  165. package/esm2022/keyword/keyword.module.mjs +6 -7
  166. package/esm2022/keyword/keyword.property.mjs +5 -6
  167. package/esm2022/layout/col.component.mjs +7 -8
  168. package/esm2022/layout/layout.module.mjs +6 -7
  169. package/esm2022/layout/layout.property.mjs +9 -11
  170. package/esm2022/layout/row.component.mjs +6 -7
  171. package/esm2022/link/link.component.mjs +6 -7
  172. package/esm2022/link/link.module.mjs +6 -7
  173. package/esm2022/link/link.property.mjs +5 -6
  174. package/esm2022/list/list-drop-group.directive.mjs +5 -6
  175. package/esm2022/list/list-option.component.mjs +6 -7
  176. package/esm2022/list/list.component.mjs +7 -8
  177. package/esm2022/list/list.module.mjs +6 -7
  178. package/esm2022/list/list.property.mjs +9 -11
  179. package/esm2022/loading/loading.component.mjs +6 -7
  180. package/esm2022/loading/loading.module.mjs +6 -7
  181. package/esm2022/loading/loading.property.mjs +5 -6
  182. package/esm2022/menu/menu-node.component.mjs +6 -7
  183. package/esm2022/menu/menu.component.mjs +6 -7
  184. package/esm2022/menu/menu.module.mjs +6 -7
  185. package/esm2022/menu/menu.property.mjs +9 -11
  186. package/esm2022/message/message.component.mjs +6 -7
  187. package/esm2022/message/message.module.mjs +6 -7
  188. package/esm2022/message/message.service.mjs +6 -7
  189. package/esm2022/message-box/message-box.component.mjs +6 -7
  190. package/esm2022/message-box/message-box.module.mjs +6 -7
  191. package/esm2022/message-box/message-box.service.mjs +6 -7
  192. package/esm2022/notification/notification.component.mjs +6 -7
  193. package/esm2022/notification/notification.module.mjs +6 -7
  194. package/esm2022/notification/notification.service.mjs +6 -7
  195. package/esm2022/outlet/outlet.directive.mjs +6 -7
  196. package/esm2022/outlet/outlet.module.mjs +6 -7
  197. package/esm2022/page-header/page-header.component.mjs +6 -7
  198. package/esm2022/page-header/page-header.module.mjs +6 -7
  199. package/esm2022/page-header/page-header.property.mjs +5 -6
  200. package/esm2022/pagination/pagination.component.mjs +6 -7
  201. package/esm2022/pagination/pagination.module.mjs +6 -7
  202. package/esm2022/pagination/pagination.property.mjs +5 -6
  203. package/esm2022/pattern/pattern.component.mjs +6 -7
  204. package/esm2022/pattern/pattern.module.mjs +6 -7
  205. package/esm2022/popconfirm/popconfirm.component.mjs +6 -7
  206. package/esm2022/popconfirm/popconfirm.module.mjs +6 -7
  207. package/esm2022/popconfirm/popconfirm.property.mjs +5 -6
  208. package/esm2022/popover/popover-portal.component.mjs +6 -7
  209. package/esm2022/popover/popover.directive.mjs +6 -7
  210. package/esm2022/popover/popover.module.mjs +6 -7
  211. package/esm2022/popover/popover.property.mjs +5 -6
  212. package/esm2022/portal/portal.module.mjs +6 -7
  213. package/esm2022/portal/portal.service.mjs +6 -7
  214. package/esm2022/progress/progress.component.mjs +6 -7
  215. package/esm2022/progress/progress.module.mjs +6 -7
  216. package/esm2022/progress/progress.property.mjs +5 -6
  217. package/esm2022/radio/radio.component.mjs +6 -7
  218. package/esm2022/radio/radio.module.mjs +6 -7
  219. package/esm2022/radio/radio.property.mjs +5 -6
  220. package/esm2022/rate/rate.component.mjs +6 -7
  221. package/esm2022/rate/rate.module.mjs +6 -7
  222. package/esm2022/rate/rate.property.mjs +5 -6
  223. package/esm2022/resizable/resizable.directive.mjs +6 -7
  224. package/esm2022/resizable/resizable.module.mjs +6 -7
  225. package/esm2022/resizable/resizable.property.mjs +5 -6
  226. package/esm2022/result/result.component.mjs +6 -7
  227. package/esm2022/result/result.module.mjs +6 -7
  228. package/esm2022/result/result.property.mjs +5 -6
  229. package/esm2022/ripple/ripple.directive.mjs +6 -7
  230. package/esm2022/ripple/ripple.module.mjs +6 -7
  231. package/esm2022/ripple/ripple.property.mjs +5 -6
  232. package/esm2022/select/select-portal.component.mjs +6 -7
  233. package/esm2022/select/select.component.mjs +6 -7
  234. package/esm2022/select/select.module.mjs +6 -7
  235. package/esm2022/select/select.property.mjs +5 -6
  236. package/esm2022/skeleton/skeleton.component.mjs +6 -7
  237. package/esm2022/skeleton/skeleton.module.mjs +6 -7
  238. package/esm2022/skeleton/skeleton.property.mjs +5 -6
  239. package/esm2022/slider/slider.component.mjs +7 -8
  240. package/esm2022/slider/slider.module.mjs +6 -7
  241. package/esm2022/slider/slider.property.mjs +5 -6
  242. package/esm2022/slider-select/slider-select.component.mjs +6 -7
  243. package/esm2022/slider-select/slider-select.module.mjs +6 -7
  244. package/esm2022/slider-select/slider-select.property.mjs +5 -6
  245. package/esm2022/statistic/countdown.component.mjs +6 -7
  246. package/esm2022/statistic/statistic.component.mjs +6 -7
  247. package/esm2022/statistic/statistic.module.mjs +6 -7
  248. package/esm2022/statistic/statistic.property.mjs +9 -11
  249. package/esm2022/steps/steps.component.mjs +6 -7
  250. package/esm2022/steps/steps.module.mjs +6 -7
  251. package/esm2022/steps/steps.property.mjs +5 -6
  252. package/esm2022/switch/switch.component.mjs +6 -7
  253. package/esm2022/switch/switch.module.mjs +6 -7
  254. package/esm2022/switch/switch.property.mjs +5 -6
  255. package/esm2022/table/table-body.component.mjs +6 -7
  256. package/esm2022/table/table-foot.component.mjs +6 -7
  257. package/esm2022/table/table-head.component.mjs +6 -7
  258. package/esm2022/table/table.component.mjs +6 -7
  259. package/esm2022/table/table.module.mjs +6 -7
  260. package/esm2022/table/table.property.mjs +17 -21
  261. package/esm2022/tabs/tab-content.component.mjs +6 -7
  262. package/esm2022/tabs/tab-link.directive.mjs +13 -15
  263. package/esm2022/tabs/tab.component.mjs +6 -7
  264. package/esm2022/tabs/tabs.component.mjs +7 -8
  265. package/esm2022/tabs/tabs.module.mjs +6 -7
  266. package/esm2022/tabs/tabs.property.mjs +9 -11
  267. package/esm2022/tag/tag.component.mjs +6 -7
  268. package/esm2022/tag/tag.module.mjs +6 -7
  269. package/esm2022/tag/tag.property.mjs +5 -6
  270. package/esm2022/text-retract/text-retract.component.mjs +6 -7
  271. package/esm2022/text-retract/text-retract.module.mjs +6 -7
  272. package/esm2022/text-retract/text-retract.property.mjs +5 -6
  273. package/esm2022/textarea/textarea.component.mjs +6 -7
  274. package/esm2022/textarea/textarea.module.mjs +6 -7
  275. package/esm2022/textarea/textarea.property.mjs +5 -6
  276. package/esm2022/theme/theme.component.mjs +6 -7
  277. package/esm2022/theme/theme.module.mjs +6 -7
  278. package/esm2022/theme/theme.property.mjs +5 -6
  279. package/esm2022/time-ago/time-ago.module.mjs +6 -7
  280. package/esm2022/time-ago/time-ago.pipe.mjs +6 -7
  281. package/esm2022/time-picker/time-picker-frame.component.mjs +6 -7
  282. package/esm2022/time-picker/time-picker-portal.component.mjs +6 -7
  283. package/esm2022/time-picker/time-picker.component.mjs +6 -7
  284. package/esm2022/time-picker/time-picker.module.mjs +6 -7
  285. package/esm2022/time-picker/time-picker.property.mjs +5 -6
  286. package/esm2022/time-range/time-range.module.mjs +6 -7
  287. package/esm2022/time-range/time-range.pipe.mjs +5 -6
  288. package/esm2022/timeline/timeline.component.mjs +7 -8
  289. package/esm2022/timeline/timeline.module.mjs +6 -7
  290. package/esm2022/timeline/timeline.property.mjs +5 -6
  291. package/esm2022/tooltip/tooltip-portal.component.mjs +6 -7
  292. package/esm2022/tooltip/tooltip.directive.mjs +6 -7
  293. package/esm2022/tooltip/tooltip.module.mjs +6 -7
  294. package/esm2022/tooltip/tooltip.property.mjs +5 -6
  295. package/esm2022/transfer/transfer.component.mjs +7 -8
  296. package/esm2022/transfer/transfer.module.mjs +6 -7
  297. package/esm2022/transfer/transfer.property.mjs +5 -6
  298. package/esm2022/tree/tree-node.component.mjs +6 -7
  299. package/esm2022/tree/tree.component.mjs +30 -14
  300. package/esm2022/tree/tree.module.mjs +6 -7
  301. package/esm2022/tree/tree.property.mjs +9 -11
  302. package/esm2022/tree/tree.service.mjs +5 -6
  303. package/esm2022/tree-file/tree-file.component.mjs +7 -8
  304. package/esm2022/tree-file/tree-file.module.mjs +6 -7
  305. package/esm2022/tree-file/tree-file.property.mjs +5 -6
  306. package/esm2022/tree-select/tree-select-portal.component.mjs +6 -7
  307. package/esm2022/tree-select/tree-select.component.mjs +6 -7
  308. package/esm2022/tree-select/tree-select.module.mjs +6 -7
  309. package/esm2022/tree-select/tree-select.property.mjs +5 -6
  310. package/esm2022/typography/typography.component.mjs +6 -7
  311. package/esm2022/typography/typography.module.mjs +6 -7
  312. package/esm2022/typography/typography.property.mjs +5 -6
  313. package/esm2022/upload/upload-portal.component.mjs +6 -7
  314. package/esm2022/upload/upload.component.mjs +8 -9
  315. package/esm2022/upload/upload.module.mjs +6 -7
  316. package/esm2022/upload/upload.property.mjs +5 -6
  317. package/fesm2022/ng-nest-ui-affix.mjs +11 -11
  318. package/fesm2022/ng-nest-ui-affix.mjs.map +1 -1
  319. package/fesm2022/ng-nest-ui-alert.mjs +11 -11
  320. package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
  321. package/fesm2022/ng-nest-ui-anchor.mjs +17 -17
  322. package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
  323. package/fesm2022/ng-nest-ui-api.mjs +8 -8
  324. package/fesm2022/ng-nest-ui-api.mjs.map +1 -1
  325. package/fesm2022/ng-nest-ui-auto-complete.mjs +15 -15
  326. package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
  327. package/fesm2022/ng-nest-ui-avatar.mjs +18 -18
  328. package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
  329. package/fesm2022/ng-nest-ui-back-top.mjs +12 -12
  330. package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
  331. package/fesm2022/ng-nest-ui-badge.mjs +11 -11
  332. package/fesm2022/ng-nest-ui-badge.mjs.map +1 -1
  333. package/fesm2022/ng-nest-ui-base-form.mjs +11 -11
  334. package/fesm2022/ng-nest-ui-base-form.mjs.map +1 -1
  335. package/fesm2022/ng-nest-ui-border.mjs +8 -8
  336. package/fesm2022/ng-nest-ui-border.mjs.map +1 -1
  337. package/fesm2022/ng-nest-ui-button.mjs +20 -20
  338. package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
  339. package/fesm2022/ng-nest-ui-calendar.mjs +12 -12
  340. package/fesm2022/ng-nest-ui-calendar.mjs.map +1 -1
  341. package/fesm2022/ng-nest-ui-card.mjs +11 -11
  342. package/fesm2022/ng-nest-ui-card.mjs.map +1 -1
  343. package/fesm2022/ng-nest-ui-carousel.mjs +20 -20
  344. package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
  345. package/fesm2022/ng-nest-ui-cascade.mjs +16 -16
  346. package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
  347. package/fesm2022/ng-nest-ui-checkbox.mjs +11 -11
  348. package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
  349. package/fesm2022/ng-nest-ui-collapse.mjs +19 -19
  350. package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
  351. package/fesm2022/ng-nest-ui-color-picker.mjs +16 -16
  352. package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
  353. package/fesm2022/ng-nest-ui-color.mjs +12 -12
  354. package/fesm2022/ng-nest-ui-color.mjs.map +1 -1
  355. package/fesm2022/ng-nest-ui-comment.mjs +20 -20
  356. package/fesm2022/ng-nest-ui-comment.mjs.map +1 -1
  357. package/fesm2022/ng-nest-ui-container.mjs +38 -38
  358. package/fesm2022/ng-nest-ui-container.mjs.map +1 -1
  359. package/fesm2022/ng-nest-ui-core.mjs +20 -20
  360. package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
  361. package/fesm2022/ng-nest-ui-crumb.mjs +12 -12
  362. package/fesm2022/ng-nest-ui-crumb.mjs.map +1 -1
  363. package/fesm2022/ng-nest-ui-date-picker.mjs +58 -58
  364. package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
  365. package/fesm2022/ng-nest-ui-description.mjs +18 -18
  366. package/fesm2022/ng-nest-ui-description.mjs.map +1 -1
  367. package/fesm2022/ng-nest-ui-dialog.mjs +51 -51
  368. package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
  369. package/fesm2022/ng-nest-ui-doc.mjs +8 -8
  370. package/fesm2022/ng-nest-ui-doc.mjs.map +1 -1
  371. package/fesm2022/ng-nest-ui-drag.mjs +11 -11
  372. package/fesm2022/ng-nest-ui-drag.mjs.map +1 -1
  373. package/fesm2022/ng-nest-ui-drawer.mjs +38 -38
  374. package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
  375. package/fesm2022/ng-nest-ui-dropdown.mjs +16 -16
  376. package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
  377. package/fesm2022/ng-nest-ui-empty.mjs +11 -11
  378. package/fesm2022/ng-nest-ui-empty.mjs.map +1 -1
  379. package/fesm2022/ng-nest-ui-examples.mjs +8 -8
  380. package/fesm2022/ng-nest-ui-examples.mjs.map +1 -1
  381. package/fesm2022/ng-nest-ui-find.mjs +11 -11
  382. package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
  383. package/fesm2022/ng-nest-ui-form.mjs +18 -18
  384. package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
  385. package/fesm2022/ng-nest-ui-highlight.mjs +13 -13
  386. package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
  387. package/fesm2022/ng-nest-ui-i18n.mjs +17 -17
  388. package/fesm2022/ng-nest-ui-i18n.mjs.map +1 -1
  389. package/fesm2022/ng-nest-ui-icon.mjs +16 -16
  390. package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
  391. package/fesm2022/ng-nest-ui-image.mjs +23 -23
  392. package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
  393. package/fesm2022/ng-nest-ui-inner.mjs +11 -11
  394. package/fesm2022/ng-nest-ui-inner.mjs.map +1 -1
  395. package/fesm2022/ng-nest-ui-input-number.mjs +11 -11
  396. package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
  397. package/fesm2022/ng-nest-ui-input.mjs +19 -19
  398. package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
  399. package/fesm2022/ng-nest-ui-keyword.mjs +11 -11
  400. package/fesm2022/ng-nest-ui-keyword.mjs.map +1 -1
  401. package/fesm2022/ng-nest-ui-layout.mjs +19 -19
  402. package/fesm2022/ng-nest-ui-layout.mjs.map +1 -1
  403. package/fesm2022/ng-nest-ui-link.mjs +11 -11
  404. package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
  405. package/fesm2022/ng-nest-ui-list.mjs +22 -22
  406. package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
  407. package/fesm2022/ng-nest-ui-loading.mjs +11 -11
  408. package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
  409. package/fesm2022/ng-nest-ui-menu.mjs +18 -18
  410. package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
  411. package/fesm2022/ng-nest-ui-message-box.mjs +13 -13
  412. package/fesm2022/ng-nest-ui-message-box.mjs.map +1 -1
  413. package/fesm2022/ng-nest-ui-message.mjs +12 -12
  414. package/fesm2022/ng-nest-ui-message.mjs.map +1 -1
  415. package/fesm2022/ng-nest-ui-notification.mjs +12 -12
  416. package/fesm2022/ng-nest-ui-notification.mjs.map +1 -1
  417. package/fesm2022/ng-nest-ui-outlet.mjs +8 -8
  418. package/fesm2022/ng-nest-ui-outlet.mjs.map +1 -1
  419. package/fesm2022/ng-nest-ui-page-header.mjs +11 -11
  420. package/fesm2022/ng-nest-ui-page-header.mjs.map +1 -1
  421. package/fesm2022/ng-nest-ui-pagination.mjs +11 -11
  422. package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
  423. package/fesm2022/ng-nest-ui-pattern.mjs +8 -8
  424. package/fesm2022/ng-nest-ui-pattern.mjs.map +1 -1
  425. package/fesm2022/ng-nest-ui-popconfirm.mjs +11 -11
  426. package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
  427. package/fesm2022/ng-nest-ui-popover.mjs +15 -15
  428. package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
  429. package/fesm2022/ng-nest-ui-portal.mjs +8 -8
  430. package/fesm2022/ng-nest-ui-portal.mjs.map +1 -1
  431. package/fesm2022/ng-nest-ui-progress.mjs +11 -11
  432. package/fesm2022/ng-nest-ui-progress.mjs.map +1 -1
  433. package/fesm2022/ng-nest-ui-radio.mjs +11 -11
  434. package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
  435. package/fesm2022/ng-nest-ui-rate.mjs +11 -11
  436. package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
  437. package/fesm2022/ng-nest-ui-resizable.mjs +11 -11
  438. package/fesm2022/ng-nest-ui-resizable.mjs.map +1 -1
  439. package/fesm2022/ng-nest-ui-result.mjs +11 -11
  440. package/fesm2022/ng-nest-ui-result.mjs.map +1 -1
  441. package/fesm2022/ng-nest-ui-ripple.mjs +13 -13
  442. package/fesm2022/ng-nest-ui-ripple.mjs.map +1 -1
  443. package/fesm2022/ng-nest-ui-select.mjs +15 -15
  444. package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
  445. package/fesm2022/ng-nest-ui-skeleton.mjs +11 -11
  446. package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
  447. package/fesm2022/ng-nest-ui-slider-select.mjs +11 -11
  448. package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
  449. package/fesm2022/ng-nest-ui-slider.mjs +12 -12
  450. package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
  451. package/fesm2022/ng-nest-ui-statistic.mjs +19 -19
  452. package/fesm2022/ng-nest-ui-statistic.mjs.map +1 -1
  453. package/fesm2022/ng-nest-ui-steps.mjs +11 -11
  454. package/fesm2022/ng-nest-ui-steps.mjs.map +1 -1
  455. package/fesm2022/ng-nest-ui-switch.mjs +11 -11
  456. package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
  457. package/fesm2022/ng-nest-ui-table.mjs +32 -32
  458. package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
  459. package/fesm2022/ng-nest-ui-tabs.mjs +33 -33
  460. package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
  461. package/fesm2022/ng-nest-ui-tag.mjs +11 -11
  462. package/fesm2022/ng-nest-ui-tag.mjs.map +1 -1
  463. package/fesm2022/ng-nest-ui-text-retract.mjs +11 -11
  464. package/fesm2022/ng-nest-ui-text-retract.mjs.map +1 -1
  465. package/fesm2022/ng-nest-ui-textarea.mjs +11 -11
  466. package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
  467. package/fesm2022/ng-nest-ui-theme.mjs +11 -11
  468. package/fesm2022/ng-nest-ui-theme.mjs.map +1 -1
  469. package/fesm2022/ng-nest-ui-time-ago.mjs +8 -8
  470. package/fesm2022/ng-nest-ui-time-ago.mjs.map +1 -1
  471. package/fesm2022/ng-nest-ui-time-picker.mjs +20 -20
  472. package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
  473. package/fesm2022/ng-nest-ui-time-range.mjs +7 -7
  474. package/fesm2022/ng-nest-ui-time-range.mjs.map +1 -1
  475. package/fesm2022/ng-nest-ui-timeline.mjs +12 -12
  476. package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
  477. package/fesm2022/ng-nest-ui-tooltip.mjs +15 -15
  478. package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
  479. package/fesm2022/ng-nest-ui-transfer.mjs +12 -12
  480. package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
  481. package/fesm2022/ng-nest-ui-tree-file.mjs +12 -12
  482. package/fesm2022/ng-nest-ui-tree-file.mjs.map +1 -1
  483. package/fesm2022/ng-nest-ui-tree-select.mjs +15 -15
  484. package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
  485. package/fesm2022/ng-nest-ui-tree.mjs +45 -28
  486. package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
  487. package/fesm2022/ng-nest-ui-typography.mjs +11 -11
  488. package/fesm2022/ng-nest-ui-typography.mjs.map +1 -1
  489. package/fesm2022/ng-nest-ui-upload.mjs +18 -18
  490. package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
  491. package/package.json +52 -52
  492. package/style/core/base.scss +0 -7
  493. package/style/core/index.css +0 -7
  494. package/style/core/index.css.map +1 -1
@@ -12,7 +12,7 @@ import * as i5 from "@ng-nest/ui/loading";
12
12
  import * as i6 from "./table-head.component";
13
13
  import * as i7 from "./table-body.component";
14
14
  import * as i8 from "./table-foot.component";
15
- class XTableComponent extends XTableProperty {
15
+ export class XTableComponent extends XTableProperty {
16
16
  get getScrollLeft() {
17
17
  return this.scrollLeft > 0;
18
18
  }
@@ -342,14 +342,13 @@ class XTableComponent extends XTableProperty {
342
342
  }
343
343
  }
344
344
  }
345
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: XTableComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
346
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: XTableComponent, selector: "x-table", viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true }, { propertyName: "caption", first: true, predicate: ["caption"], descendants: true }, { propertyName: "pagination", first: true, predicate: ["pagination"], descendants: true }, { propertyName: "stickyTopRightEle", first: true, predicate: ["stickyTopRightEle"], descendants: true }, { propertyName: "stickyBottomRightEle", first: true, predicate: ["stickyBottomRightEle"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<table\r\n #table\r\n class=\"x-table\"\r\n [ngClass]=\"classMap\"\r\n [x-loading]=\"loading && getting\"\r\n [class.x-table-wrap-border-hidden]=\"hiddenWrapBorder\"\r\n [class.x-table-scroll-left]=\"getScrollLeft\"\r\n [class.x-table-scroll-left-max]=\"scrollLeftMax\"\r\n [class.x-table-scroll-top]=\"getScrollTop\"\r\n [class.x-table-has-scroll-right]=\"scrollYWidth\"\r\n [class.x-table-has-scroll-bottom]=\"scrollXWidth\"\r\n [class.x-table-bordered]=\"bordered\"\r\n [class.x-table-td-adaption-height]=\"rowHeight == 0\"\r\n [class.x-table-cell-config]=\"cellConfig\"\r\n>\r\n <caption #caption class=\"x-table-header\" *ngIf=\"header\" [style.height.px]=\"getRowHeight\" [style.min-height.px]=\"getRowHeight\">\r\n <ng-container *xOutlet=\"header\">{{ header }}</ng-container>\r\n </caption>\r\n <x-table-head\r\n *ngIf=\"showHeader && (headerPosition === 'top' || headerPosition === 'top-bottom')\"\r\n [columns]=\"columns\"\r\n [rowHeight]=\"rowHeight\"\r\n [columnTpl]=\"headColumnTpl\"\r\n [scrollYWidth]=\"scrollYWidth\"\r\n [scrollXWidth]=\"scrollXWidth\"\r\n [cellConfig]=\"cellConfig?.thead\"\r\n [position]=\"'top'\"\r\n [table]=\"this\"\r\n ></x-table-head>\r\n <x-table-body\r\n [data]=\"treeTable ? treeTableData : tableData\"\r\n [columns]=\"columns\"\r\n [itemSize]=\"itemSize\"\r\n [rowHeight]=\"rowHeight\"\r\n [bodyHeight]=\"bodyHeight\"\r\n [columnTpl]=\"bodyColumnTpl\"\r\n [allowSelectRow]=\"allowSelectRow\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [adaptionHeight]=\"adaptionHeight\"\r\n [docPercent]=\"docPercent\"\r\n [scroll]=\"scroll\"\r\n [rowClass]=\"rowClass\"\r\n [cellConfig]=\"cellConfig?.tbody\"\r\n [expandedAll]=\"expandedAll\"\r\n [expandTpl]=\"expandTpl\"\r\n [(activatedRow)]=\"activatedRow\"\r\n (activatedRowChange)=\"activatedRowChange.emit($event)\"\r\n [table]=\"this\"\r\n ></x-table-body>\r\n <x-table-head\r\n *ngIf=\"showHeader && (headerPosition === 'bottom' || headerPosition === 'top-bottom')\"\r\n [columns]=\"columns\"\r\n [rowHeight]=\"rowHeight\"\r\n [columnTpl]=\"headColumnTpl\"\r\n [scrollYWidth]=\"scrollYWidth\"\r\n [scrollXWidth]=\"scrollXWidth\"\r\n [cellConfig]=\"cellConfig?.thead\"\r\n [position]=\"'bottom'\"\r\n [table]=\"this\"\r\n ></x-table-head>\r\n <x-table-foot *ngIf=\"footer\" [table]=\"this\" [footer]=\"footer\" [rowHeight]=\"rowHeight\"></x-table-foot>\r\n <div\r\n *ngIf=\"hasStickyTopRight()\"\r\n #stickyTopRightEle\r\n class=\"x-table-sticky-right-scroll\"\r\n [class.x-table-border-bottom]=\"headSearchTpl\"\r\n [style.top.px]=\"getStickyTopScrollTop\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n <div\r\n *ngIf=\"hasStickyTopRight() && headSearchTpl\"\r\n class=\"x-table-sticky-right-scroll\"\r\n [style.top.px]=\"getStickyTopScrollTop + getStickyTopRightEleHeight\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n <div\r\n *ngIf=\"hasStickyBottomRight()\"\r\n #stickyBottomRightEle\r\n class=\"x-table-sticky-right-scroll\"\r\n [style.bottom.px]=\"getStickyBottomScrollTop\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n <div\r\n *ngIf=\"hasStickyBottomRight() && headSearchTpl\"\r\n class=\"x-table-sticky-right-scroll\"\r\n [class.x-table-border-bottom]=\"headSearchTpl\"\r\n [style.bottom.px]=\"getStickyBottomScrollTop + getStickyBottomRightEleHeight\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n</table>\r\n<x-pagination\r\n #pagination\r\n *ngIf=\"showPagination && size\"\r\n [(index)]=\"index\"\r\n [(size)]=\"size\"\r\n [(query)]=\"query\"\r\n [total]=\"total\"\r\n (indexChange)=\"change($event)\"\r\n (sizeChange)=\"change($event)\"\r\n [showEllipsis]=\"showEllipsis\"\r\n [showTotal]=\"showTotal\"\r\n [space]=\"space\"\r\n [hiddenBorder]=\"hiddenPaginationBorder!\"\r\n [showSize]=\"showSize\"\r\n [showJump]=\"showJump\"\r\n [jumpWidth]=\"jumpWidth\"\r\n [showInputSize]=\"showInputSize\"\r\n [inputSizeWidth]=\"inputSizeWidth\"\r\n [sizeData]=\"sizeData\"\r\n [sizeWidth]=\"sizeWidth\"\r\n [pageLinkSize]=\"pageLinkSize\"\r\n [disabled]=\"disabled\"\r\n [totalTpl]=\"totalTpl\"\r\n [simple]=\"simple\"\r\n [simpleIndexWidth]=\"simpleIndexWidth\"\r\n>\r\n</x-pagination>\r\n", styles: [".x-table{margin:0;padding:0;display:flex;flex-direction:column;border-collapse:collapse;width:100%;position:relative}.x-table:not(.x-table-wrap-border-hidden){border:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>thead{position:relative;overflow:hidden;display:block;background-color:var(--x-background);min-height:42px}.x-table>thead>tr{width:100%;display:flex;min-height:42px}.x-table>thead>tr>th{display:flex;align-items:center;flex:1;position:relative;font-weight:600;background-color:var(--x-background);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>thead>tr>th>a{display:inline-flex;align-items:center;color:var(--x-text-300);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.x-table>thead>tr>th.x-table-sticky{position:sticky;z-index:5}.x-table>thead>tr>th .x-table-drag-width{position:absolute;height:100%;width:.1875rem;right:-.125rem;cursor:ew-resize;transition:background-color var(--x-animation-duration-fast);z-index:1}.x-table>thead>tr>th .x-table-drag-width:hover{background-color:var(--x-primary)}.x-table>thead>tr.cdk-drop-list-dragging>th.cdk-drag-placeholder{background-color:var(--x-background-a200);opacity:.9}.x-table>thead.x-table-head-bottom>tr>th{border-bottom:none}.x-table>thead.x-table-head-bottom>tr.x-table-search>th{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>tbody{display:block;border-top:none;position:relative;min-height:7rem}.x-table>tbody tr{display:flex}.x-table>tbody tr>td{display:flex;align-items:center;position:relative;justify-content:space-between;overflow:hidden;background-color:var(--x-background);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>tbody tr>td>div{flex:1;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.x-table>tbody tr>td.x-table-sticky{position:sticky;z-index:5}.x-table>tbody tr>td>x-button .x-icon{transition:var(--x-animation-duration-base)}.x-table>tbody tr>td>x-button.is-leaf{visibility:hidden}.x-table>tbody tr>td>x-button.is-expanded .x-icon{transform:rotate(90deg)}.x-table>tbody tr>td.x-table-dragging{background-color:var(--x-background-a200);opacity:.9}.x-table>tbody tr.x-table-activated>td{background-color:var(--x-background-a200);color:var(--x-primary)}.x-table>tbody tr:hover>td{background-color:var(--x-background-a200)}.x-table>tbody tr:last-child{border-bottom:none}.x-table>tbody x-empty{position:absolute;top:0;width:100%;padding:calc(var(--x-font-size) * 2)}.x-table-sort{cursor:pointer;transition:transform .2s}.x-table-sort:hover{color:var(--x-text-300)}.x-table-sort:active{transform:translate(1px,1px)}.x-table-sort-icon.x-icon{margin-left:.25rem;display:none;font-size:1rem;transform:rotate(90deg) rotateY(180deg);transition:.3s}.x-table-sort-icon.x-icon.x-table-icon-up,.x-table-sort-icon.x-icon.x-table-icon-down{display:inherit}.x-table-sort-icon.x-icon.x-table-icon-down{transform:rotate(90deg)}.x-table-scroll-top>thead{box-shadow:0 var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);z-index:1}.x-table-scroll-left .x-table-sticky-left-last{box-shadow:var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-td-adaption-height>tbody tr>td{overflow:inherit}.x-table-td-adaption-height>tbody tr>td>div{white-space:inherit;text-overflow:inherit;overflow:inherit}.x-table-bordered>thead>tr>th,.x-table-bordered>tbody tr>td{border-right:var(--x-border-width) var(--x-border-style) var(--x-border);padding-left:calc(var(--x-font-size) / 2)}.x-table-bordered>thead>tr>th:last-child,.x-table-bordered>tbody tr>td:last-child{border-right:none}.x-table-cell-config>thead tr,.x-table-cell-config>tbody tr{display:grid;grid-auto-flow:row;height:100%}.x-table-cell-config>thead>tr>th,.x-table-cell-config>tbody tr>td{border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-cell-config>thead>tr>th:last-child,.x-table-cell-config>tbody tr>td:last-child{border-right:none}.x-table-expand{margin-right:.5rem}.x-table-expandTpl>tr{display:block!important;height:inherit!important}.x-table-header{border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border);text-align:left;display:flex;align-items:center}.x-table-footer{display:flex;align-items:center}.x-table-sticky-right-scroll{position:absolute;right:0;min-height:42px;background-color:var(--x-background);z-index:1}.x-table-has-scroll-right .x-table-footer{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-has-scroll-bottom:not(.x-table-scroll-left-max) .x-table-sticky-right-first{box-shadow:var(--x-box-shadow-light-width-minus) var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-border-bottom{border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-border-top{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-row-size-big>thead>tr>th,.x-table-row-size-big>tbody tr>td{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-big .x-table-header,.x-table-row-size-big .x-table-footer{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-large>thead>tr>th,.x-table-row-size-large>tbody tr>td{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-large .x-table-header,.x-table-row-size-large .x-table-footer{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-medium>thead>tr>th,.x-table-row-size-medium>tbody tr>td{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) var(--x-font-size)}.x-table-row-size-medium .x-table-header,.x-table-row-size-medium .x-table-footer{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) var(--x-font-size)}.x-table-row-size-small>thead>tr>th,.x-table-row-size-small>tbody tr>td{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-small .x-table-header,.x-table-row-size-small .x-table-footer{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-mini>thead>tr>th,.x-table-row-size-mini>tbody tr>td{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2)}.x-table-row-size-mini .x-table-header,.x-table-row-size-mini .x-table-footer{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2)}x-table{width:100%;display:flex;flex-direction:column}x-table .x-pagination{padding-top:calc(var(--x-font-size) / 2)}x-table.x-table-top-left{flex-direction:column-reverse}x-table.x-table-top-left .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-top-center{flex-direction:column-reverse;align-items:center}x-table.x-table-top-center .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-top-right{flex-direction:column-reverse;align-items:flex-end}x-table.x-table-top-right .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-bottom-center{align-items:center}x-table.x-table-bottom-right{align-items:flex-end}body>.x-table-th{display:block}body>.x-table-th-big{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4)}body>.x-table-th-large{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3)}body>.x-table-th-medium{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) var(--x-font-size)}body>.x-table-th-small{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3)}body>.x-table-th-mini{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2)}body>.x-table-th.cdk-drag-preview{display:flex;align-items:center;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-style:dashed;border-radius:var(--x-border-radius);background-color:var(--x-background);opacity:.8;box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color)}body>.x-table-th.cdk-drag-preview>a{display:inline-flex;align-items:center;color:var(--x-text-300);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}body>.x-table-th.cdk-drag-animating{transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.XPaginationComponent, selector: "x-pagination" }, { kind: "directive", type: i4.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: i5.XLoadingComponent, selector: "x-loading, [x-loading]" }, { kind: "component", type: i6.XTableHeadComponent, selector: "x-table-head", inputs: ["table"] }, { kind: "component", type: i7.XTableBodyComponent, selector: "x-table-body", inputs: ["table"] }, { kind: "component", type: i8.XTableFootComponent, selector: "x-table-foot", inputs: ["table"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
345
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XTableComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
346
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: XTableComponent, selector: "x-table", viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true }, { propertyName: "caption", first: true, predicate: ["caption"], descendants: true }, { propertyName: "pagination", first: true, predicate: ["pagination"], descendants: true }, { propertyName: "stickyTopRightEle", first: true, predicate: ["stickyTopRightEle"], descendants: true }, { propertyName: "stickyBottomRightEle", first: true, predicate: ["stickyBottomRightEle"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<table\r\n #table\r\n class=\"x-table\"\r\n [ngClass]=\"classMap\"\r\n [x-loading]=\"loading && getting\"\r\n [class.x-table-wrap-border-hidden]=\"hiddenWrapBorder\"\r\n [class.x-table-scroll-left]=\"getScrollLeft\"\r\n [class.x-table-scroll-left-max]=\"scrollLeftMax\"\r\n [class.x-table-scroll-top]=\"getScrollTop\"\r\n [class.x-table-has-scroll-right]=\"scrollYWidth\"\r\n [class.x-table-has-scroll-bottom]=\"scrollXWidth\"\r\n [class.x-table-bordered]=\"bordered\"\r\n [class.x-table-td-adaption-height]=\"rowHeight == 0\"\r\n [class.x-table-cell-config]=\"cellConfig\"\r\n>\r\n <caption #caption class=\"x-table-header\" *ngIf=\"header\" [style.height.px]=\"getRowHeight\" [style.min-height.px]=\"getRowHeight\">\r\n <ng-container *xOutlet=\"header\">{{ header }}</ng-container>\r\n </caption>\r\n <x-table-head\r\n *ngIf=\"showHeader && (headerPosition === 'top' || headerPosition === 'top-bottom')\"\r\n [columns]=\"columns\"\r\n [rowHeight]=\"rowHeight\"\r\n [columnTpl]=\"headColumnTpl\"\r\n [scrollYWidth]=\"scrollYWidth\"\r\n [scrollXWidth]=\"scrollXWidth\"\r\n [cellConfig]=\"cellConfig?.thead\"\r\n [position]=\"'top'\"\r\n [table]=\"this\"\r\n ></x-table-head>\r\n <x-table-body\r\n [data]=\"treeTable ? treeTableData : tableData\"\r\n [columns]=\"columns\"\r\n [itemSize]=\"itemSize\"\r\n [rowHeight]=\"rowHeight\"\r\n [bodyHeight]=\"bodyHeight\"\r\n [columnTpl]=\"bodyColumnTpl\"\r\n [allowSelectRow]=\"allowSelectRow\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [adaptionHeight]=\"adaptionHeight\"\r\n [docPercent]=\"docPercent\"\r\n [scroll]=\"scroll\"\r\n [rowClass]=\"rowClass\"\r\n [cellConfig]=\"cellConfig?.tbody\"\r\n [expandedAll]=\"expandedAll\"\r\n [expandTpl]=\"expandTpl\"\r\n [(activatedRow)]=\"activatedRow\"\r\n (activatedRowChange)=\"activatedRowChange.emit($event)\"\r\n [table]=\"this\"\r\n ></x-table-body>\r\n <x-table-head\r\n *ngIf=\"showHeader && (headerPosition === 'bottom' || headerPosition === 'top-bottom')\"\r\n [columns]=\"columns\"\r\n [rowHeight]=\"rowHeight\"\r\n [columnTpl]=\"headColumnTpl\"\r\n [scrollYWidth]=\"scrollYWidth\"\r\n [scrollXWidth]=\"scrollXWidth\"\r\n [cellConfig]=\"cellConfig?.thead\"\r\n [position]=\"'bottom'\"\r\n [table]=\"this\"\r\n ></x-table-head>\r\n <x-table-foot *ngIf=\"footer\" [table]=\"this\" [footer]=\"footer\" [rowHeight]=\"rowHeight\"></x-table-foot>\r\n <div\r\n *ngIf=\"hasStickyTopRight()\"\r\n #stickyTopRightEle\r\n class=\"x-table-sticky-right-scroll\"\r\n [class.x-table-border-bottom]=\"headSearchTpl\"\r\n [style.top.px]=\"getStickyTopScrollTop\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n <div\r\n *ngIf=\"hasStickyTopRight() && headSearchTpl\"\r\n class=\"x-table-sticky-right-scroll\"\r\n [style.top.px]=\"getStickyTopScrollTop + getStickyTopRightEleHeight\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n <div\r\n *ngIf=\"hasStickyBottomRight()\"\r\n #stickyBottomRightEle\r\n class=\"x-table-sticky-right-scroll\"\r\n [style.bottom.px]=\"getStickyBottomScrollTop\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n <div\r\n *ngIf=\"hasStickyBottomRight() && headSearchTpl\"\r\n class=\"x-table-sticky-right-scroll\"\r\n [class.x-table-border-bottom]=\"headSearchTpl\"\r\n [style.bottom.px]=\"getStickyBottomScrollTop + getStickyBottomRightEleHeight\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n</table>\r\n<x-pagination\r\n #pagination\r\n *ngIf=\"showPagination && size\"\r\n [(index)]=\"index\"\r\n [(size)]=\"size\"\r\n [(query)]=\"query\"\r\n [total]=\"total\"\r\n (indexChange)=\"change($event)\"\r\n (sizeChange)=\"change($event)\"\r\n [showEllipsis]=\"showEllipsis\"\r\n [showTotal]=\"showTotal\"\r\n [space]=\"space\"\r\n [hiddenBorder]=\"hiddenPaginationBorder!\"\r\n [showSize]=\"showSize\"\r\n [showJump]=\"showJump\"\r\n [jumpWidth]=\"jumpWidth\"\r\n [showInputSize]=\"showInputSize\"\r\n [inputSizeWidth]=\"inputSizeWidth\"\r\n [sizeData]=\"sizeData\"\r\n [sizeWidth]=\"sizeWidth\"\r\n [pageLinkSize]=\"pageLinkSize\"\r\n [disabled]=\"disabled\"\r\n [totalTpl]=\"totalTpl\"\r\n [simple]=\"simple\"\r\n [simpleIndexWidth]=\"simpleIndexWidth\"\r\n>\r\n</x-pagination>\r\n", styles: [".x-table{margin:0;padding:0;display:flex;flex-direction:column;border-collapse:collapse;width:100%;position:relative}.x-table:not(.x-table-wrap-border-hidden){border:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>thead{position:relative;overflow:hidden;display:block;background-color:var(--x-background);min-height:42px}.x-table>thead>tr{width:100%;display:flex;min-height:42px}.x-table>thead>tr>th{display:flex;align-items:center;flex:1;position:relative;font-weight:600;background-color:var(--x-background);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>thead>tr>th>a{display:inline-flex;align-items:center;color:var(--x-text-300);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.x-table>thead>tr>th.x-table-sticky{position:sticky;z-index:5}.x-table>thead>tr>th .x-table-drag-width{position:absolute;height:100%;width:.1875rem;right:-.125rem;cursor:ew-resize;transition:background-color var(--x-animation-duration-fast);z-index:1}.x-table>thead>tr>th .x-table-drag-width:hover{background-color:var(--x-primary)}.x-table>thead>tr.cdk-drop-list-dragging>th.cdk-drag-placeholder{background-color:var(--x-background-a200);opacity:.9}.x-table>thead.x-table-head-bottom>tr>th{border-bottom:none}.x-table>thead.x-table-head-bottom>tr.x-table-search>th{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>tbody{display:block;border-top:none;position:relative;min-height:7rem}.x-table>tbody tr{display:flex}.x-table>tbody tr>td{display:flex;align-items:center;position:relative;justify-content:space-between;overflow:hidden;background-color:var(--x-background);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>tbody tr>td>div{flex:1;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.x-table>tbody tr>td.x-table-sticky{position:sticky;z-index:5}.x-table>tbody tr>td>x-button .x-icon{transition:var(--x-animation-duration-base)}.x-table>tbody tr>td>x-button.is-leaf{visibility:hidden}.x-table>tbody tr>td>x-button.is-expanded .x-icon{transform:rotate(90deg)}.x-table>tbody tr>td.x-table-dragging{background-color:var(--x-background-a200);opacity:.9}.x-table>tbody tr.x-table-activated>td{background-color:var(--x-background-a200);color:var(--x-primary)}.x-table>tbody tr:hover>td{background-color:var(--x-background-a200)}.x-table>tbody tr:last-child{border-bottom:none}.x-table>tbody x-empty{position:absolute;top:0;width:100%;padding:calc(var(--x-font-size) * 2)}.x-table-sort{cursor:pointer;transition:transform .2s}.x-table-sort:hover{color:var(--x-text-300)}.x-table-sort:active{transform:translate(1px,1px)}.x-table-sort-icon.x-icon{margin-left:.25rem;display:none;font-size:1rem;transform:rotate(90deg) rotateY(180deg);transition:.3s}.x-table-sort-icon.x-icon.x-table-icon-up,.x-table-sort-icon.x-icon.x-table-icon-down{display:inherit}.x-table-sort-icon.x-icon.x-table-icon-down{transform:rotate(90deg)}.x-table-scroll-top>thead{box-shadow:0 var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);z-index:1}.x-table-scroll-left .x-table-sticky-left-last{box-shadow:var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-td-adaption-height>tbody tr>td{overflow:inherit}.x-table-td-adaption-height>tbody tr>td>div{white-space:inherit;text-overflow:inherit;overflow:inherit}.x-table-bordered>thead>tr>th,.x-table-bordered>tbody tr>td{border-right:var(--x-border-width) var(--x-border-style) var(--x-border);padding-left:calc(var(--x-font-size) / 2)}.x-table-bordered>thead>tr>th:last-child,.x-table-bordered>tbody tr>td:last-child{border-right:none}.x-table-cell-config>thead tr,.x-table-cell-config>tbody tr{display:grid;grid-auto-flow:row;height:100%}.x-table-cell-config>thead>tr>th,.x-table-cell-config>tbody tr>td{border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-cell-config>thead>tr>th:last-child,.x-table-cell-config>tbody tr>td:last-child{border-right:none}.x-table-expand{margin-right:.5rem}.x-table-expandTpl>tr{display:block!important;height:inherit!important}.x-table-header{border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border);text-align:left;display:flex;align-items:center}.x-table-footer{display:flex;align-items:center}.x-table-sticky-right-scroll{position:absolute;right:0;min-height:42px;background-color:var(--x-background);z-index:1}.x-table-has-scroll-right .x-table-footer{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-has-scroll-bottom:not(.x-table-scroll-left-max) .x-table-sticky-right-first{box-shadow:var(--x-box-shadow-light-width-minus) var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-border-bottom{border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-border-top{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-row-size-big>thead>tr>th,.x-table-row-size-big>tbody tr>td{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-big .x-table-header,.x-table-row-size-big .x-table-footer{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-large>thead>tr>th,.x-table-row-size-large>tbody tr>td{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-large .x-table-header,.x-table-row-size-large .x-table-footer{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-medium>thead>tr>th,.x-table-row-size-medium>tbody tr>td{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) var(--x-font-size)}.x-table-row-size-medium .x-table-header,.x-table-row-size-medium .x-table-footer{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) var(--x-font-size)}.x-table-row-size-small>thead>tr>th,.x-table-row-size-small>tbody tr>td{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-small .x-table-header,.x-table-row-size-small .x-table-footer{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-mini>thead>tr>th,.x-table-row-size-mini>tbody tr>td{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2)}.x-table-row-size-mini .x-table-header,.x-table-row-size-mini .x-table-footer{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2)}x-table{width:100%;display:flex;flex-direction:column}x-table .x-pagination{padding-top:calc(var(--x-font-size) / 2)}x-table.x-table-top-left{flex-direction:column-reverse}x-table.x-table-top-left .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-top-center{flex-direction:column-reverse;align-items:center}x-table.x-table-top-center .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-top-right{flex-direction:column-reverse;align-items:flex-end}x-table.x-table-top-right .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-bottom-center{align-items:center}x-table.x-table-bottom-right{align-items:flex-end}body>.x-table-th{display:block}body>.x-table-th-big{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4)}body>.x-table-th-large{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3)}body>.x-table-th-medium{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) var(--x-font-size)}body>.x-table-th-small{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3)}body>.x-table-th-mini{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2)}body>.x-table-th.cdk-drag-preview{display:flex;align-items:center;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-style:dashed;border-radius:var(--x-border-radius);background-color:var(--x-background);opacity:.8;box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color)}body>.x-table-th.cdk-drag-preview>a{display:inline-flex;align-items:center;color:var(--x-text-300);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}body>.x-table-th.cdk-drag-animating{transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.XPaginationComponent, selector: "x-pagination" }, { kind: "directive", type: i4.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: i5.XLoadingComponent, selector: "x-loading, [x-loading]" }, { kind: "component", type: i6.XTableHeadComponent, selector: "x-table-head", inputs: ["table"] }, { kind: "component", type: i7.XTableBodyComponent, selector: "x-table-body", inputs: ["table"] }, { kind: "component", type: i8.XTableFootComponent, selector: "x-table-foot", inputs: ["table"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
347
347
  }
348
- export { XTableComponent };
349
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: XTableComponent, decorators: [{
348
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XTableComponent, decorators: [{
350
349
  type: Component,
351
350
  args: [{ selector: `${XTablePrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<table\r\n #table\r\n class=\"x-table\"\r\n [ngClass]=\"classMap\"\r\n [x-loading]=\"loading && getting\"\r\n [class.x-table-wrap-border-hidden]=\"hiddenWrapBorder\"\r\n [class.x-table-scroll-left]=\"getScrollLeft\"\r\n [class.x-table-scroll-left-max]=\"scrollLeftMax\"\r\n [class.x-table-scroll-top]=\"getScrollTop\"\r\n [class.x-table-has-scroll-right]=\"scrollYWidth\"\r\n [class.x-table-has-scroll-bottom]=\"scrollXWidth\"\r\n [class.x-table-bordered]=\"bordered\"\r\n [class.x-table-td-adaption-height]=\"rowHeight == 0\"\r\n [class.x-table-cell-config]=\"cellConfig\"\r\n>\r\n <caption #caption class=\"x-table-header\" *ngIf=\"header\" [style.height.px]=\"getRowHeight\" [style.min-height.px]=\"getRowHeight\">\r\n <ng-container *xOutlet=\"header\">{{ header }}</ng-container>\r\n </caption>\r\n <x-table-head\r\n *ngIf=\"showHeader && (headerPosition === 'top' || headerPosition === 'top-bottom')\"\r\n [columns]=\"columns\"\r\n [rowHeight]=\"rowHeight\"\r\n [columnTpl]=\"headColumnTpl\"\r\n [scrollYWidth]=\"scrollYWidth\"\r\n [scrollXWidth]=\"scrollXWidth\"\r\n [cellConfig]=\"cellConfig?.thead\"\r\n [position]=\"'top'\"\r\n [table]=\"this\"\r\n ></x-table-head>\r\n <x-table-body\r\n [data]=\"treeTable ? treeTableData : tableData\"\r\n [columns]=\"columns\"\r\n [itemSize]=\"itemSize\"\r\n [rowHeight]=\"rowHeight\"\r\n [bodyHeight]=\"bodyHeight\"\r\n [columnTpl]=\"bodyColumnTpl\"\r\n [allowSelectRow]=\"allowSelectRow\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [adaptionHeight]=\"adaptionHeight\"\r\n [docPercent]=\"docPercent\"\r\n [scroll]=\"scroll\"\r\n [rowClass]=\"rowClass\"\r\n [cellConfig]=\"cellConfig?.tbody\"\r\n [expandedAll]=\"expandedAll\"\r\n [expandTpl]=\"expandTpl\"\r\n [(activatedRow)]=\"activatedRow\"\r\n (activatedRowChange)=\"activatedRowChange.emit($event)\"\r\n [table]=\"this\"\r\n ></x-table-body>\r\n <x-table-head\r\n *ngIf=\"showHeader && (headerPosition === 'bottom' || headerPosition === 'top-bottom')\"\r\n [columns]=\"columns\"\r\n [rowHeight]=\"rowHeight\"\r\n [columnTpl]=\"headColumnTpl\"\r\n [scrollYWidth]=\"scrollYWidth\"\r\n [scrollXWidth]=\"scrollXWidth\"\r\n [cellConfig]=\"cellConfig?.thead\"\r\n [position]=\"'bottom'\"\r\n [table]=\"this\"\r\n ></x-table-head>\r\n <x-table-foot *ngIf=\"footer\" [table]=\"this\" [footer]=\"footer\" [rowHeight]=\"rowHeight\"></x-table-foot>\r\n <div\r\n *ngIf=\"hasStickyTopRight()\"\r\n #stickyTopRightEle\r\n class=\"x-table-sticky-right-scroll\"\r\n [class.x-table-border-bottom]=\"headSearchTpl\"\r\n [style.top.px]=\"getStickyTopScrollTop\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n <div\r\n *ngIf=\"hasStickyTopRight() && headSearchTpl\"\r\n class=\"x-table-sticky-right-scroll\"\r\n [style.top.px]=\"getStickyTopScrollTop + getStickyTopRightEleHeight\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n <div\r\n *ngIf=\"hasStickyBottomRight()\"\r\n #stickyBottomRightEle\r\n class=\"x-table-sticky-right-scroll\"\r\n [style.bottom.px]=\"getStickyBottomScrollTop\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n <div\r\n *ngIf=\"hasStickyBottomRight() && headSearchTpl\"\r\n class=\"x-table-sticky-right-scroll\"\r\n [class.x-table-border-bottom]=\"headSearchTpl\"\r\n [style.bottom.px]=\"getStickyBottomScrollTop + getStickyBottomRightEleHeight\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n</table>\r\n<x-pagination\r\n #pagination\r\n *ngIf=\"showPagination && size\"\r\n [(index)]=\"index\"\r\n [(size)]=\"size\"\r\n [(query)]=\"query\"\r\n [total]=\"total\"\r\n (indexChange)=\"change($event)\"\r\n (sizeChange)=\"change($event)\"\r\n [showEllipsis]=\"showEllipsis\"\r\n [showTotal]=\"showTotal\"\r\n [space]=\"space\"\r\n [hiddenBorder]=\"hiddenPaginationBorder!\"\r\n [showSize]=\"showSize\"\r\n [showJump]=\"showJump\"\r\n [jumpWidth]=\"jumpWidth\"\r\n [showInputSize]=\"showInputSize\"\r\n [inputSizeWidth]=\"inputSizeWidth\"\r\n [sizeData]=\"sizeData\"\r\n [sizeWidth]=\"sizeWidth\"\r\n [pageLinkSize]=\"pageLinkSize\"\r\n [disabled]=\"disabled\"\r\n [totalTpl]=\"totalTpl\"\r\n [simple]=\"simple\"\r\n [simpleIndexWidth]=\"simpleIndexWidth\"\r\n>\r\n</x-pagination>\r\n", styles: [".x-table{margin:0;padding:0;display:flex;flex-direction:column;border-collapse:collapse;width:100%;position:relative}.x-table:not(.x-table-wrap-border-hidden){border:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>thead{position:relative;overflow:hidden;display:block;background-color:var(--x-background);min-height:42px}.x-table>thead>tr{width:100%;display:flex;min-height:42px}.x-table>thead>tr>th{display:flex;align-items:center;flex:1;position:relative;font-weight:600;background-color:var(--x-background);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>thead>tr>th>a{display:inline-flex;align-items:center;color:var(--x-text-300);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.x-table>thead>tr>th.x-table-sticky{position:sticky;z-index:5}.x-table>thead>tr>th .x-table-drag-width{position:absolute;height:100%;width:.1875rem;right:-.125rem;cursor:ew-resize;transition:background-color var(--x-animation-duration-fast);z-index:1}.x-table>thead>tr>th .x-table-drag-width:hover{background-color:var(--x-primary)}.x-table>thead>tr.cdk-drop-list-dragging>th.cdk-drag-placeholder{background-color:var(--x-background-a200);opacity:.9}.x-table>thead.x-table-head-bottom>tr>th{border-bottom:none}.x-table>thead.x-table-head-bottom>tr.x-table-search>th{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>tbody{display:block;border-top:none;position:relative;min-height:7rem}.x-table>tbody tr{display:flex}.x-table>tbody tr>td{display:flex;align-items:center;position:relative;justify-content:space-between;overflow:hidden;background-color:var(--x-background);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>tbody tr>td>div{flex:1;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.x-table>tbody tr>td.x-table-sticky{position:sticky;z-index:5}.x-table>tbody tr>td>x-button .x-icon{transition:var(--x-animation-duration-base)}.x-table>tbody tr>td>x-button.is-leaf{visibility:hidden}.x-table>tbody tr>td>x-button.is-expanded .x-icon{transform:rotate(90deg)}.x-table>tbody tr>td.x-table-dragging{background-color:var(--x-background-a200);opacity:.9}.x-table>tbody tr.x-table-activated>td{background-color:var(--x-background-a200);color:var(--x-primary)}.x-table>tbody tr:hover>td{background-color:var(--x-background-a200)}.x-table>tbody tr:last-child{border-bottom:none}.x-table>tbody x-empty{position:absolute;top:0;width:100%;padding:calc(var(--x-font-size) * 2)}.x-table-sort{cursor:pointer;transition:transform .2s}.x-table-sort:hover{color:var(--x-text-300)}.x-table-sort:active{transform:translate(1px,1px)}.x-table-sort-icon.x-icon{margin-left:.25rem;display:none;font-size:1rem;transform:rotate(90deg) rotateY(180deg);transition:.3s}.x-table-sort-icon.x-icon.x-table-icon-up,.x-table-sort-icon.x-icon.x-table-icon-down{display:inherit}.x-table-sort-icon.x-icon.x-table-icon-down{transform:rotate(90deg)}.x-table-scroll-top>thead{box-shadow:0 var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);z-index:1}.x-table-scroll-left .x-table-sticky-left-last{box-shadow:var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-td-adaption-height>tbody tr>td{overflow:inherit}.x-table-td-adaption-height>tbody tr>td>div{white-space:inherit;text-overflow:inherit;overflow:inherit}.x-table-bordered>thead>tr>th,.x-table-bordered>tbody tr>td{border-right:var(--x-border-width) var(--x-border-style) var(--x-border);padding-left:calc(var(--x-font-size) / 2)}.x-table-bordered>thead>tr>th:last-child,.x-table-bordered>tbody tr>td:last-child{border-right:none}.x-table-cell-config>thead tr,.x-table-cell-config>tbody tr{display:grid;grid-auto-flow:row;height:100%}.x-table-cell-config>thead>tr>th,.x-table-cell-config>tbody tr>td{border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-cell-config>thead>tr>th:last-child,.x-table-cell-config>tbody tr>td:last-child{border-right:none}.x-table-expand{margin-right:.5rem}.x-table-expandTpl>tr{display:block!important;height:inherit!important}.x-table-header{border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border);text-align:left;display:flex;align-items:center}.x-table-footer{display:flex;align-items:center}.x-table-sticky-right-scroll{position:absolute;right:0;min-height:42px;background-color:var(--x-background);z-index:1}.x-table-has-scroll-right .x-table-footer{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-has-scroll-bottom:not(.x-table-scroll-left-max) .x-table-sticky-right-first{box-shadow:var(--x-box-shadow-light-width-minus) var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-border-bottom{border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-border-top{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-row-size-big>thead>tr>th,.x-table-row-size-big>tbody tr>td{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-big .x-table-header,.x-table-row-size-big .x-table-footer{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-large>thead>tr>th,.x-table-row-size-large>tbody tr>td{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-large .x-table-header,.x-table-row-size-large .x-table-footer{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-medium>thead>tr>th,.x-table-row-size-medium>tbody tr>td{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) var(--x-font-size)}.x-table-row-size-medium .x-table-header,.x-table-row-size-medium .x-table-footer{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) var(--x-font-size)}.x-table-row-size-small>thead>tr>th,.x-table-row-size-small>tbody tr>td{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-small .x-table-header,.x-table-row-size-small .x-table-footer{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-mini>thead>tr>th,.x-table-row-size-mini>tbody tr>td{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2)}.x-table-row-size-mini .x-table-header,.x-table-row-size-mini .x-table-footer{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2)}x-table{width:100%;display:flex;flex-direction:column}x-table .x-pagination{padding-top:calc(var(--x-font-size) / 2)}x-table.x-table-top-left{flex-direction:column-reverse}x-table.x-table-top-left .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-top-center{flex-direction:column-reverse;align-items:center}x-table.x-table-top-center .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-top-right{flex-direction:column-reverse;align-items:flex-end}x-table.x-table-top-right .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-bottom-center{align-items:center}x-table.x-table-bottom-right{align-items:flex-end}body>.x-table-th{display:block}body>.x-table-th-big{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4)}body>.x-table-th-large{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3)}body>.x-table-th-medium{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) var(--x-font-size)}body>.x-table-th-small{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3)}body>.x-table-th-mini{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2)}body>.x-table-th.cdk-drag-preview{display:flex;align-items:center;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-style:dashed;border-radius:var(--x-border-radius);background-color:var(--x-background);opacity:.8;box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color)}body>.x-table-th.cdk-drag-preview>a{display:inline-flex;align-items:center;color:var(--x-text-300);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}body>.x-table-th.cdk-drag-animating{transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}\n"] }]
352
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }]; }, propDecorators: { table: [{
351
+ }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }], propDecorators: { table: [{
353
352
  type: ViewChild,
354
353
  args: ['table']
355
354
  }], caption: [{
@@ -365,4 +364,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
365
364
  type: ViewChild,
366
365
  args: ['stickyBottomRightEle']
367
366
  }] } });
368
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFJakIsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBNkQsTUFBTSxrQkFBa0IsQ0FBQztBQUMzSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBK0MsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHbEgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7QUFFL0IsTUFPYSxlQUFnQixTQUFRLGNBQWM7SUFDakQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ25ELENBQUM7SUFDRCxJQUFJLHFCQUFxQjtRQUN2QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7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bUJBQW1CO2dCQUNLLG9CQUFvQjtzQkFBdEQsU0FBUzt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbiAgT25EZXN0cm95XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhUYWJsZVByZWZpeCwgWFRhYmxlUHJvcGVydHksIFhUYWJsZUNvbHVtbiwgWFRhYmxlUm93LCBYVGFibGVDZWxsLCBYVGFibGVDZWxsQ29uZmlnUnVsZSB9IGZyb20gJy4vdGFibGUucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYSXNDaGFuZ2UsIFhJc0VtcHR5LCBYUmVzdWx0TGlzdCwgWE51bWJlciwgWFNvcnQsIFhDb25maWdTZXJ2aWNlLCBYSXNVbmRlZmluZWQgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XHJcbmltcG9ydCB7IFhQYWdpbmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvcGFnaW5hdGlvbic7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hUYWJsZVByZWZpeH1gLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYVGFibGVDb21wb25lbnQgZXh0ZW5kcyBYVGFibGVQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBnZXQgZ2V0U2Nyb2xsTGVmdCgpIHtcclxuICAgIHJldHVybiB0aGlzLnNjcm9sbExlZnQgPiAwO1xyXG4gIH1cclxuICBnZXQgZ2V0U2Nyb2xsVG9wKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2Nyb2xsVG9wID4gMDtcclxuICB9XHJcbiAgZ2V0IGdldFJvd0hlaWdodCgpIHtcclxuICAgIHJldHVybiB0aGlzLnJvd0hlaWdodCA9PSAwID8gJycgOiB0aGlzLnJvd0hlaWdodDtcclxuICB9XHJcbiAgZ2V0IGdldFN0aWNreVRvcFNjcm9sbFRvcCgpIHtcclxuICAgIHJldHVybiB0aGlzLnRjYXB0aW9uID8gdGhpcy50Y2FwdGlvbi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCA6IDA7XHJcbiAgfVxyXG4gIGdldCBnZXRTdGlja3lCb3R0b21TY3JvbGxUb3AoKSB7XHJcbiAgICBsZXQgdG9wID0gMDtcclxuICAgIGlmICh0aGlzLmZvb3RlciAmJiB0aGlzLnRmb290KSB7XHJcbiAgICAgIHRvcCArPSB0aGlzLnRmb290Py5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodCArIDE7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdG9wO1xyXG4gIH1cclxuICBnZXQgZ2V0U3RpY2t5VG9wUmlnaHRFbGVIZWlnaHQoKSB7XHJcbiAgICBpZiAodGhpcy5zdGlja3lUb3BSaWdodEVsZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5zdGlja3lUb3BSaWdodEVsZS5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXQgZ2V0U3RpY2t5Qm90dG9tUmlnaHRFbGVIZWlnaHQoKSB7XHJcbiAgICBpZiAodGhpcy5zdGlja3lCb3R0b21SaWdodEVsZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5zdGlja3lCb3R0b21SaWdodEVsZS5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG4gIH1cclxuICB0Y2FwdGlvbiE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIHRoZWFkczogRWxlbWVudFJlZjxIVE1MRWxlbWVudD5bXSA9IFtdO1xyXG4gIHRmb290ITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgdmlydHVhbEJvZHkhOiBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQ7XHJcbiAgdGhlYWRzQ2hhbmdlOiAoKCkgPT4gdm9pZClbXSA9IFtdO1xyXG4gIGJvZHlDaGFuZ2UhOiAoKSA9PiB2b2lkO1xyXG4gIHNjcm9sbENvbnRlbnRFbGUhOiBIVE1MRWxlbWVudDtcclxuICBoYXNTY3JvbGxZID0gZmFsc2U7XHJcbiAgc2Nyb2xsWVdpZHRoID0gMDtcclxuICBoYXNTY3JvbGxYID0gZmFsc2U7XHJcbiAgc2Nyb2xsWEhlaWdodCA9IDA7XHJcbiAgc2Nyb2xsWFdpZHRoITogbnVtYmVyIHwgbnVsbDtcclxuICBzY3JvbGxMZWZ0ID0gMDtcclxuICBzY3JvbGxMZWZ0TWF4ID0gZmFsc2U7XHJcbiAgc2Nyb2xsVG9wID0gMDtcclxuICByb3dDaGVja2VkITogWFRhYmxlQ29sdW1uO1xyXG4gIGhlYWRDaGVja2JveExpc3QhOiBYVGFibGVDb2x1bW5bXTtcclxuICByb3dFeHBhbmQhOiBYVGFibGVDb2x1bW47XHJcbiAgaGVhZEV4cGFuZExpc3QhOiBYVGFibGVDb2x1bW5bXTtcclxuICBkYXRhSXNGdW5jID0gZmFsc2U7XHJcbiAgZ2V0dGluZyA9IGZhbHNlO1xyXG4gIHRhYmxlRGF0YTogWFRhYmxlUm93W10gPSBbXTtcclxuICB0cmVlVGFibGVEYXRhOiBYVGFibGVSb3dbXSA9IFtdO1xyXG4gIGNoZWNrZWRWYWx1ZXM6IHsgW3Byb3A6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xyXG4gIGluZGV0ZXJtaW5hdGUgPSAnJCRpbmRldGVybWluYXRlJztcclxuICBAVmlld0NoaWxkKCd0YWJsZScpIHRhYmxlITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgQFZpZXdDaGlsZCgnY2FwdGlvbicpIGNhcHRpb24hOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKCdwYWdpbmF0aW9uJykgcGFnaW5hdGlvbiE6IFhQYWdpbmF0aW9uQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ3N0aWNreVRvcFJpZ2h0RWxlJykgc3RpY2t5VG9wUmlnaHRFbGUhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKCdzdGlja3lCb3R0b21SaWdodEVsZScpIHN0aWNreUJvdHRvbVJpZ2h0RWxlITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0Q2xhc3NNYXAoKTtcclxuICAgIHRoaXMuc2V0Um93Q2hlY2tlZCgpO1xyXG4gICAgdGhpcy5zZXRSb3dFeHBhbmQoKTtcclxuICAgIHRoaXMuc2V0UGFnaW5hdGlvblBvc2l0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhzaW1wbGVzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBjb25zdCB7IGRhdGEsIGNoZWNrZWRSb3csIGNvbHVtbnMsIGFjdGl2YXRlZFJvdywgbWFudWFsLCBzaG93UGFnaW5hdGlvbiwgZXhwYW5kZWRBbGwsIGNlbGxDb25maWcgfSA9IHNpbXBsZXM7XHJcbiAgICBYSXNDaGFuZ2UoZXhwYW5kZWRBbGwpICYmIHRoaXMuc2V0RXhwYW5kZWRBbGwoKTtcclxuICAgIFhJc0NoYW5nZShkYXRhLCBjaGVja2VkUm93KSAmJiB0aGlzLnNldERhdGEoKTtcclxuICAgIGlmIChYSXNDaGFuZ2UoY29sdW1ucykpIHtcclxuICAgICAgdGhpcy5zZXRSb3dDaGVja2VkKCk7XHJcbiAgICAgIHRoaXMuc2V0Um93RXhwYW5kKCk7XHJcbiAgICB9XHJcbiAgICBYSXNDaGFuZ2UoY29sdW1ucywgYWN0aXZhdGVkUm93LCBzaG93UGFnaW5hdGlvbikgJiYgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgWElzQ2hhbmdlKG1hbnVhbCkgJiYgdGhpcy5zZXRNYW51YWwoKTtcclxuICAgIFhJc0NoYW5nZShjZWxsQ29uZmlnKSAmJiB0aGlzLnNldE1lcmdlKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMudGNhcHRpb24gPSB0aGlzLmNhcHRpb247XHJcbiAgfVxyXG5cclxuICBzZXRDbGFzc01hcCgpIHtcclxuICAgIHRoaXMuY2xhc3NNYXAgPSB7XHJcbiAgICAgIFtgJHtYVGFibGVQcmVmaXh9LXJvdy1zaXplLSR7dGhpcy5yb3dTaXplfWBdOiAhWElzRW1wdHkodGhpcy5yb3dTaXplKVxyXG4gICAgfTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHNldFBhZ2luYXRpb25Qb3NpdGlvbigpIHtcclxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGB4LXRhYmxlLSR7dGhpcy5wYWdpbmF0aW9uUG9zaXRpb259YCk7XHJcbiAgfVxyXG5cclxuICBnZXRTdGlja3koY29sdW1uOiBYVGFibGVDb2x1bW4gfCBYVGFibGVDZWxsKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRTdGlja3lMZWZ0KGNvbHVtbikgfHwgdGhpcy5nZXRTdGlja3lSaWdodChjb2x1bW4pO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RpY2t5TGVmdChjb2x1bW46IFhUYWJsZUNvbHVtbiB8IFhUYWJsZUNlbGwpIHtcclxuICAgIHJldHVybiBOdW1iZXIoY29sdW1uLmxlZnQpID49IDA7XHJcbiAgfVxyXG5cclxuICBnZXRTdGlja3lMZWZ0TGFzdChjb2x1bW46IFhUYWJsZUNvbHVtbiB8IFhUYWJsZUNlbGwpIHtcclxuICAgIGxldCBsZWZ0cyA9IHRoaXMuY29sdW1ucy5maWx0ZXIoKHgpID0+IE51bWJlcih4LmxlZnQpID49IDApO1xyXG4gICAgaWYgKGxlZnRzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgcmV0dXJuIGxlZnRzW2xlZnRzLmxlbmd0aCAtIDFdLmlkID09PSBjb2x1bW4uaWQ7XHJcbiAgfVxyXG5cclxuICBnZXRTdGlja3lSaWdodChjb2x1bW46IFhUYWJsZUNvbHVtbiB8IFhUYWJsZUNlbGwpIHtcclxuICAgIHJldHVybiBOdW1iZXIoY29sdW1uLnJpZ2h0KSA+PSAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RpY2t5UmlnaHRGaXJzdChjb2x1bW46IFhUYWJsZUNvbHVtbiB8IFhUYWJsZUNlbGwpIHtcclxuICAgIGxldCByaWdodHMgPSB0aGlzLmNvbHVtbnMuZmlsdGVyKCh4KSA9PiBOdW1iZXIoeC5yaWdodCkgPj0gMCk7XHJcbiAgICBpZiAocmlnaHRzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgcmV0dXJuIHJpZ2h0c1swXS5pZCA9PT0gY29sdW1uLmlkO1xyXG4gIH1cclxuXHJcbiAgaGFzU3RpY2t5VG9wUmlnaHQoKSB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLnNob3dIZWFkZXIgJiZcclxuICAgICAgKHRoaXMuaGVhZGVyUG9zaXRpb24gPT09ICd0b3AnIHx8IHRoaXMuaGVhZGVyUG9zaXRpb24gPT09ICd0b3AtYm90dG9tJykgJiZcclxuICAgICAgdGhpcy5jb2x1bW5zLnNvbWUoKHgpID0+IE51bWJlcih4LnJpZ2h0KSA+PSAwKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGhhc1N0aWNreVRvcFJpZ2h0U2VhcmNoKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaGVhZFNlYXJjaFRwbCA/IHRydWUgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGhhc1N0aWNreUJvdHRvbVJpZ2h0KCkge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5zaG93SGVhZGVyICYmXHJcbiAgICAgICh0aGlzLmhlYWRlclBvc2l0aW9uID09PSAnYm90dG9tJyB8fCB0aGlzLmhlYWRlclBvc2l0aW9uID09PSAndG9wLWJvdHRvbScpICYmXHJcbiAgICAgIHRoaXMuY29sdW1ucy5zb21lKCh4KSA9PiBOdW1iZXIoeC5yaWdodCkgPj0gMClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRJbmRleChpbmRleDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gKE51bWJlcih0aGlzLmluZGV4KSAtIDEpICogTnVtYmVyKHRoaXMuc2l6ZSkgKyBpbmRleCArIDE7XHJcbiAgfVxyXG5cclxuICBzZXREYXRhKCkge1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5kYXRhKSkge1xyXG4gICAgICB0aGlzLmRhdGFJc0Z1bmMgPSBmYWxzZTtcclxuICAgICAgdGhpcy50YWJsZURhdGEgPSB0aGlzLmRhdGE7XHJcbiAgICAgIHRoaXMuc2V0Q2hlY2tlZCh0aGlzLmRhdGEpO1xyXG4gICAgICB0aGlzLnNldEhlYWRDaGVja2JveExpc3QodGhpcy5kYXRhKTtcclxuICAgICAgdGhpcy5zZXRFeHBhbmQodGhpcy5kYXRhKTtcclxuICAgICAgdGhpcy5zZXRIZWFkRXhwYW5kTGlzdCgpO1xyXG4gICAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5kYXRhIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcclxuICAgICAgdGhpcy5kYXRhSXNGdW5jID0gdHJ1ZTtcclxuICAgICAgdGhpcy5nZXREYXRhQnlGdW5jKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXREYXRhQnlGdW5jKCkge1xyXG4gICAgaWYgKCF0aGlzLm1hbnVhbCkgcmV0dXJuO1xyXG4gICAgdGhpcy5nZXR0aW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICAodGhpcy5kYXRhIGFzIEZ1bmN0aW9uKSh0aGlzLmluZGV4LCB0aGlzLnNpemUsIHRoaXMucXVlcnkpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKVxyXG4gICAgICAuc3Vic2NyaWJlKCh4OiBYUmVzdWx0TGlzdDxYVGFibGVSb3c+KSA9PiB7XHJcbiAgICAgICAgbGV0IFtkYXRhLCB0b3RhbF0gPSBbeC5saXN0IGFzIFhUYWJsZVJvd1tdLCB4LnRvdGFsIGFzIFhOdW1iZXJdO1xyXG4gICAgICAgIGlmICh0aGlzLnZpcnR1YWxCb2R5KSB7XHJcbiAgICAgICAgICB0aGlzLnZpcnR1YWxCb2R5LnNjcm9sbFRvSW5kZXgoMCk7XHJcbiAgICAgICAgICB0aGlzLnZpcnR1YWxCb2R5LmNoZWNrVmlld3BvcnRTaXplKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZ2V0dGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudGFibGVEYXRhID0gZGF0YTtcclxuICAgICAgICB0aGlzLnNldENoZWNrZWQoZGF0YSk7XHJcbiAgICAgICAgdGhpcy5zZXRIZWFkQ2hlY2tib3hMaXN0KGRhdGEpO1xyXG4gICAgICAgIHRoaXMuc2V0RXhwYW5kKGRhdGEpO1xyXG4gICAgICAgIHRoaXMuc2V0SGVhZEV4cGFuZExpc3QoKTtcclxuICAgICAgICB0aGlzLnRvdGFsID0gdG90YWw7XHJcbiAgICAgICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0TWFudWFsKCkge1xyXG4gICAgaWYgKHRoaXMuZGF0YUlzRnVuYykgdGhpcy5nZXREYXRhQnlGdW5jKCk7XHJcbiAgfVxyXG5cclxuICBzZXRSb3dDaGVja2VkKCkge1xyXG4gICAgdGhpcy5yb3dDaGVja2VkID0gdGhpcy5jb2x1bW5zLmZpbmQoKHgpID0+IHgucm93Q2hlY2tlZCkgYXMgWFRhYmxlQ29sdW1uO1xyXG4gICAgdGhpcy5oZWFkQ2hlY2tib3hMaXN0ID0gdGhpcy5jb2x1bW5zLmZpbHRlcigoeCkgPT4geC50eXBlID09PSAnY2hlY2tib3gnICYmIHguaGVhZENoZWNrZWQpO1xyXG4gIH1cclxuXHJcbiAgc2V0Um93RXhwYW5kKCkge1xyXG4gICAgdGhpcy5yb3dFeHBhbmQgPSB0aGlzLmNvbHVtbnMuZmluZCgoeCkgPT4geC5yb3dFeHBhbmQpIGFzIFhUYWJsZUNvbHVtbjtcclxuICB9XHJcblxyXG4gIGlzRXhwYW5kQ29sdW1uKGNvbHVtbjogWFRhYmxlQ29sdW1uKSB7XHJcbiAgICBsZXQgZXhwYW5kQ29sdW1uID0gdGhpcy5jb2x1bW5zLmZpbmQoKHgpID0+IHguaWQgPT09IGNvbHVtbi5pZCAmJiB4LnR5cGUgPT09ICdleHBhbmQnKTtcclxuICAgIGlmIChleHBhbmRDb2x1bW4pIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBzZXRNZXJnZSgpIHtcclxuICAgIGlmICghdGhpcy5jZWxsQ29uZmlnKSByZXR1cm47XHJcbiAgICBjb25zdCBzZXRSdWxlID0gKHJ1bGU/OiBYVGFibGVDZWxsQ29uZmlnUnVsZSkgPT4ge1xyXG4gICAgICBpZiAoIXJ1bGUpIHJldHVybjtcclxuICAgICAgbGV0IGdyaWRUZW1wbGF0ZUNvbHVtbnMgPSAnJyxcclxuICAgICAgICBjZWxscyA9IFtdO1xyXG4gICAgICBpZiAoIXJ1bGUuZ3JpZFRlbXBsYXRlQ29sdW1ucykge1xyXG4gICAgICAgIGdyaWRUZW1wbGF0ZUNvbHVtbnMgPSBgJHt0aGlzLmNvbHVtbnNcclxuICAgICAgICAgIC5tYXAoKHgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHgud2lkdGgpIHJldHVybiB4LndpZHRoO1xyXG4gICAgICAgICAgICBpZiAoeC5mbGV4KSByZXR1cm4gYCR7eC5mbGV4fWZyYDtcclxuICAgICAgICAgICAgcmV0dXJuICcxZnInO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5qb2luKCcgJyl9YDtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIXJ1bGUuY2VsbHMpIHJldHVybjtcclxuICAgICAgY2VsbHMgPSBydWxlLmNlbGxzLm1hcCgoeSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGNvbCA9IHRoaXMuY29sdW1ucy5maW5kKCh6KSA9PiB6LmlkID09PSB5LmlkKTtcclxuICAgICAgICBpZiAoY29sKSB7XHJcbiAgICAgICAgICByZXR1cm4geyAuLi5jb2wsIC4uLnkgfSBhcyBYVGFibGVDZWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4geTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiB7IGdyaWRUZW1wbGF0ZUNvbHVtbnMsIGNlbGxzIH07XHJcbiAgICB9O1xyXG4gICAgdGhpcy5jZWxsQ29uZmlnLnRoZWFkID0gc2V0UnVsZSh0aGlzLmNlbGxDb25maWcudGhlYWQpO1xyXG4gICAgdGhpcy5jZWxsQ29uZmlnLnRib2R5ID0gc2V0UnVsZSh0aGlzLmNlbGxDb25maWcudGJvZHkpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlKGluZGV4OiBudW1iZXIpIHtcclxuICAgIHRoaXMuaW5kZXggPSBpbmRleDtcclxuICAgIHRoaXMuZGF0YUlzRnVuYyAmJiB0aGlzLmdldERhdGFCeUZ1bmMoKTtcclxuICAgIHRoaXMuaW5kZXhDaGFuZ2UuZW1pdChpbmRleCk7XHJcbiAgICB0aGlzLnJlc2V0U2Nyb2xsKCk7XHJcbiAgfVxyXG5cclxuICByZXNldFNjcm9sbCh4ID0gdHJ1ZSwgeSA9IHRydWUpIHtcclxuICAgIGlmICh0aGlzLmhhc1Njcm9sbFggJiYgeCkgdGhpcy52aXJ0dWFsQm9keT8uc2Nyb2xsVG8oeyBsZWZ0OiAwIH0pO1xyXG4gICAgaWYgKHRoaXMuaGFzU2Nyb2xsWSAmJiB5KSB0aGlzLnZpcnR1YWxCb2R5Py5zY3JvbGxUbyh7IHRvcDogMCB9KTtcclxuICB9XHJcblxyXG4gIHNldENoZWNrZWQoZGF0YTogWFRhYmxlUm93W10pIHtcclxuICAgIGxldCByZXN1bHQ6IFhUYWJsZVJvd1tdID0gW107XHJcbiAgICBpZiAoWElzRW1wdHkoZGF0YSkgfHwgIXRoaXMuY2hlY2tlZFJvdykgcmV0dXJuO1xyXG4gICAgZm9yIChsZXQga2V5IGluIHRoaXMuY2hlY2tlZFJvdykge1xyXG4gICAgICBjb25zdCBhcnIgPSB0aGlzLmNoZWNrZWRSb3dba2V5XTtcclxuICAgICAgZm9yIChsZXQgaXRlbSBvZiBkYXRhIGFzIGFueVtdKSB7XHJcbiAgICAgICAgaXRlbVtrZXldID0gYXJyLmluY2x1ZGVzKGl0ZW0uaWQpO1xyXG4gICAgICAgIHJlc3VsdCA9IFsuLi5yZXN1bHQsIGl0ZW1dO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDApIGRhdGEgPSBbLi4ucmVzdWx0XTtcclxuICB9XHJcblxyXG4gIHNldEhlYWRDaGVja2JveExpc3QoZGF0YTogWFRhYmxlUm93W10pIHtcclxuICAgIGlmIChYSXNFbXB0eShkYXRhKSB8fCAhdGhpcy5oZWFkQ2hlY2tib3hMaXN0KSByZXR1cm47XHJcbiAgICBmb3IgKGxldCBjb2x1bW4gb2YgdGhpcy5oZWFkQ2hlY2tib3hMaXN0KSB7XHJcbiAgICAgIHRoaXMuc2V0Q2hlY2tlZFZhbHVlcyhjb2x1bW4pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0RXhwYW5kKGRhdGE6IFhUYWJsZVJvd1tdKSB7XHJcbiAgICBjb25zdCBnZXRDaGlsZHJlbiA9IChub2RlOiBYVGFibGVSb3csIGxldmVsOiBudW1iZXIpID0+IHtcclxuICAgICAgbm9kZS5sZXZlbCA9IGxldmVsO1xyXG4gICAgICBub2RlLmV4cGFuZGVkID0gQm9vbGVhbih0aGlzLmV4cGFuZGVkQWxsKSB8fCBsZXZlbCA8PSBOdW1iZXIodGhpcy5leHBhbmRlZExldmVsKSB8fCB0aGlzLmV4cGFuZGVkLmluY2x1ZGVzKG5vZGUuaWQpO1xyXG4gICAgICBpZiAoWElzVW5kZWZpbmVkKG5vZGUuY2hpbGRyZW4pKSBub2RlLmNoaWxkcmVuID0gZGF0YS5maWx0ZXIoKHkpID0+IHkucGlkID09PSBub2RlLmlkKTtcclxuICAgICAgaWYgKFhJc1VuZGVmaW5lZChub2RlLmxlYWYpKSBub2RlLmxlYWYgPSAobm9kZS5jaGlsZHJlbj8ubGVuZ3RoIGFzIG51bWJlcikgPiAwO1xyXG4gICAgICBpZiAobm9kZS5sZWFmKSBub2RlLmNoaWxkcmVuPy5tYXAoKHkpID0+IGdldENoaWxkcmVuKHksIGxldmVsICsgMSkpO1xyXG4gICAgICByZXR1cm4gbm9kZTtcclxuICAgIH07XHJcbiAgICB0aGlzLnRyZWVUYWJsZURhdGEgPSBkYXRhXHJcbiAgICAgIC5maWx0ZXIoKHgpID0+IFhJc0VtcHR5KHgucGlkKSlcclxuICAgICAgLm1hcCgoeCwgaW5kZXgpID0+IHtcclxuICAgICAgICBpZiAoWElzVW5kZWZpbmVkKHguaWQpKSB4LmlkID0gaW5kZXggKyAxO1xyXG4gICAgICAgIHJldHVybiBnZXRDaGlsZHJlbih4LCAwKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRFeHBhbmRlZEFsbCgpIHtcclxuICAgIGlmICghdGhpcy50cmVlVGFibGUgfHwgdGhpcy50cmVlVGFibGVEYXRhPy5sZW5ndGggPT09IDApIHJldHVybjtcclxuICAgIGNvbnN0IHNldENoaWxkcmVuID0gKG5vZGVzOiBYVGFibGVSb3dbXSkgPT4ge1xyXG4gICAgICBpZiAoWElzRW1wdHkobm9kZXMpKSByZXR1cm47XHJcbiAgICAgIG5vZGVzLmZvckVhY2goKHgpID0+IHtcclxuICAgICAgICB4LmV4cGFuZGVkID0gQm9vbGVhbih0aGlzLmV4cGFuZGVkQWxsKTtcclxuICAgICAgICBzZXRDaGlsZHJlbih4LmNoaWxkcmVuIGFzIFhUYWJsZVJvd1tdKTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgc2V0Q2hpbGRyZW4odGhpcy50cmVlVGFibGVEYXRhKTtcclxuICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2V0SGVhZEV4cGFuZExpc3QoKSB7fVxyXG5cclxuICBjaGVja1NvcnQoc29ydDogWFNvcnRbXSkge1xyXG4gICAgaWYgKCF0aGlzLmRhdGFJc0Z1bmMpIHJldHVybjtcclxuICAgIGlmICh0eXBlb2YgdGhpcy5xdWVyeSA9PT0gJ3VuZGVmaW5lZCcpIHRoaXMucXVlcnkgPSB7fTtcclxuICAgIHRoaXMucXVlcnkuc29ydCA9IHNvcnQ7XHJcbiAgICB0aGlzLnF1ZXJ5Q2hhbmdlLmVtaXQodGhpcy5xdWVyeSk7XHJcbiAgICB0aGlzLmdldERhdGFCeUZ1bmMoKTtcclxuICB9XHJcblxyXG4gIGhlYWRDaGVja2VkKGNoZWNrZWQ6IGJvb2xlYW4sIGNvbHVtbjogWFRhYmxlQ29sdW1uKSB7XHJcbiAgICB0aGlzLnRhYmxlRGF0YS5mb3JFYWNoKCh4KSA9PiB7XHJcbiAgICAgIGlmICgheC5kaXNhYmxlZCkge1xyXG4gICAgICAgIHhbY29sdW1uLmlkXSA9IGNoZWNrZWQ7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRDaGVja2VkVmFsdWVzKGNvbHVtbik7XHJcbiAgICB0aGlzLmhlYWRDaGVja2JveENoYW5nZS5lbWl0KHsgcm93czogdGhpcy50YWJsZURhdGEsIGNoZWNrYm94OiB0aGlzLmNoZWNrZWRWYWx1ZXMgfSk7XHJcbiAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGJvZHlDaGVja2VkKF9jaGVja2VkOiBib29sZWFuLCBjb2x1bW46IFhUYWJsZUNvbHVtbiwgcm93OiBYVGFibGVSb3cpIHtcclxuICAgIHRoaXMuc2V0Q2hlY2tlZFZhbHVlcyhjb2x1bW4pO1xyXG4gICAgdGhpcy5ib2R5Q2hlY2tib3hDaGFuZ2UuZW1pdChyb3cpO1xyXG4gICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRDaGVja2VkVmFsdWVzKGNvbHVtbjogWFRhYmxlQ29sdW1uKSB7XHJcbiAgICBjb25zdCBub3REaXNhYmxlZCA9IHRoaXMudGFibGVEYXRhLmZpbHRlcigoeCkgPT4gIXguZGlzYWJsZWQpO1xyXG4gICAgY29uc3QgY291bnQgPSBub3REaXNhYmxlZC5sZW5ndGg7XHJcbiAgICBjb25zdCBjaGVja2VkTGVuID0gbm90RGlzYWJsZWQuZmlsdGVyKCh4KSA9PiB4W2NvbHVtbi5pZF0pLmxlbmd0aDtcclxuICAgIHRoaXMuY2hlY2tlZFZhbHVlc1tjb2x1bW4uaWRdID0gY291bnQgPT09IGNoZWNrZWRMZW4gJiYgY291bnQgIT09IDA7XHJcbiAgICB0aGlzLmNoZWNrZWRWYWx1ZXNbY29sdW1uLmlkICsgdGhpcy5pbmRldGVybWluYXRlXSA9IGNoZWNrZWRMZW4gPiAwICYmIGNoZWNrZWRMZW4gPCBjb3VudDtcclxuICB9XHJcblxyXG4gIGRldGVjdENoYW5nZXMoKSB7XHJcbiAgICB0aGlzLmJvZHlDaGFuZ2UgJiYgdGhpcy5ib2R5Q2hhbmdlKCk7XHJcbiAgICB0aGlzLnRoZWFkc0NoYW5nZXMoKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHRoZWFkc0NoYW5nZXMoKSB7XHJcbiAgICBpZiAodGhpcy50aGVhZHNDaGFuZ2UgJiYgdGhpcy50aGVhZHNDaGFuZ2UubGVuZ3RoID4gMCkge1xyXG4gICAgICBmb3IgKGxldCBpdGVtIG9mIHRoaXMudGhlYWRzQ2hhbmdlKSB7XHJcbiAgICAgICAgaXRlbSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjx0YWJsZVxyXG4gICN0YWJsZVxyXG4gIGNsYXNzPVwieC10YWJsZVwiXHJcbiAgW25nQ2xhc3NdPVwiY2xhc3NNYXBcIlxyXG4gIFt4LWxvYWRpbmddPVwibG9hZGluZyAmJiBnZXR0aW5nXCJcclxuICBbY2xhc3MueC10YWJsZS13cmFwLWJvcmRlci1oaWRkZW5dPVwiaGlkZGVuV3JhcEJvcmRlclwiXHJcbiAgW2NsYXNzLngtdGFibGUtc2Nyb2xsLWxlZnRdPVwiZ2V0U2Nyb2xsTGVmdFwiXHJcbiAgW2NsYXNzLngtdGFibGUtc2Nyb2xsLWxlZnQtbWF4XT1cInNjcm9sbExlZnRNYXhcIlxyXG4gIFtjbGFzcy54LXRhYmxlLXNjcm9sbC10b3BdPVwiZ2V0U2Nyb2xsVG9wXCJcclxuICBbY2xhc3MueC10YWJsZS1oYXMtc2Nyb2xsLXJpZ2h0XT1cInNjcm9sbFlXaWR0aFwiXHJcbiAgW2NsYXNzLngtdGFibGUtaGFzLXNjcm9sbC1ib3R0b21dPVwic2Nyb2xsWFdpZHRoXCJcclxuICBbY2xhc3MueC10YWJsZS1ib3JkZXJlZF09XCJib3JkZXJlZFwiXHJcbiAgW2NsYXNzLngtdGFibGUtdGQtYWRhcHRpb24taGVpZ2h0XT1cInJvd0hlaWdodCA9PSAwXCJcclxuICBbY2xhc3MueC10YWJsZS1jZWxsLWNvbmZpZ109XCJjZWxsQ29uZmlnXCJcclxuPlxyXG4gIDxjYXB0aW9uICNjYXB0aW9uIGNsYXNzPVwieC10YWJsZS1oZWFkZXJcIiAqbmdJZj1cImhlYWRlclwiIFtzdHlsZS5oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCIgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCI+XHJcbiAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwiaGVhZGVyXCI+e3sgaGVhZGVyIH19PC9uZy1jb250YWluZXI+XHJcbiAgPC9jYXB0aW9uPlxyXG4gIDx4LXRhYmxlLWhlYWRcclxuICAgICpuZ0lmPVwic2hvd0hlYWRlciAmJiAoaGVhZGVyUG9zaXRpb24gPT09ICd0b3AnIHx8IGhlYWRlclBvc2l0aW9uID09PSAndG9wLWJvdHRvbScpXCJcclxuICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxyXG4gICAgW3Jvd0hlaWdodF09XCJyb3dIZWlnaHRcIlxyXG4gICAgW2NvbHVtblRwbF09XCJoZWFkQ29sdW1uVHBsXCJcclxuICAgIFtzY3JvbGxZV2lkdGhdPVwic2Nyb2xsWVdpZHRoXCJcclxuICAgIFtzY3JvbGxYV2lkdGhdPVwic2Nyb2xsWFdpZHRoXCJcclxuICAgIFtjZWxsQ29uZmlnXT1cImNlbGxDb25maWc/LnRoZWFkXCJcclxuICAgIFtwb3NpdGlvbl09XCIndG9wJ1wiXHJcbiAgICBbdGFibGVdPVwidGhpc1wiXHJcbiAgPjwveC10YWJsZS1oZWFkPlxyXG4gIDx4LXRhYmxlLWJvZHlcclxuICAgIFtkYXRhXT1cInRyZWVUYWJsZSA/IHRyZWVUYWJsZURhdGEgOiB0YWJsZURhdGFcIlxyXG4gICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAgICBbaXRlbVNpemVdPVwiaXRlbVNpemVcIlxyXG4gICAgW3Jvd0hlaWdodF09XCJyb3dIZWlnaHRcIlxyXG4gICAgW2JvZHlIZWlnaHRdPVwiYm9keUhlaWdodFwiXHJcbiAgICBbY29sdW1uVHBsXT1cImJvZHlDb2x1bW5UcGxcIlxyXG4gICAgW2FsbG93U2VsZWN0Um93XT1cImFsbG93U2VsZWN0Um93XCJcclxuICAgIFt2aXJ0dWFsU2Nyb2xsXT1cInZpcnR1YWxTY3JvbGxcIlxyXG4gICAgW21pbkJ1ZmZlclB4XT1cIm1pbkJ1ZmZlclB4XCJcclxuICAgIFttYXhCdWZmZXJQeF09XCJtYXhCdWZmZXJQeFwiXHJcbiAgICBbYWRhcHRpb25IZWlnaHRdPVwiYWRhcHRpb25IZWlnaHRcIlxyXG4gICAgW2RvY1BlcmNlbnRdPVwiZG9jUGVyY2VudFwiXHJcbiAgICBbc2Nyb2xsXT1cInNjcm9sbFwiXHJcbiAgICBbcm93Q2xhc3NdPVwicm93Q2xhc3NcIlxyXG4gICAgW2NlbGxDb25maWddPVwiY2VsbENvbmZpZz8udGJvZHlcIlxyXG4gICAgW2V4cGFuZGVkQWxsXT1cImV4cGFuZGVkQWxsXCJcclxuICAgIFtleHBhbmRUcGxdPVwiZXhwYW5kVHBsXCJcclxuICAgIFsoYWN0aXZhdGVkUm93KV09XCJhY3RpdmF0ZWRSb3dcIlxyXG4gICAgKGFjdGl2YXRlZFJvd0NoYW5nZSk9XCJhY3RpdmF0ZWRSb3dDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcclxuICAgIFt0YWJsZV09XCJ0aGlzXCJcclxuICA+PC94LXRhYmxlLWJvZHk+XHJcbiAgPHgtdGFibGUtaGVhZFxyXG4gICAgKm5nSWY9XCJzaG93SGVhZGVyICYmIChoZWFkZXJQb3NpdGlvbiA9PT0gJ2JvdHRvbScgfHwgaGVhZGVyUG9zaXRpb24gPT09ICd0b3AtYm90dG9tJylcIlxyXG4gICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAgICBbcm93SGVpZ2h0XT1cInJvd0hlaWdodFwiXHJcbiAgICBbY29sdW1uVHBsXT1cImhlYWRDb2x1bW5UcGxcIlxyXG4gICAgW3Njcm9sbFlXaWR0aF09XCJzY3JvbGxZV2lkdGhcIlxyXG4gICAgW3Njcm9sbFhXaWR0aF09XCJzY3JvbGxYV2lkdGhcIlxyXG4gICAgW2NlbGxDb25maWddPVwiY2VsbENvbmZpZz8udGhlYWRcIlxyXG4gICAgW3Bvc2l0aW9uXT1cIidib3R0b20nXCJcclxuICAgIFt0YWJsZV09XCJ0aGlzXCJcclxuICA+PC94LXRhYmxlLWhlYWQ+XHJcbiAgPHgtdGFibGUtZm9vdCAqbmdJZj1cImZvb3RlclwiIFt0YWJsZV09XCJ0aGlzXCIgW2Zvb3Rlcl09XCJmb290ZXJcIiBbcm93SGVpZ2h0XT1cInJvd0hlaWdodFwiPjwveC10YWJsZS1mb290PlxyXG4gIDxkaXZcclxuICAgICpuZ0lmPVwiaGFzU3RpY2t5VG9wUmlnaHQoKVwiXHJcbiAgICAjc3RpY2t5VG9wUmlnaHRFbGVcclxuICAgIGNsYXNzPVwieC10YWJsZS1zdGlja3ktcmlnaHQtc2Nyb2xsXCJcclxuICAgIFtjbGFzcy54LXRhYmxlLWJvcmRlci1ib3R0b21dPVwiaGVhZFNlYXJjaFRwbFwiXHJcbiAgICBbc3R5bGUudG9wLnB4XT1cImdldFN0aWNreVRvcFNjcm9sbFRvcFwiXHJcbiAgICBbc3R5bGUud2lkdGgucHhdPVwic2Nyb2xsWVdpZHRoXCJcclxuICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICAgIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodFwiXHJcbiAgPjwvZGl2PlxyXG4gIDxkaXZcclxuICAgICpuZ0lmPVwiaGFzU3RpY2t5VG9wUmlnaHQoKSAmJiBoZWFkU2VhcmNoVHBsXCJcclxuICAgIGNsYXNzPVwieC10YWJsZS1zdGlja3ktcmlnaHQtc2Nyb2xsXCJcclxuICAgIFtzdHlsZS50b3AucHhdPVwiZ2V0U3RpY2t5VG9wU2Nyb2xsVG9wICsgZ2V0U3RpY2t5VG9wUmlnaHRFbGVIZWlnaHRcIlxyXG4gICAgW3N0eWxlLndpZHRoLnB4XT1cInNjcm9sbFlXaWR0aFwiXHJcbiAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodFwiXHJcbiAgICBbc3R5bGUubWluLWhlaWdodC5weF09XCJnZXRSb3dIZWlnaHRcIlxyXG4gID48L2Rpdj5cclxuICA8ZGl2XHJcbiAgICAqbmdJZj1cImhhc1N0aWNreUJvdHRvbVJpZ2h0KClcIlxyXG4gICAgI3N0aWNreUJvdHRvbVJpZ2h0RWxlXHJcbiAgICBjbGFzcz1cIngtdGFibGUtc3RpY2t5LXJpZ2h0LXNjcm9sbFwiXHJcbiAgICBbc3R5bGUuYm90dG9tLnB4XT1cImdldFN0aWNreUJvdHRvbVNjcm9sbFRvcFwiXHJcbiAgICBbc3R5bGUud2lkdGgucHhdPVwic2Nyb2xsWVdpZHRoXCJcclxuICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICAgIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodFwiXHJcbiAgPjwvZGl2PlxyXG4gIDxkaXZcclxuICAgICpuZ0lmPVwiaGFzU3RpY2t5Qm90dG9tUmlnaHQoKSAmJiBoZWFkU2VhcmNoVHBsXCJcclxuICAgIGNsYXNzPVwieC10YWJsZS1zdGlja3ktcmlnaHQtc2Nyb2xsXCJcclxuICAgIFtjbGFzcy54LXRhYmxlLWJvcmRlci1ib3R0b21dPVwiaGVhZFNlYXJjaFRwbFwiXHJcbiAgICBbc3R5bGUuYm90dG9tLnB4XT1cImdldFN0aWNreUJvdHRvbVNjcm9sbFRvcCArIGdldFN0aWNreUJvdHRvbVJpZ2h0RWxlSGVpZ2h0XCJcclxuICAgIFtzdHlsZS53aWR0aC5weF09XCJzY3JvbGxZV2lkdGhcIlxyXG4gICAgW3N0eWxlLmhlaWdodC5weF09XCJnZXRSb3dIZWlnaHRcIlxyXG4gICAgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICA+PC9kaXY+XHJcbjwvdGFibGU+XHJcbjx4LXBhZ2luYXRpb25cclxuICAjcGFnaW5hdGlvblxyXG4gICpuZ0lmPVwic2hvd1BhZ2luYXRpb24gJiYgc2l6ZVwiXHJcbiAgWyhpbmRleCldPVwiaW5kZXhcIlxyXG4gIFsoc2l6ZSldPVwic2l6ZVwiXHJcbiAgWyhxdWVyeSldPVwicXVlcnlcIlxyXG4gIFt0b3RhbF09XCJ0b3RhbFwiXHJcbiAgKGluZGV4Q2hhbmdlKT1cImNoYW5nZSgkZXZlbnQpXCJcclxuICAoc2l6ZUNoYW5nZSk9XCJjaGFuZ2UoJGV2ZW50KVwiXHJcbiAgW3Nob3dFbGxpcHNpc109XCJzaG93RWxsaXBzaXNcIlxyXG4gIFtzaG93VG90YWxdPVwic2hvd1RvdGFsXCJcclxuICBbc3BhY2VdPVwic3BhY2VcIlxyXG4gIFtoaWRkZW5Cb3JkZXJdPVwiaGlkZGVuUGFnaW5hdGlvbkJvcmRlciFcIlxyXG4gIFtzaG93U2l6ZV09XCJzaG93U2l6ZVwiXHJcbiAgW3Nob3dKdW1wXT1cInNob3dKdW1wXCJcclxuICBbanVtcFdpZHRoXT1cImp1bXBXaWR0aFwiXHJcbiAgW3Nob3dJbnB1dFNpemVdPVwic2hvd0lucHV0U2l6ZVwiXHJcbiAgW2lucHV0U2l6ZVdpZHRoXT1cImlucHV0U2l6ZVdpZHRoXCJcclxuICBbc2l6ZURhdGFdPVwic2l6ZURhdGFcIlxyXG4gIFtzaXplV2lkdGhdPVwic2l6ZVdpZHRoXCJcclxuICBbcGFnZUxpbmtTaXplXT1cInBhZ2VMaW5rU2l6ZVwiXHJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICBbdG90YWxUcGxdPVwidG90YWxUcGxcIlxyXG4gIFtzaW1wbGVdPVwic2ltcGxlXCJcclxuICBbc2ltcGxlSW5kZXhXaWR0aF09XCJzaW1wbGVJbmRleFdpZHRoXCJcclxuPlxyXG48L3gtcGFnaW5hdGlvbj5cclxuIl19
367
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFJakIsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBNkQsTUFBTSxrQkFBa0IsQ0FBQztBQUMzSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBK0MsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHbEgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7QUFTL0IsTUFBTSxPQUFPLGVBQWdCLFNBQVEsY0FBYztJQUNqRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDbkQsQ0FBQztJQUNELElBQUkscUJBQXFCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEUs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QjtnQkFDSyxvQkFBb0I7c0JBQXRELFNBQVM7dUJBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIFJlbmRlcmVyMixcclxuICBFbGVtZW50UmVmLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkLFxyXG4gIE9uRGVzdHJveVxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYVGFibGVQcmVmaXgsIFhUYWJsZVByb3BlcnR5LCBYVGFibGVDb2x1bW4sIFhUYWJsZVJvdywgWFRhYmxlQ2VsbCwgWFRhYmxlQ2VsbENvbmZpZ1J1bGUgfSBmcm9tICcuL3RhYmxlLnByb3BlcnR5JztcclxuaW1wb3J0IHsgWElzQ2hhbmdlLCBYSXNFbXB0eSwgWFJlc3VsdExpc3QsIFhOdW1iZXIsIFhTb3J0LCBYQ29uZmlnU2VydmljZSwgWElzVW5kZWZpbmVkIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xyXG5pbXBvcnQgeyBYUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3BhZ2luYXRpb24nO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYVGFibGVQcmVmaXh9YCxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFRhYmxlQ29tcG9uZW50IGV4dGVuZHMgWFRhYmxlUHJvcGVydHkgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgZ2V0IGdldFNjcm9sbExlZnQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zY3JvbGxMZWZ0ID4gMDtcclxuICB9XHJcbiAgZ2V0IGdldFNjcm9sbFRvcCgpIHtcclxuICAgIHJldHVybiB0aGlzLnNjcm9sbFRvcCA+IDA7XHJcbiAgfVxyXG4gIGdldCBnZXRSb3dIZWlnaHQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yb3dIZWlnaHQgPT0gMCA/ICcnIDogdGhpcy5yb3dIZWlnaHQ7XHJcbiAgfVxyXG4gIGdldCBnZXRTdGlja3lUb3BTY3JvbGxUb3AoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50Y2FwdGlvbiA/IHRoaXMudGNhcHRpb24ubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgOiAwO1xyXG4gIH1cclxuICBnZXQgZ2V0U3RpY2t5Qm90dG9tU2Nyb2xsVG9wKCkge1xyXG4gICAgbGV0IHRvcCA9IDA7XHJcbiAgICBpZiAodGhpcy5mb290ZXIgJiYgdGhpcy50Zm9vdCkge1xyXG4gICAgICB0b3AgKz0gdGhpcy50Zm9vdD8ubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQgKyAxO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRvcDtcclxuICB9XHJcbiAgZ2V0IGdldFN0aWNreVRvcFJpZ2h0RWxlSGVpZ2h0KCkge1xyXG4gICAgaWYgKHRoaXMuc3RpY2t5VG9wUmlnaHRFbGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc3RpY2t5VG9wUmlnaHRFbGUubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IGdldFN0aWNreUJvdHRvbVJpZ2h0RWxlSGVpZ2h0KCkge1xyXG4gICAgaWYgKHRoaXMuc3RpY2t5Qm90dG9tUmlnaHRFbGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc3RpY2t5Qm90dG9tUmlnaHRFbGUubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuICB9XHJcbiAgdGNhcHRpb24hOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICB0aGVhZHM6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+W10gPSBbXTtcclxuICB0Zm9vdCE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIHZpcnR1YWxCb2R5ITogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0O1xyXG4gIHRoZWFkc0NoYW5nZTogKCgpID0+IHZvaWQpW10gPSBbXTtcclxuICBib2R5Q2hhbmdlITogKCkgPT4gdm9pZDtcclxuICBzY3JvbGxDb250ZW50RWxlITogSFRNTEVsZW1lbnQ7XHJcbiAgaGFzU2Nyb2xsWSA9IGZhbHNlO1xyXG4gIHNjcm9sbFlXaWR0aCA9IDA7XHJcbiAgaGFzU2Nyb2xsWCA9IGZhbHNlO1xyXG4gIHNjcm9sbFhIZWlnaHQgPSAwO1xyXG4gIHNjcm9sbFhXaWR0aCE6IG51bWJlciB8IG51bGw7XHJcbiAgc2Nyb2xsTGVmdCA9IDA7XHJcbiAgc2Nyb2xsTGVmdE1heCA9IGZhbHNlO1xyXG4gIHNjcm9sbFRvcCA9IDA7XHJcbiAgcm93Q2hlY2tlZCE6IFhUYWJsZUNvbHVtbjtcclxuICBoZWFkQ2hlY2tib3hMaXN0ITogWFRhYmxlQ29sdW1uW107XHJcbiAgcm93RXhwYW5kITogWFRhYmxlQ29sdW1uO1xyXG4gIGhlYWRFeHBhbmRMaXN0ITogWFRhYmxlQ29sdW1uW107XHJcbiAgZGF0YUlzRnVuYyA9IGZhbHNlO1xyXG4gIGdldHRpbmcgPSBmYWxzZTtcclxuICB0YWJsZURhdGE6IFhUYWJsZVJvd1tdID0gW107XHJcbiAgdHJlZVRhYmxlRGF0YTogWFRhYmxlUm93W10gPSBbXTtcclxuICBjaGVja2VkVmFsdWVzOiB7IFtwcm9wOiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcclxuICBpbmRldGVybWluYXRlID0gJyQkaW5kZXRlcm1pbmF0ZSc7XHJcbiAgQFZpZXdDaGlsZCgndGFibGUnKSB0YWJsZSE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoJ2NhcHRpb24nKSBjYXB0aW9uITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgQFZpZXdDaGlsZCgncGFnaW5hdGlvbicpIHBhZ2luYXRpb24hOiBYUGFnaW5hdGlvbkNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdzdGlja3lUb3BSaWdodEVsZScpIHN0aWNreVRvcFJpZ2h0RWxlITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgQFZpZXdDaGlsZCgnc3RpY2t5Qm90dG9tUmlnaHRFbGUnKSBzdGlja3lCb3R0b21SaWdodEVsZSE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcclxuICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHVibGljIGNvbmZpZ1NlcnZpY2U6IFhDb25maWdTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XHJcbiAgICB0aGlzLnNldFJvd0NoZWNrZWQoKTtcclxuICAgIHRoaXMuc2V0Um93RXhwYW5kKCk7XHJcbiAgICB0aGlzLnNldFBhZ2luYXRpb25Qb3NpdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoc2ltcGxlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgY29uc3QgeyBkYXRhLCBjaGVja2VkUm93LCBjb2x1bW5zLCBhY3RpdmF0ZWRSb3csIG1hbnVhbCwgc2hvd1BhZ2luYXRpb24sIGV4cGFuZGVkQWxsLCBjZWxsQ29uZmlnIH0gPSBzaW1wbGVzO1xyXG4gICAgWElzQ2hhbmdlKGV4cGFuZGVkQWxsKSAmJiB0aGlzLnNldEV4cGFuZGVkQWxsKCk7XHJcbiAgICBYSXNDaGFuZ2UoZGF0YSwgY2hlY2tlZFJvdykgJiYgdGhpcy5zZXREYXRhKCk7XHJcbiAgICBpZiAoWElzQ2hhbmdlKGNvbHVtbnMpKSB7XHJcbiAgICAgIHRoaXMuc2V0Um93Q2hlY2tlZCgpO1xyXG4gICAgICB0aGlzLnNldFJvd0V4cGFuZCgpO1xyXG4gICAgfVxyXG4gICAgWElzQ2hhbmdlKGNvbHVtbnMsIGFjdGl2YXRlZFJvdywgc2hvd1BhZ2luYXRpb24pICYmIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIFhJc0NoYW5nZShtYW51YWwpICYmIHRoaXMuc2V0TWFudWFsKCk7XHJcbiAgICBYSXNDaGFuZ2UoY2VsbENvbmZpZykgJiYgdGhpcy5zZXRNZXJnZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLnRjYXB0aW9uID0gdGhpcy5jYXB0aW9uO1xyXG4gIH1cclxuXHJcbiAgc2V0Q2xhc3NNYXAoKSB7XHJcbiAgICB0aGlzLmNsYXNzTWFwID0ge1xyXG4gICAgICBbYCR7WFRhYmxlUHJlZml4fS1yb3ctc2l6ZS0ke3RoaXMucm93U2l6ZX1gXTogIVhJc0VtcHR5KHRoaXMucm93U2l6ZSlcclxuICAgIH07XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRQYWdpbmF0aW9uUG9zaXRpb24oKSB7XHJcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBgeC10YWJsZS0ke3RoaXMucGFnaW5hdGlvblBvc2l0aW9ufWApO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RpY2t5KGNvbHVtbjogWFRhYmxlQ29sdW1uIHwgWFRhYmxlQ2VsbCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0U3RpY2t5TGVmdChjb2x1bW4pIHx8IHRoaXMuZ2V0U3RpY2t5UmlnaHQoY29sdW1uKTtcclxuICB9XHJcblxyXG4gIGdldFN0aWNreUxlZnQoY29sdW1uOiBYVGFibGVDb2x1bW4gfCBYVGFibGVDZWxsKSB7XHJcbiAgICByZXR1cm4gTnVtYmVyKGNvbHVtbi5sZWZ0KSA+PSAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RpY2t5TGVmdExhc3QoY29sdW1uOiBYVGFibGVDb2x1bW4gfCBYVGFibGVDZWxsKSB7XHJcbiAgICBsZXQgbGVmdHMgPSB0aGlzLmNvbHVtbnMuZmlsdGVyKCh4KSA9PiBOdW1iZXIoeC5sZWZ0KSA+PSAwKTtcclxuICAgIGlmIChsZWZ0cy5sZW5ndGggPT09IDApIHJldHVybiBmYWxzZTtcclxuICAgIHJldHVybiBsZWZ0c1tsZWZ0cy5sZW5ndGggLSAxXS5pZCA9PT0gY29sdW1uLmlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RpY2t5UmlnaHQoY29sdW1uOiBYVGFibGVDb2x1bW4gfCBYVGFibGVDZWxsKSB7XHJcbiAgICByZXR1cm4gTnVtYmVyKGNvbHVtbi5yaWdodCkgPj0gMDtcclxuICB9XHJcblxyXG4gIGdldFN0aWNreVJpZ2h0Rmlyc3QoY29sdW1uOiBYVGFibGVDb2x1bW4gfCBYVGFibGVDZWxsKSB7XHJcbiAgICBsZXQgcmlnaHRzID0gdGhpcy5jb2x1bW5zLmZpbHRlcigoeCkgPT4gTnVtYmVyKHgucmlnaHQpID49IDApO1xyXG4gICAgaWYgKHJpZ2h0cy5sZW5ndGggPT09IDApIHJldHVybiBmYWxzZTtcclxuICAgIHJldHVybiByaWdodHNbMF0uaWQgPT09IGNvbHVtbi5pZDtcclxuICB9XHJcblxyXG4gIGhhc1N0aWNreVRvcFJpZ2h0KCkge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5zaG93SGVhZGVyICYmXHJcbiAgICAgICh0aGlzLmhlYWRlclBvc2l0aW9uID09PSAndG9wJyB8fCB0aGlzLmhlYWRlclBvc2l0aW9uID09PSAndG9wLWJvdHRvbScpICYmXHJcbiAgICAgIHRoaXMuY29sdW1ucy5zb21lKCh4KSA9PiBOdW1iZXIoeC5yaWdodCkgPj0gMClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBoYXNTdGlja3lUb3BSaWdodFNlYXJjaCgpIHtcclxuICAgIHJldHVybiB0aGlzLmhlYWRTZWFyY2hUcGwgPyB0cnVlIDogZmFsc2U7XHJcbiAgfVxyXG5cclxuICBoYXNTdGlja3lCb3R0b21SaWdodCgpIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuc2hvd0hlYWRlciAmJlxyXG4gICAgICAodGhpcy5oZWFkZXJQb3NpdGlvbiA9PT0gJ2JvdHRvbScgfHwgdGhpcy5oZWFkZXJQb3NpdGlvbiA9PT0gJ3RvcC1ib3R0b20nKSAmJlxyXG4gICAgICB0aGlzLmNvbHVtbnMuc29tZSgoeCkgPT4gTnVtYmVyKHgucmlnaHQpID49IDApXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW5kZXgoaW5kZXg6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIChOdW1iZXIodGhpcy5pbmRleCkgLSAxKSAqIE51bWJlcih0aGlzLnNpemUpICsgaW5kZXggKyAxO1xyXG4gIH1cclxuXHJcbiAgc2V0RGF0YSgpIHtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuZGF0YSkpIHtcclxuICAgICAgdGhpcy5kYXRhSXNGdW5jID0gZmFsc2U7XHJcbiAgICAgIHRoaXMudGFibGVEYXRhID0gdGhpcy5kYXRhO1xyXG4gICAgICB0aGlzLnNldENoZWNrZWQodGhpcy5kYXRhKTtcclxuICAgICAgdGhpcy5zZXRIZWFkQ2hlY2tib3hMaXN0KHRoaXMuZGF0YSk7XHJcbiAgICAgIHRoaXMuc2V0RXhwYW5kKHRoaXMuZGF0YSk7XHJcbiAgICAgIHRoaXMuc2V0SGVhZEV4cGFuZExpc3QoKTtcclxuICAgICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZGF0YSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XHJcbiAgICAgIHRoaXMuZGF0YUlzRnVuYyA9IHRydWU7XHJcbiAgICAgIHRoaXMuZ2V0RGF0YUJ5RnVuYygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0RGF0YUJ5RnVuYygpIHtcclxuICAgIGlmICghdGhpcy5tYW51YWwpIHJldHVybjtcclxuICAgIHRoaXMuZ2V0dGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgKHRoaXMuZGF0YSBhcyBGdW5jdGlvbikodGhpcy5pbmRleCwgdGhpcy5zaXplLCB0aGlzLnF1ZXJ5KVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSlcclxuICAgICAgLnN1YnNjcmliZSgoeDogWFJlc3VsdExpc3Q8WFRhYmxlUm93PikgPT4ge1xyXG4gICAgICAgIGxldCBbZGF0YSwgdG90YWxdID0gW3gubGlzdCBhcyBYVGFibGVSb3dbXSwgeC50b3RhbCBhcyBYTnVtYmVyXTtcclxuICAgICAgICBpZiAodGhpcy52aXJ0dWFsQm9keSkge1xyXG4gICAgICAgICAgdGhpcy52aXJ0dWFsQm9keS5zY3JvbGxUb0luZGV4KDApO1xyXG4gICAgICAgICAgdGhpcy52aXJ0dWFsQm9keS5jaGVja1ZpZXdwb3J0U2l6ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmdldHRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IGRhdGE7XHJcbiAgICAgICAgdGhpcy5zZXRDaGVja2VkKGRhdGEpO1xyXG4gICAgICAgIHRoaXMuc2V0SGVhZENoZWNrYm94TGlzdChkYXRhKTtcclxuICAgICAgICB0aGlzLnNldEV4cGFuZChkYXRhKTtcclxuICAgICAgICB0aGlzLnNldEhlYWRFeHBhbmRMaXN0KCk7XHJcbiAgICAgICAgdGhpcy50b3RhbCA9IHRvdGFsO1xyXG4gICAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldE1hbnVhbCgpIHtcclxuICAgIGlmICh0aGlzLmRhdGFJc0Z1bmMpIHRoaXMuZ2V0RGF0YUJ5RnVuYygpO1xyXG4gIH1cclxuXHJcbiAgc2V0Um93Q2hlY2tlZCgpIHtcclxuICAgIHRoaXMucm93Q2hlY2tlZCA9IHRoaXMuY29sdW1ucy5maW5kKCh4KSA9PiB4LnJvd0NoZWNrZWQpIGFzIFhUYWJsZUNvbHVtbjtcclxuICAgIHRoaXMuaGVhZENoZWNrYm94TGlzdCA9IHRoaXMuY29sdW1ucy5maWx0ZXIoKHgpID0+IHgudHlwZSA9PT0gJ2NoZWNrYm94JyAmJiB4LmhlYWRDaGVja2VkKTtcclxuICB9XHJcblxyXG4gIHNldFJvd0V4cGFuZCgpIHtcclxuICAgIHRoaXMucm93RXhwYW5kID0gdGhpcy5jb2x1bW5zLmZpbmQoKHgpID0+IHgucm93RXhwYW5kKSBhcyBYVGFibGVDb2x1bW47XHJcbiAgfVxyXG5cclxuICBpc0V4cGFuZENvbHVtbihjb2x1bW46IFhUYWJsZUNvbHVtbikge1xyXG4gICAgbGV0IGV4cGFuZENvbHVtbiA9IHRoaXMuY29sdW1ucy5maW5kKCh4KSA9PiB4LmlkID09PSBjb2x1bW4uaWQgJiYgeC50eXBlID09PSAnZXhwYW5kJyk7XHJcbiAgICBpZiAoZXhwYW5kQ29sdW1uKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgc2V0TWVyZ2UoKSB7XHJcbiAgICBpZiAoIXRoaXMuY2VsbENvbmZpZykgcmV0dXJuO1xyXG4gICAgY29uc3Qgc2V0UnVsZSA9IChydWxlPzogWFRhYmxlQ2VsbENvbmZpZ1J1bGUpID0+IHtcclxuICAgICAgaWYgKCFydWxlKSByZXR1cm47XHJcbiAgICAgIGxldCBncmlkVGVtcGxhdGVDb2x1bW5zID0gJycsXHJcbiAgICAgICAgY2VsbHMgPSBbXTtcclxuICAgICAgaWYgKCFydWxlLmdyaWRUZW1wbGF0ZUNvbHVtbnMpIHtcclxuICAgICAgICBncmlkVGVtcGxhdGVDb2x1bW5zID0gYCR7dGhpcy5jb2x1bW5zXHJcbiAgICAgICAgICAubWFwKCh4KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh4LndpZHRoKSByZXR1cm4geC53aWR0aDtcclxuICAgICAgICAgICAgaWYgKHguZmxleCkgcmV0dXJuIGAke3guZmxleH1mcmA7XHJcbiAgICAgICAgICAgIHJldHVybiAnMWZyJztcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAuam9pbignICcpfWA7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCFydWxlLmNlbGxzKSByZXR1cm47XHJcbiAgICAgIGNlbGxzID0gcnVsZS5jZWxscy5tYXAoKHkpID0+IHtcclxuICAgICAgICBjb25zdCBjb2wgPSB0aGlzLmNvbHVtbnMuZmluZCgoeikgPT4gei5pZCA9PT0geS5pZCk7XHJcbiAgICAgICAgaWYgKGNvbCkge1xyXG4gICAgICAgICAgcmV0dXJuIHsgLi4uY29sLCAuLi55IH0gYXMgWFRhYmxlQ2VsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHk7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4geyBncmlkVGVtcGxhdGVDb2x1bW5zLCBjZWxscyB9O1xyXG4gICAgfTtcclxuICAgIHRoaXMuY2VsbENvbmZpZy50aGVhZCA9IHNldFJ1bGUodGhpcy5jZWxsQ29uZmlnLnRoZWFkKTtcclxuICAgIHRoaXMuY2VsbENvbmZpZy50Ym9keSA9IHNldFJ1bGUodGhpcy5jZWxsQ29uZmlnLnRib2R5KTtcclxuICB9XHJcblxyXG4gIGNoYW5nZShpbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmluZGV4ID0gaW5kZXg7XHJcbiAgICB0aGlzLmRhdGFJc0Z1bmMgJiYgdGhpcy5nZXREYXRhQnlGdW5jKCk7XHJcbiAgICB0aGlzLmluZGV4Q2hhbmdlLmVtaXQoaW5kZXgpO1xyXG4gICAgdGhpcy5yZXNldFNjcm9sbCgpO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRTY3JvbGwoeCA9IHRydWUsIHkgPSB0cnVlKSB7XHJcbiAgICBpZiAodGhpcy5oYXNTY3JvbGxYICYmIHgpIHRoaXMudmlydHVhbEJvZHk/LnNjcm9sbFRvKHsgbGVmdDogMCB9KTtcclxuICAgIGlmICh0aGlzLmhhc1Njcm9sbFkgJiYgeSkgdGhpcy52aXJ0dWFsQm9keT8uc2Nyb2xsVG8oeyB0b3A6IDAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRDaGVja2VkKGRhdGE6IFhUYWJsZVJvd1tdKSB7XHJcbiAgICBsZXQgcmVzdWx0OiBYVGFibGVSb3dbXSA9IFtdO1xyXG4gICAgaWYgKFhJc0VtcHR5KGRhdGEpIHx8ICF0aGlzLmNoZWNrZWRSb3cpIHJldHVybjtcclxuICAgIGZvciAobGV0IGtleSBpbiB0aGlzLmNoZWNrZWRSb3cpIHtcclxuICAgICAgY29uc3QgYXJyID0gdGhpcy5jaGVja2VkUm93W2tleV07XHJcbiAgICAgIGZvciAobGV0IGl0ZW0gb2YgZGF0YSBhcyBhbnlbXSkge1xyXG4gICAgICAgIGl0ZW1ba2V5XSA9IGFyci5pbmNsdWRlcyhpdGVtLmlkKTtcclxuICAgICAgICByZXN1bHQgPSBbLi4ucmVzdWx0LCBpdGVtXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHJlc3VsdC5sZW5ndGggPiAwKSBkYXRhID0gWy4uLnJlc3VsdF07XHJcbiAgfVxyXG5cclxuICBzZXRIZWFkQ2hlY2tib3hMaXN0KGRhdGE6IFhUYWJsZVJvd1tdKSB7XHJcbiAgICBpZiAoWElzRW1wdHkoZGF0YSkgfHwgIXRoaXMuaGVhZENoZWNrYm94TGlzdCkgcmV0dXJuO1xyXG4gICAgZm9yIChsZXQgY29sdW1uIG9mIHRoaXMuaGVhZENoZWNrYm94TGlzdCkge1xyXG4gICAgICB0aGlzLnNldENoZWNrZWRWYWx1ZXMoY29sdW1uKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldEV4cGFuZChkYXRhOiBYVGFibGVSb3dbXSkge1xyXG4gICAgY29uc3QgZ2V0Q2hpbGRyZW4gPSAobm9kZTogWFRhYmxlUm93LCBsZXZlbDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIG5vZGUubGV2ZWwgPSBsZXZlbDtcclxuICAgICAgbm9kZS5leHBhbmRlZCA9IEJvb2xlYW4odGhpcy5leHBhbmRlZEFsbCkgfHwgbGV2ZWwgPD0gTnVtYmVyKHRoaXMuZXhwYW5kZWRMZXZlbCkgfHwgdGhpcy5leHBhbmRlZC5pbmNsdWRlcyhub2RlLmlkKTtcclxuICAgICAgaWYgKFhJc1VuZGVmaW5lZChub2RlLmNoaWxkcmVuKSkgbm9kZS5jaGlsZHJlbiA9IGRhdGEuZmlsdGVyKCh5KSA9PiB5LnBpZCA9PT0gbm9kZS5pZCk7XHJcbiAgICAgIGlmIChYSXNVbmRlZmluZWQobm9kZS5sZWFmKSkgbm9kZS5sZWFmID0gKG5vZGUuY2hpbGRyZW4/Lmxlbmd0aCBhcyBudW1iZXIpID4gMDtcclxuICAgICAgaWYgKG5vZGUubGVhZikgbm9kZS5jaGlsZHJlbj8ubWFwKCh5KSA9PiBnZXRDaGlsZHJlbih5LCBsZXZlbCArIDEpKTtcclxuICAgICAgcmV0dXJuIG5vZGU7XHJcbiAgICB9O1xyXG4gICAgdGhpcy50cmVlVGFibGVEYXRhID0gZGF0YVxyXG4gICAgICAuZmlsdGVyKCh4KSA9PiBYSXNFbXB0eSh4LnBpZCkpXHJcbiAgICAgIC5tYXAoKHgsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgaWYgKFhJc1VuZGVmaW5lZCh4LmlkKSkgeC5pZCA9IGluZGV4ICsgMTtcclxuICAgICAgICByZXR1cm4gZ2V0Q2hpbGRyZW4oeCwgMCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0RXhwYW5kZWRBbGwoKSB7XHJcbiAgICBpZiAoIXRoaXMudHJlZVRhYmxlIHx8IHRoaXMudHJlZVRhYmxlRGF0YT8ubGVuZ3RoID09PSAwKSByZXR1cm47XHJcbiAgICBjb25zdCBzZXRDaGlsZHJlbiA9IChub2RlczogWFRhYmxlUm93W10pID0+IHtcclxuICAgICAgaWYgKFhJc0VtcHR5KG5vZGVzKSkgcmV0dXJuO1xyXG4gICAgICBub2Rlcy5mb3JFYWNoKCh4KSA9PiB7XHJcbiAgICAgICAgeC5leHBhbmRlZCA9IEJvb2xlYW4odGhpcy5leHBhbmRlZEFsbCk7XHJcbiAgICAgICAgc2V0Q2hpbGRyZW4oeC5jaGlsZHJlbiBhcyBYVGFibGVSb3dbXSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIHNldENoaWxkcmVuKHRoaXMudHJlZVRhYmxlRGF0YSk7XHJcbiAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHNldEhlYWRFeHBhbmRMaXN0KCkge31cclxuXHJcbiAgY2hlY2tTb3J0KHNvcnQ6IFhTb3J0W10pIHtcclxuICAgIGlmICghdGhpcy5kYXRhSXNGdW5jKSByZXR1cm47XHJcbiAgICBpZiAodHlwZW9mIHRoaXMucXVlcnkgPT09ICd1bmRlZmluZWQnKSB0aGlzLnF1ZXJ5ID0ge307XHJcbiAgICB0aGlzLnF1ZXJ5LnNvcnQgPSBzb3J0O1xyXG4gICAgdGhpcy5xdWVyeUNoYW5nZS5lbWl0KHRoaXMucXVlcnkpO1xyXG4gICAgdGhpcy5nZXREYXRhQnlGdW5jKCk7XHJcbiAgfVxyXG5cclxuICBoZWFkQ2hlY2tlZChjaGVja2VkOiBib29sZWFuLCBjb2x1bW46IFhUYWJsZUNvbHVtbikge1xyXG4gICAgdGhpcy50YWJsZURhdGEuZm9yRWFjaCgoeCkgPT4ge1xyXG4gICAgICBpZiAoIXguZGlzYWJsZWQpIHtcclxuICAgICAgICB4W2NvbHVtbi5pZF0gPSBjaGVja2VkO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0Q2hlY2tlZFZhbHVlcyhjb2x1bW4pO1xyXG4gICAgdGhpcy5oZWFkQ2hlY2tib3hDaGFuZ2UuZW1pdCh7IHJvd3M6IHRoaXMudGFibGVEYXRhLCBjaGVja2JveDogdGhpcy5jaGVja2VkVmFsdWVzIH0pO1xyXG4gICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBib2R5Q2hlY2tlZChfY2hlY2tlZDogYm9vbGVhbiwgY29sdW1uOiBYVGFibGVDb2x1bW4sIHJvdzogWFRhYmxlUm93KSB7XHJcbiAgICB0aGlzLnNldENoZWNrZWRWYWx1ZXMoY29sdW1uKTtcclxuICAgIHRoaXMuYm9keUNoZWNrYm94Q2hhbmdlLmVtaXQocm93KTtcclxuICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2V0Q2hlY2tlZFZhbHVlcyhjb2x1bW46IFhUYWJsZUNvbHVtbikge1xyXG4gICAgY29uc3Qgbm90RGlzYWJsZWQgPSB0aGlzLnRhYmxlRGF0YS5maWx0ZXIoKHgpID0+ICF4LmRpc2FibGVkKTtcclxuICAgIGNvbnN0IGNvdW50ID0gbm90RGlzYWJsZWQubGVuZ3RoO1xyXG4gICAgY29uc3QgY2hlY2tlZExlbiA9IG5vdERpc2FibGVkLmZpbHRlcigoeCkgPT4geFtjb2x1bW4uaWRdKS5sZW5ndGg7XHJcbiAgICB0aGlzLmNoZWNrZWRWYWx1ZXNbY29sdW1uLmlkXSA9IGNvdW50ID09PSBjaGVja2VkTGVuICYmIGNvdW50ICE9PSAwO1xyXG4gICAgdGhpcy5jaGVja2VkVmFsdWVzW2NvbHVtbi5pZCArIHRoaXMuaW5kZXRlcm1pbmF0ZV0gPSBjaGVja2VkTGVuID4gMCAmJiBjaGVja2VkTGVuIDwgY291bnQ7XHJcbiAgfVxyXG5cclxuICBkZXRlY3RDaGFuZ2VzKCkge1xyXG4gICAgdGhpcy5ib2R5Q2hhbmdlICYmIHRoaXMuYm9keUNoYW5nZSgpO1xyXG4gICAgdGhpcy50aGVhZHNDaGFuZ2VzKCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB0aGVhZHNDaGFuZ2VzKCkge1xyXG4gICAgaWYgKHRoaXMudGhlYWRzQ2hhbmdlICYmIHRoaXMudGhlYWRzQ2hhbmdlLmxlbmd0aCA+IDApIHtcclxuICAgICAgZm9yIChsZXQgaXRlbSBvZiB0aGlzLnRoZWFkc0NoYW5nZSkge1xyXG4gICAgICAgIGl0ZW0oKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8dGFibGVcclxuICAjdGFibGVcclxuICBjbGFzcz1cIngtdGFibGVcIlxyXG4gIFtuZ0NsYXNzXT1cImNsYXNzTWFwXCJcclxuICBbeC1sb2FkaW5nXT1cImxvYWRpbmcgJiYgZ2V0dGluZ1wiXHJcbiAgW2NsYXNzLngtdGFibGUtd3JhcC1ib3JkZXItaGlkZGVuXT1cImhpZGRlbldyYXBCb3JkZXJcIlxyXG4gIFtjbGFzcy54LXRhYmxlLXNjcm9sbC1sZWZ0XT1cImdldFNjcm9sbExlZnRcIlxyXG4gIFtjbGFzcy54LXRhYmxlLXNjcm9sbC1sZWZ0LW1heF09XCJzY3JvbGxMZWZ0TWF4XCJcclxuICBbY2xhc3MueC10YWJsZS1zY3JvbGwtdG9wXT1cImdldFNjcm9sbFRvcFwiXHJcbiAgW2NsYXNzLngtdGFibGUtaGFzLXNjcm9sbC1yaWdodF09XCJzY3JvbGxZV2lkdGhcIlxyXG4gIFtjbGFzcy54LXRhYmxlLWhhcy1zY3JvbGwtYm90dG9tXT1cInNjcm9sbFhXaWR0aFwiXHJcbiAgW2NsYXNzLngtdGFibGUtYm9yZGVyZWRdPVwiYm9yZGVyZWRcIlxyXG4gIFtjbGFzcy54LXRhYmxlLXRkLWFkYXB0aW9uLWhlaWdodF09XCJyb3dIZWlnaHQgPT0gMFwiXHJcbiAgW2NsYXNzLngtdGFibGUtY2VsbC1jb25maWddPVwiY2VsbENvbmZpZ1wiXHJcbj5cclxuICA8Y2FwdGlvbiAjY2FwdGlvbiBjbGFzcz1cIngtdGFibGUtaGVhZGVyXCIgKm5nSWY9XCJoZWFkZXJcIiBbc3R5bGUuaGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodFwiIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cImhlYWRlclwiPnt7IGhlYWRlciB9fTwvbmctY29udGFpbmVyPlxyXG4gIDwvY2FwdGlvbj5cclxuICA8eC10YWJsZS1oZWFkXHJcbiAgICAqbmdJZj1cInNob3dIZWFkZXIgJiYgKGhlYWRlclBvc2l0aW9uID09PSAndG9wJyB8fCBoZWFkZXJQb3NpdGlvbiA9PT0gJ3RvcC1ib3R0b20nKVwiXHJcbiAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcclxuICAgIFtyb3dIZWlnaHRdPVwicm93SGVpZ2h0XCJcclxuICAgIFtjb2x1bW5UcGxdPVwiaGVhZENvbHVtblRwbFwiXHJcbiAgICBbc2Nyb2xsWVdpZHRoXT1cInNjcm9sbFlXaWR0aFwiXHJcbiAgICBbc2Nyb2xsWFdpZHRoXT1cInNjcm9sbFhXaWR0aFwiXHJcbiAgICBbY2VsbENvbmZpZ109XCJjZWxsQ29uZmlnPy50aGVhZFwiXHJcbiAgICBbcG9zaXRpb25dPVwiJ3RvcCdcIlxyXG4gICAgW3RhYmxlXT1cInRoaXNcIlxyXG4gID48L3gtdGFibGUtaGVhZD5cclxuICA8eC10YWJsZS1ib2R5XHJcbiAgICBbZGF0YV09XCJ0cmVlVGFibGUgPyB0cmVlVGFibGVEYXRhIDogdGFibGVEYXRhXCJcclxuICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxyXG4gICAgW2l0ZW1TaXplXT1cIml0ZW1TaXplXCJcclxuICAgIFtyb3dIZWlnaHRdPVwicm93SGVpZ2h0XCJcclxuICAgIFtib2R5SGVpZ2h0XT1cImJvZHlIZWlnaHRcIlxyXG4gICAgW2NvbHVtblRwbF09XCJib2R5Q29sdW1uVHBsXCJcclxuICAgIFthbGxvd1NlbGVjdFJvd109XCJhbGxvd1NlbGVjdFJvd1wiXHJcbiAgICBbdmlydHVhbFNjcm9sbF09XCJ2aXJ0dWFsU2Nyb2xsXCJcclxuICAgIFttaW5CdWZmZXJQeF09XCJtaW5CdWZmZXJQeFwiXHJcbiAgICBbbWF4QnVmZmVyUHhdPVwibWF4QnVmZmVyUHhcIlxyXG4gICAgW2FkYXB0aW9uSGVpZ2h0XT1cImFkYXB0aW9uSGVpZ2h0XCJcclxuICAgIFtkb2NQZXJjZW50XT1cImRvY1BlcmNlbnRcIlxyXG4gICAgW3Njcm9sbF09XCJzY3JvbGxcIlxyXG4gICAgW3Jvd0NsYXNzXT1cInJvd0NsYXNzXCJcclxuICAgIFtjZWxsQ29uZmlnXT1cImNlbGxDb25maWc/LnRib2R5XCJcclxuICAgIFtleHBhbmRlZEFsbF09XCJleHBhbmRlZEFsbFwiXHJcbiAgICBbZXhwYW5kVHBsXT1cImV4cGFuZFRwbFwiXHJcbiAgICBbKGFjdGl2YXRlZFJvdyldPVwiYWN0aXZhdGVkUm93XCJcclxuICAgIChhY3RpdmF0ZWRSb3dDaGFuZ2UpPVwiYWN0aXZhdGVkUm93Q2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgICBbdGFibGVdPVwidGhpc1wiXHJcbiAgPjwveC10YWJsZS1ib2R5PlxyXG4gIDx4LXRhYmxlLWhlYWRcclxuICAgICpuZ0lmPVwic2hvd0hlYWRlciAmJiAoaGVhZGVyUG9zaXRpb24gPT09ICdib3R0b20nIHx8IGhlYWRlclBvc2l0aW9uID09PSAndG9wLWJvdHRvbScpXCJcclxuICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxyXG4gICAgW3Jvd0hlaWdodF09XCJyb3dIZWlnaHRcIlxyXG4gICAgW2NvbHVtblRwbF09XCJoZWFkQ29sdW1uVHBsXCJcclxuICAgIFtzY3JvbGxZV2lkdGhdPVwic2Nyb2xsWVdpZHRoXCJcclxuICAgIFtzY3JvbGxYV2lkdGhdPVwic2Nyb2xsWFdpZHRoXCJcclxuICAgIFtjZWxsQ29uZmlnXT1cImNlbGxDb25maWc/LnRoZWFkXCJcclxuICAgIFtwb3NpdGlvbl09XCInYm90dG9tJ1wiXHJcbiAgICBbdGFibGVdPVwidGhpc1wiXHJcbiAgPjwveC10YWJsZS1oZWFkPlxyXG4gIDx4LXRhYmxlLWZvb3QgKm5nSWY9XCJmb290ZXJcIiBbdGFibGVdPVwidGhpc1wiIFtmb290ZXJdPVwiZm9vdGVyXCIgW3Jvd0hlaWdodF09XCJyb3dIZWlnaHRcIj48L3gtdGFibGUtZm9vdD5cclxuICA8ZGl2XHJcbiAgICAqbmdJZj1cImhhc1N0aWNreVRvcFJpZ2h0KClcIlxyXG4gICAgI3N0aWNreVRvcFJpZ2h0RWxlXHJcbiAgICBjbGFzcz1cIngtdGFibGUtc3RpY2t5LXJpZ2h0LXNjcm9sbFwiXHJcbiAgICBbY2xhc3MueC10YWJsZS1ib3JkZXItYm90dG9tXT1cImhlYWRTZWFyY2hUcGxcIlxyXG4gICAgW3N0eWxlLnRvcC5weF09XCJnZXRTdGlja3lUb3BTY3JvbGxUb3BcIlxyXG4gICAgW3N0eWxlLndpZHRoLnB4XT1cInNjcm9sbFlXaWR0aFwiXHJcbiAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodFwiXHJcbiAgICBbc3R5bGUubWluLWhlaWdodC5weF09XCJnZXRSb3dIZWlnaHRcIlxyXG4gID48L2Rpdj5cclxuICA8ZGl2XHJcbiAgICAqbmdJZj1cImhhc1N0aWNreVRvcFJpZ2h0KCkgJiYgaGVhZFNlYXJjaFRwbFwiXHJcbiAgICBjbGFzcz1cIngtdGFibGUtc3RpY2t5LXJpZ2h0LXNjcm9sbFwiXHJcbiAgICBbc3R5bGUudG9wLnB4XT1cImdldFN0aWNreVRvcFNjcm9sbFRvcCArIGdldFN0aWNreVRvcFJpZ2h0RWxlSGVpZ2h0XCJcclxuICAgIFtzdHlsZS53aWR0aC5weF09XCJzY3JvbGxZV2lkdGhcIlxyXG4gICAgW3N0eWxlLmhlaWdodC5weF09XCJnZXRSb3dIZWlnaHRcIlxyXG4gICAgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICA+PC9kaXY+XHJcbiAgPGRpdlxyXG4gICAgKm5nSWY9XCJoYXNTdGlja3lCb3R0b21SaWdodCgpXCJcclxuICAgICNzdGlja3lCb3R0b21SaWdodEVsZVxyXG4gICAgY2xhc3M9XCJ4LXRhYmxlLXN0aWNreS1yaWdodC1zY3JvbGxcIlxyXG4gICAgW3N0eWxlLmJvdHRvbS5weF09XCJnZXRTdGlja3lCb3R0b21TY3JvbGxUb3BcIlxyXG4gICAgW3N0eWxlLndpZHRoLnB4XT1cInNjcm9sbFlXaWR0aFwiXHJcbiAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodFwiXHJcbiAgICBbc3R5bGUubWluLWhlaWdodC5weF09XCJnZXRSb3dIZWlnaHRcIlxyXG4gID48L2Rpdj5cclxuICA8ZGl2XHJcbiAgICAqbmdJZj1cImhhc1N0aWNreUJvdHRvbVJpZ2h0KCkgJiYgaGVhZFNlYXJjaFRwbFwiXHJcbiAgICBjbGFzcz1cIngtdGFibGUtc3RpY2t5LXJpZ2h0LXNjcm9sbFwiXHJcbiAgICBbY2xhc3MueC10YWJsZS1ib3JkZXItYm90dG9tXT1cImhlYWRTZWFyY2hUcGxcIlxyXG4gICAgW3N0eWxlLmJvdHRvbS5weF09XCJnZXRTdGlja3lCb3R0b21TY3JvbGxUb3AgKyBnZXRTdGlja3lCb3R0b21SaWdodEVsZUhlaWdodFwiXHJcbiAgICBbc3R5bGUud2lkdGgucHhdPVwic2Nyb2xsWVdpZHRoXCJcclxuICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICAgIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodFwiXHJcbiAgPjwvZGl2PlxyXG48L3RhYmxlPlxyXG48eC1wYWdpbmF0aW9uXHJcbiAgI3BhZ2luYXRpb25cclxuICAqbmdJZj1cInNob3dQYWdpbmF0aW9uICYmIHNpemVcIlxyXG4gIFsoaW5kZXgpXT1cImluZGV4XCJcclxuICBbKHNpemUpXT1cInNpemVcIlxyXG4gIFsocXVlcnkpXT1cInF1ZXJ5XCJcclxuICBbdG90YWxdPVwidG90YWxcIlxyXG4gIChpbmRleENoYW5nZSk9XCJjaGFuZ2UoJGV2ZW50KVwiXHJcbiAgKHNpemVDaGFuZ2UpPVwiY2hhbmdlKCRldmVudClcIlxyXG4gIFtzaG93RWxsaXBzaXNdPVwic2hvd0VsbGlwc2lzXCJcclxuICBbc2hvd1RvdGFsXT1cInNob3dUb3RhbFwiXHJcbiAgW3NwYWNlXT1cInNwYWNlXCJcclxuICBbaGlkZGVuQm9yZGVyXT1cImhpZGRlblBhZ2luYXRpb25Cb3JkZXIhXCJcclxuICBbc2hvd1NpemVdPVwic2hvd1NpemVcIlxyXG4gIFtzaG93SnVtcF09XCJzaG93SnVtcFwiXHJcbiAgW2p1bXBXaWR0aF09XCJqdW1wV2lkdGhcIlxyXG4gIFtzaG93SW5wdXRTaXplXT1cInNob3dJbnB1dFNpemVcIlxyXG4gIFtpbnB1dFNpemVXaWR0aF09XCJpbnB1dFNpemVXaWR0aFwiXHJcbiAgW3NpemVEYXRhXT1cInNpemVEYXRhXCJcclxuICBbc2l6ZVdpZHRoXT1cInNpemVXaWR0aFwiXHJcbiAgW3BhZ2VMaW5rU2l6ZV09XCJwYWdlTGlua1NpemVcIlxyXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgW3RvdGFsVHBsXT1cInRvdGFsVHBsXCJcclxuICBbc2ltcGxlXT1cInNpbXBsZVwiXHJcbiAgW3NpbXBsZUluZGV4V2lkdGhdPVwic2ltcGxlSW5kZXhXaWR0aFwiXHJcbj5cclxuPC94LXBhZ2luYXRpb24+XHJcbiJdfQ==
@@ -17,9 +17,9 @@ import { XButtonModule } from '@ng-nest/ui/button';
17
17
  import { DragDropModule } from '@angular/cdk/drag-drop';
18
18
  import { XDragModule } from '@ng-nest/ui/drag';
19
19
  import * as i0 from "@angular/core";
20
- class XTableModule {
21
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: XTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
22
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: XTableModule, declarations: [XTableComponent,
20
+ export class XTableModule {
21
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
22
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.2", ngImport: i0, type: XTableModule, declarations: [XTableComponent,
23
23
  XTableProperty,
24
24
  XTableHeadComponent,
25
25
  XTableHeadProperty,
@@ -38,7 +38,7 @@ class XTableModule {
38
38
  XEmptyModule,
39
39
  XLoadingModule,
40
40
  XDragModule], exports: [XTableComponent] }); }
41
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: XTableModule, imports: [CommonModule,
41
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XTableModule, imports: [CommonModule,
42
42
  FormsModule,
43
43
  XPaginationModule,
44
44
  XOutletModule,
@@ -51,8 +51,7 @@ class XTableModule {
51
51
  XLoadingModule,
52
52
  XDragModule] }); }
53
53
  }
54
- export { XTableModule };
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: XTableModule, decorators: [{
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XTableModule, decorators: [{
56
55
  type: NgModule,
57
56
  args: [{
58
57
  declarations: [
@@ -82,4 +81,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
82
81
  ]
83
82
  }]
84
83
  }] });
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdGFibGUvdGFibGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsY0FBYyxFQUNkLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ25CLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUUvQyxNQTJCYSxZQUFZO2tJQUFaLFlBQVk7bUlBQVosWUFBWSxpQkF6QnJCLGVBQWU7WUFDZixjQUFjO1lBQ2QsbUJBQW1CO1lBQ25CLGtCQUFrQjtZQUNsQixtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLG1CQUFtQjtZQUNuQixrQkFBa0IsYUFJbEIsWUFBWTtZQUNaLFdBQVc7WUFDWCxpQkFBaUI7WUFDakIsYUFBYTtZQUNiLGVBQWU7WUFDZixXQUFXO1lBQ1gsYUFBYTtZQUNiLGVBQWU7WUFDZixjQUFjO1lBQ2QsWUFBWTtZQUNaLGNBQWM7WUFDZCxXQUFXLGFBYkgsZUFBZTttSUFnQmQsWUFBWSxZQWRyQixZQUFZO1lBQ1osV0FBVztZQUNYLGlCQUFpQjtZQUNqQixhQUFhO1lBQ2IsZUFBZTtZQUNmLFdBQVc7WUFDWCxhQUFhO1lBQ2IsZUFBZTtZQUNmLGNBQWM7WUFDZCxZQUFZO1lBQ1osY0FBYztZQUNkLFdBQVc7O1NBR0YsWUFBWTs0RkFBWixZQUFZO2tCQTNCeEIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osZUFBZTt3QkFDZixjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixrQkFBa0I7cUJBQ25CO29CQUNELE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQztvQkFDMUIsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxpQkFBaUI7d0JBQ2pCLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixjQUFjO3dCQUNkLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxXQUFXO3FCQUNaO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgWFBhZ2luYXRpb25Nb2R1bGUgfSBmcm9tICdAbmctbmVzdC91aS9wYWdpbmF0aW9uJztcclxuaW1wb3J0IHsgWE91dGxldE1vZHVsZSB9IGZyb20gJ0BuZy1uZXN0L3VpL291dGxldCc7XHJcbmltcG9ydCB7IFhJY29uTW9kdWxlIH0gZnJvbSAnQG5nLW5lc3QvdWkvaWNvbic7XHJcbmltcG9ydCB7IFNjcm9sbGluZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xyXG5pbXBvcnQgeyBYRW1wdHlNb2R1bGUgfSBmcm9tICdAbmctbmVzdC91aS9lbXB0eSc7XHJcbmltcG9ydCB7IFhDaGVja2JveE1vZHVsZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NoZWNrYm94JztcclxuaW1wb3J0IHsgWExvYWRpbmdNb2R1bGUgfSBmcm9tICdAbmctbmVzdC91aS9sb2FkaW5nJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7XHJcbiAgWFRhYmxlUHJvcGVydHksXHJcbiAgWFRhYmxlSGVhZFByb3BlcnR5LFxyXG4gIFhUYWJsZUJvZHlQcm9wZXJ0eSxcclxuICBYVGFibGVGb290UHJvcGVydHlcclxufSBmcm9tICcuL3RhYmxlLnByb3BlcnR5JztcclxuaW1wb3J0IHsgWFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBYVGFibGVIZWFkQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS1oZWFkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFhUYWJsZUJvZHlDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLWJvZHkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWFRhYmxlRm9vdENvbXBvbmVudCB9IGZyb20gJy4vdGFibGUtZm9vdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQG5nLW5lc3QvdWkvYnV0dG9uJztcclxuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgWERyYWdNb2R1bGUgfSBmcm9tICdAbmctbmVzdC91aS9kcmFnJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBYVGFibGVDb21wb25lbnQsXHJcbiAgICBYVGFibGVQcm9wZXJ0eSxcclxuICAgIFhUYWJsZUhlYWRDb21wb25lbnQsXHJcbiAgICBYVGFibGVIZWFkUHJvcGVydHksXHJcbiAgICBYVGFibGVCb2R5Q29tcG9uZW50LFxyXG4gICAgWFRhYmxlQm9keVByb3BlcnR5LFxyXG4gICAgWFRhYmxlRm9vdENvbXBvbmVudCxcclxuICAgIFhUYWJsZUZvb3RQcm9wZXJ0eVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1hUYWJsZUNvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBYUGFnaW5hdGlvbk1vZHVsZSxcclxuICAgIFhPdXRsZXRNb2R1bGUsXHJcbiAgICBYQ2hlY2tib3hNb2R1bGUsXHJcbiAgICBYSWNvbk1vZHVsZSxcclxuICAgIFhCdXR0b25Nb2R1bGUsXHJcbiAgICBTY3JvbGxpbmdNb2R1bGUsXHJcbiAgICBEcmFnRHJvcE1vZHVsZSxcclxuICAgIFhFbXB0eU1vZHVsZSxcclxuICAgIFhMb2FkaW5nTW9kdWxlLFxyXG4gICAgWERyYWdNb2R1bGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYVGFibGVNb2R1bGUge31cclxuIl19
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdGFibGUvdGFibGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsY0FBYyxFQUNkLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ25CLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQTZCL0MsTUFBTSxPQUFPLFlBQVk7aUlBQVosWUFBWTtrSUFBWixZQUFZLGlCQXpCckIsZUFBZTtZQUNmLGNBQWM7WUFDZCxtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLG1CQUFtQjtZQUNuQixrQkFBa0I7WUFDbEIsbUJBQW1CO1lBQ25CLGtCQUFrQixhQUlsQixZQUFZO1lBQ1osV0FBVztZQUNYLGlCQUFpQjtZQUNqQixhQUFhO1lBQ2IsZUFBZTtZQUNmLFdBQVc7WUFDWCxhQUFhO1lBQ2IsZUFBZTtZQUNmLGNBQWM7WUFDZCxZQUFZO1lBQ1osY0FBYztZQUNkLFdBQVcsYUFiSCxlQUFlO2tJQWdCZCxZQUFZLFlBZHJCLFlBQVk7WUFDWixXQUFXO1lBQ1gsaUJBQWlCO1lBQ2pCLGFBQWE7WUFDYixlQUFlO1lBQ2YsV0FBVztZQUNYLGFBQWE7WUFDYixlQUFlO1lBQ2YsY0FBYztZQUNkLFlBQVk7WUFDWixjQUFjO1lBQ2QsV0FBVzs7MkZBR0YsWUFBWTtrQkEzQnhCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3FCQUNuQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7b0JBQzFCLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsaUJBQWlCO3dCQUNqQixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCxhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsV0FBVztxQkFDWjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFhQYWdpbmF0aW9uTW9kdWxlIH0gZnJvbSAnQG5nLW5lc3QvdWkvcGFnaW5hdGlvbic7XHJcbmltcG9ydCB7IFhPdXRsZXRNb2R1bGUgfSBmcm9tICdAbmctbmVzdC91aS9vdXRsZXQnO1xyXG5pbXBvcnQgeyBYSWNvbk1vZHVsZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2ljb24nO1xyXG5pbXBvcnQgeyBTY3JvbGxpbmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcclxuaW1wb3J0IHsgWEVtcHR5TW9kdWxlIH0gZnJvbSAnQG5nLW5lc3QvdWkvZW1wdHknO1xyXG5pbXBvcnQgeyBYQ2hlY2tib3hNb2R1bGUgfSBmcm9tICdAbmctbmVzdC91aS9jaGVja2JveCc7XHJcbmltcG9ydCB7IFhMb2FkaW5nTW9kdWxlIH0gZnJvbSAnQG5nLW5lc3QvdWkvbG9hZGluZyc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gIFhUYWJsZVByb3BlcnR5LFxyXG4gIFhUYWJsZUhlYWRQcm9wZXJ0eSxcclxuICBYVGFibGVCb2R5UHJvcGVydHksXHJcbiAgWFRhYmxlRm9vdFByb3BlcnR5XHJcbn0gZnJvbSAnLi90YWJsZS5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vdGFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWFRhYmxlSGVhZENvbXBvbmVudCB9IGZyb20gJy4vdGFibGUtaGVhZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBYVGFibGVCb2R5Q29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS1ib2R5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFhUYWJsZUZvb3RDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLWZvb3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2J1dHRvbic7XHJcbmltcG9ydCB7IERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IFhEcmFnTW9kdWxlIH0gZnJvbSAnQG5nLW5lc3QvdWkvZHJhZyc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgWFRhYmxlQ29tcG9uZW50LFxyXG4gICAgWFRhYmxlUHJvcGVydHksXHJcbiAgICBYVGFibGVIZWFkQ29tcG9uZW50LFxyXG4gICAgWFRhYmxlSGVhZFByb3BlcnR5LFxyXG4gICAgWFRhYmxlQm9keUNvbXBvbmVudCxcclxuICAgIFhUYWJsZUJvZHlQcm9wZXJ0eSxcclxuICAgIFhUYWJsZUZvb3RDb21wb25lbnQsXHJcbiAgICBYVGFibGVGb290UHJvcGVydHlcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtYVGFibGVDb21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgWFBhZ2luYXRpb25Nb2R1bGUsXHJcbiAgICBYT3V0bGV0TW9kdWxlLFxyXG4gICAgWENoZWNrYm94TW9kdWxlLFxyXG4gICAgWEljb25Nb2R1bGUsXHJcbiAgICBYQnV0dG9uTW9kdWxlLFxyXG4gICAgU2Nyb2xsaW5nTW9kdWxlLFxyXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXHJcbiAgICBYRW1wdHlNb2R1bGUsXHJcbiAgICBYTG9hZGluZ01vZHVsZSxcclxuICAgIFhEcmFnTW9kdWxlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFRhYmxlTW9kdWxlIHt9XHJcbiJdfQ==