@ng-nest/ui 17.0.2 → 17.0.4

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 (488) 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 -2
  4. package/checkbox/checkbox.property.d.ts +11 -1
  5. package/color/color.component.d.ts +0 -1
  6. package/crumb/crumb.component.d.ts +0 -1
  7. package/date-picker/picker-date.component.d.ts +0 -1
  8. package/esm2022/affix/affix.component.mjs +3 -3
  9. package/esm2022/affix/affix.module.mjs +4 -4
  10. package/esm2022/affix/affix.property.mjs +3 -3
  11. package/esm2022/alert/alert.component.mjs +7 -15
  12. package/esm2022/alert/alert.module.mjs +4 -4
  13. package/esm2022/alert/alert.property.mjs +3 -3
  14. package/esm2022/anchor/anchor-inner.component.mjs +3 -3
  15. package/esm2022/anchor/anchor.component.mjs +7 -10
  16. package/esm2022/anchor/anchor.module.mjs +4 -4
  17. package/esm2022/anchor/anchor.property.mjs +6 -6
  18. package/esm2022/api/api.component.mjs +3 -3
  19. package/esm2022/api/api.module.mjs +4 -4
  20. package/esm2022/auto-complete/auto-complete-portal.component.mjs +3 -3
  21. package/esm2022/auto-complete/auto-complete.component.mjs +3 -3
  22. package/esm2022/auto-complete/auto-complete.module.mjs +4 -4
  23. package/esm2022/auto-complete/auto-complete.property.mjs +3 -3
  24. package/esm2022/avatar/avatar-group.component.mjs +3 -3
  25. package/esm2022/avatar/avatar.component.mjs +6 -7
  26. package/esm2022/avatar/avatar.module.mjs +4 -4
  27. package/esm2022/avatar/avatar.property.mjs +6 -6
  28. package/esm2022/back-top/back-top.component.mjs +7 -9
  29. package/esm2022/back-top/back-top.module.mjs +4 -4
  30. package/esm2022/back-top/back-top.property.mjs +3 -3
  31. package/esm2022/badge/badge.component.mjs +6 -7
  32. package/esm2022/badge/badge.module.mjs +5 -5
  33. package/esm2022/badge/badge.property.mjs +3 -3
  34. package/esm2022/base-form/base-form.component.mjs +3 -3
  35. package/esm2022/base-form/base-form.module.mjs +4 -4
  36. package/esm2022/base-form/base-form.property.mjs +3 -3
  37. package/esm2022/border/border.component.mjs +3 -3
  38. package/esm2022/border/border.module.mjs +4 -4
  39. package/esm2022/button/button.component.mjs +6 -7
  40. package/esm2022/button/button.module.mjs +5 -5
  41. package/esm2022/button/button.property.mjs +6 -6
  42. package/esm2022/button/buttons.component.mjs +5 -6
  43. package/esm2022/calendar/calendar.component.mjs +10 -12
  44. package/esm2022/calendar/calendar.module.mjs +4 -4
  45. package/esm2022/calendar/calendar.property.mjs +3 -3
  46. package/esm2022/card/card.component.mjs +6 -7
  47. package/esm2022/card/card.module.mjs +4 -4
  48. package/esm2022/card/card.property.mjs +3 -3
  49. package/esm2022/carousel/carousel-panel.component.mjs +5 -7
  50. package/esm2022/carousel/carousel.component.mjs +6 -10
  51. package/esm2022/carousel/carousel.module.mjs +5 -5
  52. package/esm2022/carousel/carousel.property.mjs +7 -7
  53. package/esm2022/cascade/cascade-portal.component.mjs +6 -8
  54. package/esm2022/cascade/cascade.component.mjs +7 -9
  55. package/esm2022/cascade/cascade.module.mjs +4 -4
  56. package/esm2022/cascade/cascade.property.mjs +3 -3
  57. package/esm2022/checkbox/checkbox.component.mjs +7 -13
  58. package/esm2022/checkbox/checkbox.module.mjs +4 -4
  59. package/esm2022/checkbox/checkbox.property.mjs +30 -4
  60. package/esm2022/collapse/collapse-panel.component.mjs +5 -7
  61. package/esm2022/collapse/collapse.component.mjs +5 -6
  62. package/esm2022/collapse/collapse.module.mjs +5 -5
  63. package/esm2022/collapse/collapse.property.mjs +6 -6
  64. package/esm2022/color/color.component.mjs +6 -10
  65. package/esm2022/color/color.module.mjs +5 -5
  66. package/esm2022/color/color.property.mjs +3 -3
  67. package/esm2022/color-picker/color-picker-portal.component.mjs +6 -14
  68. package/esm2022/color-picker/color-picker.component.mjs +6 -6
  69. package/esm2022/color-picker/color-picker.module.mjs +4 -4
  70. package/esm2022/color-picker/color-picker.property.mjs +3 -3
  71. package/esm2022/comment/comment-reply.component.mjs +5 -6
  72. package/esm2022/comment/comment.component.mjs +5 -8
  73. package/esm2022/comment/comment.module.mjs +4 -4
  74. package/esm2022/comment/comment.property.mjs +6 -6
  75. package/esm2022/container/aside.component.mjs +5 -6
  76. package/esm2022/container/container.component.mjs +5 -6
  77. package/esm2022/container/container.module.mjs +5 -5
  78. package/esm2022/container/container.property.mjs +12 -12
  79. package/esm2022/container/footer.component.mjs +5 -6
  80. package/esm2022/container/header.component.mjs +5 -6
  81. package/esm2022/container/main.component.mjs +5 -6
  82. package/esm2022/core/config/config.service.mjs +3 -3
  83. package/esm2022/core/services/http.service.mjs +3 -3
  84. package/esm2022/core/services/preloading-strategy.service.mjs +3 -3
  85. package/esm2022/core/services/storage.service.mjs +3 -3
  86. package/esm2022/core/theme/theme.service.mjs +3 -3
  87. package/esm2022/crumb/crumb.component.mjs +6 -10
  88. package/esm2022/crumb/crumb.module.mjs +4 -4
  89. package/esm2022/crumb/crumb.property.mjs +3 -3
  90. package/esm2022/date-picker/date-picker-portal.component.mjs +9 -9
  91. package/esm2022/date-picker/date-picker.component.mjs +3 -3
  92. package/esm2022/date-picker/date-picker.module.mjs +4 -4
  93. package/esm2022/date-picker/date-picker.property.mjs +18 -18
  94. package/esm2022/date-picker/date-quarter.pipe.mjs +3 -3
  95. package/esm2022/date-picker/date-range-portal.component.mjs +8 -7
  96. package/esm2022/date-picker/date-range.component.mjs +8 -11
  97. package/esm2022/date-picker/picker-date.component.mjs +6 -10
  98. package/esm2022/date-picker/picker-month.component.mjs +6 -7
  99. package/esm2022/date-picker/picker-quarter.component.mjs +6 -7
  100. package/esm2022/date-picker/picker-year.component.mjs +6 -7
  101. package/esm2022/description/description-item.component.mjs +6 -7
  102. package/esm2022/description/description.component.mjs +6 -7
  103. package/esm2022/description/description.module.mjs +5 -5
  104. package/esm2022/description/description.property.mjs +6 -6
  105. package/esm2022/dialog/dialog-container.component.mjs +6 -7
  106. package/esm2022/dialog/dialog-portal.component.mjs +7 -12
  107. package/esm2022/dialog/dialog-portal.directives.mjs +18 -18
  108. package/esm2022/dialog/dialog.component.mjs +6 -7
  109. package/esm2022/dialog/dialog.module.mjs +5 -6
  110. package/esm2022/dialog/dialog.property.mjs +6 -6
  111. package/esm2022/dialog/dialog.service.mjs +3 -3
  112. package/esm2022/doc/doc.component.mjs +5 -6
  113. package/esm2022/doc/doc.module.mjs +5 -5
  114. package/esm2022/drag/drag.directive.mjs +3 -3
  115. package/esm2022/drag/drag.module.mjs +4 -4
  116. package/esm2022/drag/drag.property.mjs +3 -3
  117. package/esm2022/drawer/drawer-container.component.mjs +6 -7
  118. package/esm2022/drawer/drawer-portal.component.mjs +5 -6
  119. package/esm2022/drawer/drawer-portal.directives.mjs +9 -9
  120. package/esm2022/drawer/drawer.component.mjs +6 -7
  121. package/esm2022/drawer/drawer.module.mjs +5 -6
  122. package/esm2022/drawer/drawer.property.mjs +6 -6
  123. package/esm2022/drawer/drawer.service.mjs +3 -3
  124. package/esm2022/dropdown/dropdown-portal.component.mjs +5 -6
  125. package/esm2022/dropdown/dropdown.component.mjs +9 -20
  126. package/esm2022/dropdown/dropdown.module.mjs +5 -5
  127. package/esm2022/dropdown/dropdown.property.mjs +3 -3
  128. package/esm2022/empty/empty.component.mjs +5 -7
  129. package/esm2022/empty/empty.module.mjs +4 -4
  130. package/esm2022/empty/empty.property.mjs +3 -3
  131. package/esm2022/examples/examples.component.mjs +5 -6
  132. package/esm2022/examples/examples.module.mjs +5 -5
  133. package/esm2022/find/find.component.mjs +8 -12
  134. package/esm2022/find/find.module.mjs +4 -4
  135. package/esm2022/find/find.property.mjs +3 -3
  136. package/esm2022/form/control.component.mjs +7 -10
  137. package/esm2022/form/form.component.mjs +9 -12
  138. package/esm2022/form/form.module.mjs +4 -4
  139. package/esm2022/form/form.property.mjs +6 -6
  140. package/esm2022/highlight/highlight.component.mjs +6 -7
  141. package/esm2022/highlight/highlight.module.mjs +4 -4
  142. package/esm2022/highlight/highlight.property.mjs +3 -3
  143. package/esm2022/i18n/i18n.directive.mjs +3 -3
  144. package/esm2022/i18n/i18n.module.mjs +4 -4
  145. package/esm2022/i18n/i18n.pipe.mjs +3 -3
  146. package/esm2022/i18n/i18n.service.mjs +3 -3
  147. package/esm2022/icon/icon.component.mjs +3 -3
  148. package/esm2022/icon/icon.module.mjs +4 -4
  149. package/esm2022/icon/icon.property.mjs +3 -3
  150. package/esm2022/icon/icon.service.mjs +3 -3
  151. package/esm2022/image/image-group.component.mjs +12 -7
  152. package/esm2022/image/image-preview.component.mjs +7 -8
  153. package/esm2022/image/image.component.mjs +6 -7
  154. package/esm2022/image/image.module.mjs +5 -5
  155. package/esm2022/image/image.property.mjs +6 -6
  156. package/esm2022/inner/inner.component.mjs +5 -6
  157. package/esm2022/inner/inner.module.mjs +5 -5
  158. package/esm2022/inner/inner.property.mjs +3 -3
  159. package/esm2022/input/input-group.component.mjs +5 -6
  160. package/esm2022/input/input.component.mjs +7 -8
  161. package/esm2022/input/input.module.mjs +5 -5
  162. package/esm2022/input/input.property.mjs +6 -6
  163. package/esm2022/input-number/input-number.component.mjs +7 -8
  164. package/esm2022/input-number/input-number.module.mjs +4 -4
  165. package/esm2022/input-number/input-number.property.mjs +3 -3
  166. package/esm2022/keyword/keyword.directive.mjs +3 -3
  167. package/esm2022/keyword/keyword.module.mjs +4 -4
  168. package/esm2022/keyword/keyword.property.mjs +3 -3
  169. package/esm2022/layout/col.component.mjs +3 -3
  170. package/esm2022/layout/layout.module.mjs +4 -4
  171. package/esm2022/layout/layout.property.mjs +6 -6
  172. package/esm2022/layout/row.component.mjs +3 -3
  173. package/esm2022/link/link.component.mjs +6 -7
  174. package/esm2022/link/link.module.mjs +4 -4
  175. package/esm2022/link/link.property.mjs +3 -3
  176. package/esm2022/list/list-drop-group.directive.mjs +3 -3
  177. package/esm2022/list/list-option.component.mjs +6 -7
  178. package/esm2022/list/list.component.mjs +9 -12
  179. package/esm2022/list/list.module.mjs +4 -4
  180. package/esm2022/list/list.property.mjs +6 -6
  181. package/esm2022/loading/loading.component.mjs +6 -7
  182. package/esm2022/loading/loading.module.mjs +4 -4
  183. package/esm2022/loading/loading.property.mjs +3 -3
  184. package/esm2022/menu/menu-node.component.mjs +7 -8
  185. package/esm2022/menu/menu.component.mjs +6 -10
  186. package/esm2022/menu/menu.module.mjs +4 -4
  187. package/esm2022/menu/menu.property.mjs +6 -6
  188. package/esm2022/message/message.component.mjs +5 -10
  189. package/esm2022/message/message.module.mjs +4 -4
  190. package/esm2022/message/message.service.mjs +3 -3
  191. package/esm2022/message-box/message-box.component.mjs +6 -9
  192. package/esm2022/message-box/message-box.module.mjs +4 -4
  193. package/esm2022/message-box/message-box.service.mjs +3 -3
  194. package/esm2022/notification/notification.component.mjs +5 -10
  195. package/esm2022/notification/notification.module.mjs +4 -4
  196. package/esm2022/notification/notification.service.mjs +3 -3
  197. package/esm2022/outlet/outlet.directive.mjs +3 -3
  198. package/esm2022/outlet/outlet.module.mjs +4 -4
  199. package/esm2022/page-header/page-header.component.mjs +5 -7
  200. package/esm2022/page-header/page-header.module.mjs +4 -4
  201. package/esm2022/page-header/page-header.property.mjs +3 -3
  202. package/esm2022/pagination/pagination.component.mjs +6 -12
  203. package/esm2022/pagination/pagination.module.mjs +4 -4
  204. package/esm2022/pagination/pagination.property.mjs +3 -3
  205. package/esm2022/pattern/pattern.component.mjs +5 -6
  206. package/esm2022/pattern/pattern.module.mjs +5 -5
  207. package/esm2022/popconfirm/popconfirm.component.mjs +5 -7
  208. package/esm2022/popconfirm/popconfirm.module.mjs +4 -4
  209. package/esm2022/popconfirm/popconfirm.property.mjs +3 -3
  210. package/esm2022/popover/popover-portal.component.mjs +6 -7
  211. package/esm2022/popover/popover.directive.mjs +3 -3
  212. package/esm2022/popover/popover.module.mjs +4 -4
  213. package/esm2022/popover/popover.property.mjs +3 -3
  214. package/esm2022/portal/portal.module.mjs +4 -4
  215. package/esm2022/portal/portal.service.mjs +3 -3
  216. package/esm2022/progress/progress.component.mjs +6 -7
  217. package/esm2022/progress/progress.module.mjs +4 -4
  218. package/esm2022/progress/progress.property.mjs +3 -3
  219. package/esm2022/radio/radio.component.mjs +6 -10
  220. package/esm2022/radio/radio.module.mjs +4 -4
  221. package/esm2022/radio/radio.property.mjs +14 -4
  222. package/esm2022/rate/rate.component.mjs +6 -7
  223. package/esm2022/rate/rate.module.mjs +4 -4
  224. package/esm2022/rate/rate.property.mjs +3 -3
  225. package/esm2022/resizable/resizable.directive.mjs +3 -3
  226. package/esm2022/resizable/resizable.module.mjs +4 -4
  227. package/esm2022/resizable/resizable.property.mjs +3 -3
  228. package/esm2022/result/result.component.mjs +6 -7
  229. package/esm2022/result/result.module.mjs +4 -4
  230. package/esm2022/result/result.property.mjs +3 -3
  231. package/esm2022/ripple/ripple.directive.mjs +3 -3
  232. package/esm2022/ripple/ripple.module.mjs +4 -4
  233. package/esm2022/ripple/ripple.property.mjs +3 -3
  234. package/esm2022/select/select-portal.component.mjs +5 -6
  235. package/esm2022/select/select.component.mjs +7 -8
  236. package/esm2022/select/select.module.mjs +4 -4
  237. package/esm2022/select/select.property.mjs +3 -3
  238. package/esm2022/skeleton/skeleton.component.mjs +6 -7
  239. package/esm2022/skeleton/skeleton.module.mjs +4 -4
  240. package/esm2022/skeleton/skeleton.property.mjs +3 -3
  241. package/esm2022/slider/slider.component.mjs +6 -10
  242. package/esm2022/slider/slider.module.mjs +4 -4
  243. package/esm2022/slider/slider.property.mjs +3 -3
  244. package/esm2022/slider-select/slider-select.component.mjs +9 -9
  245. package/esm2022/slider-select/slider-select.module.mjs +4 -4
  246. package/esm2022/slider-select/slider-select.property.mjs +3 -3
  247. package/esm2022/statistic/countdown.component.mjs +3 -3
  248. package/esm2022/statistic/statistic.component.mjs +6 -7
  249. package/esm2022/statistic/statistic.module.mjs +5 -5
  250. package/esm2022/statistic/statistic.property.mjs +6 -6
  251. package/esm2022/steps/steps.component.mjs +6 -10
  252. package/esm2022/steps/steps.module.mjs +4 -4
  253. package/esm2022/steps/steps.property.mjs +3 -3
  254. package/esm2022/switch/switch.component.mjs +6 -7
  255. package/esm2022/switch/switch.module.mjs +4 -4
  256. package/esm2022/switch/switch.property.mjs +3 -3
  257. package/esm2022/table/table-body.component.mjs +10 -10
  258. package/esm2022/table/table-foot.component.mjs +5 -6
  259. package/esm2022/table/table-head.component.mjs +11 -13
  260. package/esm2022/table/table.component.mjs +7 -8
  261. package/esm2022/table/table.module.mjs +5 -5
  262. package/esm2022/table/table.property.mjs +12 -12
  263. package/esm2022/tabs/tab-content.component.mjs +6 -7
  264. package/esm2022/tabs/tab-link.directive.mjs +6 -6
  265. package/esm2022/tabs/tab.component.mjs +5 -6
  266. package/esm2022/tabs/tabs.component.mjs +6 -7
  267. package/esm2022/tabs/tabs.module.mjs +5 -5
  268. package/esm2022/tabs/tabs.property.mjs +6 -6
  269. package/esm2022/tag/tag.component.mjs +6 -7
  270. package/esm2022/tag/tag.module.mjs +4 -4
  271. package/esm2022/tag/tag.property.mjs +3 -3
  272. package/esm2022/text-retract/text-retract.component.mjs +5 -7
  273. package/esm2022/text-retract/text-retract.module.mjs +4 -4
  274. package/esm2022/text-retract/text-retract.property.mjs +3 -3
  275. package/esm2022/textarea/textarea.component.mjs +7 -8
  276. package/esm2022/textarea/textarea.module.mjs +4 -4
  277. package/esm2022/textarea/textarea.property.mjs +3 -3
  278. package/esm2022/theme/theme.component.mjs +6 -9
  279. package/esm2022/theme/theme.module.mjs +4 -4
  280. package/esm2022/theme/theme.property.mjs +3 -3
  281. package/esm2022/time-ago/time-ago.module.mjs +4 -4
  282. package/esm2022/time-ago/time-ago.pipe.mjs +3 -3
  283. package/esm2022/time-picker/time-picker-frame.component.mjs +6 -8
  284. package/esm2022/time-picker/time-picker-portal.component.mjs +5 -7
  285. package/esm2022/time-picker/time-picker.component.mjs +3 -3
  286. package/esm2022/time-picker/time-picker.module.mjs +4 -4
  287. package/esm2022/time-picker/time-picker.property.mjs +3 -3
  288. package/esm2022/time-range/time-range.module.mjs +4 -4
  289. package/esm2022/time-range/time-range.pipe.mjs +3 -3
  290. package/esm2022/timeline/timeline.component.mjs +6 -7
  291. package/esm2022/timeline/timeline.module.mjs +4 -4
  292. package/esm2022/timeline/timeline.property.mjs +3 -3
  293. package/esm2022/tooltip/tooltip-portal.component.mjs +6 -7
  294. package/esm2022/tooltip/tooltip.directive.mjs +3 -3
  295. package/esm2022/tooltip/tooltip.module.mjs +4 -4
  296. package/esm2022/tooltip/tooltip.property.mjs +3 -3
  297. package/esm2022/transfer/transfer.component.mjs +11 -10
  298. package/esm2022/transfer/transfer.module.mjs +4 -4
  299. package/esm2022/transfer/transfer.property.mjs +3 -3
  300. package/esm2022/tree/tree-node.component.mjs +8 -9
  301. package/esm2022/tree/tree.component.mjs +7 -9
  302. package/esm2022/tree/tree.module.mjs +4 -4
  303. package/esm2022/tree/tree.property.mjs +6 -6
  304. package/esm2022/tree/tree.service.mjs +3 -3
  305. package/esm2022/tree-file/tree-file.component.mjs +7 -8
  306. package/esm2022/tree-file/tree-file.module.mjs +4 -4
  307. package/esm2022/tree-file/tree-file.property.mjs +3 -3
  308. package/esm2022/tree-select/tree-select-portal.component.mjs +5 -7
  309. package/esm2022/tree-select/tree-select.component.mjs +7 -8
  310. package/esm2022/tree-select/tree-select.module.mjs +4 -4
  311. package/esm2022/tree-select/tree-select.property.mjs +3 -3
  312. package/esm2022/typography/typography.component.mjs +3 -3
  313. package/esm2022/typography/typography.module.mjs +4 -4
  314. package/esm2022/typography/typography.property.mjs +3 -3
  315. package/esm2022/upload/upload-portal.component.mjs +6 -6
  316. package/esm2022/upload/upload.component.mjs +7 -11
  317. package/esm2022/upload/upload.module.mjs +4 -4
  318. package/esm2022/upload/upload.property.mjs +3 -3
  319. package/fesm2022/ng-nest-ui-affix.mjs +10 -10
  320. package/fesm2022/ng-nest-ui-alert.mjs +13 -21
  321. package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
  322. package/fesm2022/ng-nest-ui-anchor.mjs +19 -22
  323. package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
  324. package/fesm2022/ng-nest-ui-api.mjs +7 -7
  325. package/fesm2022/ng-nest-ui-auto-complete.mjs +13 -13
  326. package/fesm2022/ng-nest-ui-avatar.mjs +18 -19
  327. package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
  328. package/fesm2022/ng-nest-ui-back-top.mjs +13 -15
  329. package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
  330. package/fesm2022/ng-nest-ui-badge.mjs +12 -13
  331. package/fesm2022/ng-nest-ui-badge.mjs.map +1 -1
  332. package/fesm2022/ng-nest-ui-base-form.mjs +10 -10
  333. package/fesm2022/ng-nest-ui-border.mjs +7 -7
  334. package/fesm2022/ng-nest-ui-button.mjs +19 -20
  335. package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
  336. package/fesm2022/ng-nest-ui-calendar.mjs +16 -18
  337. package/fesm2022/ng-nest-ui-calendar.mjs.map +1 -1
  338. package/fesm2022/ng-nest-ui-card.mjs +12 -13
  339. package/fesm2022/ng-nest-ui-card.mjs.map +1 -1
  340. package/fesm2022/ng-nest-ui-carousel.mjs +19 -23
  341. package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
  342. package/fesm2022/ng-nest-ui-cascade.mjs +18 -21
  343. package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
  344. package/fesm2022/ng-nest-ui-checkbox.mjs +39 -19
  345. package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
  346. package/fesm2022/ng-nest-ui-collapse.mjs +18 -20
  347. package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
  348. package/fesm2022/ng-nest-ui-color-picker.mjs +16 -24
  349. package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
  350. package/fesm2022/ng-nest-ui-color.mjs +12 -16
  351. package/fesm2022/ng-nest-ui-color.mjs.map +1 -1
  352. package/fesm2022/ng-nest-ui-comment.mjs +18 -21
  353. package/fesm2022/ng-nest-ui-comment.mjs.map +1 -1
  354. package/fesm2022/ng-nest-ui-container.mjs +36 -37
  355. package/fesm2022/ng-nest-ui-container.mjs.map +1 -1
  356. package/fesm2022/ng-nest-ui-core.mjs +15 -15
  357. package/fesm2022/ng-nest-ui-crumb.mjs +12 -16
  358. package/fesm2022/ng-nest-ui-crumb.mjs.map +1 -1
  359. package/fesm2022/ng-nest-ui-date-picker.mjs +66 -69
  360. package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
  361. package/fesm2022/ng-nest-ui-description.mjs +20 -21
  362. package/fesm2022/ng-nest-ui-description.mjs.map +1 -1
  363. package/fesm2022/ng-nest-ui-dialog.mjs +48 -54
  364. package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
  365. package/fesm2022/ng-nest-ui-doc.mjs +8 -9
  366. package/fesm2022/ng-nest-ui-doc.mjs.map +1 -1
  367. package/fesm2022/ng-nest-ui-drag.mjs +10 -10
  368. package/fesm2022/ng-nest-ui-drawer.mjs +37 -39
  369. package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
  370. package/fesm2022/ng-nest-ui-dropdown.mjs +19 -30
  371. package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
  372. package/fesm2022/ng-nest-ui-empty.mjs +11 -13
  373. package/fesm2022/ng-nest-ui-empty.mjs.map +1 -1
  374. package/fesm2022/ng-nest-ui-examples.mjs +8 -9
  375. package/fesm2022/ng-nest-ui-examples.mjs.map +1 -1
  376. package/fesm2022/ng-nest-ui-find.mjs +14 -18
  377. package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
  378. package/fesm2022/ng-nest-ui-form.mjs +23 -27
  379. package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
  380. package/fesm2022/ng-nest-ui-highlight.mjs +12 -13
  381. package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
  382. package/fesm2022/ng-nest-ui-i18n.mjs +13 -13
  383. package/fesm2022/ng-nest-ui-icon.mjs +13 -13
  384. package/fesm2022/ng-nest-ui-image.mjs +31 -26
  385. package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
  386. package/fesm2022/ng-nest-ui-inner.mjs +11 -12
  387. package/fesm2022/ng-nest-ui-inner.mjs.map +1 -1
  388. package/fesm2022/ng-nest-ui-input-number.mjs +13 -14
  389. package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
  390. package/fesm2022/ng-nest-ui-input.mjs +20 -21
  391. package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
  392. package/fesm2022/ng-nest-ui-keyword.mjs +10 -10
  393. package/fesm2022/ng-nest-ui-layout.mjs +16 -16
  394. package/fesm2022/ng-nest-ui-link.mjs +12 -13
  395. package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
  396. package/fesm2022/ng-nest-ui-list.mjs +26 -28
  397. package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
  398. package/fesm2022/ng-nest-ui-loading.mjs +12 -13
  399. package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
  400. package/fesm2022/ng-nest-ui-menu.mjs +20 -24
  401. package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
  402. package/fesm2022/ng-nest-ui-message-box.mjs +12 -15
  403. package/fesm2022/ng-nest-ui-message-box.mjs.map +1 -1
  404. package/fesm2022/ng-nest-ui-message.mjs +11 -16
  405. package/fesm2022/ng-nest-ui-message.mjs.map +1 -1
  406. package/fesm2022/ng-nest-ui-notification.mjs +11 -16
  407. package/fesm2022/ng-nest-ui-notification.mjs.map +1 -1
  408. package/fesm2022/ng-nest-ui-outlet.mjs +7 -7
  409. package/fesm2022/ng-nest-ui-page-header.mjs +11 -13
  410. package/fesm2022/ng-nest-ui-page-header.mjs.map +1 -1
  411. package/fesm2022/ng-nest-ui-pagination.mjs +12 -18
  412. package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
  413. package/fesm2022/ng-nest-ui-pattern.mjs +8 -9
  414. package/fesm2022/ng-nest-ui-pattern.mjs.map +1 -1
  415. package/fesm2022/ng-nest-ui-popconfirm.mjs +11 -13
  416. package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
  417. package/fesm2022/ng-nest-ui-popover.mjs +15 -16
  418. package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
  419. package/fesm2022/ng-nest-ui-portal.mjs +7 -7
  420. package/fesm2022/ng-nest-ui-progress.mjs +12 -13
  421. package/fesm2022/ng-nest-ui-progress.mjs.map +1 -1
  422. package/fesm2022/ng-nest-ui-radio.mjs +22 -16
  423. package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
  424. package/fesm2022/ng-nest-ui-rate.mjs +12 -13
  425. package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
  426. package/fesm2022/ng-nest-ui-resizable.mjs +10 -10
  427. package/fesm2022/ng-nest-ui-result.mjs +12 -13
  428. package/fesm2022/ng-nest-ui-result.mjs.map +1 -1
  429. package/fesm2022/ng-nest-ui-ripple.mjs +10 -10
  430. package/fesm2022/ng-nest-ui-select.mjs +17 -18
  431. package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
  432. package/fesm2022/ng-nest-ui-skeleton.mjs +12 -13
  433. package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
  434. package/fesm2022/ng-nest-ui-slider-select.mjs +15 -15
  435. package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
  436. package/fesm2022/ng-nest-ui-slider.mjs +12 -16
  437. package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
  438. package/fesm2022/ng-nest-ui-statistic.mjs +18 -19
  439. package/fesm2022/ng-nest-ui-statistic.mjs.map +1 -1
  440. package/fesm2022/ng-nest-ui-steps.mjs +12 -16
  441. package/fesm2022/ng-nest-ui-steps.mjs.map +1 -1
  442. package/fesm2022/ng-nest-ui-switch.mjs +12 -13
  443. package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
  444. package/fesm2022/ng-nest-ui-table.mjs +45 -46
  445. package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
  446. package/fesm2022/ng-nest-ui-tabs.mjs +29 -30
  447. package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
  448. package/fesm2022/ng-nest-ui-tag.mjs +12 -13
  449. package/fesm2022/ng-nest-ui-tag.mjs.map +1 -1
  450. package/fesm2022/ng-nest-ui-text-retract.mjs +11 -13
  451. package/fesm2022/ng-nest-ui-text-retract.mjs.map +1 -1
  452. package/fesm2022/ng-nest-ui-textarea.mjs +13 -14
  453. package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
  454. package/fesm2022/ng-nest-ui-theme.mjs +12 -15
  455. package/fesm2022/ng-nest-ui-theme.mjs.map +1 -1
  456. package/fesm2022/ng-nest-ui-time-ago.mjs +7 -7
  457. package/fesm2022/ng-nest-ui-time-picker.mjs +20 -21
  458. package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
  459. package/fesm2022/ng-nest-ui-time-range.mjs +7 -7
  460. package/fesm2022/ng-nest-ui-timeline.mjs +12 -13
  461. package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
  462. package/fesm2022/ng-nest-ui-tooltip.mjs +15 -16
  463. package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
  464. package/fesm2022/ng-nest-ui-transfer.mjs +17 -16
  465. package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
  466. package/fesm2022/ng-nest-ui-tree-file.mjs +13 -14
  467. package/fesm2022/ng-nest-ui-tree-file.mjs.map +1 -1
  468. package/fesm2022/ng-nest-ui-tree-select.mjs +17 -18
  469. package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
  470. package/fesm2022/ng-nest-ui-tree.mjs +26 -27
  471. package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
  472. package/fesm2022/ng-nest-ui-typography.mjs +10 -10
  473. package/fesm2022/ng-nest-ui-upload.mjs +17 -21
  474. package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
  475. package/find/find.component.d.ts +0 -1
  476. package/form/form.component.d.ts +1 -2
  477. package/image/image-group.component.d.ts +2 -0
  478. package/menu/menu.component.d.ts +0 -1
  479. package/message/message.component.d.ts +0 -1
  480. package/notification/notification.component.d.ts +0 -1
  481. package/package.json +60 -60
  482. package/pagination/pagination.component.d.ts +0 -1
  483. package/radio/radio.component.d.ts +0 -1
  484. package/radio/radio.property.d.ts +6 -1
  485. package/slider/slider.component.d.ts +0 -1
  486. package/steps/steps.component.d.ts +0 -1
  487. package/table/table-head.component.d.ts +0 -1
  488. package/upload/upload.component.d.ts +1 -2
@@ -5,13 +5,12 @@ import { XIsEmpty, XConfigService } from '@ng-nest/ui/core';
5
5
  import { XCrumbComponent } from '@ng-nest/ui/crumb';
6
6
  import { delay, finalize } from 'rxjs/operators';
7
7
  import { XHighlightComponent } from '@ng-nest/ui/highlight';
8
- import { CommonModule } from '@angular/common';
8
+ import { NgClass } from '@angular/common';
9
9
  import { XIconComponent } from '@ng-nest/ui/icon';
10
10
  import { XLinkComponent } from '@ng-nest/ui/link';
11
11
  import { XLoadingComponent } from '@ng-nest/ui/loading';
12
12
  import { XTreeComponent } from '@ng-nest/ui/tree';
13
13
  import * as i0 from "@angular/core";
14
- import * as i1 from "@angular/common";
15
14
  export class XTreeFileComponent extends XTreeFileProperty {
16
15
  constructor() {
17
16
  super(...arguments);
@@ -110,19 +109,19 @@ export class XTreeFileComponent extends XTreeFileProperty {
110
109
  this.toggle = !this.toggle;
111
110
  this.cdr.detectChanges();
112
111
  }
113
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XTreeFileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
114
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: XTreeFileComponent, isStandalone: true, selector: "x-tree-file", usesInheritance: true, ngImport: i0, template: "<div #treeFile class=\"x-tree-file\" [ngClass]=\"classMap\" [class.x-tree-file-toggle]=\"toggle\">\r\n <div class=\"x-tree-file-catalog\" [style.max-height.rem]=\"catalogHeight\" *ngIf=\"showTree\">\r\n <x-tree\r\n [data]=\"data\"\r\n (activatedChange)=\"catalogChange($event)\"\r\n nodeOpen\r\n [expandedAll]=\"expandedAll\"\r\n [expandedLevel]=\"expandedLevel\"\r\n [expanded]=\"expanded\"\r\n [spacing]=\"spacing\"\r\n [activatedId]=\"activatedId\"\r\n ></x-tree>\r\n </div>\r\n <div class=\"x-tree-file-body\" [x-loading]=\"loading\">\r\n <div class=\"x-tree-file-crumb\" *ngIf=\"showCrumb\">\r\n <x-link icon=\"fto-menu\" *ngIf=\"showToggle && showTree\" (click)=\"menuToggle()\"></x-link>\r\n <x-crumb [data]=\"getCrumbData\" [separator]=\"separatorTpl\"></x-crumb>\r\n <ng-template #separatorTpl>\r\n <x-icon type=\"fto-chevron-right\"></x-icon>\r\n </ng-template>\r\n </div>\r\n <div class=\"x-tree-file-content\" [style.max-height.rem]=\"codeHeight\" [ngSwitch]=\"activatedNode?.fileType\">\r\n <div *ngSwitchCase=\"'img'\" class=\"x-tree-file-img\"><img [src]=\"activatedNode?.url\" (load)=\"imgOnload()\"/></div>\r\n <x-highlight\r\n *ngSwitchCase=\"'code'\"\r\n [type]=\"activatedNode?.type\"\r\n [data]=\"activatedNode?.content\"\r\n [highlightLines]=\"getHighlightLines\"\r\n ></x-highlight>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".x-tree-file{margin:0;padding:0;display:flex;background-color:var(--x-background);border-radius:var(--x-border-radius);border:var(--x-border-width) var(--x-border-style) var(--x-border);color:var(--x-text)}.x-tree-file-catalog{width:0;overflow:auto;opacity:0;font-size:.8125rem;transition:var(--x-animation-duration-slow)}.x-tree-file-catalog .x-tree{padding:.5rem}.x-tree-file-catalog .x-tree-node-content{height:1.375rem}.x-tree-file-catalog .x-tree-node-content:hover,.x-tree-file-catalog .x-tree-node-content.x-activated{background-color:var(--x-border)}.x-tree-file-body{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}.x-tree-file-crumb{background-color:var(--x-background);display:flex}.x-tree-file-crumb>x-link{line-height:1.5rem;height:1.5rem;transition:var(--x-animation-duration-base)}.x-tree-file-crumb>x-link>a{padding:0 .5rem}.x-tree-file-crumb>x-crumb{flex:1}.x-tree-file-crumb>x-crumb>.x-crumb{padding:0 .5rem;color:var(--x-text-300)}.x-tree-file-crumb>x-crumb>.x-crumb .x-crumb-separator{margin:0 .125rem}.x-tree-file-content{flex:1;overflow:auto;transition:var(--x-animation-duration-slow);display:flex;min-height:3rem}.x-tree-file-content>x-highlight{border:none}.x-tree-file-content>x-highlight>pre{overflow:inherit}.x-tree-file-content>.x-tree-file-img{margin:auto;padding:1.5rem;display:flex;align-items:center}.x-tree-file-content>.x-tree-file-img>img{max-width:100%;height:auto;margin:auto;box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);border-radius:var(--x-border-radius);background-color:var(--x-background-a100)}.x-tree-file-toggle>.x-tree-file-catalog{width:16rem;opacity:1;border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: XTreeComponent, selector: "x-tree" }, { kind: "component", type: XLinkComponent, selector: "x-link" }, { kind: "component", type: XCrumbComponent, selector: "x-crumb" }, { kind: "component", type: XIconComponent, selector: "x-icon" }, { kind: "component", type: XLoadingComponent, selector: "x-loading, [x-loading]" }, { kind: "component", type: XHighlightComponent, selector: "x-highlight" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
112
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XTreeFileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
113
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.7", type: XTreeFileComponent, isStandalone: true, selector: "x-tree-file", usesInheritance: true, ngImport: i0, template: "<div #treeFile class=\"x-tree-file\" [ngClass]=\"classMap\" [class.x-tree-file-toggle]=\"toggle\">\r\n @if (showTree) {\r\n <div class=\"x-tree-file-catalog\" [style.max-height.rem]=\"catalogHeight\">\r\n <x-tree\r\n [data]=\"data\"\r\n (activatedChange)=\"catalogChange($event)\"\r\n nodeOpen\r\n [expandedAll]=\"expandedAll\"\r\n [expandedLevel]=\"expandedLevel\"\r\n [expanded]=\"expanded\"\r\n [spacing]=\"spacing\"\r\n [activatedId]=\"activatedId\"\r\n ></x-tree>\r\n </div>\r\n }\r\n <div class=\"x-tree-file-body\" [x-loading]=\"loading\">\r\n @if (showCrumb) {\r\n <div class=\"x-tree-file-crumb\">\r\n @if (showToggle && showTree) {\r\n <x-link icon=\"fto-menu\" (click)=\"menuToggle()\"></x-link>\r\n }\r\n <x-crumb [data]=\"getCrumbData\" [separator]=\"separatorTpl\"></x-crumb>\r\n <ng-template #separatorTpl>\r\n <x-icon type=\"fto-chevron-right\"></x-icon>\r\n </ng-template>\r\n </div>\r\n }\r\n\r\n <div class=\"x-tree-file-content\" [style.max-height.rem]=\"codeHeight\">\r\n @switch (activatedNode?.fileType) {\r\n @case ('img') {\r\n <div class=\"x-tree-file-img\"><img [src]=\"activatedNode?.url\" (load)=\"imgOnload()\" /></div>\r\n }\r\n @case ('code') {\r\n <x-highlight\r\n [type]=\"activatedNode?.type\"\r\n [data]=\"activatedNode?.content\"\r\n [highlightLines]=\"getHighlightLines\"\r\n ></x-highlight>\r\n }\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".x-tree-file{margin:0;padding:0;display:flex;background-color:var(--x-background);border-radius:var(--x-border-radius);border:var(--x-border-width) var(--x-border-style) var(--x-border);color:var(--x-text)}.x-tree-file-catalog{width:0;overflow:auto;opacity:0;font-size:.8125rem;transition:var(--x-animation-duration-slow)}.x-tree-file-catalog .x-tree{padding:.5rem}.x-tree-file-catalog .x-tree-node-content{height:1.375rem}.x-tree-file-catalog .x-tree-node-content:hover,.x-tree-file-catalog .x-tree-node-content.x-activated{background-color:var(--x-border)}.x-tree-file-body{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}.x-tree-file-crumb{background-color:var(--x-background);display:flex}.x-tree-file-crumb>x-link{line-height:1.5rem;height:1.5rem;transition:var(--x-animation-duration-base)}.x-tree-file-crumb>x-link>a{padding:0 .5rem}.x-tree-file-crumb>x-crumb{flex:1}.x-tree-file-crumb>x-crumb>.x-crumb{padding:0 .5rem;color:var(--x-text-300)}.x-tree-file-crumb>x-crumb>.x-crumb .x-crumb-separator{margin:0 .125rem}.x-tree-file-content{flex:1;overflow:auto;transition:var(--x-animation-duration-slow);display:flex;min-height:3rem}.x-tree-file-content>x-highlight{border:none}.x-tree-file-content>x-highlight>pre{overflow:inherit}.x-tree-file-content>.x-tree-file-img{margin:auto;padding:1.5rem;display:flex;align-items:center}.x-tree-file-content>.x-tree-file-img>img{max-width:100%;height:auto;margin:auto;box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);border-radius:var(--x-border-radius);background-color:var(--x-background-a100)}.x-tree-file-toggle>.x-tree-file-catalog{width:16rem;opacity:1;border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: XTreeComponent, selector: "x-tree" }, { kind: "component", type: XLinkComponent, selector: "x-link" }, { kind: "component", type: XCrumbComponent, selector: "x-crumb" }, { kind: "component", type: XIconComponent, selector: "x-icon" }, { kind: "component", type: XLoadingComponent, selector: "x-loading, [x-loading]" }, { kind: "component", type: XHighlightComponent, selector: "x-highlight" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
115
114
  }
116
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XTreeFileComponent, decorators: [{
115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XTreeFileComponent, decorators: [{
117
116
  type: Component,
118
117
  args: [{ selector: `${XTreeFilePrefix}`, standalone: true, imports: [
119
- CommonModule,
118
+ NgClass,
120
119
  XTreeComponent,
121
120
  XLinkComponent,
122
121
  XCrumbComponent,
123
122
  XIconComponent,
124
123
  XLoadingComponent,
125
124
  XHighlightComponent
126
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #treeFile class=\"x-tree-file\" [ngClass]=\"classMap\" [class.x-tree-file-toggle]=\"toggle\">\r\n <div class=\"x-tree-file-catalog\" [style.max-height.rem]=\"catalogHeight\" *ngIf=\"showTree\">\r\n <x-tree\r\n [data]=\"data\"\r\n (activatedChange)=\"catalogChange($event)\"\r\n nodeOpen\r\n [expandedAll]=\"expandedAll\"\r\n [expandedLevel]=\"expandedLevel\"\r\n [expanded]=\"expanded\"\r\n [spacing]=\"spacing\"\r\n [activatedId]=\"activatedId\"\r\n ></x-tree>\r\n </div>\r\n <div class=\"x-tree-file-body\" [x-loading]=\"loading\">\r\n <div class=\"x-tree-file-crumb\" *ngIf=\"showCrumb\">\r\n <x-link icon=\"fto-menu\" *ngIf=\"showToggle && showTree\" (click)=\"menuToggle()\"></x-link>\r\n <x-crumb [data]=\"getCrumbData\" [separator]=\"separatorTpl\"></x-crumb>\r\n <ng-template #separatorTpl>\r\n <x-icon type=\"fto-chevron-right\"></x-icon>\r\n </ng-template>\r\n </div>\r\n <div class=\"x-tree-file-content\" [style.max-height.rem]=\"codeHeight\" [ngSwitch]=\"activatedNode?.fileType\">\r\n <div *ngSwitchCase=\"'img'\" class=\"x-tree-file-img\"><img [src]=\"activatedNode?.url\" (load)=\"imgOnload()\"/></div>\r\n <x-highlight\r\n *ngSwitchCase=\"'code'\"\r\n [type]=\"activatedNode?.type\"\r\n [data]=\"activatedNode?.content\"\r\n [highlightLines]=\"getHighlightLines\"\r\n ></x-highlight>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".x-tree-file{margin:0;padding:0;display:flex;background-color:var(--x-background);border-radius:var(--x-border-radius);border:var(--x-border-width) var(--x-border-style) var(--x-border);color:var(--x-text)}.x-tree-file-catalog{width:0;overflow:auto;opacity:0;font-size:.8125rem;transition:var(--x-animation-duration-slow)}.x-tree-file-catalog .x-tree{padding:.5rem}.x-tree-file-catalog .x-tree-node-content{height:1.375rem}.x-tree-file-catalog .x-tree-node-content:hover,.x-tree-file-catalog .x-tree-node-content.x-activated{background-color:var(--x-border)}.x-tree-file-body{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}.x-tree-file-crumb{background-color:var(--x-background);display:flex}.x-tree-file-crumb>x-link{line-height:1.5rem;height:1.5rem;transition:var(--x-animation-duration-base)}.x-tree-file-crumb>x-link>a{padding:0 .5rem}.x-tree-file-crumb>x-crumb{flex:1}.x-tree-file-crumb>x-crumb>.x-crumb{padding:0 .5rem;color:var(--x-text-300)}.x-tree-file-crumb>x-crumb>.x-crumb .x-crumb-separator{margin:0 .125rem}.x-tree-file-content{flex:1;overflow:auto;transition:var(--x-animation-duration-slow);display:flex;min-height:3rem}.x-tree-file-content>x-highlight{border:none}.x-tree-file-content>x-highlight>pre{overflow:inherit}.x-tree-file-content>.x-tree-file-img{margin:auto;padding:1.5rem;display:flex;align-items:center}.x-tree-file-content>.x-tree-file-img>img{max-width:100%;height:auto;margin:auto;box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);border-radius:var(--x-border-radius);background-color:var(--x-background-a100)}.x-tree-file-toggle>.x-tree-file-catalog{width:16rem;opacity:1;border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}\n"] }]
125
+ ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #treeFile class=\"x-tree-file\" [ngClass]=\"classMap\" [class.x-tree-file-toggle]=\"toggle\">\r\n @if (showTree) {\r\n <div class=\"x-tree-file-catalog\" [style.max-height.rem]=\"catalogHeight\">\r\n <x-tree\r\n [data]=\"data\"\r\n (activatedChange)=\"catalogChange($event)\"\r\n nodeOpen\r\n [expandedAll]=\"expandedAll\"\r\n [expandedLevel]=\"expandedLevel\"\r\n [expanded]=\"expanded\"\r\n [spacing]=\"spacing\"\r\n [activatedId]=\"activatedId\"\r\n ></x-tree>\r\n </div>\r\n }\r\n <div class=\"x-tree-file-body\" [x-loading]=\"loading\">\r\n @if (showCrumb) {\r\n <div class=\"x-tree-file-crumb\">\r\n @if (showToggle && showTree) {\r\n <x-link icon=\"fto-menu\" (click)=\"menuToggle()\"></x-link>\r\n }\r\n <x-crumb [data]=\"getCrumbData\" [separator]=\"separatorTpl\"></x-crumb>\r\n <ng-template #separatorTpl>\r\n <x-icon type=\"fto-chevron-right\"></x-icon>\r\n </ng-template>\r\n </div>\r\n }\r\n\r\n <div class=\"x-tree-file-content\" [style.max-height.rem]=\"codeHeight\">\r\n @switch (activatedNode?.fileType) {\r\n @case ('img') {\r\n <div class=\"x-tree-file-img\"><img [src]=\"activatedNode?.url\" (load)=\"imgOnload()\" /></div>\r\n }\r\n @case ('code') {\r\n <x-highlight\r\n [type]=\"activatedNode?.type\"\r\n [data]=\"activatedNode?.content\"\r\n [highlightLines]=\"getHighlightLines\"\r\n ></x-highlight>\r\n }\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".x-tree-file{margin:0;padding:0;display:flex;background-color:var(--x-background);border-radius:var(--x-border-radius);border:var(--x-border-width) var(--x-border-style) var(--x-border);color:var(--x-text)}.x-tree-file-catalog{width:0;overflow:auto;opacity:0;font-size:.8125rem;transition:var(--x-animation-duration-slow)}.x-tree-file-catalog .x-tree{padding:.5rem}.x-tree-file-catalog .x-tree-node-content{height:1.375rem}.x-tree-file-catalog .x-tree-node-content:hover,.x-tree-file-catalog .x-tree-node-content.x-activated{background-color:var(--x-border)}.x-tree-file-body{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}.x-tree-file-crumb{background-color:var(--x-background);display:flex}.x-tree-file-crumb>x-link{line-height:1.5rem;height:1.5rem;transition:var(--x-animation-duration-base)}.x-tree-file-crumb>x-link>a{padding:0 .5rem}.x-tree-file-crumb>x-crumb{flex:1}.x-tree-file-crumb>x-crumb>.x-crumb{padding:0 .5rem;color:var(--x-text-300)}.x-tree-file-crumb>x-crumb>.x-crumb .x-crumb-separator{margin:0 .125rem}.x-tree-file-content{flex:1;overflow:auto;transition:var(--x-animation-duration-slow);display:flex;min-height:3rem}.x-tree-file-content>x-highlight{border:none}.x-tree-file-content>x-highlight>pre{overflow:inherit}.x-tree-file-content>.x-tree-file-img{margin:auto;padding:1.5rem;display:flex;align-items:center}.x-tree-file-content>.x-tree-file-img>img{max-width:100%;height:auto;margin:auto;box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);border-radius:var(--x-border-radius);background-color:var(--x-background-a100)}.x-tree-file-toggle>.x-tree-file-catalog{width:16rem;opacity:1;border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}\n"] }]
127
126
  }] });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1maWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RyZWUtZmlsZS90cmVlLWZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdHJlZS1maWxlL3RyZWUtZmlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFpQixhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sbUJBQW1CLENBQUM7QUFDaEUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQW1CLE1BQU0sdUJBQXVCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFtQmxELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxpQkFBaUI7SUFqQnpEOztRQW1CRSxZQUFPLEdBQVksS0FB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Y0FBYyxtREFDZCxlQUFlLG9EQUNmLGNBQWMsbURBQ2QsaUJBQWlCLG1FQUNqQixtQkFBbUI7OzJGQU9WLGtCQUFrQjtrQkFqQjlCLFNBQVM7K0JBQ0UsR0FBRyxlQUFlLEVBQUUsY0FDbEIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLG1CQUFtQjtxQkFDcEIsaUJBR2MsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24sIENoYW5nZURldGVjdG9yUmVmLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhUcmVlRmlsZVByZWZpeCwgWFRyZWVGaWxlUHJvcGVydHksIFhUcmVlRmlsZU5vZGUsIFhUcmVlRmlsZUltZ3MgfSBmcm9tICcuL3RyZWUtZmlsZS5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IFhJc0VtcHR5LCBYQ29uZmlnU2VydmljZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBYQ3J1bWJDb21wb25lbnQsIFhDcnVtYk5vZGUgfSBmcm9tICdAbmctbmVzdC91aS9jcnVtYic7XHJcbmltcG9ydCB7IGRlbGF5LCBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgWEhpZ2hsaWdodENvbXBvbmVudCwgWEhpZ2hsaWdodExpbmVzIH0gZnJvbSAnQG5nLW5lc3QvdWkvaGlnaGxpZ2h0JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgWEljb25Db21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9pY29uJztcclxuaW1wb3J0IHsgWExpbmtDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9saW5rJztcclxuaW1wb3J0IHsgWExvYWRpbmdDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9sb2FkaW5nJztcclxuaW1wb3J0IHsgWFRyZWVDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS90cmVlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYVHJlZUZpbGVQcmVmaXh9YCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFhUcmVlQ29tcG9uZW50LFxyXG4gICAgWExpbmtDb21wb25lbnQsXHJcbiAgICBYQ3J1bWJDb21wb25lbnQsXHJcbiAgICBYSWNvbkNvbXBvbmVudCxcclxuICAgIFhMb2FkaW5nQ29tcG9uZW50LFxyXG4gICAgWEhpZ2hsaWdodENvbXBvbmVudFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUtZmlsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdHJlZS1maWxlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFRyZWVGaWxlQ29tcG9uZW50IGV4dGVuZHMgWFRyZWVGaWxlUHJvcGVydHkge1xyXG4gIGFjdGl2YXRlZE5vZGU/OiBYVHJlZUZpbGVOb2RlO1xyXG4gIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICB0aW1lITogbnVtYmVyO1xyXG4gIHRpbWVvdXQ6IG51bWJlciA9IDIwMDtcclxuXHJcbiAgZ2V0IGNhdGFsb2dIZWlnaHQoKSB7XHJcbiAgICByZXR1cm4gTnVtYmVyKHRoaXMubWF4SGVpZ2h0KTtcclxuICB9XHJcblxyXG4gIGdldCBjb2RlSGVpZ2h0KCkge1xyXG4gICAgcmV0dXJuIE51bWJlcih0aGlzLm1heEhlaWdodCkgLSAoQm9vbGVhbih0aGlzLnNob3dDcnVtYikgPyAxLjUgOiAwKTtcclxuICB9XHJcblxyXG4gIGdldCBnZXRDcnVtYkRhdGEoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hY3RpdmF0ZWROb2RlPy5jcnVtYkRhdGEgYXMgWENydW1iTm9kZVtdO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGdldEhpZ2hsaWdodExpbmVzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWN0aXZhdGVkTm9kZT8uaGlnaGxpZ2h0TGluZXMgYXMgWEhpZ2hsaWdodExpbmVzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIHByaXZhdGUgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50LCB7IG9wdGlvbmFsOiB0cnVlIH0pITtcclxuICBjb25maWdTZXJ2aWNlID0gaW5qZWN0KFhDb25maWdTZXJ2aWNlKTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAoIXRoaXMuaHR0cCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgYCR7WFRyZWVGaWxlUHJlZml4fTogTm90IGZvdW5kICdIdHRwQ2xpZW50JywgWW91IGNhbiBpbXBvcnQgJ0h0dHBDbGllbnRNb2R1bGUnIGluIHlvdXIgcm9vdCBtb2R1bGUuYFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnNob3dUcmVlICYmIHRoaXMuYWN0aXZhdGVkSWQpIHtcclxuICAgICAgdGhpcy5jYXRhbG9nQ2hhbmdlKCh0aGlzLmRhdGEgYXMgWFRyZWVGaWxlTm9kZVtdKS5maW5kKCh4KSA9PiB4LmlkID09IHRoaXMuYWN0aXZhdGVkSWQpIGFzIFhUcmVlRmlsZU5vZGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2F0YWxvZ0NoYW5nZShub2RlOiBYVHJlZUZpbGVOb2RlKSB7XHJcbiAgICBpZiAoIW5vZGU/LmxlYWYgJiYgdGhpcy5zaG93VHJlZSkgcmV0dXJuO1xyXG4gICAgaWYgKG5vZGUudXJsICYmICFub2RlLmNvbnRlbnRMb2FkZWQpIHtcclxuICAgICAgdGhpcy50aW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgdGhpcy5hY3RpdmF0ZWROb2RlID0gbm9kZTtcclxuICAgICAgdGhpcy5zZXROb2RlKG5vZGUpO1xyXG4gICAgICBub2RlLnVybCA9IG5vZGUudXJsPy5pbmRleE9mKHRoaXMuZG9tYWluKSA9PT0gMCA/IG5vZGUudXJsIDogYCR7dGhpcy5kb21haW59LyR7bm9kZS51cmx9YDtcclxuICAgICAgc3dpdGNoIChub2RlLmZpbGVUeXBlKSB7XHJcbiAgICAgICAgY2FzZSAnY29kZSc6XHJcbiAgICAgICAgICB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLmdldChub2RlLnVybCwgeyByZXNwb25zZVR5cGU6ICd0ZXh0JyB9KVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICBkZWxheShcclxuICAgICAgICAgICAgICAgIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gdGhpcy50aW1lID4gdGhpcy50aW1lb3V0ID8gMCA6IHRoaXMudGltZW91dCAtIG5ldyBEYXRlKCkuZ2V0VGltZSgpICsgdGhpcy50aW1lXHJcbiAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICAgICAgICBub2RlLmNvbnRlbnQgPSB4O1xyXG4gICAgICAgICAgICAgIG5vZGUuY29udGVudExvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2ltZyc6XHJcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5hY3RpdmF0ZWROb2RlID0gbm9kZTtcclxuICAgICAgdGhpcy5zZXROb2RlKHRoaXMuYWN0aXZhdGVkTm9kZSk7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldE5vZGUobm9kZTogWFRyZWVGaWxlTm9kZSkge1xyXG4gICAgaWYgKCFub2RlLnR5cGUpIHtcclxuICAgICAgbm9kZS50eXBlID0gJ2Jhc2gnO1xyXG4gICAgfVxyXG4gICAgaWYgKCFub2RlLmZpbGVUeXBlKSB7XHJcbiAgICAgIG5vZGUuZmlsZVR5cGUgPSBYVHJlZUZpbGVJbWdzLmluZGV4T2YoKG5vZGUudHlwZSBhcyBzdHJpbmcpLnRvTG93ZXJDYXNlKCkpICE9PSAtMSA/ICdpbWcnIDogJ2NvZGUnO1xyXG4gICAgfVxyXG4gICAgaWYgKCFub2RlLmNydW1iRGF0YSkge1xyXG4gICAgICBub2RlLmNydW1iRGF0YSA9IHRoaXMuc2V0Q3VybWJEYXRhKG5vZGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW1nT25sb2FkKCkge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRDdXJtYkRhdGEobm9kZTogWFRyZWVGaWxlTm9kZSkge1xyXG4gICAgbGV0IGNydW1iRGF0YTogWENydW1iTm9kZVtdID0gW3sgaWQ6IG5vZGUuaWQsIGxhYmVsOiBub2RlLmxhYmVsIH1dO1xyXG4gICAgY29uc3QgZ2V0UGFyZW50ID0gKGNoaWxkOiBYVHJlZUZpbGVOb2RlKSA9PiB7XHJcbiAgICAgIGlmIChYSXNFbXB0eShjaGlsZC5waWQpKSByZXR1cm47XHJcbiAgICAgIGNvbnN0IHBhcmVudCA9ICh0aGlzLmRhdGEgYXMgWFRyZWVGaWxlTm9kZVtdKS5maW5kKCh4KSA9PiB4LmlkID09PSBjaGlsZC5waWQpIGFzIFhUcmVlRmlsZU5vZGU7XHJcbiAgICAgIGlmICghWElzRW1wdHkocGFyZW50KSkge1xyXG4gICAgICAgIGNydW1iRGF0YSA9IFt7IGlkOiBwYXJlbnQuaWQsIGxhYmVsOiBwYXJlbnQubGFiZWwgfSwgLi4uY3J1bWJEYXRhXTtcclxuICAgICAgICBnZXRQYXJlbnQocGFyZW50KTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIGdldFBhcmVudChub2RlKTtcclxuXHJcbiAgICByZXR1cm4gY3J1bWJEYXRhO1xyXG4gIH1cclxuXHJcbiAgbWVudVRvZ2dsZSgpIHtcclxuICAgIHRoaXMudG9nZ2xlID0gIXRoaXMudG9nZ2xlO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICN0cmVlRmlsZSBjbGFzcz1cIngtdHJlZS1maWxlXCIgW25nQ2xhc3NdPVwiY2xhc3NNYXBcIiBbY2xhc3MueC10cmVlLWZpbGUtdG9nZ2xlXT1cInRvZ2dsZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LXRyZWUtZmlsZS1jYXRhbG9nXCIgW3N0eWxlLm1heC1oZWlnaHQucmVtXT1cImNhdGFsb2dIZWlnaHRcIiAqbmdJZj1cInNob3dUcmVlXCI+XHJcbiAgICA8eC10cmVlXHJcbiAgICAgIFtkYXRhXT1cImRhdGFcIlxyXG4gICAgICAoYWN0aXZhdGVkQ2hhbmdlKT1cImNhdGFsb2dDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIG5vZGVPcGVuXHJcbiAgICAgIFtleHBhbmRlZEFsbF09XCJleHBhbmRlZEFsbFwiXHJcbiAgICAgIFtleHBhbmRlZExldmVsXT1cImV4cGFuZGVkTGV2ZWxcIlxyXG4gICAgICBbZXhwYW5kZWRdPVwiZXhwYW5kZWRcIlxyXG4gICAgICBbc3BhY2luZ109XCJzcGFjaW5nXCJcclxuICAgICAgW2FjdGl2YXRlZElkXT1cImFjdGl2YXRlZElkXCJcclxuICAgID48L3gtdHJlZT5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwieC10cmVlLWZpbGUtYm9keVwiIFt4LWxvYWRpbmddPVwibG9hZGluZ1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cIngtdHJlZS1maWxlLWNydW1iXCIgKm5nSWY9XCJzaG93Q3J1bWJcIj5cclxuICAgICAgPHgtbGluayBpY29uPVwiZnRvLW1lbnVcIiAqbmdJZj1cInNob3dUb2dnbGUgJiYgc2hvd1RyZWVcIiAoY2xpY2spPVwibWVudVRvZ2dsZSgpXCI+PC94LWxpbms+XHJcbiAgICAgIDx4LWNydW1iIFtkYXRhXT1cImdldENydW1iRGF0YVwiIFtzZXBhcmF0b3JdPVwic2VwYXJhdG9yVHBsXCI+PC94LWNydW1iPlxyXG4gICAgICA8bmctdGVtcGxhdGUgI3NlcGFyYXRvclRwbD5cclxuICAgICAgICA8eC1pY29uIHR5cGU9XCJmdG8tY2hldnJvbi1yaWdodFwiPjwveC1pY29uPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC10cmVlLWZpbGUtY29udGVudFwiIFtzdHlsZS5tYXgtaGVpZ2h0LnJlbV09XCJjb2RlSGVpZ2h0XCIgW25nU3dpdGNoXT1cImFjdGl2YXRlZE5vZGU/LmZpbGVUeXBlXCI+XHJcbiAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidpbWcnXCIgY2xhc3M9XCJ4LXRyZWUtZmlsZS1pbWdcIj48aW1nIFtzcmNdPVwiYWN0aXZhdGVkTm9kZT8udXJsXCIgKGxvYWQpPVwiaW1nT25sb2FkKClcIi8+PC9kaXY+XHJcbiAgICAgIDx4LWhpZ2hsaWdodFxyXG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInY29kZSdcIlxyXG4gICAgICAgIFt0eXBlXT1cImFjdGl2YXRlZE5vZGU/LnR5cGVcIlxyXG4gICAgICAgIFtkYXRhXT1cImFjdGl2YXRlZE5vZGU/LmNvbnRlbnRcIlxyXG4gICAgICAgIFtoaWdobGlnaHRMaW5lc109XCJnZXRIaWdobGlnaHRMaW5lc1wiXHJcbiAgICAgID48L3gtaGlnaGxpZ2h0PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1maWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RyZWUtZmlsZS90cmVlLWZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdHJlZS1maWxlL3RyZWUtZmlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFpQixhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sbUJBQW1CLENBQUM7QUFDaEUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQW1CLE1BQU0sdUJBQXVCLENBQUM7QUFDN0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQW1CbEQsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGlCQUFpQjtJQWpCekQ7O1FBbUJFLFlBQU8sR0FBWSxLQUFL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Y0FBYyxtREFDZCxlQUFlLG9EQUNmLGNBQWMsbURBQ2QsaUJBQWlCLG1FQUNqQixtQkFBbUI7OzJGQU9WLGtCQUFrQjtrQkFqQjlCLFNBQVM7K0JBQ0UsR0FBRyxlQUFlLEVBQUUsY0FDbEIsSUFBSSxXQUNQO3dCQUNQLE9BQU87d0JBQ1AsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLG1CQUFtQjtxQkFDcEIsaUJBR2MsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24sIENoYW5nZURldGVjdG9yUmVmLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhUcmVlRmlsZVByZWZpeCwgWFRyZWVGaWxlUHJvcGVydHksIFhUcmVlRmlsZU5vZGUsIFhUcmVlRmlsZUltZ3MgfSBmcm9tICcuL3RyZWUtZmlsZS5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IFhJc0VtcHR5LCBYQ29uZmlnU2VydmljZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBYQ3J1bWJDb21wb25lbnQsIFhDcnVtYk5vZGUgfSBmcm9tICdAbmctbmVzdC91aS9jcnVtYic7XHJcbmltcG9ydCB7IGRlbGF5LCBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgWEhpZ2hsaWdodENvbXBvbmVudCwgWEhpZ2hsaWdodExpbmVzIH0gZnJvbSAnQG5nLW5lc3QvdWkvaGlnaGxpZ2h0JztcclxuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFhJY29uQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaWNvbic7XHJcbmltcG9ydCB7IFhMaW5rQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvbGluayc7XHJcbmltcG9ydCB7IFhMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvbG9hZGluZyc7XHJcbmltcG9ydCB7IFhUcmVlQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvdHJlZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFRyZWVGaWxlUHJlZml4fWAsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBOZ0NsYXNzLFxyXG4gICAgWFRyZWVDb21wb25lbnQsXHJcbiAgICBYTGlua0NvbXBvbmVudCxcclxuICAgIFhDcnVtYkNvbXBvbmVudCxcclxuICAgIFhJY29uQ29tcG9uZW50LFxyXG4gICAgWExvYWRpbmdDb21wb25lbnQsXHJcbiAgICBYSGlnaGxpZ2h0Q29tcG9uZW50XHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vdHJlZS1maWxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90cmVlLWZpbGUuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYVHJlZUZpbGVDb21wb25lbnQgZXh0ZW5kcyBYVHJlZUZpbGVQcm9wZXJ0eSB7XHJcbiAgYWN0aXZhdGVkTm9kZT86IFhUcmVlRmlsZU5vZGU7XHJcbiAgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHRpbWUhOiBudW1iZXI7XHJcbiAgdGltZW91dDogbnVtYmVyID0gMjAwO1xyXG5cclxuICBnZXQgY2F0YWxvZ0hlaWdodCgpIHtcclxuICAgIHJldHVybiBOdW1iZXIodGhpcy5tYXhIZWlnaHQpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNvZGVIZWlnaHQoKSB7XHJcbiAgICByZXR1cm4gTnVtYmVyKHRoaXMubWF4SGVpZ2h0KSAtIChCb29sZWFuKHRoaXMuc2hvd0NydW1iKSA/IDEuNSA6IDApO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGdldENydW1iRGF0YSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFjdGl2YXRlZE5vZGU/LmNydW1iRGF0YSBhcyBYQ3J1bWJOb2RlW107XHJcbiAgfVxyXG5cclxuICBnZXQgZ2V0SGlnaGxpZ2h0TGluZXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hY3RpdmF0ZWROb2RlPy5oaWdobGlnaHRMaW5lcyBhcyBYSGlnaGxpZ2h0TGluZXM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgcHJpdmF0ZSBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQsIHsgb3B0aW9uYWw6IHRydWUgfSkhO1xyXG4gIGNvbmZpZ1NlcnZpY2UgPSBpbmplY3QoWENvbmZpZ1NlcnZpY2UpO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICghdGhpcy5odHRwKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICBgJHtYVHJlZUZpbGVQcmVmaXh9OiBOb3QgZm91bmQgJ0h0dHBDbGllbnQnLCBZb3UgY2FuIGltcG9ydCAnSHR0cENsaWVudE1vZHVsZScgaW4geW91ciByb290IG1vZHVsZS5gXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuc2hvd1RyZWUgJiYgdGhpcy5hY3RpdmF0ZWRJZCkge1xyXG4gICAgICB0aGlzLmNhdGFsb2dDaGFuZ2UoKHRoaXMuZGF0YSBhcyBYVHJlZUZpbGVOb2RlW10pLmZpbmQoKHgpID0+IHguaWQgPT0gdGhpcy5hY3RpdmF0ZWRJZCkgYXMgWFRyZWVGaWxlTm9kZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjYXRhbG9nQ2hhbmdlKG5vZGU6IFhUcmVlRmlsZU5vZGUpIHtcclxuICAgIGlmICghbm9kZT8ubGVhZiAmJiB0aGlzLnNob3dUcmVlKSByZXR1cm47XHJcbiAgICBpZiAobm9kZS51cmwgJiYgIW5vZGUuY29udGVudExvYWRlZCkge1xyXG4gICAgICB0aGlzLnRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB0aGlzLmFjdGl2YXRlZE5vZGUgPSBub2RlO1xyXG4gICAgICB0aGlzLnNldE5vZGUobm9kZSk7XHJcbiAgICAgIG5vZGUudXJsID0gbm9kZS51cmw/LmluZGV4T2YodGhpcy5kb21haW4pID09PSAwID8gbm9kZS51cmwgOiBgJHt0aGlzLmRvbWFpbn0vJHtub2RlLnVybH1gO1xyXG4gICAgICBzd2l0Y2ggKG5vZGUuZmlsZVR5cGUpIHtcclxuICAgICAgICBjYXNlICdjb2RlJzpcclxuICAgICAgICAgIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0KG5vZGUudXJsLCB7IHJlc3BvbnNlVHlwZTogJ3RleHQnIH0pXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgIGRlbGF5KFxyXG4gICAgICAgICAgICAgICAgbmV3IERhdGUoKS5nZXRUaW1lKCkgLSB0aGlzLnRpbWUgPiB0aGlzLnRpbWVvdXQgPyAwIDogdGhpcy50aW1lb3V0IC0gbmV3IERhdGUoKS5nZXRUaW1lKCkgKyB0aGlzLnRpbWVcclxuICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgICAgICAgIG5vZGUuY29udGVudCA9IHg7XHJcbiAgICAgICAgICAgICAgbm9kZS5jb250ZW50TG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnaW1nJzpcclxuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmFjdGl2YXRlZE5vZGUgPSBub2RlO1xyXG4gICAgICB0aGlzLnNldE5vZGUodGhpcy5hY3RpdmF0ZWROb2RlKTtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0Tm9kZShub2RlOiBYVHJlZUZpbGVOb2RlKSB7XHJcbiAgICBpZiAoIW5vZGUudHlwZSkge1xyXG4gICAgICBub2RlLnR5cGUgPSAnYmFzaCc7XHJcbiAgICB9XHJcbiAgICBpZiAoIW5vZGUuZmlsZVR5cGUpIHtcclxuICAgICAgbm9kZS5maWxlVHlwZSA9IFhUcmVlRmlsZUltZ3MuaW5kZXhPZigobm9kZS50eXBlIGFzIHN0cmluZykudG9Mb3dlckNhc2UoKSkgIT09IC0xID8gJ2ltZycgOiAnY29kZSc7XHJcbiAgICB9XHJcbiAgICBpZiAoIW5vZGUuY3J1bWJEYXRhKSB7XHJcbiAgICAgIG5vZGUuY3J1bWJEYXRhID0gdGhpcy5zZXRDdXJtYkRhdGEobm9kZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbWdPbmxvYWQoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHNldEN1cm1iRGF0YShub2RlOiBYVHJlZUZpbGVOb2RlKSB7XHJcbiAgICBsZXQgY3J1bWJEYXRhOiBYQ3J1bWJOb2RlW10gPSBbeyBpZDogbm9kZS5pZCwgbGFiZWw6IG5vZGUubGFiZWwgfV07XHJcbiAgICBjb25zdCBnZXRQYXJlbnQgPSAoY2hpbGQ6IFhUcmVlRmlsZU5vZGUpID0+IHtcclxuICAgICAgaWYgKFhJc0VtcHR5KGNoaWxkLnBpZCkpIHJldHVybjtcclxuICAgICAgY29uc3QgcGFyZW50ID0gKHRoaXMuZGF0YSBhcyBYVHJlZUZpbGVOb2RlW10pLmZpbmQoKHgpID0+IHguaWQgPT09IGNoaWxkLnBpZCkgYXMgWFRyZWVGaWxlTm9kZTtcclxuICAgICAgaWYgKCFYSXNFbXB0eShwYXJlbnQpKSB7XHJcbiAgICAgICAgY3J1bWJEYXRhID0gW3sgaWQ6IHBhcmVudC5pZCwgbGFiZWw6IHBhcmVudC5sYWJlbCB9LCAuLi5jcnVtYkRhdGFdO1xyXG4gICAgICAgIGdldFBhcmVudChwYXJlbnQpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgZ2V0UGFyZW50KG5vZGUpO1xyXG5cclxuICAgIHJldHVybiBjcnVtYkRhdGE7XHJcbiAgfVxyXG5cclxuICBtZW51VG9nZ2xlKCkge1xyXG4gICAgdGhpcy50b2dnbGUgPSAhdGhpcy50b2dnbGU7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgI3RyZWVGaWxlIGNsYXNzPVwieC10cmVlLWZpbGVcIiBbbmdDbGFzc109XCJjbGFzc01hcFwiIFtjbGFzcy54LXRyZWUtZmlsZS10b2dnbGVdPVwidG9nZ2xlXCI+XHJcbiAgQGlmIChzaG93VHJlZSkge1xyXG4gICAgPGRpdiBjbGFzcz1cIngtdHJlZS1maWxlLWNhdGFsb2dcIiBbc3R5bGUubWF4LWhlaWdodC5yZW1dPVwiY2F0YWxvZ0hlaWdodFwiPlxyXG4gICAgICA8eC10cmVlXHJcbiAgICAgICAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICAgICAgKGFjdGl2YXRlZENoYW5nZSk9XCJjYXRhbG9nQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIG5vZGVPcGVuXHJcbiAgICAgICAgW2V4cGFuZGVkQWxsXT1cImV4cGFuZGVkQWxsXCJcclxuICAgICAgICBbZXhwYW5kZWRMZXZlbF09XCJleHBhbmRlZExldmVsXCJcclxuICAgICAgICBbZXhwYW5kZWRdPVwiZXhwYW5kZWRcIlxyXG4gICAgICAgIFtzcGFjaW5nXT1cInNwYWNpbmdcIlxyXG4gICAgICAgIFthY3RpdmF0ZWRJZF09XCJhY3RpdmF0ZWRJZFwiXHJcbiAgICAgID48L3gtdHJlZT5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuICA8ZGl2IGNsYXNzPVwieC10cmVlLWZpbGUtYm9keVwiIFt4LWxvYWRpbmddPVwibG9hZGluZ1wiPlxyXG4gICAgQGlmIChzaG93Q3J1bWIpIHtcclxuICAgICAgPGRpdiBjbGFzcz1cIngtdHJlZS1maWxlLWNydW1iXCI+XHJcbiAgICAgICAgQGlmIChzaG93VG9nZ2xlICYmIHNob3dUcmVlKSB7XHJcbiAgICAgICAgICA8eC1saW5rIGljb249XCJmdG8tbWVudVwiIChjbGljayk9XCJtZW51VG9nZ2xlKClcIj48L3gtbGluaz5cclxuICAgICAgICB9XHJcbiAgICAgICAgPHgtY3J1bWIgW2RhdGFdPVwiZ2V0Q3J1bWJEYXRhXCIgW3NlcGFyYXRvcl09XCJzZXBhcmF0b3JUcGxcIj48L3gtY3J1bWI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNzZXBhcmF0b3JUcGw+XHJcbiAgICAgICAgICA8eC1pY29uIHR5cGU9XCJmdG8tY2hldnJvbi1yaWdodFwiPjwveC1pY29uPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LXRyZWUtZmlsZS1jb250ZW50XCIgW3N0eWxlLm1heC1oZWlnaHQucmVtXT1cImNvZGVIZWlnaHRcIj5cclxuICAgICAgQHN3aXRjaCAoYWN0aXZhdGVkTm9kZT8uZmlsZVR5cGUpIHtcclxuICAgICAgICBAY2FzZSAoJ2ltZycpIHtcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ4LXRyZWUtZmlsZS1pbWdcIj48aW1nIFtzcmNdPVwiYWN0aXZhdGVkTm9kZT8udXJsXCIgKGxvYWQpPVwiaW1nT25sb2FkKClcIiAvPjwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgICAgICBAY2FzZSAoJ2NvZGUnKSB7XHJcbiAgICAgICAgICA8eC1oaWdobGlnaHRcclxuICAgICAgICAgICAgW3R5cGVdPVwiYWN0aXZhdGVkTm9kZT8udHlwZVwiXHJcbiAgICAgICAgICAgIFtkYXRhXT1cImFjdGl2YXRlZE5vZGU/LmNvbnRlbnRcIlxyXG4gICAgICAgICAgICBbaGlnaGxpZ2h0TGluZXNdPVwiZ2V0SGlnaGxpZ2h0TGluZXNcIlxyXG4gICAgICAgICAgPjwveC1oaWdobGlnaHQ+XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -2,11 +2,11 @@ import { NgModule } from '@angular/core';
2
2
  import { XTreeFileComponent } from './tree-file.component';
3
3
  import * as i0 from "@angular/core";
4
4
  export class XTreeFileModule {
5
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XTreeFileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.2", ngImport: i0, type: XTreeFileModule, imports: [XTreeFileComponent], exports: [XTreeFileComponent] }); }
7
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XTreeFileModule, imports: [XTreeFileComponent] }); }
5
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XTreeFileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.7", ngImport: i0, type: XTreeFileModule, imports: [XTreeFileComponent], exports: [XTreeFileComponent] }); }
7
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XTreeFileModule, imports: [XTreeFileComponent] }); }
8
8
  }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XTreeFileModule, decorators: [{
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XTreeFileModule, decorators: [{
10
10
  type: NgModule,
11
11
  args: [{
12
12
  exports: [XTreeFileComponent],
@@ -47,8 +47,8 @@ export class XTreeFileProperty extends XTreeProperty {
47
47
  */
48
48
  this.showCrumb = true;
49
49
  }
50
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XTreeFileProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
51
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: XTreeFileProperty, selector: "x-tree-file-property", inputs: { data: "data", domain: "domain", toggle: "toggle", showToggle: "showToggle", showTree: "showTree", showCrumb: "showCrumb", maxHeight: "maxHeight", spacing: "spacing" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
50
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XTreeFileProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
51
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: XTreeFileProperty, selector: "x-tree-file-property", inputs: { data: "data", domain: "domain", toggle: "toggle", showToggle: "showToggle", showTree: "showTree", showCrumb: "showCrumb", maxHeight: "maxHeight", spacing: "spacing" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
52
52
  }
53
53
  __decorate([
54
54
  XDataConvert()
@@ -73,7 +73,7 @@ __decorate([
73
73
  XWithConfig(X_CONFIG_NAME, 1),
74
74
  XInputNumber()
75
75
  ], XTreeFileProperty.prototype, "spacing", void 0);
76
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XTreeFileProperty, decorators: [{
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XTreeFileProperty, decorators: [{
77
77
  type: Component,
78
78
  args: [{ selector: `${XTreeFilePrefix}-property`, template: '' }]
79
79
  }], propDecorators: { data: [{
@@ -6,9 +6,7 @@ import { map, takeUntil } from 'rxjs/operators';
6
6
  import { XI18nService } from '@ng-nest/ui/i18n';
7
7
  import { XTreeComponent } from '@ng-nest/ui/tree';
8
8
  import { XEmptyComponent } from '@ng-nest/ui/empty';
9
- import { CommonModule } from '@angular/common';
10
9
  import * as i0 from "@angular/core";
11
- import * as i1 from "@angular/common";
12
10
  export class XTreeSelectPortalComponent {
13
11
  constructor() {
14
12
  this.selectAll = false;
@@ -88,12 +86,12 @@ export class XTreeSelectPortalComponent {
88
86
  onActive(num) {
89
87
  this.active = num;
90
88
  }
91
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XTreeSelectPortalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
92
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: XTreeSelectPortalComponent, isStandalone: true, selector: "x-tree-select-portal", host: { listeners: { "@x-connect-base-animation.done": "done($event)", "@x-connect-base-animation.start": "start($event)" }, properties: { "@x-connect-base-animation": "this.placement" } }, viewQueries: [{ propertyName: "tree", first: true, predicate: ["tree"], descendants: true }], ngImport: i0, template: "<div\r\n #treeSelectPortal\r\n class=\"x-tree-select-portal\"\r\n (click)=\"inputCom.inputFocus(); stopPropagation($event)\"\r\n [style.maxHeight]=\"portalMaxHeight\"\r\n>\r\n <!-- <x-list\r\n #list\r\n [data]=\"data\"\r\n [(ngModel)]=\"value\"\r\n (nodeClick)=\"nodeClick($event)\"\r\n (keyManagerChange)=\"onActive($event)\"\r\n (keyManagerTabOut)=\"onTabOut()\"\r\n (onSelectAll)=\"onSelectAll($event)\"\r\n checked\r\n [objectArray]=\"objectArray\"\r\n [multiple]=\"multiple\"\r\n [selectAll]=\"selectAll\"\r\n [selectAllText]=\"getSelectAllText\"\r\n [nodeTpl]=\"nodeTpl\"\r\n [scrollElement]=\"search ? scrollNull : treeSelectPortal\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [size]=\"size\"\r\n [heightAdaption]=\"treeSelectPortal\"\r\n ></x-list> -->\r\n <x-tree\r\n #tree\r\n [data]=\"data\"\r\n [labelTpl]=\"nodeTpl\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [scrollElement]=\"search ? scrollNull : treeSelectPortal\"\r\n [heightAdaption]=\"treeSelectPortal\"\r\n [expandedLevel]=\"expandedLevel\"\r\n [(activatedId)]=\"value\"\r\n (nodeClick)=\"nodeClick($event)\"\r\n [multiple]=\"multiple\"\r\n [allowManyActivated]=\"multiple\"\r\n [objectArray]=\"objectArray\"\r\n [keywordText]=\"keywordText\"\r\n [caseSensitive]=\"caseSensitive\"\r\n [onlyLeaf]=\"onlyLeaf\"\r\n [nodeOpen]=\"onlyLeaf\"\r\n ></x-tree>\r\n <x-empty *ngIf=\"isEmpty\"></x-empty>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-tree-select-portal{width:100%}.x-tree-select-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);width:100%;border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);position:relative;display:flex;flex-direction:column;background-color:var(--x-background);overflow:hidden auto;max-height:calc(calc(var(--x-font-size) + .875rem) * 6 + var(--x-border-width) * 7)}.x-tree-select-portal x-tree{width:100%}.x-tree-select-portal x-empty{margin:1rem;display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: XTreeComponent, selector: "x-tree" }, { kind: "component", type: XEmptyComponent, selector: "x-empty" }], animations: [XConnectBaseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
89
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XTreeSelectPortalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
90
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.7", type: XTreeSelectPortalComponent, isStandalone: true, selector: "x-tree-select-portal", host: { listeners: { "@x-connect-base-animation.done": "done($event)", "@x-connect-base-animation.start": "start($event)" }, properties: { "@x-connect-base-animation": "this.placement" } }, viewQueries: [{ propertyName: "tree", first: true, predicate: ["tree"], descendants: true }], ngImport: i0, template: "<div\r\n #treeSelectPortal\r\n class=\"x-tree-select-portal\"\r\n (click)=\"inputCom.inputFocus(); stopPropagation($event)\"\r\n [style.maxHeight]=\"portalMaxHeight\"\r\n>\r\n <x-tree\r\n #tree\r\n [data]=\"data\"\r\n [labelTpl]=\"nodeTpl\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [scrollElement]=\"search ? scrollNull : treeSelectPortal\"\r\n [heightAdaption]=\"treeSelectPortal\"\r\n [expandedLevel]=\"expandedLevel\"\r\n [(activatedId)]=\"value\"\r\n (nodeClick)=\"nodeClick($event)\"\r\n [multiple]=\"multiple\"\r\n [allowManyActivated]=\"multiple\"\r\n [objectArray]=\"objectArray\"\r\n [keywordText]=\"keywordText\"\r\n [caseSensitive]=\"caseSensitive\"\r\n [onlyLeaf]=\"onlyLeaf\"\r\n [nodeOpen]=\"onlyLeaf\"\r\n ></x-tree>\r\n @if (isEmpty) {\r\n <x-empty></x-empty>\r\n }\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-tree-select-portal{width:100%}.x-tree-select-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);width:100%;border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);position:relative;display:flex;flex-direction:column;background-color:var(--x-background);overflow:hidden auto;max-height:calc(calc(var(--x-font-size) + .875rem) * 6 + var(--x-border-width) * 7)}.x-tree-select-portal x-tree{width:100%}.x-tree-select-portal x-empty{margin:1rem;display:block}\n"], dependencies: [{ kind: "component", type: XTreeComponent, selector: "x-tree" }, { kind: "component", type: XEmptyComponent, selector: "x-empty" }], animations: [XConnectBaseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
93
91
  }
94
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XTreeSelectPortalComponent, decorators: [{
92
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XTreeSelectPortalComponent, decorators: [{
95
93
  type: Component,
96
- args: [{ selector: `${XTreeSelectPortalPrefix}`, standalone: true, imports: [CommonModule, XTreeComponent, XEmptyComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XConnectBaseAnimation], template: "<div\r\n #treeSelectPortal\r\n class=\"x-tree-select-portal\"\r\n (click)=\"inputCom.inputFocus(); stopPropagation($event)\"\r\n [style.maxHeight]=\"portalMaxHeight\"\r\n>\r\n <!-- <x-list\r\n #list\r\n [data]=\"data\"\r\n [(ngModel)]=\"value\"\r\n (nodeClick)=\"nodeClick($event)\"\r\n (keyManagerChange)=\"onActive($event)\"\r\n (keyManagerTabOut)=\"onTabOut()\"\r\n (onSelectAll)=\"onSelectAll($event)\"\r\n checked\r\n [objectArray]=\"objectArray\"\r\n [multiple]=\"multiple\"\r\n [selectAll]=\"selectAll\"\r\n [selectAllText]=\"getSelectAllText\"\r\n [nodeTpl]=\"nodeTpl\"\r\n [scrollElement]=\"search ? scrollNull : treeSelectPortal\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [size]=\"size\"\r\n [heightAdaption]=\"treeSelectPortal\"\r\n ></x-list> -->\r\n <x-tree\r\n #tree\r\n [data]=\"data\"\r\n [labelTpl]=\"nodeTpl\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [scrollElement]=\"search ? scrollNull : treeSelectPortal\"\r\n [heightAdaption]=\"treeSelectPortal\"\r\n [expandedLevel]=\"expandedLevel\"\r\n [(activatedId)]=\"value\"\r\n (nodeClick)=\"nodeClick($event)\"\r\n [multiple]=\"multiple\"\r\n [allowManyActivated]=\"multiple\"\r\n [objectArray]=\"objectArray\"\r\n [keywordText]=\"keywordText\"\r\n [caseSensitive]=\"caseSensitive\"\r\n [onlyLeaf]=\"onlyLeaf\"\r\n [nodeOpen]=\"onlyLeaf\"\r\n ></x-tree>\r\n <x-empty *ngIf=\"isEmpty\"></x-empty>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-tree-select-portal{width:100%}.x-tree-select-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);width:100%;border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);position:relative;display:flex;flex-direction:column;background-color:var(--x-background);overflow:hidden auto;max-height:calc(calc(var(--x-font-size) + .875rem) * 6 + var(--x-border-width) * 7)}.x-tree-select-portal x-tree{width:100%}.x-tree-select-portal x-empty{margin:1rem;display:block}\n"] }]
94
+ args: [{ selector: `${XTreeSelectPortalPrefix}`, standalone: true, imports: [XTreeComponent, XEmptyComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XConnectBaseAnimation], template: "<div\r\n #treeSelectPortal\r\n class=\"x-tree-select-portal\"\r\n (click)=\"inputCom.inputFocus(); stopPropagation($event)\"\r\n [style.maxHeight]=\"portalMaxHeight\"\r\n>\r\n <x-tree\r\n #tree\r\n [data]=\"data\"\r\n [labelTpl]=\"nodeTpl\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [scrollElement]=\"search ? scrollNull : treeSelectPortal\"\r\n [heightAdaption]=\"treeSelectPortal\"\r\n [expandedLevel]=\"expandedLevel\"\r\n [(activatedId)]=\"value\"\r\n (nodeClick)=\"nodeClick($event)\"\r\n [multiple]=\"multiple\"\r\n [allowManyActivated]=\"multiple\"\r\n [objectArray]=\"objectArray\"\r\n [keywordText]=\"keywordText\"\r\n [caseSensitive]=\"caseSensitive\"\r\n [onlyLeaf]=\"onlyLeaf\"\r\n [nodeOpen]=\"onlyLeaf\"\r\n ></x-tree>\r\n @if (isEmpty) {\r\n <x-empty></x-empty>\r\n }\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-tree-select-portal{width:100%}.x-tree-select-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);width:100%;border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);position:relative;display:flex;flex-direction:column;background-color:var(--x-background);overflow:hidden auto;max-height:calc(calc(var(--x-font-size) + .875rem) * 6 + var(--x-border-width) * 7)}.x-tree-select-portal x-tree{width:100%}.x-tree-select-portal x-empty{margin:1rem;display:block}\n"] }]
97
95
  }], propDecorators: { placement: [{
98
96
  type: HostBinding,
99
97
  args: ['@x-connect-base-animation']
@@ -107,4 +105,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
107
105
  type: ViewChild,
108
106
  args: ['tree']
109
107
  }] } });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1zZWxlY3QtcG9ydGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RyZWUtc2VsZWN0L3RyZWUtc2VsZWN0LXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90cmVlLXNlbGVjdC90cmVlLXNlbGVjdC1wb3J0YWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUdqQixXQUFXLEVBQ1gsWUFBWSxFQUVaLFNBQVMsRUFDVCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFtQix1QkFBdUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xGLE9BQU8sRUFBbUIsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBWSxxQkFBcUIsRUFBRSxRQUFRLEVBQTZCLE1BQU0sa0JBQWtCLENBQUM7QUFDeEcsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsWUFBWSxFQUFtQixNQUFNLGtCQUFrQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFZL0MsTUFBTSxPQUFPLDBCQUEwQjtJQVZ2QztRQXlDRSxjQUFTLEdBQVksS0FBSyxDQUFDO1FBRTNCLFNBQUksR0FBWSxLQUFLLENBQUM7UUFDdEIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0Isa0JBQWEsR0FBWSxJQUFJLENBQUM7UUFDOUIsV0FBTSxHQUFX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Q0FBQyxNQUFNLGNBQ25DLENBQUMscUJBQXFCLENBQUM7OEJBR2MsU0FBUztzQkFBekQsV0FBVzt1QkFBQywyQkFBMkI7Z0JBQ29CLElBQUk7c0JBQS9ELFlBQVk7dUJBQUMsZ0NBQWdDLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBSUcsS0FBSztzQkFBakUsWUFBWTt1QkFBQyxpQ0FBaUMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFJeEMsSUFBSTtzQkFBdEIsU0FBUzt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgT25Jbml0LFxyXG4gIE9uRGVzdHJveSxcclxuICBIb3N0QmluZGluZyxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NoaWxkLFxyXG4gIGluamVjdFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYVHJlZVNlbGVjdE5vZGUsIFhUcmVlU2VsZWN0UG9ydGFsUHJlZml4IH0gZnJvbSAnLi90cmVlLXNlbGVjdC5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBYQm9vbGVhbiwgWENvbm5lY3RCYXNlQW5pbWF0aW9uLCBYSXNFbXB0eSwgWFBvc2l0aW9uVG9wQm90dG9tLCBYU2l6ZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgWElucHV0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaW5wdXQnO1xyXG5pbXBvcnQgeyBYSTE4blNlcnZpY2UsIFhJMThuVHJlZVNlbGVjdCB9IGZyb20gJ0BuZy1uZXN0L3VpL2kxOG4nO1xyXG5pbXBvcnQgeyBYVHJlZUNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3RyZWUnO1xyXG5pbXBvcnQgeyBYRW1wdHlDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9lbXB0eSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFRyZWVTZWxlY3RQb3J0YWxQcmVmaXh9YCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFhUcmVlQ29tcG9uZW50LCBYRW1wdHlDb21wb25lbnRdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVlLXNlbGVjdC1wb3J0YWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RyZWUtc2VsZWN0LXBvcnRhbC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgYW5pbWF0aW9uczogW1hDb25uZWN0QmFzZUFuaW1hdGlvbl1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhUcmVlU2VsZWN0UG9ydGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBIb3N0QmluZGluZygnQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbicpIHB1YmxpYyBwbGFjZW1lbnQhOiBYUG9zaXRpb25Ub3BCb3R0b207XHJcbiAgQEhvc3RMaXN0ZW5lcignQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbi5kb25lJywgWyckZXZlbnQnXSkgZG9uZShldmVudDogeyB0b1N0YXRlOiBhbnkgfSkge1xyXG4gICAgdGhpcy5hbmltYXRpbmcoZmFsc2UpO1xyXG4gICAgZXZlbnQudG9TdGF0ZSA9PT0gJ3ZvaWQnICYmIHRoaXMuZGVzdHJveVBvcnRhbCgpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uLnN0YXJ0JywgWyckZXZlbnQnXSkgc3RhcnQoKSB7XHJcbiAgICB0aGlzLmFuaW1hdGluZyh0cnVlKTtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3RyZWUnKSB0cmVlITogWFRyZWVDb21wb25lbnQ7XHJcbiAgLy8gQFZpZXdDaGlsZCgnbGlzdCcpIGxpc3QhOiBYTGlzdENvbXBvbmVudDtcclxuICBnZXQgaXNFbXB0eSgpIHtcclxuICAgIHJldHVybiBYSXNFbXB0eSh0aGlzLmRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZGF0YSE6IFhUcmVlU2VsZWN0Tm9kZVtdO1xyXG4gIHZhbHVlOiBhbnk7XHJcbiAgdmFsdWVDaGFuZ2UhOiBTdWJqZWN0PGFueT47XHJcbiAgcG9zaXRpb25DaGFuZ2UhOiBTdWJqZWN0PGFueT47XHJcbiAgaW5wdXRDaGFuZ2UhOiBTdWJqZWN0PGFueT47XHJcbiAgZGF0YUNoYW5nZSE6IEJlaGF2aW9yU3ViamVjdDxYVHJlZVNlbGVjdE5vZGVbXT47XHJcbiAgYW5pbWF0aW5nITogRnVuY3Rpb247XHJcbiAgYWN0aXZlQ2hhbmdlITogRnVuY3Rpb247XHJcbiAgZGVzdHJveVBvcnRhbCE6IEZ1bmN0aW9uO1xyXG4gIGNsb3NlU3ViamVjdCE6IFN1YmplY3Q8dm9pZD47XHJcbiAga2V5ZG93blN1YmplY3QhOiBTdWJqZWN0PEtleWJvYXJkRXZlbnQ+O1xyXG4gIHNlYXJjaFN1YmplY3QhOiBCZWhhdmlvclN1YmplY3Q8YW55PjtcclxuICBub2RlRW1pdCE6IEZ1bmN0aW9uO1xyXG4gIHNlbGVjdEFsbEVtaXQhOiBGdW5jdGlvbjtcclxuICBtdWx0aXBsZSE6IFhCb29sZWFuO1xyXG4gIHNlbGVjdEFsbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG5vZGVUcGwhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIHNob3c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBvYmplY3RBcnJheTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNhc2VTZW5zaXRpdmU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGFjdGl2ZTogbnVtYmVyID0gLTE7XHJcbiAgaW5wdXRDb20hOiBYSW5wdXRDb21wb25lbnQ7XHJcbiAgcG9ydGFsTWF4SGVpZ2h0ID0gJyc7XHJcbiAgc2VsZWN0QWxsVGV4dCE6IHN0cmluZztcclxuICBsb2NhbGU6IFhJMThuVHJlZVNlbGVjdCA9IHt9O1xyXG4gIHNlYXJjaDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNjcm9sbE51bGwgPSB1bmRlZmluZWQ7XHJcbiAgdmlydHVhbFNjcm9sbCE6IFhCb29sZWFuO1xyXG4gIHNpemUhOiBYU2l6ZTtcclxuICBvbmx5TGVhZiE6IFhCb29sZWFuO1xyXG4gIGV4cGFuZGVkTGV2ZWwhOiBudW1iZXI7XHJcbiAga2V5d29yZFRleHQhOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgZ2V0IGdldFNlbGVjdEFsbFRleHQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RBbGxUZXh0IHx8IHRoaXMubG9jYWxlLnNlbGVjdEFsbFRleHQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KFhJMThuU2VydmljZSk7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHg7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5wb3NpdGlvbkNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy5wbGFjZW1lbnQgPSB4O1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGF0YUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy5kYXRhID0geDtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmNsb3NlU3ViamVjdC5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAvLyB0aGlzLnRyZWUuc2V0VW5BY3RpdmUodGhpcy5hY3RpdmUpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmtleWRvd25TdWJqZWN0LnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoX3gpID0+IHtcclxuICAgICAgLy8gdGhpcy50cmVlLmtleWRvd24oeCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuaW5wdXRDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMua2V5d29yZFRleHQgPSB4O1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmkxOG4ubG9jYWxlQ2hhbmdlXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoeCkgPT4geC50cmVlU2VsZWN0IGFzIFhJMThuVHJlZVNlbGVjdCksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2NhbGUgPSB4O1xyXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgc3RvcFByb3BhZ2F0aW9uKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBub2RlQ2xpY2sobm9kZTogWFRyZWVTZWxlY3ROb2RlKSB7XHJcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICB0aGlzLm5vZGVFbWl0KG5vZGUsIHRoaXMudmFsdWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5ub2RlRW1pdChub2RlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU2VsZWN0QWxsKF9pc1NlbGVjdEFsbDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5ub2RlRW1pdChudWxsLCB0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIG9uQWN0aXZlKG51bTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmFjdGl2ZSA9IG51bTtcclxuICB9XHJcblxyXG4gIC8vIG9uVGFiT3V0KCkge1xyXG4gIC8vICAgdGhpcy5jbG9zZVN1YmplY3QubmV4dCgpO1xyXG4gIC8vIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgI3RyZWVTZWxlY3RQb3J0YWxcclxuICBjbGFzcz1cIngtdHJlZS1zZWxlY3QtcG9ydGFsXCJcclxuICAoY2xpY2spPVwiaW5wdXRDb20uaW5wdXRGb2N1cygpOyBzdG9wUHJvcGFnYXRpb24oJGV2ZW50KVwiXHJcbiAgW3N0eWxlLm1heEhlaWdodF09XCJwb3J0YWxNYXhIZWlnaHRcIlxyXG4+XHJcbiAgPCEtLSA8eC1saXN0XHJcbiAgICAjbGlzdFxyXG4gICAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgIChub2RlQ2xpY2spPVwibm9kZUNsaWNrKCRldmVudClcIlxyXG4gICAgKGtleU1hbmFnZXJDaGFuZ2UpPVwib25BY3RpdmUoJGV2ZW50KVwiXHJcbiAgICAoa2V5TWFuYWdlclRhYk91dCk9XCJvblRhYk91dCgpXCJcclxuICAgIChvblNlbGVjdEFsbCk9XCJvblNlbGVjdEFsbCgkZXZlbnQpXCJcclxuICAgIGNoZWNrZWRcclxuICAgIFtvYmplY3RBcnJheV09XCJvYmplY3RBcnJheVwiXHJcbiAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxyXG4gICAgW3NlbGVjdEFsbF09XCJzZWxlY3RBbGxcIlxyXG4gICAgW3NlbGVjdEFsbFRleHRdPVwiZ2V0U2VsZWN0QWxsVGV4dFwiXHJcbiAgICBbbm9kZVRwbF09XCJub2RlVHBsXCJcclxuICAgIFtzY3JvbGxFbGVtZW50XT1cInNlYXJjaCA/IHNjcm9sbE51bGwgOiB0cmVlU2VsZWN0UG9ydGFsXCJcclxuICAgIFt2aXJ0dWFsU2Nyb2xsXT1cInZpcnR1YWxTY3JvbGxcIlxyXG4gICAgW3NpemVdPVwic2l6ZVwiXHJcbiAgICBbaGVpZ2h0QWRhcHRpb25dPVwidHJlZVNlbGVjdFBvcnRhbFwiXHJcbiAgPjwveC1saXN0PiAtLT5cclxuICA8eC10cmVlXHJcbiAgICAjdHJlZVxyXG4gICAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICBbbGFiZWxUcGxdPVwibm9kZVRwbFwiXHJcbiAgICBbdmlydHVhbFNjcm9sbF09XCJ2aXJ0dWFsU2Nyb2xsXCJcclxuICAgIFtzY3JvbGxFbGVtZW50XT1cInNlYXJjaCA/IHNjcm9sbE51bGwgOiB0cmVlU2VsZWN0UG9ydGFsXCJcclxuICAgIFtoZWlnaHRBZGFwdGlvbl09XCJ0cmVlU2VsZWN0UG9ydGFsXCJcclxuICAgIFtleHBhbmRlZExldmVsXT1cImV4cGFuZGVkTGV2ZWxcIlxyXG4gICAgWyhhY3RpdmF0ZWRJZCldPVwidmFsdWVcIlxyXG4gICAgKG5vZGVDbGljayk9XCJub2RlQ2xpY2soJGV2ZW50KVwiXHJcbiAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxyXG4gICAgW2FsbG93TWFueUFjdGl2YXRlZF09XCJtdWx0aXBsZVwiXHJcbiAgICBbb2JqZWN0QXJyYXldPVwib2JqZWN0QXJyYXlcIlxyXG4gICAgW2tleXdvcmRUZXh0XT1cImtleXdvcmRUZXh0XCJcclxuICAgIFtjYXNlU2Vuc2l0aXZlXT1cImNhc2VTZW5zaXRpdmVcIlxyXG4gICAgW29ubHlMZWFmXT1cIm9ubHlMZWFmXCJcclxuICAgIFtub2RlT3Blbl09XCJvbmx5TGVhZlwiXHJcbiAgPjwveC10cmVlPlxyXG4gIDx4LWVtcHR5ICpuZ0lmPVwiaXNFbXB0eVwiPjwveC1lbXB0eT5cclxuPC9kaXY+XHJcbiJdfQ==
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1zZWxlY3QtcG9ydGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RyZWUtc2VsZWN0L3RyZWUtc2VsZWN0LXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90cmVlLXNlbGVjdC90cmVlLXNlbGVjdC1wb3J0YWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUdqQixXQUFXLEVBQ1gsWUFBWSxFQUVaLFNBQVMsRUFDVCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFtQix1QkFBdUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xGLE9BQU8sRUFBbUIsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBWSxxQkFBcUIsRUFBRSxRQUFRLEVBQTZCLE1BQU0sa0JBQWtCLENBQUM7QUFDeEcsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsWUFBWSxFQUFtQixNQUFNLGtCQUFrQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBWXBELE1BQU0sT0FBTywwQkFBMEI7SUFWdkM7UUF5Q0UsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUUzQixTQUFJLEdBQVksS0FBSyxDQUFDO1FBQ3RCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLGtCQUFhLEdBQVksSUFBSSxDQUFDO1FBQzlCLFdBQU0sR0FBVyxDQUFDLENBQUMsQ0FBQztRQUVwQixvQkFBZSxHQUFHLEVBQUUsQ0FBQztR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MkI7Z0JBQ29CLElBQUk7c0JBQS9ELFlBQVk7dUJBQUMsZ0NBQWdDLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBSUcsS0FBSztzQkFBakUsWUFBWTt1QkFBQyxpQ0FBaUMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFJeEMsSUFBSTtzQkFBdEIsU0FBUzt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgT25Jbml0LFxyXG4gIE9uRGVzdHJveSxcclxuICBIb3N0QmluZGluZyxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NoaWxkLFxyXG4gIGluamVjdFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYVHJlZVNlbGVjdE5vZGUsIFhUcmVlU2VsZWN0UG9ydGFsUHJlZml4IH0gZnJvbSAnLi90cmVlLXNlbGVjdC5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBYQm9vbGVhbiwgWENvbm5lY3RCYXNlQW5pbWF0aW9uLCBYSXNFbXB0eSwgWFBvc2l0aW9uVG9wQm90dG9tLCBYU2l6ZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgWElucHV0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaW5wdXQnO1xyXG5pbXBvcnQgeyBYSTE4blNlcnZpY2UsIFhJMThuVHJlZVNlbGVjdCB9IGZyb20gJ0BuZy1uZXN0L3VpL2kxOG4nO1xyXG5pbXBvcnQgeyBYVHJlZUNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3RyZWUnO1xyXG5pbXBvcnQgeyBYRW1wdHlDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9lbXB0eSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFRyZWVTZWxlY3RQb3J0YWxQcmVmaXh9YCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtYVHJlZUNvbXBvbmVudCwgWEVtcHR5Q29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vdHJlZS1zZWxlY3QtcG9ydGFsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90cmVlLXNlbGVjdC1wb3J0YWwuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGFuaW1hdGlvbnM6IFtYQ29ubmVjdEJhc2VBbmltYXRpb25dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYVHJlZVNlbGVjdFBvcnRhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASG9zdEJpbmRpbmcoJ0B4LWNvbm5lY3QtYmFzZS1hbmltYXRpb24nKSBwdWJsaWMgcGxhY2VtZW50ITogWFBvc2l0aW9uVG9wQm90dG9tO1xyXG4gIEBIb3N0TGlzdGVuZXIoJ0B4LWNvbm5lY3QtYmFzZS1hbmltYXRpb24uZG9uZScsIFsnJGV2ZW50J10pIGRvbmUoZXZlbnQ6IHsgdG9TdGF0ZTogYW55IH0pIHtcclxuICAgIHRoaXMuYW5pbWF0aW5nKGZhbHNlKTtcclxuICAgIGV2ZW50LnRvU3RhdGUgPT09ICd2b2lkJyAmJiB0aGlzLmRlc3Ryb3lQb3J0YWwoKTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbi5zdGFydCcsIFsnJGV2ZW50J10pIHN0YXJ0KCkge1xyXG4gICAgdGhpcy5hbmltYXRpbmcodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkKCd0cmVlJykgdHJlZSE6IFhUcmVlQ29tcG9uZW50O1xyXG4gIC8vIEBWaWV3Q2hpbGQoJ2xpc3QnKSBsaXN0ITogWExpc3RDb21wb25lbnQ7XHJcbiAgZ2V0IGlzRW1wdHkoKSB7XHJcbiAgICByZXR1cm4gWElzRW1wdHkodGhpcy5kYXRhKTtcclxuICB9XHJcblxyXG4gIGRhdGEhOiBYVHJlZVNlbGVjdE5vZGVbXTtcclxuICB2YWx1ZTogYW55O1xyXG4gIHZhbHVlQ2hhbmdlITogU3ViamVjdDxhbnk+O1xyXG4gIHBvc2l0aW9uQ2hhbmdlITogU3ViamVjdDxhbnk+O1xyXG4gIGlucHV0Q2hhbmdlITogU3ViamVjdDxhbnk+O1xyXG4gIGRhdGFDaGFuZ2UhOiBCZWhhdmlvclN1YmplY3Q8WFRyZWVTZWxlY3ROb2RlW10+O1xyXG4gIGFuaW1hdGluZyE6IEZ1bmN0aW9uO1xyXG4gIGFjdGl2ZUNoYW5nZSE6IEZ1bmN0aW9uO1xyXG4gIGRlc3Ryb3lQb3J0YWwhOiBGdW5jdGlvbjtcclxuICBjbG9zZVN1YmplY3QhOiBTdWJqZWN0PHZvaWQ+O1xyXG4gIGtleWRvd25TdWJqZWN0ITogU3ViamVjdDxLZXlib2FyZEV2ZW50PjtcclxuICBzZWFyY2hTdWJqZWN0ITogQmVoYXZpb3JTdWJqZWN0PGFueT47XHJcbiAgbm9kZUVtaXQhOiBGdW5jdGlvbjtcclxuICBzZWxlY3RBbGxFbWl0ITogRnVuY3Rpb247XHJcbiAgbXVsdGlwbGUhOiBYQm9vbGVhbjtcclxuICBzZWxlY3RBbGw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBub2RlVHBsITogVGVtcGxhdGVSZWY8YW55PjtcclxuICBzaG93OiBib29sZWFuID0gZmFsc2U7XHJcbiAgb2JqZWN0QXJyYXk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjYXNlU2Vuc2l0aXZlOiBib29sZWFuID0gdHJ1ZTtcclxuICBhY3RpdmU6IG51bWJlciA9IC0xO1xyXG4gIGlucHV0Q29tITogWElucHV0Q29tcG9uZW50O1xyXG4gIHBvcnRhbE1heEhlaWdodCA9ICcnO1xyXG4gIHNlbGVjdEFsbFRleHQhOiBzdHJpbmc7XHJcbiAgbG9jYWxlOiBYSTE4blRyZWVTZWxlY3QgPSB7fTtcclxuICBzZWFyY2g6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzY3JvbGxOdWxsID0gdW5kZWZpbmVkO1xyXG4gIHZpcnR1YWxTY3JvbGwhOiBYQm9vbGVhbjtcclxuICBzaXplITogWFNpemU7XHJcbiAgb25seUxlYWYhOiBYQm9vbGVhbjtcclxuICBleHBhbmRlZExldmVsITogbnVtYmVyO1xyXG4gIGtleXdvcmRUZXh0ITogc3RyaW5nO1xyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIGdldCBnZXRTZWxlY3RBbGxUZXh0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0QWxsVGV4dCB8fCB0aGlzLmxvY2FsZS5zZWxlY3RBbGxUZXh0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIHByaXZhdGUgaTE4biA9IGluamVjdChYSTE4blNlcnZpY2UpO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB4O1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMucG9zaXRpb25DaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMucGxhY2VtZW50ID0geDtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRhdGFDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMuZGF0YSA9IHg7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5jbG9zZVN1YmplY3QucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgLy8gdGhpcy50cmVlLnNldFVuQWN0aXZlKHRoaXMuYWN0aXZlKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5rZXlkb3duU3ViamVjdC5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKF94KSA9PiB7XHJcbiAgICAgIC8vIHRoaXMudHJlZS5rZXlkb3duKHgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmlucHV0Q2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICB0aGlzLmtleXdvcmRUZXh0ID0geDtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5pMThuLmxvY2FsZUNoYW5nZVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHgpID0+IHgudHJlZVNlbGVjdCBhcyBYSTE4blRyZWVTZWxlY3QpLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9jYWxlID0geDtcclxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHN0b3BQcm9wYWdhdGlvbihldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgbm9kZUNsaWNrKG5vZGU6IFhUcmVlU2VsZWN0Tm9kZSkge1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy5ub2RlRW1pdChub2RlLCB0aGlzLnZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubm9kZUVtaXQobm9kZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdEFsbChfaXNTZWxlY3RBbGw6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMubm9kZUVtaXQobnVsbCwgdGhpcy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBvbkFjdGl2ZShudW06IG51bWJlcikge1xyXG4gICAgdGhpcy5hY3RpdmUgPSBudW07XHJcbiAgfVxyXG5cclxuICAvLyBvblRhYk91dCgpIHtcclxuICAvLyAgIHRoaXMuY2xvc2VTdWJqZWN0Lm5leHQoKTtcclxuICAvLyB9XHJcbn1cclxuIiwiPGRpdlxyXG4gICN0cmVlU2VsZWN0UG9ydGFsXHJcbiAgY2xhc3M9XCJ4LXRyZWUtc2VsZWN0LXBvcnRhbFwiXHJcbiAgKGNsaWNrKT1cImlucHV0Q29tLmlucHV0Rm9jdXMoKTsgc3RvcFByb3BhZ2F0aW9uKCRldmVudClcIlxyXG4gIFtzdHlsZS5tYXhIZWlnaHRdPVwicG9ydGFsTWF4SGVpZ2h0XCJcclxuPlxyXG4gIDx4LXRyZWVcclxuICAgICN0cmVlXHJcbiAgICBbZGF0YV09XCJkYXRhXCJcclxuICAgIFtsYWJlbFRwbF09XCJub2RlVHBsXCJcclxuICAgIFt2aXJ0dWFsU2Nyb2xsXT1cInZpcnR1YWxTY3JvbGxcIlxyXG4gICAgW3Njcm9sbEVsZW1lbnRdPVwic2VhcmNoID8gc2Nyb2xsTnVsbCA6IHRyZWVTZWxlY3RQb3J0YWxcIlxyXG4gICAgW2hlaWdodEFkYXB0aW9uXT1cInRyZWVTZWxlY3RQb3J0YWxcIlxyXG4gICAgW2V4cGFuZGVkTGV2ZWxdPVwiZXhwYW5kZWRMZXZlbFwiXHJcbiAgICBbKGFjdGl2YXRlZElkKV09XCJ2YWx1ZVwiXHJcbiAgICAobm9kZUNsaWNrKT1cIm5vZGVDbGljaygkZXZlbnQpXCJcclxuICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXHJcbiAgICBbYWxsb3dNYW55QWN0aXZhdGVkXT1cIm11bHRpcGxlXCJcclxuICAgIFtvYmplY3RBcnJheV09XCJvYmplY3RBcnJheVwiXHJcbiAgICBba2V5d29yZFRleHRdPVwia2V5d29yZFRleHRcIlxyXG4gICAgW2Nhc2VTZW5zaXRpdmVdPVwiY2FzZVNlbnNpdGl2ZVwiXHJcbiAgICBbb25seUxlYWZdPVwib25seUxlYWZcIlxyXG4gICAgW25vZGVPcGVuXT1cIm9ubHlMZWFmXCJcclxuICA+PC94LXRyZWU+XHJcbiAgQGlmIChpc0VtcHR5KSB7XHJcbiAgICA8eC1lbXB0eT48L3gtZW1wdHk+XHJcbiAgfVxyXG48L2Rpdj5cclxuIl19