@ng-nest/ui 18.0.1 → 18.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (429) hide show
  1. package/affix/affix.property.d.ts +16 -0
  2. package/alert/alert.property.d.ts +174 -3
  3. package/anchor/anchor.property.d.ts +49 -0
  4. package/avatar/avatar.component.d.ts +4 -4
  5. package/avatar/avatar.property.d.ts +6 -6
  6. package/button/button.component.d.ts +5 -2
  7. package/calendar/calendar.component.d.ts +1 -0
  8. package/collapse/collapse.component.d.ts +3 -0
  9. package/empty/empty.property.d.ts +1 -1
  10. package/esm2022/affix/affix.component.mjs +3 -3
  11. package/esm2022/affix/affix.module.mjs +4 -4
  12. package/esm2022/affix/affix.property.mjs +20 -4
  13. package/esm2022/alert/alert.component.mjs +5 -5
  14. package/esm2022/alert/alert.module.mjs +4 -4
  15. package/esm2022/alert/alert.property.mjs +178 -7
  16. package/esm2022/anchor/anchor-inner.component.mjs +3 -3
  17. package/esm2022/anchor/anchor.component.mjs +3 -3
  18. package/esm2022/anchor/anchor.module.mjs +4 -4
  19. package/esm2022/anchor/anchor.property.mjs +56 -7
  20. package/esm2022/api/api.component.mjs +3 -3
  21. package/esm2022/api/api.module.mjs +4 -4
  22. package/esm2022/auto-complete/auto-complete-portal.component.mjs +3 -3
  23. package/esm2022/auto-complete/auto-complete.component.mjs +3 -3
  24. package/esm2022/auto-complete/auto-complete.module.mjs +4 -4
  25. package/esm2022/auto-complete/auto-complete.property.mjs +3 -3
  26. package/esm2022/avatar/avatar-group.component.mjs +3 -3
  27. package/esm2022/avatar/avatar.component.mjs +13 -11
  28. package/esm2022/avatar/avatar.module.mjs +4 -4
  29. package/esm2022/avatar/avatar.property.mjs +13 -13
  30. package/esm2022/back-top/back-top.component.mjs +3 -3
  31. package/esm2022/back-top/back-top.module.mjs +4 -4
  32. package/esm2022/back-top/back-top.property.mjs +3 -3
  33. package/esm2022/badge/badge.component.mjs +3 -3
  34. package/esm2022/badge/badge.module.mjs +4 -4
  35. package/esm2022/badge/badge.property.mjs +3 -3
  36. package/esm2022/base-form/base-form.module.mjs +4 -4
  37. package/esm2022/base-form/base-form.property.mjs +6 -6
  38. package/esm2022/button/button.component.mjs +10 -5
  39. package/esm2022/button/button.module.mjs +4 -4
  40. package/esm2022/button/button.property.mjs +6 -6
  41. package/esm2022/button/buttons.component.mjs +3 -3
  42. package/esm2022/calendar/calendar.component.mjs +10 -7
  43. package/esm2022/calendar/calendar.module.mjs +4 -4
  44. package/esm2022/calendar/calendar.property.mjs +3 -3
  45. package/esm2022/card/card.component.mjs +3 -3
  46. package/esm2022/card/card.module.mjs +4 -4
  47. package/esm2022/card/card.property.mjs +3 -3
  48. package/esm2022/carousel/carousel-panel.component.mjs +3 -3
  49. package/esm2022/carousel/carousel.component.mjs +3 -3
  50. package/esm2022/carousel/carousel.module.mjs +4 -4
  51. package/esm2022/carousel/carousel.property.mjs +6 -6
  52. package/esm2022/cascade/cascade-portal.component.mjs +3 -3
  53. package/esm2022/cascade/cascade.component.mjs +3 -3
  54. package/esm2022/cascade/cascade.module.mjs +4 -4
  55. package/esm2022/cascade/cascade.property.mjs +3 -3
  56. package/esm2022/checkbox/checkbox.component.mjs +5 -5
  57. package/esm2022/checkbox/checkbox.module.mjs +4 -4
  58. package/esm2022/checkbox/checkbox.property.mjs +3 -3
  59. package/esm2022/collapse/collapse-panel.component.mjs +3 -3
  60. package/esm2022/collapse/collapse.component.mjs +15 -4
  61. package/esm2022/collapse/collapse.module.mjs +4 -4
  62. package/esm2022/collapse/collapse.property.mjs +6 -6
  63. package/esm2022/color/color.component.mjs +3 -3
  64. package/esm2022/color/color.module.mjs +4 -4
  65. package/esm2022/color/color.property.mjs +3 -3
  66. package/esm2022/color-picker/color-picker-portal.component.mjs +3 -3
  67. package/esm2022/color-picker/color-picker.component.mjs +5 -5
  68. package/esm2022/color-picker/color-picker.module.mjs +4 -4
  69. package/esm2022/color-picker/color-picker.property.mjs +3 -3
  70. package/esm2022/comment/comment-reply.component.mjs +3 -3
  71. package/esm2022/comment/comment.component.mjs +3 -3
  72. package/esm2022/comment/comment.module.mjs +4 -4
  73. package/esm2022/comment/comment.property.mjs +6 -6
  74. package/esm2022/container/aside.component.mjs +3 -3
  75. package/esm2022/container/container.component.mjs +3 -3
  76. package/esm2022/container/container.module.mjs +4 -4
  77. package/esm2022/container/container.property.mjs +12 -12
  78. package/esm2022/container/footer.component.mjs +3 -3
  79. package/esm2022/container/header.component.mjs +3 -3
  80. package/esm2022/container/main.component.mjs +3 -3
  81. package/esm2022/core/config/config.service.mjs +3 -3
  82. package/esm2022/core/services/http.service.mjs +3 -3
  83. package/esm2022/core/services/preloading-strategy.service.mjs +3 -3
  84. package/esm2022/core/services/storage.service.mjs +3 -3
  85. package/esm2022/core/theme/theme.service.mjs +3 -3
  86. package/esm2022/crumb/crumb.component.mjs +3 -3
  87. package/esm2022/crumb/crumb.module.mjs +4 -4
  88. package/esm2022/crumb/crumb.property.mjs +3 -3
  89. package/esm2022/date-picker/date-picker-portal.component.mjs +3 -3
  90. package/esm2022/date-picker/date-picker.component.mjs +3 -3
  91. package/esm2022/date-picker/date-picker.module.mjs +4 -4
  92. package/esm2022/date-picker/date-picker.property.mjs +18 -18
  93. package/esm2022/date-picker/date-quarter.pipe.mjs +3 -3
  94. package/esm2022/date-picker/date-range-portal.component.mjs +3 -3
  95. package/esm2022/date-picker/date-range.component.mjs +5 -5
  96. package/esm2022/date-picker/picker-date.component.mjs +3 -3
  97. package/esm2022/date-picker/picker-month.component.mjs +3 -3
  98. package/esm2022/date-picker/picker-quarter.component.mjs +3 -3
  99. package/esm2022/date-picker/picker-year.component.mjs +3 -3
  100. package/esm2022/description/description-item.component.mjs +3 -3
  101. package/esm2022/description/description.component.mjs +3 -3
  102. package/esm2022/description/description.module.mjs +4 -4
  103. package/esm2022/description/description.property.mjs +6 -6
  104. package/esm2022/dialog/dialog-container.component.mjs +3 -3
  105. package/esm2022/dialog/dialog-portal.component.mjs +3 -3
  106. package/esm2022/dialog/dialog-portal.directives.mjs +18 -18
  107. package/esm2022/dialog/dialog.component.mjs +3 -3
  108. package/esm2022/dialog/dialog.module.mjs +4 -4
  109. package/esm2022/dialog/dialog.property.mjs +6 -6
  110. package/esm2022/dialog/dialog.service.mjs +3 -3
  111. package/esm2022/doc/doc.component.mjs +3 -3
  112. package/esm2022/doc/doc.module.mjs +4 -4
  113. package/esm2022/drag/drag.directive.mjs +3 -3
  114. package/esm2022/drag/drag.module.mjs +4 -4
  115. package/esm2022/drag/drag.property.mjs +3 -3
  116. package/esm2022/drawer/drawer-container.component.mjs +3 -3
  117. package/esm2022/drawer/drawer-portal.component.mjs +3 -3
  118. package/esm2022/drawer/drawer-portal.directives.mjs +9 -9
  119. package/esm2022/drawer/drawer.component.mjs +3 -3
  120. package/esm2022/drawer/drawer.module.mjs +4 -4
  121. package/esm2022/drawer/drawer.property.mjs +6 -6
  122. package/esm2022/drawer/drawer.service.mjs +3 -3
  123. package/esm2022/dropdown/dropdown-portal.component.mjs +3 -3
  124. package/esm2022/dropdown/dropdown.component.mjs +3 -3
  125. package/esm2022/dropdown/dropdown.module.mjs +4 -4
  126. package/esm2022/dropdown/dropdown.property.mjs +3 -3
  127. package/esm2022/empty/empty.component.mjs +3 -3
  128. package/esm2022/empty/empty.module.mjs +4 -4
  129. package/esm2022/empty/empty.property.mjs +5 -5
  130. package/esm2022/examples/examples.component.mjs +3 -3
  131. package/esm2022/examples/examples.module.mjs +4 -4
  132. package/esm2022/find/find.component.mjs +3 -3
  133. package/esm2022/find/find.module.mjs +4 -4
  134. package/esm2022/find/find.property.mjs +3 -3
  135. package/esm2022/form/control.component.mjs +3 -3
  136. package/esm2022/form/form.component.mjs +3 -3
  137. package/esm2022/form/form.module.mjs +4 -4
  138. package/esm2022/form/form.property.mjs +6 -6
  139. package/esm2022/highlight/highlight.component.mjs +3 -3
  140. package/esm2022/highlight/highlight.module.mjs +4 -4
  141. package/esm2022/highlight/highlight.property.mjs +3 -3
  142. package/esm2022/highlight/highlight.service.mjs +3 -3
  143. package/esm2022/i18n/i18n.directive.mjs +3 -3
  144. package/esm2022/i18n/i18n.module.mjs +4 -4
  145. package/esm2022/i18n/i18n.pipe.mjs +3 -3
  146. package/esm2022/i18n/i18n.service.mjs +3 -3
  147. package/esm2022/icon/icon.component.mjs +10 -5
  148. package/esm2022/icon/icon.module.mjs +4 -4
  149. package/esm2022/icon/icon.property.mjs +3 -3
  150. package/esm2022/icon/icon.service.mjs +3 -3
  151. package/esm2022/image/image-group.component.mjs +3 -3
  152. package/esm2022/image/image-preview.component.mjs +3 -3
  153. package/esm2022/image/image.component.mjs +3 -3
  154. package/esm2022/image/image.module.mjs +4 -4
  155. package/esm2022/image/image.property.mjs +6 -6
  156. package/esm2022/inner/inner.component.mjs +3 -3
  157. package/esm2022/inner/inner.module.mjs +4 -4
  158. package/esm2022/inner/inner.property.mjs +3 -3
  159. package/esm2022/input/input-group.component.mjs +3 -3
  160. package/esm2022/input/input.component.mjs +3 -3
  161. package/esm2022/input/input.module.mjs +4 -4
  162. package/esm2022/input/input.property.mjs +6 -6
  163. package/esm2022/input-number/input-number.component.mjs +3 -3
  164. package/esm2022/input-number/input-number.module.mjs +4 -4
  165. package/esm2022/input-number/input-number.property.mjs +3 -3
  166. package/esm2022/keyword/keyword.directive.mjs +3 -3
  167. package/esm2022/keyword/keyword.module.mjs +4 -4
  168. package/esm2022/keyword/keyword.property.mjs +3 -3
  169. package/esm2022/layout/col.component.mjs +3 -3
  170. package/esm2022/layout/layout.module.mjs +4 -4
  171. package/esm2022/layout/layout.property.mjs +6 -6
  172. package/esm2022/layout/row.component.mjs +3 -3
  173. package/esm2022/link/link.component.mjs +3 -3
  174. package/esm2022/link/link.module.mjs +4 -4
  175. package/esm2022/link/link.property.mjs +4 -9
  176. package/esm2022/list/list-drop-group.directive.mjs +3 -3
  177. package/esm2022/list/list-option.component.mjs +3 -3
  178. package/esm2022/list/list.component.mjs +3 -3
  179. package/esm2022/list/list.module.mjs +4 -4
  180. package/esm2022/list/list.property.mjs +6 -6
  181. package/esm2022/loading/loading.component.mjs +3 -3
  182. package/esm2022/loading/loading.module.mjs +4 -4
  183. package/esm2022/loading/loading.property.mjs +3 -3
  184. package/esm2022/menu/menu-node.component.mjs +3 -3
  185. package/esm2022/menu/menu.component.mjs +3 -3
  186. package/esm2022/menu/menu.module.mjs +4 -4
  187. package/esm2022/menu/menu.property.mjs +6 -6
  188. package/esm2022/message/message.component.mjs +3 -3
  189. package/esm2022/message/message.module.mjs +4 -4
  190. package/esm2022/message/message.service.mjs +3 -3
  191. package/esm2022/message-box/message-box.component.mjs +3 -3
  192. package/esm2022/message-box/message-box.module.mjs +4 -4
  193. package/esm2022/message-box/message-box.service.mjs +3 -3
  194. package/esm2022/notification/notification.component.mjs +3 -3
  195. package/esm2022/notification/notification.module.mjs +4 -4
  196. package/esm2022/notification/notification.service.mjs +3 -3
  197. package/esm2022/outlet/outlet.directive.mjs +3 -3
  198. package/esm2022/outlet/outlet.module.mjs +4 -4
  199. package/esm2022/page-header/page-header.component.mjs +3 -3
  200. package/esm2022/page-header/page-header.module.mjs +4 -4
  201. package/esm2022/page-header/page-header.property.mjs +3 -3
  202. package/esm2022/pagination/pagination.component.mjs +3 -3
  203. package/esm2022/pagination/pagination.module.mjs +4 -4
  204. package/esm2022/pagination/pagination.property.mjs +3 -3
  205. package/esm2022/pattern/pattern.component.mjs +3 -3
  206. package/esm2022/pattern/pattern.module.mjs +4 -4
  207. package/esm2022/popconfirm/popconfirm.component.mjs +3 -3
  208. package/esm2022/popconfirm/popconfirm.module.mjs +4 -4
  209. package/esm2022/popconfirm/popconfirm.property.mjs +3 -3
  210. package/esm2022/popover/popover-portal.component.mjs +3 -3
  211. package/esm2022/popover/popover.directive.mjs +5 -5
  212. package/esm2022/popover/popover.module.mjs +4 -4
  213. package/esm2022/popover/popover.property.mjs +3 -3
  214. package/esm2022/portal/portal.module.mjs +4 -4
  215. package/esm2022/portal/portal.service.mjs +3 -3
  216. package/esm2022/progress/progress.component.mjs +3 -3
  217. package/esm2022/progress/progress.module.mjs +4 -4
  218. package/esm2022/progress/progress.property.mjs +3 -3
  219. package/esm2022/radio/radio.component.mjs +3 -3
  220. package/esm2022/radio/radio.module.mjs +4 -4
  221. package/esm2022/radio/radio.property.mjs +3 -3
  222. package/esm2022/rate/rate.component.mjs +3 -3
  223. package/esm2022/rate/rate.module.mjs +4 -4
  224. package/esm2022/rate/rate.property.mjs +3 -3
  225. package/esm2022/resizable/resizable.directive.mjs +3 -3
  226. package/esm2022/resizable/resizable.module.mjs +4 -4
  227. package/esm2022/resizable/resizable.property.mjs +3 -3
  228. package/esm2022/result/result.component.mjs +3 -3
  229. package/esm2022/result/result.module.mjs +4 -4
  230. package/esm2022/result/result.property.mjs +3 -3
  231. package/esm2022/ripple/ripple.directive.mjs +3 -3
  232. package/esm2022/ripple/ripple.module.mjs +4 -4
  233. package/esm2022/ripple/ripple.property.mjs +3 -3
  234. package/esm2022/select/select-portal.component.mjs +3 -3
  235. package/esm2022/select/select.component.mjs +3 -3
  236. package/esm2022/select/select.module.mjs +4 -4
  237. package/esm2022/select/select.property.mjs +9 -4
  238. package/esm2022/skeleton/skeleton.component.mjs +3 -3
  239. package/esm2022/skeleton/skeleton.module.mjs +4 -4
  240. package/esm2022/skeleton/skeleton.property.mjs +3 -3
  241. package/esm2022/slider/slider.component.mjs +5 -5
  242. package/esm2022/slider/slider.module.mjs +4 -4
  243. package/esm2022/slider/slider.property.mjs +3 -3
  244. package/esm2022/slider-select/slider-select.component.mjs +3 -3
  245. package/esm2022/slider-select/slider-select.module.mjs +4 -4
  246. package/esm2022/slider-select/slider-select.property.mjs +3 -3
  247. package/esm2022/statistic/countdown.component.mjs +3 -3
  248. package/esm2022/statistic/statistic.component.mjs +3 -3
  249. package/esm2022/statistic/statistic.module.mjs +4 -4
  250. package/esm2022/statistic/statistic.property.mjs +6 -6
  251. package/esm2022/steps/steps.component.mjs +3 -3
  252. package/esm2022/steps/steps.module.mjs +4 -4
  253. package/esm2022/steps/steps.property.mjs +3 -3
  254. package/esm2022/switch/switch.component.mjs +3 -3
  255. package/esm2022/switch/switch.module.mjs +4 -4
  256. package/esm2022/switch/switch.property.mjs +3 -3
  257. package/esm2022/table/table-body.component.mjs +37 -24
  258. package/esm2022/table/table-foot.component.mjs +3 -3
  259. package/esm2022/table/table-head.component.mjs +5 -5
  260. package/esm2022/table/table.component.mjs +21 -5
  261. package/esm2022/table/table.module.mjs +4 -4
  262. package/esm2022/table/table.property.mjs +12 -12
  263. package/esm2022/tabs/tab-content.component.mjs +3 -3
  264. package/esm2022/tabs/tab-link.directive.mjs +6 -6
  265. package/esm2022/tabs/tab.component.mjs +3 -3
  266. package/esm2022/tabs/tabs.component.mjs +5 -5
  267. package/esm2022/tabs/tabs.module.mjs +4 -4
  268. package/esm2022/tabs/tabs.property.mjs +6 -6
  269. package/esm2022/tag/tag.component.mjs +3 -3
  270. package/esm2022/tag/tag.module.mjs +4 -4
  271. package/esm2022/tag/tag.property.mjs +3 -3
  272. package/esm2022/text-retract/text-retract.component.mjs +3 -3
  273. package/esm2022/text-retract/text-retract.module.mjs +4 -4
  274. package/esm2022/text-retract/text-retract.property.mjs +3 -3
  275. package/esm2022/textarea/textarea.component.mjs +3 -3
  276. package/esm2022/textarea/textarea.module.mjs +4 -4
  277. package/esm2022/textarea/textarea.property.mjs +3 -3
  278. package/esm2022/theme/theme.component.mjs +3 -3
  279. package/esm2022/theme/theme.module.mjs +4 -4
  280. package/esm2022/theme/theme.property.mjs +3 -3
  281. package/esm2022/time-ago/time-ago.module.mjs +4 -4
  282. package/esm2022/time-ago/time-ago.pipe.mjs +3 -3
  283. package/esm2022/time-picker/time-picker-frame.component.mjs +3 -3
  284. package/esm2022/time-picker/time-picker-portal.component.mjs +3 -3
  285. package/esm2022/time-picker/time-picker.component.mjs +3 -3
  286. package/esm2022/time-picker/time-picker.module.mjs +4 -4
  287. package/esm2022/time-picker/time-picker.property.mjs +3 -3
  288. package/esm2022/time-range/time-range.module.mjs +4 -4
  289. package/esm2022/time-range/time-range.pipe.mjs +3 -3
  290. package/esm2022/timeline/timeline.component.mjs +3 -3
  291. package/esm2022/timeline/timeline.module.mjs +4 -4
  292. package/esm2022/timeline/timeline.property.mjs +3 -3
  293. package/esm2022/tooltip/tooltip-portal.component.mjs +3 -3
  294. package/esm2022/tooltip/tooltip.directive.mjs +5 -5
  295. package/esm2022/tooltip/tooltip.module.mjs +4 -4
  296. package/esm2022/tooltip/tooltip.property.mjs +3 -3
  297. package/esm2022/transfer/transfer.component.mjs +3 -3
  298. package/esm2022/transfer/transfer.module.mjs +4 -4
  299. package/esm2022/transfer/transfer.property.mjs +3 -3
  300. package/esm2022/tree/tree-node.component.mjs +3 -3
  301. package/esm2022/tree/tree.component.mjs +3 -3
  302. package/esm2022/tree/tree.module.mjs +4 -4
  303. package/esm2022/tree/tree.property.mjs +6 -6
  304. package/esm2022/tree/tree.service.mjs +3 -3
  305. package/esm2022/tree-file/tree-file.component.mjs +3 -3
  306. package/esm2022/tree-file/tree-file.module.mjs +4 -4
  307. package/esm2022/tree-file/tree-file.property.mjs +3 -3
  308. package/esm2022/tree-select/tree-select-portal.component.mjs +3 -3
  309. package/esm2022/tree-select/tree-select.component.mjs +3 -3
  310. package/esm2022/tree-select/tree-select.module.mjs +4 -4
  311. package/esm2022/tree-select/tree-select.property.mjs +3 -3
  312. package/esm2022/typography/typography.component.mjs +3 -3
  313. package/esm2022/typography/typography.module.mjs +4 -4
  314. package/esm2022/typography/typography.property.mjs +3 -3
  315. package/esm2022/upload/upload-portal.component.mjs +3 -3
  316. package/esm2022/upload/upload.component.mjs +3 -3
  317. package/esm2022/upload/upload.module.mjs +4 -4
  318. package/esm2022/upload/upload.property.mjs +3 -3
  319. package/fesm2022/ng-nest-ui-affix.mjs +26 -10
  320. package/fesm2022/ng-nest-ui-affix.mjs.map +1 -1
  321. package/fesm2022/ng-nest-ui-alert.mjs +185 -14
  322. package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
  323. package/fesm2022/ng-nest-ui-anchor.mjs +65 -16
  324. package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
  325. package/fesm2022/ng-nest-ui-api.mjs +7 -7
  326. package/fesm2022/ng-nest-ui-auto-complete.mjs +13 -13
  327. package/fesm2022/ng-nest-ui-avatar.mjs +31 -29
  328. package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
  329. package/fesm2022/ng-nest-ui-back-top.mjs +10 -10
  330. package/fesm2022/ng-nest-ui-badge.mjs +10 -10
  331. package/fesm2022/ng-nest-ui-base-form.mjs +10 -10
  332. package/fesm2022/ng-nest-ui-button.mjs +22 -17
  333. package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
  334. package/fesm2022/ng-nest-ui-calendar.mjs +16 -13
  335. package/fesm2022/ng-nest-ui-calendar.mjs.map +1 -1
  336. package/fesm2022/ng-nest-ui-card.mjs +10 -10
  337. package/fesm2022/ng-nest-ui-carousel.mjs +16 -16
  338. package/fesm2022/ng-nest-ui-cascade.mjs +13 -13
  339. package/fesm2022/ng-nest-ui-checkbox.mjs +11 -11
  340. package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
  341. package/fesm2022/ng-nest-ui-collapse.mjs +27 -17
  342. package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
  343. package/fesm2022/ng-nest-ui-color-picker.mjs +14 -14
  344. package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
  345. package/fesm2022/ng-nest-ui-color.mjs +10 -10
  346. package/fesm2022/ng-nest-ui-comment.mjs +16 -16
  347. package/fesm2022/ng-nest-ui-container.mjs +31 -31
  348. package/fesm2022/ng-nest-ui-core.mjs +15 -15
  349. package/fesm2022/ng-nest-ui-crumb.mjs +10 -10
  350. package/fesm2022/ng-nest-ui-date-picker.mjs +50 -50
  351. package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
  352. package/fesm2022/ng-nest-ui-description.mjs +16 -16
  353. package/fesm2022/ng-nest-ui-dialog.mjs +40 -40
  354. package/fesm2022/ng-nest-ui-doc.mjs +7 -7
  355. package/fesm2022/ng-nest-ui-drag.mjs +10 -10
  356. package/fesm2022/ng-nest-ui-drawer.mjs +31 -31
  357. package/fesm2022/ng-nest-ui-dropdown.mjs +13 -13
  358. package/fesm2022/ng-nest-ui-empty.mjs +11 -11
  359. package/fesm2022/ng-nest-ui-empty.mjs.map +1 -1
  360. package/fesm2022/ng-nest-ui-examples.mjs +7 -7
  361. package/fesm2022/ng-nest-ui-find.mjs +10 -10
  362. package/fesm2022/ng-nest-ui-form.mjs +16 -16
  363. package/fesm2022/ng-nest-ui-highlight.mjs +13 -13
  364. package/fesm2022/ng-nest-ui-i18n.mjs +13 -13
  365. package/fesm2022/ng-nest-ui-icon.mjs +19 -14
  366. package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
  367. package/fesm2022/ng-nest-ui-image.mjs +19 -19
  368. package/fesm2022/ng-nest-ui-inner.mjs +10 -10
  369. package/fesm2022/ng-nest-ui-input-number.mjs +10 -10
  370. package/fesm2022/ng-nest-ui-input.mjs +16 -16
  371. package/fesm2022/ng-nest-ui-keyword.mjs +10 -10
  372. package/fesm2022/ng-nest-ui-layout.mjs +16 -16
  373. package/fesm2022/ng-nest-ui-link.mjs +10 -15
  374. package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
  375. package/fesm2022/ng-nest-ui-list.mjs +19 -19
  376. package/fesm2022/ng-nest-ui-loading.mjs +10 -10
  377. package/fesm2022/ng-nest-ui-menu.mjs +16 -16
  378. package/fesm2022/ng-nest-ui-message-box.mjs +10 -10
  379. package/fesm2022/ng-nest-ui-message.mjs +10 -10
  380. package/fesm2022/ng-nest-ui-notification.mjs +10 -10
  381. package/fesm2022/ng-nest-ui-outlet.mjs +7 -7
  382. package/fesm2022/ng-nest-ui-page-header.mjs +10 -10
  383. package/fesm2022/ng-nest-ui-pagination.mjs +10 -10
  384. package/fesm2022/ng-nest-ui-pattern.mjs +7 -7
  385. package/fesm2022/ng-nest-ui-popconfirm.mjs +10 -10
  386. package/fesm2022/ng-nest-ui-popover.mjs +14 -14
  387. package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
  388. package/fesm2022/ng-nest-ui-portal.mjs +7 -7
  389. package/fesm2022/ng-nest-ui-progress.mjs +10 -10
  390. package/fesm2022/ng-nest-ui-radio.mjs +10 -10
  391. package/fesm2022/ng-nest-ui-rate.mjs +10 -10
  392. package/fesm2022/ng-nest-ui-resizable.mjs +10 -10
  393. package/fesm2022/ng-nest-ui-result.mjs +10 -10
  394. package/fesm2022/ng-nest-ui-ripple.mjs +10 -10
  395. package/fesm2022/ng-nest-ui-select.mjs +18 -13
  396. package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
  397. package/fesm2022/ng-nest-ui-skeleton.mjs +10 -10
  398. package/fesm2022/ng-nest-ui-slider-select.mjs +10 -10
  399. package/fesm2022/ng-nest-ui-slider.mjs +11 -11
  400. package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
  401. package/fesm2022/ng-nest-ui-statistic.mjs +16 -16
  402. package/fesm2022/ng-nest-ui-steps.mjs +10 -10
  403. package/fesm2022/ng-nest-ui-switch.mjs +10 -10
  404. package/fesm2022/ng-nest-ui-table.mjs +79 -50
  405. package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
  406. package/fesm2022/ng-nest-ui-tabs.mjs +26 -26
  407. package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
  408. package/fesm2022/ng-nest-ui-tag.mjs +10 -10
  409. package/fesm2022/ng-nest-ui-text-retract.mjs +10 -10
  410. package/fesm2022/ng-nest-ui-textarea.mjs +10 -10
  411. package/fesm2022/ng-nest-ui-theme.mjs +10 -10
  412. package/fesm2022/ng-nest-ui-time-ago.mjs +7 -7
  413. package/fesm2022/ng-nest-ui-time-picker.mjs +16 -16
  414. package/fesm2022/ng-nest-ui-time-range.mjs +7 -7
  415. package/fesm2022/ng-nest-ui-timeline.mjs +10 -10
  416. package/fesm2022/ng-nest-ui-tooltip.mjs +14 -14
  417. package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
  418. package/fesm2022/ng-nest-ui-transfer.mjs +10 -10
  419. package/fesm2022/ng-nest-ui-tree-file.mjs +10 -10
  420. package/fesm2022/ng-nest-ui-tree-select.mjs +13 -13
  421. package/fesm2022/ng-nest-ui-tree.mjs +19 -19
  422. package/fesm2022/ng-nest-ui-typography.mjs +10 -10
  423. package/fesm2022/ng-nest-ui-upload.mjs +13 -13
  424. package/icon/icon.component.d.ts +1 -0
  425. package/link/link.property.d.ts +1 -6
  426. package/package.json +144 -144
  427. package/select/select.property.d.ts +6 -1
  428. package/table/table-body.component.d.ts +8 -3
  429. package/table/table.component.d.ts +5 -2
@@ -50,10 +50,10 @@ export class XStepsProperty extends XPropertyFunction(X_STEPS_CONFIG_NAME) {
50
50
  */
51
51
  this.nodeStatus = input(false, { transform: XToBoolean });
52
52
  }
53
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XStepsProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
54
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.1", type: XStepsProperty, selector: "x-steps-property", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, activatedIndex: { classPropertyName: "activatedIndex", publicName: "activatedIndex", isSignal: true, isRequired: false, transformFunction: null }, startIndex: { classPropertyName: "startIndex", publicName: "startIndex", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, customTpl: { classPropertyName: "customTpl", publicName: "customTpl", isSignal: true, isRequired: false, transformFunction: null }, nodeStatus: { classPropertyName: "nodeStatus", publicName: "nodeStatus", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
53
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: XStepsProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
54
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.6", type: XStepsProperty, selector: "x-steps-property", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, activatedIndex: { classPropertyName: "activatedIndex", publicName: "activatedIndex", isSignal: true, isRequired: false, transformFunction: null }, startIndex: { classPropertyName: "startIndex", publicName: "startIndex", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, customTpl: { classPropertyName: "customTpl", publicName: "customTpl", isSignal: true, isRequired: false, transformFunction: null }, nodeStatus: { classPropertyName: "nodeStatus", publicName: "nodeStatus", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
55
55
  }
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XStepsProperty, decorators: [{
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: XStepsProperty, decorators: [{
57
57
  type: Component,
58
58
  args: [{ selector: `${XStepsPrefix}-property`, template: '' }]
59
59
  }] });
@@ -31,10 +31,10 @@ export class XSwitchComponent extends XSwitchProperty {
31
31
  this.onChange(this.value());
32
32
  }
33
33
  formControlChanges() { }
34
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XSwitchComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
35
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: XSwitchComponent, isStandalone: true, selector: "x-switch", providers: [XValueAccessor(XSwitchComponent)], viewQueries: [{ propertyName: "switch", first: true, predicate: ["switch"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\r\n #switch\r\n class=\"x-switch\"\r\n [ngClass]=\"classMap()\"\r\n [class.x-switch-loading]=\"loading()\"\r\n [class.x-flex]=\"justify() || align() || direction()\"\r\n [class.x-checked]=\"value()\"\r\n [class.x-required]=\"requiredIsEmpty()\"\r\n [class.x-disabled]=\"disabledComputed()\"\r\n [class.x-invalid]=\"invalid()\"\r\n>\r\n @if (label()) {\r\n <label\r\n [class.x-switch-label-required]=\"requiredComputed()\"\r\n [style.width]=\"labelWidth()\"\r\n [ngClass]=\"labelMapSignal()\"\r\n >{{ label() }}</label\r\n >\r\n }\r\n <div class=\"x-switch-row\">\r\n <div class=\"x-switch-slider\" (click)=\"switchClick()\">\r\n <div class=\"x-switch-handle\">\r\n <div class=\"x-switch-spinner\" [x-loading]=\"loading()\" [size]=\"size()\"></div>\r\n </div>\r\n <div class=\"x-switch-text\">\r\n @if (value()) {\r\n <ng-container *xOutlet=\"checkedText()\">{{ checkedText() }}</ng-container>\r\n } @else {\r\n <ng-container *xOutlet=\"unCheckedText()\">{{ unCheckedText() }}</ng-container>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-switch{margin:0;padding:0;width:100%}.x-switch.x-flex{display:flex}.x-switch.x-justify-start{justify-content:flex-start}.x-switch.x-justify-center{justify-content:center}.x-switch.x-justify-end{justify-content:flex-end}.x-switch.x-justify-space-between{justify-content:space-between}.x-switch.x-justify-space-around{justify-content:space-around}.x-switch.x-align-start{align-items:flex-start}.x-switch.x-align-center{align-items:center}.x-switch.x-align-end{align-items:flex-end}.x-switch.x-direction-column{flex-direction:column}.x-switch.x-direction-column-reverse{flex-direction:column-reverse}.x-switch.x-direction-row{flex-direction:row}.x-switch.x-direction-row-reverse{flex-direction:row-reverse}.x-switch>label{display:inline-block;white-space:nowrap;position:relative;color:var(--x-text-300);font-weight:600}.x-switch>label.x-text-align-start{text-align:start}.x-switch>label.x-text-align-center{text-align:center}.x-switch>label.x-text-align-end{text-align:end}.x-switch-row{flex:1;display:flex;align-items:center;position:relative}.x-switch-slider{display:inline-flex;align-items:center;position:relative;border:var(--x-border-width) solid var(--x-info);background-color:var(--x-info);cursor:pointer;transition:var(--x-animation-duration-slow)}.x-switch-handle{position:absolute;transition:var(--x-animation-duration-slow);left:0;display:block}.x-switch-handle:before{position:absolute;inset:0;box-shadow:0 .125rem .25rem #00230b33;background-color:var(--x-background-a100);content:\"\"}.x-switch-spinner .x-loading{background-color:transparent}.x-switch-spinner .x-loading-spinner{display:flex;align-items:center}.x-switch-text{color:var(--x-white);transition:var(--x-animation-duration-slow);display:inline-flex;align-items:center}.x-switch.x-checked .x-switch-slider{background-color:var(--x-primary);border-color:var(--x-primary)}.x-switch-label-required:before{display:inline-block;margin-right:.25rem;color:var(--x-danger);line-height:1;font-size:var(--x-font-size-small);content:\"*\"}.x-switch.x-invalid>label,.x-switch.x-required>label{color:var(--x-danger)}.x-switch.x-disabled .x-switch-slider,.x-switch-loading .x-switch-slider{cursor:not-allowed;background-color:var(--x-info-500);border-color:var(--x-info-500)}.x-switch.x-disabled.x-checked .x-switch-slider,.x-switch-loading.x-checked .x-switch-slider{background-color:var(--x-primary-500);border-color:var(--x-primary-500)}.x-switch.x-direction-row>label{padding:0 .5rem 0 0}.x-switch.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-switch.x-direction-column,.x-switch.x-direction-column-reverse{align-items:inherit}.x-switch-big>label{height:var(--x-height-big);line-height:var(--x-height-big)}.x-switch-big .x-switch-slider{height:calc(var(--x-height-big) - .25rem);min-width:calc((var(--x-height-big) - .25rem) * 2);border-radius:calc(var(--x-height-big) - .25rem);margin:.125rem 0}.x-switch-big .x-switch-handle{width:calc(var(--x-height-big) - .5rem);height:calc(var(--x-height-big) - .5rem);margin:0 .125rem}.x-switch-big .x-switch-handle:before{border-radius:calc(var(--x-height-big) - .5rem)}.x-switch-big .x-switch-text{margin-left:calc(var(--x-height-big) - .125rem);margin-right:.5rem}.x-switch-big.x-checked .x-switch-handle{left:calc(100% - (var(--x-height-big) - .5rem) - .25rem)}.x-switch-big.x-checked .x-switch-text{margin-left:.5rem;margin-right:calc(var(--x-height-big) - .25rem)}.x-switch-big .x-switch-spinner{width:calc(var(--x-height-big) - .5rem);height:calc(var(--x-height-big) - .5rem)}.x-switch-big .x-loading-big .x-loading-circular{width:calc(var(--x-height-big) - .625rem);height:calc(var(--x-height-big) - .625rem)}.x-switch-large>label{height:var(--x-height-large);line-height:var(--x-height-large)}.x-switch-large .x-switch-slider{height:calc(var(--x-height-large) - .25rem);min-width:calc((var(--x-height-large) - .25rem) * 2);border-radius:calc(var(--x-height-large) - .25rem);margin:.125rem 0}.x-switch-large .x-switch-handle{width:calc(var(--x-height-large) - .5rem);height:calc(var(--x-height-large) - .5rem);margin:0 .125rem}.x-switch-large .x-switch-handle:before{border-radius:calc(var(--x-height-large) - .5rem)}.x-switch-large .x-switch-text{margin-left:calc(var(--x-height-large) - .125rem);margin-right:.5rem}.x-switch-large.x-checked .x-switch-handle{left:calc(100% - (var(--x-height-large) - .5rem) - .25rem)}.x-switch-large.x-checked .x-switch-text{margin-left:.5rem;margin-right:calc(var(--x-height-large) - .25rem)}.x-switch-large .x-switch-spinner{width:calc(var(--x-height-large) - .5rem);height:calc(var(--x-height-large) - .5rem)}.x-switch-large .x-loading-large .x-loading-circular{width:calc(var(--x-height-large) - .625rem);height:calc(var(--x-height-large) - .625rem)}.x-switch-medium>label{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-switch-medium .x-switch-slider{height:calc(var(--x-height-medium) - .25rem);min-width:calc((var(--x-height-medium) - .25rem) * 2);border-radius:calc(var(--x-height-medium) - .25rem);margin:.125rem 0}.x-switch-medium .x-switch-handle{width:calc(var(--x-height-medium) - .5rem);height:calc(var(--x-height-medium) - .5rem);margin:0 .125rem}.x-switch-medium .x-switch-handle:before{border-radius:calc(var(--x-height-medium) - .5rem)}.x-switch-medium .x-switch-text{margin-left:calc(var(--x-height-medium) - .125rem);margin-right:.5rem}.x-switch-medium.x-checked .x-switch-handle{left:calc(100% - (var(--x-height-medium) - .5rem) - .25rem)}.x-switch-medium.x-checked .x-switch-text{margin-left:.5rem;margin-right:calc(var(--x-height-medium) - .25rem)}.x-switch-medium .x-switch-spinner{width:calc(var(--x-height-medium) - .5rem);height:calc(var(--x-height-medium) - .5rem)}.x-switch-medium .x-loading-medium .x-loading-circular{width:calc(var(--x-height-medium) - .625rem);height:calc(var(--x-height-medium) - .625rem)}.x-switch-small>label{height:var(--x-height-small);line-height:var(--x-height-small)}.x-switch-small .x-switch-slider{height:calc(var(--x-height-small) - .25rem);min-width:calc((var(--x-height-small) - .25rem) * 2);border-radius:calc(var(--x-height-small) - .25rem);margin:.125rem 0}.x-switch-small .x-switch-handle{width:calc(var(--x-height-small) - .5rem);height:calc(var(--x-height-small) - .5rem);margin:0 .125rem}.x-switch-small .x-switch-handle:before{border-radius:calc(var(--x-height-small) - .5rem)}.x-switch-small .x-switch-text{margin-left:calc(var(--x-height-small) - .125rem);margin-right:.5rem}.x-switch-small.x-checked .x-switch-handle{left:calc(100% - (var(--x-height-small) - .5rem) - .25rem)}.x-switch-small.x-checked .x-switch-text{margin-left:.5rem;margin-right:calc(var(--x-height-small) - .25rem)}.x-switch-small .x-switch-spinner{width:calc(var(--x-height-small) - .5rem);height:calc(var(--x-height-small) - .5rem)}.x-switch-small .x-loading-small .x-loading-circular{width:calc(var(--x-height-small) - .625rem);height:calc(var(--x-height-small) - .625rem)}.x-switch-mini>label{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-switch-mini .x-switch-slider{height:calc(var(--x-height-mini) - .25rem);min-width:calc((var(--x-height-mini) - .25rem) * 2);border-radius:calc(var(--x-height-mini) - .25rem);margin:.125rem 0}.x-switch-mini .x-switch-handle{width:calc(var(--x-height-mini) - .5rem);height:calc(var(--x-height-mini) - .5rem);margin:0 .125rem}.x-switch-mini .x-switch-handle:before{border-radius:calc(var(--x-height-mini) - .5rem)}.x-switch-mini .x-switch-text{margin-left:calc(var(--x-height-mini) - .125rem);margin-right:.5rem}.x-switch-mini.x-checked .x-switch-handle{left:calc(100% - (var(--x-height-mini) - .5rem) - .25rem)}.x-switch-mini.x-checked .x-switch-text{margin-left:.5rem;margin-right:calc(var(--x-height-mini) - .25rem)}.x-switch-mini .x-switch-spinner{width:calc(var(--x-height-mini) - .5rem);height:calc(var(--x-height-mini) - .5rem)}.x-switch-mini .x-loading-mini .x-loading-circular{width:calc(var(--x-height-mini) - .625rem);height:calc(var(--x-height-mini) - .625rem)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: XLoadingComponent, selector: "x-loading, [x-loading]" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
34
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: XSwitchComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
35
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.6", type: XSwitchComponent, isStandalone: true, selector: "x-switch", providers: [XValueAccessor(XSwitchComponent)], viewQueries: [{ propertyName: "switch", first: true, predicate: ["switch"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\r\n #switch\r\n class=\"x-switch\"\r\n [ngClass]=\"classMap()\"\r\n [class.x-switch-loading]=\"loading()\"\r\n [class.x-flex]=\"justify() || align() || direction()\"\r\n [class.x-checked]=\"value()\"\r\n [class.x-required]=\"requiredIsEmpty()\"\r\n [class.x-disabled]=\"disabledComputed()\"\r\n [class.x-invalid]=\"invalid()\"\r\n>\r\n @if (label()) {\r\n <label\r\n [class.x-switch-label-required]=\"requiredComputed()\"\r\n [style.width]=\"labelWidth()\"\r\n [ngClass]=\"labelMapSignal()\"\r\n >{{ label() }}</label\r\n >\r\n }\r\n <div class=\"x-switch-row\">\r\n <div class=\"x-switch-slider\" (click)=\"switchClick()\">\r\n <div class=\"x-switch-handle\">\r\n <div class=\"x-switch-spinner\" [x-loading]=\"loading()\" [size]=\"size()\"></div>\r\n </div>\r\n <div class=\"x-switch-text\">\r\n @if (value()) {\r\n <ng-container *xOutlet=\"checkedText()\">{{ checkedText() }}</ng-container>\r\n } @else {\r\n <ng-container *xOutlet=\"unCheckedText()\">{{ unCheckedText() }}</ng-container>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-switch{margin:0;padding:0;width:100%}.x-switch.x-flex{display:flex}.x-switch.x-justify-start{justify-content:flex-start}.x-switch.x-justify-center{justify-content:center}.x-switch.x-justify-end{justify-content:flex-end}.x-switch.x-justify-space-between{justify-content:space-between}.x-switch.x-justify-space-around{justify-content:space-around}.x-switch.x-align-start{align-items:flex-start}.x-switch.x-align-center{align-items:center}.x-switch.x-align-end{align-items:flex-end}.x-switch.x-direction-column{flex-direction:column}.x-switch.x-direction-column-reverse{flex-direction:column-reverse}.x-switch.x-direction-row{flex-direction:row}.x-switch.x-direction-row-reverse{flex-direction:row-reverse}.x-switch>label{display:inline-block;white-space:nowrap;position:relative;color:var(--x-text-300);font-weight:600}.x-switch>label.x-text-align-start{text-align:start}.x-switch>label.x-text-align-center{text-align:center}.x-switch>label.x-text-align-end{text-align:end}.x-switch-row{flex:1;display:flex;align-items:center;position:relative}.x-switch-slider{display:inline-flex;align-items:center;position:relative;border:var(--x-border-width) solid var(--x-info);background-color:var(--x-info);cursor:pointer;transition:var(--x-animation-duration-slow)}.x-switch-handle{position:absolute;transition:var(--x-animation-duration-slow);left:0;display:block}.x-switch-handle:before{position:absolute;inset:0;box-shadow:0 .125rem .25rem #00230b33;background-color:var(--x-background-a100);content:\"\"}.x-switch-spinner .x-loading{background-color:transparent}.x-switch-spinner .x-loading-spinner{display:flex;align-items:center}.x-switch-text{color:var(--x-white);transition:var(--x-animation-duration-slow);display:inline-flex;align-items:center}.x-switch.x-checked .x-switch-slider{background-color:var(--x-primary);border-color:var(--x-primary)}.x-switch-label-required:before{display:inline-block;margin-right:.25rem;color:var(--x-danger);line-height:1;font-size:var(--x-font-size-small);content:\"*\"}.x-switch.x-invalid>label,.x-switch.x-required>label{color:var(--x-danger)}.x-switch.x-disabled .x-switch-slider,.x-switch-loading .x-switch-slider{cursor:not-allowed;background-color:var(--x-info-500);border-color:var(--x-info-500)}.x-switch.x-disabled.x-checked .x-switch-slider,.x-switch-loading.x-checked .x-switch-slider{background-color:var(--x-primary-500);border-color:var(--x-primary-500)}.x-switch.x-direction-row>label{padding:0 .5rem 0 0}.x-switch.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-switch.x-direction-column,.x-switch.x-direction-column-reverse{align-items:inherit}.x-switch-big>label{height:var(--x-height-big);line-height:var(--x-height-big)}.x-switch-big .x-switch-slider{height:calc(var(--x-height-big) - .25rem);min-width:calc((var(--x-height-big) - .25rem) * 2);border-radius:calc(var(--x-height-big) - .25rem);margin:.125rem 0}.x-switch-big .x-switch-handle{width:calc(var(--x-height-big) - .5rem);height:calc(var(--x-height-big) - .5rem);margin:0 .125rem}.x-switch-big .x-switch-handle:before{border-radius:calc(var(--x-height-big) - .5rem)}.x-switch-big .x-switch-text{margin-left:calc(var(--x-height-big) - .125rem);margin-right:.5rem}.x-switch-big.x-checked .x-switch-handle{left:calc(100% - (var(--x-height-big) - .5rem) - .25rem)}.x-switch-big.x-checked .x-switch-text{margin-left:.5rem;margin-right:calc(var(--x-height-big) - .25rem)}.x-switch-big .x-switch-spinner{width:calc(var(--x-height-big) - .5rem);height:calc(var(--x-height-big) - .5rem)}.x-switch-big .x-loading-big .x-loading-circular{width:calc(var(--x-height-big) - .625rem);height:calc(var(--x-height-big) - .625rem)}.x-switch-large>label{height:var(--x-height-large);line-height:var(--x-height-large)}.x-switch-large .x-switch-slider{height:calc(var(--x-height-large) - .25rem);min-width:calc((var(--x-height-large) - .25rem) * 2);border-radius:calc(var(--x-height-large) - .25rem);margin:.125rem 0}.x-switch-large .x-switch-handle{width:calc(var(--x-height-large) - .5rem);height:calc(var(--x-height-large) - .5rem);margin:0 .125rem}.x-switch-large .x-switch-handle:before{border-radius:calc(var(--x-height-large) - .5rem)}.x-switch-large .x-switch-text{margin-left:calc(var(--x-height-large) - .125rem);margin-right:.5rem}.x-switch-large.x-checked .x-switch-handle{left:calc(100% - (var(--x-height-large) - .5rem) - .25rem)}.x-switch-large.x-checked .x-switch-text{margin-left:.5rem;margin-right:calc(var(--x-height-large) - .25rem)}.x-switch-large .x-switch-spinner{width:calc(var(--x-height-large) - .5rem);height:calc(var(--x-height-large) - .5rem)}.x-switch-large .x-loading-large .x-loading-circular{width:calc(var(--x-height-large) - .625rem);height:calc(var(--x-height-large) - .625rem)}.x-switch-medium>label{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-switch-medium .x-switch-slider{height:calc(var(--x-height-medium) - .25rem);min-width:calc((var(--x-height-medium) - .25rem) * 2);border-radius:calc(var(--x-height-medium) - .25rem);margin:.125rem 0}.x-switch-medium .x-switch-handle{width:calc(var(--x-height-medium) - .5rem);height:calc(var(--x-height-medium) - .5rem);margin:0 .125rem}.x-switch-medium .x-switch-handle:before{border-radius:calc(var(--x-height-medium) - .5rem)}.x-switch-medium .x-switch-text{margin-left:calc(var(--x-height-medium) - .125rem);margin-right:.5rem}.x-switch-medium.x-checked .x-switch-handle{left:calc(100% - (var(--x-height-medium) - .5rem) - .25rem)}.x-switch-medium.x-checked .x-switch-text{margin-left:.5rem;margin-right:calc(var(--x-height-medium) - .25rem)}.x-switch-medium .x-switch-spinner{width:calc(var(--x-height-medium) - .5rem);height:calc(var(--x-height-medium) - .5rem)}.x-switch-medium .x-loading-medium .x-loading-circular{width:calc(var(--x-height-medium) - .625rem);height:calc(var(--x-height-medium) - .625rem)}.x-switch-small>label{height:var(--x-height-small);line-height:var(--x-height-small)}.x-switch-small .x-switch-slider{height:calc(var(--x-height-small) - .25rem);min-width:calc((var(--x-height-small) - .25rem) * 2);border-radius:calc(var(--x-height-small) - .25rem);margin:.125rem 0}.x-switch-small .x-switch-handle{width:calc(var(--x-height-small) - .5rem);height:calc(var(--x-height-small) - .5rem);margin:0 .125rem}.x-switch-small .x-switch-handle:before{border-radius:calc(var(--x-height-small) - .5rem)}.x-switch-small .x-switch-text{margin-left:calc(var(--x-height-small) - .125rem);margin-right:.5rem}.x-switch-small.x-checked .x-switch-handle{left:calc(100% - (var(--x-height-small) - .5rem) - .25rem)}.x-switch-small.x-checked .x-switch-text{margin-left:.5rem;margin-right:calc(var(--x-height-small) - .25rem)}.x-switch-small .x-switch-spinner{width:calc(var(--x-height-small) - .5rem);height:calc(var(--x-height-small) - .5rem)}.x-switch-small .x-loading-small .x-loading-circular{width:calc(var(--x-height-small) - .625rem);height:calc(var(--x-height-small) - .625rem)}.x-switch-mini>label{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-switch-mini .x-switch-slider{height:calc(var(--x-height-mini) - .25rem);min-width:calc((var(--x-height-mini) - .25rem) * 2);border-radius:calc(var(--x-height-mini) - .25rem);margin:.125rem 0}.x-switch-mini .x-switch-handle{width:calc(var(--x-height-mini) - .5rem);height:calc(var(--x-height-mini) - .5rem);margin:0 .125rem}.x-switch-mini .x-switch-handle:before{border-radius:calc(var(--x-height-mini) - .5rem)}.x-switch-mini .x-switch-text{margin-left:calc(var(--x-height-mini) - .125rem);margin-right:.5rem}.x-switch-mini.x-checked .x-switch-handle{left:calc(100% - (var(--x-height-mini) - .5rem) - .25rem)}.x-switch-mini.x-checked .x-switch-text{margin-left:.5rem;margin-right:calc(var(--x-height-mini) - .25rem)}.x-switch-mini .x-switch-spinner{width:calc(var(--x-height-mini) - .5rem);height:calc(var(--x-height-mini) - .5rem)}.x-switch-mini .x-loading-mini .x-loading-circular{width:calc(var(--x-height-mini) - .625rem);height:calc(var(--x-height-mini) - .625rem)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: XLoadingComponent, selector: "x-loading, [x-loading]" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
36
36
  }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XSwitchComponent, decorators: [{
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: XSwitchComponent, decorators: [{
38
38
  type: Component,
39
39
  args: [{ selector: `${XSwitchPrefix}`, standalone: true, imports: [NgClass, FormsModule, ReactiveFormsModule, XLoadingComponent, XOutletDirective], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XSwitchComponent)], template: "<div\r\n #switch\r\n class=\"x-switch\"\r\n [ngClass]=\"classMap()\"\r\n [class.x-switch-loading]=\"loading()\"\r\n [class.x-flex]=\"justify() || align() || direction()\"\r\n [class.x-checked]=\"value()\"\r\n [class.x-required]=\"requiredIsEmpty()\"\r\n [class.x-disabled]=\"disabledComputed()\"\r\n [class.x-invalid]=\"invalid()\"\r\n>\r\n @if (label()) {\r\n <label\r\n [class.x-switch-label-required]=\"requiredComputed()\"\r\n [style.width]=\"labelWidth()\"\r\n [ngClass]=\"labelMapSignal()\"\r\n >{{ label() }}</label\r\n >\r\n }\r\n <div class=\"x-switch-row\">\r\n <div class=\"x-switch-slider\" (click)=\"switchClick()\">\r\n <div class=\"x-switch-handle\">\r\n <div class=\"x-switch-spinner\" [x-loading]=\"loading()\" [size]=\"size()\"></div>\r\n </div>\r\n <div class=\"x-switch-text\">\r\n @if (value()) {\r\n <ng-container *xOutlet=\"checkedText()\">{{ checkedText() }}</ng-container>\r\n } @else {\r\n <ng-container *xOutlet=\"unCheckedText()\">{{ unCheckedText() }}</ng-container>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-switch{margin:0;padding:0;width:100%}.x-switch.x-flex{display:flex}.x-switch.x-justify-start{justify-content:flex-start}.x-switch.x-justify-center{justify-content:center}.x-switch.x-justify-end{justify-content:flex-end}.x-switch.x-justify-space-between{justify-content:space-between}.x-switch.x-justify-space-around{justify-content:space-around}.x-switch.x-align-start{align-items:flex-start}.x-switch.x-align-center{align-items:center}.x-switch.x-align-end{align-items:flex-end}.x-switch.x-direction-column{flex-direction:column}.x-switch.x-direction-column-reverse{flex-direction:column-reverse}.x-switch.x-direction-row{flex-direction:row}.x-switch.x-direction-row-reverse{flex-direction:row-reverse}.x-switch>label{display:inline-block;white-space:nowrap;position:relative;color:var(--x-text-300);font-weight:600}.x-switch>label.x-text-align-start{text-align:start}.x-switch>label.x-text-align-center{text-align:center}.x-switch>label.x-text-align-end{text-align:end}.x-switch-row{flex:1;display:flex;align-items:center;position:relative}.x-switch-slider{display:inline-flex;align-items:center;position:relative;border:var(--x-border-width) solid var(--x-info);background-color:var(--x-info);cursor:pointer;transition:var(--x-animation-duration-slow)}.x-switch-handle{position:absolute;transition:var(--x-animation-duration-slow);left:0;display:block}.x-switch-handle:before{position:absolute;inset:0;box-shadow:0 .125rem .25rem #00230b33;background-color:var(--x-background-a100);content:\"\"}.x-switch-spinner .x-loading{background-color:transparent}.x-switch-spinner .x-loading-spinner{display:flex;align-items:center}.x-switch-text{color:var(--x-white);transition:var(--x-animation-duration-slow);display:inline-flex;align-items:center}.x-switch.x-checked .x-switch-slider{background-color:var(--x-primary);border-color:var(--x-primary)}.x-switch-label-required:before{display:inline-block;margin-right:.25rem;color:var(--x-danger);line-height:1;font-size:var(--x-font-size-small);content:\"*\"}.x-switch.x-invalid>label,.x-switch.x-required>label{color:var(--x-danger)}.x-switch.x-disabled .x-switch-slider,.x-switch-loading .x-switch-slider{cursor:not-allowed;background-color:var(--x-info-500);border-color:var(--x-info-500)}.x-switch.x-disabled.x-checked .x-switch-slider,.x-switch-loading.x-checked .x-switch-slider{background-color:var(--x-primary-500);border-color:var(--x-primary-500)}.x-switch.x-direction-row>label{padding:0 .5rem 0 0}.x-switch.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-switch.x-direction-column,.x-switch.x-direction-column-reverse{align-items:inherit}.x-switch-big>label{height:var(--x-height-big);line-height:var(--x-height-big)}.x-switch-big .x-switch-slider{height:calc(var(--x-height-big) - .25rem);min-width:calc((var(--x-height-big) - .25rem) * 2);border-radius:calc(var(--x-height-big) - .25rem);margin:.125rem 0}.x-switch-big .x-switch-handle{width:calc(var(--x-height-big) - .5rem);height:calc(var(--x-height-big) - .5rem);margin:0 .125rem}.x-switch-big .x-switch-handle:before{border-radius:calc(var(--x-height-big) - .5rem)}.x-switch-big .x-switch-text{margin-left:calc(var(--x-height-big) - .125rem);margin-right:.5rem}.x-switch-big.x-checked .x-switch-handle{left:calc(100% - (var(--x-height-big) - .5rem) - .25rem)}.x-switch-big.x-checked .x-switch-text{margin-left:.5rem;margin-right:calc(var(--x-height-big) - .25rem)}.x-switch-big .x-switch-spinner{width:calc(var(--x-height-big) - .5rem);height:calc(var(--x-height-big) - .5rem)}.x-switch-big .x-loading-big .x-loading-circular{width:calc(var(--x-height-big) - .625rem);height:calc(var(--x-height-big) - .625rem)}.x-switch-large>label{height:var(--x-height-large);line-height:var(--x-height-large)}.x-switch-large .x-switch-slider{height:calc(var(--x-height-large) - .25rem);min-width:calc((var(--x-height-large) - .25rem) * 2);border-radius:calc(var(--x-height-large) - .25rem);margin:.125rem 0}.x-switch-large .x-switch-handle{width:calc(var(--x-height-large) - .5rem);height:calc(var(--x-height-large) - .5rem);margin:0 .125rem}.x-switch-large .x-switch-handle:before{border-radius:calc(var(--x-height-large) - .5rem)}.x-switch-large .x-switch-text{margin-left:calc(var(--x-height-large) - .125rem);margin-right:.5rem}.x-switch-large.x-checked .x-switch-handle{left:calc(100% - (var(--x-height-large) - .5rem) - .25rem)}.x-switch-large.x-checked .x-switch-text{margin-left:.5rem;margin-right:calc(var(--x-height-large) - .25rem)}.x-switch-large .x-switch-spinner{width:calc(var(--x-height-large) - .5rem);height:calc(var(--x-height-large) - .5rem)}.x-switch-large .x-loading-large .x-loading-circular{width:calc(var(--x-height-large) - .625rem);height:calc(var(--x-height-large) - .625rem)}.x-switch-medium>label{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-switch-medium .x-switch-slider{height:calc(var(--x-height-medium) - .25rem);min-width:calc((var(--x-height-medium) - .25rem) * 2);border-radius:calc(var(--x-height-medium) - .25rem);margin:.125rem 0}.x-switch-medium .x-switch-handle{width:calc(var(--x-height-medium) - .5rem);height:calc(var(--x-height-medium) - .5rem);margin:0 .125rem}.x-switch-medium .x-switch-handle:before{border-radius:calc(var(--x-height-medium) - .5rem)}.x-switch-medium .x-switch-text{margin-left:calc(var(--x-height-medium) - .125rem);margin-right:.5rem}.x-switch-medium.x-checked .x-switch-handle{left:calc(100% - (var(--x-height-medium) - .5rem) - .25rem)}.x-switch-medium.x-checked .x-switch-text{margin-left:.5rem;margin-right:calc(var(--x-height-medium) - .25rem)}.x-switch-medium .x-switch-spinner{width:calc(var(--x-height-medium) - .5rem);height:calc(var(--x-height-medium) - .5rem)}.x-switch-medium .x-loading-medium .x-loading-circular{width:calc(var(--x-height-medium) - .625rem);height:calc(var(--x-height-medium) - .625rem)}.x-switch-small>label{height:var(--x-height-small);line-height:var(--x-height-small)}.x-switch-small .x-switch-slider{height:calc(var(--x-height-small) - .25rem);min-width:calc((var(--x-height-small) - .25rem) * 2);border-radius:calc(var(--x-height-small) - .25rem);margin:.125rem 0}.x-switch-small .x-switch-handle{width:calc(var(--x-height-small) - .5rem);height:calc(var(--x-height-small) - .5rem);margin:0 .125rem}.x-switch-small .x-switch-handle:before{border-radius:calc(var(--x-height-small) - .5rem)}.x-switch-small .x-switch-text{margin-left:calc(var(--x-height-small) - .125rem);margin-right:.5rem}.x-switch-small.x-checked .x-switch-handle{left:calc(100% - (var(--x-height-small) - .5rem) - .25rem)}.x-switch-small.x-checked .x-switch-text{margin-left:.5rem;margin-right:calc(var(--x-height-small) - .25rem)}.x-switch-small .x-switch-spinner{width:calc(var(--x-height-small) - .5rem);height:calc(var(--x-height-small) - .5rem)}.x-switch-small .x-loading-small .x-loading-circular{width:calc(var(--x-height-small) - .625rem);height:calc(var(--x-height-small) - .625rem)}.x-switch-mini>label{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-switch-mini .x-switch-slider{height:calc(var(--x-height-mini) - .25rem);min-width:calc((var(--x-height-mini) - .25rem) * 2);border-radius:calc(var(--x-height-mini) - .25rem);margin:.125rem 0}.x-switch-mini .x-switch-handle{width:calc(var(--x-height-mini) - .5rem);height:calc(var(--x-height-mini) - .5rem);margin:0 .125rem}.x-switch-mini .x-switch-handle:before{border-radius:calc(var(--x-height-mini) - .5rem)}.x-switch-mini .x-switch-text{margin-left:calc(var(--x-height-mini) - .125rem);margin-right:.5rem}.x-switch-mini.x-checked .x-switch-handle{left:calc(100% - (var(--x-height-mini) - .5rem) - .25rem)}.x-switch-mini.x-checked .x-switch-text{margin-left:.5rem;margin-right:calc(var(--x-height-mini) - .25rem)}.x-switch-mini .x-switch-spinner{width:calc(var(--x-height-mini) - .5rem);height:calc(var(--x-height-mini) - .5rem)}.x-switch-mini .x-loading-mini .x-loading-circular{width:calc(var(--x-height-mini) - .625rem);height:calc(var(--x-height-mini) - .625rem)}\n"] }]
40
40
  }] });
@@ -2,11 +2,11 @@ import { NgModule } from '@angular/core';
2
2
  import { XSwitchComponent } from './switch.component';
3
3
  import * as i0 from "@angular/core";
4
4
  export class XSwitchModule {
5
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XSwitchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: XSwitchModule, imports: [XSwitchComponent], exports: [XSwitchComponent] }); }
7
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XSwitchModule, imports: [XSwitchComponent] }); }
5
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: XSwitchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.6", ngImport: i0, type: XSwitchModule, imports: [XSwitchComponent], exports: [XSwitchComponent] }); }
7
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: XSwitchModule, imports: [XSwitchComponent] }); }
8
8
  }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XSwitchModule, decorators: [{
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: XSwitchModule, decorators: [{
10
10
  type: NgModule,
11
11
  args: [{
12
12
  exports: [XSwitchComponent],
@@ -136,10 +136,10 @@ export class XSwitchProperty extends XFormControlFunction(X_SWITCH_CONFIG_NAME)
136
136
  */
137
137
  this.inputValidator = input();
138
138
  }
139
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XSwitchProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
140
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.1", type: XSwitchProperty, selector: "x-switch-property", inputs: { loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, manual: { classPropertyName: "manual", publicName: "manual", isSignal: true, isRequired: false, transformFunction: null }, checkedText: { classPropertyName: "checkedText", publicName: "checkedText", isSignal: true, isRequired: false, transformFunction: null }, unCheckedText: { classPropertyName: "unCheckedText", publicName: "unCheckedText", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, pointer: { classPropertyName: "pointer", publicName: "pointer", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, labelWidth: { classPropertyName: "labelWidth", publicName: "labelWidth", isSignal: true, isRequired: false, transformFunction: null }, labelAlign: { classPropertyName: "labelAlign", publicName: "labelAlign", isSignal: true, isRequired: false, transformFunction: null }, justify: { classPropertyName: "justify", publicName: "justify", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, valueTpl: { classPropertyName: "valueTpl", publicName: "valueTpl", isSignal: true, isRequired: false, transformFunction: null }, valueTplContext: { classPropertyName: "valueTplContext", publicName: "valueTplContext", isSignal: true, isRequired: false, transformFunction: null }, before: { classPropertyName: "before", publicName: "before", isSignal: true, isRequired: false, transformFunction: null }, after: { classPropertyName: "after", publicName: "after", isSignal: true, isRequired: false, transformFunction: null }, pattern: { classPropertyName: "pattern", publicName: "pattern", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, inputValidator: { classPropertyName: "inputValidator", publicName: "inputValidator", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { active: "activeChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
139
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: XSwitchProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
140
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.6", type: XSwitchProperty, selector: "x-switch-property", inputs: { loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, manual: { classPropertyName: "manual", publicName: "manual", isSignal: true, isRequired: false, transformFunction: null }, checkedText: { classPropertyName: "checkedText", publicName: "checkedText", isSignal: true, isRequired: false, transformFunction: null }, unCheckedText: { classPropertyName: "unCheckedText", publicName: "unCheckedText", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, pointer: { classPropertyName: "pointer", publicName: "pointer", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, labelWidth: { classPropertyName: "labelWidth", publicName: "labelWidth", isSignal: true, isRequired: false, transformFunction: null }, labelAlign: { classPropertyName: "labelAlign", publicName: "labelAlign", isSignal: true, isRequired: false, transformFunction: null }, justify: { classPropertyName: "justify", publicName: "justify", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, valueTpl: { classPropertyName: "valueTpl", publicName: "valueTpl", isSignal: true, isRequired: false, transformFunction: null }, valueTplContext: { classPropertyName: "valueTplContext", publicName: "valueTplContext", isSignal: true, isRequired: false, transformFunction: null }, before: { classPropertyName: "before", publicName: "before", isSignal: true, isRequired: false, transformFunction: null }, after: { classPropertyName: "after", publicName: "after", isSignal: true, isRequired: false, transformFunction: null }, pattern: { classPropertyName: "pattern", publicName: "pattern", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, inputValidator: { classPropertyName: "inputValidator", publicName: "inputValidator", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { active: "activeChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
141
141
  }
142
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XSwitchProperty, decorators: [{
142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: XSwitchProperty, decorators: [{
143
143
  type: Component,
144
144
  args: [{ selector: `${XSwitchPrefix}-property`, template: '' }]
145
145
  }] });
@@ -4,14 +4,13 @@ import { XRemoveNgTag, XResize, XStripTags, XParentPath } from '@ng-nest/ui/core
4
4
  import { Subject, fromEvent } from 'rxjs';
5
5
  import { DOCUMENT, NgClass, NgTemplateOutlet } from '@angular/common';
6
6
  import { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';
7
- import { map, takeUntil } from 'rxjs/operators';
7
+ import { debounceTime, takeUntil } from 'rxjs/operators';
8
8
  import { XEmptyComponent } from '@ng-nest/ui/empty';
9
9
  import { XOutletDirective } from '@ng-nest/ui/outlet';
10
10
  import { XCheckboxComponent } from '@ng-nest/ui/checkbox';
11
11
  import { FormsModule } from '@angular/forms';
12
12
  import { XButtonComponent } from '@ng-nest/ui/button';
13
13
  import { XTableComponent } from './table.component';
14
- import { toSignal } from '@angular/core/rxjs-interop';
15
14
  import * as i0 from "@angular/core";
16
15
  import * as i1 from "@angular/forms";
17
16
  import * as i2 from "@angular/cdk/scrolling";
@@ -30,23 +29,19 @@ export class XTableBodyComponent extends XTableBodyProperty {
30
29
  this.isEmpty = computed(() => this.data().length === 0);
31
30
  this.getRowHeight = computed(() => (this.rowHeight() == 0 ? '' : this.rowHeight()));
32
31
  this.getItemSize = computed(() => this.rowHeight() !== 0 && this.itemSize() > this.rowHeight() ? this.rowHeight() : this.itemSize());
33
- this.docChanged = toSignal(fromEvent(this.doc.defaultView, 'resize').pipe(map(() => this.doc.documentElement.clientWidth)));
32
+ this.docClientHeight = signal(this.doc.documentElement.clientHeight);
33
+ this.headHeight = signal(0);
34
+ this.captionHeight = signal(0);
35
+ this.footHeight = signal(0);
36
+ this.paginationHeight = signal(0);
34
37
  this.bodyHeightSignal = computed(() => {
35
38
  const adaptionHeight = this.adaptionHeight();
36
39
  if (adaptionHeight && adaptionHeight > 0) {
37
- this.docChanged();
38
- const captionHeight = this.table.caption()?.nativeElement.clientHeight || 0;
39
- let headHeight = 0;
40
- for (let thead of this.table.theads()) {
41
- headHeight += thead.nativeElement.clientHeight;
42
- }
43
- const footHeight = this.table.tfoot()?.nativeElement.clientHeight || 0;
44
- const paginationHeight = this.table.pagination()?.elementRef.nativeElement.clientHeight || 0;
45
- let bodyHeight = this.docPercent() * this.doc.documentElement.clientHeight -
46
- captionHeight -
47
- headHeight -
48
- footHeight -
49
- paginationHeight -
40
+ let bodyHeight = this.docPercent() * this.docClientHeight() -
41
+ this.captionHeight() -
42
+ this.headHeight() -
43
+ this.footHeight() -
44
+ this.paginationHeight() -
50
45
  adaptionHeight;
51
46
  if (bodyHeight < 0)
52
47
  bodyHeight = 0;
@@ -60,14 +55,14 @@ export class XTableBodyComponent extends XTableBodyProperty {
60
55
  this.minBufferPxSignal = computed(() => {
61
56
  const adaptionHeight = this.adaptionHeight();
62
57
  if (adaptionHeight && adaptionHeight > 0) {
63
- return this.bodyHeight();
58
+ return this.bodyHeightSignal();
64
59
  }
65
60
  return this.minBufferPx();
66
61
  });
67
62
  this.maxBufferPxSignal = computed(() => {
68
63
  const adaptionHeight = this.adaptionHeight();
69
64
  if (adaptionHeight && adaptionHeight > 0) {
70
- return this.bodyHeight() * 1.2;
65
+ return this.bodyHeightSignal() * 1.2;
71
66
  }
72
67
  return this.maxBufferPx();
73
68
  });
@@ -86,13 +81,31 @@ export class XTableBodyComponent extends XTableBodyProperty {
86
81
  XRemoveNgTag(this.elementRef.nativeElement);
87
82
  if (this.level() > 0)
88
83
  XRemoveNgTag(this.tbody().nativeElement);
84
+ fromEvent(this.doc.defaultView, 'resize')
85
+ .pipe(debounceTime(30), takeUntil(this.unSubject))
86
+ .subscribe(() => {
87
+ this.docClientHeight.set(this.doc.documentElement.clientHeight);
88
+ });
89
89
  }
90
90
  ngAfterViewInit() {
91
91
  this.table.virtualBody.set(this.virtualBody());
92
- // this.table.bodyChange = () => this.cdr.detectChanges();
92
+ this.docClientHeight.set(this.doc.documentElement.clientHeight);
93
93
  this.setSubject();
94
94
  this.setScroll();
95
95
  }
96
+ ngAfterViewChecked() {
97
+ let headHeight = 0;
98
+ for (let thead of this.table.theads()) {
99
+ headHeight += thead.nativeElement.clientHeight;
100
+ }
101
+ this.headHeight.set(headHeight);
102
+ const captionHeight = this.table.caption()?.nativeElement.clientHeight || 0;
103
+ this.captionHeight.set(captionHeight);
104
+ const footHeight = this.table.tfoot()?.nativeElement.clientHeight || 0;
105
+ this.footHeight.set(footHeight);
106
+ const paginationHeight = this.table.pagination()?.elementRef.nativeElement.clientHeight || 0;
107
+ this.paginationHeight.set(paginationHeight);
108
+ }
96
109
  ngOnDestroy() {
97
110
  this.unSubject.next();
98
111
  this.unSubject.complete();
@@ -105,7 +118,7 @@ export class XTableBodyComponent extends XTableBodyProperty {
105
118
  this.renderer.setStyle(this.table.scrollContentEle(), 'width', `${this.scroll()?.x}px`);
106
119
  }
107
120
  XResize(this.table.table().nativeElement, this.table.scrollContentEle())
108
- .pipe(takeUntil(this.unSubject))
121
+ .pipe(debounceTime(30), takeUntil(this.unSubject))
109
122
  .subscribe((x) => {
110
123
  this.resizeObserver = x.resizeObserver;
111
124
  this.setScroll();
@@ -204,10 +217,10 @@ export class XTableBodyComponent extends XTableBodyProperty {
204
217
  trackByItem(_index, item) {
205
218
  return item.id;
206
219
  }
207
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTableBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
208
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: XTableBodyComponent, isStandalone: true, selector: "x-table-body", viewQueries: [{ propertyName: "tbody", first: true, predicate: ["tbody"], descendants: true, isSignal: true }, { propertyName: "virtualBody", first: true, predicate: CdkVirtualScrollViewport, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<tbody #tbody>\r\n @if (cellConfig()) {\r\n @for (row of data(); track row.id; let i = $index) {\r\n <tr [style.gridTemplateColumns]=\"cellConfig()!.gridTemplateColumns\">\r\n @for (column of cellConfig()!.cells; track column; let j = $index) {\r\n <td\r\n [title]=\"getTitle(row, column)\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [style.grid-area]=\"column.gridArea\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"cellTpl; context: { column: column, row: row, i: i }\"></ng-container>\r\n </td>\r\n }\r\n </tr>\r\n }\r\n } @else {\r\n @if (virtualScroll()) {\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n [itemSize]=\"getItemSize()\"\r\n [minBufferPx]=\"minBufferPxSignal()\"\r\n [maxBufferPx]=\"maxBufferPxSignal()\"\r\n [style.height.px]=\"bodyHeightSignal()\"\r\n >\r\n <tr\r\n *cdkVirtualFor=\"let row of data(); let index = index; trackBy: trackByItem\"\r\n [class.x-table-activated]=\"allowSelectRow() && activatedRow()?.id === row.id\"\r\n [style.height.px]=\"getRowHeight()\"\r\n [style.min-height.px]=\"getRowHeight()\"\r\n (click)=\"rowClick($event, row)\"\r\n >\r\n <!-- rowHeight \u4E3A 0 \u7684\u65F6\u5019\uFF0Cindex \u4E0B\u6807\u83B7\u53D6\u4E0D\u5230 -->\r\n <ng-container *ngTemplateOutlet=\"rowTpl; context: { row: row, i: getIndex(index, row) }\"></ng-container>\r\n </tr>\r\n </cdk-virtual-scroll-viewport>\r\n } @else {\r\n @for (row of data(); track row.id; let i = $index) {\r\n <tr\r\n [class.x-table-activated]=\"allowSelectRow() && activatedRow()?.id === row.id\"\r\n [style.height.px]=\"getRowHeight()\"\r\n [style.min-height.px]=\"getRowHeight()\"\r\n (click)=\"rowClick($event, row)\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"rowTpl; context: { row: row, i: i }\"></ng-container>\r\n </tr>\r\n @if (table.treeTable() && row.children && row.expanded) {\r\n <div class=\"x-table-children\" [class.x-table-expandTpl]=\"expandTpl()\">\r\n <x-table-body\r\n [data]=\"row.children\"\r\n [columns]=\"table.columns()\"\r\n [itemSize]=\"table.itemSize()\"\r\n [rowHeight]=\"table.rowHeight()\"\r\n [columnTpl]=\"table.bodyColumnTpl()\"\r\n [allowSelectRow]=\"table.allowSelectRow()\"\r\n [rowClass]=\"table.rowClass()\"\r\n [cellConfig]=\"table.cellConfig()?.tbody\"\r\n [(activatedRow)]=\"table.activatedRow\"\r\n [expandedAll]=\"expandedAll()\"\r\n [expandTpl]=\"expandTpl()\"\r\n [level]=\"row.level! + 1\"\r\n ></x-table-body>\r\n </div>\r\n }\r\n }\r\n }\r\n }\r\n @if (table.showEmpty() && isEmpty() && level() === 0) {\r\n <x-empty [img]=\"table.emptyImg()!\" [content]=\"table.emptyContent()!\"></x-empty>\r\n }\r\n</tbody>\r\n\r\n<ng-template #rowTpl let-row=\"row\" let-i=\"i\">\r\n @if (level() > 0 && expandTpl()) {\r\n <ng-container *xOutlet=\"expandTpl(); context: { $row: row, $index: i, $level: level() }\"></ng-container>\r\n } @else if (level() === 0 || !expandTpl()) {\r\n <ng-container *xOutlet=\"rowDefault; context: { row: row, i: i, level: level() }\"></ng-container>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #rowDefault let-row=\"row\" let-i=\"i\">\r\n @for (column of columns(); track column.id; let j = $index) {\r\n <td\r\n [style.width.px]=\"column.width\"\r\n [style.flex]=\"getFlex(column)\"\r\n [title]=\"getTitle(row, column)\"\r\n [class.x-table-dragging]=\"column.dragging\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [ngClass]=\"!rowClass() ? {} : rowClass()!(row, i)\"\r\n >\r\n <ng-template *ngTemplateOutlet=\"cellTpl; context: { column: column, row: row, i: i }\"></ng-template>\r\n </td>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #cellTpl let-column=\"column\" let-row=\"row\" let-i=\"i\">\r\n @switch (column.type) {\r\n @case ('checkbox') {\r\n <x-checkbox\r\n [data]=\"[{ id: true, label: '' }]\"\r\n [(ngModel)]=\"row[column.id]\"\r\n [disabled]=\"row.disabled\"\r\n (ngModelChange)=\"table.bodyChecked($event, column, row)\"\r\n single\r\n ></x-checkbox>\r\n }\r\n @case ('index') {\r\n <div>{{ table.getIndex(i) }}</div>\r\n }\r\n @default {\r\n @if (table.isExpandColumn(column)) {\r\n <x-button\r\n [class.is-leaf]=\"!row.leaf\"\r\n [class.is-expanded]=\"row.expanded\"\r\n (click)=\"onExpanded($event, row)\"\r\n icon=\"fto-chevron-right\"\r\n size=\"mini\"\r\n onlyIcon\r\n flat\r\n plain\r\n class=\"x-table-expand\"\r\n [style.margin-left.rem]=\"row.level - 0.5\"\r\n ></x-button>\r\n }\r\n <ng-container\r\n *xOutlet=\"columnTpl()[column.id]; context: { $column: column, $row: row, $index: table.getIndex(i) }\"\r\n >\r\n <ng-container *xOutlet=\"table.bodyTdTpl(); context: { $column: column, $row: row, $index: table.getIndex(i) }\">\r\n <div [innerHTML]=\"row[column.id]\" [style.text-align]=\"column.textAlign\"></div>\r\n {{ table.rowExpand() && table.rowExpand()!.id === column.id ? 'x-table-body-level-' + row.level : '' }}\r\n </ng-container>\r\n </ng-container>\r\n }\r\n }\r\n</ng-template>\r\n", dependencies: [{ kind: "component", type: XTableBodyComponent, selector: "x-table-body" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: XEmptyComponent, selector: "x-empty" }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i2.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i2.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i2.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: XCheckboxComponent, selector: "x-checkbox" }, { kind: "component", type: XButtonComponent, selector: "x-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
220
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: XTableBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
221
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.6", type: XTableBodyComponent, isStandalone: true, selector: "x-table-body", viewQueries: [{ propertyName: "tbody", first: true, predicate: ["tbody"], descendants: true, isSignal: true }, { propertyName: "virtualBody", first: true, predicate: CdkVirtualScrollViewport, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<tbody #tbody>\r\n @if (cellConfig()) {\r\n @for (row of data(); track row.id; let i = $index) {\r\n <tr [style.gridTemplateColumns]=\"cellConfig()!.gridTemplateColumns\">\r\n @for (column of cellConfig()!.cells; track column; let j = $index) {\r\n <td\r\n [title]=\"getTitle(row, column)\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [style.grid-area]=\"column.gridArea\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"cellTpl; context: { column: column, row: row, i: i }\"></ng-container>\r\n </td>\r\n }\r\n </tr>\r\n }\r\n } @else {\r\n @if (virtualScroll()) {\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n [itemSize]=\"getItemSize()\"\r\n [minBufferPx]=\"minBufferPxSignal()\"\r\n [maxBufferPx]=\"maxBufferPxSignal()\"\r\n [style.height.px]=\"bodyHeightSignal()\"\r\n >\r\n <tr\r\n *cdkVirtualFor=\"let row of data(); let index = index; trackBy: trackByItem\"\r\n [class.x-table-activated]=\"allowSelectRow() && activatedRow()?.id === row.id\"\r\n [style.height.px]=\"getRowHeight()\"\r\n [style.min-height.px]=\"getRowHeight()\"\r\n (click)=\"rowClick($event, row)\"\r\n >\r\n <!-- rowHeight \u4E3A 0 \u7684\u65F6\u5019\uFF0Cindex \u4E0B\u6807\u83B7\u53D6\u4E0D\u5230 -->\r\n <ng-container *ngTemplateOutlet=\"rowTpl; context: { row: row, i: getIndex(index, row) }\"></ng-container>\r\n </tr>\r\n </cdk-virtual-scroll-viewport>\r\n } @else {\r\n @for (row of data(); track row.id; let i = $index) {\r\n <tr\r\n [class.x-table-activated]=\"allowSelectRow() && activatedRow()?.id === row.id\"\r\n [style.height.px]=\"getRowHeight()\"\r\n [style.min-height.px]=\"getRowHeight()\"\r\n (click)=\"rowClick($event, row)\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"rowTpl; context: { row: row, i: i }\"></ng-container>\r\n </tr>\r\n @if (table.treeTable() && row.children && row.expanded) {\r\n <div class=\"x-table-children\" [class.x-table-expandTpl]=\"expandTpl()\">\r\n <x-table-body\r\n [data]=\"row.children\"\r\n [columns]=\"table.columns()\"\r\n [itemSize]=\"table.itemSize()\"\r\n [rowHeight]=\"table.rowHeight()\"\r\n [columnTpl]=\"table.bodyColumnTpl()\"\r\n [allowSelectRow]=\"table.allowSelectRow()\"\r\n [rowClass]=\"table.rowClass()\"\r\n [cellConfig]=\"table.cellConfig()?.tbody\"\r\n [(activatedRow)]=\"table.activatedRow\"\r\n [expandedAll]=\"expandedAll()\"\r\n [expandTpl]=\"expandTpl()\"\r\n [level]=\"row.level! + 1\"\r\n ></x-table-body>\r\n </div>\r\n }\r\n }\r\n }\r\n }\r\n @if (table.showEmpty() && isEmpty() && level() === 0) {\r\n <x-empty [img]=\"table.emptyImg()!\" [content]=\"table.emptyContent()!\"></x-empty>\r\n }\r\n</tbody>\r\n\r\n<ng-template #rowTpl let-row=\"row\" let-i=\"i\">\r\n @if (level() > 0 && expandTpl()) {\r\n <ng-container *xOutlet=\"expandTpl(); context: { $row: row, $index: i, $level: level() }\"></ng-container>\r\n } @else if (level() === 0 || !expandTpl()) {\r\n <ng-container *xOutlet=\"rowDefault; context: { row: row, i: i, level: level() }\"></ng-container>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #rowDefault let-row=\"row\" let-i=\"i\">\r\n @for (column of columns(); track column.id; let j = $index) {\r\n <td\r\n [style.width.px]=\"column.width\"\r\n [style.flex]=\"getFlex(column)\"\r\n [title]=\"getTitle(row, column)\"\r\n [class.x-table-dragging]=\"column.dragging\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [ngClass]=\"!rowClass() ? {} : rowClass()!(row, i)\"\r\n >\r\n <ng-template *ngTemplateOutlet=\"cellTpl; context: { column: column, row: row, i: i }\"></ng-template>\r\n </td>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #cellTpl let-column=\"column\" let-row=\"row\" let-i=\"i\">\r\n @switch (column.type) {\r\n @case ('checkbox') {\r\n <x-checkbox\r\n [data]=\"[{ id: true, label: '' }]\"\r\n [(ngModel)]=\"row[column.id]\"\r\n [disabled]=\"row.disabled\"\r\n (ngModelChange)=\"table.bodyChecked($event, column, row)\"\r\n single\r\n ></x-checkbox>\r\n }\r\n @case ('index') {\r\n <div>{{ table.getIndex(i) }}</div>\r\n }\r\n @default {\r\n @if (table.isExpandColumn(column)) {\r\n <x-button\r\n [class.is-leaf]=\"!row.leaf\"\r\n [class.is-expanded]=\"row.expanded\"\r\n (click)=\"onExpanded($event, row)\"\r\n icon=\"fto-chevron-right\"\r\n size=\"mini\"\r\n onlyIcon\r\n flat\r\n plain\r\n class=\"x-table-expand\"\r\n [style.margin-left.rem]=\"row.level - 0.5\"\r\n ></x-button>\r\n }\r\n <ng-container\r\n *xOutlet=\"columnTpl()[column.id]; context: { $column: column, $row: row, $index: table.getIndex(i) }\"\r\n >\r\n <ng-container *xOutlet=\"table.bodyTdTpl(); context: { $column: column, $row: row, $index: table.getIndex(i) }\">\r\n <div [innerHTML]=\"row[column.id]\" [style.text-align]=\"column.textAlign\"></div>\r\n {{ table.rowExpand() && table.rowExpand()!.id === column.id ? 'x-table-body-level-' + row.level : '' }}\r\n </ng-container>\r\n </ng-container>\r\n }\r\n }\r\n</ng-template>\r\n", dependencies: [{ kind: "component", type: XTableBodyComponent, selector: "x-table-body" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: XEmptyComponent, selector: "x-empty" }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i2.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i2.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i2.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: XCheckboxComponent, selector: "x-checkbox" }, { kind: "component", type: XButtonComponent, selector: "x-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
209
222
  }
210
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTableBodyComponent, decorators: [{
223
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: XTableBodyComponent, decorators: [{
211
224
  type: Component,
212
225
  args: [{ selector: `${XTableBodyPrefix}`, standalone: true, imports: [
213
226
  NgClass,
@@ -220,4 +233,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
220
233
  XButtonComponent
221
234
  ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<tbody #tbody>\r\n @if (cellConfig()) {\r\n @for (row of data(); track row.id; let i = $index) {\r\n <tr [style.gridTemplateColumns]=\"cellConfig()!.gridTemplateColumns\">\r\n @for (column of cellConfig()!.cells; track column; let j = $index) {\r\n <td\r\n [title]=\"getTitle(row, column)\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [style.grid-area]=\"column.gridArea\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"cellTpl; context: { column: column, row: row, i: i }\"></ng-container>\r\n </td>\r\n }\r\n </tr>\r\n }\r\n } @else {\r\n @if (virtualScroll()) {\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n [itemSize]=\"getItemSize()\"\r\n [minBufferPx]=\"minBufferPxSignal()\"\r\n [maxBufferPx]=\"maxBufferPxSignal()\"\r\n [style.height.px]=\"bodyHeightSignal()\"\r\n >\r\n <tr\r\n *cdkVirtualFor=\"let row of data(); let index = index; trackBy: trackByItem\"\r\n [class.x-table-activated]=\"allowSelectRow() && activatedRow()?.id === row.id\"\r\n [style.height.px]=\"getRowHeight()\"\r\n [style.min-height.px]=\"getRowHeight()\"\r\n (click)=\"rowClick($event, row)\"\r\n >\r\n <!-- rowHeight \u4E3A 0 \u7684\u65F6\u5019\uFF0Cindex \u4E0B\u6807\u83B7\u53D6\u4E0D\u5230 -->\r\n <ng-container *ngTemplateOutlet=\"rowTpl; context: { row: row, i: getIndex(index, row) }\"></ng-container>\r\n </tr>\r\n </cdk-virtual-scroll-viewport>\r\n } @else {\r\n @for (row of data(); track row.id; let i = $index) {\r\n <tr\r\n [class.x-table-activated]=\"allowSelectRow() && activatedRow()?.id === row.id\"\r\n [style.height.px]=\"getRowHeight()\"\r\n [style.min-height.px]=\"getRowHeight()\"\r\n (click)=\"rowClick($event, row)\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"rowTpl; context: { row: row, i: i }\"></ng-container>\r\n </tr>\r\n @if (table.treeTable() && row.children && row.expanded) {\r\n <div class=\"x-table-children\" [class.x-table-expandTpl]=\"expandTpl()\">\r\n <x-table-body\r\n [data]=\"row.children\"\r\n [columns]=\"table.columns()\"\r\n [itemSize]=\"table.itemSize()\"\r\n [rowHeight]=\"table.rowHeight()\"\r\n [columnTpl]=\"table.bodyColumnTpl()\"\r\n [allowSelectRow]=\"table.allowSelectRow()\"\r\n [rowClass]=\"table.rowClass()\"\r\n [cellConfig]=\"table.cellConfig()?.tbody\"\r\n [(activatedRow)]=\"table.activatedRow\"\r\n [expandedAll]=\"expandedAll()\"\r\n [expandTpl]=\"expandTpl()\"\r\n [level]=\"row.level! + 1\"\r\n ></x-table-body>\r\n </div>\r\n }\r\n }\r\n }\r\n }\r\n @if (table.showEmpty() && isEmpty() && level() === 0) {\r\n <x-empty [img]=\"table.emptyImg()!\" [content]=\"table.emptyContent()!\"></x-empty>\r\n }\r\n</tbody>\r\n\r\n<ng-template #rowTpl let-row=\"row\" let-i=\"i\">\r\n @if (level() > 0 && expandTpl()) {\r\n <ng-container *xOutlet=\"expandTpl(); context: { $row: row, $index: i, $level: level() }\"></ng-container>\r\n } @else if (level() === 0 || !expandTpl()) {\r\n <ng-container *xOutlet=\"rowDefault; context: { row: row, i: i, level: level() }\"></ng-container>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #rowDefault let-row=\"row\" let-i=\"i\">\r\n @for (column of columns(); track column.id; let j = $index) {\r\n <td\r\n [style.width.px]=\"column.width\"\r\n [style.flex]=\"getFlex(column)\"\r\n [title]=\"getTitle(row, column)\"\r\n [class.x-table-dragging]=\"column.dragging\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [ngClass]=\"!rowClass() ? {} : rowClass()!(row, i)\"\r\n >\r\n <ng-template *ngTemplateOutlet=\"cellTpl; context: { column: column, row: row, i: i }\"></ng-template>\r\n </td>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #cellTpl let-column=\"column\" let-row=\"row\" let-i=\"i\">\r\n @switch (column.type) {\r\n @case ('checkbox') {\r\n <x-checkbox\r\n [data]=\"[{ id: true, label: '' }]\"\r\n [(ngModel)]=\"row[column.id]\"\r\n [disabled]=\"row.disabled\"\r\n (ngModelChange)=\"table.bodyChecked($event, column, row)\"\r\n single\r\n ></x-checkbox>\r\n }\r\n @case ('index') {\r\n <div>{{ table.getIndex(i) }}</div>\r\n }\r\n @default {\r\n @if (table.isExpandColumn(column)) {\r\n <x-button\r\n [class.is-leaf]=\"!row.leaf\"\r\n [class.is-expanded]=\"row.expanded\"\r\n (click)=\"onExpanded($event, row)\"\r\n icon=\"fto-chevron-right\"\r\n size=\"mini\"\r\n onlyIcon\r\n flat\r\n plain\r\n class=\"x-table-expand\"\r\n [style.margin-left.rem]=\"row.level - 0.5\"\r\n ></x-button>\r\n }\r\n <ng-container\r\n *xOutlet=\"columnTpl()[column.id]; context: { $column: column, $row: row, $index: table.getIndex(i) }\"\r\n >\r\n <ng-container *xOutlet=\"table.bodyTdTpl(); context: { $column: column, $row: row, $index: table.getIndex(i) }\">\r\n <div [innerHTML]=\"row[column.id]\" [style.text-align]=\"column.textAlign\"></div>\r\n {{ table.rowExpand() && table.rowExpand()!.id === column.id ? 'x-table-body-level-' + row.level : '' }}\r\n </ng-container>\r\n </ng-container>\r\n }\r\n }\r\n</ng-template>\r\n" }]
222
235
  }], ctorParameters: () => [] });
223
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYm9keS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90YWJsZS90YWJsZS1ib2R5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RhYmxlL3RhYmxlLWJvZHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLE1BQU0sRUFDTixRQUFRLEVBQ1IsU0FBUyxFQUNULE1BQU0sRUFDTixNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUF1QyxNQUFNLGtCQUFrQixDQUFDO0FBQzdHLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFXLFVBQVUsRUFBRSxXQUFXLEVBQW1CLE1BQU0sa0JBQWtCLENBQUM7QUFDNUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbkYsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixD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SUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3BFLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBQ0QsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNULElB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Z0JBQ3JFLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDMUYsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsVUFBVSxDQUFDLE1BQWEsRUFBRSxJQUFlO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQy9CLDRCQUE0QjtJQUM5QixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWMsRUFBRSxJQUE4QjtRQUN4RCxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDakIsQ0FBQztpSUFoTlUsbUJBQW1CO3FIQUFuQixtQkFBbUIsc05BS04sd0JBQXdCLHVGQ2xEbEQseTRNQWtKQSw0Q0RyR2EsbUJBQW1CLHlEQWI1QixPQUFPLG9GQUNQLGdCQUFnQixtSkFDaEIsV0FBVywrVkFDWCxlQUFlLG1EQUNmLGVBQWUsNGpCQUNmLGdCQUFnQiw2RkFDaEIsa0JBQWtCLHVEQUNsQixnQkFBZ0I7OzJGQU1QLG1CQUFtQjtrQkFqQi9CLFNBQVM7K0JBQ0UsR0FBRyxnQkFBZ0IsRUFBRSxjQUNuQixJQUFJLFdBQ1A7d0JBQ1AsT0FBTzt3QkFDUCxnQkFBZ0I7d0JBQ2hCLFdBQVc7d0JBQ1gsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsa0JBQWtCO3dCQUNsQixnQkFBZ0I7cUJBQ2pCLGlCQUVjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgaW5qZWN0LFxyXG4gIGNvbXB1dGVkLFxyXG4gIHZpZXdDaGlsZCxcclxuICBzaWduYWwsXHJcbiAgZWZmZWN0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhUYWJsZUJvZHlQcmVmaXgsIFhUYWJsZUJvZHlQcm9wZXJ0eSwgWFRhYmxlUm93LCBYVGFibGVDb2x1bW4sIFhUYWJsZUNlbGwgfSBmcm9tICcuL3RhYmxlLnByb3BlcnR5JztcclxuaW1wb3J0IHsgWFJlbW92ZU5nVGFnLCBYUmVzaXplLCBYTnVtYmVyLCBYU3RyaXBUYWdzLCBYUGFyZW50UGF0aCwgWFJlc2l6ZU9ic2VydmVyIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCwgTmdDbGFzcywgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCwgU2Nyb2xsaW5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XHJcbmltcG9ydCB7IG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBYRW1wdHlDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9lbXB0eSc7XHJcbmltcG9ydCB7IFhPdXRsZXREaXJlY3RpdmUgfSBmcm9tICdAbmctbmVzdC91aS9vdXRsZXQnO1xyXG5pbXBvcnQgeyBYQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9jaGVja2JveCc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBYQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvYnV0dG9uJztcclxuaW1wb3J0IHsgWFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYVGFibGVCb2R5UHJlZml4fWAsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBOZ0NsYXNzLFxyXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgWEVtcHR5Q29tcG9uZW50LFxyXG4gICAgU2Nyb2xsaW5nTW9kdWxlLFxyXG4gICAgWE91dGxldERpcmVjdGl2ZSxcclxuICAgIFhDaGVja2JveENvbXBvbmVudCxcclxuICAgIFhCdXR0b25Db21wb25lbnRcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1ib2R5LmNvbXBvbmVudC5odG1sJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYVGFibGVCb2R5Q29tcG9uZW50IGV4dGVuZHMgWFRhYmxlQm9keVByb3BlcnR5IGltcGxlbWVudHMgT25Jbml0IHtcclxuICByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xyXG4gIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pO1xyXG4gIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgdGJvZHkgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCd0Ym9keScpO1xyXG4gIHZpcnR1YWxCb2R5ID0gdmlld0NoaWxkKENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCk7XHJcbiAgdGFibGUgPSBpbmplY3QoWFRhYmxlQ29tcG9uZW50LCB7IG9wdGlvbmFsOiB0cnVlIH0pITtcclxuICBwcml2YXRlIGRvYyA9IGluamVjdChET0NVTUVOVCk7XHJcbiAgcHJpdmF0ZSB1blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgcmVzaXplT2JzZXJ2ZXIhOiBYUmVzaXplT2JzZXJ2ZXI7XHJcbiAgdGJvZHlTdHlsZSA9IHNpZ25hbDx7IFtwcm9wZXJ0eTogc3RyaW5nXTogYW55IH0+KHt9KTtcclxuXHJcbiAgaXNFbXB0eSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZGF0YSgpLmxlbmd0aCA9PT0gMCk7XHJcbiAgZ2V0Um93SGVpZ2h0ID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMucm93SGVpZ2h0KCkgPT0gMCA/ICcnIDogdGhpcy5yb3dIZWlnaHQoKSkpO1xyXG4gIGdldEl0ZW1TaXplID0gY29tcHV0ZWQoKCkgPT5cclxuICAgIHRoaXMucm93SGVpZ2h0KCkgIT09IDAgJiYgdGhpcy5pdGVtU2l6ZSgpID4gdGhpcy5yb3dIZWlnaHQoKSA/IHRoaXMucm93SGVpZ2h0KCkgOiB0aGlzLml0ZW1TaXplKClcclxuICApO1xyXG4gIGRvY0NoYW5nZWQgPSB0b1NpZ25hbChcclxuICAgIGZyb21FdmVudCh0aGlzLmRvYy5kZWZhdWx0VmlldyEsICdyZXNpemUnKS5waXBlKG1hcCgoKSA9PiB0aGlzLmRvYy5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgpKVxyXG4gICk7XHJcblxyXG4gIGJvZHlIZWlnaHRTaWduYWwgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBjb25zdCBhZGFwdGlvbkhlaWdodCA9IHRoaXMuYWRhcHRpb25IZWlnaHQoKTtcclxuICAgIGlmIChhZGFwdGlvbkhlaWdodCAmJiBhZGFwdGlvbkhlaWdodCA+IDApIHtcclxuICAgICAgdGhpcy5kb2NDaGFuZ2VkKCk7XHJcbiAgICAgIGNvbnN0IGNhcHRpb25IZWlnaHQgPSB0aGlzLnRhYmxlLmNhcHRpb24oKT8ubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQgfHwgMDtcclxuICAgICAgbGV0IGhlYWRIZWlnaHQgPSAwO1xyXG4gICAgICBmb3IgKGxldCB0aGVhZCBvZiB0aGlzLnRhYmxlLnRoZWFkcygpKSB7XHJcbiAgICAgICAgaGVhZEhlaWdodCArPSB0aGVhZC5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBmb290SGVpZ2h0ID0gdGhpcy50YWJsZS50Zm9vdCgpPy5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodCB8fCAwO1xyXG4gICAgICBjb25zdCBwYWdpbmF0aW9uSGVpZ2h0ID0gdGhpcy50YWJsZS5wYWdpbmF0aW9uKCk/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQgfHwgMDtcclxuICAgICAgbGV0IGJvZHlIZWlnaHQgPVxyXG4gICAgICAgIHRoaXMuZG9jUGVyY2VudCgpICogdGhpcy5kb2MuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCAtXHJcbiAgICAgICAgY2FwdGlvbkhlaWdodCAtXHJcbiAgICAgICAgaGVhZEhlaWdodCAtXHJcbiAgICAgICAgZm9vdEhlaWdodCAtXHJcbiAgICAgICAgcGFnaW5hdGlvbkhlaWdodCAtXHJcbiAgICAgICAgYWRhcHRpb25IZWlnaHQ7XHJcbiAgICAgIGlmIChib2R5SGVpZ2h0IDwgMCkgYm9keUhlaWdodCA9IDA7XHJcbiAgICAgIHJldHVybiBib2R5SGVpZ2h0O1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2Nyb2xsKCk/LnkgJiYgIXRoaXMuYm9keUhlaWdodCgpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNjcm9sbCgpIS55O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuYm9keUhlaWdodCgpO1xyXG4gIH0pO1xyXG5cclxuICBtaW5CdWZmZXJQeFNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIGNvbnN0IGFkYXB0aW9uSGVpZ2h0ID0gdGhpcy5hZGFwdGlvbkhlaWdodCgpO1xyXG4gICAgaWYgKGFkYXB0aW9uSGVpZ2h0ICYmIGFkYXB0aW9uSGVpZ2h0ID4gMCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5ib2R5SGVpZ2h0KCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5taW5CdWZmZXJQeCgpO1xyXG4gIH0pO1xyXG5cclxuICBtYXhCdWZmZXJQeFNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIGNvbnN0IGFkYXB0aW9uSGVpZ2h0ID0gdGhpcy5hZGFwdGlvbkhlaWdodCgpO1xyXG4gICAgaWYgKGFkYXB0aW9uSGVpZ2h0ICYmIGFkYXB0aW9uSGVpZ2h0ID4gMCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5ib2R5SGVpZ2h0KCkhICogMS4yO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMubWF4QnVmZmVyUHgoKTtcclxuICB9KTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgZWZmZWN0KCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMudmlydHVhbEJvZHkoKSkge1xyXG4gICAgICAgIHRoaXMudmlydHVhbEJvZHkoKSFbJ19zY3JvbGxTdHJhdGVneSddWydfbWluQnVmZmVyUHgnXSA9IHRoaXMubWluQnVmZmVyUHhTaWduYWwoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBlZmZlY3QoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy52aXJ0dWFsQm9keSgpKSB7XHJcbiAgICAgICAgdGhpcy52aXJ0dWFsQm9keSgpIVsnX3Njcm9sbFN0cmF0ZWd5J11bJ19tYXhCdWZmZXJQeCddID0gdGhpcy5tYXhCdWZmZXJQeFNpZ25hbCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgWFJlbW92ZU5nVGFnKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICAgIGlmICh0aGlzLmxldmVsKCkgPiAwKSBYUmVtb3ZlTmdUYWcodGhpcy50Ym9keSgpLm5hdGl2ZUVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy50YWJsZS52aXJ0dWFsQm9keS5zZXQodGhpcy52aXJ0dWFsQm9keSgpISk7XHJcbiAgICAvLyB0aGlzLnRhYmxlLmJvZHlDaGFuZ2UgPSAoKSA9PiB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB0aGlzLnNldFN1YmplY3QoKTtcclxuICAgIHRoaXMuc2V0U2Nyb2xsKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMudW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMudW5TdWJqZWN0LmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XHJcbiAgfVxyXG5cclxuICBzZXRTdWJqZWN0KCkge1xyXG4gICAgaWYgKHRoaXMudmlydHVhbEJvZHkoKSkge1xyXG4gICAgICB0aGlzLnRhYmxlLnNjcm9sbENvbnRlbnRFbGUuc2V0KFxyXG4gICAgICAgIHRoaXMudmlydHVhbEJvZHkoKSEuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVyJykgYXMgSFRNTEVsZW1lbnRcclxuICAgICAgKTtcclxuICAgICAgaWYgKHRoaXMuc2Nyb2xsKCk/LngpIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudGFibGUuc2Nyb2xsQ29udGVudEVsZSgpISwgJ3dpZHRoJywgYCR7dGhpcy5zY3JvbGwoKT8ueH1weGApO1xyXG4gICAgICB9XHJcbiAgICAgIFhSZXNpemUodGhpcy50YWJsZS50YWJsZSgpLm5hdGl2ZUVsZW1lbnQsIHRoaXMudGFibGUuc2Nyb2xsQ29udGVudEVsZSgpISlcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51blN1YmplY3QpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSB4LnJlc2l6ZU9ic2VydmVyO1xyXG4gICAgICAgICAgdGhpcy5zZXRTY3JvbGwoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnRhYmxlLnNjcm9sbENvbnRlbnRFbGUoKSkge1xyXG4gICAgICBmcm9tRXZlbnQodGhpcy52aXJ0dWFsQm9keSgpIS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdzY3JvbGwnKVxyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuU3ViamVjdCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgZWxlID0geC5zcmNFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgICAgdGhpcy50YWJsZS5zY3JvbGxUb3Auc2V0KGVsZS5zY3JvbGxUb3ApO1xyXG4gICAgICAgICAgdGhpcy50YWJsZS5zY3JvbGxMZWZ0LnNldChlbGUuc2Nyb2xsTGVmdCk7XHJcbiAgICAgICAgICBpZiAoZWxlLnNjcm9sbExlZnQgPj0gMCAmJiB0aGlzLnRhYmxlLnRoZWFkcygpLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgdGhlYWQgb2YgdGhpcy50YWJsZS50aGVhZHMoKSkge1xyXG4gICAgICAgICAgICAgIHRoZWFkLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCA9IHRoaXMudGFibGUuc2Nyb2xsTGVmdCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnRhYmxlLnNjcm9sbExlZnRNYXguc2V0KGVsZS5zY3JvbGxMZWZ0ICsgZWxlLmNsaWVudFdpZHRoID09PSBlbGUuc2Nyb2xsV2lkdGgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0U2Nyb2xsKCkge1xyXG4gICAgaWYgKCF0aGlzLnZpcnR1YWxCb2R5KCkpIHJldHVybjtcclxuICAgIGNvbnN0IGVsZSA9IHRoaXMudmlydHVhbEJvZHkoKSEuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgY29uc3QgaGFzWSA9IGVsZS5zY3JvbGxIZWlnaHQgPiB0aGlzLmJvZHlIZWlnaHRTaWduYWwoKSE7XHJcbiAgICBjb25zdCBoYXNYID0gdGhpcy50YWJsZS5zY3JvbGxDb250ZW50RWxlKCkhLmNsaWVudFdpZHRoID4gZWxlLmNsaWVudFdpZHRoO1xyXG5cclxuICAgIGlmICghdGhpcy50YWJsZS5oYXNTY3JvbGxZKCkgJiYgaGFzWSkge1xyXG4gICAgICB0aGlzLnRhYmxlLmhhc1Njcm9sbFkuc2V0KHRydWUpO1xyXG4gICAgICB0aGlzLnRhYmxlLnNjcm9sbFlXaWR0aC5zZXQoZWxlLm9mZnNldFdpZHRoIC0gZWxlLmNsaWVudFdpZHRoKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy50YWJsZS5oYXNTY3JvbGxZKCkgJiYgIWhhc1kpIHtcclxuICAgICAgdGhpcy50YWJsZS5oYXNTY3JvbGxZLnNldChmYWxzZSk7XHJcbiAgICAgIHRoaXMudGFibGUuc2Nyb2xsWVdpZHRoLnNldCgwKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMudGFibGUuaGFzU2Nyb2xsWCgpICYmIGhhc1gpIHtcclxuICAgICAgdGhpcy50YWJsZS5oYXNTY3JvbGxYLnNldCh0cnVlKTtcclxuICAgICAgdGhpcy50YWJsZS5zY3JvbGxYSGVpZ2h0LnNldChlbGUub2Zmc2V0SGVpZ2h0IC0gZWxlLmNsaWVudEhlaWdodCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudGFibGUuaGFzU2Nyb2xsWCgpICYmICFoYXNYKSB7XHJcbiAgICAgIHRoaXMudGFibGUuaGFzU2Nyb2xsWC5zZXQoZmFsc2UpO1xyXG4gICAgICB0aGlzLnRhYmxlLnNjcm9sbFhIZWlnaHQuc2V0KDApO1xyXG4gICAgICB0aGlzLnRhYmxlLnNjcm9sbFhXaWR0aC5zZXQobnVsbCk7XHJcbiAgICB9XHJcbiAgICBpZiAoaGFzWCkge1xyXG4gICAgICB0aGlzLnRhYmxlLnNjcm9sbFhXaWR0aC5zZXQoZWxlLm9mZnNldFdpZHRoICsgZWxlLnNjcm9sbFdpZHRoIC0gZWxlLmNsaWVudFdpZHRoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnZpcnR1YWxCb2R5KCkhLmNoZWNrVmlld3BvcnRTaXplKCk7XHJcblxyXG4gICAgLy8gdGhpcy50YWJsZS5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2V0U3R5bGUoKSB7XHJcbiAgICBsZXQgaGVpZ2h0ID0gdGhpcy5yb3dIZWlnaHQoKSA9PT0gMCA/ICcnIDogdGhpcy5yb3dIZWlnaHQoKTtcclxuICAgIGlmICh0aGlzLmNlbGxDb25maWcoKSAmJiB0aGlzLmNlbGxDb25maWcoKSEuY2VsbHMpIHtcclxuICAgICAgY29uc3Qgc3B0ID0gdGhpcy5jZWxsQ29uZmlnKCkhLmNlbGxzPy5tYXAoKHgpID0+IHtcclxuICAgICAgICBjb25zdCBncmlkQXJlYVNwdCA9IHguZ3JpZEFyZWE/LnNwbGl0KCcvJyk7XHJcbiAgICAgICAgcmV0dXJuIGdyaWRBcmVhU3B0ICYmIGdyaWRBcmVhU3B0Lmxlbmd0aCA+IDMgPyBOdW1iZXIoZ3JpZEFyZWFTcHRbMl0pIDogMjtcclxuICAgICAgfSk7XHJcbiAgICAgIGhlaWdodCA9ICgoTWF0aC5tYXgoLi4uc3B0ISkgLSAxKSAqIChoZWlnaHQgYXMgbnVtYmVyKSkgYXMgWE51bWJlcjtcclxuICAgIH1cclxuICAgIHRoaXMudGJvZHlTdHlsZS5zZXQoe1xyXG4gICAgICBoZWlnaHQ6IGAke2hlaWdodH1weGBcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW5kZXgoaW5kZXg6IG51bWJlciwgaXRlbTogWFRhYmxlUm93KSB7XHJcbiAgICBpZiAoIWlzTmFOKGluZGV4KSkgcmV0dXJuIGluZGV4O1xyXG4gICAgY29uc29sZS5sb2codGhpcy5kYXRhKCksIGl0ZW0pO1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YSgpLmluZGV4T2YoaXRlbSk7XHJcbiAgfVxyXG5cclxuICBnZXRGbGV4KGNvbHVtbjogWFRhYmxlQ29sdW1uKSB7XHJcbiAgICBpZiAoY29sdW1uLndpZHRoKSByZXR1cm4gJ25vbmUnO1xyXG4gICAgaWYgKCFjb2x1bW4uZmxleCkgcmV0dXJuIDE7XHJcbiAgICByZXR1cm4gY29sdW1uLmZsZXg7XHJcbiAgfVxyXG5cclxuICBnZXRUaXRsZShyb3c6IFhUYWJsZVJvdywgY29sdW1uOiBYVGFibGVDZWxsIHwgYW55KSB7XHJcbiAgICBsZXQgaXQgPSByb3dbY29sdW1uLmlkIGFzIHN0cmluZ107XHJcbiAgICByZXR1cm4gaXQgPyBYU3RyaXBUYWdzKGl0KSA6ICcnO1xyXG4gIH1cclxuXHJcbiAgcm93Q2xpY2soZXZlbnQ6IEV2ZW50LCByb3c6IFhUYWJsZVJvdykge1xyXG4gICAgaWYgKHJvdy5kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgaWYgKHRoaXMudGFibGUuYWxsb3dDaGVja1JvdygpICYmIHRoaXMudGFibGUucm93Q2hlY2tlZCgpKSB7XHJcbiAgICAgIGlmICghWFBhcmVudFBhdGgoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5pbmNsdWRlcygneC1jaGVja2JveCcpKSB7XHJcbiAgICAgICAgcm93W3RoaXMudGFibGUucm93Q2hlY2tlZCgpIS5pZF0gPSAhcm93W3RoaXMudGFibGUucm93Q2hlY2tlZCgpIS5pZF07XHJcbiAgICAgICAgdGhpcy50YWJsZS5ib2R5Q2hlY2tlZChyb3dbdGhpcy50YWJsZS5yb3dDaGVja2VkKCkhLmlkXSwgdGhpcy50YWJsZS5yb3dDaGVja2VkKCkhLCByb3cpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmFjdGl2YXRlZFJvdy5zZXQocm93KTtcclxuICB9XHJcblxyXG4gIG9uRXhwYW5kZWQoX2V2ZW50OiBFdmVudCwgbm9kZTogWFRhYmxlUm93KSB7XHJcbiAgICBub2RlLmV4cGFuZGVkID0gIW5vZGUuZXhwYW5kZWQ7XHJcbiAgICAvLyB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB0cmFja0J5SXRlbShfaW5kZXg6IG51bWJlciwgaXRlbTogWFRhYmxlUm93IHwgWFRhYmxlQ29sdW1uKSB7XHJcbiAgICByZXR1cm4gaXRlbS5pZDtcclxuICB9XHJcbn1cclxuIiwiPHRib2R5ICN0Ym9keT5cclxuICBAaWYgKGNlbGxDb25maWcoKSkge1xyXG4gICAgQGZvciAocm93IG9mIGRhdGEoKTsgdHJhY2sgcm93LmlkOyBsZXQgaSA9ICRpbmRleCkge1xyXG4gICAgICA8dHIgW3N0eWxlLmdyaWRUZW1wbGF0ZUNvbHVtbnNdPVwiY2VsbENvbmZpZygpIS5ncmlkVGVtcGxhdGVDb2x1bW5zXCI+XHJcbiAgICAgICAgQGZvciAoY29sdW1uIG9mIGNlbGxDb25maWcoKSEuY2VsbHM7IHRyYWNrIGNvbHVtbjsgbGV0IGogPSAkaW5kZXgpIHtcclxuICAgICAgICAgIDx0ZFxyXG4gICAgICAgICAgICBbdGl0bGVdPVwiZ2V0VGl0bGUocm93LCBjb2x1bW4pXCJcclxuICAgICAgICAgICAgW2NsYXNzLngtdGFibGUtc3RpY2t5XT1cInRhYmxlLmdldFN0aWNreUxlZnQoY29sdW1uKSB8fCB0YWJsZS5nZXRTdGlja3lSaWdodChjb2x1bW4pXCJcclxuICAgICAgICAgICAgW2NsYXNzLngtdGFibGUtc3RpY2t5LWxlZnRdPVwidGFibGUuZ2V0U3RpY2t5TGVmdChjb2x1bW4pXCJcclxuICAgICAgICAgICAgW2NsYXNzLngtdGFibGUtc3RpY2t5LXJpZ2h0XT1cInRhYmxlLmdldFN0aWNreVJpZ2h0KGNvbHVtbilcIlxyXG4gICAgICAgICAgICBbY2xhc3MueC10YWJsZS1zdGlja3ktbGVmdC1sYXN0XT1cInRhYmxlLmdldFN0aWNreUxlZnRMYXN0KGNvbHVtbilcIlxyXG4gICAgICAgICAgICBbY2xhc3MueC10YWJsZS1zdGlja3ktcmlnaHQtZmlyc3RdPVwidGFibGUuZ2V0U3RpY2t5UmlnaHRGaXJzdChjb2x1bW4pXCJcclxuICAgICAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwiY29sdW1uLmxlZnRcIlxyXG4gICAgICAgICAgICBbc3R5bGUucmlnaHQucHhdPVwiY29sdW1uLnJpZ2h0XCJcclxuICAgICAgICAgICAgW3N0eWxlLmdyaWQtYXJlYV09XCJjb2x1bW4uZ3JpZEFyZWFcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2VsbFRwbDsgY29udGV4dDogeyBjb2x1bW46IGNvbHVtbiwgcm93OiByb3csIGk6IGkgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC90ZD5cclxuICAgICAgICB9XHJcbiAgICAgIDwvdHI+XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAaWYgKHZpcnR1YWxTY3JvbGwoKSkge1xyXG4gICAgICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0XHJcbiAgICAgICAgI3ZpcnR1YWxCb2R5XHJcbiAgICAgICAgW2l0ZW1TaXplXT1cImdldEl0ZW1TaXplKClcIlxyXG4gICAgICAgIFttaW5CdWZmZXJQeF09XCJtaW5CdWZmZXJQeFNpZ25hbCgpXCJcclxuICAgICAgICBbbWF4QnVmZmVyUHhdPVwibWF4QnVmZmVyUHhTaWduYWwoKVwiXHJcbiAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJib2R5SGVpZ2h0U2lnbmFsKClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHRyXHJcbiAgICAgICAgICAqY2RrVmlydHVhbEZvcj1cImxldCByb3cgb2YgZGF0YSgpOyBsZXQgaW5kZXggPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeUl0ZW1cIlxyXG4gICAgICAgICAgW2NsYXNzLngtdGFibGUtYWN0aXZhdGVkXT1cImFsbG93U2VsZWN0Um93KCkgJiYgYWN0aXZhdGVkUm93KCk/LmlkID09PSByb3cuaWRcIlxyXG4gICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJnZXRSb3dIZWlnaHQoKVwiXHJcbiAgICAgICAgICBbc3R5bGUubWluLWhlaWdodC5weF09XCJnZXRSb3dIZWlnaHQoKVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwicm93Q2xpY2soJGV2ZW50LCByb3cpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8IS0tIHJvd0hlaWdodCDkuLogMCDnmoTml7blgJnvvIxpbmRleCDkuIvmoIfojrflj5bkuI3liLAgLS0+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicm93VHBsOyBjb250ZXh0OiB7IHJvdzogcm93LCBpOiBnZXRJbmRleChpbmRleCwgcm93KSB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC90cj5cclxuICAgICAgPC9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgQGZvciAocm93IG9mIGRhdGEoKTsgdHJhY2sgcm93LmlkOyBsZXQgaSA9ICRpbmRleCkge1xyXG4gICAgICAgIDx0clxyXG4gICAgICAgICAgW2NsYXNzLngtdGFibGUtYWN0aXZhdGVkXT1cImFsbG93U2VsZWN0Um93KCkgJiYgYWN0aXZhdGVkUm93KCk/LmlkID09PSByb3cuaWRcIlxyXG4gICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJnZXRSb3dIZWlnaHQoKVwiXHJcbiAgICAgICAgICBbc3R5bGUubWluLWhlaWdodC5weF09XCJnZXRSb3dIZWlnaHQoKVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwicm93Q2xpY2soJGV2ZW50LCByb3cpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicm93VHBsOyBjb250ZXh0OiB7IHJvdzogcm93LCBpOiBpIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L3RyPlxyXG4gICAgICAgIEBpZiAodGFibGUudHJlZVRhYmxlKCkgJiYgcm93LmNoaWxkcmVuICYmIHJvdy5leHBhbmRlZCkge1xyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIngtdGFibGUtY2hpbGRyZW5cIiBbY2xhc3MueC10YWJsZS1leHBhbmRUcGxdPVwiZXhwYW5kVHBsKClcIj5cclxuICAgICAgICAgICAgPHgtdGFibGUtYm9keVxyXG4gICAgICAgICAgICAgIFtkYXRhXT1cInJvdy5jaGlsZHJlblwiXHJcbiAgICAgICAgICAgICAgW2NvbHVtbnNdPVwidGFibGUuY29sdW1ucygpXCJcclxuICAgICAgICAgICAgICBbaXRlbVNpemVdPVwidGFibGUuaXRlbVNpemUoKVwiXHJcbiAgICAgICAgICAgICAgW3Jvd0hlaWdodF09XCJ0YWJsZS5yb3dIZWlnaHQoKVwiXHJcbiAgICAgICAgICAgICAgW2NvbHVtblRwbF09XCJ0YWJsZS5ib2R5Q29sdW1uVHBsKClcIlxyXG4gICAgICAgICAgICAgIFthbGxvd1NlbGVjdFJvd109XCJ0YWJsZS5hbGxvd1NlbGVjdFJvdygpXCJcclxuICAgICAgICAgICAgICBbcm93Q2xhc3NdPVwidGFibGUucm93Q2xhc3MoKVwiXHJcbiAgICAgICAgICAgICAgW2NlbGxDb25maWddPVwidGFibGUuY2VsbENvbmZpZygpPy50Ym9keVwiXHJcbiAgICAgICAgICAgICAgWyhhY3RpdmF0ZWRSb3cpXT1cInRhYmxlLmFjdGl2YXRlZFJvd1wiXHJcbiAgICAgICAgICAgICAgW2V4cGFuZGVkQWxsXT1cImV4cGFuZGVkQWxsKClcIlxyXG4gICAgICAgICAgICAgIFtleHBhbmRUcGxdPVwiZXhwYW5kVHBsKClcIlxyXG4gICAgICAgICAgICAgIFtsZXZlbF09XCJyb3cubGV2ZWwhICsgMVwiXHJcbiAgICAgICAgICAgID48L3gtdGFibGUtYm9keT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBAaWYgKHRhYmxlLnNob3dFbXB0eSgpICYmIGlzRW1wdHkoKSAmJiBsZXZlbCgpID09PSAwKSB7XHJcbiAgICA8eC1lbXB0eSBbaW1nXT1cInRhYmxlLmVtcHR5SW1nKCkhXCIgW2NvbnRlbnRdPVwidGFibGUuZW1wdHlDb250ZW50KCkhXCI+PC94LWVtcHR5PlxyXG4gIH1cclxuPC90Ym9keT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcm93VHBsIGxldC1yb3c9XCJyb3dcIiBsZXQtaT1cImlcIj5cclxuICBAaWYgKGxldmVsKCkgPiAwICYmIGV4cGFuZFRwbCgpKSB7XHJcbiAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwiZXhwYW5kVHBsKCk7IGNvbnRleHQ6IHsgJHJvdzogcm93LCAkaW5kZXg6IGksICRsZXZlbDogbGV2ZWwoKSB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgfSBAZWxzZSBpZiAobGV2ZWwoKSA9PT0gMCB8fCAhZXhwYW5kVHBsKCkpIHtcclxuICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJyb3dEZWZhdWx0OyBjb250ZXh0OiB7IHJvdzogcm93LCBpOiBpLCBsZXZlbDogbGV2ZWwoKSB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNyb3dEZWZhdWx0IGxldC1yb3c9XCJyb3dcIiBsZXQtaT1cImlcIj5cclxuICBAZm9yIChjb2x1bW4gb2YgY29sdW1ucygpOyB0cmFjayBjb2x1bW4uaWQ7IGxldCBqID0gJGluZGV4KSB7XHJcbiAgICA8dGRcclxuICAgICAgW3N0eWxlLndpZHRoLnB4XT1cImNvbHVtbi53aWR0aFwiXHJcbiAgICAgIFtzdHlsZS5mbGV4XT1cImdldEZsZXgoY29sdW1uKVwiXHJcbiAgICAgIFt0aXRsZV09XCJnZXRUaXRsZShyb3csIGNvbHVtbilcIlxyXG4gICAgICBbY2xhc3MueC10YWJsZS1kcmFnZ2luZ109XCJjb2x1bW4uZHJhZ2dpbmdcIlxyXG4gICAgICBbY2xhc3MueC10YWJsZS1zdGlja3ldPVwidGFibGUuZ2V0U3RpY2t5TGVmdChjb2x1bW4pIHx8IHRhYmxlLmdldFN0aWNreVJpZ2h0KGNvbHVtbilcIlxyXG4gICAgICBbY2xhc3MueC10YWJsZS1zdGlja3ktbGVmdF09XCJ0YWJsZS5nZXRTdGlja3lMZWZ0KGNvbHVtbilcIlxyXG4gICAgICBbY2xhc3MueC10YWJsZS1zdGlja3ktcmlnaHRdPVwidGFibGUuZ2V0U3RpY2t5UmlnaHQoY29sdW1uKVwiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreS1sZWZ0LWxhc3RdPVwidGFibGUuZ2V0U3RpY2t5TGVmdExhc3QoY29sdW1uKVwiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreS1yaWdodC1maXJzdF09XCJ0YWJsZS5nZXRTdGlja3lSaWdodEZpcnN0KGNvbHVtbilcIlxyXG4gICAgICBbc3R5bGUubGVmdC5weF09XCJjb2x1bW4ubGVmdFwiXHJcbiAgICAgIFtzdHlsZS5yaWdodC5weF09XCJjb2x1bW4ucmlnaHRcIlxyXG4gICAgICBbbmdDbGFzc109XCIhcm93Q2xhc3MoKSA/IHt9IDogcm93Q2xhc3MoKSEocm93LCBpKVwiXHJcbiAgICA+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cImNlbGxUcGw7IGNvbnRleHQ6IHsgY29sdW1uOiBjb2x1bW4sIHJvdzogcm93LCBpOiBpIH1cIj48L25nLXRlbXBsYXRlPlxyXG4gICAgPC90ZD5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2NlbGxUcGwgbGV0LWNvbHVtbj1cImNvbHVtblwiIGxldC1yb3c9XCJyb3dcIiBsZXQtaT1cImlcIj5cclxuICBAc3dpdGNoIChjb2x1bW4udHlwZSkge1xyXG4gICAgQGNhc2UgKCdjaGVja2JveCcpIHtcclxuICAgICAgPHgtY2hlY2tib3hcclxuICAgICAgICBbZGF0YV09XCJbeyBpZDogdHJ1ZSwgbGFiZWw6ICcnIH1dXCJcclxuICAgICAgICBbKG5nTW9kZWwpXT1cInJvd1tjb2x1bW4uaWRdXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwicm93LmRpc2FibGVkXCJcclxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ0YWJsZS5ib2R5Q2hlY2tlZCgkZXZlbnQsIGNvbHVtbiwgcm93KVwiXHJcbiAgICAgICAgc2luZ2xlXHJcbiAgICAgID48L3gtY2hlY2tib3g+XHJcbiAgICB9XHJcbiAgICBAY2FzZSAoJ2luZGV4Jykge1xyXG4gICAgICA8ZGl2Pnt7IHRhYmxlLmdldEluZGV4KGkpIH19PC9kaXY+XHJcbiAgICB9XHJcbiAgICBAZGVmYXVsdCB7XHJcbiAgICAgIEBpZiAodGFibGUuaXNFeHBhbmRDb2x1bW4oY29sdW1uKSkge1xyXG4gICAgICAgIDx4LWJ1dHRvblxyXG4gICAgICAgICAgW2NsYXNzLmlzLWxlYWZdPVwiIXJvdy5sZWFmXCJcclxuICAgICAgICAgIFtjbGFzcy5pcy1leHBhbmRlZF09XCJyb3cuZXhwYW5kZWRcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9uRXhwYW5kZWQoJGV2ZW50LCByb3cpXCJcclxuICAgICAgICAgIGljb249XCJmdG8tY2hldnJvbi1yaWdodFwiXHJcbiAgICAgICAgICBzaXplPVwibWluaVwiXHJcbiAgICAgICAgICBvbmx5SWNvblxyXG4gICAgICAgICAgZmxhdFxyXG4gICAgICAgICAgcGxhaW5cclxuICAgICAgICAgIGNsYXNzPVwieC10YWJsZS1leHBhbmRcIlxyXG4gICAgICAgICAgW3N0eWxlLm1hcmdpbi1sZWZ0LnJlbV09XCJyb3cubGV2ZWwgLSAwLjVcIlxyXG4gICAgICAgID48L3gtYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqeE91dGxldD1cImNvbHVtblRwbCgpW2NvbHVtbi5pZF07IGNvbnRleHQ6IHsgJGNvbHVtbjogY29sdW1uLCAkcm93OiByb3csICRpbmRleDogdGFibGUuZ2V0SW5kZXgoaSkgfVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwidGFibGUuYm9keVRkVHBsKCk7IGNvbnRleHQ6IHsgJGNvbHVtbjogY29sdW1uLCAkcm93OiByb3csICRpbmRleDogdGFibGUuZ2V0SW5kZXgoaSkgfVwiPlxyXG4gICAgICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cInJvd1tjb2x1bW4uaWRdXCIgW3N0eWxlLnRleHQtYWxpZ25dPVwiY29sdW1uLnRleHRBbGlnblwiPjwvZGl2PlxyXG4gICAgICAgICAge3sgdGFibGUucm93RXhwYW5kKCkgJiYgdGFibGUucm93RXhwYW5kKCkhLmlkID09PSBjb2x1bW4uaWQgPyAneC10YWJsZS1ib2R5LWxldmVsLScgKyByb3cubGV2ZWwgOiAnJyB9fVxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIH1cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
236
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYm9keS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90YWJsZS90YWJsZS1ib2R5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RhYmxlL3RhYmxlLWJvZHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLE1BQU0sRUFDTixRQUFRLEVBQ1IsU0FBUyxFQUNULE1BQU0sRUFDTixNQUFNLEVBR1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUF1QyxNQUFNLGtCQUFrQixDQUFDO0FBQzdHLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFXLFVBQVUsRUFBRSxXQUFXLEVBQW1CLE1BQU0sa0JBQWtCLENBQUM7QUFDNUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixD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QUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUMvQiw0QkFBNEI7SUFDOUIsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFjLEVBQUUsSUFBOEI7UUFDeEQsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7aUlBOU5VLG1CQUFtQjtxSEFBbkIsbUJBQW1CLHNOQUtOLHdCQUF3Qix1RkNuRGxELHk0TUFrSkEsNENEcEdhLG1CQUFtQix5REFiNUIsT0FBTyxvRkFDUCxnQkFBZ0IsbUpBQ2hCLFdBQVcsK1ZBQ1gsZUFBZSxtREFDZixlQUFlLDRqQkFDZixnQkFBZ0IsNkZBQ2hCLGtCQUFrQix1REFDbEIsZ0JBQWdCOzsyRkFNUCxtQkFBbUI7a0JBakIvQixTQUFTOytCQUNFLEdBQUcsZ0JBQWdCLEVBQUUsY0FDbkIsSUFBSSxXQUNQO3dCQUNQLE9BQU87d0JBQ1AsZ0JBQWdCO3dCQUNoQixXQUFXO3dCQUNYLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3FCQUNqQixpQkFFYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIFJlbmRlcmVyMixcclxuICBFbGVtZW50UmVmLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIGluamVjdCxcclxuICBjb21wdXRlZCxcclxuICB2aWV3Q2hpbGQsXHJcbiAgc2lnbmFsLFxyXG4gIGVmZmVjdCxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIEFmdGVyVmlld0NoZWNrZWRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFRhYmxlQm9keVByZWZpeCwgWFRhYmxlQm9keVByb3BlcnR5LCBYVGFibGVSb3csIFhUYWJsZUNvbHVtbiwgWFRhYmxlQ2VsbCB9IGZyb20gJy4vdGFibGUucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYUmVtb3ZlTmdUYWcsIFhSZXNpemUsIFhOdW1iZXIsIFhTdHJpcFRhZ3MsIFhQYXJlbnRQYXRoLCBYUmVzaXplT2JzZXJ2ZXIgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IERPQ1VNRU5ULCBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0LCBTY3JvbGxpbmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFhFbXB0eUNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2VtcHR5JztcclxuaW1wb3J0IHsgWE91dGxldERpcmVjdGl2ZSB9IGZyb20gJ0BuZy1uZXN0L3VpL291dGxldCc7XHJcbmltcG9ydCB7IFhDaGVja2JveENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2NoZWNrYm94JztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFhCdXR0b25Db21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9idXR0b24nO1xyXG5pbXBvcnQgeyBYVGFibGVDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFRhYmxlQm9keVByZWZpeH1gLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdDbGFzcyxcclxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFhFbXB0eUNvbXBvbmVudCxcclxuICAgIFNjcm9sbGluZ01vZHVsZSxcclxuICAgIFhPdXRsZXREaXJlY3RpdmUsXHJcbiAgICBYQ2hlY2tib3hDb21wb25lbnQsXHJcbiAgICBYQnV0dG9uQ29tcG9uZW50XHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtYm9keS5jb21wb25lbnQuaHRtbCcsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFRhYmxlQm9keUNvbXBvbmVudCBleHRlbmRzIFhUYWJsZUJvZHlQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCB7XHJcbiAgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcclxuICBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTtcclxuICBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIHRib2R5ID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PigndGJvZHknKTtcclxuICB2aXJ0dWFsQm9keSA9IHZpZXdDaGlsZChDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQpO1xyXG4gIHRhYmxlID0gaW5qZWN0KFhUYWJsZUNvbXBvbmVudCwgeyBvcHRpb25hbDogdHJ1ZSB9KSE7XHJcbiAgcHJpdmF0ZSBkb2MgPSBpbmplY3QoRE9DVU1FTlQpO1xyXG4gIHByaXZhdGUgdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIHJlc2l6ZU9ic2VydmVyITogWFJlc2l6ZU9ic2VydmVyO1xyXG4gIHRib2R5U3R5bGUgPSBzaWduYWw8eyBbcHJvcGVydHk6IHN0cmluZ106IGFueSB9Pih7fSk7XHJcblxyXG4gIGlzRW1wdHkgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmRhdGEoKS5sZW5ndGggPT09IDApO1xyXG4gIGdldFJvd0hlaWdodCA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLnJvd0hlaWdodCgpID09IDAgPyAnJyA6IHRoaXMucm93SGVpZ2h0KCkpKTtcclxuICBnZXRJdGVtU2l6ZSA9IGNvbXB1dGVkKCgpID0+XHJcbiAgICB0aGlzLnJvd0hlaWdodCgpICE9PSAwICYmIHRoaXMuaXRlbVNpemUoKSA+IHRoaXMucm93SGVpZ2h0KCkgPyB0aGlzLnJvd0hlaWdodCgpIDogdGhpcy5pdGVtU2l6ZSgpXHJcbiAgKTtcclxuICBkb2NDbGllbnRIZWlnaHQgPSBzaWduYWwodGhpcy5kb2MuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCk7XHJcbiAgaGVhZEhlaWdodCA9IHNpZ25hbCgwKTtcclxuICBjYXB0aW9uSGVpZ2h0ID0gc2lnbmFsKDApO1xyXG4gIGZvb3RIZWlnaHQgPSBzaWduYWwoMCk7XHJcbiAgcGFnaW5hdGlvbkhlaWdodCA9IHNpZ25hbCgwKTtcclxuXHJcbiAgYm9keUhlaWdodFNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIGNvbnN0IGFkYXB0aW9uSGVpZ2h0ID0gdGhpcy5hZGFwdGlvbkhlaWdodCgpO1xyXG4gICAgaWYgKGFkYXB0aW9uSGVpZ2h0ICYmIGFkYXB0aW9uSGVpZ2h0ID4gMCkge1xyXG4gICAgICBsZXQgYm9keUhlaWdodCA9XHJcbiAgICAgICAgdGhpcy5kb2NQZXJjZW50KCkgKiB0aGlzLmRvY0NsaWVudEhlaWdodCgpIC1cclxuICAgICAgICB0aGlzLmNhcHRpb25IZWlnaHQoKSAtXHJcbiAgICAgICAgdGhpcy5oZWFkSGVpZ2h0KCkgLVxyXG4gICAgICAgIHRoaXMuZm9vdEhlaWdodCgpIC1cclxuICAgICAgICB0aGlzLnBhZ2luYXRpb25IZWlnaHQoKSAtXHJcbiAgICAgICAgYWRhcHRpb25IZWlnaHQ7XHJcbiAgICAgIGlmIChib2R5SGVpZ2h0IDwgMCkgYm9keUhlaWdodCA9IDA7XHJcbiAgICAgIHJldHVybiBib2R5SGVpZ2h0O1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2Nyb2xsKCk/LnkgJiYgIXRoaXMuYm9keUhlaWdodCgpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNjcm9sbCgpIS55O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuYm9keUhlaWdodCgpO1xyXG4gIH0pO1xyXG5cclxuICBtaW5CdWZmZXJQeFNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIGNvbnN0IGFkYXB0aW9uSGVpZ2h0ID0gdGhpcy5hZGFwdGlvbkhlaWdodCgpO1xyXG4gICAgaWYgKGFkYXB0aW9uSGVpZ2h0ICYmIGFkYXB0aW9uSGVpZ2h0ID4gMCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5ib2R5SGVpZ2h0U2lnbmFsKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5taW5CdWZmZXJQeCgpO1xyXG4gIH0pO1xyXG5cclxuICBtYXhCdWZmZXJQeFNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIGNvbnN0IGFkYXB0aW9uSGVpZ2h0ID0gdGhpcy5hZGFwdGlvbkhlaWdodCgpO1xyXG4gICAgaWYgKGFkYXB0aW9uSGVpZ2h0ICYmIGFkYXB0aW9uSGVpZ2h0ID4gMCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5ib2R5SGVpZ2h0U2lnbmFsKCkhICogMS4yO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMubWF4QnVmZmVyUHgoKTtcclxuICB9KTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgZWZmZWN0KCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMudmlydHVhbEJvZHkoKSkge1xyXG4gICAgICAgIHRoaXMudmlydHVhbEJvZHkoKSFbJ19zY3JvbGxTdHJhdGVneSddWydfbWluQnVmZmVyUHgnXSA9IHRoaXMubWluQnVmZmVyUHhTaWduYWwoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBlZmZlY3QoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy52aXJ0dWFsQm9keSgpKSB7XHJcbiAgICAgICAgdGhpcy52aXJ0dWFsQm9keSgpIVsnX3Njcm9sbFN0cmF0ZWd5J11bJ19tYXhCdWZmZXJQeCddID0gdGhpcy5tYXhCdWZmZXJQeFNpZ25hbCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgWFJlbW92ZU5nVGFnKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICAgIGlmICh0aGlzLmxldmVsKCkgPiAwKSBYUmVtb3ZlTmdUYWcodGhpcy50Ym9keSgpLm5hdGl2ZUVsZW1lbnQpO1xyXG5cclxuICAgIGZyb21FdmVudCh0aGlzLmRvYy5kZWZhdWx0VmlldyEsICdyZXNpemUnKVxyXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoMzApLCB0YWtlVW50aWwodGhpcy51blN1YmplY3QpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmRvY0NsaWVudEhlaWdodC5zZXQodGhpcy5kb2MuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy50YWJsZS52aXJ0dWFsQm9keS5zZXQodGhpcy52aXJ0dWFsQm9keSgpISk7XHJcbiAgICB0aGlzLmRvY0NsaWVudEhlaWdodC5zZXQodGhpcy5kb2MuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCk7XHJcbiAgICB0aGlzLnNldFN1YmplY3QoKTtcclxuICAgIHRoaXMuc2V0U2Nyb2xsKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XHJcbiAgICBsZXQgaGVhZEhlaWdodCA9IDA7XHJcbiAgICBmb3IgKGxldCB0aGVhZCBvZiB0aGlzLnRhYmxlLnRoZWFkcygpKSB7XHJcbiAgICAgIGhlYWRIZWlnaHQgKz0gdGhlYWQubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLmhlYWRIZWlnaHQuc2V0KGhlYWRIZWlnaHQpO1xyXG4gICAgY29uc3QgY2FwdGlvbkhlaWdodCA9IHRoaXMudGFibGUuY2FwdGlvbigpPy5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodCB8fCAwO1xyXG4gICAgdGhpcy5jYXB0aW9uSGVpZ2h0LnNldChjYXB0aW9uSGVpZ2h0KTtcclxuICAgIGNvbnN0IGZvb3RIZWlnaHQgPSB0aGlzLnRhYmxlLnRmb290KCk/Lm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0IHx8IDA7XHJcbiAgICB0aGlzLmZvb3RIZWlnaHQuc2V0KGZvb3RIZWlnaHQpO1xyXG4gICAgY29uc3QgcGFnaW5hdGlvbkhlaWdodCA9IHRoaXMudGFibGUucGFnaW5hdGlvbigpPy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0IHx8IDA7XHJcbiAgICB0aGlzLnBhZ2luYXRpb25IZWlnaHQuc2V0KHBhZ2luYXRpb25IZWlnaHQpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnVuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLnVuU3ViamVjdC5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy5yZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xyXG4gIH1cclxuXHJcbiAgc2V0U3ViamVjdCgpIHtcclxuICAgIGlmICh0aGlzLnZpcnR1YWxCb2R5KCkpIHtcclxuICAgICAgdGhpcy50YWJsZS5zY3JvbGxDb250ZW50RWxlLnNldChcclxuICAgICAgICB0aGlzLnZpcnR1YWxCb2R5KCkhLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcicpIGFzIEhUTUxFbGVtZW50XHJcbiAgICAgICk7XHJcbiAgICAgIGlmICh0aGlzLnNjcm9sbCgpPy54KSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRhYmxlLnNjcm9sbENvbnRlbnRFbGUoKSEsICd3aWR0aCcsIGAke3RoaXMuc2Nyb2xsKCk/Lnh9cHhgKTtcclxuICAgICAgfVxyXG4gICAgICBYUmVzaXplKHRoaXMudGFibGUudGFibGUoKS5uYXRpdmVFbGVtZW50LCB0aGlzLnRhYmxlLnNjcm9sbENvbnRlbnRFbGUoKSEpXHJcbiAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDMwKSwgdGFrZVVudGlsKHRoaXMudW5TdWJqZWN0KSlcclxuICAgICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyID0geC5yZXNpemVPYnNlcnZlcjtcclxuICAgICAgICAgIHRoaXMuc2V0U2Nyb2xsKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy50YWJsZS5zY3JvbGxDb250ZW50RWxlKCkpIHtcclxuICAgICAgZnJvbUV2ZW50KHRoaXMudmlydHVhbEJvZHkoKSEuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnc2Nyb2xsJylcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51blN1YmplY3QpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGVsZSA9IHguc3JjRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICAgIHRoaXMudGFibGUuc2Nyb2xsVG9wLnNldChlbGUuc2Nyb2xsVG9wKTtcclxuICAgICAgICAgIHRoaXMudGFibGUuc2Nyb2xsTGVmdC5zZXQoZWxlLnNjcm9sbExlZnQpO1xyXG4gICAgICAgICAgaWYgKGVsZS5zY3JvbGxMZWZ0ID49IDAgJiYgdGhpcy50YWJsZS50aGVhZHMoKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IHRoZWFkIG9mIHRoaXMudGFibGUudGhlYWRzKCkpIHtcclxuICAgICAgICAgICAgICB0aGVhZC5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgPSB0aGlzLnRhYmxlLnNjcm9sbExlZnQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy50YWJsZS5zY3JvbGxMZWZ0TWF4LnNldChlbGUuc2Nyb2xsTGVmdCArIGVsZS5jbGllbnRXaWR0aCA9PT0gZWxlLnNjcm9sbFdpZHRoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFNjcm9sbCgpIHtcclxuICAgIGlmICghdGhpcy52aXJ0dWFsQm9keSgpKSByZXR1cm47XHJcbiAgICBjb25zdCBlbGUgPSB0aGlzLnZpcnR1YWxCb2R5KCkhLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcclxuICAgIGNvbnN0IGhhc1kgPSBlbGUuc2Nyb2xsSGVpZ2h0ID4gdGhpcy5ib2R5SGVpZ2h0U2lnbmFsKCkhO1xyXG4gICAgY29uc3QgaGFzWCA9IHRoaXMudGFibGUuc2Nyb2xsQ29udGVudEVsZSgpIS5jbGllbnRXaWR0aCA+IGVsZS5jbGllbnRXaWR0aDtcclxuXHJcbiAgICBpZiAoIXRoaXMudGFibGUuaGFzU2Nyb2xsWSgpICYmIGhhc1kpIHtcclxuICAgICAgdGhpcy50YWJsZS5oYXNTY3JvbGxZLnNldCh0cnVlKTtcclxuICAgICAgdGhpcy50YWJsZS5zY3JvbGxZV2lkdGguc2V0KGVsZS5vZmZzZXRXaWR0aCAtIGVsZS5jbGllbnRXaWR0aCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudGFibGUuaGFzU2Nyb2xsWSgpICYmICFoYXNZKSB7XHJcbiAgICAgIHRoaXMudGFibGUuaGFzU2Nyb2xsWS5zZXQoZmFsc2UpO1xyXG4gICAgICB0aGlzLnRhYmxlLnNjcm9sbFlXaWR0aC5zZXQoMCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLnRhYmxlLmhhc1Njcm9sbFgoKSAmJiBoYXNYKSB7XHJcbiAgICAgIHRoaXMudGFibGUuaGFzU2Nyb2xsWC5zZXQodHJ1ZSk7XHJcbiAgICAgIHRoaXMudGFibGUuc2Nyb2xsWEhlaWdodC5zZXQoZWxlLm9mZnNldEhlaWdodCAtIGVsZS5jbGllbnRIZWlnaHQpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnRhYmxlLmhhc1Njcm9sbFgoKSAmJiAhaGFzWCkge1xyXG4gICAgICB0aGlzLnRhYmxlLmhhc1Njcm9sbFguc2V0KGZhbHNlKTtcclxuICAgICAgdGhpcy50YWJsZS5zY3JvbGxYSGVpZ2h0LnNldCgwKTtcclxuICAgICAgdGhpcy50YWJsZS5zY3JvbGxYV2lkdGguc2V0KG51bGwpO1xyXG4gICAgfVxyXG4gICAgaWYgKGhhc1gpIHtcclxuICAgICAgdGhpcy50YWJsZS5zY3JvbGxYV2lkdGguc2V0KGVsZS5vZmZzZXRXaWR0aCArIGVsZS5zY3JvbGxXaWR0aCAtIGVsZS5jbGllbnRXaWR0aCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy52aXJ0dWFsQm9keSgpIS5jaGVja1ZpZXdwb3J0U2l6ZSgpO1xyXG5cclxuICAgIC8vIHRoaXMudGFibGUuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHNldFN0eWxlKCkge1xyXG4gICAgbGV0IGhlaWdodCA9IHRoaXMucm93SGVpZ2h0KCkgPT09IDAgPyAnJyA6IHRoaXMucm93SGVpZ2h0KCk7XHJcbiAgICBpZiAodGhpcy5jZWxsQ29uZmlnKCkgJiYgdGhpcy5jZWxsQ29uZmlnKCkhLmNlbGxzKSB7XHJcbiAgICAgIGNvbnN0IHNwdCA9IHRoaXMuY2VsbENvbmZpZygpIS5jZWxscz8ubWFwKCh4KSA9PiB7XHJcbiAgICAgICAgY29uc3QgZ3JpZEFyZWFTcHQgPSB4LmdyaWRBcmVhPy5zcGxpdCgnLycpO1xyXG4gICAgICAgIHJldHVybiBncmlkQXJlYVNwdCAmJiBncmlkQXJlYVNwdC5sZW5ndGggPiAzID8gTnVtYmVyKGdyaWRBcmVhU3B0WzJdKSA6IDI7XHJcbiAgICAgIH0pO1xyXG4gICAgICBoZWlnaHQgPSAoKE1hdGgubWF4KC4uLnNwdCEpIC0gMSkgKiAoaGVpZ2h0IGFzIG51bWJlcikpIGFzIFhOdW1iZXI7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRib2R5U3R5bGUuc2V0KHtcclxuICAgICAgaGVpZ2h0OiBgJHtoZWlnaHR9cHhgXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldEluZGV4KGluZGV4OiBudW1iZXIsIGl0ZW06IFhUYWJsZVJvdykge1xyXG4gICAgaWYgKCFpc05hTihpbmRleCkpIHJldHVybiBpbmRleDtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuZGF0YSgpLCBpdGVtKTtcclxuICAgIHJldHVybiB0aGlzLmRhdGEoKS5pbmRleE9mKGl0ZW0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0RmxleChjb2x1bW46IFhUYWJsZUNvbHVtbikge1xyXG4gICAgaWYgKGNvbHVtbi53aWR0aCkgcmV0dXJuICdub25lJztcclxuICAgIGlmICghY29sdW1uLmZsZXgpIHJldHVybiAxO1xyXG4gICAgcmV0dXJuIGNvbHVtbi5mbGV4O1xyXG4gIH1cclxuXHJcbiAgZ2V0VGl0bGUocm93OiBYVGFibGVSb3csIGNvbHVtbjogWFRhYmxlQ2VsbCB8IGFueSkge1xyXG4gICAgbGV0IGl0ID0gcm93W2NvbHVtbi5pZCBhcyBzdHJpbmddO1xyXG4gICAgcmV0dXJuIGl0ID8gWFN0cmlwVGFncyhpdCkgOiAnJztcclxuICB9XHJcblxyXG4gIHJvd0NsaWNrKGV2ZW50OiBFdmVudCwgcm93OiBYVGFibGVSb3cpIHtcclxuICAgIGlmIChyb3cuZGlzYWJsZWQpIHJldHVybjtcclxuICAgIGlmICh0aGlzLnRhYmxlLmFsbG93Q2hlY2tSb3coKSAmJiB0aGlzLnRhYmxlLnJvd0NoZWNrZWQoKSkge1xyXG4gICAgICBpZiAoIVhQYXJlbnRQYXRoKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuaW5jbHVkZXMoJ3gtY2hlY2tib3gnKSkge1xyXG4gICAgICAgIHJvd1t0aGlzLnRhYmxlLnJvd0NoZWNrZWQoKSEuaWRdID0gIXJvd1t0aGlzLnRhYmxlLnJvd0NoZWNrZWQoKSEuaWRdO1xyXG4gICAgICAgIHRoaXMudGFibGUuYm9keUNoZWNrZWQocm93W3RoaXMudGFibGUucm93Q2hlY2tlZCgpIS5pZF0sIHRoaXMudGFibGUucm93Q2hlY2tlZCgpISwgcm93KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5hY3RpdmF0ZWRSb3cuc2V0KHJvdyk7XHJcbiAgfVxyXG5cclxuICBvbkV4cGFuZGVkKF9ldmVudDogRXZlbnQsIG5vZGU6IFhUYWJsZVJvdykge1xyXG4gICAgbm9kZS5leHBhbmRlZCA9ICFub2RlLmV4cGFuZGVkO1xyXG4gICAgLy8gdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgdHJhY2tCeUl0ZW0oX2luZGV4OiBudW1iZXIsIGl0ZW06IFhUYWJsZVJvdyB8IFhUYWJsZUNvbHVtbikge1xyXG4gICAgcmV0dXJuIGl0ZW0uaWQ7XHJcbiAgfVxyXG59XHJcbiIsIjx0Ym9keSAjdGJvZHk+XHJcbiAgQGlmIChjZWxsQ29uZmlnKCkpIHtcclxuICAgIEBmb3IgKHJvdyBvZiBkYXRhKCk7IHRyYWNrIHJvdy5pZDsgbGV0IGkgPSAkaW5kZXgpIHtcclxuICAgICAgPHRyIFtzdHlsZS5ncmlkVGVtcGxhdGVDb2x1bW5zXT1cImNlbGxDb25maWcoKSEuZ3JpZFRlbXBsYXRlQ29sdW1uc1wiPlxyXG4gICAgICAgIEBmb3IgKGNvbHVtbiBvZiBjZWxsQ29uZmlnKCkhLmNlbGxzOyB0cmFjayBjb2x1bW47IGxldCBqID0gJGluZGV4KSB7XHJcbiAgICAgICAgICA8dGRcclxuICAgICAgICAgICAgW3RpdGxlXT1cImdldFRpdGxlKHJvdywgY29sdW1uKVwiXHJcbiAgICAgICAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreV09XCJ0YWJsZS5nZXRTdGlja3lMZWZ0KGNvbHVtbikgfHwgdGFibGUuZ2V0U3RpY2t5UmlnaHQoY29sdW1uKVwiXHJcbiAgICAgICAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreS1sZWZ0XT1cInRhYmxlLmdldFN0aWNreUxlZnQoY29sdW1uKVwiXHJcbiAgICAgICAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreS1yaWdodF09XCJ0YWJsZS5nZXRTdGlja3lSaWdodChjb2x1bW4pXCJcclxuICAgICAgICAgICAgW2NsYXNzLngtdGFibGUtc3RpY2t5LWxlZnQtbGFzdF09XCJ0YWJsZS5nZXRTdGlja3lMZWZ0TGFzdChjb2x1bW4pXCJcclxuICAgICAgICAgICAgW2NsYXNzLngtdGFibGUtc3RpY2t5LXJpZ2h0LWZpcnN0XT1cInRhYmxlLmdldFN0aWNreVJpZ2h0Rmlyc3QoY29sdW1uKVwiXHJcbiAgICAgICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cImNvbHVtbi5sZWZ0XCJcclxuICAgICAgICAgICAgW3N0eWxlLnJpZ2h0LnB4XT1cImNvbHVtbi5yaWdodFwiXHJcbiAgICAgICAgICAgIFtzdHlsZS5ncmlkLWFyZWFdPVwiY29sdW1uLmdyaWRBcmVhXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNlbGxUcGw7IGNvbnRleHQ6IHsgY29sdW1uOiBjb2x1bW4sIHJvdzogcm93LCBpOiBpIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L3RyPlxyXG4gICAgfVxyXG4gIH0gQGVsc2Uge1xyXG4gICAgQGlmICh2aXJ0dWFsU2Nyb2xsKCkpIHtcclxuICAgICAgPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydFxyXG4gICAgICAgICN2aXJ0dWFsQm9keVxyXG4gICAgICAgIFtpdGVtU2l6ZV09XCJnZXRJdGVtU2l6ZSgpXCJcclxuICAgICAgICBbbWluQnVmZmVyUHhdPVwibWluQnVmZmVyUHhTaWduYWwoKVwiXHJcbiAgICAgICAgW21heEJ1ZmZlclB4XT1cIm1heEJ1ZmZlclB4U2lnbmFsKClcIlxyXG4gICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiYm9keUhlaWdodFNpZ25hbCgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDx0clxyXG4gICAgICAgICAgKmNka1ZpcnR1YWxGb3I9XCJsZXQgcm93IG9mIGRhdGEoKTsgbGV0IGluZGV4ID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlJdGVtXCJcclxuICAgICAgICAgIFtjbGFzcy54LXRhYmxlLWFjdGl2YXRlZF09XCJhbGxvd1NlbGVjdFJvdygpICYmIGFjdGl2YXRlZFJvdygpPy5pZCA9PT0gcm93LmlkXCJcclxuICAgICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0KClcIlxyXG4gICAgICAgICAgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0KClcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cInJvd0NsaWNrKCRldmVudCwgcm93KVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPCEtLSByb3dIZWlnaHQg5Li6IDAg55qE5pe25YCZ77yMaW5kZXgg5LiL5qCH6I635Y+W5LiN5YiwIC0tPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJvd1RwbDsgY29udGV4dDogeyByb3c6IHJvdywgaTogZ2V0SW5kZXgoaW5kZXgsIHJvdykgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvdHI+XHJcbiAgICAgIDwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIEBmb3IgKHJvdyBvZiBkYXRhKCk7IHRyYWNrIHJvdy5pZDsgbGV0IGkgPSAkaW5kZXgpIHtcclxuICAgICAgICA8dHJcclxuICAgICAgICAgIFtjbGFzcy54LXRhYmxlLWFjdGl2YXRlZF09XCJhbGxvd1NlbGVjdFJvdygpICYmIGFjdGl2YXRlZFJvdygpPy5pZCA9PT0gcm93LmlkXCJcclxuICAgICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0KClcIlxyXG4gICAgICAgICAgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0KClcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cInJvd0NsaWNrKCRldmVudCwgcm93KVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJvd1RwbDsgY29udGV4dDogeyByb3c6IHJvdywgaTogaSB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC90cj5cclxuICAgICAgICBAaWYgKHRhYmxlLnRyZWVUYWJsZSgpICYmIHJvdy5jaGlsZHJlbiAmJiByb3cuZXhwYW5kZWQpIHtcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ4LXRhYmxlLWNoaWxkcmVuXCIgW2NsYXNzLngtdGFibGUtZXhwYW5kVHBsXT1cImV4cGFuZFRwbCgpXCI+XHJcbiAgICAgICAgICAgIDx4LXRhYmxlLWJvZHlcclxuICAgICAgICAgICAgICBbZGF0YV09XCJyb3cuY2hpbGRyZW5cIlxyXG4gICAgICAgICAgICAgIFtjb2x1bW5zXT1cInRhYmxlLmNvbHVtbnMoKVwiXHJcbiAgICAgICAgICAgICAgW2l0ZW1TaXplXT1cInRhYmxlLml0ZW1TaXplKClcIlxyXG4gICAgICAgICAgICAgIFtyb3dIZWlnaHRdPVwidGFibGUucm93SGVpZ2h0KClcIlxyXG4gICAgICAgICAgICAgIFtjb2x1bW5UcGxdPVwidGFibGUuYm9keUNvbHVtblRwbCgpXCJcclxuICAgICAgICAgICAgICBbYWxsb3dTZWxlY3RSb3ddPVwidGFibGUuYWxsb3dTZWxlY3RSb3coKVwiXHJcbiAgICAgICAgICAgICAgW3Jvd0NsYXNzXT1cInRhYmxlLnJvd0NsYXNzKClcIlxyXG4gICAgICAgICAgICAgIFtjZWxsQ29uZmlnXT1cInRhYmxlLmNlbGxDb25maWcoKT8udGJvZHlcIlxyXG4gICAgICAgICAgICAgIFsoYWN0aXZhdGVkUm93KV09XCJ0YWJsZS5hY3RpdmF0ZWRSb3dcIlxyXG4gICAgICAgICAgICAgIFtleHBhbmRlZEFsbF09XCJleHBhbmRlZEFsbCgpXCJcclxuICAgICAgICAgICAgICBbZXhwYW5kVHBsXT1cImV4cGFuZFRwbCgpXCJcclxuICAgICAgICAgICAgICBbbGV2ZWxdPVwicm93LmxldmVsISArIDFcIlxyXG4gICAgICAgICAgICA+PC94LXRhYmxlLWJvZHk+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgQGlmICh0YWJsZS5zaG93RW1wdHkoKSAmJiBpc0VtcHR5KCkgJiYgbGV2ZWwoKSA9PT0gMCkge1xyXG4gICAgPHgtZW1wdHkgW2ltZ109XCJ0YWJsZS5lbXB0eUltZygpIVwiIFtjb250ZW50XT1cInRhYmxlLmVtcHR5Q29udGVudCgpIVwiPjwveC1lbXB0eT5cclxuICB9XHJcbjwvdGJvZHk+XHJcblxyXG48bmctdGVtcGxhdGUgI3Jvd1RwbCBsZXQtcm93PVwicm93XCIgbGV0LWk9XCJpXCI+XHJcbiAgQGlmIChsZXZlbCgpID4gMCAmJiBleHBhbmRUcGwoKSkge1xyXG4gICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cImV4cGFuZFRwbCgpOyBjb250ZXh0OiB7ICRyb3c6IHJvdywgJGluZGV4OiBpLCAkbGV2ZWw6IGxldmVsKCkgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gIH0gQGVsc2UgaWYgKGxldmVsKCkgPT09IDAgfHwgIWV4cGFuZFRwbCgpKSB7XHJcbiAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwicm93RGVmYXVsdDsgY29udGV4dDogeyByb3c6IHJvdywgaTogaSwgbGV2ZWw6IGxldmVsKCkgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcm93RGVmYXVsdCBsZXQtcm93PVwicm93XCIgbGV0LWk9XCJpXCI+XHJcbiAgQGZvciAoY29sdW1uIG9mIGNvbHVtbnMoKTsgdHJhY2sgY29sdW1uLmlkOyBsZXQgaiA9ICRpbmRleCkge1xyXG4gICAgPHRkXHJcbiAgICAgIFtzdHlsZS53aWR0aC5weF09XCJjb2x1bW4ud2lkdGhcIlxyXG4gICAgICBbc3R5bGUuZmxleF09XCJnZXRGbGV4KGNvbHVtbilcIlxyXG4gICAgICBbdGl0bGVdPVwiZ2V0VGl0bGUocm93LCBjb2x1bW4pXCJcclxuICAgICAgW2NsYXNzLngtdGFibGUtZHJhZ2dpbmddPVwiY29sdW1uLmRyYWdnaW5nXCJcclxuICAgICAgW2NsYXNzLngtdGFibGUtc3RpY2t5XT1cInRhYmxlLmdldFN0aWNreUxlZnQoY29sdW1uKSB8fCB0YWJsZS5nZXRTdGlja3lSaWdodChjb2x1bW4pXCJcclxuICAgICAgW2NsYXNzLngtdGFibGUtc3RpY2t5LWxlZnRdPVwidGFibGUuZ2V0U3RpY2t5TGVmdChjb2x1bW4pXCJcclxuICAgICAgW2NsYXNzLngtdGFibGUtc3RpY2t5LXJpZ2h0XT1cInRhYmxlLmdldFN0aWNreVJpZ2h0KGNvbHVtbilcIlxyXG4gICAgICBbY2xhc3MueC10YWJsZS1zdGlja3ktbGVmdC1sYXN0XT1cInRhYmxlLmdldFN0aWNreUxlZnRMYXN0KGNvbHVtbilcIlxyXG4gICAgICBbY2xhc3MueC10YWJsZS1zdGlja3ktcmlnaHQtZmlyc3RdPVwidGFibGUuZ2V0U3RpY2t5UmlnaHRGaXJzdChjb2x1bW4pXCJcclxuICAgICAgW3N0eWxlLmxlZnQucHhdPVwiY29sdW1uLmxlZnRcIlxyXG4gICAgICBbc3R5bGUucmlnaHQucHhdPVwiY29sdW1uLnJpZ2h0XCJcclxuICAgICAgW25nQ2xhc3NdPVwiIXJvd0NsYXNzKCkgPyB7fSA6IHJvd0NsYXNzKCkhKHJvdywgaSlcIlxyXG4gICAgPlxyXG4gICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjZWxsVHBsOyBjb250ZXh0OiB7IGNvbHVtbjogY29sdW1uLCByb3c6IHJvdywgaTogaSB9XCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvdGQ+XHJcbiAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNjZWxsVHBsIGxldC1jb2x1bW49XCJjb2x1bW5cIiBsZXQtcm93PVwicm93XCIgbGV0LWk9XCJpXCI+XHJcbiAgQHN3aXRjaCAoY29sdW1uLnR5cGUpIHtcclxuICAgIEBjYXNlICgnY2hlY2tib3gnKSB7XHJcbiAgICAgIDx4LWNoZWNrYm94XHJcbiAgICAgICAgW2RhdGFdPVwiW3sgaWQ6IHRydWUsIGxhYmVsOiAnJyB9XVwiXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJyb3dbY29sdW1uLmlkXVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cInJvdy5kaXNhYmxlZFwiXHJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidGFibGUuYm9keUNoZWNrZWQoJGV2ZW50LCBjb2x1bW4sIHJvdylcIlxyXG4gICAgICAgIHNpbmdsZVxyXG4gICAgICA+PC94LWNoZWNrYm94PlxyXG4gICAgfVxyXG4gICAgQGNhc2UgKCdpbmRleCcpIHtcclxuICAgICAgPGRpdj57eyB0YWJsZS5nZXRJbmRleChpKSB9fTwvZGl2PlxyXG4gICAgfVxyXG4gICAgQGRlZmF1bHQge1xyXG4gICAgICBAaWYgKHRhYmxlLmlzRXhwYW5kQ29sdW1uKGNvbHVtbikpIHtcclxuICAgICAgICA8eC1idXR0b25cclxuICAgICAgICAgIFtjbGFzcy5pcy1sZWFmXT1cIiFyb3cubGVhZlwiXHJcbiAgICAgICAgICBbY2xhc3MuaXMtZXhwYW5kZWRdPVwicm93LmV4cGFuZGVkXCJcclxuICAgICAgICAgIChjbGljayk9XCJvbkV4cGFuZGVkKCRldmVudCwgcm93KVwiXHJcbiAgICAgICAgICBpY29uPVwiZnRvLWNoZXZyb24tcmlnaHRcIlxyXG4gICAgICAgICAgc2l6ZT1cIm1pbmlcIlxyXG4gICAgICAgICAgb25seUljb25cclxuICAgICAgICAgIGZsYXRcclxuICAgICAgICAgIHBsYWluXHJcbiAgICAgICAgICBjbGFzcz1cIngtdGFibGUtZXhwYW5kXCJcclxuICAgICAgICAgIFtzdHlsZS5tYXJnaW4tbGVmdC5yZW1dPVwicm93LmxldmVsIC0gMC41XCJcclxuICAgICAgICA+PC94LWJ1dHRvbj5cclxuICAgICAgfVxyXG4gICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgKnhPdXRsZXQ9XCJjb2x1bW5UcGwoKVtjb2x1bW4uaWRdOyBjb250ZXh0OiB7ICRjb2x1bW46IGNvbHVtbiwgJHJvdzogcm93LCAkaW5kZXg6IHRhYmxlLmdldEluZGV4KGkpIH1cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cInRhYmxlLmJvZHlUZFRwbCgpOyBjb250ZXh0OiB7ICRjb2x1bW46IGNvbHVtbiwgJHJvdzogcm93LCAkaW5kZXg6IHRhYmxlLmdldEluZGV4KGkpIH1cIj5cclxuICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJyb3dbY29sdW1uLmlkXVwiIFtzdHlsZS50ZXh0LWFsaWduXT1cImNvbHVtbi50ZXh0QWxpZ25cIj48L2Rpdj5cclxuICAgICAgICAgIHt7IHRhYmxlLnJvd0V4cGFuZCgpICYmIHRhYmxlLnJvd0V4cGFuZCgpIS5pZCA9PT0gY29sdW1uLmlkID8gJ3gtdGFibGUtYm9keS1sZXZlbC0nICsgcm93LmxldmVsIDogJycgfX1cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICB9XHJcbiAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -19,10 +19,10 @@ export class XTableFootComponent extends XTableFootProperty {
19
19
  ngAfterViewInit() {
20
20
  this.table.tfoot.set(this.tfoot());
21
21
  }
22
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTableFootComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
23
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.0.1", type: XTableFootComponent, isStandalone: true, selector: "x-table-foot", viewQueries: [{ propertyName: "tfoot", first: true, predicate: ["tfoot"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<tfoot #tfoot class=\"x-table-footer\" [style.height.px]=\"getRowHeight()!\" [style.min-height.px]=\"getRowHeight()\">\r\n <ng-container *xOutlet=\"footer()\">{{ footer() }}</ng-container>\r\n</tfoot>\r\n", dependencies: [{ kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
22
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: XTableFootComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
23
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.0.6", type: XTableFootComponent, isStandalone: true, selector: "x-table-foot", viewQueries: [{ propertyName: "tfoot", first: true, predicate: ["tfoot"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<tfoot #tfoot class=\"x-table-footer\" [style.height.px]=\"getRowHeight()!\" [style.min-height.px]=\"getRowHeight()\">\r\n <ng-container *xOutlet=\"footer()\">{{ footer() }}</ng-container>\r\n</tfoot>\r\n", dependencies: [{ kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
24
24
  }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTableFootComponent, decorators: [{
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: XTableFootComponent, decorators: [{
26
26
  type: Component,
27
27
  args: [{ selector: `${XTableFootPrefix}`, standalone: true, imports: [XOutletDirective], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<tfoot #tfoot class=\"x-table-footer\" [style.height.px]=\"getRowHeight()!\" [style.min-height.px]=\"getRowHeight()\">\r\n <ng-container *xOutlet=\"footer()\">{{ footer() }}</ng-container>\r\n</tfoot>\r\n" }]
28
28
  }] });