@ng-nest/ui 17.0.2 → 17.0.3

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 (486) hide show
  1. package/calendar/calendar.component.d.ts +0 -1
  2. package/carousel/carousel.component.d.ts +0 -1
  3. package/checkbox/checkbox.component.d.ts +0 -1
  4. package/color/color.component.d.ts +0 -1
  5. package/crumb/crumb.component.d.ts +0 -1
  6. package/date-picker/picker-date.component.d.ts +0 -1
  7. package/esm2022/affix/affix.component.mjs +3 -3
  8. package/esm2022/affix/affix.module.mjs +4 -4
  9. package/esm2022/affix/affix.property.mjs +3 -3
  10. package/esm2022/alert/alert.component.mjs +7 -15
  11. package/esm2022/alert/alert.module.mjs +4 -4
  12. package/esm2022/alert/alert.property.mjs +3 -3
  13. package/esm2022/anchor/anchor-inner.component.mjs +3 -3
  14. package/esm2022/anchor/anchor.component.mjs +7 -10
  15. package/esm2022/anchor/anchor.module.mjs +4 -4
  16. package/esm2022/anchor/anchor.property.mjs +6 -6
  17. package/esm2022/api/api.component.mjs +3 -3
  18. package/esm2022/api/api.module.mjs +4 -4
  19. package/esm2022/auto-complete/auto-complete-portal.component.mjs +3 -3
  20. package/esm2022/auto-complete/auto-complete.component.mjs +3 -3
  21. package/esm2022/auto-complete/auto-complete.module.mjs +4 -4
  22. package/esm2022/auto-complete/auto-complete.property.mjs +3 -3
  23. package/esm2022/avatar/avatar-group.component.mjs +3 -3
  24. package/esm2022/avatar/avatar.component.mjs +6 -7
  25. package/esm2022/avatar/avatar.module.mjs +4 -4
  26. package/esm2022/avatar/avatar.property.mjs +6 -6
  27. package/esm2022/back-top/back-top.component.mjs +7 -9
  28. package/esm2022/back-top/back-top.module.mjs +4 -4
  29. package/esm2022/back-top/back-top.property.mjs +3 -3
  30. package/esm2022/badge/badge.component.mjs +6 -7
  31. package/esm2022/badge/badge.module.mjs +5 -5
  32. package/esm2022/badge/badge.property.mjs +3 -3
  33. package/esm2022/base-form/base-form.component.mjs +3 -3
  34. package/esm2022/base-form/base-form.module.mjs +4 -4
  35. package/esm2022/base-form/base-form.property.mjs +3 -3
  36. package/esm2022/border/border.component.mjs +3 -3
  37. package/esm2022/border/border.module.mjs +4 -4
  38. package/esm2022/button/button.component.mjs +6 -7
  39. package/esm2022/button/button.module.mjs +5 -5
  40. package/esm2022/button/button.property.mjs +6 -6
  41. package/esm2022/button/buttons.component.mjs +5 -6
  42. package/esm2022/calendar/calendar.component.mjs +10 -12
  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 +6 -7
  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 +5 -7
  49. package/esm2022/carousel/carousel.component.mjs +6 -10
  50. package/esm2022/carousel/carousel.module.mjs +5 -5
  51. package/esm2022/carousel/carousel.property.mjs +7 -7
  52. package/esm2022/cascade/cascade-portal.component.mjs +6 -8
  53. package/esm2022/cascade/cascade.component.mjs +7 -9
  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 +7 -11
  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 +5 -7
  60. package/esm2022/collapse/collapse.component.mjs +5 -6
  61. package/esm2022/collapse/collapse.module.mjs +5 -5
  62. package/esm2022/collapse/collapse.property.mjs +6 -6
  63. package/esm2022/color/color.component.mjs +6 -10
  64. package/esm2022/color/color.module.mjs +5 -5
  65. package/esm2022/color/color.property.mjs +3 -3
  66. package/esm2022/color-picker/color-picker-portal.component.mjs +6 -14
  67. package/esm2022/color-picker/color-picker.component.mjs +6 -6
  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 +5 -6
  71. package/esm2022/comment/comment.component.mjs +5 -8
  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 +5 -6
  75. package/esm2022/container/container.component.mjs +5 -6
  76. package/esm2022/container/container.module.mjs +5 -5
  77. package/esm2022/container/container.property.mjs +12 -12
  78. package/esm2022/container/footer.component.mjs +5 -6
  79. package/esm2022/container/header.component.mjs +5 -6
  80. package/esm2022/container/main.component.mjs +5 -6
  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 +6 -10
  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 +9 -9
  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 +8 -7
  95. package/esm2022/date-picker/date-range.component.mjs +8 -11
  96. package/esm2022/date-picker/picker-date.component.mjs +6 -10
  97. package/esm2022/date-picker/picker-month.component.mjs +6 -7
  98. package/esm2022/date-picker/picker-quarter.component.mjs +6 -7
  99. package/esm2022/date-picker/picker-year.component.mjs +6 -7
  100. package/esm2022/description/description-item.component.mjs +6 -7
  101. package/esm2022/description/description.component.mjs +6 -7
  102. package/esm2022/description/description.module.mjs +5 -5
  103. package/esm2022/description/description.property.mjs +6 -6
  104. package/esm2022/dialog/dialog-container.component.mjs +6 -7
  105. package/esm2022/dialog/dialog-portal.component.mjs +7 -12
  106. package/esm2022/dialog/dialog-portal.directives.mjs +18 -18
  107. package/esm2022/dialog/dialog.component.mjs +6 -7
  108. package/esm2022/dialog/dialog.module.mjs +5 -6
  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 +5 -6
  112. package/esm2022/doc/doc.module.mjs +5 -5
  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 +6 -7
  117. package/esm2022/drawer/drawer-portal.component.mjs +5 -6
  118. package/esm2022/drawer/drawer-portal.directives.mjs +9 -9
  119. package/esm2022/drawer/drawer.component.mjs +6 -7
  120. package/esm2022/drawer/drawer.module.mjs +5 -6
  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 +5 -6
  124. package/esm2022/dropdown/dropdown.component.mjs +9 -20
  125. package/esm2022/dropdown/dropdown.module.mjs +5 -5
  126. package/esm2022/dropdown/dropdown.property.mjs +3 -3
  127. package/esm2022/empty/empty.component.mjs +5 -7
  128. package/esm2022/empty/empty.module.mjs +4 -4
  129. package/esm2022/empty/empty.property.mjs +3 -3
  130. package/esm2022/examples/examples.component.mjs +5 -6
  131. package/esm2022/examples/examples.module.mjs +5 -5
  132. package/esm2022/find/find.component.mjs +8 -12
  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 +7 -10
  136. package/esm2022/form/form.component.mjs +9 -12
  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 +6 -7
  140. package/esm2022/highlight/highlight.module.mjs +4 -4
  141. package/esm2022/highlight/highlight.property.mjs +3 -3
  142. package/esm2022/i18n/i18n.directive.mjs +3 -3
  143. package/esm2022/i18n/i18n.module.mjs +4 -4
  144. package/esm2022/i18n/i18n.pipe.mjs +3 -3
  145. package/esm2022/i18n/i18n.service.mjs +3 -3
  146. package/esm2022/icon/icon.component.mjs +3 -3
  147. package/esm2022/icon/icon.module.mjs +4 -4
  148. package/esm2022/icon/icon.property.mjs +3 -3
  149. package/esm2022/icon/icon.service.mjs +3 -3
  150. package/esm2022/image/image-group.component.mjs +12 -7
  151. package/esm2022/image/image-preview.component.mjs +7 -8
  152. package/esm2022/image/image.component.mjs +6 -7
  153. package/esm2022/image/image.module.mjs +5 -5
  154. package/esm2022/image/image.property.mjs +6 -6
  155. package/esm2022/inner/inner.component.mjs +5 -6
  156. package/esm2022/inner/inner.module.mjs +5 -5
  157. package/esm2022/inner/inner.property.mjs +3 -3
  158. package/esm2022/input/input-group.component.mjs +5 -6
  159. package/esm2022/input/input.component.mjs +7 -8
  160. package/esm2022/input/input.module.mjs +5 -5
  161. package/esm2022/input/input.property.mjs +6 -6
  162. package/esm2022/input-number/input-number.component.mjs +7 -8
  163. package/esm2022/input-number/input-number.module.mjs +4 -4
  164. package/esm2022/input-number/input-number.property.mjs +3 -3
  165. package/esm2022/keyword/keyword.directive.mjs +3 -3
  166. package/esm2022/keyword/keyword.module.mjs +4 -4
  167. package/esm2022/keyword/keyword.property.mjs +3 -3
  168. package/esm2022/layout/col.component.mjs +3 -3
  169. package/esm2022/layout/layout.module.mjs +4 -4
  170. package/esm2022/layout/layout.property.mjs +6 -6
  171. package/esm2022/layout/row.component.mjs +3 -3
  172. package/esm2022/link/link.component.mjs +6 -7
  173. package/esm2022/link/link.module.mjs +4 -4
  174. package/esm2022/link/link.property.mjs +3 -3
  175. package/esm2022/list/list-drop-group.directive.mjs +3 -3
  176. package/esm2022/list/list-option.component.mjs +6 -7
  177. package/esm2022/list/list.component.mjs +9 -12
  178. package/esm2022/list/list.module.mjs +4 -4
  179. package/esm2022/list/list.property.mjs +6 -6
  180. package/esm2022/loading/loading.component.mjs +6 -7
  181. package/esm2022/loading/loading.module.mjs +4 -4
  182. package/esm2022/loading/loading.property.mjs +3 -3
  183. package/esm2022/menu/menu-node.component.mjs +7 -8
  184. package/esm2022/menu/menu.component.mjs +6 -10
  185. package/esm2022/menu/menu.module.mjs +4 -4
  186. package/esm2022/menu/menu.property.mjs +6 -6
  187. package/esm2022/message/message.component.mjs +5 -10
  188. package/esm2022/message/message.module.mjs +4 -4
  189. package/esm2022/message/message.service.mjs +3 -3
  190. package/esm2022/message-box/message-box.component.mjs +6 -9
  191. package/esm2022/message-box/message-box.module.mjs +4 -4
  192. package/esm2022/message-box/message-box.service.mjs +3 -3
  193. package/esm2022/notification/notification.component.mjs +5 -10
  194. package/esm2022/notification/notification.module.mjs +4 -4
  195. package/esm2022/notification/notification.service.mjs +3 -3
  196. package/esm2022/outlet/outlet.directive.mjs +3 -3
  197. package/esm2022/outlet/outlet.module.mjs +4 -4
  198. package/esm2022/page-header/page-header.component.mjs +5 -7
  199. package/esm2022/page-header/page-header.module.mjs +4 -4
  200. package/esm2022/page-header/page-header.property.mjs +3 -3
  201. package/esm2022/pagination/pagination.component.mjs +6 -12
  202. package/esm2022/pagination/pagination.module.mjs +4 -4
  203. package/esm2022/pagination/pagination.property.mjs +3 -3
  204. package/esm2022/pattern/pattern.component.mjs +5 -6
  205. package/esm2022/pattern/pattern.module.mjs +5 -5
  206. package/esm2022/popconfirm/popconfirm.component.mjs +5 -7
  207. package/esm2022/popconfirm/popconfirm.module.mjs +4 -4
  208. package/esm2022/popconfirm/popconfirm.property.mjs +3 -3
  209. package/esm2022/popover/popover-portal.component.mjs +6 -7
  210. package/esm2022/popover/popover.directive.mjs +3 -3
  211. package/esm2022/popover/popover.module.mjs +4 -4
  212. package/esm2022/popover/popover.property.mjs +3 -3
  213. package/esm2022/portal/portal.module.mjs +4 -4
  214. package/esm2022/portal/portal.service.mjs +3 -3
  215. package/esm2022/progress/progress.component.mjs +6 -7
  216. package/esm2022/progress/progress.module.mjs +4 -4
  217. package/esm2022/progress/progress.property.mjs +3 -3
  218. package/esm2022/radio/radio.component.mjs +6 -10
  219. package/esm2022/radio/radio.module.mjs +4 -4
  220. package/esm2022/radio/radio.property.mjs +3 -3
  221. package/esm2022/rate/rate.component.mjs +6 -7
  222. package/esm2022/rate/rate.module.mjs +4 -4
  223. package/esm2022/rate/rate.property.mjs +3 -3
  224. package/esm2022/resizable/resizable.directive.mjs +3 -3
  225. package/esm2022/resizable/resizable.module.mjs +4 -4
  226. package/esm2022/resizable/resizable.property.mjs +3 -3
  227. package/esm2022/result/result.component.mjs +6 -7
  228. package/esm2022/result/result.module.mjs +4 -4
  229. package/esm2022/result/result.property.mjs +3 -3
  230. package/esm2022/ripple/ripple.directive.mjs +3 -3
  231. package/esm2022/ripple/ripple.module.mjs +4 -4
  232. package/esm2022/ripple/ripple.property.mjs +3 -3
  233. package/esm2022/select/select-portal.component.mjs +5 -6
  234. package/esm2022/select/select.component.mjs +7 -8
  235. package/esm2022/select/select.module.mjs +4 -4
  236. package/esm2022/select/select.property.mjs +3 -3
  237. package/esm2022/skeleton/skeleton.component.mjs +6 -7
  238. package/esm2022/skeleton/skeleton.module.mjs +4 -4
  239. package/esm2022/skeleton/skeleton.property.mjs +3 -3
  240. package/esm2022/slider/slider.component.mjs +6 -10
  241. package/esm2022/slider/slider.module.mjs +4 -4
  242. package/esm2022/slider/slider.property.mjs +3 -3
  243. package/esm2022/slider-select/slider-select.component.mjs +9 -9
  244. package/esm2022/slider-select/slider-select.module.mjs +4 -4
  245. package/esm2022/slider-select/slider-select.property.mjs +3 -3
  246. package/esm2022/statistic/countdown.component.mjs +3 -3
  247. package/esm2022/statistic/statistic.component.mjs +6 -7
  248. package/esm2022/statistic/statistic.module.mjs +5 -5
  249. package/esm2022/statistic/statistic.property.mjs +6 -6
  250. package/esm2022/steps/steps.component.mjs +6 -10
  251. package/esm2022/steps/steps.module.mjs +4 -4
  252. package/esm2022/steps/steps.property.mjs +3 -3
  253. package/esm2022/switch/switch.component.mjs +6 -7
  254. package/esm2022/switch/switch.module.mjs +4 -4
  255. package/esm2022/switch/switch.property.mjs +3 -3
  256. package/esm2022/table/table-body.component.mjs +10 -10
  257. package/esm2022/table/table-foot.component.mjs +5 -6
  258. package/esm2022/table/table-head.component.mjs +11 -13
  259. package/esm2022/table/table.component.mjs +7 -8
  260. package/esm2022/table/table.module.mjs +5 -5
  261. package/esm2022/table/table.property.mjs +12 -12
  262. package/esm2022/tabs/tab-content.component.mjs +6 -7
  263. package/esm2022/tabs/tab-link.directive.mjs +6 -6
  264. package/esm2022/tabs/tab.component.mjs +5 -6
  265. package/esm2022/tabs/tabs.component.mjs +6 -7
  266. package/esm2022/tabs/tabs.module.mjs +5 -5
  267. package/esm2022/tabs/tabs.property.mjs +6 -6
  268. package/esm2022/tag/tag.component.mjs +6 -7
  269. package/esm2022/tag/tag.module.mjs +4 -4
  270. package/esm2022/tag/tag.property.mjs +3 -3
  271. package/esm2022/text-retract/text-retract.component.mjs +5 -7
  272. package/esm2022/text-retract/text-retract.module.mjs +4 -4
  273. package/esm2022/text-retract/text-retract.property.mjs +3 -3
  274. package/esm2022/textarea/textarea.component.mjs +7 -8
  275. package/esm2022/textarea/textarea.module.mjs +4 -4
  276. package/esm2022/textarea/textarea.property.mjs +3 -3
  277. package/esm2022/theme/theme.component.mjs +6 -9
  278. package/esm2022/theme/theme.module.mjs +4 -4
  279. package/esm2022/theme/theme.property.mjs +3 -3
  280. package/esm2022/time-ago/time-ago.module.mjs +4 -4
  281. package/esm2022/time-ago/time-ago.pipe.mjs +3 -3
  282. package/esm2022/time-picker/time-picker-frame.component.mjs +6 -8
  283. package/esm2022/time-picker/time-picker-portal.component.mjs +5 -7
  284. package/esm2022/time-picker/time-picker.component.mjs +3 -3
  285. package/esm2022/time-picker/time-picker.module.mjs +4 -4
  286. package/esm2022/time-picker/time-picker.property.mjs +3 -3
  287. package/esm2022/time-range/time-range.module.mjs +4 -4
  288. package/esm2022/time-range/time-range.pipe.mjs +3 -3
  289. package/esm2022/timeline/timeline.component.mjs +6 -7
  290. package/esm2022/timeline/timeline.module.mjs +4 -4
  291. package/esm2022/timeline/timeline.property.mjs +3 -3
  292. package/esm2022/tooltip/tooltip-portal.component.mjs +6 -7
  293. package/esm2022/tooltip/tooltip.directive.mjs +3 -3
  294. package/esm2022/tooltip/tooltip.module.mjs +4 -4
  295. package/esm2022/tooltip/tooltip.property.mjs +3 -3
  296. package/esm2022/transfer/transfer.component.mjs +11 -10
  297. package/esm2022/transfer/transfer.module.mjs +4 -4
  298. package/esm2022/transfer/transfer.property.mjs +3 -3
  299. package/esm2022/tree/tree-node.component.mjs +8 -9
  300. package/esm2022/tree/tree.component.mjs +7 -9
  301. package/esm2022/tree/tree.module.mjs +4 -4
  302. package/esm2022/tree/tree.property.mjs +6 -6
  303. package/esm2022/tree/tree.service.mjs +3 -3
  304. package/esm2022/tree-file/tree-file.component.mjs +7 -8
  305. package/esm2022/tree-file/tree-file.module.mjs +4 -4
  306. package/esm2022/tree-file/tree-file.property.mjs +3 -3
  307. package/esm2022/tree-select/tree-select-portal.component.mjs +5 -7
  308. package/esm2022/tree-select/tree-select.component.mjs +7 -8
  309. package/esm2022/tree-select/tree-select.module.mjs +4 -4
  310. package/esm2022/tree-select/tree-select.property.mjs +3 -3
  311. package/esm2022/typography/typography.component.mjs +3 -3
  312. package/esm2022/typography/typography.module.mjs +4 -4
  313. package/esm2022/typography/typography.property.mjs +3 -3
  314. package/esm2022/upload/upload-portal.component.mjs +6 -6
  315. package/esm2022/upload/upload.component.mjs +7 -11
  316. package/esm2022/upload/upload.module.mjs +4 -4
  317. package/esm2022/upload/upload.property.mjs +3 -3
  318. package/fesm2022/ng-nest-ui-affix.mjs +10 -10
  319. package/fesm2022/ng-nest-ui-alert.mjs +13 -21
  320. package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
  321. package/fesm2022/ng-nest-ui-anchor.mjs +19 -22
  322. package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
  323. package/fesm2022/ng-nest-ui-api.mjs +7 -7
  324. package/fesm2022/ng-nest-ui-auto-complete.mjs +13 -13
  325. package/fesm2022/ng-nest-ui-avatar.mjs +18 -19
  326. package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
  327. package/fesm2022/ng-nest-ui-back-top.mjs +13 -15
  328. package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
  329. package/fesm2022/ng-nest-ui-badge.mjs +12 -13
  330. package/fesm2022/ng-nest-ui-badge.mjs.map +1 -1
  331. package/fesm2022/ng-nest-ui-base-form.mjs +10 -10
  332. package/fesm2022/ng-nest-ui-border.mjs +7 -7
  333. package/fesm2022/ng-nest-ui-button.mjs +19 -20
  334. package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
  335. package/fesm2022/ng-nest-ui-calendar.mjs +16 -18
  336. package/fesm2022/ng-nest-ui-calendar.mjs.map +1 -1
  337. package/fesm2022/ng-nest-ui-card.mjs +12 -13
  338. package/fesm2022/ng-nest-ui-card.mjs.map +1 -1
  339. package/fesm2022/ng-nest-ui-carousel.mjs +19 -23
  340. package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
  341. package/fesm2022/ng-nest-ui-cascade.mjs +18 -21
  342. package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
  343. package/fesm2022/ng-nest-ui-checkbox.mjs +13 -17
  344. package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
  345. package/fesm2022/ng-nest-ui-collapse.mjs +18 -20
  346. package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
  347. package/fesm2022/ng-nest-ui-color-picker.mjs +16 -24
  348. package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
  349. package/fesm2022/ng-nest-ui-color.mjs +12 -16
  350. package/fesm2022/ng-nest-ui-color.mjs.map +1 -1
  351. package/fesm2022/ng-nest-ui-comment.mjs +18 -21
  352. package/fesm2022/ng-nest-ui-comment.mjs.map +1 -1
  353. package/fesm2022/ng-nest-ui-container.mjs +36 -37
  354. package/fesm2022/ng-nest-ui-container.mjs.map +1 -1
  355. package/fesm2022/ng-nest-ui-core.mjs +15 -15
  356. package/fesm2022/ng-nest-ui-crumb.mjs +12 -16
  357. package/fesm2022/ng-nest-ui-crumb.mjs.map +1 -1
  358. package/fesm2022/ng-nest-ui-date-picker.mjs +66 -69
  359. package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
  360. package/fesm2022/ng-nest-ui-description.mjs +20 -21
  361. package/fesm2022/ng-nest-ui-description.mjs.map +1 -1
  362. package/fesm2022/ng-nest-ui-dialog.mjs +48 -54
  363. package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
  364. package/fesm2022/ng-nest-ui-doc.mjs +8 -9
  365. package/fesm2022/ng-nest-ui-doc.mjs.map +1 -1
  366. package/fesm2022/ng-nest-ui-drag.mjs +10 -10
  367. package/fesm2022/ng-nest-ui-drawer.mjs +37 -39
  368. package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
  369. package/fesm2022/ng-nest-ui-dropdown.mjs +19 -30
  370. package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
  371. package/fesm2022/ng-nest-ui-empty.mjs +11 -13
  372. package/fesm2022/ng-nest-ui-empty.mjs.map +1 -1
  373. package/fesm2022/ng-nest-ui-examples.mjs +8 -9
  374. package/fesm2022/ng-nest-ui-examples.mjs.map +1 -1
  375. package/fesm2022/ng-nest-ui-find.mjs +14 -18
  376. package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
  377. package/fesm2022/ng-nest-ui-form.mjs +23 -27
  378. package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
  379. package/fesm2022/ng-nest-ui-highlight.mjs +12 -13
  380. package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
  381. package/fesm2022/ng-nest-ui-i18n.mjs +13 -13
  382. package/fesm2022/ng-nest-ui-icon.mjs +13 -13
  383. package/fesm2022/ng-nest-ui-image.mjs +31 -26
  384. package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
  385. package/fesm2022/ng-nest-ui-inner.mjs +11 -12
  386. package/fesm2022/ng-nest-ui-inner.mjs.map +1 -1
  387. package/fesm2022/ng-nest-ui-input-number.mjs +13 -14
  388. package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
  389. package/fesm2022/ng-nest-ui-input.mjs +20 -21
  390. package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
  391. package/fesm2022/ng-nest-ui-keyword.mjs +10 -10
  392. package/fesm2022/ng-nest-ui-layout.mjs +16 -16
  393. package/fesm2022/ng-nest-ui-link.mjs +12 -13
  394. package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
  395. package/fesm2022/ng-nest-ui-list.mjs +26 -28
  396. package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
  397. package/fesm2022/ng-nest-ui-loading.mjs +12 -13
  398. package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
  399. package/fesm2022/ng-nest-ui-menu.mjs +20 -24
  400. package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
  401. package/fesm2022/ng-nest-ui-message-box.mjs +12 -15
  402. package/fesm2022/ng-nest-ui-message-box.mjs.map +1 -1
  403. package/fesm2022/ng-nest-ui-message.mjs +11 -16
  404. package/fesm2022/ng-nest-ui-message.mjs.map +1 -1
  405. package/fesm2022/ng-nest-ui-notification.mjs +11 -16
  406. package/fesm2022/ng-nest-ui-notification.mjs.map +1 -1
  407. package/fesm2022/ng-nest-ui-outlet.mjs +7 -7
  408. package/fesm2022/ng-nest-ui-page-header.mjs +11 -13
  409. package/fesm2022/ng-nest-ui-page-header.mjs.map +1 -1
  410. package/fesm2022/ng-nest-ui-pagination.mjs +12 -18
  411. package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
  412. package/fesm2022/ng-nest-ui-pattern.mjs +8 -9
  413. package/fesm2022/ng-nest-ui-pattern.mjs.map +1 -1
  414. package/fesm2022/ng-nest-ui-popconfirm.mjs +11 -13
  415. package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
  416. package/fesm2022/ng-nest-ui-popover.mjs +15 -16
  417. package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
  418. package/fesm2022/ng-nest-ui-portal.mjs +7 -7
  419. package/fesm2022/ng-nest-ui-progress.mjs +12 -13
  420. package/fesm2022/ng-nest-ui-progress.mjs.map +1 -1
  421. package/fesm2022/ng-nest-ui-radio.mjs +12 -16
  422. package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
  423. package/fesm2022/ng-nest-ui-rate.mjs +12 -13
  424. package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
  425. package/fesm2022/ng-nest-ui-resizable.mjs +10 -10
  426. package/fesm2022/ng-nest-ui-result.mjs +12 -13
  427. package/fesm2022/ng-nest-ui-result.mjs.map +1 -1
  428. package/fesm2022/ng-nest-ui-ripple.mjs +10 -10
  429. package/fesm2022/ng-nest-ui-select.mjs +17 -18
  430. package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
  431. package/fesm2022/ng-nest-ui-skeleton.mjs +12 -13
  432. package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
  433. package/fesm2022/ng-nest-ui-slider-select.mjs +15 -15
  434. package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
  435. package/fesm2022/ng-nest-ui-slider.mjs +12 -16
  436. package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
  437. package/fesm2022/ng-nest-ui-statistic.mjs +18 -19
  438. package/fesm2022/ng-nest-ui-statistic.mjs.map +1 -1
  439. package/fesm2022/ng-nest-ui-steps.mjs +12 -16
  440. package/fesm2022/ng-nest-ui-steps.mjs.map +1 -1
  441. package/fesm2022/ng-nest-ui-switch.mjs +12 -13
  442. package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
  443. package/fesm2022/ng-nest-ui-table.mjs +45 -46
  444. package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
  445. package/fesm2022/ng-nest-ui-tabs.mjs +29 -30
  446. package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
  447. package/fesm2022/ng-nest-ui-tag.mjs +12 -13
  448. package/fesm2022/ng-nest-ui-tag.mjs.map +1 -1
  449. package/fesm2022/ng-nest-ui-text-retract.mjs +11 -13
  450. package/fesm2022/ng-nest-ui-text-retract.mjs.map +1 -1
  451. package/fesm2022/ng-nest-ui-textarea.mjs +13 -14
  452. package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
  453. package/fesm2022/ng-nest-ui-theme.mjs +12 -15
  454. package/fesm2022/ng-nest-ui-theme.mjs.map +1 -1
  455. package/fesm2022/ng-nest-ui-time-ago.mjs +7 -7
  456. package/fesm2022/ng-nest-ui-time-picker.mjs +20 -21
  457. package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
  458. package/fesm2022/ng-nest-ui-time-range.mjs +7 -7
  459. package/fesm2022/ng-nest-ui-timeline.mjs +12 -13
  460. package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
  461. package/fesm2022/ng-nest-ui-tooltip.mjs +15 -16
  462. package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
  463. package/fesm2022/ng-nest-ui-transfer.mjs +17 -16
  464. package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
  465. package/fesm2022/ng-nest-ui-tree-file.mjs +13 -14
  466. package/fesm2022/ng-nest-ui-tree-file.mjs.map +1 -1
  467. package/fesm2022/ng-nest-ui-tree-select.mjs +17 -18
  468. package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
  469. package/fesm2022/ng-nest-ui-tree.mjs +26 -27
  470. package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
  471. package/fesm2022/ng-nest-ui-typography.mjs +10 -10
  472. package/fesm2022/ng-nest-ui-upload.mjs +17 -21
  473. package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
  474. package/find/find.component.d.ts +0 -1
  475. package/form/form.component.d.ts +1 -2
  476. package/image/image-group.component.d.ts +2 -0
  477. package/menu/menu.component.d.ts +0 -1
  478. package/message/message.component.d.ts +0 -1
  479. package/notification/notification.component.d.ts +0 -1
  480. package/package.json +59 -59
  481. package/pagination/pagination.component.d.ts +0 -1
  482. package/radio/radio.component.d.ts +0 -1
  483. package/slider/slider.component.d.ts +0 -1
  484. package/steps/steps.component.d.ts +0 -1
  485. package/table/table-head.component.d.ts +0 -1
  486. package/upload/upload.component.d.ts +1 -2
@@ -12,11 +12,10 @@ import { XTagComponent } from '@ng-nest/ui/tag';
12
12
  import { XEmptyComponent } from '@ng-nest/ui/empty';
13
13
  import { XIconComponent } from '@ng-nest/ui/icon';
14
14
  import { XInputComponent } from '@ng-nest/ui/input';
15
- import { CommonModule } from '@angular/common';
15
+ import { NgClass } from '@angular/common';
16
16
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
17
17
  import * as i0 from "@angular/core";
18
- import * as i1 from "@angular/common";
19
- import * as i2 from "@angular/forms";
18
+ import * as i1 from "@angular/forms";
20
19
  export class XFindComponent extends XFindProperty {
21
20
  constructor() {
22
21
  super(...arguments);
@@ -301,9 +300,6 @@ export class XFindComponent extends XFindProperty {
301
300
  treeCheckboxChange(node) {
302
301
  this.treeMultiple(node);
303
302
  }
304
- trackByItem(_index, item) {
305
- return item.id;
306
- }
307
303
  formControlChanges() {
308
304
  this.ngOnInit();
309
305
  this.ngAfterViewInit();
@@ -334,13 +330,13 @@ export class XFindComponent extends XFindProperty {
334
330
  this.tableCom.change(1);
335
331
  this.cdr.detectChanges();
336
332
  }
337
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XFindComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
338
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: XFindComponent, isStandalone: true, selector: "x-find", providers: [XValueAccessor(XFindComponent)], viewQueries: [{ propertyName: "find", first: true, predicate: ["find"], descendants: true, static: true }, { propertyName: "dialogCom", first: true, predicate: ["dialogCom"], descendants: true }, { propertyName: "tableCom", first: true, predicate: ["tableCom"], descendants: true }, { propertyName: "treeCom", first: true, predicate: ["treeCom"], descendants: true }, { propertyName: "buttonCom", first: true, predicate: ["buttonCom"], descendants: true }, { propertyName: "tableRef", first: true, predicate: ["tableRef"], descendants: true }, { propertyName: "treeRef", first: true, predicate: ["treeRef"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n #find\r\n class=\"x-find\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-checked]=\"value\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [ngClass]=\"classMap\"\r\n>\r\n <label\r\n *ngIf=\"label\"\r\n [class.x-find-label-required]=\"required\"\r\n [style.width]=\"labelWidth\"\r\n [ngClass]=\"labelMap\"\r\n >{{ label }}</label\r\n >\r\n <div class=\"x-find-row\">\r\n <x-button\r\n #buttonCom\r\n icon=\"fto-search\"\r\n [onlyIcon]=\"!bordered\"\r\n [size]=\"size\"\r\n [disabled]=\"disabled\"\r\n attrType=\"button\"\r\n (click)=\"showModal()\"\r\n ></x-button>\r\n <div class=\"x-find-tags\">\r\n <ng-container *ngIf=\"multiple; else singleTpl\">\r\n <x-tag\r\n *ngFor=\"let item of value; index as i; trackBy: trackByItem\"\r\n closable\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [disabled]=\"disabled\"\r\n (close)=\"tagClose(i)\"\r\n >{{ item[columnLabel] }}</x-tag\r\n >\r\n </ng-container>\r\n <ng-template #singleTpl>\r\n <x-tag\r\n *ngIf=\"value\"\r\n closable\r\n [disabled]=\"disabled\"\r\n [bordered]=\"bordered\"\r\n [size]=\"size\"\r\n (close)=\"tagClose()\"\r\n >{{ value[columnLabel] }}</x-tag\r\n >\r\n </ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<x-dialog\r\n #dialogCom\r\n [title]=\"dialogTitle\"\r\n [width]=\"dialogWidth\"\r\n [height]=\"dialogHeight\"\r\n [buttonsCenter]=\"dialogButtonsCenter\"\r\n [className]=\"'x-find-dialog-container'\"\r\n [(visible)]=\"dialogVisible\"\r\n (visibleChange)=\"dialogVisibleChange.emit($event)\"\r\n (closeDone)=\"dialogCloseDone()\"\r\n (cancel)=\"closeModal()\"\r\n (close)=\"closeModal()\"\r\n (confirm)=\"sure()\"\r\n>\r\n <div class=\"x-find-dialog\" [class.x-find-dialog-tree-table]=\"hasTable && hasTree\">\r\n <div\r\n class=\"x-find-dialog-tree\"\r\n *ngIf=\"hasTree\"\r\n #treeRef\r\n [style.height.px]=\"hasTreeTable && multiple && height\"\r\n >\r\n <x-tree\r\n #treeCom\r\n [data]=\"treeData\"\r\n nodeHeight=\"1.8\"\r\n [(manual)]=\"dialogVisible\"\r\n [activatedId]=\"treeActivatedId\"\r\n [expandedLevel]=\"treeExpandedLevel\"\r\n (activatedChange)=\"treeActivatedClick($event)\"\r\n [checkbox]=\"hasTreeMultiple\"\r\n [checked]=\"treeChecked\"\r\n (checkboxChange)=\"treeCheckboxChange($event)\"\r\n [levelCheck]=\"!hasTreeMultiple\"\r\n ></x-tree>\r\n </div>\r\n <div class=\"x-find-dialog-table\" *ngIf=\"hasTable\" #tableRef>\r\n <div class=\"x-find-search\" *ngIf=\"hasSearch\">\r\n <x-input\r\n [label]=\"search.label\"\r\n direction=\"row\"\r\n (xKeydown)=\"searchKeyDown($event)\"\r\n [(ngModel)]=\"search.value\"\r\n ></x-input>\r\n <x-button type=\"primary\" plain (click)=\"searchClick()\">{{\r\n search.button || '\u67E5\u8BE2'\r\n }}</x-button>\r\n </div>\r\n <x-table\r\n #tableCom\r\n [data]=\"tableData\"\r\n [columns]=\"tableColumns\"\r\n [(manual)]=\"dialogVisible\"\r\n [(index)]=\"tableIndex\"\r\n [(size)]=\"tableSize\"\r\n [query]=\"tableQuery\"\r\n [total]=\"tableTotal\"\r\n [allowSelectRow]=\"!multiple\"\r\n [allowCheckRow]=\"multiple\"\r\n [checkedRow]=\"tableCheckedRow\"\r\n [loading]=\"tableLoading\"\r\n (indexChange)=\"tableIndexChange.emit($event)\"\r\n (sortChange)=\"tableSortChange.emit($event)\"\r\n [(activatedRow)]=\"tableActivatedRow\"\r\n (activatedRowChange)=\"tableActivatedRowChange($event)\"\r\n [rowHeight]=\"tableRowHeight\"\r\n [bodyHeight]=\"tableBodyHeight\"\r\n [virtualScroll]=\"tableVirtualScroll\"\r\n [minBufferPx]=\"tableMinBufferPx\"\r\n [maxBufferPx]=\"tableMaxBufferPx\"\r\n [adaptionHeight]=\"tableAdaptionHeight\"\r\n [docPercent]=\"tableDocPercent\"\r\n ></x-table>\r\n </div>\r\n <div\r\n *ngIf=\"multiple\"\r\n class=\"x-find-dialog-checked\"\r\n [class.x-find-empty]=\"getEmpty\"\r\n [style.height.px]=\"height\"\r\n >\r\n <x-empty *ngIf=\"getEmpty\" [content]=\"dialogEmptyContent\"></x-empty>\r\n <div class=\"x-find-dialog-tags\">\r\n <x-tag\r\n *ngFor=\"let item of temp; index as i; trackBy: trackByItem\"\r\n closable\r\n (close)=\"tempClose(i, item)\"\r\n >\r\n <span>{{ item[columnLabel] }}</span>\r\n </x-tag>\r\n </div>\r\n </div>\r\n </div>\r\n</x-dialog>\r\n\r\n<ng-template #treeLabelTpl let-node=\"$node\">\r\n <div class=\"x-find-dialog-tree-node\">\r\n <span>{{ node.label }} </span>\r\n <x-icon type=\"fto-check\" *ngIf=\"node.$checked\"></x-icon>\r\n </div>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";.x-find{margin:0;padding:0;width:100%}.x-find.x-flex{display:flex}.x-find.x-justify-start{justify-content:flex-start}.x-find.x-justify-center{justify-content:center}.x-find.x-justify-end{justify-content:flex-end}.x-find.x-justify-space-between{justify-content:space-between}.x-find.x-justify-space-around{justify-content:space-around}.x-find.x-align-start{align-items:flex-start}.x-find.x-align-center{align-items:center}.x-find.x-align-end{align-items:flex-end}.x-find.x-direction-column{flex-direction:column}.x-find.x-direction-column-reverse{flex-direction:column-reverse}.x-find.x-direction-row{flex-direction:row}.x-find.x-direction-row-reverse{flex-direction:row-reverse}.x-find>label{display:inline-block;white-space:nowrap;position:relative;color:var(--x-text-300);font-weight:600}.x-find>label.x-text-align-start{text-align:start}.x-find>label.x-text-align-center{text-align:center}.x-find>label.x-text-align-end{text-align:end}.x-find-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-find-row{flex:1;display:flex;align-items:flex-start;position:relative}.x-find-tags{margin:-.0625rem -.0625rem -.0625rem .4375rem}.x-find-tags>x-tag{margin:.0625rem}.x-find.x-required>label{color:var(--x-danger)}.x-find.x-direction-row>label{padding:0 .5rem 0 0}.x-find.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-find.x-direction-column,.x-find.x-direction-column-reverse{align-items:inherit}.x-find-big>label{height:var(--x-height-big);line-height:var(--x-height-big)}.x-find-large>label{height:var(--x-height-large);line-height:var(--x-height-large)}.x-find-medium>label{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-find-small>label{height:var(--x-height-small);line-height:var(--x-height-small)}.x-find-small .x-find-tags{margin-top:-.1875rem}.x-find-small .x-find-tags>x-tag{margin-top:.125rem}.x-find-mini>label{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-find-mini .x-find-tags{margin-top:-.25rem}.x-find-mini .x-find-tags>x-tag{margin-top:.125rem}.x-find-dialog{flex:1;display:flex}.x-find-dialog-table{flex:1;min-height:18.75rem;height:-moz-fit-content;height:fit-content}.x-find-dialog-tree{flex:1;min-height:18.75rem;max-height:25rem;overflow-y:auto}.x-find-dialog-tree .x-tree-node-content.x-activated{color:var(--x-primary)}.x-find-dialog-tree-node{flex:1;display:flex;align-items:center;justify-content:space-between}.x-find-dialog-tree-node>span{flex:1;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;-webkit-user-select:none;user-select:none}.x-find-dialog-tree-table .x-find-dialog-tree{flex:initial;min-height:initial;max-height:initial;width:14rem;margin-right:1rem;padding-right:1rem;border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-find-dialog-checked{margin-left:1rem;border-left:var(--x-border-width) var(--x-border-style) var(--x-border);padding-left:1rem;width:10rem;overflow-y:auto;height:100%}.x-find-dialog-checked x-tag{display:block}.x-find-dialog-checked x-tag:not(:first-child){margin-top:.5rem}.x-find-dialog-checked x-tag .x-tag{width:100%;display:flex;justify-content:space-between}.x-find-dialog-checked x-tag .x-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-find-dialog-checked.x-find-empty{display:flex;align-items:center;justify-content:center}.x-find-dialog-container .x-dialog-content{overflow:initial}.x-find-search{display:flex;padding:.3rem}.x-find-search .x-input,.x-find-search x-input{width:15rem}.x-find-search .x-button{margin-left:.5rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: XTagComponent, selector: "x-tag" }, { kind: "component", type: XButtonComponent, selector: "x-button" }, { kind: "component", type: XDialogComponent, selector: "x-dialog" }, { kind: "component", type: XTableComponent, selector: "x-table" }, { kind: "component", type: XTreeComponent, selector: "x-tree" }, { kind: "component", type: XIconComponent, selector: "x-icon" }, { kind: "component", type: XEmptyComponent, selector: "x-empty" }, { kind: "component", type: XInputComponent, selector: "x-input" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
333
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XFindComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
334
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.7", type: XFindComponent, isStandalone: true, selector: "x-find", providers: [XValueAccessor(XFindComponent)], viewQueries: [{ propertyName: "find", first: true, predicate: ["find"], descendants: true, static: true }, { propertyName: "dialogCom", first: true, predicate: ["dialogCom"], descendants: true }, { propertyName: "tableCom", first: true, predicate: ["tableCom"], descendants: true }, { propertyName: "treeCom", first: true, predicate: ["treeCom"], descendants: true }, { propertyName: "buttonCom", first: true, predicate: ["buttonCom"], descendants: true }, { propertyName: "tableRef", first: true, predicate: ["tableRef"], descendants: true }, { propertyName: "treeRef", first: true, predicate: ["treeRef"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n #find\r\n class=\"x-find\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-checked]=\"value\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [ngClass]=\"classMap\"\r\n>\r\n @if (label) {\r\n <label [class.x-find-label-required]=\"required\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n }\r\n <div class=\"x-find-row\">\r\n <x-button\r\n #buttonCom\r\n icon=\"fto-search\"\r\n [onlyIcon]=\"!bordered\"\r\n [size]=\"size\"\r\n [disabled]=\"disabled\"\r\n attrType=\"button\"\r\n (click)=\"showModal()\"\r\n ></x-button>\r\n <div class=\"x-find-tags\">\r\n @if (multiple) {\r\n @for (item of value; track item.id; let i = $index) {\r\n <x-tag closable [size]=\"size\" [bordered]=\"bordered\" [disabled]=\"disabled\" (close)=\"tagClose(i)\">{{\r\n item[columnLabel]\r\n }}</x-tag>\r\n }\r\n } @else if (value) {\r\n <x-tag closable [disabled]=\"disabled\" [bordered]=\"bordered\" [size]=\"size\" (close)=\"tagClose()\">{{\r\n value[columnLabel]\r\n }}</x-tag>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<x-dialog\r\n #dialogCom\r\n [title]=\"dialogTitle\"\r\n [width]=\"dialogWidth\"\r\n [height]=\"dialogHeight\"\r\n [buttonsCenter]=\"dialogButtonsCenter\"\r\n [className]=\"'x-find-dialog-container'\"\r\n [(visible)]=\"dialogVisible\"\r\n (visibleChange)=\"dialogVisibleChange.emit($event)\"\r\n (closeDone)=\"dialogCloseDone()\"\r\n (cancel)=\"closeModal()\"\r\n (close)=\"closeModal()\"\r\n (confirm)=\"sure()\"\r\n>\r\n <div class=\"x-find-dialog\" [class.x-find-dialog-tree-table]=\"hasTable && hasTree\">\r\n @if (hasTree) {\r\n <div class=\"x-find-dialog-tree\" #treeRef [style.height.px]=\"hasTreeTable && multiple && height\">\r\n <x-tree\r\n #treeCom\r\n [data]=\"treeData\"\r\n nodeHeight=\"1.8\"\r\n [(manual)]=\"dialogVisible\"\r\n [activatedId]=\"treeActivatedId\"\r\n [expandedLevel]=\"treeExpandedLevel\"\r\n (activatedChange)=\"treeActivatedClick($event)\"\r\n [checkbox]=\"hasTreeMultiple\"\r\n [checked]=\"treeChecked\"\r\n (checkboxChange)=\"treeCheckboxChange($event)\"\r\n [levelCheck]=\"!hasTreeMultiple\"\r\n ></x-tree>\r\n </div>\r\n }\r\n @if (hasTable) {\r\n <div class=\"x-find-dialog-table\" #tableRef>\r\n @if (hasSearch) {\r\n <div class=\"x-find-search\">\r\n <x-input\r\n [label]=\"search.label\"\r\n direction=\"row\"\r\n (xKeydown)=\"searchKeyDown($event)\"\r\n [(ngModel)]=\"search.value\"\r\n ></x-input>\r\n <x-button type=\"primary\" plain (click)=\"searchClick()\">{{ search.button || '\u67E5\u8BE2' }}</x-button>\r\n </div>\r\n }\r\n <x-table\r\n #tableCom\r\n [data]=\"tableData\"\r\n [columns]=\"tableColumns\"\r\n [(manual)]=\"dialogVisible\"\r\n [(index)]=\"tableIndex\"\r\n [(size)]=\"tableSize\"\r\n [query]=\"tableQuery\"\r\n [total]=\"tableTotal\"\r\n [allowSelectRow]=\"!multiple\"\r\n [allowCheckRow]=\"multiple\"\r\n [checkedRow]=\"tableCheckedRow\"\r\n [loading]=\"tableLoading\"\r\n (indexChange)=\"tableIndexChange.emit($event)\"\r\n (sortChange)=\"tableSortChange.emit($event)\"\r\n [(activatedRow)]=\"tableActivatedRow\"\r\n (activatedRowChange)=\"tableActivatedRowChange($event)\"\r\n [rowHeight]=\"tableRowHeight\"\r\n [bodyHeight]=\"tableBodyHeight\"\r\n [virtualScroll]=\"tableVirtualScroll\"\r\n [minBufferPx]=\"tableMinBufferPx\"\r\n [maxBufferPx]=\"tableMaxBufferPx\"\r\n [adaptionHeight]=\"tableAdaptionHeight\"\r\n [docPercent]=\"tableDocPercent\"\r\n ></x-table>\r\n </div>\r\n }\r\n @if (multiple) {\r\n <div class=\"x-find-dialog-checked\" [class.x-find-empty]=\"getEmpty\" [style.height.px]=\"height\">\r\n @if (getEmpty) {\r\n <x-empty [content]=\"dialogEmptyContent\"></x-empty>\r\n }\r\n <div class=\"x-find-dialog-tags\">\r\n @for (item of temp; track item.id; let i = $index) {\r\n <x-tag closable (close)=\"tempClose(i, item)\">\r\n <span>{{ item[columnLabel] }}</span>\r\n </x-tag>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</x-dialog>\r\n\r\n<ng-template #treeLabelTpl let-node=\"$node\">\r\n <div class=\"x-find-dialog-tree-node\">\r\n <span>{{ node.label }} </span>\r\n @if (node.$checked) {\r\n <x-icon type=\"fto-check\"></x-icon>\r\n }\r\n </div>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";.x-find{margin:0;padding:0;width:100%}.x-find.x-flex{display:flex}.x-find.x-justify-start{justify-content:flex-start}.x-find.x-justify-center{justify-content:center}.x-find.x-justify-end{justify-content:flex-end}.x-find.x-justify-space-between{justify-content:space-between}.x-find.x-justify-space-around{justify-content:space-around}.x-find.x-align-start{align-items:flex-start}.x-find.x-align-center{align-items:center}.x-find.x-align-end{align-items:flex-end}.x-find.x-direction-column{flex-direction:column}.x-find.x-direction-column-reverse{flex-direction:column-reverse}.x-find.x-direction-row{flex-direction:row}.x-find.x-direction-row-reverse{flex-direction:row-reverse}.x-find>label{display:inline-block;white-space:nowrap;position:relative;color:var(--x-text-300);font-weight:600}.x-find>label.x-text-align-start{text-align:start}.x-find>label.x-text-align-center{text-align:center}.x-find>label.x-text-align-end{text-align:end}.x-find-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-find-row{flex:1;display:flex;align-items:flex-start;position:relative}.x-find-tags{margin:-.0625rem -.0625rem -.0625rem .4375rem}.x-find-tags>x-tag{margin:.0625rem}.x-find.x-required>label{color:var(--x-danger)}.x-find.x-direction-row>label{padding:0 .5rem 0 0}.x-find.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-find.x-direction-column,.x-find.x-direction-column-reverse{align-items:inherit}.x-find-big>label{height:var(--x-height-big);line-height:var(--x-height-big)}.x-find-large>label{height:var(--x-height-large);line-height:var(--x-height-large)}.x-find-medium>label{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-find-small>label{height:var(--x-height-small);line-height:var(--x-height-small)}.x-find-small .x-find-tags{margin-top:-.1875rem}.x-find-small .x-find-tags>x-tag{margin-top:.125rem}.x-find-mini>label{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-find-mini .x-find-tags{margin-top:-.25rem}.x-find-mini .x-find-tags>x-tag{margin-top:.125rem}.x-find-dialog{flex:1;display:flex}.x-find-dialog-table{flex:1;min-height:18.75rem;height:-moz-fit-content;height:fit-content}.x-find-dialog-tree{flex:1;min-height:18.75rem;max-height:25rem;overflow-y:auto}.x-find-dialog-tree .x-tree-node-content.x-activated{color:var(--x-primary)}.x-find-dialog-tree-node{flex:1;display:flex;align-items:center;justify-content:space-between}.x-find-dialog-tree-node>span{flex:1;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;-webkit-user-select:none;user-select:none}.x-find-dialog-tree-table .x-find-dialog-tree{flex:initial;min-height:initial;max-height:initial;width:14rem;margin-right:1rem;padding-right:1rem;border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-find-dialog-checked{margin-left:1rem;border-left:var(--x-border-width) var(--x-border-style) var(--x-border);padding-left:1rem;width:10rem;overflow-y:auto;height:100%}.x-find-dialog-checked x-tag{display:block}.x-find-dialog-checked x-tag:not(:first-child){margin-top:.5rem}.x-find-dialog-checked x-tag .x-tag{width:100%;display:flex;justify-content:space-between}.x-find-dialog-checked x-tag .x-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-find-dialog-checked.x-find-empty{display:flex;align-items:center;justify-content:center}.x-find-dialog-container .x-dialog-content{overflow:initial}.x-find-search{display:flex;padding:.3rem}.x-find-search .x-input,.x-find-search x-input{width:15rem}.x-find-search .x-button{margin-left:.5rem}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: XTagComponent, selector: "x-tag" }, { kind: "component", type: XButtonComponent, selector: "x-button" }, { kind: "component", type: XDialogComponent, selector: "x-dialog" }, { kind: "component", type: XTableComponent, selector: "x-table" }, { kind: "component", type: XTreeComponent, selector: "x-tree" }, { kind: "component", type: XIconComponent, selector: "x-icon" }, { kind: "component", type: XEmptyComponent, selector: "x-empty" }, { kind: "component", type: XInputComponent, selector: "x-input" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
339
335
  }
340
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XFindComponent, decorators: [{
336
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XFindComponent, decorators: [{
341
337
  type: Component,
342
338
  args: [{ selector: `${XFindPrefix}`, standalone: true, imports: [
343
- CommonModule,
339
+ NgClass,
344
340
  FormsModule,
345
341
  ReactiveFormsModule,
346
342
  XTagComponent,
@@ -352,7 +348,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
352
348
  XEmptyComponent,
353
349
  XInputComponent,
354
350
  XControlValueAccessor
355
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XFindComponent)], template: "<div\r\n #find\r\n class=\"x-find\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-checked]=\"value\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [ngClass]=\"classMap\"\r\n>\r\n <label\r\n *ngIf=\"label\"\r\n [class.x-find-label-required]=\"required\"\r\n [style.width]=\"labelWidth\"\r\n [ngClass]=\"labelMap\"\r\n >{{ label }}</label\r\n >\r\n <div class=\"x-find-row\">\r\n <x-button\r\n #buttonCom\r\n icon=\"fto-search\"\r\n [onlyIcon]=\"!bordered\"\r\n [size]=\"size\"\r\n [disabled]=\"disabled\"\r\n attrType=\"button\"\r\n (click)=\"showModal()\"\r\n ></x-button>\r\n <div class=\"x-find-tags\">\r\n <ng-container *ngIf=\"multiple; else singleTpl\">\r\n <x-tag\r\n *ngFor=\"let item of value; index as i; trackBy: trackByItem\"\r\n closable\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [disabled]=\"disabled\"\r\n (close)=\"tagClose(i)\"\r\n >{{ item[columnLabel] }}</x-tag\r\n >\r\n </ng-container>\r\n <ng-template #singleTpl>\r\n <x-tag\r\n *ngIf=\"value\"\r\n closable\r\n [disabled]=\"disabled\"\r\n [bordered]=\"bordered\"\r\n [size]=\"size\"\r\n (close)=\"tagClose()\"\r\n >{{ value[columnLabel] }}</x-tag\r\n >\r\n </ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<x-dialog\r\n #dialogCom\r\n [title]=\"dialogTitle\"\r\n [width]=\"dialogWidth\"\r\n [height]=\"dialogHeight\"\r\n [buttonsCenter]=\"dialogButtonsCenter\"\r\n [className]=\"'x-find-dialog-container'\"\r\n [(visible)]=\"dialogVisible\"\r\n (visibleChange)=\"dialogVisibleChange.emit($event)\"\r\n (closeDone)=\"dialogCloseDone()\"\r\n (cancel)=\"closeModal()\"\r\n (close)=\"closeModal()\"\r\n (confirm)=\"sure()\"\r\n>\r\n <div class=\"x-find-dialog\" [class.x-find-dialog-tree-table]=\"hasTable && hasTree\">\r\n <div\r\n class=\"x-find-dialog-tree\"\r\n *ngIf=\"hasTree\"\r\n #treeRef\r\n [style.height.px]=\"hasTreeTable && multiple && height\"\r\n >\r\n <x-tree\r\n #treeCom\r\n [data]=\"treeData\"\r\n nodeHeight=\"1.8\"\r\n [(manual)]=\"dialogVisible\"\r\n [activatedId]=\"treeActivatedId\"\r\n [expandedLevel]=\"treeExpandedLevel\"\r\n (activatedChange)=\"treeActivatedClick($event)\"\r\n [checkbox]=\"hasTreeMultiple\"\r\n [checked]=\"treeChecked\"\r\n (checkboxChange)=\"treeCheckboxChange($event)\"\r\n [levelCheck]=\"!hasTreeMultiple\"\r\n ></x-tree>\r\n </div>\r\n <div class=\"x-find-dialog-table\" *ngIf=\"hasTable\" #tableRef>\r\n <div class=\"x-find-search\" *ngIf=\"hasSearch\">\r\n <x-input\r\n [label]=\"search.label\"\r\n direction=\"row\"\r\n (xKeydown)=\"searchKeyDown($event)\"\r\n [(ngModel)]=\"search.value\"\r\n ></x-input>\r\n <x-button type=\"primary\" plain (click)=\"searchClick()\">{{\r\n search.button || '\u67E5\u8BE2'\r\n }}</x-button>\r\n </div>\r\n <x-table\r\n #tableCom\r\n [data]=\"tableData\"\r\n [columns]=\"tableColumns\"\r\n [(manual)]=\"dialogVisible\"\r\n [(index)]=\"tableIndex\"\r\n [(size)]=\"tableSize\"\r\n [query]=\"tableQuery\"\r\n [total]=\"tableTotal\"\r\n [allowSelectRow]=\"!multiple\"\r\n [allowCheckRow]=\"multiple\"\r\n [checkedRow]=\"tableCheckedRow\"\r\n [loading]=\"tableLoading\"\r\n (indexChange)=\"tableIndexChange.emit($event)\"\r\n (sortChange)=\"tableSortChange.emit($event)\"\r\n [(activatedRow)]=\"tableActivatedRow\"\r\n (activatedRowChange)=\"tableActivatedRowChange($event)\"\r\n [rowHeight]=\"tableRowHeight\"\r\n [bodyHeight]=\"tableBodyHeight\"\r\n [virtualScroll]=\"tableVirtualScroll\"\r\n [minBufferPx]=\"tableMinBufferPx\"\r\n [maxBufferPx]=\"tableMaxBufferPx\"\r\n [adaptionHeight]=\"tableAdaptionHeight\"\r\n [docPercent]=\"tableDocPercent\"\r\n ></x-table>\r\n </div>\r\n <div\r\n *ngIf=\"multiple\"\r\n class=\"x-find-dialog-checked\"\r\n [class.x-find-empty]=\"getEmpty\"\r\n [style.height.px]=\"height\"\r\n >\r\n <x-empty *ngIf=\"getEmpty\" [content]=\"dialogEmptyContent\"></x-empty>\r\n <div class=\"x-find-dialog-tags\">\r\n <x-tag\r\n *ngFor=\"let item of temp; index as i; trackBy: trackByItem\"\r\n closable\r\n (close)=\"tempClose(i, item)\"\r\n >\r\n <span>{{ item[columnLabel] }}</span>\r\n </x-tag>\r\n </div>\r\n </div>\r\n </div>\r\n</x-dialog>\r\n\r\n<ng-template #treeLabelTpl let-node=\"$node\">\r\n <div class=\"x-find-dialog-tree-node\">\r\n <span>{{ node.label }} </span>\r\n <x-icon type=\"fto-check\" *ngIf=\"node.$checked\"></x-icon>\r\n </div>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";.x-find{margin:0;padding:0;width:100%}.x-find.x-flex{display:flex}.x-find.x-justify-start{justify-content:flex-start}.x-find.x-justify-center{justify-content:center}.x-find.x-justify-end{justify-content:flex-end}.x-find.x-justify-space-between{justify-content:space-between}.x-find.x-justify-space-around{justify-content:space-around}.x-find.x-align-start{align-items:flex-start}.x-find.x-align-center{align-items:center}.x-find.x-align-end{align-items:flex-end}.x-find.x-direction-column{flex-direction:column}.x-find.x-direction-column-reverse{flex-direction:column-reverse}.x-find.x-direction-row{flex-direction:row}.x-find.x-direction-row-reverse{flex-direction:row-reverse}.x-find>label{display:inline-block;white-space:nowrap;position:relative;color:var(--x-text-300);font-weight:600}.x-find>label.x-text-align-start{text-align:start}.x-find>label.x-text-align-center{text-align:center}.x-find>label.x-text-align-end{text-align:end}.x-find-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-find-row{flex:1;display:flex;align-items:flex-start;position:relative}.x-find-tags{margin:-.0625rem -.0625rem -.0625rem .4375rem}.x-find-tags>x-tag{margin:.0625rem}.x-find.x-required>label{color:var(--x-danger)}.x-find.x-direction-row>label{padding:0 .5rem 0 0}.x-find.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-find.x-direction-column,.x-find.x-direction-column-reverse{align-items:inherit}.x-find-big>label{height:var(--x-height-big);line-height:var(--x-height-big)}.x-find-large>label{height:var(--x-height-large);line-height:var(--x-height-large)}.x-find-medium>label{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-find-small>label{height:var(--x-height-small);line-height:var(--x-height-small)}.x-find-small .x-find-tags{margin-top:-.1875rem}.x-find-small .x-find-tags>x-tag{margin-top:.125rem}.x-find-mini>label{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-find-mini .x-find-tags{margin-top:-.25rem}.x-find-mini .x-find-tags>x-tag{margin-top:.125rem}.x-find-dialog{flex:1;display:flex}.x-find-dialog-table{flex:1;min-height:18.75rem;height:-moz-fit-content;height:fit-content}.x-find-dialog-tree{flex:1;min-height:18.75rem;max-height:25rem;overflow-y:auto}.x-find-dialog-tree .x-tree-node-content.x-activated{color:var(--x-primary)}.x-find-dialog-tree-node{flex:1;display:flex;align-items:center;justify-content:space-between}.x-find-dialog-tree-node>span{flex:1;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;-webkit-user-select:none;user-select:none}.x-find-dialog-tree-table .x-find-dialog-tree{flex:initial;min-height:initial;max-height:initial;width:14rem;margin-right:1rem;padding-right:1rem;border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-find-dialog-checked{margin-left:1rem;border-left:var(--x-border-width) var(--x-border-style) var(--x-border);padding-left:1rem;width:10rem;overflow-y:auto;height:100%}.x-find-dialog-checked x-tag{display:block}.x-find-dialog-checked x-tag:not(:first-child){margin-top:.5rem}.x-find-dialog-checked x-tag .x-tag{width:100%;display:flex;justify-content:space-between}.x-find-dialog-checked x-tag .x-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-find-dialog-checked.x-find-empty{display:flex;align-items:center;justify-content:center}.x-find-dialog-container .x-dialog-content{overflow:initial}.x-find-search{display:flex;padding:.3rem}.x-find-search .x-input,.x-find-search x-input{width:15rem}.x-find-search .x-button{margin-left:.5rem}\n"] }]
351
+ ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XFindComponent)], template: "<div\r\n #find\r\n class=\"x-find\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-checked]=\"value\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [ngClass]=\"classMap\"\r\n>\r\n @if (label) {\r\n <label [class.x-find-label-required]=\"required\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n }\r\n <div class=\"x-find-row\">\r\n <x-button\r\n #buttonCom\r\n icon=\"fto-search\"\r\n [onlyIcon]=\"!bordered\"\r\n [size]=\"size\"\r\n [disabled]=\"disabled\"\r\n attrType=\"button\"\r\n (click)=\"showModal()\"\r\n ></x-button>\r\n <div class=\"x-find-tags\">\r\n @if (multiple) {\r\n @for (item of value; track item.id; let i = $index) {\r\n <x-tag closable [size]=\"size\" [bordered]=\"bordered\" [disabled]=\"disabled\" (close)=\"tagClose(i)\">{{\r\n item[columnLabel]\r\n }}</x-tag>\r\n }\r\n } @else if (value) {\r\n <x-tag closable [disabled]=\"disabled\" [bordered]=\"bordered\" [size]=\"size\" (close)=\"tagClose()\">{{\r\n value[columnLabel]\r\n }}</x-tag>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<x-dialog\r\n #dialogCom\r\n [title]=\"dialogTitle\"\r\n [width]=\"dialogWidth\"\r\n [height]=\"dialogHeight\"\r\n [buttonsCenter]=\"dialogButtonsCenter\"\r\n [className]=\"'x-find-dialog-container'\"\r\n [(visible)]=\"dialogVisible\"\r\n (visibleChange)=\"dialogVisibleChange.emit($event)\"\r\n (closeDone)=\"dialogCloseDone()\"\r\n (cancel)=\"closeModal()\"\r\n (close)=\"closeModal()\"\r\n (confirm)=\"sure()\"\r\n>\r\n <div class=\"x-find-dialog\" [class.x-find-dialog-tree-table]=\"hasTable && hasTree\">\r\n @if (hasTree) {\r\n <div class=\"x-find-dialog-tree\" #treeRef [style.height.px]=\"hasTreeTable && multiple && height\">\r\n <x-tree\r\n #treeCom\r\n [data]=\"treeData\"\r\n nodeHeight=\"1.8\"\r\n [(manual)]=\"dialogVisible\"\r\n [activatedId]=\"treeActivatedId\"\r\n [expandedLevel]=\"treeExpandedLevel\"\r\n (activatedChange)=\"treeActivatedClick($event)\"\r\n [checkbox]=\"hasTreeMultiple\"\r\n [checked]=\"treeChecked\"\r\n (checkboxChange)=\"treeCheckboxChange($event)\"\r\n [levelCheck]=\"!hasTreeMultiple\"\r\n ></x-tree>\r\n </div>\r\n }\r\n @if (hasTable) {\r\n <div class=\"x-find-dialog-table\" #tableRef>\r\n @if (hasSearch) {\r\n <div class=\"x-find-search\">\r\n <x-input\r\n [label]=\"search.label\"\r\n direction=\"row\"\r\n (xKeydown)=\"searchKeyDown($event)\"\r\n [(ngModel)]=\"search.value\"\r\n ></x-input>\r\n <x-button type=\"primary\" plain (click)=\"searchClick()\">{{ search.button || '\u67E5\u8BE2' }}</x-button>\r\n </div>\r\n }\r\n <x-table\r\n #tableCom\r\n [data]=\"tableData\"\r\n [columns]=\"tableColumns\"\r\n [(manual)]=\"dialogVisible\"\r\n [(index)]=\"tableIndex\"\r\n [(size)]=\"tableSize\"\r\n [query]=\"tableQuery\"\r\n [total]=\"tableTotal\"\r\n [allowSelectRow]=\"!multiple\"\r\n [allowCheckRow]=\"multiple\"\r\n [checkedRow]=\"tableCheckedRow\"\r\n [loading]=\"tableLoading\"\r\n (indexChange)=\"tableIndexChange.emit($event)\"\r\n (sortChange)=\"tableSortChange.emit($event)\"\r\n [(activatedRow)]=\"tableActivatedRow\"\r\n (activatedRowChange)=\"tableActivatedRowChange($event)\"\r\n [rowHeight]=\"tableRowHeight\"\r\n [bodyHeight]=\"tableBodyHeight\"\r\n [virtualScroll]=\"tableVirtualScroll\"\r\n [minBufferPx]=\"tableMinBufferPx\"\r\n [maxBufferPx]=\"tableMaxBufferPx\"\r\n [adaptionHeight]=\"tableAdaptionHeight\"\r\n [docPercent]=\"tableDocPercent\"\r\n ></x-table>\r\n </div>\r\n }\r\n @if (multiple) {\r\n <div class=\"x-find-dialog-checked\" [class.x-find-empty]=\"getEmpty\" [style.height.px]=\"height\">\r\n @if (getEmpty) {\r\n <x-empty [content]=\"dialogEmptyContent\"></x-empty>\r\n }\r\n <div class=\"x-find-dialog-tags\">\r\n @for (item of temp; track item.id; let i = $index) {\r\n <x-tag closable (close)=\"tempClose(i, item)\">\r\n <span>{{ item[columnLabel] }}</span>\r\n </x-tag>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</x-dialog>\r\n\r\n<ng-template #treeLabelTpl let-node=\"$node\">\r\n <div class=\"x-find-dialog-tree-node\">\r\n <span>{{ node.label }} </span>\r\n @if (node.$checked) {\r\n <x-icon type=\"fto-check\"></x-icon>\r\n }\r\n </div>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";.x-find{margin:0;padding:0;width:100%}.x-find.x-flex{display:flex}.x-find.x-justify-start{justify-content:flex-start}.x-find.x-justify-center{justify-content:center}.x-find.x-justify-end{justify-content:flex-end}.x-find.x-justify-space-between{justify-content:space-between}.x-find.x-justify-space-around{justify-content:space-around}.x-find.x-align-start{align-items:flex-start}.x-find.x-align-center{align-items:center}.x-find.x-align-end{align-items:flex-end}.x-find.x-direction-column{flex-direction:column}.x-find.x-direction-column-reverse{flex-direction:column-reverse}.x-find.x-direction-row{flex-direction:row}.x-find.x-direction-row-reverse{flex-direction:row-reverse}.x-find>label{display:inline-block;white-space:nowrap;position:relative;color:var(--x-text-300);font-weight:600}.x-find>label.x-text-align-start{text-align:start}.x-find>label.x-text-align-center{text-align:center}.x-find>label.x-text-align-end{text-align:end}.x-find-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-find-row{flex:1;display:flex;align-items:flex-start;position:relative}.x-find-tags{margin:-.0625rem -.0625rem -.0625rem .4375rem}.x-find-tags>x-tag{margin:.0625rem}.x-find.x-required>label{color:var(--x-danger)}.x-find.x-direction-row>label{padding:0 .5rem 0 0}.x-find.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-find.x-direction-column,.x-find.x-direction-column-reverse{align-items:inherit}.x-find-big>label{height:var(--x-height-big);line-height:var(--x-height-big)}.x-find-large>label{height:var(--x-height-large);line-height:var(--x-height-large)}.x-find-medium>label{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-find-small>label{height:var(--x-height-small);line-height:var(--x-height-small)}.x-find-small .x-find-tags{margin-top:-.1875rem}.x-find-small .x-find-tags>x-tag{margin-top:.125rem}.x-find-mini>label{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-find-mini .x-find-tags{margin-top:-.25rem}.x-find-mini .x-find-tags>x-tag{margin-top:.125rem}.x-find-dialog{flex:1;display:flex}.x-find-dialog-table{flex:1;min-height:18.75rem;height:-moz-fit-content;height:fit-content}.x-find-dialog-tree{flex:1;min-height:18.75rem;max-height:25rem;overflow-y:auto}.x-find-dialog-tree .x-tree-node-content.x-activated{color:var(--x-primary)}.x-find-dialog-tree-node{flex:1;display:flex;align-items:center;justify-content:space-between}.x-find-dialog-tree-node>span{flex:1;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;-webkit-user-select:none;user-select:none}.x-find-dialog-tree-table .x-find-dialog-tree{flex:initial;min-height:initial;max-height:initial;width:14rem;margin-right:1rem;padding-right:1rem;border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-find-dialog-checked{margin-left:1rem;border-left:var(--x-border-width) var(--x-border-style) var(--x-border);padding-left:1rem;width:10rem;overflow-y:auto;height:100%}.x-find-dialog-checked x-tag{display:block}.x-find-dialog-checked x-tag:not(:first-child){margin-top:.5rem}.x-find-dialog-checked x-tag .x-tag{width:100%;display:flex;justify-content:space-between}.x-find-dialog-checked x-tag .x-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-find-dialog-checked.x-find-empty{display:flex;align-items:center;justify-content:center}.x-find-dialog-container .x-dialog-content{overflow:initial}.x-find-search{display:flex;padding:.3rem}.x-find-search .x-input,.x-find-search x-input{width:15rem}.x-find-search .x-button{margin-left:.5rem}\n"] }]
356
352
  }], propDecorators: { find: [{
357
353
  type: ViewChild,
358
354
  args: ['find', { static: true }]
@@ -375,4 +371,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
375
371
  type: ViewChild,
376
372
  args: ['treeRef']
377
373
  }] } });
378
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9maW5kL2ZpbmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZmluZC9maW5kLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUVULFNBQVMsRUFFVCxNQUFNLEVBSVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsV0FBVyxFQUNYLE9BQU8sRUFDUCxZQUFZLEVBQ1osU0FBUyxFQUNULGNBQWMsRUFDZCxRQUFRLEVBRVQsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsZUFBZSxFQUFhLE1BQU0sbUJBQW1CLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQWEsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBeUJsRSxNQUFNLE9BQU8sY0FDWCxTQUFRLGFBQWE7SUF4QnZCOztRQXNGRSxXQUFNLEdBQUcsR0FBRyxDQUFDO1FBRUwsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFRakMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1QixRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDekMsa0JBQWEsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7S0FzUnhDO0lBdFZDLElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQ1csUUFBUSxDQUFDLEtBQWlCO1FBQ25DLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUdELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQ1csT0FBTyxDQUFDLEtBQWlCO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sQ0FDTCxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUMxRCxJQUFJLENBQUMsUUFBUSxZQUFZLFFBQVE7WUFDakMsSUFBSSxDQUFDLFFBQVEsWUFBWSxVQUFVLENBQ3BDLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDN0QsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3RDLENBQUM7SUFRUSxVQUFVLENBQUMsS0FBVTtRQUM1QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFNRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsTUFBTSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQ2hELFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUNsRCxTQUFTLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9GLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsS0FBSztZQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsZUFBZSxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxXQUFXO1FBQ1QsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ2xGLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLFNBQVMsR0FBYyxFQUFFLENBQUM7UUFDOUIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDLENBQUM7U0FDNUM7UUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3RDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQztTQUM3QztRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsT0FBTyxDQUFDLEdBQUcsU0FBUyxDQUFDO2FBQ2xCLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNsRCxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNmLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQztZQUN4QyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO2FBQ3hEO2lCQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxZQUFZLENBQUM7YUFDeEQ7WUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBQzNCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDaEQsSUFBSSxDQUFDLFlBQVksR0FBRztvQkFDbEI7d0JBQ0UsRUFBRSxFQUFFLFVBQVU7d0JBQ2QsS0FBSyxFQUFFLElBQUksQ0FBQyxtQkFBbUI7d0JBQy9CLFVBQVUsRUFBRSxJQUFJO3dCQUNoQixJQUFJLEVBQUUsVUFBVTt3QkFDaEIsS0FBSyxFQUFFLElBQUksQ0FBQyxtQkFBbUI7cUJBQ2hDO29CQUNELEdBQUcsSUFBSSxDQUFDLFlBQVk7aUJBQ3JCLENBQUM7YUFDSDtTQUNGO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ3BELElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDO2FBQzVCO2lCQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUN4QyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQzthQUM1QjtpQkFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDO2FBQzVCO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBQzFCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2xELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDakIsSUFBSSxDQUFDLElBQUksR0FBSSxJQUFJLENBQUMsS0FBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7YUFDdkI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7b0JBQ3RDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7aUJBQ3RDO2FBQ0Y7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUN2QztRQUNELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztTQUNoRDtRQUNELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUFFLE9BQU87UUFDdEQsTUFBTSxHQUFHLEdBQUksSUFBSSxDQUFDLElBQW1CLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLGVBQWUsR0FBRztZQUNyQixHQUFHLElBQUksQ0FBQyxlQUFlO1lBQ3ZCLFFBQVEsRUFBRSxHQUFHO1NBQ2QsQ0FBQztJQUNKLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxJQUFJLENBQUMsZUFBZTtZQUFFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztZQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztTQUNsQjtJQUNILENBQUM7SUFFRCxTQUFTLENBQUMsS0FBYSxFQUFFLElBQVM7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hFLElBQUksRUFBRSxFQUFFO2dCQUNOLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxLQUFLLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLENBQUM7YUFDN0I7U0FDRjthQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUN2QixJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzlELElBQUksRUFBRSxFQUFFO2dCQUNOLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUNuQixFQUFFLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDbkM7U0FDRjtRQUVELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFFBQVEsQ0FBQyxRQUFnQixDQUFDLENBQUM7UUFDekIsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFO1lBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQzdCO2FBQU07WUFDTCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNsQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1lBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ3RDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO2FBQzdCO1NBQ0Y7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxJQUFlO1FBQ3JDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3hCO2FBQU07WUFDTCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUNqQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztZQUMzQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDYjtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsSUFBZTtRQUN6QixJQUFJLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxXQUFXO1lBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDckQsd0NBQXdDO1FBQ3hDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDbEM7YUFBTTtZQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUNiLElBQUksQ0FBQyxJQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQzVELENBQUMsQ0FDRixDQUFDO1NBQ0g7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBZTtRQUMxQixJQUFJLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxXQUFXO1lBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDckQsa0NBQWtDO1FBQ2xDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ2xDO2FBQU07WUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FDYixJQUFJLENBQUMsSUFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUM1RCxDQUFDLENBQ0YsQ0FBQztTQUNIO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsa0JBQWtCLENBQUMsSUFBZTtRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ3RDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDakIsMkJBQTJCO2FBQzVCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2FBQ2xCO1NBQ0Y7YUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVTtnQkFBRSxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNO2dCQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztZQUN6RCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDbEYsSUFBSSxLQUFLLEVBQUU7Z0JBQ1QsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUN0QixLQUFLLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQzthQUN2QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRztvQkFDdkIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU07b0JBQ3pCLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFO2lCQUNqRSxDQUFDO2FBQ0g7WUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7U0FDaEM7UUFDRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGtCQUFrQixDQUFDLElBQWU7UUFDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWMsRUFBRSxJQUFTO1FBQ25DLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBb0I7UUFDaEMsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLE9BQU8sRUFBRTtZQUN6QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDcEI7YUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssUUFBUSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDdEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFaEYsSUFBSSxLQUFLLEVBQUU7WUFDVCxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztTQUN2QzthQUFNO1lBQ0wsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNwRTtRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztpSUFoV1UsY0FBYztxSEFBZCxjQUFjLHFEQUZkLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDLDRyQkM1RDdDLG0vSkF5SkEsaW1IRDlHSSxZQUFZLDZWQUNaLFdBQVcsOFZBQ1gsbUJBQW1CLCtCQUNuQixhQUFhLGtEQUNiLGdCQUFnQixxREFDaEIsZ0JBQWdCLHFEQUNoQixlQUFlLG9EQUNmLGNBQWMsbURBQ2QsY0FBYyxtREFDZCxlQUFlLG9EQUNmLGVBQWU7OzJGQVNOLGNBQWM7a0JBdkIxQixTQUFTOytCQUNFLEdBQUcsV0FBVyxFQUFFLGNBQ2QsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixxQkFBcUI7cUJBQ3RCLGlCQUdjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxjQUFjLGdCQUFnQixDQUFDOzhCQU1OLElBQUk7c0JBQXhDLFNBQVM7dUJBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDWCxTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBQ0MsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQUNDLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUztnQkFDSSxTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBT1gsUUFBUTtzQkFEbEIsU0FBUzt1QkFBQyxVQUFVO2dCQWFWLE9BQU87c0JBRGpCLFNBQVM7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBSZW5kZXJlcjIsXHJcbiAgRWxlbWVudFJlZixcclxuICBWaWV3Q2hpbGQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBpbmplY3QsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgT25EZXN0cm95XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhGaW5kUHJvcGVydHksIFhGaW5kUHJlZml4IH0gZnJvbSAnLi9maW5kLnByb3BlcnR5JztcclxuaW1wb3J0IHtcclxuICBYQ2xlYXJDbGFzcyxcclxuICBYUmVzaXplLFxyXG4gIFhJc1VuZGVmaW5lZCxcclxuICBYSXNDaGFuZ2UsXHJcbiAgWENvbmZpZ1NlcnZpY2UsXHJcbiAgWElzRW1wdHksXHJcbiAgWFJlc2l6ZU9ic2VydmVyXHJcbn0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IFhUYWJsZUNvbXBvbmVudCwgWFRhYmxlUm93IH0gZnJvbSAnQG5nLW5lc3QvdWkvdGFibGUnO1xyXG5pbXBvcnQgeyBYRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvZGlhbG9nJztcclxuaW1wb3J0IHsgWEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2J1dHRvbic7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFhUcmVlTm9kZSwgWFRyZWVDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS90cmVlJztcclxuaW1wb3J0IHsgWFZhbHVlQWNjZXNzb3IsIFhDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0BuZy1uZXN0L3VpL2Jhc2UtZm9ybSc7XHJcbmltcG9ydCB7IFhUYWdDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS90YWcnO1xyXG5pbXBvcnQgeyBYRW1wdHlDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9lbXB0eSc7XHJcbmltcG9ydCB7IFhJY29uQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaWNvbic7XHJcbmltcG9ydCB7IFhJbnB1dENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2lucHV0JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WEZpbmRQcmVmaXh9YCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIFhUYWdDb21wb25lbnQsXHJcbiAgICBYQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgWERpYWxvZ0NvbXBvbmVudCxcclxuICAgIFhUYWJsZUNvbXBvbmVudCxcclxuICAgIFhUcmVlQ29tcG9uZW50LFxyXG4gICAgWEljb25Db21wb25lbnQsXHJcbiAgICBYRW1wdHlDb21wb25lbnQsXHJcbiAgICBYSW5wdXRDb21wb25lbnQsXHJcbiAgICBYQ29udHJvbFZhbHVlQWNjZXNzb3JcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9maW5kLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9maW5kLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtYVmFsdWVBY2Nlc3NvcihYRmluZENvbXBvbmVudCldXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYRmluZENvbXBvbmVudFxyXG4gIGV4dGVuZHMgWEZpbmRQcm9wZXJ0eVxyXG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxyXG57XHJcbiAgQFZpZXdDaGlsZCgnZmluZCcsIHsgc3RhdGljOiB0cnVlIH0pIGZpbmQhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKCdkaWFsb2dDb20nKSBkaWFsb2dDb20hOiBYRGlhbG9nQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ3RhYmxlQ29tJykgdGFibGVDb20hOiBYVGFibGVDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgndHJlZUNvbScpIHRyZWVDb20hOiBYVHJlZUNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdidXR0b25Db20nKSBidXR0b25Db20hOiBYQnV0dG9uQ29tcG9uZW50O1xyXG5cclxuICBwcml2YXRlIF90YWJsZVJlZiE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIHB1YmxpYyBnZXQgdGFibGVSZWYoKTogRWxlbWVudFJlZiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGFibGVSZWY7XHJcbiAgfVxyXG4gIEBWaWV3Q2hpbGQoJ3RhYmxlUmVmJylcclxuICBwdWJsaWMgc2V0IHRhYmxlUmVmKHZhbHVlOiBFbGVtZW50UmVmKSB7XHJcbiAgICB0aGlzLl90YWJsZVJlZiA9IHZhbHVlO1xyXG4gICAgaWYgKHZhbHVlICYmIHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy5zZXRTdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3RyZWVSZWYhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICBwdWJsaWMgZ2V0IHRyZWVSZWYoKTogRWxlbWVudFJlZiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHJlZVJlZjtcclxuICB9XHJcbiAgQFZpZXdDaGlsZCgndHJlZVJlZicpXHJcbiAgcHVibGljIHNldCB0cmVlUmVmKHZhbHVlOiBFbGVtZW50UmVmKSB7XHJcbiAgICB0aGlzLl90cmVlUmVmID0gdmFsdWU7XHJcbiAgICBpZiAodmFsdWUgJiYgdGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICB0aGlzLnNldFN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGdldEVtcHR5KCkge1xyXG4gICAgcmV0dXJuICF0aGlzLnRlbXAgfHwgdGhpcy50ZW1wLmxlbmd0aCA9PT0gMDtcclxuICB9XHJcblxyXG4gIGdldCBoYXNUYWJsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnRhYmxlQ29sdW1ucz8ubGVuZ3RoID4gMDtcclxuICB9XHJcblxyXG4gIGdldCBoYXNUcmVlKCkge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgKEFycmF5LmlzQXJyYXkodGhpcy50cmVlRGF0YSkgJiYgdGhpcy50cmVlRGF0YS5sZW5ndGggPiAwKSB8fFxyXG4gICAgICB0aGlzLnRyZWVEYXRhIGluc3RhbmNlb2YgRnVuY3Rpb24gfHxcclxuICAgICAgdGhpcy50cmVlRGF0YSBpbnN0YW5jZW9mIE9ic2VydmFibGVcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzVHJlZVRhYmxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaGFzVGFibGUgJiYgdGhpcy5oYXNUcmVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhhc1RyZWVNdWx0aXBsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmhhc1RyZWUgJiYgIXRoaXMuaGFzVHJlZVRhYmxlICYmIHRoaXMubXVsdGlwbGU7XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzU2VhcmNoKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoICYmIHRoaXMuaGFzVGFibGU7XHJcbiAgfVxyXG5cclxuICB0ZW1wOiBhbnk7XHJcbiAgaGVpZ2h0ID0gMTAwO1xyXG5cclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgX3Jlc2l6ZU9ic2VydmVyITogWFJlc2l6ZU9ic2VydmVyO1xyXG5cclxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcclxuICBvdmVycmlkZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIGNvbmZpZ1NlcnZpY2UgPSBpbmplY3QoWENvbmZpZ1NlcnZpY2UpO1xyXG5cclxuICBuZ09uQ2hhbmdlcyhzaW1wbGVzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBjb25zdCB7IHRhYmxlRGF0YSwgbGFiZWxBbGlnbiwgc2l6ZSB9ID0gc2ltcGxlcztcclxuICAgIFhJc0NoYW5nZSh0YWJsZURhdGEpICYmIHRoaXMuc2V0VGFibGVDaGVja2VkUm93KCk7XHJcbiAgICBYSXNDaGFuZ2UobGFiZWxBbGlnbiwgc2l6ZSkgJiYgdGhpcy5zZXRDbGFzc01hcCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNldEZsZXgodGhpcy5maW5kLm5hdGl2ZUVsZW1lbnQsIHRoaXMucmVuZGVyZXIsIHRoaXMuanVzdGlmeSwgdGhpcy5hbGlnbiwgdGhpcy5kaXJlY3Rpb24pO1xyXG4gICAgdGhpcy5zZXRDbGFzc01hcCgpO1xyXG4gICAgdGhpcy5zZXRNdWx0aXBsZSgpO1xyXG4gICAgdGhpcy5zZXRXaWR0aCgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgaWYgKHRoaXMudmFsdWUpIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcclxuICB9XHJcblxyXG4gIHNldENsYXNzTWFwKCkge1xyXG4gICAgWENsZWFyQ2xhc3ModGhpcy5sYWJlbE1hcCwgdGhpcy5jbGFzc01hcCk7XHJcbiAgICB0aGlzLmxhYmVsTWFwW2B4LXRleHQtYWxpZ24tJHt0aGlzLmxhYmVsQWxpZ259YF0gPSB0aGlzLmxhYmVsQWxpZ24gPyB0cnVlIDogZmFsc2U7XHJcbiAgICB0aGlzLmNsYXNzTWFwW2B4LWZpbmQtJHt0aGlzLnNpemV9YF0gPSAhWElzRW1wdHkodGhpcy5zaXplKTtcclxuICB9XHJcblxyXG4gIHNldFN1YnNjcmliZSgpIHtcclxuICAgIGxldCByZXNpemVSZWY6IEVsZW1lbnRbXSA9IFtdO1xyXG4gICAgaWYgKHRoaXMuaGFzVGFibGUpIHtcclxuICAgICAgcmVzaXplUmVmID0gW3RoaXMudGFibGVSZWY/Lm5hdGl2ZUVsZW1lbnRdO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaGFzVHJlZSAmJiAhdGhpcy5oYXNUcmVlVGFibGUpIHtcclxuICAgICAgcmVzaXplUmVmLnB1c2godGhpcy50cmVlUmVmPy5uYXRpdmVFbGVtZW50KTtcclxuICAgIH1cclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICBYUmVzaXplKC4uLnJlc2l6ZVJlZilcclxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDMwKSwgdGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICB0aGlzLl9yZXNpemVPYnNlcnZlciA9IHgucmVzaXplT2JzZXJ2ZXI7XHJcbiAgICAgICAgaWYgKHRoaXMudGFibGVSZWYpIHtcclxuICAgICAgICAgIHRoaXMuaGVpZ2h0ID0gdGhpcy50YWJsZVJlZi5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaGFzVHJlZSkge1xyXG4gICAgICAgICAgdGhpcy5oZWlnaHQgPSB0aGlzLnRyZWVSZWY/Lm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0TXVsdGlwbGUoKSB7XHJcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHJldHVybjtcclxuICAgIGlmICh0aGlzLmhhc1RhYmxlKSB7XHJcbiAgICAgIGlmICghdGhpcy50YWJsZUNvbHVtbnMuZmluZCgoeCkgPT4geC5yb3dDaGVja2VkKSkge1xyXG4gICAgICAgIHRoaXMudGFibGVDb2x1bW5zID0gW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBpZDogJyRjaGVja2VkJyxcclxuICAgICAgICAgICAgbGFiZWw6IHRoaXMuZGlhbG9nQ2hlY2tib3hMYWJlbCxcclxuICAgICAgICAgICAgcm93Q2hlY2tlZDogdHJ1ZSxcclxuICAgICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcclxuICAgICAgICAgICAgd2lkdGg6IHRoaXMuZGlhbG9nQ2hlY2tib3hXaWR0aFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIC4uLnRoaXMudGFibGVDb2x1bW5zXHJcbiAgICAgICAgXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0V2lkdGgoKSB7XHJcbiAgICBpZiAoWElzVW5kZWZpbmVkKHRoaXMuZGlhbG9nV2lkdGgpKSB7XHJcbiAgICAgIGlmICgodGhpcy5oYXNUYWJsZSAmJiB0aGlzLmhhc1RyZWUpIHx8IHRoaXMuaGFzVGFibGUpIHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1dpZHRoID0gJzUwcmVtJztcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmhhc1RyZWUgJiYgdGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nV2lkdGggPSAnMzByZW0nO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaGFzVHJlZSkge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nV2lkdGggPSAnMjByZW0nO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzaG93TW9kYWwoKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5kaWFsb2dWaXNpYmxlID0gdHJ1ZTtcclxuICAgIHRoaXMuZGlhbG9nVmlzaWJsZUNoYW5nZS5lbWl0KHRoaXMuZGlhbG9nVmlzaWJsZSk7XHJcbiAgICBpZiAodGhpcy52YWx1ZSkge1xyXG4gICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAgIHRoaXMudGVtcCA9ICh0aGlzLnZhbHVlIGFzIEFycmF5PGFueT4pLm1hcCgoeCkgPT4gT2JqZWN0LmFzc2lnbih7fSwgeCkpO1xyXG4gICAgICAgIHRoaXMuc2V0VGFibGVDaGVja2VkUm93KCk7XHJcbiAgICAgICAgdGhpcy5zZXRUcmVlQ2hlY2tlZCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudGFibGVBY3RpdmF0ZWRSb3cgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgIGlmICghdGhpcy5oYXNUcmVlVGFibGUgJiYgdGhpcy5oYXNUcmVlKSB7XHJcbiAgICAgICAgICB0aGlzLnRyZWVBY3RpdmF0ZWRJZCA9IHRoaXMudmFsdWUuaWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRlbXAgPSB0aGlzLm11bHRpcGxlID8gW10gOiBudWxsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaGFzVGFibGUpIHtcclxuICAgICAgdGhpcy50YWJsZUNvbS52aXJ0dWFsQm9keT8uc2Nyb2xsVG9JbmRleCgwKTtcclxuICAgICAgdGhpcy50YWJsZUNvbS52aXJ0dWFsQm9keT8uY2hlY2tWaWV3cG9ydFNpemUoKTtcclxuICAgIH1cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHNldFRhYmxlQ2hlY2tlZFJvdygpIHtcclxuICAgIGlmICghdGhpcy5tdWx0aXBsZSB8fCBYSXNVbmRlZmluZWQodGhpcy50ZW1wKSkgcmV0dXJuO1xyXG4gICAgY29uc3QgaWRzID0gKHRoaXMudGVtcCBhcyBBcnJheTxhbnk+KS5tYXAoKHgpID0+IHguaWQpO1xyXG4gICAgdGhpcy50YWJsZUNoZWNrZWRSb3cgPSB7XHJcbiAgICAgIC4uLnRoaXMudGFibGVDaGVja2VkUm93LFxyXG4gICAgICAkY2hlY2tlZDogaWRzXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgc2V0VHJlZUNoZWNrZWQoKSB7XHJcbiAgICBpZiAodGhpcy5oYXNUcmVlTXVsdGlwbGUpIHRoaXMudHJlZUNoZWNrZWQgPSB0aGlzLnRlbXAubWFwKCh4OiBhbnkpID0+IHguaWQpO1xyXG4gIH1cclxuXHJcbiAgc3VyZSgpIHtcclxuICAgIHRoaXMudmFsdWUgPSB0aGlzLnRlbXA7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbFZhbGlkYXRvcigpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VNb2RhbCgpIHtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGRpYWxvZ0Nsb3NlRG9uZSgpIHtcclxuICAgIGlmICh0aGlzLmhhc1RyZWUpIHtcclxuICAgICAgdGhpcy50cmVlQWN0aXZhdGVkSWQgPSBudWxsO1xyXG4gICAgICB0aGlzLnRlbXAgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdGVtcENsb3NlKGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSkge1xyXG4gICAgdGhpcy50ZW1wLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICBpZiAodGhpcy5oYXNUYWJsZSkge1xyXG4gICAgICBsZXQgaXQgPSB0aGlzLnRhYmxlQ29tPy50YWJsZURhdGEuZmluZCgoeCkgPT4gaXRlbS5pZCA9PT0geC5pZCk7XHJcbiAgICAgIGlmIChpdCkge1xyXG4gICAgICAgIGl0WyckY2hlY2tlZCddID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50YWJsZUNvbT8uYm9keUNoYW5nZSgpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuaGFzVHJlZSkge1xyXG4gICAgICBsZXQgaXQgPSB0aGlzLnRyZWVDb20/LnRyZWVEYXRhLmZpbmQoKHgpID0+IGl0ZW0uaWQgPT09IHguaWQpO1xyXG4gICAgICBpZiAoaXQpIHtcclxuICAgICAgICBpdC5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgaXQuY2hhbmdlICYmIGl0LmNoYW5nZSgpO1xyXG4gICAgICAgIHRoaXMudHJlZUNvbT8uY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHRhZ0Nsb3NlKGluZGV4OiBudW1iZXIgPSAtMSkge1xyXG4gICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgdGhpcy52YWx1ZS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMudGFibGVBY3RpdmF0ZWRSb3cgPSBudWxsO1xyXG4gICAgICBpZiAoIXRoaXMuaGFzVHJlZVRhYmxlICYmIHRoaXMuaGFzVHJlZSkge1xyXG4gICAgICAgIHRoaXMudHJlZUFjdGl2YXRlZElkID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2xWYWxpZGF0b3IoKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHRhYmxlQWN0aXZhdGVkUm93Q2hhbmdlKGRhdGE6IFhUYWJsZVJvdykge1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy5yb3dNdWx0aXBsZShkYXRhKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudGVtcCA9IGRhdGE7XHJcbiAgICAgIHRoaXMuZGlhbG9nVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnN1cmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJvd011bHRpcGxlKGRhdGE6IFhUYWJsZVJvdykge1xyXG4gICAgaWYgKHR5cGVvZiB0aGlzLnRlbXAgPT09ICd1bmRlZmluZWQnKSB0aGlzLnRlbXAgPSBbXTtcclxuICAgIC8vIGRhdGFbJyRjaGVja2VkJ10gPSAhZGF0YVsnJGNoZWNrZWQnXTtcclxuICAgIGlmIChkYXRhWyckY2hlY2tlZCddKSB7XHJcbiAgICAgIHRoaXMudGVtcCA9IFsuLi50aGlzLnRlbXAsIGRhdGFdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50ZW1wLnNwbGljZShcclxuICAgICAgICAodGhpcy50ZW1wIGFzIEFycmF5PGFueT4pLmZpbmRJbmRleCgoeCkgPT4geC5pZCA9PT0gZGF0YS5pZCksXHJcbiAgICAgICAgMVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgdHJlZU11bHRpcGxlKG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgaWYgKHR5cGVvZiB0aGlzLnRlbXAgPT09ICd1bmRlZmluZWQnKSB0aGlzLnRlbXAgPSBbXTtcclxuICAgIC8vIG5vZGUuJGNoZWNrZWQgPSAhbm9kZS4kY2hlY2tlZDtcclxuICAgIGlmIChub2RlLmNoZWNrZWQpIHtcclxuICAgICAgdGhpcy50ZW1wID0gWy4uLnRoaXMudGVtcCwgbm9kZV07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRlbXAuc3BsaWNlKFxyXG4gICAgICAgICh0aGlzLnRlbXAgYXMgQXJyYXk8YW55PikuZmluZEluZGV4KCh4KSA9PiB4LmlkID09PSBub2RlLmlkKSxcclxuICAgICAgICAxXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB0cmVlQWN0aXZhdGVkQ2xpY2sobm9kZTogWFRyZWVOb2RlKSB7XHJcbiAgICBpZiAoIXRoaXMuaGFzVHJlZVRhYmxlICYmIHRoaXMuaGFzVHJlZSkge1xyXG4gICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAgIC8vIHRoaXMudHJlZU11bHRpcGxlKG5vZGUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudGVtcCA9IG5vZGU7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5oYXNUcmVlVGFibGUgJiYgdGhpcy50cmVlVGFibGVDb25uZWN0KSB7XHJcbiAgICAgIGlmICghdGhpcy50YWJsZVF1ZXJ5KSB0aGlzLnRhYmxlUXVlcnkgPSB7fTtcclxuICAgICAgaWYgKCF0aGlzLnRhYmxlUXVlcnkuZmlsdGVyKSB0aGlzLnRhYmxlUXVlcnkuZmlsdGVyID0gW107XHJcbiAgICAgIGxldCBmaWVsZCA9IHRoaXMudGFibGVRdWVyeS5maWx0ZXIuZmluZCgoeCkgPT4geC5maWVsZCA9PT0gdGhpcy50cmVlVGFibGVDb25uZWN0KTtcclxuICAgICAgaWYgKGZpZWxkKSB7XHJcbiAgICAgICAgZmllbGQudmFsdWUgPSBub2RlLmlkO1xyXG4gICAgICAgIGZpZWxkLm9wZXJhdGlvbiA9ICc9JztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnRhYmxlUXVlcnkuZmlsdGVyID0gW1xyXG4gICAgICAgICAgLi4udGhpcy50YWJsZVF1ZXJ5LmZpbHRlcixcclxuICAgICAgICAgIHsgZmllbGQ6IHRoaXMudHJlZVRhYmxlQ29ubmVjdCwgdmFsdWU6IG5vZGUuaWQsIG9wZXJhdGlvbjogJz0nIH1cclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudGFibGVDb20uY2hhbmdlKDEpO1xyXG4gICAgICB0aGlzLnRyZWVBY3RpdmF0ZWRJZCA9IG5vZGUuaWQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRyZWVBY3RpdmF0ZWRDaGFuZ2UuZW1pdChub2RlKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHRyZWVDaGVja2JveENoYW5nZShub2RlOiBYVHJlZU5vZGUpIHtcclxuICAgIHRoaXMudHJlZU11bHRpcGxlKG5vZGUpO1xyXG4gIH1cclxuXHJcbiAgdHJhY2tCeUl0ZW0oX2luZGV4OiBudW1iZXIsIGl0ZW06IGFueSkge1xyXG4gICAgcmV0dXJuIGl0ZW0uaWQ7XHJcbiAgfVxyXG5cclxuICBmb3JtQ29udHJvbENoYW5nZXMoKSB7XHJcbiAgICB0aGlzLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLm5nQWZ0ZXJWaWV3SW5pdCgpO1xyXG4gICAgdGhpcy50cmVlQ29tPy5zZXREYXRhKCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZWFyY2hLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XHJcbiAgICAgIHRoaXMuc2VhcmNoQ2xpY2soKTtcclxuICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnRGVsZXRlJykge1xyXG4gICAgICB0aGlzLnNlYXJjaC52YWx1ZSA9ICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VhcmNoQ2xpY2soKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaGFzU2VhcmNoKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnRhYmxlUXVlcnkgPSB0aGlzLnRhYmxlUXVlcnkgfHwgW107XHJcbiAgICB0aGlzLnRhYmxlUXVlcnkuZmlsdGVyID0gdGhpcy50YWJsZVF1ZXJ5LmZpbHRlciB8fCBbXTtcclxuICAgIGNvbnN0IGZpZWxkID0gdGhpcy50YWJsZVF1ZXJ5LmZpbHRlci5maW5kKCh4KSA9PiB4LmZpZWxkID09PSB0aGlzLnNlYXJjaC5maWVsZCk7XHJcblxyXG4gICAgaWYgKGZpZWxkKSB7XHJcbiAgICAgIGZpZWxkLnZhbHVlID0gdGhpcy5zZWFyY2gudmFsdWUgfHwgJyc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRhYmxlUXVlcnkuZmlsdGVyID0gWy4uLnRoaXMudGFibGVRdWVyeT8uZmlsdGVyLCB0aGlzLnNlYXJjaF07XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy50YWJsZUNvbS5jaGFuZ2UoMSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICAjZmluZFxyXG4gIGNsYXNzPVwieC1maW5kXCJcclxuICBbY2xhc3MueC1mbGV4XT1cImp1c3RpZnkgfHwgYWxpZ24gfHwgZGlyZWN0aW9uXCJcclxuICBbY2xhc3MueC1jaGVja2VkXT1cInZhbHVlXCJcclxuICBbY2xhc3MueC1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgW2NsYXNzLngtcmVxdWlyZWRdPVwicmVxdWlyZWRJc0VtcHR5XCJcclxuICBbY2xhc3MueC1pbnZhbGlkXT1cImludmFsaWRcIlxyXG4gIFtuZ0NsYXNzXT1cImNsYXNzTWFwXCJcclxuPlxyXG4gIDxsYWJlbFxyXG4gICAgKm5nSWY9XCJsYWJlbFwiXHJcbiAgICBbY2xhc3MueC1maW5kLWxhYmVsLXJlcXVpcmVkXT1cInJlcXVpcmVkXCJcclxuICAgIFtzdHlsZS53aWR0aF09XCJsYWJlbFdpZHRoXCJcclxuICAgIFtuZ0NsYXNzXT1cImxhYmVsTWFwXCJcclxuICAgID57eyBsYWJlbCB9fTwvbGFiZWxcclxuICA+XHJcbiAgPGRpdiBjbGFzcz1cIngtZmluZC1yb3dcIj5cclxuICAgIDx4LWJ1dHRvblxyXG4gICAgICAjYnV0dG9uQ29tXHJcbiAgICAgIGljb249XCJmdG8tc2VhcmNoXCJcclxuICAgICAgW29ubHlJY29uXT1cIiFib3JkZXJlZFwiXHJcbiAgICAgIFtzaXplXT1cInNpemVcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICBhdHRyVHlwZT1cImJ1dHRvblwiXHJcbiAgICAgIChjbGljayk9XCJzaG93TW9kYWwoKVwiXHJcbiAgICA+PC94LWJ1dHRvbj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWZpbmQtdGFnc1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibXVsdGlwbGU7IGVsc2Ugc2luZ2xlVHBsXCI+XHJcbiAgICAgICAgPHgtdGFnXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiB2YWx1ZTsgaW5kZXggYXMgaTsgdHJhY2tCeTogdHJhY2tCeUl0ZW1cIlxyXG4gICAgICAgICAgY2xvc2FibGVcclxuICAgICAgICAgIFtzaXplXT1cInNpemVcIlxyXG4gICAgICAgICAgW2JvcmRlcmVkXT1cImJvcmRlcmVkXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgICAoY2xvc2UpPVwidGFnQ2xvc2UoaSlcIlxyXG4gICAgICAgICAgPnt7IGl0ZW1bY29sdW1uTGFiZWxdIH19PC94LXRhZ1xyXG4gICAgICAgID5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjc2luZ2xlVHBsPlxyXG4gICAgICAgIDx4LXRhZ1xyXG4gICAgICAgICAgKm5nSWY9XCJ2YWx1ZVwiXHJcbiAgICAgICAgICBjbG9zYWJsZVxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICAgIFtib3JkZXJlZF09XCJib3JkZXJlZFwiXHJcbiAgICAgICAgICBbc2l6ZV09XCJzaXplXCJcclxuICAgICAgICAgIChjbG9zZSk9XCJ0YWdDbG9zZSgpXCJcclxuICAgICAgICAgID57eyB2YWx1ZVtjb2x1bW5MYWJlbF0gfX08L3gtdGFnXHJcbiAgICAgICAgPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPHgtZGlhbG9nXHJcbiAgI2RpYWxvZ0NvbVxyXG4gIFt0aXRsZV09XCJkaWFsb2dUaXRsZVwiXHJcbiAgW3dpZHRoXT1cImRpYWxvZ1dpZHRoXCJcclxuICBbaGVpZ2h0XT1cImRpYWxvZ0hlaWdodFwiXHJcbiAgW2J1dHRvbnNDZW50ZXJdPVwiZGlhbG9nQnV0dG9uc0NlbnRlclwiXHJcbiAgW2NsYXNzTmFtZV09XCIneC1maW5kLWRpYWxvZy1jb250YWluZXInXCJcclxuICBbKHZpc2libGUpXT1cImRpYWxvZ1Zpc2libGVcIlxyXG4gICh2aXNpYmxlQ2hhbmdlKT1cImRpYWxvZ1Zpc2libGVDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcclxuICAoY2xvc2VEb25lKT1cImRpYWxvZ0Nsb3NlRG9uZSgpXCJcclxuICAoY2FuY2VsKT1cImNsb3NlTW9kYWwoKVwiXHJcbiAgKGNsb3NlKT1cImNsb3NlTW9kYWwoKVwiXHJcbiAgKGNvbmZpcm0pPVwic3VyZSgpXCJcclxuPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LWZpbmQtZGlhbG9nXCIgW2NsYXNzLngtZmluZC1kaWFsb2ctdHJlZS10YWJsZV09XCJoYXNUYWJsZSAmJiBoYXNUcmVlXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwieC1maW5kLWRpYWxvZy10cmVlXCJcclxuICAgICAgKm5nSWY9XCJoYXNUcmVlXCJcclxuICAgICAgI3RyZWVSZWZcclxuICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJoYXNUcmVlVGFibGUgJiYgbXVsdGlwbGUgJiYgaGVpZ2h0XCJcclxuICAgID5cclxuICAgICAgPHgtdHJlZVxyXG4gICAgICAgICN0cmVlQ29tXHJcbiAgICAgICAgW2RhdGFdPVwidHJlZURhdGFcIlxyXG4gICAgICAgIG5vZGVIZWlnaHQ9XCIxLjhcIlxyXG4gICAgICAgIFsobWFudWFsKV09XCJkaWFsb2dWaXNpYmxlXCJcclxuICAgICAgICBbYWN0aXZhdGVkSWRdPVwidHJlZUFjdGl2YXRlZElkXCJcclxuICAgICAgICBbZXhwYW5kZWRMZXZlbF09XCJ0cmVlRXhwYW5kZWRMZXZlbFwiXHJcbiAgICAgICAgKGFjdGl2YXRlZENoYW5nZSk9XCJ0cmVlQWN0aXZhdGVkQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgW2NoZWNrYm94XT1cImhhc1RyZWVNdWx0aXBsZVwiXHJcbiAgICAgICAgW2NoZWNrZWRdPVwidHJlZUNoZWNrZWRcIlxyXG4gICAgICAgIChjaGVja2JveENoYW5nZSk9XCJ0cmVlQ2hlY2tib3hDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgW2xldmVsQ2hlY2tdPVwiIWhhc1RyZWVNdWx0aXBsZVwiXHJcbiAgICAgID48L3gtdHJlZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIngtZmluZC1kaWFsb2ctdGFibGVcIiAqbmdJZj1cImhhc1RhYmxlXCIgI3RhYmxlUmVmPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1maW5kLXNlYXJjaFwiICpuZ0lmPVwiaGFzU2VhcmNoXCI+XHJcbiAgICAgICAgPHgtaW5wdXRcclxuICAgICAgICAgIFtsYWJlbF09XCJzZWFyY2gubGFiZWxcIlxyXG4gICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcclxuICAgICAgICAgICh4S2V5ZG93bik9XCJzZWFyY2hLZXlEb3duKCRldmVudClcIlxyXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2gudmFsdWVcIlxyXG4gICAgICAgID48L3gtaW5wdXQ+XHJcbiAgICAgICAgPHgtYnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgcGxhaW4gKGNsaWNrKT1cInNlYXJjaENsaWNrKClcIj57e1xyXG4gICAgICAgICAgc2VhcmNoLmJ1dHRvbiB8fCAn5p+l6K+iJ1xyXG4gICAgICAgIH19PC94LWJ1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDx4LXRhYmxlXHJcbiAgICAgICAgI3RhYmxlQ29tXHJcbiAgICAgICAgW2RhdGFdPVwidGFibGVEYXRhXCJcclxuICAgICAgICBbY29sdW1uc109XCJ0YWJsZUNvbHVtbnNcIlxyXG4gICAgICAgIFsobWFudWFsKV09XCJkaWFsb2dWaXNpYmxlXCJcclxuICAgICAgICBbKGluZGV4KV09XCJ0YWJsZUluZGV4XCJcclxuICAgICAgICBbKHNpemUpXT1cInRhYmxlU2l6ZVwiXHJcbiAgICAgICAgW3F1ZXJ5XT1cInRhYmxlUXVlcnlcIlxyXG4gICAgICAgIFt0b3RhbF09XCJ0YWJsZVRvdGFsXCJcclxuICAgICAgICBbYWxsb3dTZWxlY3RSb3ddPVwiIW11bHRpcGxlXCJcclxuICAgICAgICBbYWxsb3dDaGVja1Jvd109XCJtdWx0aXBsZVwiXHJcbiAgICAgICAgW2NoZWNrZWRSb3ddPVwidGFibGVDaGVja2VkUm93XCJcclxuICAgICAgICBbbG9hZGluZ109XCJ0YWJsZUxvYWRpbmdcIlxyXG4gICAgICAgIChpbmRleENoYW5nZSk9XCJ0YWJsZUluZGV4Q2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgKHNvcnRDaGFuZ2UpPVwidGFibGVTb3J0Q2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgWyhhY3RpdmF0ZWRSb3cpXT1cInRhYmxlQWN0aXZhdGVkUm93XCJcclxuICAgICAgICAoYWN0aXZhdGVkUm93Q2hhbmdlKT1cInRhYmxlQWN0aXZhdGVkUm93Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIFtyb3dIZWlnaHRdPVwidGFibGVSb3dIZWlnaHRcIlxyXG4gICAgICAgIFtib2R5SGVpZ2h0XT1cInRhYmxlQm9keUhlaWdodFwiXHJcbiAgICAgICAgW3ZpcnR1YWxTY3JvbGxdPVwidGFibGVWaXJ0dWFsU2Nyb2xsXCJcclxuICAgICAgICBbbWluQnVmZmVyUHhdPVwidGFibGVNaW5CdWZmZXJQeFwiXHJcbiAgICAgICAgW21heEJ1ZmZlclB4XT1cInRhYmxlTWF4QnVmZmVyUHhcIlxyXG4gICAgICAgIFthZGFwdGlvbkhlaWdodF09XCJ0YWJsZUFkYXB0aW9uSGVpZ2h0XCJcclxuICAgICAgICBbZG9jUGVyY2VudF09XCJ0YWJsZURvY1BlcmNlbnRcIlxyXG4gICAgICA+PC94LXRhYmxlPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0lmPVwibXVsdGlwbGVcIlxyXG4gICAgICBjbGFzcz1cIngtZmluZC1kaWFsb2ctY2hlY2tlZFwiXHJcbiAgICAgIFtjbGFzcy54LWZpbmQtZW1wdHldPVwiZ2V0RW1wdHlcIlxyXG4gICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cImhlaWdodFwiXHJcbiAgICA+XHJcbiAgICAgIDx4LWVtcHR5ICpuZ0lmPVwiZ2V0RW1wdHlcIiBbY29udGVudF09XCJkaWFsb2dFbXB0eUNvbnRlbnRcIj48L3gtZW1wdHk+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ4LWZpbmQtZGlhbG9nLXRhZ3NcIj5cclxuICAgICAgICA8eC10YWdcclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHRlbXA7IGluZGV4IGFzIGk7IHRyYWNrQnk6IHRyYWNrQnlJdGVtXCJcclxuICAgICAgICAgIGNsb3NhYmxlXHJcbiAgICAgICAgICAoY2xvc2UpPVwidGVtcENsb3NlKGksIGl0ZW0pXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8c3Bhbj57eyBpdGVtW2NvbHVtbkxhYmVsXSB9fTwvc3Bhbj5cclxuICAgICAgICA8L3gtdGFnPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L3gtZGlhbG9nPlxyXG5cclxuPG5nLXRlbXBsYXRlICN0cmVlTGFiZWxUcGwgbGV0LW5vZGU9XCIkbm9kZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LWZpbmQtZGlhbG9nLXRyZWUtbm9kZVwiPlxyXG4gICAgPHNwYW4+e3sgbm9kZS5sYWJlbCB9fSA8L3NwYW4+XHJcbiAgICA8eC1pY29uIHR5cGU9XCJmdG8tY2hlY2tcIiAqbmdJZj1cIm5vZGUuJGNoZWNrZWRcIj48L3gtaWNvbj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
374
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9maW5kL2ZpbmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZmluZC9maW5kLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUVULFNBQVMsRUFFVCxNQUFNLEVBSVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsV0FBVyxFQUNYLE9BQU8sRUFDUCxZQUFZLEVBQ1osU0FBUyxFQUNULGNBQWMsRUFDZCxRQUFRLEVBRVQsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsZUFBZSxFQUFhLE1BQU0sbUJBQW1CLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQWEsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMs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VztnQkFPWCxRQUFRO3NCQURsQixTQUFTO3VCQUFDLFVBQVU7Z0JBYVYsT0FBTztzQkFEakIsU0FBUzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIFJlbmRlcmVyMixcclxuICBFbGVtZW50UmVmLFxyXG4gIFZpZXdDaGlsZCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIGluamVjdCxcclxuICBPbkNoYW5nZXMsXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBPbkRlc3Ryb3lcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWEZpbmRQcm9wZXJ0eSwgWEZpbmRQcmVmaXggfSBmcm9tICcuL2ZpbmQucHJvcGVydHknO1xyXG5pbXBvcnQge1xyXG4gIFhDbGVhckNsYXNzLFxyXG4gIFhSZXNpemUsXHJcbiAgWElzVW5kZWZpbmVkLFxyXG4gIFhJc0NoYW5nZSxcclxuICBYQ29uZmlnU2VydmljZSxcclxuICBYSXNFbXB0eSxcclxuICBYUmVzaXplT2JzZXJ2ZXJcclxufSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgWFRhYmxlQ29tcG9uZW50LCBYVGFibGVSb3cgfSBmcm9tICdAbmctbmVzdC91aS90YWJsZSc7XHJcbmltcG9ydCB7IFhEaWFsb2dDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9kaWFsb2cnO1xyXG5pbXBvcnQgeyBYQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvYnV0dG9uJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgWFRyZWVOb2RlLCBYVHJlZUNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3RyZWUnO1xyXG5pbXBvcnQgeyBYVmFsdWVBY2Nlc3NvciwgWENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQG5nLW5lc3QvdWkvYmFzZS1mb3JtJztcclxuaW1wb3J0IHsgWFRhZ0NvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3RhZyc7XHJcbmltcG9ydCB7IFhFbXB0eUNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2VtcHR5JztcclxuaW1wb3J0IHsgWEljb25Db21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9pY29uJztcclxuaW1wb3J0IHsgWElucHV0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaW5wdXQnO1xyXG5pbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WEZpbmRQcmVmaXh9YCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE5nQ2xhc3MsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBYVGFnQ29tcG9uZW50LFxyXG4gICAgWEJ1dHRvbkNvbXBvbmVudCxcclxuICAgIFhEaWFsb2dDb21wb25lbnQsXHJcbiAgICBYVGFibGVDb21wb25lbnQsXHJcbiAgICBYVHJlZUNvbXBvbmVudCxcclxuICAgIFhJY29uQ29tcG9uZW50LFxyXG4gICAgWEVtcHR5Q29tcG9uZW50LFxyXG4gICAgWElucHV0Q29tcG9uZW50LFxyXG4gICAgWENvbnRyb2xWYWx1ZUFjY2Vzc29yXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmluZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmluZC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbWFZhbHVlQWNjZXNzb3IoWEZpbmRDb21wb25lbnQpXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWEZpbmRDb21wb25lbnQgZXh0ZW5kcyBYRmluZFByb3BlcnR5IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgQFZpZXdDaGlsZCgnZmluZCcsIHsgc3RhdGljOiB0cnVlIH0pIGZpbmQhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKCdkaWFsb2dDb20nKSBkaWFsb2dDb20hOiBYRGlhbG9nQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ3RhYmxlQ29tJykgdGFibGVDb20hOiBYVGFibGVDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgndHJlZUNvbScpIHRyZWVDb20hOiBYVHJlZUNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdidXR0b25Db20nKSBidXR0b25Db20hOiBYQnV0dG9uQ29tcG9uZW50O1xyXG5cclxuICBwcml2YXRlIF90YWJsZVJlZiE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIHB1YmxpYyBnZXQgdGFibGVSZWYoKTogRWxlbWVudFJlZiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGFibGVSZWY7XHJcbiAgfVxyXG4gIEBWaWV3Q2hpbGQoJ3RhYmxlUmVmJylcclxuICBwdWJsaWMgc2V0IHRhYmxlUmVmKHZhbHVlOiBFbGVtZW50UmVmKSB7XHJcbiAgICB0aGlzLl90YWJsZVJlZiA9IHZhbHVlO1xyXG4gICAgaWYgKHZhbHVlICYmIHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy5zZXRTdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3RyZWVSZWYhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICBwdWJsaWMgZ2V0IHRyZWVSZWYoKTogRWxlbWVudFJlZiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHJlZVJlZjtcclxuICB9XHJcbiAgQFZpZXdDaGlsZCgndHJlZVJlZicpXHJcbiAgcHVibGljIHNldCB0cmVlUmVmKHZhbHVlOiBFbGVtZW50UmVmKSB7XHJcbiAgICB0aGlzLl90cmVlUmVmID0gdmFsdWU7XHJcbiAgICBpZiAodmFsdWUgJiYgdGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICB0aGlzLnNldFN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGdldEVtcHR5KCkge1xyXG4gICAgcmV0dXJuICF0aGlzLnRlbXAgfHwgdGhpcy50ZW1wLmxlbmd0aCA9PT0gMDtcclxuICB9XHJcblxyXG4gIGdldCBoYXNUYWJsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnRhYmxlQ29sdW1ucz8ubGVuZ3RoID4gMDtcclxuICB9XHJcblxyXG4gIGdldCBoYXNUcmVlKCkge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgKEFycmF5LmlzQXJyYXkodGhpcy50cmVlRGF0YSkgJiYgdGhpcy50cmVlRGF0YS5sZW5ndGggPiAwKSB8fFxyXG4gICAgICB0aGlzLnRyZWVEYXRhIGluc3RhbmNlb2YgRnVuY3Rpb24gfHxcclxuICAgICAgdGhpcy50cmVlRGF0YSBpbnN0YW5jZW9mIE9ic2VydmFibGVcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzVHJlZVRhYmxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaGFzVGFibGUgJiYgdGhpcy5oYXNUcmVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhhc1RyZWVNdWx0aXBsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmhhc1RyZWUgJiYgIXRoaXMuaGFzVHJlZVRhYmxlICYmIHRoaXMubXVsdGlwbGU7XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzU2VhcmNoKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoICYmIHRoaXMuaGFzVGFibGU7XHJcbiAgfVxyXG5cclxuICB0ZW1wOiBhbnk7XHJcbiAgaGVpZ2h0ID0gMTAwO1xyXG5cclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgX3Jlc2l6ZU9ic2VydmVyITogWFJlc2l6ZU9ic2VydmVyO1xyXG5cclxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcclxuICBvdmVycmlkZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIGNvbmZpZ1NlcnZpY2UgPSBpbmplY3QoWENvbmZpZ1NlcnZpY2UpO1xyXG5cclxuICBuZ09uQ2hhbmdlcyhzaW1wbGVzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBjb25zdCB7IHRhYmxlRGF0YSwgbGFiZWxBbGlnbiwgc2l6ZSB9ID0gc2ltcGxlcztcclxuICAgIFhJc0NoYW5nZSh0YWJsZURhdGEpICYmIHRoaXMuc2V0VGFibGVDaGVja2VkUm93KCk7XHJcbiAgICBYSXNDaGFuZ2UobGFiZWxBbGlnbiwgc2l6ZSkgJiYgdGhpcy5zZXRDbGFzc01hcCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNldEZsZXgodGhpcy5maW5kLm5hdGl2ZUVsZW1lbnQsIHRoaXMucmVuZGVyZXIsIHRoaXMuanVzdGlmeSwgdGhpcy5hbGlnbiwgdGhpcy5kaXJlY3Rpb24pO1xyXG4gICAgdGhpcy5zZXRDbGFzc01hcCgpO1xyXG4gICAgdGhpcy5zZXRNdWx0aXBsZSgpO1xyXG4gICAgdGhpcy5zZXRXaWR0aCgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgaWYgKHRoaXMudmFsdWUpIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcclxuICB9XHJcblxyXG4gIHNldENsYXNzTWFwKCkge1xyXG4gICAgWENsZWFyQ2xhc3ModGhpcy5sYWJlbE1hcCwgdGhpcy5jbGFzc01hcCk7XHJcbiAgICB0aGlzLmxhYmVsTWFwW2B4LXRleHQtYWxpZ24tJHt0aGlzLmxhYmVsQWxpZ259YF0gPSB0aGlzLmxhYmVsQWxpZ24gPyB0cnVlIDogZmFsc2U7XHJcbiAgICB0aGlzLmNsYXNzTWFwW2B4LWZpbmQtJHt0aGlzLnNpemV9YF0gPSAhWElzRW1wdHkodGhpcy5zaXplKTtcclxuICB9XHJcblxyXG4gIHNldFN1YnNjcmliZSgpIHtcclxuICAgIGxldCByZXNpemVSZWY6IEVsZW1lbnRbXSA9IFtdO1xyXG4gICAgaWYgKHRoaXMuaGFzVGFibGUpIHtcclxuICAgICAgcmVzaXplUmVmID0gW3RoaXMudGFibGVSZWY/Lm5hdGl2ZUVsZW1lbnRdO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaGFzVHJlZSAmJiAhdGhpcy5oYXNUcmVlVGFibGUpIHtcclxuICAgICAgcmVzaXplUmVmLnB1c2godGhpcy50cmVlUmVmPy5uYXRpdmVFbGVtZW50KTtcclxuICAgIH1cclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICBYUmVzaXplKC4uLnJlc2l6ZVJlZilcclxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDMwKSwgdGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICB0aGlzLl9yZXNpemVPYnNlcnZlciA9IHgucmVzaXplT2JzZXJ2ZXI7XHJcbiAgICAgICAgaWYgKHRoaXMudGFibGVSZWYpIHtcclxuICAgICAgICAgIHRoaXMuaGVpZ2h0ID0gdGhpcy50YWJsZVJlZi5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaGFzVHJlZSkge1xyXG4gICAgICAgICAgdGhpcy5oZWlnaHQgPSB0aGlzLnRyZWVSZWY/Lm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0TXVsdGlwbGUoKSB7XHJcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHJldHVybjtcclxuICAgIGlmICh0aGlzLmhhc1RhYmxlKSB7XHJcbiAgICAgIGlmICghdGhpcy50YWJsZUNvbHVtbnMuZmluZCgoeCkgPT4geC5yb3dDaGVja2VkKSkge1xyXG4gICAgICAgIHRoaXMudGFibGVDb2x1bW5zID0gW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBpZDogJyRjaGVja2VkJyxcclxuICAgICAgICAgICAgbGFiZWw6IHRoaXMuZGlhbG9nQ2hlY2tib3hMYWJlbCxcclxuICAgICAgICAgICAgcm93Q2hlY2tlZDogdHJ1ZSxcclxuICAgICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcclxuICAgICAgICAgICAgd2lkdGg6IHRoaXMuZGlhbG9nQ2hlY2tib3hXaWR0aFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIC4uLnRoaXMudGFibGVDb2x1bW5zXHJcbiAgICAgICAgXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0V2lkdGgoKSB7XHJcbiAgICBpZiAoWElzVW5kZWZpbmVkKHRoaXMuZGlhbG9nV2lkdGgpKSB7XHJcbiAgICAgIGlmICgodGhpcy5oYXNUYWJsZSAmJiB0aGlzLmhhc1RyZWUpIHx8IHRoaXMuaGFzVGFibGUpIHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1dpZHRoID0gJzUwcmVtJztcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmhhc1RyZWUgJiYgdGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nV2lkdGggPSAnMzByZW0nO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaGFzVHJlZSkge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nV2lkdGggPSAnMjByZW0nO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzaG93TW9kYWwoKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5kaWFsb2dWaXNpYmxlID0gdHJ1ZTtcclxuICAgIHRoaXMuZGlhbG9nVmlzaWJsZUNoYW5nZS5lbWl0KHRoaXMuZGlhbG9nVmlzaWJsZSk7XHJcbiAgICBpZiAodGhpcy52YWx1ZSkge1xyXG4gICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAgIHRoaXMudGVtcCA9ICh0aGlzLnZhbHVlIGFzIEFycmF5PGFueT4pLm1hcCgoeCkgPT4gT2JqZWN0LmFzc2lnbih7fSwgeCkpO1xyXG4gICAgICAgIHRoaXMuc2V0VGFibGVDaGVja2VkUm93KCk7XHJcbiAgICAgICAgdGhpcy5zZXRUcmVlQ2hlY2tlZCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudGFibGVBY3RpdmF0ZWRSb3cgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgIGlmICghdGhpcy5oYXNUcmVlVGFibGUgJiYgdGhpcy5oYXNUcmVlKSB7XHJcbiAgICAgICAgICB0aGlzLnRyZWVBY3RpdmF0ZWRJZCA9IHRoaXMudmFsdWUuaWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRlbXAgPSB0aGlzLm11bHRpcGxlID8gW10gOiBudWxsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaGFzVGFibGUpIHtcclxuICAgICAgdGhpcy50YWJsZUNvbS52aXJ0dWFsQm9keT8uc2Nyb2xsVG9JbmRleCgwKTtcclxuICAgICAgdGhpcy50YWJsZUNvbS52aXJ0dWFsQm9keT8uY2hlY2tWaWV3cG9ydFNpemUoKTtcclxuICAgIH1cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHNldFRhYmxlQ2hlY2tlZFJvdygpIHtcclxuICAgIGlmICghdGhpcy5tdWx0aXBsZSB8fCBYSXNVbmRlZmluZWQodGhpcy50ZW1wKSkgcmV0dXJuO1xyXG4gICAgY29uc3QgaWRzID0gKHRoaXMudGVtcCBhcyBBcnJheTxhbnk+KS5tYXAoKHgpID0+IHguaWQpO1xyXG4gICAgdGhpcy50YWJsZUNoZWNrZWRSb3cgPSB7XHJcbiAgICAgIC4uLnRoaXMudGFibGVDaGVja2VkUm93LFxyXG4gICAgICAkY2hlY2tlZDogaWRzXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgc2V0VHJlZUNoZWNrZWQoKSB7XHJcbiAgICBpZiAodGhpcy5oYXNUcmVlTXVsdGlwbGUpIHRoaXMudHJlZUNoZWNrZWQgPSB0aGlzLnRlbXAubWFwKCh4OiBhbnkpID0+IHguaWQpO1xyXG4gIH1cclxuXHJcbiAgc3VyZSgpIHtcclxuICAgIHRoaXMudmFsdWUgPSB0aGlzLnRlbXA7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbFZhbGlkYXRvcigpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VNb2RhbCgpIHtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGRpYWxvZ0Nsb3NlRG9uZSgpIHtcclxuICAgIGlmICh0aGlzLmhhc1RyZWUpIHtcclxuICAgICAgdGhpcy50cmVlQWN0aXZhdGVkSWQgPSBudWxsO1xyXG4gICAgICB0aGlzLnRlbXAgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdGVtcENsb3NlKGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSkge1xyXG4gICAgdGhpcy50ZW1wLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICBpZiAodGhpcy5oYXNUYWJsZSkge1xyXG4gICAgICBsZXQgaXQgPSB0aGlzLnRhYmxlQ29tPy50YWJsZURhdGEuZmluZCgoeCkgPT4gaXRlbS5pZCA9PT0geC5pZCk7XHJcbiAgICAgIGlmIChpdCkge1xyXG4gICAgICAgIGl0WyckY2hlY2tlZCddID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50YWJsZUNvbT8uYm9keUNoYW5nZSgpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuaGFzVHJlZSkge1xyXG4gICAgICBsZXQgaXQgPSB0aGlzLnRyZWVDb20/LnRyZWVEYXRhLmZpbmQoKHgpID0+IGl0ZW0uaWQgPT09IHguaWQpO1xyXG4gICAgICBpZiAoaXQpIHtcclxuICAgICAgICBpdC5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgaXQuY2hhbmdlICYmIGl0LmNoYW5nZSgpO1xyXG4gICAgICAgIHRoaXMudHJlZUNvbT8uY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHRhZ0Nsb3NlKGluZGV4OiBudW1iZXIgPSAtMSkge1xyXG4gICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgdGhpcy52YWx1ZS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMudGFibGVBY3RpdmF0ZWRSb3cgPSBudWxsO1xyXG4gICAgICBpZiAoIXRoaXMuaGFzVHJlZVRhYmxlICYmIHRoaXMuaGFzVHJlZSkge1xyXG4gICAgICAgIHRoaXMudHJlZUFjdGl2YXRlZElkID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2xWYWxpZGF0b3IoKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHRhYmxlQWN0aXZhdGVkUm93Q2hhbmdlKGRhdGE6IFhUYWJsZVJvdykge1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy5yb3dNdWx0aXBsZShkYXRhKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudGVtcCA9IGRhdGE7XHJcbiAgICAgIHRoaXMuZGlhbG9nVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnN1cmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJvd011bHRpcGxlKGRhdGE6IFhUYWJsZVJvdykge1xyXG4gICAgaWYgKHR5cGVvZiB0aGlzLnRlbXAgPT09ICd1bmRlZmluZWQnKSB0aGlzLnRlbXAgPSBbXTtcclxuICAgIC8vIGRhdGFbJyRjaGVja2VkJ10gPSAhZGF0YVsnJGNoZWNrZWQnXTtcclxuICAgIGlmIChkYXRhWyckY2hlY2tlZCddKSB7XHJcbiAgICAgIHRoaXMudGVtcCA9IFsuLi50aGlzLnRlbXAsIGRhdGFdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50ZW1wLnNwbGljZShcclxuICAgICAgICAodGhpcy50ZW1wIGFzIEFycmF5PGFueT4pLmZpbmRJbmRleCgoeCkgPT4geC5pZCA9PT0gZGF0YS5pZCksXHJcbiAgICAgICAgMVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgdHJlZU11bHRpcGxlKG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgaWYgKHR5cGVvZiB0aGlzLnRlbXAgPT09ICd1bmRlZmluZWQnKSB0aGlzLnRlbXAgPSBbXTtcclxuICAgIC8vIG5vZGUuJGNoZWNrZWQgPSAhbm9kZS4kY2hlY2tlZDtcclxuICAgIGlmIChub2RlLmNoZWNrZWQpIHtcclxuICAgICAgdGhpcy50ZW1wID0gWy4uLnRoaXMudGVtcCwgbm9kZV07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRlbXAuc3BsaWNlKFxyXG4gICAgICAgICh0aGlzLnRlbXAgYXMgQXJyYXk8YW55PikuZmluZEluZGV4KCh4KSA9PiB4LmlkID09PSBub2RlLmlkKSxcclxuICAgICAgICAxXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB0cmVlQWN0aXZhdGVkQ2xpY2sobm9kZTogWFRyZWVOb2RlKSB7XHJcbiAgICBpZiAoIXRoaXMuaGFzVHJlZVRhYmxlICYmIHRoaXMuaGFzVHJlZSkge1xyXG4gICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAgIC8vIHRoaXMudHJlZU11bHRpcGxlKG5vZGUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudGVtcCA9IG5vZGU7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5oYXNUcmVlVGFibGUgJiYgdGhpcy50cmVlVGFibGVDb25uZWN0KSB7XHJcbiAgICAgIGlmICghdGhpcy50YWJsZVF1ZXJ5KSB0aGlzLnRhYmxlUXVlcnkgPSB7fTtcclxuICAgICAgaWYgKCF0aGlzLnRhYmxlUXVlcnkuZmlsdGVyKSB0aGlzLnRhYmxlUXVlcnkuZmlsdGVyID0gW107XHJcbiAgICAgIGxldCBmaWVsZCA9IHRoaXMudGFibGVRdWVyeS5maWx0ZXIuZmluZCgoeCkgPT4geC5maWVsZCA9PT0gdGhpcy50cmVlVGFibGVDb25uZWN0KTtcclxuICAgICAgaWYgKGZpZWxkKSB7XHJcbiAgICAgICAgZmllbGQudmFsdWUgPSBub2RlLmlkO1xyXG4gICAgICAgIGZpZWxkLm9wZXJhdGlvbiA9ICc9JztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnRhYmxlUXVlcnkuZmlsdGVyID0gW1xyXG4gICAgICAgICAgLi4udGhpcy50YWJsZVF1ZXJ5LmZpbHRlcixcclxuICAgICAgICAgIHsgZmllbGQ6IHRoaXMudHJlZVRhYmxlQ29ubmVjdCwgdmFsdWU6IG5vZGUuaWQsIG9wZXJhdGlvbjogJz0nIH1cclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudGFibGVDb20uY2hhbmdlKDEpO1xyXG4gICAgICB0aGlzLnRyZWVBY3RpdmF0ZWRJZCA9IG5vZGUuaWQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRyZWVBY3RpdmF0ZWRDaGFuZ2UuZW1pdChub2RlKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHRyZWVDaGVja2JveENoYW5nZShub2RlOiBYVHJlZU5vZGUpIHtcclxuICAgIHRoaXMudHJlZU11bHRpcGxlKG5vZGUpO1xyXG4gIH1cclxuXHJcbiAgZm9ybUNvbnRyb2xDaGFuZ2VzKCkge1xyXG4gICAgdGhpcy5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5uZ0FmdGVyVmlld0luaXQoKTtcclxuICAgIHRoaXMudHJlZUNvbT8uc2V0RGF0YSgpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2VhcmNoS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xyXG4gICAgICB0aGlzLnNlYXJjaENsaWNrKCk7XHJcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0RlbGV0ZScpIHtcclxuICAgICAgdGhpcy5zZWFyY2gudmFsdWUgPSAnJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlYXJjaENsaWNrKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmhhc1NlYXJjaCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy50YWJsZVF1ZXJ5ID0gdGhpcy50YWJsZVF1ZXJ5IHx8IFtdO1xyXG4gICAgdGhpcy50YWJsZVF1ZXJ5LmZpbHRlciA9IHRoaXMudGFibGVRdWVyeS5maWx0ZXIgfHwgW107XHJcbiAgICBjb25zdCBmaWVsZCA9IHRoaXMudGFibGVRdWVyeS5maWx0ZXIuZmluZCgoeCkgPT4geC5maWVsZCA9PT0gdGhpcy5zZWFyY2guZmllbGQpO1xyXG5cclxuICAgIGlmIChmaWVsZCkge1xyXG4gICAgICBmaWVsZC52YWx1ZSA9IHRoaXMuc2VhcmNoLnZhbHVlIHx8ICcnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50YWJsZVF1ZXJ5LmZpbHRlciA9IFsuLi50aGlzLnRhYmxlUXVlcnk/LmZpbHRlciwgdGhpcy5zZWFyY2hdO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudGFibGVDb20uY2hhbmdlKDEpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgI2ZpbmRcclxuICBjbGFzcz1cIngtZmluZFwiXHJcbiAgW2NsYXNzLngtZmxleF09XCJqdXN0aWZ5IHx8IGFsaWduIHx8IGRpcmVjdGlvblwiXHJcbiAgW2NsYXNzLngtY2hlY2tlZF09XCJ2YWx1ZVwiXHJcbiAgW2NsYXNzLngtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gIFtjbGFzcy54LXJlcXVpcmVkXT1cInJlcXVpcmVkSXNFbXB0eVwiXHJcbiAgW2NsYXNzLngtaW52YWxpZF09XCJpbnZhbGlkXCJcclxuICBbbmdDbGFzc109XCJjbGFzc01hcFwiXHJcbj5cclxuICBAaWYgKGxhYmVsKSB7XHJcbiAgICA8bGFiZWwgW2NsYXNzLngtZmluZC1sYWJlbC1yZXF1aXJlZF09XCJyZXF1aXJlZFwiIFtzdHlsZS53aWR0aF09XCJsYWJlbFdpZHRoXCIgW25nQ2xhc3NdPVwibGFiZWxNYXBcIj57eyBsYWJlbCB9fTwvbGFiZWw+XHJcbiAgfVxyXG4gIDxkaXYgY2xhc3M9XCJ4LWZpbmQtcm93XCI+XHJcbiAgICA8eC1idXR0b25cclxuICAgICAgI2J1dHRvbkNvbVxyXG4gICAgICBpY29uPVwiZnRvLXNlYXJjaFwiXHJcbiAgICAgIFtvbmx5SWNvbl09XCIhYm9yZGVyZWRcIlxyXG4gICAgICBbc2l6ZV09XCJzaXplXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgYXR0clR5cGU9XCJidXR0b25cIlxyXG4gICAgICAoY2xpY2spPVwic2hvd01vZGFsKClcIlxyXG4gICAgPjwveC1idXR0b24+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1maW5kLXRhZ3NcIj5cclxuICAgICAgQGlmIChtdWx0aXBsZSkge1xyXG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgdmFsdWU7IHRyYWNrIGl0ZW0uaWQ7IGxldCBpID0gJGluZGV4KSB7XHJcbiAgICAgICAgICA8eC10YWcgY2xvc2FibGUgW3NpemVdPVwic2l6ZVwiIFtib3JkZXJlZF09XCJib3JkZXJlZFwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIChjbG9zZSk9XCJ0YWdDbG9zZShpKVwiPnt7XHJcbiAgICAgICAgICAgIGl0ZW1bY29sdW1uTGFiZWxdXHJcbiAgICAgICAgICB9fTwveC10YWc+XHJcbiAgICAgICAgfVxyXG4gICAgICB9IEBlbHNlIGlmICh2YWx1ZSkge1xyXG4gICAgICAgIDx4LXRhZyBjbG9zYWJsZSBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbYm9yZGVyZWRdPVwiYm9yZGVyZWRcIiBbc2l6ZV09XCJzaXplXCIgKGNsb3NlKT1cInRhZ0Nsb3NlKClcIj57e1xyXG4gICAgICAgICAgdmFsdWVbY29sdW1uTGFiZWxdXHJcbiAgICAgICAgfX08L3gtdGFnPlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48eC1kaWFsb2dcclxuICAjZGlhbG9nQ29tXHJcbiAgW3RpdGxlXT1cImRpYWxvZ1RpdGxlXCJcclxuICBbd2lkdGhdPVwiZGlhbG9nV2lkdGhcIlxyXG4gIFtoZWlnaHRdPVwiZGlhbG9nSGVpZ2h0XCJcclxuICBbYnV0dG9uc0NlbnRlcl09XCJkaWFsb2dCdXR0b25zQ2VudGVyXCJcclxuICBbY2xhc3NOYW1lXT1cIid4LWZpbmQtZGlhbG9nLWNvbnRhaW5lcidcIlxyXG4gIFsodmlzaWJsZSldPVwiZGlhbG9nVmlzaWJsZVwiXHJcbiAgKHZpc2libGVDaGFuZ2UpPVwiZGlhbG9nVmlzaWJsZUNoYW5nZS5lbWl0KCRldmVudClcIlxyXG4gIChjbG9zZURvbmUpPVwiZGlhbG9nQ2xvc2VEb25lKClcIlxyXG4gIChjYW5jZWwpPVwiY2xvc2VNb2RhbCgpXCJcclxuICAoY2xvc2UpPVwiY2xvc2VNb2RhbCgpXCJcclxuICAoY29uZmlybSk9XCJzdXJlKClcIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cIngtZmluZC1kaWFsb2dcIiBbY2xhc3MueC1maW5kLWRpYWxvZy10cmVlLXRhYmxlXT1cImhhc1RhYmxlICYmIGhhc1RyZWVcIj5cclxuICAgIEBpZiAoaGFzVHJlZSkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1maW5kLWRpYWxvZy10cmVlXCIgI3RyZWVSZWYgW3N0eWxlLmhlaWdodC5weF09XCJoYXNUcmVlVGFibGUgJiYgbXVsdGlwbGUgJiYgaGVpZ2h0XCI+XHJcbiAgICAgICAgPHgtdHJlZVxyXG4gICAgICAgICAgI3RyZWVDb21cclxuICAgICAgICAgIFtkYXRhXT1cInRyZWVEYXRhXCJcclxuICAgICAgICAgIG5vZGVIZWlnaHQ9XCIxLjhcIlxyXG4gICAgICAgICAgWyhtYW51YWwpXT1cImRpYWxvZ1Zpc2libGVcIlxyXG4gICAgICAgICAgW2FjdGl2YXRlZElkXT1cInRyZWVBY3RpdmF0ZWRJZFwiXHJcbiAgICAgICAgICBbZXhwYW5kZWRMZXZlbF09XCJ0cmVlRXhwYW5kZWRMZXZlbFwiXHJcbiAgICAgICAgICAoYWN0aXZhdGVkQ2hhbmdlKT1cInRyZWVBY3RpdmF0ZWRDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgIFtjaGVja2JveF09XCJoYXNUcmVlTXVsdGlwbGVcIlxyXG4gICAgICAgICAgW2NoZWNrZWRdPVwidHJlZUNoZWNrZWRcIlxyXG4gICAgICAgICAgKGNoZWNrYm94Q2hhbmdlKT1cInRyZWVDaGVja2JveENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgIFtsZXZlbENoZWNrXT1cIiFoYXNUcmVlTXVsdGlwbGVcIlxyXG4gICAgICAgID48L3gtdHJlZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgICBAaWYgKGhhc1RhYmxlKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ4LWZpbmQtZGlhbG9nLXRhYmxlXCIgI3RhYmxlUmVmPlxyXG4gICAgICAgIEBpZiAoaGFzU2VhcmNoKSB7XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwieC1maW5kLXNlYXJjaFwiPlxyXG4gICAgICAgICAgICA8eC1pbnB1dFxyXG4gICAgICAgICAgICAgIFtsYWJlbF09XCJzZWFyY2gubGFiZWxcIlxyXG4gICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXHJcbiAgICAgICAgICAgICAgKHhLZXlkb3duKT1cInNlYXJjaEtleURvd24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2gudmFsdWVcIlxyXG4gICAgICAgICAgICA+PC94LWlucHV0PlxyXG4gICAgICAgICAgICA8eC1idXR0b24gdHlwZT1cInByaW1hcnlcIiBwbGFpbiAoY2xpY2spPVwic2VhcmNoQ2xpY2soKVwiPnt7IHNlYXJjaC5idXR0b24gfHwgJ+afpeivoicgfX08L3gtYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDx4LXRhYmxlXHJcbiAgICAgICAgICAjdGFibGVDb21cclxuICAgICAgICAgIFtkYXRhXT1cInRhYmxlRGF0YVwiXHJcbiAgICAgICAgICBbY29sdW1uc109XCJ0YWJsZUNvbHVtbnNcIlxyXG4gICAgICAgICAgWyhtYW51YWwpXT1cImRpYWxvZ1Zpc2libGVcIlxyXG4gICAgICAgICAgWyhpbmRleCldPVwidGFibGVJbmRleFwiXHJcbiAgICAgICAgICBbKHNpemUpXT1cInRhYmxlU2l6ZVwiXHJcbiAgICAgICAgICBbcXVlcnldPVwidGFibGVRdWVyeVwiXHJcbiAgICAgICAgICBbdG90YWxdPVwidGFibGVUb3RhbFwiXHJcbiAgICAgICAgICBbYWxsb3dTZWxlY3RSb3ddPVwiIW11bHRpcGxlXCJcclxuICAgICAgICAgIFthbGxvd0NoZWNrUm93XT1cIm11bHRpcGxlXCJcclxuICAgICAgICAgIFtjaGVja2VkUm93XT1cInRhYmxlQ2hlY2tlZFJvd1wiXHJcbiAgICAgICAgICBbbG9hZGluZ109XCJ0YWJsZUxvYWRpbmdcIlxyXG4gICAgICAgICAgKGluZGV4Q2hhbmdlKT1cInRhYmxlSW5kZXhDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAgIChzb3J0Q2hhbmdlKT1cInRhYmxlU29ydENoYW5nZS5lbWl0KCRldmVudClcIlxyXG4gICAgICAgICAgWyhhY3RpdmF0ZWRSb3cpXT1cInRhYmxlQWN0aXZhdGVkUm93XCJcclxuICAgICAgICAgIChhY3RpdmF0ZWRSb3dDaGFuZ2UpPVwidGFibGVBY3RpdmF0ZWRSb3dDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICBbcm93SGVpZ2h0XT1cInRhYmxlUm93SGVpZ2h0XCJcclxuICAgICAgICAgIFtib2R5SGVpZ2h0XT1cInRhYmxlQm9keUhlaWdodFwiXHJcbiAgICAgICAgICBbdmlydHVhbFNjcm9sbF09XCJ0YWJsZVZpcnR1YWxTY3JvbGxcIlxyXG4gICAgICAgICAgW21pbkJ1ZmZlclB4XT1cInRhYmxlTWluQnVmZmVyUHhcIlxyXG4gICAgICAgICAgW21heEJ1ZmZlclB4XT1cInRhYmxlTWF4QnVmZmVyUHhcIlxyXG4gICAgICAgICAgW2FkYXB0aW9uSGVpZ2h0XT1cInRhYmxlQWRhcHRpb25IZWlnaHRcIlxyXG4gICAgICAgICAgW2RvY1BlcmNlbnRdPVwidGFibGVEb2NQZXJjZW50XCJcclxuICAgICAgICA+PC94LXRhYmxlPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIH1cclxuICAgIEBpZiAobXVsdGlwbGUpIHtcclxuICAgICAgPGRpdiBjbGFzcz1cIngtZmluZC1kaWFsb2ctY2hlY2tlZFwiIFtjbGFzcy54LWZpbmQtZW1wdHldPVwiZ2V0RW1wdHlcIiBbc3R5bGUuaGVpZ2h0LnB4XT1cImhlaWdodFwiPlxyXG4gICAgICAgIEBpZiAoZ2V0RW1wdHkpIHtcclxuICAgICAgICAgIDx4LWVtcHR5IFtjb250ZW50XT1cImRpYWxvZ0VtcHR5Q29udGVudFwiPjwveC1lbXB0eT5cclxuICAgICAgICB9XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIngtZmluZC1kaWFsb2ctdGFnc1wiPlxyXG4gICAgICAgICAgQGZvciAoaXRlbSBvZiB0ZW1wOyB0cmFjayBpdGVtLmlkOyBsZXQgaSA9ICRpbmRleCkge1xyXG4gICAgICAgICAgICA8eC10YWcgY2xvc2FibGUgKGNsb3NlKT1cInRlbXBDbG9zZShpLCBpdGVtKVwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuPnt7IGl0ZW1bY29sdW1uTGFiZWxdIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L3gtdGFnPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuPC94LWRpYWxvZz5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdHJlZUxhYmVsVHBsIGxldC1ub2RlPVwiJG5vZGVcIj5cclxuICA8ZGl2IGNsYXNzPVwieC1maW5kLWRpYWxvZy10cmVlLW5vZGVcIj5cclxuICAgIDxzcGFuPnt7IG5vZGUubGFiZWwgfX0gPC9zcGFuPlxyXG4gICAgQGlmIChub2RlLiRjaGVja2VkKSB7XHJcbiAgICAgIDx4LWljb24gdHlwZT1cImZ0by1jaGVja1wiPjwveC1pY29uPlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -2,11 +2,11 @@ import { NgModule } from '@angular/core';
2
2
  import { XFindComponent } from './find.component';
3
3
  import * as i0 from "@angular/core";
4
4
  export class XFindModule {
5
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XFindModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.2", ngImport: i0, type: XFindModule, imports: [XFindComponent], exports: [XFindComponent] }); }
7
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XFindModule, imports: [XFindComponent] }); }
5
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XFindModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.7", ngImport: i0, type: XFindModule, imports: [XFindComponent], exports: [XFindComponent] }); }
7
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XFindModule, imports: [XFindComponent] }); }
8
8
  }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XFindModule, decorators: [{
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XFindModule, decorators: [{
10
10
  type: NgModule,
11
11
  args: [{
12
12
  exports: [XFindComponent],
@@ -107,8 +107,8 @@ export class XFindProperty extends XControlValueAccessor {
107
107
  */
108
108
  this.treeChecked = [];
109
109
  }
110
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XFindProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
111
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: XFindProperty, selector: "x-find-property", inputs: { size: "size", bordered: "bordered", multiple: "multiple", columnLabel: "columnLabel", dialogTitle: "dialogTitle", dialogCheckboxLabel: "dialogCheckboxLabel", dialogCheckboxWidth: "dialogCheckboxWidth", dialogEmptyContent: "dialogEmptyContent", dialogWidth: "dialogWidth", dialogHeight: "dialogHeight", dialogVisible: "dialogVisible", dialogButtonsCenter: "dialogButtonsCenter", tableData: "tableData", tableIndex: "tableIndex", tableSize: "tableSize", tableQuery: "tableQuery", tableTotal: "tableTotal", tableColumns: "tableColumns", tableActivatedRow: "tableActivatedRow", tableCheckedRow: "tableCheckedRow", tableLoading: "tableLoading", tableVirtualScroll: "tableVirtualScroll", tableBodyHeight: "tableBodyHeight", tableMinBufferPx: "tableMinBufferPx", tableMaxBufferPx: "tableMaxBufferPx", tableAdaptionHeight: "tableAdaptionHeight", tableDocPercent: "tableDocPercent", tableRowHeight: "tableRowHeight", treeData: "treeData", treeActivatedId: "treeActivatedId", treeExpandedLevel: "treeExpandedLevel", treeChecked: "treeChecked", treeCheckbox: "treeCheckbox", treeTableConnect: "treeTableConnect", search: "search" }, outputs: { dialogVisibleChange: "dialogVisibleChange", tableIndexChange: "tableIndexChange", tableSizeChange: "tableSizeChange", tableSortChange: "tableSortChange", tableRowEmit: "tableRowEmit", treeActivatedChange: "treeActivatedChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
110
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XFindProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
111
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: XFindProperty, selector: "x-find-property", inputs: { size: "size", bordered: "bordered", multiple: "multiple", columnLabel: "columnLabel", dialogTitle: "dialogTitle", dialogCheckboxLabel: "dialogCheckboxLabel", dialogCheckboxWidth: "dialogCheckboxWidth", dialogEmptyContent: "dialogEmptyContent", dialogWidth: "dialogWidth", dialogHeight: "dialogHeight", dialogVisible: "dialogVisible", dialogButtonsCenter: "dialogButtonsCenter", tableData: "tableData", tableIndex: "tableIndex", tableSize: "tableSize", tableQuery: "tableQuery", tableTotal: "tableTotal", tableColumns: "tableColumns", tableActivatedRow: "tableActivatedRow", tableCheckedRow: "tableCheckedRow", tableLoading: "tableLoading", tableVirtualScroll: "tableVirtualScroll", tableBodyHeight: "tableBodyHeight", tableMinBufferPx: "tableMinBufferPx", tableMaxBufferPx: "tableMaxBufferPx", tableAdaptionHeight: "tableAdaptionHeight", tableDocPercent: "tableDocPercent", tableRowHeight: "tableRowHeight", treeData: "treeData", treeActivatedId: "treeActivatedId", treeExpandedLevel: "treeExpandedLevel", treeChecked: "treeChecked", treeCheckbox: "treeCheckbox", treeTableConnect: "treeTableConnect", search: "search" }, outputs: { dialogVisibleChange: "dialogVisibleChange", tableIndexChange: "tableIndexChange", tableSizeChange: "tableSizeChange", tableSortChange: "tableSortChange", tableRowEmit: "tableRowEmit", treeActivatedChange: "treeActivatedChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
112
112
  }
113
113
  __decorate([
114
114
  XWithConfig(X_CONFIG_NAME, 'medium')
@@ -180,7 +180,7 @@ __decorate([
180
180
  __decorate([
181
181
  XInputBoolean()
182
182
  ], XFindProperty.prototype, "treeCheckbox", void 0);
183
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XFindProperty, decorators: [{
183
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XFindProperty, decorators: [{
184
184
  type: Component,
185
185
  args: [{ selector: `${XFindPrefix}-property`, template: '' }]
186
186
  }], propDecorators: { size: [{