@ng-nest/ui 13.1.9 → 14.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (995) hide show
  1. package/README.md +1 -1
  2. package/affix/affix.component.d.ts +1 -1
  3. package/affix/affix.property.d.ts +1 -1
  4. package/affix/{ng-nest-ui-affix.d.ts → index.d.ts} +0 -0
  5. package/alert/alert.component.d.ts +1 -1
  6. package/alert/alert.property.d.ts +1 -1
  7. package/alert/{ng-nest-ui-alert.d.ts → index.d.ts} +0 -0
  8. package/anchor/anchor.component.d.ts +1 -1
  9. package/anchor/anchor.property.d.ts +1 -1
  10. package/anchor/{ng-nest-ui-anchor.d.ts → index.d.ts} +0 -0
  11. package/api/api.component.d.ts +1 -1
  12. package/api/{ng-nest-ui-api.d.ts → index.d.ts} +0 -0
  13. package/auto-complete/auto-complete-portal.component.d.ts +1 -1
  14. package/auto-complete/auto-complete.component.d.ts +2 -2
  15. package/auto-complete/auto-complete.property.d.ts +1 -1
  16. package/auto-complete/{ng-nest-ui-auto-complete.d.ts → index.d.ts} +0 -0
  17. package/avatar/avatar.component.d.ts +1 -1
  18. package/avatar/avatar.property.d.ts +1 -1
  19. package/avatar/{ng-nest-ui-avatar.d.ts → index.d.ts} +0 -0
  20. package/back-top/back-top.component.d.ts +1 -1
  21. package/back-top/back-top.property.d.ts +1 -1
  22. package/back-top/{ng-nest-ui-back-top.d.ts → index.d.ts} +0 -0
  23. package/badge/badge.component.d.ts +1 -1
  24. package/badge/badge.property.d.ts +1 -1
  25. package/badge/{ng-nest-ui-badge.d.ts → index.d.ts} +0 -0
  26. package/base-form/base-form.component.d.ts +1 -1
  27. package/base-form/base-form.property.d.ts +1 -1
  28. package/base-form/{ng-nest-ui-base-form.d.ts → index.d.ts} +0 -0
  29. package/border/border.component.d.ts +1 -1
  30. package/border/{ng-nest-ui-border.d.ts → index.d.ts} +0 -0
  31. package/button/button.component.d.ts +1 -1
  32. package/button/button.property.d.ts +2 -2
  33. package/button/buttons.component.d.ts +1 -1
  34. package/button/{ng-nest-ui-button.d.ts → index.d.ts} +0 -0
  35. package/calendar/calendar.component.d.ts +1 -1
  36. package/calendar/calendar.property.d.ts +1 -1
  37. package/calendar/{ng-nest-ui-calendar.d.ts → index.d.ts} +0 -0
  38. package/card/card.component.d.ts +1 -1
  39. package/card/card.property.d.ts +1 -1
  40. package/card/{ng-nest-ui-card.d.ts → index.d.ts} +0 -0
  41. package/carousel/carousel-panel.component.d.ts +1 -1
  42. package/carousel/carousel.component.d.ts +1 -1
  43. package/carousel/carousel.property.d.ts +2 -2
  44. package/carousel/{ng-nest-ui-carousel.d.ts → index.d.ts} +0 -0
  45. package/cascade/cascade-portal.component.d.ts +1 -1
  46. package/cascade/cascade.component.d.ts +2 -3
  47. package/cascade/cascade.property.d.ts +1 -1
  48. package/cascade/{ng-nest-ui-cascade.d.ts → index.d.ts} +0 -0
  49. package/checkbox/checkbox.component.d.ts +1 -1
  50. package/checkbox/checkbox.property.d.ts +1 -1
  51. package/checkbox/{ng-nest-ui-checkbox.d.ts → index.d.ts} +0 -0
  52. package/collapse/collapse-panel.component.d.ts +1 -1
  53. package/collapse/collapse.component.d.ts +1 -1
  54. package/collapse/collapse.property.d.ts +2 -2
  55. package/collapse/{ng-nest-ui-collapse.d.ts → index.d.ts} +0 -0
  56. package/color/color.component.d.ts +1 -1
  57. package/color/color.property.d.ts +1 -1
  58. package/color/{ng-nest-ui-color.d.ts → index.d.ts} +0 -0
  59. package/color-picker/color-picker-portal.component.d.ts +1 -1
  60. package/color-picker/color-picker.component.d.ts +1 -1
  61. package/color-picker/color-picker.property.d.ts +1 -1
  62. package/color-picker/{ng-nest-ui-color-picker.d.ts → index.d.ts} +0 -0
  63. package/comment/comment-reply.component.d.ts +1 -1
  64. package/comment/comment.component.d.ts +1 -1
  65. package/comment/comment.property.d.ts +2 -2
  66. package/comment/{ng-nest-ui-comment.d.ts → index.d.ts} +0 -0
  67. package/container/aside.component.d.ts +1 -1
  68. package/container/container.component.d.ts +1 -1
  69. package/container/container.property.d.ts +4 -4
  70. package/container/footer.component.d.ts +1 -1
  71. package/container/header.component.d.ts +1 -1
  72. package/container/{ng-nest-ui-container.d.ts → index.d.ts} +0 -0
  73. package/container/main.component.d.ts +1 -1
  74. package/core/config/config.d.ts +3 -0
  75. package/core/config/config.service.d.ts +1 -1
  76. package/core/{ng-nest-ui-core.d.ts → index.d.ts} +0 -0
  77. package/crumb/crumb.component.d.ts +1 -1
  78. package/crumb/crumb.property.d.ts +1 -1
  79. package/crumb/{ng-nest-ui-crumb.d.ts → index.d.ts} +0 -0
  80. package/date-picker/date-picker-portal.component.d.ts +1 -1
  81. package/date-picker/date-picker.component.d.ts +1 -1
  82. package/date-picker/date-picker.property.d.ts +5 -5
  83. package/date-picker/date-range-portal.component.d.ts +1 -1
  84. package/date-picker/date-range.component.d.ts +1 -1
  85. package/date-picker/{ng-nest-ui-date-picker.d.ts → index.d.ts} +0 -0
  86. package/date-picker/picker-date.component.d.ts +1 -1
  87. package/date-picker/picker-month.component.d.ts +1 -1
  88. package/date-picker/picker-year.component.d.ts +1 -1
  89. package/description/description-item.component.d.ts +1 -1
  90. package/description/description.component.d.ts +1 -1
  91. package/description/description.property.d.ts +2 -2
  92. package/description/{ng-nest-ui-description.d.ts → index.d.ts} +0 -0
  93. package/dialog/dialog-container.component.d.ts +1 -1
  94. package/dialog/dialog-portal.component.d.ts +1 -1
  95. package/dialog/dialog-portal.directives.d.ts +6 -6
  96. package/dialog/dialog.component.d.ts +1 -1
  97. package/dialog/dialog.property.d.ts +2 -2
  98. package/dialog/{ng-nest-ui-dialog.d.ts → index.d.ts} +0 -0
  99. package/doc/doc.component.d.ts +1 -1
  100. package/doc/{ng-nest-ui-doc.d.ts → index.d.ts} +0 -0
  101. package/drawer/drawer-container.component.d.ts +1 -1
  102. package/drawer/drawer-portal.component.d.ts +1 -1
  103. package/drawer/drawer-portal.directives.d.ts +3 -3
  104. package/drawer/drawer.component.d.ts +1 -1
  105. package/drawer/drawer.property.d.ts +2 -2
  106. package/drawer/{ng-nest-ui-drawer.d.ts → index.d.ts} +0 -0
  107. package/dropdown/dropdown-portal.component.d.ts +1 -1
  108. package/dropdown/dropdown.component.d.ts +1 -1
  109. package/dropdown/dropdown.property.d.ts +1 -1
  110. package/dropdown/{ng-nest-ui-dropdown.d.ts → index.d.ts} +0 -0
  111. package/empty/empty.component.d.ts +1 -1
  112. package/empty/empty.property.d.ts +1 -1
  113. package/empty/{ng-nest-ui-empty.d.ts → index.d.ts} +0 -0
  114. package/esm2020/affix/affix.component.mjs +4 -4
  115. package/esm2020/affix/affix.module.mjs +5 -5
  116. package/esm2020/affix/affix.property.mjs +4 -4
  117. package/esm2020/alert/alert.component.mjs +10 -10
  118. package/esm2020/alert/alert.module.mjs +5 -5
  119. package/esm2020/alert/alert.property.mjs +4 -4
  120. package/esm2020/anchor/anchor.component.mjs +7 -7
  121. package/esm2020/anchor/anchor.module.mjs +5 -5
  122. package/esm2020/anchor/anchor.property.mjs +4 -4
  123. package/esm2020/api/api.component.mjs +4 -4
  124. package/esm2020/api/api.module.mjs +5 -5
  125. package/esm2020/auto-complete/auto-complete-portal.component.mjs +4 -4
  126. package/esm2020/auto-complete/auto-complete.component.mjs +11 -9
  127. package/esm2020/auto-complete/auto-complete.module.mjs +5 -5
  128. package/esm2020/auto-complete/auto-complete.property.mjs +4 -4
  129. package/esm2020/avatar/avatar.component.mjs +7 -7
  130. package/esm2020/avatar/avatar.module.mjs +5 -5
  131. package/esm2020/avatar/avatar.property.mjs +4 -4
  132. package/esm2020/back-top/back-top.component.mjs +6 -6
  133. package/esm2020/back-top/back-top.module.mjs +5 -5
  134. package/esm2020/back-top/back-top.property.mjs +4 -4
  135. package/esm2020/badge/badge.component.mjs +4 -4
  136. package/esm2020/badge/badge.module.mjs +5 -5
  137. package/esm2020/badge/badge.property.mjs +4 -4
  138. package/esm2020/base-form/base-form.component.mjs +4 -4
  139. package/esm2020/base-form/base-form.module.mjs +5 -5
  140. package/esm2020/base-form/base-form.property.mjs +4 -4
  141. package/esm2020/border/border.component.mjs +4 -4
  142. package/esm2020/border/border.module.mjs +5 -5
  143. package/esm2020/button/button.component.mjs +7 -7
  144. package/esm2020/button/button.module.mjs +5 -5
  145. package/esm2020/button/button.property.mjs +7 -7
  146. package/esm2020/button/buttons.component.mjs +4 -4
  147. package/esm2020/calendar/calendar.component.mjs +10 -10
  148. package/esm2020/calendar/calendar.module.mjs +5 -5
  149. package/esm2020/calendar/calendar.property.mjs +4 -4
  150. package/esm2020/card/card.component.mjs +4 -4
  151. package/esm2020/card/card.module.mjs +5 -5
  152. package/esm2020/card/card.property.mjs +4 -4
  153. package/esm2020/carousel/carousel-panel.component.mjs +4 -4
  154. package/esm2020/carousel/carousel.component.mjs +7 -7
  155. package/esm2020/carousel/carousel.module.mjs +5 -5
  156. package/esm2020/carousel/carousel.property.mjs +7 -7
  157. package/esm2020/cascade/cascade-portal.component.mjs +7 -7
  158. package/esm2020/cascade/cascade.component.mjs +10 -12
  159. package/esm2020/cascade/cascade.module.mjs +5 -5
  160. package/esm2020/cascade/cascade.property.mjs +4 -4
  161. package/esm2020/checkbox/checkbox.component.mjs +6 -6
  162. package/esm2020/checkbox/checkbox.module.mjs +5 -5
  163. package/esm2020/checkbox/checkbox.property.mjs +4 -4
  164. package/esm2020/collapse/collapse-panel.component.mjs +7 -7
  165. package/esm2020/collapse/collapse.component.mjs +4 -4
  166. package/esm2020/collapse/collapse.module.mjs +5 -5
  167. package/esm2020/collapse/collapse.property.mjs +7 -7
  168. package/esm2020/color/color.component.mjs +4 -4
  169. package/esm2020/color/color.module.mjs +5 -5
  170. package/esm2020/color/color.property.mjs +4 -4
  171. package/esm2020/color-picker/color-picker-portal.component.mjs +9 -9
  172. package/esm2020/color-picker/color-picker.component.mjs +7 -7
  173. package/esm2020/color-picker/color-picker.module.mjs +13 -15
  174. package/esm2020/color-picker/color-picker.property.mjs +4 -4
  175. package/esm2020/comment/comment-reply.component.mjs +7 -7
  176. package/esm2020/comment/comment.component.mjs +8 -8
  177. package/esm2020/comment/comment.module.mjs +13 -15
  178. package/esm2020/comment/comment.property.mjs +7 -7
  179. package/esm2020/container/aside.component.mjs +4 -4
  180. package/esm2020/container/container.component.mjs +4 -4
  181. package/esm2020/container/container.module.mjs +5 -5
  182. package/esm2020/container/container.property.mjs +13 -13
  183. package/esm2020/container/footer.component.mjs +4 -4
  184. package/esm2020/container/header.component.mjs +4 -4
  185. package/esm2020/container/main.component.mjs +4 -4
  186. package/esm2020/core/config/config.mjs +1 -1
  187. package/esm2020/core/config/config.service.mjs +4 -4
  188. package/esm2020/core/services/http.service.mjs +4 -4
  189. package/esm2020/core/services/preloading-strategy.service.mjs +4 -4
  190. package/esm2020/core/services/storage.service.mjs +4 -4
  191. package/esm2020/core/theme/theme.service.mjs +4 -4
  192. package/esm2020/crumb/crumb.component.mjs +6 -6
  193. package/esm2020/crumb/crumb.module.mjs +5 -5
  194. package/esm2020/crumb/crumb.property.mjs +4 -4
  195. package/esm2020/date-picker/date-picker-portal.component.mjs +8 -8
  196. package/esm2020/date-picker/date-picker.component.mjs +7 -7
  197. package/esm2020/date-picker/date-picker.module.mjs +14 -16
  198. package/esm2020/date-picker/date-picker.property.mjs +16 -16
  199. package/esm2020/date-picker/date-range-portal.component.mjs +6 -6
  200. package/esm2020/date-picker/date-range.component.mjs +7 -7
  201. package/esm2020/date-picker/picker-date.component.mjs +4 -4
  202. package/esm2020/date-picker/picker-month.component.mjs +4 -4
  203. package/esm2020/date-picker/picker-year.component.mjs +4 -4
  204. package/esm2020/description/description-item.component.mjs +4 -4
  205. package/esm2020/description/description.component.mjs +4 -4
  206. package/esm2020/description/description.module.mjs +5 -5
  207. package/esm2020/description/description.property.mjs +7 -7
  208. package/esm2020/dialog/dialog-container.component.mjs +4 -4
  209. package/esm2020/dialog/dialog-portal.component.mjs +6 -6
  210. package/esm2020/dialog/dialog-portal.directives.mjs +19 -19
  211. package/esm2020/dialog/dialog.component.mjs +6 -6
  212. package/esm2020/dialog/dialog.module.mjs +15 -17
  213. package/esm2020/dialog/dialog.property.mjs +7 -7
  214. package/esm2020/dialog/dialog.service.mjs +4 -4
  215. package/esm2020/doc/doc.component.mjs +4 -4
  216. package/esm2020/doc/doc.module.mjs +5 -5
  217. package/esm2020/drawer/drawer-container.component.mjs +6 -6
  218. package/esm2020/drawer/drawer-portal.component.mjs +4 -4
  219. package/esm2020/drawer/drawer-portal.directives.mjs +10 -10
  220. package/esm2020/drawer/drawer.component.mjs +7 -7
  221. package/esm2020/drawer/drawer.module.mjs +5 -5
  222. package/esm2020/drawer/drawer.property.mjs +7 -7
  223. package/esm2020/drawer/drawer.service.mjs +4 -4
  224. package/esm2020/dropdown/dropdown-portal.component.mjs +4 -4
  225. package/esm2020/dropdown/dropdown.component.mjs +4 -4
  226. package/esm2020/dropdown/dropdown.module.mjs +5 -5
  227. package/esm2020/dropdown/dropdown.property.mjs +4 -4
  228. package/esm2020/empty/empty.component.mjs +7 -7
  229. package/esm2020/empty/empty.module.mjs +5 -5
  230. package/esm2020/empty/empty.property.mjs +4 -4
  231. package/esm2020/examples/examples.component.mjs +4 -4
  232. package/esm2020/examples/examples.module.mjs +5 -5
  233. package/esm2020/find/find.component.mjs +12 -12
  234. package/esm2020/find/find.module.mjs +16 -18
  235. package/esm2020/find/find.property.mjs +4 -4
  236. package/esm2020/form/control.component.mjs +25 -24
  237. package/esm2020/form/form.component.mjs +11 -10
  238. package/esm2020/form/form.module.mjs +5 -5
  239. package/esm2020/form/form.property.mjs +10 -10
  240. package/esm2020/highlight/highlight.component.mjs +4 -4
  241. package/esm2020/highlight/highlight.module.mjs +5 -5
  242. package/esm2020/highlight/highlight.property.mjs +4 -4
  243. package/esm2020/i18n/i18n.directive.mjs +4 -4
  244. package/esm2020/i18n/i18n.module.mjs +5 -5
  245. package/esm2020/i18n/i18n.pipe.mjs +4 -4
  246. package/esm2020/i18n/i18n.service.mjs +4 -4
  247. package/esm2020/icon/icon.component.mjs +9 -5
  248. package/esm2020/icon/icon.module.mjs +5 -5
  249. package/esm2020/icon/icon.property.mjs +4 -4
  250. package/esm2020/icon/icon.service.mjs +4 -4
  251. package/esm2020/inner/inner.component.mjs +4 -4
  252. package/esm2020/inner/inner.module.mjs +5 -5
  253. package/esm2020/inner/inner.property.mjs +4 -4
  254. package/esm2020/input/input-group.component.mjs +4 -4
  255. package/esm2020/input/input.component.mjs +11 -10
  256. package/esm2020/input/input.module.mjs +5 -5
  257. package/esm2020/input/input.property.mjs +14 -7
  258. package/esm2020/input-number/input-number.component.mjs +9 -9
  259. package/esm2020/input-number/input-number.module.mjs +5 -5
  260. package/esm2020/input-number/input-number.property.mjs +4 -4
  261. package/esm2020/layout/col.component.mjs +4 -4
  262. package/esm2020/layout/layout.module.mjs +5 -5
  263. package/esm2020/layout/layout.property.mjs +7 -7
  264. package/esm2020/layout/row.component.mjs +4 -4
  265. package/esm2020/link/link.component.mjs +6 -6
  266. package/esm2020/link/link.module.mjs +5 -5
  267. package/esm2020/link/link.property.mjs +4 -4
  268. package/esm2020/list/list-option.component.mjs +6 -6
  269. package/esm2020/list/list.component.mjs +11 -11
  270. package/esm2020/list/list.module.mjs +14 -16
  271. package/esm2020/list/list.property.mjs +7 -7
  272. package/esm2020/loading/loading.component.mjs +6 -6
  273. package/esm2020/loading/loading.module.mjs +5 -5
  274. package/esm2020/loading/loading.property.mjs +4 -4
  275. package/esm2020/menu/menu-node.component.mjs +7 -7
  276. package/esm2020/menu/menu.component.mjs +7 -7
  277. package/esm2020/menu/menu.module.mjs +5 -5
  278. package/esm2020/menu/menu.property.mjs +7 -7
  279. package/esm2020/message/message.component.mjs +6 -6
  280. package/esm2020/message/message.module.mjs +5 -5
  281. package/esm2020/message/message.service.mjs +4 -4
  282. package/esm2020/message-box/message-box.component.mjs +13 -13
  283. package/esm2020/message-box/message-box.module.mjs +13 -15
  284. package/esm2020/message-box/message-box.service.mjs +4 -4
  285. package/esm2020/notification/notification.component.mjs +6 -6
  286. package/esm2020/notification/notification.module.mjs +5 -5
  287. package/esm2020/notification/notification.service.mjs +4 -4
  288. package/esm2020/outlet/outlet.directive.mjs +4 -4
  289. package/esm2020/outlet/outlet.module.mjs +5 -5
  290. package/esm2020/page-header/page-header.component.mjs +6 -6
  291. package/esm2020/page-header/page-header.module.mjs +5 -5
  292. package/esm2020/page-header/page-header.property.mjs +4 -4
  293. package/esm2020/pagination/pagination.component.mjs +10 -10
  294. package/esm2020/pagination/pagination.module.mjs +5 -5
  295. package/esm2020/pagination/pagination.property.mjs +4 -4
  296. package/esm2020/pattern/pattern.component.mjs +4 -4
  297. package/esm2020/pattern/pattern.module.mjs +5 -5
  298. package/esm2020/popconfirm/popconfirm.component.mjs +9 -9
  299. package/esm2020/popconfirm/popconfirm.module.mjs +5 -5
  300. package/esm2020/popconfirm/popconfirm.property.mjs +4 -4
  301. package/esm2020/popover/popover-portal.component.mjs +4 -4
  302. package/esm2020/popover/popover.directive.mjs +4 -4
  303. package/esm2020/popover/popover.module.mjs +5 -5
  304. package/esm2020/popover/popover.property.mjs +4 -4
  305. package/esm2020/portal/portal.module.mjs +5 -5
  306. package/esm2020/portal/portal.service.mjs +4 -4
  307. package/esm2020/progress/progress.component.mjs +6 -6
  308. package/esm2020/progress/progress.module.mjs +5 -5
  309. package/esm2020/progress/progress.property.mjs +4 -4
  310. package/esm2020/radio/radio.component.mjs +6 -6
  311. package/esm2020/radio/radio.module.mjs +5 -5
  312. package/esm2020/radio/radio.property.mjs +4 -4
  313. package/esm2020/rate/rate.component.mjs +6 -6
  314. package/esm2020/rate/rate.module.mjs +5 -5
  315. package/esm2020/rate/rate.property.mjs +4 -4
  316. package/esm2020/resizable/resizable.directive.mjs +4 -4
  317. package/esm2020/resizable/resizable.module.mjs +5 -5
  318. package/esm2020/resizable/resizable.property.mjs +4 -4
  319. package/esm2020/result/result.component.mjs +6 -6
  320. package/esm2020/result/result.module.mjs +5 -5
  321. package/esm2020/result/result.property.mjs +4 -4
  322. package/esm2020/ripple/ripple.directive.mjs +4 -4
  323. package/esm2020/ripple/ripple.module.mjs +5 -5
  324. package/esm2020/ripple/ripple.property.mjs +4 -4
  325. package/esm2020/select/select-portal.component.mjs +14 -7
  326. package/esm2020/select/select.component.mjs +85 -24
  327. package/esm2020/select/select.module.mjs +5 -5
  328. package/esm2020/select/select.property.mjs +21 -4
  329. package/esm2020/skeleton/skeleton.component.mjs +6 -6
  330. package/esm2020/skeleton/skeleton.module.mjs +5 -5
  331. package/esm2020/skeleton/skeleton.property.mjs +4 -4
  332. package/esm2020/slider/slider.component.mjs +6 -6
  333. package/esm2020/slider/slider.module.mjs +5 -5
  334. package/esm2020/slider/slider.property.mjs +4 -4
  335. package/esm2020/slider-select/slider-select.component.mjs +5 -5
  336. package/esm2020/slider-select/slider-select.module.mjs +5 -5
  337. package/esm2020/slider-select/slider-select.property.mjs +4 -4
  338. package/esm2020/statistic/countdown.component.mjs +5 -5
  339. package/esm2020/statistic/statistic.component.mjs +6 -6
  340. package/esm2020/statistic/statistic.module.mjs +5 -5
  341. package/esm2020/statistic/statistic.property.mjs +7 -7
  342. package/esm2020/steps/steps.component.mjs +6 -6
  343. package/esm2020/steps/steps.module.mjs +5 -5
  344. package/esm2020/steps/steps.property.mjs +4 -4
  345. package/esm2020/switch/switch.component.mjs +4 -4
  346. package/esm2020/switch/switch.module.mjs +5 -5
  347. package/esm2020/switch/switch.property.mjs +4 -4
  348. package/esm2020/table/drag.directive.mjs +4 -4
  349. package/esm2020/table/table-body.component.mjs +16 -12
  350. package/esm2020/table/table-foot.component.mjs +9 -5
  351. package/esm2020/table/table-head.component.mjs +30 -14
  352. package/esm2020/table/table.component.mjs +41 -12
  353. package/esm2020/table/table.module.mjs +14 -16
  354. package/esm2020/table/table.property.mjs +22 -14
  355. package/esm2020/tabs/tab-content.component.mjs +4 -4
  356. package/esm2020/tabs/tab.component.mjs +4 -4
  357. package/esm2020/tabs/tabs.component.mjs +7 -7
  358. package/esm2020/tabs/tabs.module.mjs +5 -5
  359. package/esm2020/tabs/tabs.property.mjs +7 -7
  360. package/esm2020/tag/tag.component.mjs +6 -6
  361. package/esm2020/tag/tag.module.mjs +5 -5
  362. package/esm2020/tag/tag.property.mjs +4 -4
  363. package/esm2020/text-retract/text-retract.component.mjs +6 -6
  364. package/esm2020/text-retract/text-retract.module.mjs +5 -5
  365. package/esm2020/text-retract/text-retract.property.mjs +4 -4
  366. package/esm2020/textarea/textarea.component.mjs +8 -8
  367. package/esm2020/textarea/textarea.module.mjs +5 -5
  368. package/esm2020/textarea/textarea.property.mjs +4 -4
  369. package/esm2020/theme/theme.component.mjs +12 -12
  370. package/esm2020/theme/theme.module.mjs +13 -15
  371. package/esm2020/theme/theme.property.mjs +4 -4
  372. package/esm2020/time-ago/time-ago.module.mjs +5 -5
  373. package/esm2020/time-ago/time-ago.pipe.mjs +4 -4
  374. package/esm2020/time-picker/time-picker-frame.component.mjs +6 -6
  375. package/esm2020/time-picker/time-picker-portal.component.mjs +4 -4
  376. package/esm2020/time-picker/time-picker.component.mjs +7 -7
  377. package/esm2020/time-picker/time-picker.module.mjs +13 -15
  378. package/esm2020/time-picker/time-picker.property.mjs +4 -4
  379. package/esm2020/time-range/time-range.module.mjs +5 -5
  380. package/esm2020/time-range/time-range.pipe.mjs +4 -4
  381. package/esm2020/timeline/timeline.component.mjs +7 -7
  382. package/esm2020/timeline/timeline.module.mjs +5 -5
  383. package/esm2020/timeline/timeline.property.mjs +4 -4
  384. package/esm2020/tooltip/tooltip-portal.component.mjs +4 -4
  385. package/esm2020/tooltip/tooltip.directive.mjs +4 -4
  386. package/esm2020/tooltip/tooltip.module.mjs +5 -5
  387. package/esm2020/tooltip/tooltip.property.mjs +4 -4
  388. package/esm2020/transfer/transfer.component.mjs +9 -9
  389. package/esm2020/transfer/transfer.module.mjs +5 -5
  390. package/esm2020/transfer/transfer.property.mjs +4 -4
  391. package/esm2020/tree/tree-node.component.mjs +12 -78
  392. package/esm2020/tree/tree.component.mjs +130 -30
  393. package/esm2020/tree/tree.module.mjs +5 -5
  394. package/esm2020/tree/tree.property.mjs +7 -7
  395. package/esm2020/tree-file/tree-file.component.mjs +8 -8
  396. package/esm2020/tree-file/tree-file.module.mjs +5 -5
  397. package/esm2020/tree-file/tree-file.property.mjs +4 -4
  398. package/esm2020/typography/typography.component.mjs +4 -4
  399. package/esm2020/typography/typography.module.mjs +5 -5
  400. package/esm2020/typography/typography.property.mjs +4 -4
  401. package/esm2020/upload/upload-portal.component.mjs +5 -5
  402. package/esm2020/upload/upload.component.mjs +8 -8
  403. package/esm2020/upload/upload.module.mjs +14 -16
  404. package/esm2020/upload/upload.property.mjs +4 -4
  405. package/examples/examples.component.d.ts +1 -1
  406. package/examples/{ng-nest-ui-examples.d.ts → index.d.ts} +0 -0
  407. package/fesm2015/ng-nest-ui-affix.mjs +10 -10
  408. package/fesm2015/ng-nest-ui-affix.mjs.map +1 -1
  409. package/fesm2015/ng-nest-ui-alert.mjs +19 -19
  410. package/fesm2015/ng-nest-ui-alert.mjs.map +1 -1
  411. package/fesm2015/ng-nest-ui-anchor.mjs +13 -13
  412. package/fesm2015/ng-nest-ui-anchor.mjs.map +1 -1
  413. package/fesm2015/ng-nest-ui-api.mjs +7 -7
  414. package/fesm2015/ng-nest-ui-api.mjs.map +1 -1
  415. package/fesm2015/ng-nest-ui-auto-complete.mjs +21 -19
  416. package/fesm2015/ng-nest-ui-auto-complete.mjs.map +1 -1
  417. package/fesm2015/ng-nest-ui-avatar.mjs +14 -14
  418. package/fesm2015/ng-nest-ui-avatar.mjs.map +1 -1
  419. package/fesm2015/ng-nest-ui-back-top.mjs +12 -12
  420. package/fesm2015/ng-nest-ui-back-top.mjs.map +1 -1
  421. package/fesm2015/ng-nest-ui-badge.mjs +10 -10
  422. package/fesm2015/ng-nest-ui-badge.mjs.map +1 -1
  423. package/fesm2015/ng-nest-ui-base-form.mjs +10 -10
  424. package/fesm2015/ng-nest-ui-base-form.mjs.map +1 -1
  425. package/fesm2015/ng-nest-ui-border.mjs +7 -7
  426. package/fesm2015/ng-nest-ui-border.mjs.map +1 -1
  427. package/fesm2015/ng-nest-ui-button.mjs +20 -20
  428. package/fesm2015/ng-nest-ui-button.mjs.map +1 -1
  429. package/fesm2015/ng-nest-ui-calendar.mjs +20 -20
  430. package/fesm2015/ng-nest-ui-calendar.mjs.map +1 -1
  431. package/fesm2015/ng-nest-ui-card.mjs +10 -10
  432. package/fesm2015/ng-nest-ui-card.mjs.map +1 -1
  433. package/fesm2015/ng-nest-ui-carousel.mjs +20 -20
  434. package/fesm2015/ng-nest-ui-carousel.mjs.map +1 -1
  435. package/fesm2015/ng-nest-ui-cascade.mjs +22 -24
  436. package/fesm2015/ng-nest-ui-cascade.mjs.map +1 -1
  437. package/fesm2015/ng-nest-ui-checkbox.mjs +13 -13
  438. package/fesm2015/ng-nest-ui-checkbox.mjs.map +1 -1
  439. package/fesm2015/ng-nest-ui-collapse.mjs +20 -20
  440. package/fesm2015/ng-nest-ui-collapse.mjs.map +1 -1
  441. package/fesm2015/ng-nest-ui-color-picker.mjs +31 -33
  442. package/fesm2015/ng-nest-ui-color-picker.mjs.map +1 -1
  443. package/fesm2015/ng-nest-ui-color.mjs +10 -10
  444. package/fesm2015/ng-nest-ui-color.mjs.map +1 -1
  445. package/fesm2015/ng-nest-ui-comment.mjs +34 -36
  446. package/fesm2015/ng-nest-ui-comment.mjs.map +1 -1
  447. package/fesm2015/ng-nest-ui-container.mjs +31 -31
  448. package/fesm2015/ng-nest-ui-container.mjs.map +1 -1
  449. package/fesm2015/ng-nest-ui-core.mjs +15 -15
  450. package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
  451. package/fesm2015/ng-nest-ui-crumb.mjs +13 -13
  452. package/fesm2015/ng-nest-ui-crumb.mjs.map +1 -1
  453. package/fesm2015/ng-nest-ui-date-picker.mjs +56 -58
  454. package/fesm2015/ng-nest-ui-date-picker.mjs.map +1 -1
  455. package/fesm2015/ng-nest-ui-description.mjs +16 -16
  456. package/fesm2015/ng-nest-ui-description.mjs.map +1 -1
  457. package/fesm2015/ng-nest-ui-dialog.mjs +55 -57
  458. package/fesm2015/ng-nest-ui-dialog.mjs.map +1 -1
  459. package/fesm2015/ng-nest-ui-doc.mjs +7 -7
  460. package/fesm2015/ng-nest-ui-doc.mjs.map +1 -1
  461. package/fesm2015/ng-nest-ui-drawer.mjs +37 -37
  462. package/fesm2015/ng-nest-ui-drawer.mjs.map +1 -1
  463. package/fesm2015/ng-nest-ui-dropdown.mjs +13 -13
  464. package/fesm2015/ng-nest-ui-dropdown.mjs.map +1 -1
  465. package/fesm2015/ng-nest-ui-empty.mjs +14 -14
  466. package/fesm2015/ng-nest-ui-empty.mjs.map +1 -1
  467. package/fesm2015/ng-nest-ui-examples.mjs +7 -7
  468. package/fesm2015/ng-nest-ui-examples.mjs.map +1 -1
  469. package/fesm2015/ng-nest-ui-find.mjs +35 -37
  470. package/fesm2015/ng-nest-ui-find.mjs.map +1 -1
  471. package/fesm2015/ng-nest-ui-form.mjs +47 -45
  472. package/fesm2015/ng-nest-ui-form.mjs.map +1 -1
  473. package/fesm2015/ng-nest-ui-highlight.mjs +10 -10
  474. package/fesm2015/ng-nest-ui-highlight.mjs.map +1 -1
  475. package/fesm2015/ng-nest-ui-i18n.mjs +13 -13
  476. package/fesm2015/ng-nest-ui-i18n.mjs.map +1 -1
  477. package/fesm2015/ng-nest-ui-icon.mjs +18 -14
  478. package/fesm2015/ng-nest-ui-icon.mjs.map +1 -1
  479. package/fesm2015/ng-nest-ui-inner.mjs +10 -10
  480. package/fesm2015/ng-nest-ui-inner.mjs.map +1 -1
  481. package/fesm2015/ng-nest-ui-input-number.mjs +18 -18
  482. package/fesm2015/ng-nest-ui-input-number.mjs.map +1 -1
  483. package/fesm2015/ng-nest-ui-input.mjs +32 -24
  484. package/fesm2015/ng-nest-ui-input.mjs.map +1 -1
  485. package/fesm2015/ng-nest-ui-layout.mjs +16 -16
  486. package/fesm2015/ng-nest-ui-layout.mjs.map +1 -1
  487. package/fesm2015/ng-nest-ui-link.mjs +13 -13
  488. package/fesm2015/ng-nest-ui-link.mjs.map +1 -1
  489. package/fesm2015/ng-nest-ui-list.mjs +33 -35
  490. package/fesm2015/ng-nest-ui-list.mjs.map +1 -1
  491. package/fesm2015/ng-nest-ui-loading.mjs +13 -13
  492. package/fesm2015/ng-nest-ui-loading.mjs.map +1 -1
  493. package/fesm2015/ng-nest-ui-menu.mjs +23 -23
  494. package/fesm2015/ng-nest-ui-menu.mjs.map +1 -1
  495. package/fesm2015/ng-nest-ui-message-box.mjs +29 -31
  496. package/fesm2015/ng-nest-ui-message-box.mjs.map +1 -1
  497. package/fesm2015/ng-nest-ui-message.mjs +13 -13
  498. package/fesm2015/ng-nest-ui-message.mjs.map +1 -1
  499. package/fesm2015/ng-nest-ui-notification.mjs +13 -13
  500. package/fesm2015/ng-nest-ui-notification.mjs.map +1 -1
  501. package/fesm2015/ng-nest-ui-outlet.mjs +7 -7
  502. package/fesm2015/ng-nest-ui-outlet.mjs.map +1 -1
  503. package/fesm2015/ng-nest-ui-page-header.mjs +13 -13
  504. package/fesm2015/ng-nest-ui-page-header.mjs.map +1 -1
  505. package/fesm2015/ng-nest-ui-pagination.mjs +19 -19
  506. package/fesm2015/ng-nest-ui-pagination.mjs.map +1 -1
  507. package/fesm2015/ng-nest-ui-pattern.mjs +7 -7
  508. package/fesm2015/ng-nest-ui-pattern.mjs.map +1 -1
  509. package/fesm2015/ng-nest-ui-popconfirm.mjs +18 -18
  510. package/fesm2015/ng-nest-ui-popconfirm.mjs.map +1 -1
  511. package/fesm2015/ng-nest-ui-popover.mjs +13 -13
  512. package/fesm2015/ng-nest-ui-popover.mjs.map +1 -1
  513. package/fesm2015/ng-nest-ui-portal.mjs +7 -7
  514. package/fesm2015/ng-nest-ui-portal.mjs.map +1 -1
  515. package/fesm2015/ng-nest-ui-progress.mjs +13 -13
  516. package/fesm2015/ng-nest-ui-progress.mjs.map +1 -1
  517. package/fesm2015/ng-nest-ui-radio.mjs +13 -13
  518. package/fesm2015/ng-nest-ui-radio.mjs.map +1 -1
  519. package/fesm2015/ng-nest-ui-rate.mjs +13 -13
  520. package/fesm2015/ng-nest-ui-rate.mjs.map +1 -1
  521. package/fesm2015/ng-nest-ui-resizable.mjs +10 -10
  522. package/fesm2015/ng-nest-ui-resizable.mjs.map +1 -1
  523. package/fesm2015/ng-nest-ui-result.mjs +13 -13
  524. package/fesm2015/ng-nest-ui-result.mjs.map +1 -1
  525. package/fesm2015/ng-nest-ui-ripple.mjs +10 -10
  526. package/fesm2015/ng-nest-ui-ripple.mjs.map +1 -1
  527. package/fesm2015/ng-nest-ui-select.mjs +123 -38
  528. package/fesm2015/ng-nest-ui-select.mjs.map +1 -1
  529. package/fesm2015/ng-nest-ui-skeleton.mjs +13 -13
  530. package/fesm2015/ng-nest-ui-skeleton.mjs.map +1 -1
  531. package/fesm2015/ng-nest-ui-slider-select.mjs +11 -11
  532. package/fesm2015/ng-nest-ui-slider-select.mjs.map +1 -1
  533. package/fesm2015/ng-nest-ui-slider.mjs +13 -13
  534. package/fesm2015/ng-nest-ui-slider.mjs.map +1 -1
  535. package/fesm2015/ng-nest-ui-statistic.mjs +20 -20
  536. package/fesm2015/ng-nest-ui-statistic.mjs.map +1 -1
  537. package/fesm2015/ng-nest-ui-steps.mjs +13 -13
  538. package/fesm2015/ng-nest-ui-steps.mjs.map +1 -1
  539. package/fesm2015/ng-nest-ui-switch.mjs +10 -10
  540. package/fesm2015/ng-nest-ui-switch.mjs.map +1 -1
  541. package/fesm2015/ng-nest-ui-table.mjs +127 -70
  542. package/fesm2015/ng-nest-ui-table.mjs.map +1 -1
  543. package/fesm2015/ng-nest-ui-tabs.mjs +21 -21
  544. package/fesm2015/ng-nest-ui-tabs.mjs.map +1 -1
  545. package/fesm2015/ng-nest-ui-tag.mjs +13 -13
  546. package/fesm2015/ng-nest-ui-tag.mjs.map +1 -1
  547. package/fesm2015/ng-nest-ui-text-retract.mjs +13 -13
  548. package/fesm2015/ng-nest-ui-text-retract.mjs.map +1 -1
  549. package/fesm2015/ng-nest-ui-textarea.mjs +15 -15
  550. package/fesm2015/ng-nest-ui-textarea.mjs.map +1 -1
  551. package/fesm2015/ng-nest-ui-theme.mjs +28 -30
  552. package/fesm2015/ng-nest-ui-theme.mjs.map +1 -1
  553. package/fesm2015/ng-nest-ui-time-ago.mjs +7 -7
  554. package/fesm2015/ng-nest-ui-time-ago.mjs.map +1 -1
  555. package/fesm2015/ng-nest-ui-time-picker.mjs +32 -34
  556. package/fesm2015/ng-nest-ui-time-picker.mjs.map +1 -1
  557. package/fesm2015/ng-nest-ui-time-range.mjs +7 -7
  558. package/fesm2015/ng-nest-ui-time-range.mjs.map +1 -1
  559. package/fesm2015/ng-nest-ui-timeline.mjs +14 -14
  560. package/fesm2015/ng-nest-ui-timeline.mjs.map +1 -1
  561. package/fesm2015/ng-nest-ui-tooltip.mjs +13 -13
  562. package/fesm2015/ng-nest-ui-tooltip.mjs.map +1 -1
  563. package/fesm2015/ng-nest-ui-transfer.mjs +17 -17
  564. package/fesm2015/ng-nest-ui-transfer.mjs.map +1 -1
  565. package/fesm2015/ng-nest-ui-tree-file.mjs +16 -16
  566. package/fesm2015/ng-nest-ui-tree-file.mjs.map +1 -1
  567. package/fesm2015/ng-nest-ui-tree.mjs +151 -117
  568. package/fesm2015/ng-nest-ui-tree.mjs.map +1 -1
  569. package/fesm2015/ng-nest-ui-typography.mjs +10 -10
  570. package/fesm2015/ng-nest-ui-typography.mjs.map +1 -1
  571. package/fesm2015/ng-nest-ui-upload.mjs +27 -29
  572. package/fesm2015/ng-nest-ui-upload.mjs.map +1 -1
  573. package/fesm2020/ng-nest-ui-affix.mjs +10 -10
  574. package/fesm2020/ng-nest-ui-affix.mjs.map +1 -1
  575. package/fesm2020/ng-nest-ui-alert.mjs +19 -19
  576. package/fesm2020/ng-nest-ui-alert.mjs.map +1 -1
  577. package/fesm2020/ng-nest-ui-anchor.mjs +13 -13
  578. package/fesm2020/ng-nest-ui-anchor.mjs.map +1 -1
  579. package/fesm2020/ng-nest-ui-api.mjs +7 -7
  580. package/fesm2020/ng-nest-ui-api.mjs.map +1 -1
  581. package/fesm2020/ng-nest-ui-auto-complete.mjs +21 -19
  582. package/fesm2020/ng-nest-ui-auto-complete.mjs.map +1 -1
  583. package/fesm2020/ng-nest-ui-avatar.mjs +14 -14
  584. package/fesm2020/ng-nest-ui-avatar.mjs.map +1 -1
  585. package/fesm2020/ng-nest-ui-back-top.mjs +12 -12
  586. package/fesm2020/ng-nest-ui-back-top.mjs.map +1 -1
  587. package/fesm2020/ng-nest-ui-badge.mjs +10 -10
  588. package/fesm2020/ng-nest-ui-badge.mjs.map +1 -1
  589. package/fesm2020/ng-nest-ui-base-form.mjs +10 -10
  590. package/fesm2020/ng-nest-ui-base-form.mjs.map +1 -1
  591. package/fesm2020/ng-nest-ui-border.mjs +7 -7
  592. package/fesm2020/ng-nest-ui-border.mjs.map +1 -1
  593. package/fesm2020/ng-nest-ui-button.mjs +20 -20
  594. package/fesm2020/ng-nest-ui-button.mjs.map +1 -1
  595. package/fesm2020/ng-nest-ui-calendar.mjs +20 -20
  596. package/fesm2020/ng-nest-ui-calendar.mjs.map +1 -1
  597. package/fesm2020/ng-nest-ui-card.mjs +10 -10
  598. package/fesm2020/ng-nest-ui-card.mjs.map +1 -1
  599. package/fesm2020/ng-nest-ui-carousel.mjs +20 -20
  600. package/fesm2020/ng-nest-ui-carousel.mjs.map +1 -1
  601. package/fesm2020/ng-nest-ui-cascade.mjs +22 -24
  602. package/fesm2020/ng-nest-ui-cascade.mjs.map +1 -1
  603. package/fesm2020/ng-nest-ui-checkbox.mjs +13 -13
  604. package/fesm2020/ng-nest-ui-checkbox.mjs.map +1 -1
  605. package/fesm2020/ng-nest-ui-collapse.mjs +20 -20
  606. package/fesm2020/ng-nest-ui-collapse.mjs.map +1 -1
  607. package/fesm2020/ng-nest-ui-color-picker.mjs +31 -33
  608. package/fesm2020/ng-nest-ui-color-picker.mjs.map +1 -1
  609. package/fesm2020/ng-nest-ui-color.mjs +10 -10
  610. package/fesm2020/ng-nest-ui-color.mjs.map +1 -1
  611. package/fesm2020/ng-nest-ui-comment.mjs +34 -36
  612. package/fesm2020/ng-nest-ui-comment.mjs.map +1 -1
  613. package/fesm2020/ng-nest-ui-container.mjs +31 -31
  614. package/fesm2020/ng-nest-ui-container.mjs.map +1 -1
  615. package/fesm2020/ng-nest-ui-core.mjs +15 -15
  616. package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
  617. package/fesm2020/ng-nest-ui-crumb.mjs +13 -13
  618. package/fesm2020/ng-nest-ui-crumb.mjs.map +1 -1
  619. package/fesm2020/ng-nest-ui-date-picker.mjs +56 -58
  620. package/fesm2020/ng-nest-ui-date-picker.mjs.map +1 -1
  621. package/fesm2020/ng-nest-ui-description.mjs +16 -16
  622. package/fesm2020/ng-nest-ui-description.mjs.map +1 -1
  623. package/fesm2020/ng-nest-ui-dialog.mjs +55 -57
  624. package/fesm2020/ng-nest-ui-dialog.mjs.map +1 -1
  625. package/fesm2020/ng-nest-ui-doc.mjs +7 -7
  626. package/fesm2020/ng-nest-ui-doc.mjs.map +1 -1
  627. package/fesm2020/ng-nest-ui-drawer.mjs +37 -37
  628. package/fesm2020/ng-nest-ui-drawer.mjs.map +1 -1
  629. package/fesm2020/ng-nest-ui-dropdown.mjs +13 -13
  630. package/fesm2020/ng-nest-ui-dropdown.mjs.map +1 -1
  631. package/fesm2020/ng-nest-ui-empty.mjs +14 -14
  632. package/fesm2020/ng-nest-ui-empty.mjs.map +1 -1
  633. package/fesm2020/ng-nest-ui-examples.mjs +7 -7
  634. package/fesm2020/ng-nest-ui-examples.mjs.map +1 -1
  635. package/fesm2020/ng-nest-ui-find.mjs +35 -37
  636. package/fesm2020/ng-nest-ui-find.mjs.map +1 -1
  637. package/fesm2020/ng-nest-ui-form.mjs +47 -45
  638. package/fesm2020/ng-nest-ui-form.mjs.map +1 -1
  639. package/fesm2020/ng-nest-ui-highlight.mjs +10 -10
  640. package/fesm2020/ng-nest-ui-highlight.mjs.map +1 -1
  641. package/fesm2020/ng-nest-ui-i18n.mjs +13 -13
  642. package/fesm2020/ng-nest-ui-i18n.mjs.map +1 -1
  643. package/fesm2020/ng-nest-ui-icon.mjs +18 -14
  644. package/fesm2020/ng-nest-ui-icon.mjs.map +1 -1
  645. package/fesm2020/ng-nest-ui-inner.mjs +10 -10
  646. package/fesm2020/ng-nest-ui-inner.mjs.map +1 -1
  647. package/fesm2020/ng-nest-ui-input-number.mjs +18 -18
  648. package/fesm2020/ng-nest-ui-input-number.mjs.map +1 -1
  649. package/fesm2020/ng-nest-ui-input.mjs +32 -24
  650. package/fesm2020/ng-nest-ui-input.mjs.map +1 -1
  651. package/fesm2020/ng-nest-ui-layout.mjs +16 -16
  652. package/fesm2020/ng-nest-ui-layout.mjs.map +1 -1
  653. package/fesm2020/ng-nest-ui-link.mjs +13 -13
  654. package/fesm2020/ng-nest-ui-link.mjs.map +1 -1
  655. package/fesm2020/ng-nest-ui-list.mjs +33 -35
  656. package/fesm2020/ng-nest-ui-list.mjs.map +1 -1
  657. package/fesm2020/ng-nest-ui-loading.mjs +13 -13
  658. package/fesm2020/ng-nest-ui-loading.mjs.map +1 -1
  659. package/fesm2020/ng-nest-ui-menu.mjs +23 -23
  660. package/fesm2020/ng-nest-ui-menu.mjs.map +1 -1
  661. package/fesm2020/ng-nest-ui-message-box.mjs +29 -31
  662. package/fesm2020/ng-nest-ui-message-box.mjs.map +1 -1
  663. package/fesm2020/ng-nest-ui-message.mjs +13 -13
  664. package/fesm2020/ng-nest-ui-message.mjs.map +1 -1
  665. package/fesm2020/ng-nest-ui-notification.mjs +13 -13
  666. package/fesm2020/ng-nest-ui-notification.mjs.map +1 -1
  667. package/fesm2020/ng-nest-ui-outlet.mjs +7 -7
  668. package/fesm2020/ng-nest-ui-outlet.mjs.map +1 -1
  669. package/fesm2020/ng-nest-ui-page-header.mjs +13 -13
  670. package/fesm2020/ng-nest-ui-page-header.mjs.map +1 -1
  671. package/fesm2020/ng-nest-ui-pagination.mjs +19 -19
  672. package/fesm2020/ng-nest-ui-pagination.mjs.map +1 -1
  673. package/fesm2020/ng-nest-ui-pattern.mjs +7 -7
  674. package/fesm2020/ng-nest-ui-pattern.mjs.map +1 -1
  675. package/fesm2020/ng-nest-ui-popconfirm.mjs +18 -18
  676. package/fesm2020/ng-nest-ui-popconfirm.mjs.map +1 -1
  677. package/fesm2020/ng-nest-ui-popover.mjs +13 -13
  678. package/fesm2020/ng-nest-ui-popover.mjs.map +1 -1
  679. package/fesm2020/ng-nest-ui-portal.mjs +7 -7
  680. package/fesm2020/ng-nest-ui-portal.mjs.map +1 -1
  681. package/fesm2020/ng-nest-ui-progress.mjs +13 -13
  682. package/fesm2020/ng-nest-ui-progress.mjs.map +1 -1
  683. package/fesm2020/ng-nest-ui-radio.mjs +13 -13
  684. package/fesm2020/ng-nest-ui-radio.mjs.map +1 -1
  685. package/fesm2020/ng-nest-ui-rate.mjs +13 -13
  686. package/fesm2020/ng-nest-ui-rate.mjs.map +1 -1
  687. package/fesm2020/ng-nest-ui-resizable.mjs +10 -10
  688. package/fesm2020/ng-nest-ui-resizable.mjs.map +1 -1
  689. package/fesm2020/ng-nest-ui-result.mjs +13 -13
  690. package/fesm2020/ng-nest-ui-result.mjs.map +1 -1
  691. package/fesm2020/ng-nest-ui-ripple.mjs +10 -10
  692. package/fesm2020/ng-nest-ui-ripple.mjs.map +1 -1
  693. package/fesm2020/ng-nest-ui-select.mjs +123 -38
  694. package/fesm2020/ng-nest-ui-select.mjs.map +1 -1
  695. package/fesm2020/ng-nest-ui-skeleton.mjs +13 -13
  696. package/fesm2020/ng-nest-ui-skeleton.mjs.map +1 -1
  697. package/fesm2020/ng-nest-ui-slider-select.mjs +11 -11
  698. package/fesm2020/ng-nest-ui-slider-select.mjs.map +1 -1
  699. package/fesm2020/ng-nest-ui-slider.mjs +13 -13
  700. package/fesm2020/ng-nest-ui-slider.mjs.map +1 -1
  701. package/fesm2020/ng-nest-ui-statistic.mjs +20 -20
  702. package/fesm2020/ng-nest-ui-statistic.mjs.map +1 -1
  703. package/fesm2020/ng-nest-ui-steps.mjs +13 -13
  704. package/fesm2020/ng-nest-ui-steps.mjs.map +1 -1
  705. package/fesm2020/ng-nest-ui-switch.mjs +10 -10
  706. package/fesm2020/ng-nest-ui-switch.mjs.map +1 -1
  707. package/fesm2020/ng-nest-ui-table.mjs +123 -66
  708. package/fesm2020/ng-nest-ui-table.mjs.map +1 -1
  709. package/fesm2020/ng-nest-ui-tabs.mjs +21 -21
  710. package/fesm2020/ng-nest-ui-tabs.mjs.map +1 -1
  711. package/fesm2020/ng-nest-ui-tag.mjs +13 -13
  712. package/fesm2020/ng-nest-ui-tag.mjs.map +1 -1
  713. package/fesm2020/ng-nest-ui-text-retract.mjs +13 -13
  714. package/fesm2020/ng-nest-ui-text-retract.mjs.map +1 -1
  715. package/fesm2020/ng-nest-ui-textarea.mjs +15 -15
  716. package/fesm2020/ng-nest-ui-textarea.mjs.map +1 -1
  717. package/fesm2020/ng-nest-ui-theme.mjs +28 -30
  718. package/fesm2020/ng-nest-ui-theme.mjs.map +1 -1
  719. package/fesm2020/ng-nest-ui-time-ago.mjs +7 -7
  720. package/fesm2020/ng-nest-ui-time-ago.mjs.map +1 -1
  721. package/fesm2020/ng-nest-ui-time-picker.mjs +32 -34
  722. package/fesm2020/ng-nest-ui-time-picker.mjs.map +1 -1
  723. package/fesm2020/ng-nest-ui-time-range.mjs +7 -7
  724. package/fesm2020/ng-nest-ui-time-range.mjs.map +1 -1
  725. package/fesm2020/ng-nest-ui-timeline.mjs +14 -14
  726. package/fesm2020/ng-nest-ui-timeline.mjs.map +1 -1
  727. package/fesm2020/ng-nest-ui-tooltip.mjs +13 -13
  728. package/fesm2020/ng-nest-ui-tooltip.mjs.map +1 -1
  729. package/fesm2020/ng-nest-ui-transfer.mjs +17 -17
  730. package/fesm2020/ng-nest-ui-transfer.mjs.map +1 -1
  731. package/fesm2020/ng-nest-ui-tree-file.mjs +16 -16
  732. package/fesm2020/ng-nest-ui-tree-file.mjs.map +1 -1
  733. package/fesm2020/ng-nest-ui-tree.mjs +151 -117
  734. package/fesm2020/ng-nest-ui-tree.mjs.map +1 -1
  735. package/fesm2020/ng-nest-ui-typography.mjs +10 -10
  736. package/fesm2020/ng-nest-ui-typography.mjs.map +1 -1
  737. package/fesm2020/ng-nest-ui-upload.mjs +27 -29
  738. package/fesm2020/ng-nest-ui-upload.mjs.map +1 -1
  739. package/find/find.component.d.ts +1 -1
  740. package/find/find.property.d.ts +1 -1
  741. package/find/{ng-nest-ui-find.d.ts → index.d.ts} +0 -0
  742. package/form/control.component.d.ts +1 -1
  743. package/form/form.component.d.ts +2 -1
  744. package/form/form.property.d.ts +5 -5
  745. package/form/{ng-nest-ui-form.d.ts → index.d.ts} +0 -0
  746. package/highlight/highlight.component.d.ts +1 -1
  747. package/highlight/highlight.property.d.ts +1 -1
  748. package/highlight/{ng-nest-ui-highlight.d.ts → index.d.ts} +0 -0
  749. package/i18n/i18n.directive.d.ts +1 -1
  750. package/i18n/i18n.pipe.d.ts +1 -1
  751. package/i18n/{ng-nest-ui-i18n.d.ts → index.d.ts} +0 -0
  752. package/icon/icon.component.d.ts +1 -1
  753. package/icon/icon.property.d.ts +1 -1
  754. package/icon/{ng-nest-ui-icon.d.ts → index.d.ts} +0 -0
  755. package/inner/{ng-nest-ui-inner.d.ts → index.d.ts} +0 -0
  756. package/inner/inner.component.d.ts +1 -1
  757. package/inner/inner.property.d.ts +1 -1
  758. package/input/{ng-nest-ui-input.d.ts → index.d.ts} +0 -0
  759. package/input/input-group.component.d.ts +1 -1
  760. package/input/input.component.d.ts +1 -1
  761. package/input/input.property.d.ts +7 -2
  762. package/input-number/{ng-nest-ui-input-number.d.ts → index.d.ts} +0 -0
  763. package/input-number/input-number.component.d.ts +1 -1
  764. package/input-number/input-number.property.d.ts +1 -1
  765. package/layout/col.component.d.ts +1 -1
  766. package/layout/{ng-nest-ui-layout.d.ts → index.d.ts} +0 -0
  767. package/layout/layout.property.d.ts +2 -2
  768. package/layout/row.component.d.ts +1 -1
  769. package/link/{ng-nest-ui-link.d.ts → index.d.ts} +0 -0
  770. package/link/link.component.d.ts +1 -1
  771. package/link/link.property.d.ts +1 -1
  772. package/list/{ng-nest-ui-list.d.ts → index.d.ts} +0 -0
  773. package/list/list-option.component.d.ts +1 -1
  774. package/list/list.component.d.ts +1 -1
  775. package/list/list.property.d.ts +2 -2
  776. package/loading/{ng-nest-ui-loading.d.ts → index.d.ts} +0 -0
  777. package/loading/loading.component.d.ts +1 -1
  778. package/loading/loading.property.d.ts +1 -1
  779. package/menu/{ng-nest-ui-menu.d.ts → index.d.ts} +0 -0
  780. package/menu/menu-node.component.d.ts +1 -1
  781. package/menu/menu.component.d.ts +1 -1
  782. package/menu/menu.property.d.ts +2 -2
  783. package/message/{ng-nest-ui-message.d.ts → index.d.ts} +0 -0
  784. package/message/message.component.d.ts +1 -1
  785. package/message-box/{ng-nest-ui-message-box.d.ts → index.d.ts} +0 -0
  786. package/message-box/message-box.component.d.ts +3 -3
  787. package/notification/{ng-nest-ui-notification.d.ts → index.d.ts} +0 -0
  788. package/notification/notification.component.d.ts +1 -1
  789. package/outlet/{ng-nest-ui-outlet.d.ts → index.d.ts} +0 -0
  790. package/outlet/outlet.directive.d.ts +1 -1
  791. package/package.json +91 -91
  792. package/page-header/{ng-nest-ui-page-header.d.ts → index.d.ts} +0 -0
  793. package/page-header/page-header.component.d.ts +1 -1
  794. package/page-header/page-header.property.d.ts +1 -1
  795. package/pagination/{ng-nest-ui-pagination.d.ts → index.d.ts} +0 -0
  796. package/pagination/pagination.component.d.ts +1 -1
  797. package/pagination/pagination.property.d.ts +1 -1
  798. package/pattern/{ng-nest-ui-pattern.d.ts → index.d.ts} +0 -0
  799. package/pattern/pattern.component.d.ts +1 -1
  800. package/popconfirm/{ng-nest-ui-popconfirm.d.ts → index.d.ts} +0 -0
  801. package/popconfirm/popconfirm.component.d.ts +1 -1
  802. package/popconfirm/popconfirm.property.d.ts +1 -1
  803. package/popover/{ng-nest-ui-popover.d.ts → index.d.ts} +0 -0
  804. package/popover/popover-portal.component.d.ts +1 -1
  805. package/popover/popover.directive.d.ts +1 -1
  806. package/popover/popover.property.d.ts +1 -1
  807. package/portal/{ng-nest-ui-portal.d.ts → index.d.ts} +0 -0
  808. package/progress/{ng-nest-ui-progress.d.ts → index.d.ts} +0 -0
  809. package/progress/progress.component.d.ts +1 -1
  810. package/progress/progress.property.d.ts +1 -1
  811. package/radio/{ng-nest-ui-radio.d.ts → index.d.ts} +0 -0
  812. package/radio/radio.component.d.ts +1 -1
  813. package/radio/radio.property.d.ts +1 -1
  814. package/rate/{ng-nest-ui-rate.d.ts → index.d.ts} +0 -0
  815. package/rate/rate.component.d.ts +1 -1
  816. package/rate/rate.property.d.ts +1 -1
  817. package/resizable/{ng-nest-ui-resizable.d.ts → index.d.ts} +0 -0
  818. package/resizable/resizable.directive.d.ts +1 -1
  819. package/resizable/resizable.property.d.ts +1 -1
  820. package/result/{ng-nest-ui-result.d.ts → index.d.ts} +0 -0
  821. package/result/result.component.d.ts +1 -1
  822. package/result/result.property.d.ts +1 -1
  823. package/ripple/{ng-nest-ui-ripple.d.ts → index.d.ts} +0 -0
  824. package/ripple/ripple.directive.d.ts +1 -1
  825. package/ripple/ripple.property.d.ts +1 -1
  826. package/select/examples/en_US/default/search/README.md +6 -0
  827. package/select/examples/zh_CN/default/search/README.md +6 -0
  828. package/select/{ng-nest-ui-select.d.ts → index.d.ts} +0 -0
  829. package/select/select-portal.component.d.ts +7 -2
  830. package/select/select.component.d.ts +9 -2
  831. package/select/select.property.d.ts +51 -1
  832. package/skeleton/{ng-nest-ui-skeleton.d.ts → index.d.ts} +0 -0
  833. package/skeleton/skeleton.component.d.ts +1 -1
  834. package/skeleton/skeleton.property.d.ts +1 -1
  835. package/slider/{ng-nest-ui-slider.d.ts → index.d.ts} +0 -0
  836. package/slider/slider.component.d.ts +1 -1
  837. package/slider/slider.property.d.ts +1 -1
  838. package/slider-select/{ng-nest-ui-slider-select.d.ts → index.d.ts} +0 -0
  839. package/slider-select/slider-select.component.d.ts +1 -1
  840. package/slider-select/slider-select.property.d.ts +1 -1
  841. package/statistic/countdown.component.d.ts +1 -1
  842. package/statistic/{ng-nest-ui-statistic.d.ts → index.d.ts} +0 -0
  843. package/statistic/statistic.component.d.ts +1 -1
  844. package/statistic/statistic.property.d.ts +2 -2
  845. package/steps/{ng-nest-ui-steps.d.ts → index.d.ts} +0 -0
  846. package/steps/steps.component.d.ts +1 -1
  847. package/steps/steps.property.d.ts +1 -1
  848. package/switch/{ng-nest-ui-switch.d.ts → index.d.ts} +0 -0
  849. package/switch/switch.component.d.ts +1 -1
  850. package/switch/switch.property.d.ts +1 -1
  851. package/table/drag.directive.d.ts +1 -1
  852. package/table/examples/en_US/default/fix/README.md +6 -0
  853. package/table/examples/en_US/default/header/README.md +6 -0
  854. package/table/examples/zh_CN/default/fix/README.md +6 -0
  855. package/table/examples/zh_CN/default/header/README.md +6 -0
  856. package/table/{ng-nest-ui-table.d.ts → index.d.ts} +0 -0
  857. package/table/table-body.component.d.ts +1 -1
  858. package/table/table-foot.component.d.ts +2 -1
  859. package/table/table-head.component.d.ts +3 -2
  860. package/table/table.component.d.ts +11 -2
  861. package/table/table.property.d.ts +34 -4
  862. package/tabs/{ng-nest-ui-tabs.d.ts → index.d.ts} +0 -0
  863. package/tabs/tab-content.component.d.ts +1 -1
  864. package/tabs/tab.component.d.ts +1 -1
  865. package/tabs/tabs.component.d.ts +1 -1
  866. package/tabs/tabs.property.d.ts +2 -2
  867. package/tag/{ng-nest-ui-tag.d.ts → index.d.ts} +0 -0
  868. package/tag/tag.component.d.ts +1 -1
  869. package/tag/tag.property.d.ts +1 -1
  870. package/text-retract/{ng-nest-ui-text-retract.d.ts → index.d.ts} +0 -0
  871. package/text-retract/text-retract.component.d.ts +1 -1
  872. package/text-retract/text-retract.property.d.ts +1 -1
  873. package/textarea/{ng-nest-ui-textarea.d.ts → index.d.ts} +0 -0
  874. package/textarea/textarea.component.d.ts +1 -1
  875. package/textarea/textarea.property.d.ts +1 -1
  876. package/theme/{ng-nest-ui-theme.d.ts → index.d.ts} +0 -0
  877. package/theme/theme.component.d.ts +3 -3
  878. package/theme/theme.property.d.ts +1 -1
  879. package/time-ago/{ng-nest-ui-time-ago.d.ts → index.d.ts} +0 -0
  880. package/time-ago/time-ago.pipe.d.ts +1 -1
  881. package/time-picker/{ng-nest-ui-time-picker.d.ts → index.d.ts} +0 -0
  882. package/time-picker/time-picker-frame.component.d.ts +1 -1
  883. package/time-picker/time-picker-portal.component.d.ts +1 -1
  884. package/time-picker/time-picker.component.d.ts +1 -1
  885. package/time-picker/time-picker.property.d.ts +1 -1
  886. package/time-range/{ng-nest-ui-time-range.d.ts → index.d.ts} +0 -0
  887. package/time-range/time-range.pipe.d.ts +1 -1
  888. package/timeline/{ng-nest-ui-timeline.d.ts → index.d.ts} +0 -0
  889. package/timeline/timeline.component.d.ts +1 -1
  890. package/timeline/timeline.property.d.ts +1 -1
  891. package/tooltip/{ng-nest-ui-tooltip.d.ts → index.d.ts} +0 -0
  892. package/tooltip/tooltip-portal.component.d.ts +1 -1
  893. package/tooltip/tooltip.directive.d.ts +1 -1
  894. package/tooltip/tooltip.property.d.ts +1 -1
  895. package/transfer/{ng-nest-ui-transfer.d.ts → index.d.ts} +0 -0
  896. package/transfer/transfer.component.d.ts +1 -1
  897. package/transfer/transfer.property.d.ts +1 -1
  898. package/tree/{ng-nest-ui-tree.d.ts → index.d.ts} +0 -0
  899. package/tree/tree-node.component.d.ts +1 -4
  900. package/tree/tree.component.d.ts +4 -1
  901. package/tree/tree.property.d.ts +7 -2
  902. package/tree-file/{ng-nest-ui-tree-file.d.ts → index.d.ts} +0 -0
  903. package/tree-file/tree-file.component.d.ts +1 -1
  904. package/tree-file/tree-file.property.d.ts +1 -1
  905. package/typography/{ng-nest-ui-typography.d.ts → index.d.ts} +0 -0
  906. package/typography/typography.component.d.ts +1 -1
  907. package/typography/typography.property.d.ts +1 -1
  908. package/upload/{ng-nest-ui-upload.d.ts → index.d.ts} +0 -0
  909. package/upload/upload-portal.component.d.ts +1 -1
  910. package/upload/upload.component.d.ts +1 -1
  911. package/upload/upload.property.d.ts +1 -1
  912. package/affix/package.json +0 -10
  913. package/alert/package.json +0 -10
  914. package/anchor/package.json +0 -10
  915. package/api/package.json +0 -10
  916. package/auto-complete/package.json +0 -10
  917. package/avatar/package.json +0 -10
  918. package/back-top/package.json +0 -10
  919. package/badge/package.json +0 -10
  920. package/base-form/package.json +0 -10
  921. package/border/package.json +0 -10
  922. package/button/package.json +0 -10
  923. package/calendar/package.json +0 -10
  924. package/card/package.json +0 -10
  925. package/carousel/package.json +0 -10
  926. package/cascade/package.json +0 -10
  927. package/checkbox/package.json +0 -10
  928. package/collapse/package.json +0 -10
  929. package/color/package.json +0 -10
  930. package/color-picker/package.json +0 -10
  931. package/comment/package.json +0 -10
  932. package/container/package.json +0 -10
  933. package/core/package.json +0 -10
  934. package/crumb/package.json +0 -10
  935. package/date-picker/package.json +0 -10
  936. package/description/package.json +0 -10
  937. package/dialog/package.json +0 -10
  938. package/doc/package.json +0 -10
  939. package/drawer/package.json +0 -10
  940. package/dropdown/package.json +0 -10
  941. package/empty/package.json +0 -10
  942. package/examples/package.json +0 -10
  943. package/find/package.json +0 -10
  944. package/form/package.json +0 -10
  945. package/highlight/package.json +0 -10
  946. package/i18n/package.json +0 -10
  947. package/icon/package.json +0 -10
  948. package/inner/package.json +0 -10
  949. package/input/package.json +0 -10
  950. package/input-number/package.json +0 -10
  951. package/layout/package.json +0 -10
  952. package/link/package.json +0 -10
  953. package/list/package.json +0 -10
  954. package/loading/package.json +0 -10
  955. package/menu/package.json +0 -10
  956. package/message/package.json +0 -10
  957. package/message-box/package.json +0 -10
  958. package/ng-nest-ui.d.ts +0 -5
  959. package/notification/package.json +0 -10
  960. package/outlet/package.json +0 -10
  961. package/page-header/package.json +0 -10
  962. package/pagination/package.json +0 -10
  963. package/pattern/package.json +0 -10
  964. package/popconfirm/package.json +0 -10
  965. package/popover/package.json +0 -10
  966. package/portal/package.json +0 -10
  967. package/progress/package.json +0 -10
  968. package/radio/package.json +0 -10
  969. package/rate/package.json +0 -10
  970. package/resizable/package.json +0 -10
  971. package/result/package.json +0 -10
  972. package/ripple/package.json +0 -10
  973. package/select/package.json +0 -10
  974. package/skeleton/package.json +0 -10
  975. package/slider/package.json +0 -10
  976. package/slider-select/package.json +0 -10
  977. package/statistic/package.json +0 -10
  978. package/steps/package.json +0 -10
  979. package/switch/package.json +0 -10
  980. package/table/package.json +0 -10
  981. package/tabs/package.json +0 -10
  982. package/tag/package.json +0 -10
  983. package/text-retract/package.json +0 -10
  984. package/textarea/package.json +0 -10
  985. package/theme/package.json +0 -10
  986. package/time-ago/package.json +0 -10
  987. package/time-picker/package.json +0 -10
  988. package/time-range/package.json +0 -10
  989. package/timeline/package.json +0 -10
  990. package/tooltip/package.json +0 -10
  991. package/transfer/package.json +0 -10
  992. package/tree/package.json +0 -10
  993. package/tree-file/package.json +0 -10
  994. package/typography/package.json +0 -10
  995. package/upload/package.json +0 -10
@@ -7,12 +7,12 @@ import { transferArrayItem, moveItemInArray } from '@angular/cdk/drag-drop';
7
7
  import { XValueAccessor } from '@ng-nest/ui/base-form';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "@ng-nest/ui/core";
10
- import * as i2 from "@ng-nest/ui/button";
11
- import * as i3 from "@ng-nest/ui/checkbox";
10
+ import * as i2 from "@angular/common";
11
+ import * as i3 from "@angular/forms";
12
12
  import * as i4 from "@angular/cdk/drag-drop";
13
- import * as i5 from "@angular/common";
14
- import * as i6 from "@angular/forms";
15
- import * as i7 from "@ng-nest/ui/outlet";
13
+ import * as i5 from "@ng-nest/ui/outlet";
14
+ import * as i6 from "@ng-nest/ui/checkbox";
15
+ import * as i7 from "@ng-nest/ui/button";
16
16
  export class XTransferComponent extends XTransferProperty {
17
17
  constructor(renderer, elementRef, cdr, configService) {
18
18
  super();
@@ -181,10 +181,10 @@ export class XTransferComponent extends XTransferProperty {
181
181
  this.cdr.detectChanges();
182
182
  }
183
183
  }
184
- /** @nocollapse */ /** @nocollapse */ XTransferComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: XTransferComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
185
- /** @nocollapse */ /** @nocollapse */ XTransferComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: XTransferComponent, selector: "x-transfer", providers: [XValueAccessor(XTransferComponent)], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #transfer class=\"x-transfer\" cdkDropListGroup [ngClass]=\"classMap\">\r\n <div class=\"x-transfer-box\">\r\n <ng-container *ngTemplateOutlet=\"sourceTitleTpl; context: { source: left }\"></ng-container>\r\n <ul\r\n class=\"x-transfer-list\"\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListData]=\"left.list\"\r\n [cdkDropListDisabled]=\"!drag\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n <li class=\"x-transfer-item\" *ngFor=\"let node of left.list; trackBy: trackByNode\" cdkDrag [cdkDragData]=\"node\">\r\n <ng-container *ngTemplateOutlet=\"sourceNodeTpl; context: { node: node, source: left }\"></ng-container>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"x-transfer-buttons\">\r\n <x-button type=\"primary\" icon=\"fto-chevron-right\" [disabled]=\"left.disabledButton\" (click)=\"move(left, right)\"></x-button>\r\n <x-button type=\"primary\" icon=\"fto-chevron-left\" [disabled]=\"right.disabledButton\" (click)=\"move(right, left)\"></x-button>\r\n </div>\r\n <div class=\"x-transfer-box\">\r\n <ng-container *ngTemplateOutlet=\"sourceTitleTpl; context: { source: right }\"></ng-container>\r\n <ul\r\n class=\"x-transfer-list\"\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListData]=\"right.list\"\r\n [cdkDropListDisabled]=\"!drag\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n <li class=\"x-transfer-item\" *ngFor=\"let node of right.list; trackBy: trackByNode\" cdkDrag [cdkDragData]=\"node\">\r\n <ng-container *ngTemplateOutlet=\"sourceNodeTpl; context: { node: node, source: right }\"></ng-container>\r\n </li>\r\n </ul>\r\n </div>\r\n</div>\r\n\r\n<ng-template #sourceTitleTpl let-source=\"source\">\r\n <div class=\"x-transfer-title\">\r\n <x-checkbox\r\n [data]=\"[titleTpl ? '' : source.title]\"\r\n [(ngModel)]=\"source.checkedAll\"\r\n (ngModelChange)=\"checkedAllChange($event, source)\"\r\n [indeterminate]=\"source.indeterminate\"\r\n ></x-checkbox>\r\n <ng-container *xOutlet=\"titleTpl; context: { $title: source.title, $checkedCount: source.checkedCount, $count: source.list.length }\"\r\n ><span>{{ source.checkedCount }} / {{ source.list.length }}</span></ng-container\r\n >\r\n </div>\r\n <!-- <div class=\"x-transfer-search\" *ngIf=\"search\">\r\n <x-input\r\n icon=\"fto-search\"\r\n [(ngModel)]=\"source.searchInput\"\r\n (ngModelChange)=\"searchInputChange(source)\"\r\n clearable\r\n ></x-input>\r\n </div> -->\r\n</ng-template>\r\n\r\n<ng-template #sourceNodeTpl let-node=\"node\" let-source=\"source\">\r\n <x-checkbox\r\n [data]=\"[{ id: node.id, label: nodeTpl ? nodeTpl : node.label, node: node }]\"\r\n [disabled]=\"node.disabled\"\r\n [(ngModel)]=\"node.checked\"\r\n (ngModelChange)=\"checkedChange($event, source)\"\r\n ></x-checkbox>\r\n</ng-template>\r\n", styles: [".x-transfer{margin:0;padding:0;display:inline-flex;align-items:center}.x-transfer-box{border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);width:12rem}.x-transfer-title{padding:.25rem .5625rem;display:flex;align-items:center;justify-content:space-between;border-bottom:.0625rem solid var(--x-border);background-color:var(--x-background);color:var(--x-text-300)}.x-transfer-title>span{margin-left:.325rem}.x-transfer-list{display:flex;flex-direction:column;padding:.25rem;height:18rem;overflow-y:auto}.x-transfer-list>li{padding:.125rem .25rem;border-radius:var(--x-border-radius);display:flex;align-items:center;border:.0625rem dashed transparent;transition:border-color var(--x-animation-duration-base),background-color var(--x-animation-duration-base),color var(--x-animation-duration-base)}.x-transfer-list.cdk-drop-list-dragging>li:hover{background-color:transparent}.x-transfer-list.cdk-drop-list-dragging>li.cdk-drag-placeholder{border-color:var(--x-border);color:var(--x-text-400);background-color:var(--x-background-a100);opacity:.9}.x-transfer-list.cdk-drop-list-dragging>li:not(.cdk-drag-placeholder){transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}.x-transfer-buttons{margin:0 1rem;display:flex;flex-direction:column}.x-transfer-buttons>x-button:not(:first-child){margin-top:.5rem}.x-transfer-search{padding:.5rem;border-bottom:.0625rem solid var(--x-border)}body>li.x-transfer-item.cdk-drag-preview{padding:.125rem .25rem;border-radius:var(--x-border-radius);display:flex;align-items:center;border:.0625rem dashed transparent;border-color:var(--x-primary);color:var(--x-primary);background-color:var(--x-background);opacity:.8}body>li.x-transfer-item.cdk-drag-animating{transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}\n"], components: [{ type: i2.XButtonComponent, selector: "x-button" }, { type: i3.XCheckboxComponent, selector: "x-checkbox" }], directives: [{ type: i4.CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
186
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: XTransferComponent, decorators: [{
184
+ /** @nocollapse */ XTransferComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTransferComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
185
+ /** @nocollapse */ XTransferComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTransferComponent, selector: "x-transfer", providers: [XValueAccessor(XTransferComponent)], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #transfer class=\"x-transfer\" cdkDropListGroup [ngClass]=\"classMap\">\r\n <div class=\"x-transfer-box\">\r\n <ng-container *ngTemplateOutlet=\"sourceTitleTpl; context: { source: left }\"></ng-container>\r\n <ul\r\n class=\"x-transfer-list\"\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListData]=\"left.list\"\r\n [cdkDropListDisabled]=\"!drag\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n <li class=\"x-transfer-item\" *ngFor=\"let node of left.list; trackBy: trackByNode\" cdkDrag [cdkDragData]=\"node\">\r\n <ng-container *ngTemplateOutlet=\"sourceNodeTpl; context: { node: node, source: left }\"></ng-container>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"x-transfer-buttons\">\r\n <x-button type=\"primary\" icon=\"fto-chevron-right\" [disabled]=\"left.disabledButton\" (click)=\"move(left, right)\"></x-button>\r\n <x-button type=\"primary\" icon=\"fto-chevron-left\" [disabled]=\"right.disabledButton\" (click)=\"move(right, left)\"></x-button>\r\n </div>\r\n <div class=\"x-transfer-box\">\r\n <ng-container *ngTemplateOutlet=\"sourceTitleTpl; context: { source: right }\"></ng-container>\r\n <ul\r\n class=\"x-transfer-list\"\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListData]=\"right.list\"\r\n [cdkDropListDisabled]=\"!drag\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n <li class=\"x-transfer-item\" *ngFor=\"let node of right.list; trackBy: trackByNode\" cdkDrag [cdkDragData]=\"node\">\r\n <ng-container *ngTemplateOutlet=\"sourceNodeTpl; context: { node: node, source: right }\"></ng-container>\r\n </li>\r\n </ul>\r\n </div>\r\n</div>\r\n\r\n<ng-template #sourceTitleTpl let-source=\"source\">\r\n <div class=\"x-transfer-title\">\r\n <x-checkbox\r\n [data]=\"[titleTpl ? '' : source.title]\"\r\n [(ngModel)]=\"source.checkedAll\"\r\n (ngModelChange)=\"checkedAllChange($event, source)\"\r\n [indeterminate]=\"source.indeterminate\"\r\n ></x-checkbox>\r\n <ng-container *xOutlet=\"titleTpl; context: { $title: source.title, $checkedCount: source.checkedCount, $count: source.list.length }\"\r\n ><span>{{ source.checkedCount }} / {{ source.list.length }}</span></ng-container\r\n >\r\n </div>\r\n <!-- <div class=\"x-transfer-search\" *ngIf=\"search\">\r\n <x-input\r\n icon=\"fto-search\"\r\n [(ngModel)]=\"source.searchInput\"\r\n (ngModelChange)=\"searchInputChange(source)\"\r\n clearable\r\n ></x-input>\r\n </div> -->\r\n</ng-template>\r\n\r\n<ng-template #sourceNodeTpl let-node=\"node\" let-source=\"source\">\r\n <x-checkbox\r\n [data]=\"[{ id: node.id, label: nodeTpl ? nodeTpl : node.label, node: node }]\"\r\n [disabled]=\"node.disabled\"\r\n [(ngModel)]=\"node.checked\"\r\n (ngModelChange)=\"checkedChange($event, source)\"\r\n ></x-checkbox>\r\n</ng-template>\r\n", styles: [".x-transfer{margin:0;padding:0;display:inline-flex;align-items:center}.x-transfer-box{border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);width:12rem}.x-transfer-title{padding:.25rem .5625rem;display:flex;align-items:center;justify-content:space-between;border-bottom:.0625rem solid var(--x-border);background-color:var(--x-background);color:var(--x-text-300)}.x-transfer-title>span{margin-left:.325rem}.x-transfer-list{display:flex;flex-direction:column;padding:.25rem;height:18rem;overflow-y:auto}.x-transfer-list>li{padding:.125rem .25rem;border-radius:var(--x-border-radius);display:flex;align-items:center;border:.0625rem dashed transparent;transition:border-color var(--x-animation-duration-base),background-color var(--x-animation-duration-base),color var(--x-animation-duration-base)}.x-transfer-list.cdk-drop-list-dragging>li:hover{background-color:transparent}.x-transfer-list.cdk-drop-list-dragging>li.cdk-drag-placeholder{border-color:var(--x-border);color:var(--x-text-400);background-color:var(--x-background-a100);opacity:.9}.x-transfer-list.cdk-drop-list-dragging>li:not(.cdk-drag-placeholder){transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}.x-transfer-buttons{margin:0 1rem;display:flex;flex-direction:column}.x-transfer-buttons>x-button:not(:first-child){margin-top:.5rem}.x-transfer-search{padding:.5rem;border-bottom:.0625rem solid var(--x-border)}body>li.x-transfer-item.cdk-drag-preview{padding:.125rem .25rem;border-radius:var(--x-border-radius);display:flex;align-items:center;border:.0625rem dashed transparent;border-color:var(--x-primary);color:var(--x-primary);background-color:var(--x-background);opacity:.8}body>li.x-transfer-item.cdk-drag-animating{transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i4.CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { kind: "directive", type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i5.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: i6.XCheckboxComponent, selector: "x-checkbox" }, { kind: "component", type: i7.XButtonComponent, selector: "x-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
186
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTransferComponent, decorators: [{
187
187
  type: Component,
188
188
  args: [{ selector: `${XTransferPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XTransferComponent)], template: "<div #transfer class=\"x-transfer\" cdkDropListGroup [ngClass]=\"classMap\">\r\n <div class=\"x-transfer-box\">\r\n <ng-container *ngTemplateOutlet=\"sourceTitleTpl; context: { source: left }\"></ng-container>\r\n <ul\r\n class=\"x-transfer-list\"\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListData]=\"left.list\"\r\n [cdkDropListDisabled]=\"!drag\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n <li class=\"x-transfer-item\" *ngFor=\"let node of left.list; trackBy: trackByNode\" cdkDrag [cdkDragData]=\"node\">\r\n <ng-container *ngTemplateOutlet=\"sourceNodeTpl; context: { node: node, source: left }\"></ng-container>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"x-transfer-buttons\">\r\n <x-button type=\"primary\" icon=\"fto-chevron-right\" [disabled]=\"left.disabledButton\" (click)=\"move(left, right)\"></x-button>\r\n <x-button type=\"primary\" icon=\"fto-chevron-left\" [disabled]=\"right.disabledButton\" (click)=\"move(right, left)\"></x-button>\r\n </div>\r\n <div class=\"x-transfer-box\">\r\n <ng-container *ngTemplateOutlet=\"sourceTitleTpl; context: { source: right }\"></ng-container>\r\n <ul\r\n class=\"x-transfer-list\"\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListData]=\"right.list\"\r\n [cdkDropListDisabled]=\"!drag\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n <li class=\"x-transfer-item\" *ngFor=\"let node of right.list; trackBy: trackByNode\" cdkDrag [cdkDragData]=\"node\">\r\n <ng-container *ngTemplateOutlet=\"sourceNodeTpl; context: { node: node, source: right }\"></ng-container>\r\n </li>\r\n </ul>\r\n </div>\r\n</div>\r\n\r\n<ng-template #sourceTitleTpl let-source=\"source\">\r\n <div class=\"x-transfer-title\">\r\n <x-checkbox\r\n [data]=\"[titleTpl ? '' : source.title]\"\r\n [(ngModel)]=\"source.checkedAll\"\r\n (ngModelChange)=\"checkedAllChange($event, source)\"\r\n [indeterminate]=\"source.indeterminate\"\r\n ></x-checkbox>\r\n <ng-container *xOutlet=\"titleTpl; context: { $title: source.title, $checkedCount: source.checkedCount, $count: source.list.length }\"\r\n ><span>{{ source.checkedCount }} / {{ source.list.length }}</span></ng-container\r\n >\r\n </div>\r\n <!-- <div class=\"x-transfer-search\" *ngIf=\"search\">\r\n <x-input\r\n icon=\"fto-search\"\r\n [(ngModel)]=\"source.searchInput\"\r\n (ngModelChange)=\"searchInputChange(source)\"\r\n clearable\r\n ></x-input>\r\n </div> -->\r\n</ng-template>\r\n\r\n<ng-template #sourceNodeTpl let-node=\"node\" let-source=\"source\">\r\n <x-checkbox\r\n [data]=\"[{ id: node.id, label: nodeTpl ? nodeTpl : node.label, node: node }]\"\r\n [disabled]=\"node.disabled\"\r\n [(ngModel)]=\"node.checked\"\r\n (ngModelChange)=\"checkedChange($event, source)\"\r\n ></x-checkbox>\r\n</ng-template>\r\n", styles: [".x-transfer{margin:0;padding:0;display:inline-flex;align-items:center}.x-transfer-box{border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);width:12rem}.x-transfer-title{padding:.25rem .5625rem;display:flex;align-items:center;justify-content:space-between;border-bottom:.0625rem solid var(--x-border);background-color:var(--x-background);color:var(--x-text-300)}.x-transfer-title>span{margin-left:.325rem}.x-transfer-list{display:flex;flex-direction:column;padding:.25rem;height:18rem;overflow-y:auto}.x-transfer-list>li{padding:.125rem .25rem;border-radius:var(--x-border-radius);display:flex;align-items:center;border:.0625rem dashed transparent;transition:border-color var(--x-animation-duration-base),background-color var(--x-animation-duration-base),color var(--x-animation-duration-base)}.x-transfer-list.cdk-drop-list-dragging>li:hover{background-color:transparent}.x-transfer-list.cdk-drop-list-dragging>li.cdk-drag-placeholder{border-color:var(--x-border);color:var(--x-text-400);background-color:var(--x-background-a100);opacity:.9}.x-transfer-list.cdk-drop-list-dragging>li:not(.cdk-drag-placeholder){transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}.x-transfer-buttons{margin:0 1rem;display:flex;flex-direction:column}.x-transfer-buttons>x-button:not(:first-child){margin-top:.5rem}.x-transfer-search{padding:.5rem;border-bottom:.0625rem solid var(--x-border)}body>li.x-transfer-item.cdk-drag-preview{padding:.125rem .25rem;border-radius:var(--x-border-radius);display:flex;align-items:center;border:.0625rem dashed transparent;border-color:var(--x-primary);color:var(--x-primary);background-color:var(--x-background);opacity:.8}body>li.x-transfer-item.cdk-drag-animating{transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}\n"] }]
189
189
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }]; } });
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdHJhbnNmZXIvdHJhbnNmZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdHJhbnNmZXIvdHJhbnNmZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFJakIsdUJBQXVCLEVBSXhCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQWtDLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekcsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFrQixNQUFNLGtCQUFrQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBd0IsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7OztBQVV2RCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsaUJBQWlCO0lBdUJ2RCxZQUNTLFFBQW1CLEVBQ25CLFVBQXNCLEVBQ3RCLEdBQXNCLEVBQ3RCLGFBQTZCO1FBRXBDLEtBQUssRUFBRSxDQUFDO1FBTEQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQTFCdEMsVUFBSyxHQUFvQixFQUFFLENBQUM7UUFDNUIsU0FBSSxHQUFvQjtZQUN0QixJQUFJLEVBQUUsRUFB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LE9BQU8sQ0FBQztTQUM1QjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7O3NKQWpMVSxrQkFBa0I7MElBQWxCLGtCQUFrQixxQ0FGbEIsQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxzRUN6QmpELHk3RkFtRUE7NEZEeENhLGtCQUFrQjtrQkFSOUIsU0FBUzsrQkFDRSxHQUFHLGVBQWUsRUFBRSxpQkFHZixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBSZW5kZXJlcjIsXHJcbiAgRWxlbWVudFJlZixcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3lcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFRyYW5zZmVyUHJlZml4LCBYVHJhbnNmZXJOb2RlLCBYVHJhbnNmZXJTb3VyY2UsIFhUcmFuc2ZlclByb3BlcnR5IH0gZnJvbSAnLi90cmFuc2Zlci5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJc0NoYW5nZSwgWElzRW1wdHksIFhTZXREYXRhLCBYQ29uZmlnU2VydmljZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWxheSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyB0cmFuc2ZlckFycmF5SXRlbSwgbW92ZUl0ZW1JbkFycmF5LCBDZGtEcmFnRHJvcCwgQ2RrRHJhZyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBYVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0BuZy1uZXN0L3VpL2Jhc2UtZm9ybSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFRyYW5zZmVyUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyYW5zZmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90cmFuc2Zlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbWFZhbHVlQWNjZXNzb3IoWFRyYW5zZmVyQ29tcG9uZW50KV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhUcmFuc2ZlckNvbXBvbmVudCBleHRlbmRzIFhUcmFuc2ZlclByb3BlcnR5IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgbm9kZXM6IFhUcmFuc2Zlck5vZGVbXSA9IFtdO1xyXG4gIGxlZnQ6IFhUcmFuc2ZlclNvdXJjZSA9IHtcclxuICAgIGxpc3Q6IFtdLFxyXG4gICAgc2VhcmNoTGlzdDogW10sXHJcbiAgICBjaGVja2VkQ291bnQ6IDAsXHJcbiAgICBkaXNhYmxlZEJ1dHRvbjogdHJ1ZVxyXG4gIH07XHJcbiAgcmlnaHQ6IFhUcmFuc2ZlclNvdXJjZSA9IHtcclxuICAgIGxpc3Q6IFtdLFxyXG4gICAgc2VhcmNoTGlzdDogW10sXHJcbiAgICBjaGVja2VkQ291bnQ6IDAsXHJcbiAgICBkaXNhYmxlZEJ1dHRvbjogdHJ1ZVxyXG4gIH07XHJcbiAgc2VhcmNoSW5wdXQ6IHN0cmluZyA9ICcnO1xyXG4gIHByaXZhdGUgX3RpdGxlcyA9IFsnTGlzdCcsICdTZWxlY3RlZCddO1xyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5zZXRMaXN0KCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zZXRUaXRsZXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGNvbnN0IHsgZGF0YSB9ID0gY2hhbmdlcztcclxuICAgIFhJc0NoYW5nZShkYXRhKSAmJiB0aGlzLnNldERhdGEoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgc2VhcmNoSW5wdXRDaGFuZ2Uoc291cmNlOiBYVHJhbnNmZXJTb3VyY2UpIHtcclxuICAgIHNvdXJjZS5saXN0ID0gc291cmNlLnNlYXJjaExpc3Q/LmZpbHRlcigoeCkgPT4geC5sYWJlbC5pbmRleE9mKHNvdXJjZS5zZWFyY2hJbnB1dCkgPj0gMCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBjaGVja2VkQWxsQ2hhbmdlKCRldmVudDogYm9vbGVhbiwgc291cmNlOiBYVHJhbnNmZXJTb3VyY2UpIHtcclxuICAgIGxldCBsaXN0ID0gKHNvdXJjZS5saXN0Py5maWx0ZXIoKHgpID0+ICF4LmRpc2FibGVkKSBhcyBYVHJhbnNmZXJOb2RlW10pLm1hcCgoeCkgPT4ge1xyXG4gICAgICB4LmNoZWNrZWQgPSAkZXZlbnQ7XHJcbiAgICAgIHJldHVybiB4O1xyXG4gICAgfSk7XHJcbiAgICBzb3VyY2UuY2hlY2tlZENvdW50ID0gJGV2ZW50ID8gbGlzdC5sZW5ndGggOiAwO1xyXG4gICAgc291cmNlLmluZGV0ZXJtaW5hdGUgPSAkZXZlbnQ7XHJcbiAgICB0aGlzLnNldEJ1dHRvbkRpc2FibGVkKHNvdXJjZSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBjaGVja2VkQ2hhbmdlKCRldmVudDogYm9vbGVhbiwgc291cmNlOiBYVHJhbnNmZXJTb3VyY2UpIHtcclxuICAgIGlmICghJGV2ZW50KSAoc291cmNlLmNoZWNrZWRDb3VudCBhcyBudW1iZXIpLS07XHJcbiAgICBlbHNlIChzb3VyY2UuY2hlY2tlZENvdW50IGFzIG51bWJlcikrKztcclxuICAgIHRoaXMuc2V0Q2hlY2tlZEFsbChzb3VyY2UpO1xyXG4gICAgdGhpcy5zZXRCdXR0b25EaXNhYmxlZChzb3VyY2UpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgbW92ZShmcm9tOiBYVHJhbnNmZXJTb3VyY2UsIHRvOiBYVHJhbnNmZXJTb3VyY2UpIHtcclxuICAgIGlmIChmcm9tLmRpc2FibGVkQnV0dG9uKSByZXR1cm47XHJcbiAgICBsZXQgY2hlY2tlZEl0ZW1zID0gZnJvbS5saXN0Py5maWx0ZXIoKHgpID0+ICFYSXNFbXB0eSh4LmNoZWNrZWQpKSBhcyBYVHJhbnNmZXJOb2RlW107XHJcbiAgICBsZXQgaiA9IDA7XHJcbiAgICBjaGVja2VkSXRlbXMuZm9yRWFjaCgoeCkgPT4ge1xyXG4gICAgICBjb25zdCBpbmRleCA9IGZyb20ubGlzdD8uaW5kZXhPZih4KSBhcyBudW1iZXI7XHJcbiAgICAgIHguY2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgICB0cmFuc2ZlckFycmF5SXRlbShmcm9tLmxpc3QgYXMgWFRyYW5zZmVyTm9kZVtdLCB0by5saXN0IGFzIFhUcmFuc2Zlck5vZGVbXSwgaW5kZXgsIGopO1xyXG4gICAgICBqKys7XHJcbiAgICB9KTtcclxuICAgIGZyb20uY2hlY2tlZEFsbCA9IGZhbHNlO1xyXG4gICAgZnJvbS5jaGVja2VkQ291bnQgPSAwO1xyXG4gICAgZnJvbS5pbmRldGVybWluYXRlID0gZmFsc2U7XHJcbiAgICBmcm9tLmRpc2FibGVkQnV0dG9uID0gdHJ1ZTtcclxuICAgIHRoaXMuc2V0U2VhcmNoTGlzdChmcm9tLCB0byk7XHJcbiAgICB0aGlzLnNldFZhbHVlKCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBkcm9wQ2RrKGV2ZW50OiBDZGtEcmFnRHJvcDxYVHJhbnNmZXJOb2RlW10gfCB1bmRlZmluZWQsIGFueT4pIHtcclxuICAgIGNvbnN0IGV2ID0gZXZlbnQgYXMgQ2RrRHJhZ0Ryb3A8WFRyYW5zZmVyTm9kZVtdPjtcclxuICAgIGlmIChldi5wcmV2aW91c0NvbnRhaW5lciA9PT0gZXYuY29udGFpbmVyKSB7XHJcbiAgICAgIG1vdmVJdGVtSW5BcnJheShldi5jb250YWluZXIuZGF0YSwgZXYucHJldmlvdXNJbmRleCwgZXYuY3VycmVudEluZGV4KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRyYW5zZmVyQXJyYXlJdGVtKGV2LnByZXZpb3VzQ29udGFpbmVyLmRhdGEsIGV2LmNvbnRhaW5lci5kYXRhLCBldi5wcmV2aW91c0luZGV4LCBldi5jdXJyZW50SW5kZXgpO1xyXG4gICAgICB0aGlzLnNldENoZWNrZWRDb3VudCh0aGlzLmxlZnQsIHRoaXMucmlnaHQpO1xyXG4gICAgICB0aGlzLnNldENoZWNrZWRBbGwodGhpcy5sZWZ0LCB0aGlzLnJpZ2h0KTtcclxuICAgICAgdGhpcy5zZXRCdXR0b25EaXNhYmxlZCh0aGlzLmxlZnQsIHRoaXMucmlnaHQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRTZWFyY2hMaXN0KHRoaXMubGVmdCwgdGhpcy5yaWdodCk7XHJcbiAgICB0aGlzLnNldFZhbHVlKCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwcmVkaWNhdGUoaXRlbTogQ2RrRHJhZzxYVHJhbnNmZXJOb2RlPikge1xyXG4gICAgcmV0dXJuICFpdGVtLmRhdGEuZGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICB0cmFja0J5Tm9kZShfaW5kZXg6IG51bWJlciwgaXRlbTogWFRyYW5zZmVyTm9kZSkge1xyXG4gICAgcmV0dXJuIGl0ZW0uaWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldENoZWNrZWRBbGwoLi4uc291cmNlczogWFRyYW5zZmVyU291cmNlW10pIHtcclxuICAgIGZvciAobGV0IHNvdXJjZSBvZiBzb3VyY2VzKSB7XHJcbiAgICAgIGlmICgoc291cmNlLmNoZWNrZWRDb3VudCBhcyBudW1iZXIpID4gMCkge1xyXG4gICAgICAgIGlmIChzb3VyY2UuY2hlY2tlZENvdW50ID09PSBzb3VyY2UubGlzdD8uZmlsdGVyKCh4KSA9PiAheC5kaXNhYmxlZCkubGVuZ3RoKSB7XHJcbiAgICAgICAgICBzb3VyY2UuY2hlY2tlZEFsbCA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHNvdXJjZS5jaGVja2VkQWxsID0gZmFsc2U7XHJcbiAgICAgICAgICBzb3VyY2UuaW5kZXRlcm1pbmF0ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNvdXJjZS5pbmRldGVybWluYXRlID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0Q2hlY2tlZENvdW50KC4uLnNvdXJjZXM6IFhUcmFuc2ZlclNvdXJjZVtdKSB7XHJcbiAgICBmb3IgKGxldCBzb3VyY2Ugb2Ygc291cmNlcykgc291cmNlLmNoZWNrZWRDb3VudCA9IHNvdXJjZS5saXN0Py5maWx0ZXIoKHgpID0+ICFYSXNFbXB0eSh4LmNoZWNrZWQpKS5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEJ1dHRvbkRpc2FibGVkKC4uLnNvdXJjZXM6IFhUcmFuc2ZlclNvdXJjZVtdKSB7XHJcbiAgICBmb3IgKGxldCBzb3VyY2Ugb2Ygc291cmNlcykgc291cmNlLmRpc2FibGVkQnV0dG9uID0gc291cmNlLmNoZWNrZWRDb3VudCA9PT0gMDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VmFsdWUoKSB7XHJcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5yaWdodC5saXN0Py5tYXAoKHgpID0+IHguaWQpIGFzIGFueVtdO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0U2VhcmNoTGlzdCguLi5zb3VyY2VzOiBYVHJhbnNmZXJTb3VyY2VbXSkge1xyXG4gICAgaWYgKHRoaXMuc2VhcmNoKSB7XHJcbiAgICAgIGZvciAobGV0IHNvdXJjZSBvZiBzb3VyY2VzKSB7XHJcbiAgICAgICAgaWYgKFhJc0VtcHR5KHNvdXJjZS5zZWFyY2hJbnB1dCkpIHtcclxuICAgICAgICAgIHNvdXJjZS5zZWFyY2hMaXN0ID0gWy4uLihzb3VyY2UubGlzdCBhcyBYVHJhbnNmZXJOb2RlW10pXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0RGF0YSgpIHtcclxuICAgIFhTZXREYXRhPFhUcmFuc2Zlck5vZGU+KHRoaXMuZGF0YSwgdGhpcy5fdW5TdWJqZWN0KS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy5ub2RlcyA9IHg7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0TGlzdCgpIHtcclxuICAgIGlmICghWElzRW1wdHkodGhpcy52YWx1ZSkpIHtcclxuICAgICAgdGhpcy5sZWZ0Lmxpc3QgPSB0aGlzLm5vZGVzLmZpbHRlcigoeCkgPT4gdGhpcy52YWx1ZS5pbmRleE9mKHguaWQpIDwgMCk7XHJcbiAgICAgIHRoaXMucmlnaHQubGlzdCA9IHRoaXMubm9kZXMuZmlsdGVyKCh4KSA9PiB0aGlzLnZhbHVlLmluZGV4T2YoeC5pZCkgPj0gMCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmxlZnQubGlzdCA9IHRoaXMubm9kZXM7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldFNlYXJjaExpc3QodGhpcy5sZWZ0LCB0aGlzLnJpZ2h0KTtcclxuICAgIC8vIFRvRG86IHgtY2hlY2tib3ggZXJyb3IuIEF0dGVtcHQgdG8gdXNlIGEgZGVzdHJveWVkIHZpZXc6IGRldGVjdENoYW5nZXNcclxuICAgIG9mKHRydWUpXHJcbiAgICAgIC5waXBlKGRlbGF5KDApLCB0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRUaXRsZXMoKSB7XHJcbiAgICBpZiAoWElzRW1wdHkodGhpcy50aXRsZXMpKSB7XHJcbiAgICAgIHRoaXMudGl0bGVzID0gdGhpcy5fdGl0bGVzO1xyXG4gICAgfVxyXG4gICAgdGhpcy5sZWZ0LnRpdGxlID0gdGhpcy50aXRsZXNbMF07XHJcbiAgICBpZiAodGhpcy50aXRsZXMubGVuZ3RoID4gMSkgdGhpcy5yaWdodC50aXRsZSA9IHRoaXMudGl0bGVzWzFdO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICN0cmFuc2ZlciBjbGFzcz1cIngtdHJhbnNmZXJcIiBjZGtEcm9wTGlzdEdyb3VwIFtuZ0NsYXNzXT1cImNsYXNzTWFwXCI+XHJcbiAgPGRpdiBjbGFzcz1cIngtdHJhbnNmZXItYm94XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic291cmNlVGl0bGVUcGw7IGNvbnRleHQ6IHsgc291cmNlOiBsZWZ0IH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDx1bFxyXG4gICAgICBjbGFzcz1cIngtdHJhbnNmZXItbGlzdFwiXHJcbiAgICAgIGNka0Ryb3BMaXN0XHJcbiAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcENkaygkZXZlbnQpXCJcclxuICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJsZWZ0Lmxpc3RcIlxyXG4gICAgICBbY2RrRHJvcExpc3REaXNhYmxlZF09XCIhZHJhZ1wiXHJcbiAgICAgIFtjZGtEcm9wTGlzdEVudGVyUHJlZGljYXRlXT1cInByZWRpY2F0ZVwiXHJcbiAgICA+XHJcbiAgICAgIDxsaSBjbGFzcz1cIngtdHJhbnNmZXItaXRlbVwiICpuZ0Zvcj1cImxldCBub2RlIG9mIGxlZnQubGlzdDsgdHJhY2tCeTogdHJhY2tCeU5vZGVcIiBjZGtEcmFnIFtjZGtEcmFnRGF0YV09XCJub2RlXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNvdXJjZU5vZGVUcGw7IGNvbnRleHQ6IHsgbm9kZTogbm9kZSwgc291cmNlOiBsZWZ0IH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9saT5cclxuICAgIDwvdWw+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIngtdHJhbnNmZXItYnV0dG9uc1wiPlxyXG4gICAgPHgtYnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgaWNvbj1cImZ0by1jaGV2cm9uLXJpZ2h0XCIgW2Rpc2FibGVkXT1cImxlZnQuZGlzYWJsZWRCdXR0b25cIiAoY2xpY2spPVwibW92ZShsZWZ0LCByaWdodClcIj48L3gtYnV0dG9uPlxyXG4gICAgPHgtYnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgaWNvbj1cImZ0by1jaGV2cm9uLWxlZnRcIiBbZGlzYWJsZWRdPVwicmlnaHQuZGlzYWJsZWRCdXR0b25cIiAoY2xpY2spPVwibW92ZShyaWdodCwgbGVmdClcIj48L3gtYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJ4LXRyYW5zZmVyLWJveFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNvdXJjZVRpdGxlVHBsOyBjb250ZXh0OiB7IHNvdXJjZTogcmlnaHQgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPHVsXHJcbiAgICAgIGNsYXNzPVwieC10cmFuc2Zlci1saXN0XCJcclxuICAgICAgY2RrRHJvcExpc3RcclxuICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wQ2RrKCRldmVudClcIlxyXG4gICAgICBbY2RrRHJvcExpc3REYXRhXT1cInJpZ2h0Lmxpc3RcIlxyXG4gICAgICBbY2RrRHJvcExpc3REaXNhYmxlZF09XCIhZHJhZ1wiXHJcbiAgICAgIFtjZGtEcm9wTGlzdEVudGVyUHJlZGljYXRlXT1cInByZWRpY2F0ZVwiXHJcbiAgICA+XHJcbiAgICAgIDxsaSBjbGFzcz1cIngtdHJhbnNmZXItaXRlbVwiICpuZ0Zvcj1cImxldCBub2RlIG9mIHJpZ2h0Lmxpc3Q7IHRyYWNrQnk6IHRyYWNrQnlOb2RlXCIgY2RrRHJhZyBbY2RrRHJhZ0RhdGFdPVwibm9kZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzb3VyY2VOb2RlVHBsOyBjb250ZXh0OiB7IG5vZGU6IG5vZGUsIHNvdXJjZTogcmlnaHQgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2xpPlxyXG4gICAgPC91bD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI3NvdXJjZVRpdGxlVHBsIGxldC1zb3VyY2U9XCJzb3VyY2VcIj5cclxuICA8ZGl2IGNsYXNzPVwieC10cmFuc2Zlci10aXRsZVwiPlxyXG4gICAgPHgtY2hlY2tib3hcclxuICAgICAgW2RhdGFdPVwiW3RpdGxlVHBsID8gJycgOiBzb3VyY2UudGl0bGVdXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJzb3VyY2UuY2hlY2tlZEFsbFwiXHJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoZWNrZWRBbGxDaGFuZ2UoJGV2ZW50LCBzb3VyY2UpXCJcclxuICAgICAgW2luZGV0ZXJtaW5hdGVdPVwic291cmNlLmluZGV0ZXJtaW5hdGVcIlxyXG4gICAgPjwveC1jaGVja2JveD5cclxuICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJ0aXRsZVRwbDsgY29udGV4dDogeyAkdGl0bGU6IHNvdXJjZS50aXRsZSwgJGNoZWNrZWRDb3VudDogc291cmNlLmNoZWNrZWRDb3VudCwgJGNvdW50OiBzb3VyY2UubGlzdC5sZW5ndGggfVwiXHJcbiAgICAgID48c3Bhbj57eyBzb3VyY2UuY2hlY2tlZENvdW50IH19IC8ge3sgc291cmNlLmxpc3QubGVuZ3RoIH19PC9zcGFuPjwvbmctY29udGFpbmVyXHJcbiAgICA+XHJcbiAgPC9kaXY+XHJcbiAgPCEtLSA8ZGl2IGNsYXNzPVwieC10cmFuc2Zlci1zZWFyY2hcIiAqbmdJZj1cInNlYXJjaFwiPlxyXG4gICAgPHgtaW5wdXRcclxuICAgICAgaWNvbj1cImZ0by1zZWFyY2hcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cInNvdXJjZS5zZWFyY2hJbnB1dFwiXHJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlYXJjaElucHV0Q2hhbmdlKHNvdXJjZSlcIlxyXG4gICAgICBjbGVhcmFibGVcclxuICAgID48L3gtaW5wdXQ+XHJcbiAgPC9kaXY+IC0tPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNzb3VyY2VOb2RlVHBsIGxldC1ub2RlPVwibm9kZVwiIGxldC1zb3VyY2U9XCJzb3VyY2VcIj5cclxuICA8eC1jaGVja2JveFxyXG4gICAgW2RhdGFdPVwiW3sgaWQ6IG5vZGUuaWQsIGxhYmVsOiBub2RlVHBsID8gbm9kZVRwbCA6IG5vZGUubGFiZWwsIG5vZGU6IG5vZGUgfV1cIlxyXG4gICAgW2Rpc2FibGVkXT1cIm5vZGUuZGlzYWJsZWRcIlxyXG4gICAgWyhuZ01vZGVsKV09XCJub2RlLmNoZWNrZWRcIlxyXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hlY2tlZENoYW5nZSgkZXZlbnQsIHNvdXJjZSlcIlxyXG4gID48L3gtY2hlY2tib3g+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdHJhbnNmZXIvdHJhbnNmZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdHJhbnNmZXIvdHJhbnNmZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFJakIsdUJBQXVCLEVBSXhCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQWtDLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekcsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFrQixNQUFNLGtCQUFrQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBd0IsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7OztBQVV2RCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsaUJBQWlCO0lBdUJ2RCxZQUNTLFFBQW1CLEVBQ25CLFVBQXNCLEVBQ3RCLEdBQXNCLEVBQ3RCLGFBQTZCO1FBRXBDLEtBQUssRUFBRSxDQUFDO1FBTEQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQTFCdEMsVUFBSyxHQUFvQixFQUFFLENBQUM7UUFDNUIsU0FBSSxHQUFvQjtZQUN0QixJQUFJLEVBQUUsRUFB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LE9BQU8sQ0FBQztTQUM1QjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7O2tJQWpMVSxrQkFBa0I7c0hBQWxCLGtCQUFrQixxQ0FGbEIsQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxzRUN6QmpELHk3RkFtRUE7MkZEeENhLGtCQUFrQjtrQkFSOUIsU0FBUzsrQkFDRSxHQUFHLGVBQWUsRUFBRSxpQkFHZixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBSZW5kZXJlcjIsXHJcbiAgRWxlbWVudFJlZixcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3lcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFRyYW5zZmVyUHJlZml4LCBYVHJhbnNmZXJOb2RlLCBYVHJhbnNmZXJTb3VyY2UsIFhUcmFuc2ZlclByb3BlcnR5IH0gZnJvbSAnLi90cmFuc2Zlci5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJc0NoYW5nZSwgWElzRW1wdHksIFhTZXREYXRhLCBYQ29uZmlnU2VydmljZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWxheSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyB0cmFuc2ZlckFycmF5SXRlbSwgbW92ZUl0ZW1JbkFycmF5LCBDZGtEcmFnRHJvcCwgQ2RrRHJhZyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBYVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0BuZy1uZXN0L3VpL2Jhc2UtZm9ybSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFRyYW5zZmVyUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyYW5zZmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90cmFuc2Zlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbWFZhbHVlQWNjZXNzb3IoWFRyYW5zZmVyQ29tcG9uZW50KV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhUcmFuc2ZlckNvbXBvbmVudCBleHRlbmRzIFhUcmFuc2ZlclByb3BlcnR5IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgbm9kZXM6IFhUcmFuc2Zlck5vZGVbXSA9IFtdO1xyXG4gIGxlZnQ6IFhUcmFuc2ZlclNvdXJjZSA9IHtcclxuICAgIGxpc3Q6IFtdLFxyXG4gICAgc2VhcmNoTGlzdDogW10sXHJcbiAgICBjaGVja2VkQ291bnQ6IDAsXHJcbiAgICBkaXNhYmxlZEJ1dHRvbjogdHJ1ZVxyXG4gIH07XHJcbiAgcmlnaHQ6IFhUcmFuc2ZlclNvdXJjZSA9IHtcclxuICAgIGxpc3Q6IFtdLFxyXG4gICAgc2VhcmNoTGlzdDogW10sXHJcbiAgICBjaGVja2VkQ291bnQ6IDAsXHJcbiAgICBkaXNhYmxlZEJ1dHRvbjogdHJ1ZVxyXG4gIH07XHJcbiAgc2VhcmNoSW5wdXQ6IHN0cmluZyA9ICcnO1xyXG4gIHByaXZhdGUgX3RpdGxlcyA9IFsnTGlzdCcsICdTZWxlY3RlZCddO1xyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5zZXRMaXN0KCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zZXRUaXRsZXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGNvbnN0IHsgZGF0YSB9ID0gY2hhbmdlcztcclxuICAgIFhJc0NoYW5nZShkYXRhKSAmJiB0aGlzLnNldERhdGEoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgc2VhcmNoSW5wdXRDaGFuZ2Uoc291cmNlOiBYVHJhbnNmZXJTb3VyY2UpIHtcclxuICAgIHNvdXJjZS5saXN0ID0gc291cmNlLnNlYXJjaExpc3Q/LmZpbHRlcigoeCkgPT4geC5sYWJlbC5pbmRleE9mKHNvdXJjZS5zZWFyY2hJbnB1dCkgPj0gMCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBjaGVja2VkQWxsQ2hhbmdlKCRldmVudDogYm9vbGVhbiwgc291cmNlOiBYVHJhbnNmZXJTb3VyY2UpIHtcclxuICAgIGxldCBsaXN0ID0gKHNvdXJjZS5saXN0Py5maWx0ZXIoKHgpID0+ICF4LmRpc2FibGVkKSBhcyBYVHJhbnNmZXJOb2RlW10pLm1hcCgoeCkgPT4ge1xyXG4gICAgICB4LmNoZWNrZWQgPSAkZXZlbnQ7XHJcbiAgICAgIHJldHVybiB4O1xyXG4gICAgfSk7XHJcbiAgICBzb3VyY2UuY2hlY2tlZENvdW50ID0gJGV2ZW50ID8gbGlzdC5sZW5ndGggOiAwO1xyXG4gICAgc291cmNlLmluZGV0ZXJtaW5hdGUgPSAkZXZlbnQ7XHJcbiAgICB0aGlzLnNldEJ1dHRvbkRpc2FibGVkKHNvdXJjZSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBjaGVja2VkQ2hhbmdlKCRldmVudDogYm9vbGVhbiwgc291cmNlOiBYVHJhbnNmZXJTb3VyY2UpIHtcclxuICAgIGlmICghJGV2ZW50KSAoc291cmNlLmNoZWNrZWRDb3VudCBhcyBudW1iZXIpLS07XHJcbiAgICBlbHNlIChzb3VyY2UuY2hlY2tlZENvdW50IGFzIG51bWJlcikrKztcclxuICAgIHRoaXMuc2V0Q2hlY2tlZEFsbChzb3VyY2UpO1xyXG4gICAgdGhpcy5zZXRCdXR0b25EaXNhYmxlZChzb3VyY2UpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgbW92ZShmcm9tOiBYVHJhbnNmZXJTb3VyY2UsIHRvOiBYVHJhbnNmZXJTb3VyY2UpIHtcclxuICAgIGlmIChmcm9tLmRpc2FibGVkQnV0dG9uKSByZXR1cm47XHJcbiAgICBsZXQgY2hlY2tlZEl0ZW1zID0gZnJvbS5saXN0Py5maWx0ZXIoKHgpID0+ICFYSXNFbXB0eSh4LmNoZWNrZWQpKSBhcyBYVHJhbnNmZXJOb2RlW107XHJcbiAgICBsZXQgaiA9IDA7XHJcbiAgICBjaGVja2VkSXRlbXMuZm9yRWFjaCgoeCkgPT4ge1xyXG4gICAgICBjb25zdCBpbmRleCA9IGZyb20ubGlzdD8uaW5kZXhPZih4KSBhcyBudW1iZXI7XHJcbiAgICAgIHguY2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgICB0cmFuc2ZlckFycmF5SXRlbShmcm9tLmxpc3QgYXMgWFRyYW5zZmVyTm9kZVtdLCB0by5saXN0IGFzIFhUcmFuc2Zlck5vZGVbXSwgaW5kZXgsIGopO1xyXG4gICAgICBqKys7XHJcbiAgICB9KTtcclxuICAgIGZyb20uY2hlY2tlZEFsbCA9IGZhbHNlO1xyXG4gICAgZnJvbS5jaGVja2VkQ291bnQgPSAwO1xyXG4gICAgZnJvbS5pbmRldGVybWluYXRlID0gZmFsc2U7XHJcbiAgICBmcm9tLmRpc2FibGVkQnV0dG9uID0gdHJ1ZTtcclxuICAgIHRoaXMuc2V0U2VhcmNoTGlzdChmcm9tLCB0byk7XHJcbiAgICB0aGlzLnNldFZhbHVlKCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBkcm9wQ2RrKGV2ZW50OiBDZGtEcmFnRHJvcDxYVHJhbnNmZXJOb2RlW10gfCB1bmRlZmluZWQsIGFueT4pIHtcclxuICAgIGNvbnN0IGV2ID0gZXZlbnQgYXMgQ2RrRHJhZ0Ryb3A8WFRyYW5zZmVyTm9kZVtdPjtcclxuICAgIGlmIChldi5wcmV2aW91c0NvbnRhaW5lciA9PT0gZXYuY29udGFpbmVyKSB7XHJcbiAgICAgIG1vdmVJdGVtSW5BcnJheShldi5jb250YWluZXIuZGF0YSwgZXYucHJldmlvdXNJbmRleCwgZXYuY3VycmVudEluZGV4KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRyYW5zZmVyQXJyYXlJdGVtKGV2LnByZXZpb3VzQ29udGFpbmVyLmRhdGEsIGV2LmNvbnRhaW5lci5kYXRhLCBldi5wcmV2aW91c0luZGV4LCBldi5jdXJyZW50SW5kZXgpO1xyXG4gICAgICB0aGlzLnNldENoZWNrZWRDb3VudCh0aGlzLmxlZnQsIHRoaXMucmlnaHQpO1xyXG4gICAgICB0aGlzLnNldENoZWNrZWRBbGwodGhpcy5sZWZ0LCB0aGlzLnJpZ2h0KTtcclxuICAgICAgdGhpcy5zZXRCdXR0b25EaXNhYmxlZCh0aGlzLmxlZnQsIHRoaXMucmlnaHQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRTZWFyY2hMaXN0KHRoaXMubGVmdCwgdGhpcy5yaWdodCk7XHJcbiAgICB0aGlzLnNldFZhbHVlKCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwcmVkaWNhdGUoaXRlbTogQ2RrRHJhZzxYVHJhbnNmZXJOb2RlPikge1xyXG4gICAgcmV0dXJuICFpdGVtLmRhdGEuZGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICB0cmFja0J5Tm9kZShfaW5kZXg6IG51bWJlciwgaXRlbTogWFRyYW5zZmVyTm9kZSkge1xyXG4gICAgcmV0dXJuIGl0ZW0uaWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldENoZWNrZWRBbGwoLi4uc291cmNlczogWFRyYW5zZmVyU291cmNlW10pIHtcclxuICAgIGZvciAobGV0IHNvdXJjZSBvZiBzb3VyY2VzKSB7XHJcbiAgICAgIGlmICgoc291cmNlLmNoZWNrZWRDb3VudCBhcyBudW1iZXIpID4gMCkge1xyXG4gICAgICAgIGlmIChzb3VyY2UuY2hlY2tlZENvdW50ID09PSBzb3VyY2UubGlzdD8uZmlsdGVyKCh4KSA9PiAheC5kaXNhYmxlZCkubGVuZ3RoKSB7XHJcbiAgICAgICAgICBzb3VyY2UuY2hlY2tlZEFsbCA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHNvdXJjZS5jaGVja2VkQWxsID0gZmFsc2U7XHJcbiAgICAgICAgICBzb3VyY2UuaW5kZXRlcm1pbmF0ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNvdXJjZS5pbmRldGVybWluYXRlID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0Q2hlY2tlZENvdW50KC4uLnNvdXJjZXM6IFhUcmFuc2ZlclNvdXJjZVtdKSB7XHJcbiAgICBmb3IgKGxldCBzb3VyY2Ugb2Ygc291cmNlcykgc291cmNlLmNoZWNrZWRDb3VudCA9IHNvdXJjZS5saXN0Py5maWx0ZXIoKHgpID0+ICFYSXNFbXB0eSh4LmNoZWNrZWQpKS5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEJ1dHRvbkRpc2FibGVkKC4uLnNvdXJjZXM6IFhUcmFuc2ZlclNvdXJjZVtdKSB7XHJcbiAgICBmb3IgKGxldCBzb3VyY2Ugb2Ygc291cmNlcykgc291cmNlLmRpc2FibGVkQnV0dG9uID0gc291cmNlLmNoZWNrZWRDb3VudCA9PT0gMDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VmFsdWUoKSB7XHJcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5yaWdodC5saXN0Py5tYXAoKHgpID0+IHguaWQpIGFzIGFueVtdO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0U2VhcmNoTGlzdCguLi5zb3VyY2VzOiBYVHJhbnNmZXJTb3VyY2VbXSkge1xyXG4gICAgaWYgKHRoaXMuc2VhcmNoKSB7XHJcbiAgICAgIGZvciAobGV0IHNvdXJjZSBvZiBzb3VyY2VzKSB7XHJcbiAgICAgICAgaWYgKFhJc0VtcHR5KHNvdXJjZS5zZWFyY2hJbnB1dCkpIHtcclxuICAgICAgICAgIHNvdXJjZS5zZWFyY2hMaXN0ID0gWy4uLihzb3VyY2UubGlzdCBhcyBYVHJhbnNmZXJOb2RlW10pXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0RGF0YSgpIHtcclxuICAgIFhTZXREYXRhPFhUcmFuc2Zlck5vZGU+KHRoaXMuZGF0YSwgdGhpcy5fdW5TdWJqZWN0KS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy5ub2RlcyA9IHg7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0TGlzdCgpIHtcclxuICAgIGlmICghWElzRW1wdHkodGhpcy52YWx1ZSkpIHtcclxuICAgICAgdGhpcy5sZWZ0Lmxpc3QgPSB0aGlzLm5vZGVzLmZpbHRlcigoeCkgPT4gdGhpcy52YWx1ZS5pbmRleE9mKHguaWQpIDwgMCk7XHJcbiAgICAgIHRoaXMucmlnaHQubGlzdCA9IHRoaXMubm9kZXMuZmlsdGVyKCh4KSA9PiB0aGlzLnZhbHVlLmluZGV4T2YoeC5pZCkgPj0gMCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmxlZnQubGlzdCA9IHRoaXMubm9kZXM7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldFNlYXJjaExpc3QodGhpcy5sZWZ0LCB0aGlzLnJpZ2h0KTtcclxuICAgIC8vIFRvRG86IHgtY2hlY2tib3ggZXJyb3IuIEF0dGVtcHQgdG8gdXNlIGEgZGVzdHJveWVkIHZpZXc6IGRldGVjdENoYW5nZXNcclxuICAgIG9mKHRydWUpXHJcbiAgICAgIC5waXBlKGRlbGF5KDApLCB0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRUaXRsZXMoKSB7XHJcbiAgICBpZiAoWElzRW1wdHkodGhpcy50aXRsZXMpKSB7XHJcbiAgICAgIHRoaXMudGl0bGVzID0gdGhpcy5fdGl0bGVzO1xyXG4gICAgfVxyXG4gICAgdGhpcy5sZWZ0LnRpdGxlID0gdGhpcy50aXRsZXNbMF07XHJcbiAgICBpZiAodGhpcy50aXRsZXMubGVuZ3RoID4gMSkgdGhpcy5yaWdodC50aXRsZSA9IHRoaXMudGl0bGVzWzFdO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICN0cmFuc2ZlciBjbGFzcz1cIngtdHJhbnNmZXJcIiBjZGtEcm9wTGlzdEdyb3VwIFtuZ0NsYXNzXT1cImNsYXNzTWFwXCI+XHJcbiAgPGRpdiBjbGFzcz1cIngtdHJhbnNmZXItYm94XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic291cmNlVGl0bGVUcGw7IGNvbnRleHQ6IHsgc291cmNlOiBsZWZ0IH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDx1bFxyXG4gICAgICBjbGFzcz1cIngtdHJhbnNmZXItbGlzdFwiXHJcbiAgICAgIGNka0Ryb3BMaXN0XHJcbiAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcENkaygkZXZlbnQpXCJcclxuICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJsZWZ0Lmxpc3RcIlxyXG4gICAgICBbY2RrRHJvcExpc3REaXNhYmxlZF09XCIhZHJhZ1wiXHJcbiAgICAgIFtjZGtEcm9wTGlzdEVudGVyUHJlZGljYXRlXT1cInByZWRpY2F0ZVwiXHJcbiAgICA+XHJcbiAgICAgIDxsaSBjbGFzcz1cIngtdHJhbnNmZXItaXRlbVwiICpuZ0Zvcj1cImxldCBub2RlIG9mIGxlZnQubGlzdDsgdHJhY2tCeTogdHJhY2tCeU5vZGVcIiBjZGtEcmFnIFtjZGtEcmFnRGF0YV09XCJub2RlXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNvdXJjZU5vZGVUcGw7IGNvbnRleHQ6IHsgbm9kZTogbm9kZSwgc291cmNlOiBsZWZ0IH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9saT5cclxuICAgIDwvdWw+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIngtdHJhbnNmZXItYnV0dG9uc1wiPlxyXG4gICAgPHgtYnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgaWNvbj1cImZ0by1jaGV2cm9uLXJpZ2h0XCIgW2Rpc2FibGVkXT1cImxlZnQuZGlzYWJsZWRCdXR0b25cIiAoY2xpY2spPVwibW92ZShsZWZ0LCByaWdodClcIj48L3gtYnV0dG9uPlxyXG4gICAgPHgtYnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgaWNvbj1cImZ0by1jaGV2cm9uLWxlZnRcIiBbZGlzYWJsZWRdPVwicmlnaHQuZGlzYWJsZWRCdXR0b25cIiAoY2xpY2spPVwibW92ZShyaWdodCwgbGVmdClcIj48L3gtYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJ4LXRyYW5zZmVyLWJveFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNvdXJjZVRpdGxlVHBsOyBjb250ZXh0OiB7IHNvdXJjZTogcmlnaHQgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPHVsXHJcbiAgICAgIGNsYXNzPVwieC10cmFuc2Zlci1saXN0XCJcclxuICAgICAgY2RrRHJvcExpc3RcclxuICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wQ2RrKCRldmVudClcIlxyXG4gICAgICBbY2RrRHJvcExpc3REYXRhXT1cInJpZ2h0Lmxpc3RcIlxyXG4gICAgICBbY2RrRHJvcExpc3REaXNhYmxlZF09XCIhZHJhZ1wiXHJcbiAgICAgIFtjZGtEcm9wTGlzdEVudGVyUHJlZGljYXRlXT1cInByZWRpY2F0ZVwiXHJcbiAgICA+XHJcbiAgICAgIDxsaSBjbGFzcz1cIngtdHJhbnNmZXItaXRlbVwiICpuZ0Zvcj1cImxldCBub2RlIG9mIHJpZ2h0Lmxpc3Q7IHRyYWNrQnk6IHRyYWNrQnlOb2RlXCIgY2RrRHJhZyBbY2RrRHJhZ0RhdGFdPVwibm9kZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzb3VyY2VOb2RlVHBsOyBjb250ZXh0OiB7IG5vZGU6IG5vZGUsIHNvdXJjZTogcmlnaHQgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2xpPlxyXG4gICAgPC91bD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI3NvdXJjZVRpdGxlVHBsIGxldC1zb3VyY2U9XCJzb3VyY2VcIj5cclxuICA8ZGl2IGNsYXNzPVwieC10cmFuc2Zlci10aXRsZVwiPlxyXG4gICAgPHgtY2hlY2tib3hcclxuICAgICAgW2RhdGFdPVwiW3RpdGxlVHBsID8gJycgOiBzb3VyY2UudGl0bGVdXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJzb3VyY2UuY2hlY2tlZEFsbFwiXHJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoZWNrZWRBbGxDaGFuZ2UoJGV2ZW50LCBzb3VyY2UpXCJcclxuICAgICAgW2luZGV0ZXJtaW5hdGVdPVwic291cmNlLmluZGV0ZXJtaW5hdGVcIlxyXG4gICAgPjwveC1jaGVja2JveD5cclxuICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJ0aXRsZVRwbDsgY29udGV4dDogeyAkdGl0bGU6IHNvdXJjZS50aXRsZSwgJGNoZWNrZWRDb3VudDogc291cmNlLmNoZWNrZWRDb3VudCwgJGNvdW50OiBzb3VyY2UubGlzdC5sZW5ndGggfVwiXHJcbiAgICAgID48c3Bhbj57eyBzb3VyY2UuY2hlY2tlZENvdW50IH19IC8ge3sgc291cmNlLmxpc3QubGVuZ3RoIH19PC9zcGFuPjwvbmctY29udGFpbmVyXHJcbiAgICA+XHJcbiAgPC9kaXY+XHJcbiAgPCEtLSA8ZGl2IGNsYXNzPVwieC10cmFuc2Zlci1zZWFyY2hcIiAqbmdJZj1cInNlYXJjaFwiPlxyXG4gICAgPHgtaW5wdXRcclxuICAgICAgaWNvbj1cImZ0by1zZWFyY2hcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cInNvdXJjZS5zZWFyY2hJbnB1dFwiXHJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlYXJjaElucHV0Q2hhbmdlKHNvdXJjZSlcIlxyXG4gICAgICBjbGVhcmFibGVcclxuICAgID48L3gtaW5wdXQ+XHJcbiAgPC9kaXY+IC0tPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNzb3VyY2VOb2RlVHBsIGxldC1ub2RlPVwibm9kZVwiIGxldC1zb3VyY2U9XCJzb3VyY2VcIj5cclxuICA8eC1jaGVja2JveFxyXG4gICAgW2RhdGFdPVwiW3sgaWQ6IG5vZGUuaWQsIGxhYmVsOiBub2RlVHBsID8gbm9kZVRwbCA6IG5vZGUubGFiZWwsIG5vZGU6IG5vZGUgfV1cIlxyXG4gICAgW2Rpc2FibGVkXT1cIm5vZGUuZGlzYWJsZWRcIlxyXG4gICAgWyhuZ01vZGVsKV09XCJub2RlLmNoZWNrZWRcIlxyXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hlY2tlZENoYW5nZSgkZXZlbnQsIHNvdXJjZSlcIlxyXG4gID48L3gtY2hlY2tib3g+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -12,10 +12,10 @@ import { XBaseFormModule } from '@ng-nest/ui/base-form';
12
12
  import * as i0 from "@angular/core";
13
13
  export class XTransferModule {
14
14
  }
15
- /** @nocollapse */ /** @nocollapse */ XTransferModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: XTransferModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
16
- /** @nocollapse */ /** @nocollapse */ XTransferModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: XTransferModule, declarations: [XTransferComponent, XTransferProperty], imports: [CommonModule, FormsModule, DragDropModule, XOutletModule, XCheckboxModule, XButtonModule, XInputModule, XBaseFormModule], exports: [XTransferComponent] });
17
- /** @nocollapse */ /** @nocollapse */ XTransferModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: XTransferModule, imports: [[CommonModule, FormsModule, DragDropModule, XOutletModule, XCheckboxModule, XButtonModule, XInputModule, XBaseFormModule]] });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: XTransferModule, decorators: [{
15
+ /** @nocollapse */ XTransferModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTransferModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
16
+ /** @nocollapse */ XTransferModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: XTransferModule, declarations: [XTransferComponent, XTransferProperty], imports: [CommonModule, FormsModule, DragDropModule, XOutletModule, XCheckboxModule, XButtonModule, XInputModule, XBaseFormModule], exports: [XTransferComponent] });
17
+ /** @nocollapse */ XTransferModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTransferModule, imports: [CommonModule, FormsModule, DragDropModule, XOutletModule, XCheckboxModule, XButtonModule, XInputModule, XBaseFormModule] });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTransferModule, decorators: [{
19
19
  type: NgModule,
20
20
  args: [{
21
21
  declarations: [XTransferComponent, XTransferProperty],
@@ -23,4 +23,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
23
23
  imports: [CommonModule, FormsModule, DragDropModule, XOutletModule, XCheckboxModule, XButtonModule, XInputModule, XBaseFormModule]
24
24
  }]
25
25
  }] });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdHJhbnNmZXIvdHJhbnNmZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFPeEQsTUFBTSxPQUFPLGVBQWU7O21KQUFmLGVBQWU7b0pBQWYsZUFBZSxpQkFKWCxrQkFBa0IsRUFBRSxpQkFBaUIsYUFFMUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGVBQWUsYUFEdkgsa0JBQWtCO29KQUdqQixlQUFlLFlBRmpCLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGVBQWUsQ0FBQzs0RkFFdkgsZUFBZTtrQkFMM0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxpQkFBaUIsQ0FBQztvQkFDckQsT0FBTyxFQUFFLENBQUMsa0JBQWtCLENBQUM7b0JBQzdCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxlQUFlLENBQUM7aUJBQ25JIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgWFRyYW5zZmVyQ29tcG9uZW50IH0gZnJvbSAnLi90cmFuc2Zlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgWENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQG5nLW5lc3QvdWkvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQG5nLW5lc3QvdWkvYnV0dG9uJztcclxuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgWElucHV0TW9kdWxlIH0gZnJvbSAnQG5nLW5lc3QvdWkvaW5wdXQnO1xyXG5pbXBvcnQgeyBYT3V0bGV0TW9kdWxlIH0gZnJvbSAnQG5nLW5lc3QvdWkvb3V0bGV0JztcclxuaW1wb3J0IHsgWFRyYW5zZmVyUHJvcGVydHkgfSBmcm9tICcuL3RyYW5zZmVyLnByb3BlcnR5JztcclxuaW1wb3J0IHsgWEJhc2VGb3JtTW9kdWxlIH0gZnJvbSAnQG5nLW5lc3QvdWkvYmFzZS1mb3JtJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbWFRyYW5zZmVyQ29tcG9uZW50LCBYVHJhbnNmZXJQcm9wZXJ0eV0sXHJcbiAgZXhwb3J0czogW1hUcmFuc2ZlckNvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIERyYWdEcm9wTW9kdWxlLCBYT3V0bGV0TW9kdWxlLCBYQ2hlY2tib3hNb2R1bGUsIFhCdXR0b25Nb2R1bGUsIFhJbnB1dE1vZHVsZSwgWEJhc2VGb3JtTW9kdWxlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFRyYW5zZmVyTW9kdWxlIHt9XHJcbiJdfQ==
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdHJhbnNmZXIvdHJhbnNmZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFPeEQsTUFBTSxPQUFPLGVBQWU7OytIQUFmLGVBQWU7Z0lBQWYsZUFBZSxpQkFKWCxrQkFBa0IsRUFBRSxpQkFBaUIsYUFFMUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGVBQWUsYUFEdkgsa0JBQWtCO2dJQUdqQixlQUFlLFlBRmhCLFlBQVksRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxlQUFlOzJGQUV0SCxlQUFlO2tCQUwzQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGtCQUFrQixFQUFFLGlCQUFpQixDQUFDO29CQUNyRCxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDN0IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGVBQWUsQ0FBQztpQkFDbkkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBYVHJhbnNmZXJDb21wb25lbnQgfSBmcm9tICcuL3RyYW5zZmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBYQ2hlY2tib3hNb2R1bGUgfSBmcm9tICdAbmctbmVzdC91aS9jaGVja2JveCc7XHJcbmltcG9ydCB7IFhCdXR0b25Nb2R1bGUgfSBmcm9tICdAbmctbmVzdC91aS9idXR0b24nO1xyXG5pbXBvcnQgeyBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBYSW5wdXRNb2R1bGUgfSBmcm9tICdAbmctbmVzdC91aS9pbnB1dCc7XHJcbmltcG9ydCB7IFhPdXRsZXRNb2R1bGUgfSBmcm9tICdAbmctbmVzdC91aS9vdXRsZXQnO1xyXG5pbXBvcnQgeyBYVHJhbnNmZXJQcm9wZXJ0eSB9IGZyb20gJy4vdHJhbnNmZXIucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYQmFzZUZvcm1Nb2R1bGUgfSBmcm9tICdAbmctbmVzdC91aS9iYXNlLWZvcm0nO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtYVHJhbnNmZXJDb21wb25lbnQsIFhUcmFuc2ZlclByb3BlcnR5XSxcclxuICBleHBvcnRzOiBbWFRyYW5zZmVyQ29tcG9uZW50XSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgRHJhZ0Ryb3BNb2R1bGUsIFhPdXRsZXRNb2R1bGUsIFhDaGVja2JveE1vZHVsZSwgWEJ1dHRvbk1vZHVsZSwgWElucHV0TW9kdWxlLCBYQmFzZUZvcm1Nb2R1bGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYVHJhbnNmZXJNb2R1bGUge31cclxuIl19
@@ -23,8 +23,8 @@ export class XTransferProperty extends XControlValueAccessor {
23
23
  this.data = [];
24
24
  }
25
25
  }
26
- /** @nocollapse */ /** @nocollapse */ XTransferProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: XTransferProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
27
- /** @nocollapse */ /** @nocollapse */ XTransferProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: XTransferProperty, selector: "ng-component", inputs: { data: "data", titles: "titles", drag: "drag", search: "search", nodeTpl: "nodeTpl", titleTpl: "titleTpl" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
26
+ /** @nocollapse */ XTransferProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTransferProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
27
+ /** @nocollapse */ XTransferProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTransferProperty, selector: "ng-component", inputs: { data: "data", titles: "titles", drag: "drag", search: "search", nodeTpl: "nodeTpl", titleTpl: "titleTpl" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
28
28
  __decorate([
29
29
  XDataConvert()
30
30
  ], XTransferProperty.prototype, "data", void 0);
@@ -38,7 +38,7 @@ __decorate([
38
38
  __decorate([
39
39
  XInputBoolean()
40
40
  ], XTransferProperty.prototype, "search", void 0);
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: XTransferProperty, decorators: [{
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTransferProperty, decorators: [{
42
42
  type: Component,
43
43
  args: [{ template: '' }]
44
44
  }], propDecorators: { data: [{
@@ -54,4 +54,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
54
54
  }], titleTpl: [{
55
55
  type: Input
56
56
  }] } });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXIucHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90cmFuc2Zlci90cmFuc2Zlci5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLFlBQVksRUFDWixhQUFhLEVBR2IsV0FBVyxFQUNaLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFlLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBRTlEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsWUFBWSxDQUFDO0FBRTVDLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQztBQUVqQzs7R0FFRztBQUVILE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxxQkFBNEI7SUFEbkU7O1FBRUU7OztXQUdHO1FBQ3NCLFNBQUksR0FBeUIsRUFBRSxDQUFDO0tBMEIxRDs7cUpBL0JZLGlCQUFpQjt5SUFBakIsaUJBQWlCLGlNQURQLEVBQUU7QUFNRTtJQUFmLFlBQVksRUFBRTsrQ0FBaUM7QUFLVjtJQUFyQyxXQUFXLENBQVcsYUFBYSxDQUFDO2lEQUFtQjtBQUtEO0lBQXRELFdBQVcsQ0FBVyxhQUFhLENBQUM7SUFBRSxhQUFhLEVBQUU7K0NBQWlCO0FBS3REO0lBQWhCLGFBQWEsRUFBRTtpREFBbUI7NEZBcEJqQyxpQkFBaUI7a0JBRDdCLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFOzhCQU1BLElBQUk7c0JBQTVCLEtBQUs7Z0JBS3lDLE1BQU07c0JBQXBELEtBQUs7Z0JBSzBELElBQUk7c0JBQW5FLEtBQUs7Z0JBS29CLE1BQU07c0JBQS9CLEtBQUs7Z0JBS0csT0FBTztzQkFBZixLQUFLO2dCQUtHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIFhEYXRhLFxyXG4gIFhEYXRhQ29udmVydCxcclxuICBYSW5wdXRCb29sZWFuLFxyXG4gIFhQYXJlbnRJZGVudGl0eVByb3BlcnR5LFxyXG4gIFhCb29sZWFuLFxyXG4gIFhXaXRoQ29uZmlnXHJcbn0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IFRlbXBsYXRlUmVmLCBJbnB1dCwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0BuZy1uZXN0L3VpL2Jhc2UtZm9ybSc7XHJcblxyXG4vKipcclxuICogVHJhbnNmZXJcclxuICogQHNlbGVjdG9yIHgtdHJhbnNmZXJcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYVHJhbnNmZXJQcmVmaXggPSAneC10cmFuc2Zlcic7XHJcblxyXG5jb25zdCBYX0NPTkZJR19OQU1FID0gJ3RyYW5zZmVyJztcclxuXHJcbi8qKlxyXG4gKiBUcmFuc2ZlciBQcm9wZXJ0eVxyXG4gKi9cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgY2xhc3MgWFRyYW5zZmVyUHJvcGVydHkgZXh0ZW5kcyBYQ29udHJvbFZhbHVlQWNjZXNzb3I8YW55W10+IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pWw5o2u5a+56LGhXHJcbiAgICogQGVuX1VTIERhdGEgb2JqZWN0XHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhEYXRhQ29udmVydCgpIGRhdGE6IFhEYXRhPFhUcmFuc2Zlck5vZGU+ID0gW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagh+mimFxyXG4gICAqIEBlbl9VUyBUaXRsZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxzdHJpbmdbXT4oWF9DT05GSUdfTkFNRSkgdGl0bGVzITogc3RyaW5nW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYr+WQpuiDveaLluWKqFxyXG4gICAqIEBlbl9VUyBDYW4gZHJhZ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9DT05GSUdfTkFNRSkgQFhJbnB1dEJvb2xlYW4oKSBkcmFnPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYr+WQpuaYvuekuuaQnOe0ou+8iOaaguacquWunueOsO+8iVxyXG4gICAqIEBlbl9VUyBXaGV0aGVyIHRvIGRpc3BsYXkgc2VhcmNoIChub3QgaW1wbGVtZW50ZWQgeWV0KVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgc2VhcmNoPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaVsOaNruiHquWumuS5ieaooeadv1xyXG4gICAqIEBlbl9VUyBEYXRhIGN1c3RvbWl6YXRpb24gdGVtcGxhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBub2RlVHBsPzogVGVtcGxhdGVSZWY8YW55PjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5qCH6aKY6Ieq5a6a5LmJ5qih5p2/XHJcbiAgICogQGVuX1VTIFRpdGxlIGN1c3RvbSB0ZW1wbGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHRpdGxlVHBsPzogVGVtcGxhdGVSZWY8YW55PjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFRyYW5zZmVyIE5vZGVcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWFRyYW5zZmVyTm9kZSBleHRlbmRzIFhQYXJlbnRJZGVudGl0eVByb3BlcnR5PFhUcmFuc2Zlck5vZGU+IHtcclxuICAvKipcclxuICAgKiBAemhfQ04gY2hlY2tib3gg5piv5ZCm6YCJ5LitXHJcbiAgICogQGVuX1VTIHdoZXRoZXIgY2hlY2tib3ggaXMgc2VsZWN0ZWRcclxuICAgKi9cclxuICBjaGVja2VkPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5bqP5Y+3XHJcbiAgICogQGVuX1VTIFNlcmlhbCBudW1iZXJcclxuICAgKi9cclxuICBpbmRleD86IG51bWJlcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFRyYW5zZmVyIFNvdXJjZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYVHJhbnNmZXJTb3VyY2Uge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoIfpophcclxuICAgKiBAZW5fVVMgVGl0bGVcclxuICAgKi9cclxuICB0aXRsZT86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5pCc57Si55qE5pWw5o2uXHJcbiAgICogQGVuX1VTIFNlYXJjaGVkIGRhdGFcclxuICAgKi9cclxuICBzZWFyY2hJbnB1dD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5YWo6YCJXHJcbiAgICogQGVuX1VTIFNlbGVjdCBhbGxcclxuICAgKi9cclxuICBjaGVja2VkQWxsPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5Lit55qE5pWw6YePXHJcbiAgICogQGVuX1VTIFNlbGVjdGVkIHF1YW50aXR5XHJcbiAgICovXHJcbiAgY2hlY2tlZENvdW50PzogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDkuI3noa7lrprnirbmgIHnmoTmoLflvI9cclxuICAgKiBAZW5fVVMgVW5jZXJ0YWluIHN0YXRlIHN0eWxlXHJcbiAgICovXHJcbiAgaW5kZXRlcm1pbmF0ZT86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIl+ihqOaVsOaNrlxyXG4gICAqIEBlbl9VUyBMaXN0IGRhdGFcclxuICAgKi9cclxuICBsaXN0PzogWFRyYW5zZmVyTm9kZVtdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmkJzntKLmlbDmja7vvIznlKjmnaXov5jljp9cclxuICAgKiBAZW5fVVMgU2VhcmNoIGRhdGEgdG8gcmVzdG9yZVxyXG4gICAqL1xyXG4gIHNlYXJjaExpc3Q/OiBYVHJhbnNmZXJOb2RlW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaMiemSruemgeeUqFxyXG4gICAqIEBlbl9VUyBCdXR0b24gZGlzYWJsZWRcclxuICAgKi9cclxuICBkaXNhYmxlZEJ1dHRvbj86IGJvb2xlYW47XHJcbn1cclxuIl19
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXIucHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90cmFuc2Zlci90cmFuc2Zlci5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLFlBQVksRUFDWixhQUFhLEVBR2IsV0FBVyxFQUNaLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFlLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBRTlEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsWUFBWSxDQUFDO0FBRTVDLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQztBQUVqQzs7R0FFRztBQUVILE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxxQkFBNEI7SUFEbkU7O1FBRUU7OztXQUdHO1FBQ3NCLFNBQUksR0FBeUIsRUFBRSxDQUFDO0tBMEIxRDs7aUlBL0JZLGlCQUFpQjtxSEFBakIsaUJBQWlCLGlNQURQLEVBQUU7QUFNRTtJQUFmLFlBQVksRUFBRTsrQ0FBaUM7QUFLVjtJQUFyQyxXQUFXLENBQVcsYUFBYSxDQUFDO2lEQUFtQjtBQUtEO0lBQXRELFdBQVcsQ0FBVyxhQUFhLENBQUM7SUFBRSxhQUFhLEVBQUU7K0NBQWlCO0FBS3REO0lBQWhCLGFBQWEsRUFBRTtpREFBbUI7MkZBcEJqQyxpQkFBaUI7a0JBRDdCLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFOzhCQU1BLElBQUk7c0JBQTVCLEtBQUs7Z0JBS3lDLE1BQU07c0JBQXBELEtBQUs7Z0JBSzBELElBQUk7c0JBQW5FLEtBQUs7Z0JBS29CLE1BQU07c0JBQS9CLEtBQUs7Z0JBS0csT0FBTztzQkFBZixLQUFLO2dCQUtHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIFhEYXRhLFxyXG4gIFhEYXRhQ29udmVydCxcclxuICBYSW5wdXRCb29sZWFuLFxyXG4gIFhQYXJlbnRJZGVudGl0eVByb3BlcnR5LFxyXG4gIFhCb29sZWFuLFxyXG4gIFhXaXRoQ29uZmlnXHJcbn0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IFRlbXBsYXRlUmVmLCBJbnB1dCwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0BuZy1uZXN0L3VpL2Jhc2UtZm9ybSc7XHJcblxyXG4vKipcclxuICogVHJhbnNmZXJcclxuICogQHNlbGVjdG9yIHgtdHJhbnNmZXJcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYVHJhbnNmZXJQcmVmaXggPSAneC10cmFuc2Zlcic7XHJcblxyXG5jb25zdCBYX0NPTkZJR19OQU1FID0gJ3RyYW5zZmVyJztcclxuXHJcbi8qKlxyXG4gKiBUcmFuc2ZlciBQcm9wZXJ0eVxyXG4gKi9cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgY2xhc3MgWFRyYW5zZmVyUHJvcGVydHkgZXh0ZW5kcyBYQ29udHJvbFZhbHVlQWNjZXNzb3I8YW55W10+IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pWw5o2u5a+56LGhXHJcbiAgICogQGVuX1VTIERhdGEgb2JqZWN0XHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhEYXRhQ29udmVydCgpIGRhdGE6IFhEYXRhPFhUcmFuc2Zlck5vZGU+ID0gW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagh+mimFxyXG4gICAqIEBlbl9VUyBUaXRsZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxzdHJpbmdbXT4oWF9DT05GSUdfTkFNRSkgdGl0bGVzITogc3RyaW5nW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYr+WQpuiDveaLluWKqFxyXG4gICAqIEBlbl9VUyBDYW4gZHJhZ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9DT05GSUdfTkFNRSkgQFhJbnB1dEJvb2xlYW4oKSBkcmFnPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYr+WQpuaYvuekuuaQnOe0ou+8iOaaguacquWunueOsO+8iVxyXG4gICAqIEBlbl9VUyBXaGV0aGVyIHRvIGRpc3BsYXkgc2VhcmNoIChub3QgaW1wbGVtZW50ZWQgeWV0KVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgc2VhcmNoPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaVsOaNruiHquWumuS5ieaooeadv1xyXG4gICAqIEBlbl9VUyBEYXRhIGN1c3RvbWl6YXRpb24gdGVtcGxhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBub2RlVHBsPzogVGVtcGxhdGVSZWY8YW55PjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5qCH6aKY6Ieq5a6a5LmJ5qih5p2/XHJcbiAgICogQGVuX1VTIFRpdGxlIGN1c3RvbSB0ZW1wbGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHRpdGxlVHBsPzogVGVtcGxhdGVSZWY8YW55PjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFRyYW5zZmVyIE5vZGVcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWFRyYW5zZmVyTm9kZSBleHRlbmRzIFhQYXJlbnRJZGVudGl0eVByb3BlcnR5PFhUcmFuc2Zlck5vZGU+IHtcclxuICAvKipcclxuICAgKiBAemhfQ04gY2hlY2tib3gg5piv5ZCm6YCJ5LitXHJcbiAgICogQGVuX1VTIHdoZXRoZXIgY2hlY2tib3ggaXMgc2VsZWN0ZWRcclxuICAgKi9cclxuICBjaGVja2VkPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5bqP5Y+3XHJcbiAgICogQGVuX1VTIFNlcmlhbCBudW1iZXJcclxuICAgKi9cclxuICBpbmRleD86IG51bWJlcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFRyYW5zZmVyIFNvdXJjZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYVHJhbnNmZXJTb3VyY2Uge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoIfpophcclxuICAgKiBAZW5fVVMgVGl0bGVcclxuICAgKi9cclxuICB0aXRsZT86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5pCc57Si55qE5pWw5o2uXHJcbiAgICogQGVuX1VTIFNlYXJjaGVkIGRhdGFcclxuICAgKi9cclxuICBzZWFyY2hJbnB1dD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5YWo6YCJXHJcbiAgICogQGVuX1VTIFNlbGVjdCBhbGxcclxuICAgKi9cclxuICBjaGVja2VkQWxsPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5Lit55qE5pWw6YePXHJcbiAgICogQGVuX1VTIFNlbGVjdGVkIHF1YW50aXR5XHJcbiAgICovXHJcbiAgY2hlY2tlZENvdW50PzogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDkuI3noa7lrprnirbmgIHnmoTmoLflvI9cclxuICAgKiBAZW5fVVMgVW5jZXJ0YWluIHN0YXRlIHN0eWxlXHJcbiAgICovXHJcbiAgaW5kZXRlcm1pbmF0ZT86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIl+ihqOaVsOaNrlxyXG4gICAqIEBlbl9VUyBMaXN0IGRhdGFcclxuICAgKi9cclxuICBsaXN0PzogWFRyYW5zZmVyTm9kZVtdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmkJzntKLmlbDmja7vvIznlKjmnaXov5jljp9cclxuICAgKiBAZW5fVVMgU2VhcmNoIGRhdGEgdG8gcmVzdG9yZVxyXG4gICAqL1xyXG4gIHNlYXJjaExpc3Q/OiBYVHJhbnNmZXJOb2RlW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaMiemSruemgeeUqFxyXG4gICAqIEBlbl9VUyBCdXR0b24gZGlzYWJsZWRcclxuICAgKi9cclxuICBkaXNhYmxlZEJ1dHRvbj86IGJvb2xlYW47XHJcbn1cclxuIl19
@@ -1,15 +1,14 @@
1
1
  import { Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, Input } from '@angular/core';
2
2
  import { XTreeNodePrefix, XTreeNodeProperty } from './tree.property';
3
3
  import { XIsEmpty } from '@ng-nest/ui/core';
4
- import { map } from 'rxjs/operators';
5
4
  import * as i0 from "@angular/core";
6
5
  import * as i1 from "@ng-nest/ui/core";
7
- import * as i2 from "@ng-nest/ui/icon";
8
- import * as i3 from "@ng-nest/ui/checkbox";
9
- import * as i4 from "@ng-nest/ui/link";
10
- import * as i5 from "@angular/common";
11
- import * as i6 from "@angular/forms";
12
- import * as i7 from "@ng-nest/ui/outlet";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "@angular/forms";
8
+ import * as i4 from "@ng-nest/ui/icon";
9
+ import * as i5 from "@ng-nest/ui/checkbox";
10
+ import * as i6 from "@ng-nest/ui/outlet";
11
+ import * as i7 from "@ng-nest/ui/link";
13
12
  export class XTreeNodeComponent extends XTreeNodeProperty {
14
13
  constructor(
15
14
  // @Optional() public tree: XTreeComponent,
@@ -45,74 +44,9 @@ export class XTreeNodeComponent extends XTreeNodeProperty {
45
44
  this.setCheckbox();
46
45
  this.setIndeterminate(this.node);
47
46
  }
48
- onToggle(event, node) {
49
- node.open = !node.open;
50
- if (this.virtualScroll) {
51
- if (this.lazy && !node.childrenLoaded) {
52
- this.getLazyData(node, () => this.virtualToggle(node));
53
- }
54
- else {
55
- this.virtualToggle(node);
56
- }
57
- }
58
- else if (node.open && !node.childrenLoaded) {
59
- if (this.lazy) {
60
- this.getLazyData(node);
61
- }
62
- else {
63
- node.childrenLoaded = true;
64
- }
65
- }
66
- event.preventDefault();
67
- event.stopPropagation();
68
- this.cdr.detectChanges();
69
- }
70
- virtualToggle(node) {
71
- let index = this.tree.nodes.indexOf(node);
72
- if (node.open) {
73
- let addNodes = [];
74
- const getNodes = (nd) => {
75
- for (let child of nd.children) {
76
- addNodes.push(child);
77
- child.open && getNodes(child);
78
- }
79
- };
80
- getNodes(node);
81
- this.tree.nodes.splice(index + 1, 0, ...addNodes);
82
- }
83
- else {
84
- let delCount = 0;
85
- const getCount = (nd) => {
86
- delCount += nd.children.length;
87
- for (let child of nd.children) {
88
- child.open && getCount(child);
89
- }
90
- };
91
- getCount(node);
92
- this.tree.nodes.splice(index + 1, delCount);
93
- }
94
- this.tree.nodes = [...this.tree.nodes];
95
- }
96
- getLazyData(node, callBack) {
97
- this.loading = true;
98
- this.lazyData(node.id)
99
- .pipe(map((x) => x.map((y) => {
100
- y.level = node.level + 1;
101
- y.checked = node.checked;
102
- return y;
103
- })))
104
- .subscribe((x) => {
105
- node.children = x;
106
- node.childrenLoaded = true;
107
- this.loading = false;
108
- if (callBack)
109
- callBack();
110
- this.cdr.detectChanges();
111
- });
112
- }
113
47
  onActivate(event, node) {
114
48
  const change = this.tree.activatedNode?.change;
115
- this.tree.nodeOpen && node.leaf && this.onToggle(event, node);
49
+ this.tree.nodeOpen && node.leaf && this.tree.onToggle(event, node);
116
50
  if (this.tree.activatedNode) {
117
51
  if (this.tree.activatedNode.id === node.id && !this.tree.allowManyActivated)
118
52
  return;
@@ -202,11 +136,11 @@ export class XTreeNodeComponent extends XTreeNodeProperty {
202
136
  return item.id;
203
137
  }
204
138
  }
205
- /** @nocollapse */ /** @nocollapse */ XTreeNodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: XTreeNodeComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
206
- /** @nocollapse */ /** @nocollapse */ XTreeNodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: XTreeNodeComponent, selector: "x-tree-node, [x-tree-node]", inputs: { parent: "parent", tree: "tree" }, host: { properties: { "class.x-tree-node": "this.rootClass" } }, usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"x-tree-node-content\"\r\n [class.x-activated]=\"tree.activatedNode?.id === node.id\"\r\n [style.padding-left.rem]=\"paddingLeft\"\r\n [style.height.rem]=\"node.height ? node.height : nodeHeight ? nodeHeight : ''\"\r\n [style.align-items]=\"node.alignItems ? node.alignItems : nodeAlignItems\"\r\n (click)=\"onActivate($event, node)\"\r\n>\r\n <x-icon\r\n *ngIf=\"!loading\"\r\n [class.is-leaf]=\"!node.leaf\"\r\n [class.is-open]=\"node.open\"\r\n type=\"fto-chevron-right\"\r\n (click)=\"!tree.nodeOpen && onToggle($event, node)\"\r\n ></x-icon>\r\n <x-icon *ngIf=\"loading\" type=\"fto-loader\" [spin]=\"loading\"></x-icon>\r\n <x-checkbox\r\n *ngIf=\"tree.checkbox\"\r\n [data]=\"[{ label: '', id: node.id }]\"\r\n [(ngModel)]=\"node.checked\"\r\n (ngModelChange)=\"onCheckboxChange()\"\r\n [indeterminate]=\"node.indeterminate\"\r\n [disabled]=\"getNodeDisabled(node.disabled)\"\r\n (click)=\"$event.stopPropagation()\"\r\n ></x-checkbox>\r\n <span\r\n class=\"x-tree-node-label\"\r\n [class.nowrap]=\"node.nowrap === false || node.nowrap === true ? node.nowrap : nodeNowrap\"\r\n [title]=\"node.label\"\r\n *ngIf=\"!tree.labelTpl; else labelTpl\"\r\n >{{ node.label }}</span\r\n >\r\n <ng-template #labelTpl>\r\n <ng-container *xOutlet=\"tree.labelTpl; context: { $node: node }\"></ng-container>\r\n </ng-template>\r\n <span class=\"x-tree-node-operations\">\r\n <x-link\r\n *ngFor=\"let action of tree.actions; trackBy: trackByItem\"\r\n [icon]=\"action.icon\"\r\n [title]=\"action.label\"\r\n (click)=\"onAction($event, action, node)\"\r\n ></x-link>\r\n </span>\r\n</div>\r\n<ul *ngIf=\"!virtualScroll && (node.childrenLoaded || (node.leaf && node.open))\" [hidden]=\"!node.open\">\r\n <li\r\n x-tree-node\r\n *ngFor=\"let child of node.children; trackBy: trackByItem\"\r\n [node]=\"child\"\r\n [parent]=\"this\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"lazyData\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"tree\"\r\n ></li>\r\n</ul>\r\n", styles: [".x-tree-node{margin:0;padding:0}.x-tree-node-content{display:flex;padding:.0625rem 0;cursor:pointer}.x-tree-node-content x-icon{padding:.25rem;color:var(--x-text-400);font-size:1rem;margin-right:.125rem;transition:var(--x-animation-duration-base)}.x-tree-node-content x-icon.is-leaf{visibility:hidden}.x-tree-node-content x-icon.is-open{transform:rotate(90deg)}.x-tree-node-content x-icon:hover{color:var(--x-text-300)}.x-tree-node-content x-checkbox{margin-right:.325rem;padding:.25rem 0}.x-tree-node-content:hover,.x-tree-node-content.x-activated{background-color:var(--x-background-a100)}.x-tree-node-content:hover .x-tree-node-label,.x-tree-node-content.x-activated .x-tree-node-label{color:var(--x-primary)}.x-tree-node-content:hover .x-tree-node-operations{display:flex;align-items:center}.x-tree-node-operations{display:none}.x-tree-node-operations .x-link{padding:0 .125rem}.x-tree-node-label{flex:1;-webkit-user-select:none;user-select:none}.x-tree-node-label.nowrap{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}\n"], components: [{ type: i2.XIconComponent, selector: "x-icon" }, { type: i3.XCheckboxComponent, selector: "x-checkbox" }, { type: i4.XLinkComponent, selector: "x-link" }, { type: XTreeNodeComponent, selector: "x-tree-node, [x-tree-node]", inputs: ["parent", "tree"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
207
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: XTreeNodeComponent, decorators: [{
139
+ /** @nocollapse */ XTreeNodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTreeNodeComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
140
+ /** @nocollapse */ XTreeNodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTreeNodeComponent, selector: "x-tree-node, [x-tree-node]", inputs: { parent: "parent", tree: "tree" }, host: { properties: { "class.x-tree-node": "this.rootClass" } }, usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"x-tree-node-content\"\r\n [class.x-activated]=\"tree.activatedNode?.id === node.id\"\r\n [style.padding-left.rem]=\"paddingLeft\"\r\n [style.height.rem]=\"node.height ? node.height : nodeHeight ? nodeHeight : ''\"\r\n [style.align-items]=\"node.alignItems ? node.alignItems : nodeAlignItems\"\r\n (click)=\"onActivate($event, node)\"\r\n>\r\n <x-icon\r\n *ngIf=\"!node.loading\"\r\n [class.is-leaf]=\"!node.leaf\"\r\n [class.is-open]=\"node.open\"\r\n type=\"fto-chevron-right\"\r\n (click)=\"!tree.nodeOpen && tree.onToggle($event, node)\"\r\n ></x-icon>\r\n <x-icon *ngIf=\"node.loading\" type=\"fto-loader\" [spin]=\"node.loading\"></x-icon>\r\n <x-checkbox\r\n *ngIf=\"tree.checkbox\"\r\n [data]=\"[{ label: '', id: node.id }]\"\r\n [(ngModel)]=\"node.checked\"\r\n (ngModelChange)=\"onCheckboxChange()\"\r\n [indeterminate]=\"node.indeterminate\"\r\n [disabled]=\"getNodeDisabled(node.disabled)\"\r\n (click)=\"$event.stopPropagation()\"\r\n ></x-checkbox>\r\n <span\r\n class=\"x-tree-node-label\"\r\n [class.nowrap]=\"node.nowrap === false || node.nowrap === true ? node.nowrap : nodeNowrap\"\r\n [title]=\"node.label\"\r\n *ngIf=\"!tree.labelTpl; else labelTpl\"\r\n >{{ node.label }}</span\r\n >\r\n <ng-template #labelTpl>\r\n <ng-container *xOutlet=\"tree.labelTpl; context: { $node: node }\"></ng-container>\r\n </ng-template>\r\n <span class=\"x-tree-node-operations\">\r\n <x-link\r\n *ngFor=\"let action of tree.actions; trackBy: trackByItem\"\r\n [icon]=\"action.icon\"\r\n [title]=\"action.label\"\r\n (click)=\"onAction($event, action, node)\"\r\n ></x-link>\r\n </span>\r\n</div>\r\n<ul *ngIf=\"!virtualScroll && (node.childrenLoaded || (node.leaf && node.open))\" [hidden]=\"!node.open\">\r\n <li\r\n x-tree-node\r\n *ngFor=\"let child of node.children; trackBy: trackByItem\"\r\n [node]=\"child\"\r\n [parent]=\"this\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"lazyData\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"tree\"\r\n ></li>\r\n</ul>\r\n", styles: [".x-tree-node{margin:0;padding:0}.x-tree-node-content{display:flex;padding:.0625rem 0;cursor:pointer}.x-tree-node-content x-icon{padding:.25rem;color:var(--x-text-400);font-size:1rem;margin-right:.125rem;transition:var(--x-animation-duration-base)}.x-tree-node-content x-icon.is-leaf{visibility:hidden}.x-tree-node-content x-icon.is-open{transform:rotate(90deg)}.x-tree-node-content x-icon:hover{color:var(--x-text-300)}.x-tree-node-content x-checkbox{margin-right:.325rem;padding:.25rem 0}.x-tree-node-content:hover,.x-tree-node-content.x-activated{background-color:var(--x-background-a100)}.x-tree-node-content:hover .x-tree-node-label,.x-tree-node-content.x-activated .x-tree-node-label{color:var(--x-primary)}.x-tree-node-content:hover .x-tree-node-operations{display:flex;align-items:center}.x-tree-node-operations{display:none}.x-tree-node-operations .x-link{padding:0 .125rem}.x-tree-node-label{flex:1;-webkit-user-select:none;user-select:none}.x-tree-node-label.nowrap{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.XIconComponent, selector: "x-icon" }, { kind: "component", type: i5.XCheckboxComponent, selector: "x-checkbox" }, { kind: "directive", type: i6.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: i7.XLinkComponent, selector: "x-link" }, { kind: "component", type: XTreeNodeComponent, selector: "x-tree-node, [x-tree-node]", inputs: ["parent", "tree"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
141
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTreeNodeComponent, decorators: [{
208
142
  type: Component,
209
- args: [{ selector: `${XTreeNodePrefix}, [${XTreeNodePrefix}]`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"x-tree-node-content\"\r\n [class.x-activated]=\"tree.activatedNode?.id === node.id\"\r\n [style.padding-left.rem]=\"paddingLeft\"\r\n [style.height.rem]=\"node.height ? node.height : nodeHeight ? nodeHeight : ''\"\r\n [style.align-items]=\"node.alignItems ? node.alignItems : nodeAlignItems\"\r\n (click)=\"onActivate($event, node)\"\r\n>\r\n <x-icon\r\n *ngIf=\"!loading\"\r\n [class.is-leaf]=\"!node.leaf\"\r\n [class.is-open]=\"node.open\"\r\n type=\"fto-chevron-right\"\r\n (click)=\"!tree.nodeOpen && onToggle($event, node)\"\r\n ></x-icon>\r\n <x-icon *ngIf=\"loading\" type=\"fto-loader\" [spin]=\"loading\"></x-icon>\r\n <x-checkbox\r\n *ngIf=\"tree.checkbox\"\r\n [data]=\"[{ label: '', id: node.id }]\"\r\n [(ngModel)]=\"node.checked\"\r\n (ngModelChange)=\"onCheckboxChange()\"\r\n [indeterminate]=\"node.indeterminate\"\r\n [disabled]=\"getNodeDisabled(node.disabled)\"\r\n (click)=\"$event.stopPropagation()\"\r\n ></x-checkbox>\r\n <span\r\n class=\"x-tree-node-label\"\r\n [class.nowrap]=\"node.nowrap === false || node.nowrap === true ? node.nowrap : nodeNowrap\"\r\n [title]=\"node.label\"\r\n *ngIf=\"!tree.labelTpl; else labelTpl\"\r\n >{{ node.label }}</span\r\n >\r\n <ng-template #labelTpl>\r\n <ng-container *xOutlet=\"tree.labelTpl; context: { $node: node }\"></ng-container>\r\n </ng-template>\r\n <span class=\"x-tree-node-operations\">\r\n <x-link\r\n *ngFor=\"let action of tree.actions; trackBy: trackByItem\"\r\n [icon]=\"action.icon\"\r\n [title]=\"action.label\"\r\n (click)=\"onAction($event, action, node)\"\r\n ></x-link>\r\n </span>\r\n</div>\r\n<ul *ngIf=\"!virtualScroll && (node.childrenLoaded || (node.leaf && node.open))\" [hidden]=\"!node.open\">\r\n <li\r\n x-tree-node\r\n *ngFor=\"let child of node.children; trackBy: trackByItem\"\r\n [node]=\"child\"\r\n [parent]=\"this\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"lazyData\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"tree\"\r\n ></li>\r\n</ul>\r\n", styles: [".x-tree-node{margin:0;padding:0}.x-tree-node-content{display:flex;padding:.0625rem 0;cursor:pointer}.x-tree-node-content x-icon{padding:.25rem;color:var(--x-text-400);font-size:1rem;margin-right:.125rem;transition:var(--x-animation-duration-base)}.x-tree-node-content x-icon.is-leaf{visibility:hidden}.x-tree-node-content x-icon.is-open{transform:rotate(90deg)}.x-tree-node-content x-icon:hover{color:var(--x-text-300)}.x-tree-node-content x-checkbox{margin-right:.325rem;padding:.25rem 0}.x-tree-node-content:hover,.x-tree-node-content.x-activated{background-color:var(--x-background-a100)}.x-tree-node-content:hover .x-tree-node-label,.x-tree-node-content.x-activated .x-tree-node-label{color:var(--x-primary)}.x-tree-node-content:hover .x-tree-node-operations{display:flex;align-items:center}.x-tree-node-operations{display:none}.x-tree-node-operations .x-link{padding:0 .125rem}.x-tree-node-label{flex:1;-webkit-user-select:none;user-select:none}.x-tree-node-label.nowrap{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}\n"] }]
143
+ args: [{ selector: `${XTreeNodePrefix}, [${XTreeNodePrefix}]`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"x-tree-node-content\"\r\n [class.x-activated]=\"tree.activatedNode?.id === node.id\"\r\n [style.padding-left.rem]=\"paddingLeft\"\r\n [style.height.rem]=\"node.height ? node.height : nodeHeight ? nodeHeight : ''\"\r\n [style.align-items]=\"node.alignItems ? node.alignItems : nodeAlignItems\"\r\n (click)=\"onActivate($event, node)\"\r\n>\r\n <x-icon\r\n *ngIf=\"!node.loading\"\r\n [class.is-leaf]=\"!node.leaf\"\r\n [class.is-open]=\"node.open\"\r\n type=\"fto-chevron-right\"\r\n (click)=\"!tree.nodeOpen && tree.onToggle($event, node)\"\r\n ></x-icon>\r\n <x-icon *ngIf=\"node.loading\" type=\"fto-loader\" [spin]=\"node.loading\"></x-icon>\r\n <x-checkbox\r\n *ngIf=\"tree.checkbox\"\r\n [data]=\"[{ label: '', id: node.id }]\"\r\n [(ngModel)]=\"node.checked\"\r\n (ngModelChange)=\"onCheckboxChange()\"\r\n [indeterminate]=\"node.indeterminate\"\r\n [disabled]=\"getNodeDisabled(node.disabled)\"\r\n (click)=\"$event.stopPropagation()\"\r\n ></x-checkbox>\r\n <span\r\n class=\"x-tree-node-label\"\r\n [class.nowrap]=\"node.nowrap === false || node.nowrap === true ? node.nowrap : nodeNowrap\"\r\n [title]=\"node.label\"\r\n *ngIf=\"!tree.labelTpl; else labelTpl\"\r\n >{{ node.label }}</span\r\n >\r\n <ng-template #labelTpl>\r\n <ng-container *xOutlet=\"tree.labelTpl; context: { $node: node }\"></ng-container>\r\n </ng-template>\r\n <span class=\"x-tree-node-operations\">\r\n <x-link\r\n *ngFor=\"let action of tree.actions; trackBy: trackByItem\"\r\n [icon]=\"action.icon\"\r\n [title]=\"action.label\"\r\n (click)=\"onAction($event, action, node)\"\r\n ></x-link>\r\n </span>\r\n</div>\r\n<ul *ngIf=\"!virtualScroll && (node.childrenLoaded || (node.leaf && node.open))\" [hidden]=\"!node.open\">\r\n <li\r\n x-tree-node\r\n *ngFor=\"let child of node.children; trackBy: trackByItem\"\r\n [node]=\"child\"\r\n [parent]=\"this\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"lazyData\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"tree\"\r\n ></li>\r\n</ul>\r\n", styles: [".x-tree-node{margin:0;padding:0}.x-tree-node-content{display:flex;padding:.0625rem 0;cursor:pointer}.x-tree-node-content x-icon{padding:.25rem;color:var(--x-text-400);font-size:1rem;margin-right:.125rem;transition:var(--x-animation-duration-base)}.x-tree-node-content x-icon.is-leaf{visibility:hidden}.x-tree-node-content x-icon.is-open{transform:rotate(90deg)}.x-tree-node-content x-icon:hover{color:var(--x-text-300)}.x-tree-node-content x-checkbox{margin-right:.325rem;padding:.25rem 0}.x-tree-node-content:hover,.x-tree-node-content.x-activated{background-color:var(--x-background-a100)}.x-tree-node-content:hover .x-tree-node-label,.x-tree-node-content.x-activated .x-tree-node-label{color:var(--x-primary)}.x-tree-node-content:hover .x-tree-node-operations{display:flex;align-items:center}.x-tree-node-operations{display:none}.x-tree-node-operations .x-link{padding:0 .125rem}.x-tree-node-label{flex:1;-webkit-user-select:none;user-select:none}.x-tree-node-label.nowrap{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}\n"] }]
210
144
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }]; }, propDecorators: { parent: [{
211
145
  type: Input
212
146
  }], tree: [{
@@ -215,4 +149,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
215
149
  type: HostBinding,
216
150
  args: ['class.x-tree-node']
217
151
  }] } });
218
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RyZWUvdHJlZS1ub2RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RyZWUvdHJlZS1ub2RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsaUJBQWlCLEVBSWpCLHVCQUF1QixFQUN2QixXQUFXLEVBQ1gsS0FBSyxFQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQWEsaUJBQWlCLEVBQWUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RixPQUFPLEVBQUUsUUFBUSxFQUE0QixNQUFNLGtCQUFrQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0FBVXJDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxpQkFBaUI7SUFpQnZEO0lBQ0UsMkNBQTJDO0lBQ3BDLFFBQW1CLEVBQ25CLFVBQXNCLEVBQ3RCLEdBQXNCLEVBQ3RCLGFBQTZCO1FBRXBDLEtBQUssRUFBRSxDQUFDO1FBTEQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQW5CSixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzNDLGFBQVEsR0FBRyxLQUFLLENBQUM7SUFxQnpCLENBQUM7SUFwQkQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBQ0QsSUFBVyxPQUFPLENBQUMsS0FBSztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFB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Q0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWMsRUFBRSxJQUE2QjtRQUN2RCxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDakIsQ0FBQzs7c0pBbk1VLGtCQUFrQjswSUFBbEIsa0JBQWtCLHNNQ3ZCL0IsbW5FQTBEQSw0c0NEbkNhLGtCQUFrQjs0RkFBbEIsa0JBQWtCO2tCQVA5QixTQUFTOytCQUNFLEdBQUcsZUFBZSxNQUFNLGVBQWUsR0FBRyxpQkFHckMsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTtzTEFHdEMsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDNEIsU0FBUztzQkFBMUMsV0FBVzt1QkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSW5wdXRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFRyZWVOb2RlUHJlZml4LCBYVHJlZU5vZGUsIFhUcmVlTm9kZVByb3BlcnR5LCBYVHJlZUFjdGlvbiB9IGZyb20gJy4vdHJlZS5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJc0VtcHR5LCBYQ29uZmlnU2VydmljZSwgWEJvb2xlYW4gfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFRyZWVOb2RlUHJlZml4fSwgWyR7WFRyZWVOb2RlUHJlZml4fV1gLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVlLW5vZGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RyZWUtbm9kZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFhUcmVlTm9kZUNvbXBvbmVudCBleHRlbmRzIFhUcmVlTm9kZVByb3BlcnR5IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBwYXJlbnQhOiBYVHJlZU5vZGVDb21wb25lbnQ7XHJcbiAgQElucHV0KCkgdHJlZTogYW55O1xyXG4gIEBIb3N0QmluZGluZygnY2xhc3MueC10cmVlLW5vZGUnKSByb290Q2xhc3MgPSB0cnVlO1xyXG4gIHByaXZhdGUgX2xvYWRpbmcgPSBmYWxzZTtcclxuICBwdWJsaWMgZ2V0IGxvYWRpbmcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbG9hZGluZztcclxuICB9XHJcbiAgcHVibGljIHNldCBsb2FkaW5nKHZhbHVlKSB7XHJcbiAgICB0aGlzLl9sb2FkaW5nID0gdmFsdWU7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgcGFkZGluZ0xlZnQoKSB7XHJcbiAgICByZXR1cm4gTnVtYmVyKHRoaXMubm9kZT8ubGV2ZWwgPyB0aGlzLm5vZGUubGV2ZWwgOiAwKSAqIE51bWJlcih0aGlzLnRyZWUuc3BhY2luZyk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIEBPcHRpb25hbCgpIHB1YmxpYyB0cmVlOiBYVHJlZUNvbXBvbmVudCxcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5ub2RlLmNoYW5nZSA9IChjaGVjazogYm9vbGVhbikgPT4ge1xyXG4gICAgICBpZiAoY2hlY2spIHRoaXMuc2V0Q2hlY2tib3goKTtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfTtcclxuICAgIHRoaXMubGV2ZWwgPSB0aGlzLm5vZGU/LmxldmVsID8gdGhpcy5ub2RlLmxldmVsIDogMDtcclxuICAgIGlmICghdGhpcy50cmVlLmxldmVsQ2hlY2spIHJldHVybjtcclxuICAgIGlmICh0aGlzLm5vZGUuY2hlY2tlZCkgdGhpcy5zZXRDaGVja2JveCgpO1xyXG4gICAgdGhpcy5zZXRJbmRldGVybWluYXRlKHRoaXMubm9kZSk7XHJcbiAgfVxyXG5cclxuICBvblRvZ2dsZShldmVudDogRXZlbnQsIG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgbm9kZS5vcGVuID0gIW5vZGUub3BlbjtcclxuICAgIGlmICh0aGlzLnZpcnR1YWxTY3JvbGwpIHtcclxuICAgICAgaWYgKHRoaXMubGF6eSAmJiAhbm9kZS5jaGlsZHJlbkxvYWRlZCkge1xyXG4gICAgICAgIHRoaXMuZ2V0TGF6eURhdGEobm9kZSwgKCkgPT4gdGhpcy52aXJ0dWFsVG9nZ2xlKG5vZGUpKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnZpcnR1YWxUb2dnbGUobm9kZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAobm9kZS5vcGVuICYmICFub2RlLmNoaWxkcmVuTG9hZGVkKSB7XHJcbiAgICAgIGlmICh0aGlzLmxhenkpIHtcclxuICAgICAgICB0aGlzLmdldExhenlEYXRhKG5vZGUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5vZGUuY2hpbGRyZW5Mb2FkZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB2aXJ0dWFsVG9nZ2xlKG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgbGV0IGluZGV4ID0gdGhpcy50cmVlLm5vZGVzLmluZGV4T2Yobm9kZSk7XHJcbiAgICBpZiAobm9kZS5vcGVuKSB7XHJcbiAgICAgIGxldCBhZGROb2RlczogWFRyZWVOb2RlW10gPSBbXTtcclxuICAgICAgY29uc3QgZ2V0Tm9kZXMgPSAobmQ6IFhUcmVlTm9kZSkgPT4ge1xyXG4gICAgICAgIGZvciAobGV0IGNoaWxkIG9mIG5kLmNoaWxkcmVuISkge1xyXG4gICAgICAgICAgYWRkTm9kZXMucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICBjaGlsZC5vcGVuICYmIGdldE5vZGVzKGNoaWxkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICAgIGdldE5vZGVzKG5vZGUpO1xyXG4gICAgICB0aGlzLnRyZWUubm9kZXMuc3BsaWNlKGluZGV4ICsgMSwgMCwgLi4uYWRkTm9kZXMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IGRlbENvdW50ID0gMDtcclxuICAgICAgY29uc3QgZ2V0Q291bnQgPSAobmQ6IFhUcmVlTm9kZSkgPT4ge1xyXG4gICAgICAgIGRlbENvdW50ICs9IG5kLmNoaWxkcmVuIS5sZW5ndGg7XHJcbiAgICAgICAgZm9yIChsZXQgY2hpbGQgb2YgbmQuY2hpbGRyZW4hKSB7XHJcbiAgICAgICAgICBjaGlsZC5vcGVuICYmIGdldENvdW50KGNoaWxkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICAgIGdldENvdW50KG5vZGUpO1xyXG4gICAgICB0aGlzLnRyZWUubm9kZXMuc3BsaWNlKGluZGV4ICsgMSwgZGVsQ291bnQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy50cmVlLm5vZGVzID0gWy4uLnRoaXMudHJlZS5ub2Rlc107XHJcbiAgfVxyXG5cclxuICBnZXRMYXp5RGF0YShub2RlOiBYVHJlZU5vZGUsIGNhbGxCYWNrPzogKCkgPT4gdm9pZCkge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgICh0aGlzLmxhenlEYXRhIGFzIChwaWQ/OiBhbnkpID0+IE9ic2VydmFibGU8WFRyZWVOb2RlW10+KShub2RlLmlkKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHgpID0+XHJcbiAgICAgICAgICB4Lm1hcCgoeSkgPT4ge1xyXG4gICAgICAgICAgICB5LmxldmVsID0gKG5vZGUubGV2ZWwgYXMgbnVtYmVyKSArIDE7XHJcbiAgICAgICAgICAgIHkuY2hlY2tlZCA9IG5vZGUuY2hlY2tlZDtcclxuICAgICAgICAgICAgcmV0dXJuIHk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgbm9kZS5jaGlsZHJlbiA9IHg7XHJcbiAgICAgICAgbm9kZS5jaGlsZHJlbkxvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKGNhbGxCYWNrKSBjYWxsQmFjaygpO1xyXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbkFjdGl2YXRlKGV2ZW50OiBFdmVudCwgbm9kZTogWFRyZWVOb2RlKSB7XHJcbiAgICBjb25zdCBjaGFuZ2U6IEZ1bmN0aW9uID0gdGhpcy50cmVlLmFjdGl2YXRlZE5vZGU/LmNoYW5nZSBhcyBGdW5jdGlvbjtcclxuICAgIHRoaXMudHJlZS5ub2RlT3BlbiAmJiBub2RlLmxlYWYgJiYgdGhpcy5vblRvZ2dsZShldmVudCwgbm9kZSk7XHJcbiAgICBpZiAodGhpcy50cmVlLmFjdGl2YXRlZE5vZGUpIHtcclxuICAgICAgaWYgKHRoaXMudHJlZS5hY3RpdmF0ZWROb2RlLmlkID09PSBub2RlLmlkICYmICF0aGlzLnRyZWUuYWxsb3dNYW55QWN0aXZhdGVkKSByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnRyZWUuYWN0aXZhdGVkTm9kZSA9IG5vZGU7XHJcbiAgICB0aGlzLnRyZWUuYWN0aXZhdGVkQ2hhbmdlLmVtaXQobm9kZSk7XHJcbiAgICBjaGFuZ2UgJiYgY2hhbmdlKCk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG9uQ2hlY2tib3hDaGFuZ2UoKSB7XHJcbiAgICB0aGlzLnNldENoZWNrYm94KCk7XHJcbiAgICB0aGlzLnRyZWUuY2hlY2tib3hDaGFuZ2UuZW1pdCh0aGlzLm5vZGUpO1xyXG4gIH1cclxuXHJcbiAgc2V0Q2hlY2tib3goKSB7XHJcbiAgICBpZiAoIXRoaXMudHJlZS5sZXZlbENoZWNrKSByZXR1cm47XHJcbiAgICB0aGlzLm5vZGUuaW5kZXRlcm1pbmF0ZSA9IHRoaXMubm9kZS5jaGVja2VkO1xyXG4gICAgdGhpcy5ub2RlLmNoaWxkcmVuICYmIHRoaXMuc2V0Q2hpbGRyZW5DaGVja2JveCh0aGlzLm5vZGUuY2hlY2tlZCBhcyBib29sZWFuKTtcclxuICAgIGlmICh0aGlzLnZpcnR1YWxTY3JvbGwpIHtcclxuICAgICAgY29uc3Qgc2V0UGFyZW50ID0gKG5vZGU6IFhUcmVlTm9kZSkgPT4ge1xyXG4gICAgICAgIGxldCBwYXJlbnQgPSB0aGlzLnRyZWUubm9kZXMuZmluZCgoeDogWFRyZWVOb2RlKSA9PiB4LmlkID09PSBub2RlLnBpZCk7XHJcbiAgICAgICAgaWYgKCFwYXJlbnQgfHwgWElzRW1wdHkocGFyZW50LmNoaWxkcmVuKSkgcmV0dXJuO1xyXG4gICAgICAgIGxldCBjaGVja2VkTGlzdCA9IHBhcmVudC5jaGlsZHJlbj8uZmlsdGVyKCh5OiBYVHJlZU5vZGUpID0+IHkuY2hlY2tlZCk7XHJcbiAgICAgICAgbGV0IGluZGV0ZXJtaW5hdGVMaXN0ID0gcGFyZW50LmNoaWxkcmVuPy5maWx0ZXIoKHk6IFhUcmVlTm9kZSkgPT4geS5pbmRldGVybWluYXRlKTtcclxuICAgICAgICBwYXJlbnQuY2hlY2tlZCA9IGNoZWNrZWRMaXN0Py5sZW5ndGggPT09IHBhcmVudC5jaGlsZHJlbj8ubGVuZ3RoO1xyXG4gICAgICAgIHBhcmVudC5pbmRldGVybWluYXRlID0gKGNoZWNrZWRMaXN0IGFzIFhUcmVlTm9kZVtdKS5sZW5ndGggPiAwIHx8IChpbmRldGVybWluYXRlTGlzdCBhcyBYVHJlZU5vZGVbXSkubGVuZ3RoID4gMDtcclxuICAgICAgICBwYXJlbnQuY2hhbmdlICYmIHBhcmVudC5jaGFuZ2UoKTtcclxuICAgICAgICBzZXRQYXJlbnQocGFyZW50KTtcclxuICAgICAgfTtcclxuICAgICAgc2V0UGFyZW50KHRoaXMubm9kZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnBhcmVudD8uc2V0UGFyZW50Q2hlY2tib3goKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldENoaWxkcmVuQ2hlY2tib3goY2hlY2tlZDogYm9vbGVhbikge1xyXG4gICAgY29uc3Qgc2V0Q2hpbGRyZW4gPSAoY2hpbGRyZW46IFhUcmVlTm9kZVtdLCBpc0NoZWNrZWQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgaWYgKFhJc0VtcHR5KGNoaWxkcmVuKSkgcmV0dXJuO1xyXG4gICAgICBmb3IgKGxldCB4IG9mIGNoaWxkcmVuKSB7XHJcbiAgICAgICAgaWYgKHguZGlzYWJsZWQpIGNvbnRpbnVlO1xyXG4gICAgICAgIHguY2hlY2tlZCA9IGlzQ2hlY2tlZDtcclxuICAgICAgICB4LmluZGV0ZXJtaW5hdGUgPSBpc0NoZWNrZWQ7XHJcbiAgICAgICAgeC5jaGFuZ2UgJiYgeC5jaGFuZ2UoKTtcclxuICAgICAgICBzZXRDaGlsZHJlbih4LmNoaWxkcmVuIGFzIFhUcmVlTm9kZVtdLCBpc0NoZWNrZWQpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgc2V0Q2hpbGRyZW4odGhpcy5ub2RlLmNoaWxkcmVuIGFzIFhUcmVlTm9kZVtdLCBjaGVja2VkKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHNldFBhcmVudENoZWNrYm94KCkge1xyXG4gICAgaWYgKFhJc0VtcHR5KHRoaXMubm9kZS5jaGlsZHJlbikpIHJldHVybjtcclxuICAgIGxldCBjaGVja2VkTGlzdCA9IHRoaXMubm9kZS5jaGlsZHJlbj8uZmlsdGVyKCh4KSA9PiB4LmNoZWNrZWQpO1xyXG4gICAgbGV0IGluZGV0ZXJtaW5hdGVMaXN0ID0gdGhpcy5ub2RlLmNoaWxkcmVuPy5maWx0ZXIoKHgpID0+IHguaW5kZXRlcm1pbmF0ZSk7XHJcbiAgICB0aGlzLm5vZGUuY2hlY2tlZCA9IGNoZWNrZWRMaXN0Py5sZW5ndGggPT09IHRoaXMubm9kZS5jaGlsZHJlbj8ubGVuZ3RoO1xyXG4gICAgdGhpcy5ub2RlLmluZGV0ZXJtaW5hdGUgPSAoY2hlY2tlZExpc3QgYXMgWFRyZWVOb2RlW10pLmxlbmd0aCA+IDAgfHwgKGluZGV0ZXJtaW5hdGVMaXN0IGFzIFhUcmVlTm9kZVtdKS5sZW5ndGggPiAwO1xyXG4gICAgdGhpcy5wYXJlbnQ/LnNldFBhcmVudENoZWNrYm94KCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRJbmRldGVybWluYXRlKG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgY29uc3QgZ2V0Q2hpbGRyZW4gPSAoY2hpbGRyZW46IFhUcmVlTm9kZVtdKSA9PiB7XHJcbiAgICAgIGlmIChYSXNFbXB0eShjaGlsZHJlbikpIHJldHVybjtcclxuICAgICAgY2hpbGRyZW4uZm9yRWFjaCgoeCkgPT4ge1xyXG4gICAgICAgIGlmICh4LmluZGV0ZXJtaW5hdGUgfHwgeC5jaGVja2VkKSB7XHJcbiAgICAgICAgICBub2RlLmluZGV0ZXJtaW5hdGUgPSB0cnVlO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBnZXRDaGlsZHJlbih4LmNoaWxkcmVuIGFzIFhUcmVlTm9kZVtdKTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgZ2V0Q2hpbGRyZW4obm9kZS5jaGlsZHJlbiBhcyBYVHJlZU5vZGVbXSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBnZXROb2RlRGlzYWJsZWQoZGlzYWJsZWQ/OiBib29sZWFuKSB7XHJcbiAgICByZXR1cm4gZGlzYWJsZWQgYXMgWEJvb2xlYW47XHJcbiAgfVxyXG5cclxuICBvbkFjdGlvbihldmVudDogRXZlbnQsIGFjdGlvbjogWFRyZWVBY3Rpb24sIG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgYWN0aW9uLmhhbmRsZXIgJiYgYWN0aW9uLmhhbmRsZXIobm9kZSk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIHRyYWNrQnlJdGVtKF9pbmRleDogbnVtYmVyLCBpdGVtOiBYVHJlZUFjdGlvbiB8IFhUcmVlTm9kZSkge1xyXG4gICAgcmV0dXJuIGl0ZW0uaWQ7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cIngtdHJlZS1ub2RlLWNvbnRlbnRcIlxyXG4gIFtjbGFzcy54LWFjdGl2YXRlZF09XCJ0cmVlLmFjdGl2YXRlZE5vZGU/LmlkID09PSBub2RlLmlkXCJcclxuICBbc3R5bGUucGFkZGluZy1sZWZ0LnJlbV09XCJwYWRkaW5nTGVmdFwiXHJcbiAgW3N0eWxlLmhlaWdodC5yZW1dPVwibm9kZS5oZWlnaHQgPyBub2RlLmhlaWdodCA6IG5vZGVIZWlnaHQgPyBub2RlSGVpZ2h0IDogJydcIlxyXG4gIFtzdHlsZS5hbGlnbi1pdGVtc109XCJub2RlLmFsaWduSXRlbXMgPyBub2RlLmFsaWduSXRlbXMgOiBub2RlQWxpZ25JdGVtc1wiXHJcbiAgKGNsaWNrKT1cIm9uQWN0aXZhdGUoJGV2ZW50LCBub2RlKVwiXHJcbj5cclxuICA8eC1pY29uXHJcbiAgICAqbmdJZj1cIiFsb2FkaW5nXCJcclxuICAgIFtjbGFzcy5pcy1sZWFmXT1cIiFub2RlLmxlYWZcIlxyXG4gICAgW2NsYXNzLmlzLW9wZW5dPVwibm9kZS5vcGVuXCJcclxuICAgIHR5cGU9XCJmdG8tY2hldnJvbi1yaWdodFwiXHJcbiAgICAoY2xpY2spPVwiIXRyZWUubm9kZU9wZW4gJiYgb25Ub2dnbGUoJGV2ZW50LCBub2RlKVwiXHJcbiAgPjwveC1pY29uPlxyXG4gIDx4LWljb24gKm5nSWY9XCJsb2FkaW5nXCIgdHlwZT1cImZ0by1sb2FkZXJcIiBbc3Bpbl09XCJsb2FkaW5nXCI+PC94LWljb24+XHJcbiAgPHgtY2hlY2tib3hcclxuICAgICpuZ0lmPVwidHJlZS5jaGVja2JveFwiXHJcbiAgICBbZGF0YV09XCJbeyBsYWJlbDogJycsIGlkOiBub2RlLmlkIH1dXCJcclxuICAgIFsobmdNb2RlbCldPVwibm9kZS5jaGVja2VkXCJcclxuICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hlY2tib3hDaGFuZ2UoKVwiXHJcbiAgICBbaW5kZXRlcm1pbmF0ZV09XCJub2RlLmluZGV0ZXJtaW5hdGVcIlxyXG4gICAgW2Rpc2FibGVkXT1cImdldE5vZGVEaXNhYmxlZChub2RlLmRpc2FibGVkKVwiXHJcbiAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICA+PC94LWNoZWNrYm94PlxyXG4gIDxzcGFuXHJcbiAgICBjbGFzcz1cIngtdHJlZS1ub2RlLWxhYmVsXCJcclxuICAgIFtjbGFzcy5ub3dyYXBdPVwibm9kZS5ub3dyYXAgPT09IGZhbHNlIHx8IG5vZGUubm93cmFwID09PSB0cnVlID8gbm9kZS5ub3dyYXAgOiBub2RlTm93cmFwXCJcclxuICAgIFt0aXRsZV09XCJub2RlLmxhYmVsXCJcclxuICAgICpuZ0lmPVwiIXRyZWUubGFiZWxUcGw7IGVsc2UgbGFiZWxUcGxcIlxyXG4gICAgPnt7IG5vZGUubGFiZWwgfX08L3NwYW5cclxuICA+XHJcbiAgPG5nLXRlbXBsYXRlICNsYWJlbFRwbD5cclxuICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJ0cmVlLmxhYmVsVHBsOyBjb250ZXh0OiB7ICRub2RlOiBub2RlIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4gIDxzcGFuIGNsYXNzPVwieC10cmVlLW5vZGUtb3BlcmF0aW9uc1wiPlxyXG4gICAgPHgtbGlua1xyXG4gICAgICAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHRyZWUuYWN0aW9uczsgdHJhY2tCeTogdHJhY2tCeUl0ZW1cIlxyXG4gICAgICBbaWNvbl09XCJhY3Rpb24uaWNvblwiXHJcbiAgICAgIFt0aXRsZV09XCJhY3Rpb24ubGFiZWxcIlxyXG4gICAgICAoY2xpY2spPVwib25BY3Rpb24oJGV2ZW50LCBhY3Rpb24sIG5vZGUpXCJcclxuICAgID48L3gtbGluaz5cclxuICA8L3NwYW4+XHJcbjwvZGl2PlxyXG48dWwgKm5nSWY9XCIhdmlydHVhbFNjcm9sbCAmJiAobm9kZS5jaGlsZHJlbkxvYWRlZCB8fCAobm9kZS5sZWFmICYmIG5vZGUub3BlbikpXCIgW2hpZGRlbl09XCIhbm9kZS5vcGVuXCI+XHJcbiAgPGxpXHJcbiAgICB4LXRyZWUtbm9kZVxyXG4gICAgKm5nRm9yPVwibGV0IGNoaWxkIG9mIG5vZGUuY2hpbGRyZW47IHRyYWNrQnk6IHRyYWNrQnlJdGVtXCJcclxuICAgIFtub2RlXT1cImNoaWxkXCJcclxuICAgIFtwYXJlbnRdPVwidGhpc1wiXHJcbiAgICBbbGF6eV09XCJsYXp5XCJcclxuICAgIFtsYXp5RGF0YV09XCJsYXp5RGF0YVwiXHJcbiAgICBbbm9kZUhlaWdodF09XCJub2RlSGVpZ2h0XCJcclxuICAgIFtub2RlTm93cmFwXT1cIm5vZGVOb3dyYXBcIlxyXG4gICAgW25vZGVBbGlnbkl0ZW1zXT1cIm5vZGVBbGlnbkl0ZW1zXCJcclxuICAgIFt0cmVlXT1cInRyZWVcIlxyXG4gID48L2xpPlxyXG48L3VsPlxyXG4iXX0=
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RyZWUvdHJlZS1ub2RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RyZWUvdHJlZS1ub2RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsaUJBQWlCLEVBSWpCLHVCQUF1QixFQUN2QixXQUFXLEVBQ1gsS0FBSyxFQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQWEsaUJBQWlCLEVBQWUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RixPQUFPLEVBQUUsUUFBUSxFQUE0QixNQUFNLGtCQUFrQixDQUFDOzs7Ozs7Ozs7QUFTdEUsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGlCQUFpQjtJQWlCdkQ7SUFDRSwyQ0FBMkM7SUFDcEMsUUFBbUIsRUFDbkIsVUFBc0IsRUFDdEIsR0FBc0IsRUFDdEIsYUFBNkI7UUFFcEMsS0FBSyxFQUFFLENBQUM7UUFMRCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBbkJKLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDM0MsYUFBUSxHQUFHLEtBQUssQ0FBQztJQXFCekIsQ0FBQztJQXBCRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxJQUFXLE9BQU8sQ0FBQyxLQUFLO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQVlELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQWMsRUFBRSxFQUFFO1lBQ3BDLElBQUksS0FBSztnQkFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFPO1FBQ2xDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUlELFVBQVUsQ0FBQyxLQUFZLEVBQUUsSUFBZTtRQUN0QyxNQUFNLE1BQU0sR0FBYSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxNQUFrQixDQUFDO1FBQ3JFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ25FLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDM0IsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCO2dCQUFFLE9BQU87U0FDckY7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNuQixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVO1lBQUUsT0FBTztRQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFrQixDQUFDLENBQUM7UUFDN0UsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBZSxFQUFFLEVBQUU7Z0JBQ3BDLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQVksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3ZFLElBQUksQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7b0JBQUUsT0FBTztnQkFDakQsSUFBSSxXQUFXLEdBQUcsTUFBTSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDdkUsSUFBSSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQVksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUNuRixNQUFNLENBQUMsT0FBTyxHQUFHLFdBQVcsRUFBRSxNQUFNLEtBQUssTUFBTSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUM7Z0JBQ2pFLE1BQU0sQ0FBQyxhQUFhLEdBQUksV0FBMkIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFLLGlCQUFpQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7Z0JBQ2hILE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNqQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDcEIsQ0FBQyxDQUFDO1lBQ0YsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN0QjthQUFNO1lBQ0wsSUFBSSxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUVELG1CQUFtQixDQUFDLE9BQWdCO1FBQ2xDLE1BQU0sV0FBVyxHQUFHLENBQUMsUUFBcUIsRUFBRSxTQUFrQixFQUFFLEVBQUU7WUFDaEUsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDO2dCQUFFLE9BQU87WUFDL0IsS0FBSyxJQUFJLENBQUMsSUFBSSxRQUFRLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxDQUFDLFFBQVE7b0JBQUUsU0FBUztnQkFDekIsQ0FBQyxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7Z0JBQ3RCLENBQUMsQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO2dCQUM1QixDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDdkIsV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUF1QixFQUFFLFNBQVMsQ0FBQyxDQUFDO2FBQ25EO1FBQ0gsQ0FBQyxDQUFDO1FBQ0YsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBdUIsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUFFLE9BQU87UUFDekMsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0QsSUFBSSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxXQUFXLEVBQUUsTUFBTSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQztRQUN2RSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBSSxXQUEyQixDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUssaUJBQWlDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNuSCxJQUFJLENBQUMsTUFBTSxFQUFFLGlCQUFpQixFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBZTtRQUM5QixNQUFNLFdBQVcsR0FBRyxDQUFDLFFBQXFCLEVBQUUsRUFBRTtZQUM1QyxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUM7Z0JBQUUsT0FBTztZQUMvQixRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxDQUFDLGFBQWEsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFO29CQUNoQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztvQkFDMUIsT0FBTztpQkFDUjtnQkFDRCxXQUFXLENBQUMsQ0FBQyxDQUFDLFFBQXVCLENBQUMsQ0FBQztZQUN6QyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUNGLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBdUIsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGVBQWUsQ0FBQyxRQUFrQjtRQUNoQyxPQUFPLFFBQW9CLENBQUM7SUFDOUIsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFZLEVBQUUsTUFBbUIsRUFBRSxJQUFlO1FBQ3pELE1BQU0sQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFjLEVBQUUsSUFBNkI7UUFDdkQsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7O2tJQWxJVSxrQkFBa0I7c0hBQWxCLGtCQUFrQixzTUNyQi9CLHVvRUEwREEsMjZERHJDYSxrQkFBa0I7MkZBQWxCLGtCQUFrQjtrQkFQOUIsU0FBUzsrQkFDRSxHQUFHLGVBQWUsTUFBTSxlQUFlLEdBQUcsaUJBR3JDLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07c0xBR3RDLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQzRCLFNBQVM7c0JBQTFDLFdBQVc7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIFJlbmRlcmVyMixcclxuICBFbGVtZW50UmVmLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIElucHV0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhUcmVlTm9kZVByZWZpeCwgWFRyZWVOb2RlLCBYVHJlZU5vZGVQcm9wZXJ0eSwgWFRyZWVBY3Rpb24gfSBmcm9tICcuL3RyZWUucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYSXNFbXB0eSwgWENvbmZpZ1NlcnZpY2UsIFhCb29sZWFuIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFRyZWVOb2RlUHJlZml4fSwgWyR7WFRyZWVOb2RlUHJlZml4fV1gLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVlLW5vZGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RyZWUtbm9kZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFhUcmVlTm9kZUNvbXBvbmVudCBleHRlbmRzIFhUcmVlTm9kZVByb3BlcnR5IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBwYXJlbnQhOiBYVHJlZU5vZGVDb21wb25lbnQ7XHJcbiAgQElucHV0KCkgdHJlZTogYW55O1xyXG4gIEBIb3N0QmluZGluZygnY2xhc3MueC10cmVlLW5vZGUnKSByb290Q2xhc3MgPSB0cnVlO1xyXG4gIHByaXZhdGUgX2xvYWRpbmcgPSBmYWxzZTtcclxuICBwdWJsaWMgZ2V0IGxvYWRpbmcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbG9hZGluZztcclxuICB9XHJcbiAgcHVibGljIHNldCBsb2FkaW5nKHZhbHVlKSB7XHJcbiAgICB0aGlzLl9sb2FkaW5nID0gdmFsdWU7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgcGFkZGluZ0xlZnQoKSB7XHJcbiAgICByZXR1cm4gTnVtYmVyKHRoaXMubm9kZT8ubGV2ZWwgPyB0aGlzLm5vZGUubGV2ZWwgOiAwKSAqIE51bWJlcih0aGlzLnRyZWUuc3BhY2luZyk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIEBPcHRpb25hbCgpIHB1YmxpYyB0cmVlOiBYVHJlZUNvbXBvbmVudCxcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5ub2RlLmNoYW5nZSA9IChjaGVjazogYm9vbGVhbikgPT4ge1xyXG4gICAgICBpZiAoY2hlY2spIHRoaXMuc2V0Q2hlY2tib3goKTtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfTtcclxuICAgIHRoaXMubGV2ZWwgPSB0aGlzLm5vZGU/LmxldmVsID8gdGhpcy5ub2RlLmxldmVsIDogMDtcclxuICAgIGlmICghdGhpcy50cmVlLmxldmVsQ2hlY2spIHJldHVybjtcclxuICAgIGlmICh0aGlzLm5vZGUuY2hlY2tlZCkgdGhpcy5zZXRDaGVja2JveCgpO1xyXG4gICAgdGhpcy5zZXRJbmRldGVybWluYXRlKHRoaXMubm9kZSk7XHJcbiAgfVxyXG5cclxuICBcclxuXHJcbiAgb25BY3RpdmF0ZShldmVudDogRXZlbnQsIG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgY29uc3QgY2hhbmdlOiBGdW5jdGlvbiA9IHRoaXMudHJlZS5hY3RpdmF0ZWROb2RlPy5jaGFuZ2UgYXMgRnVuY3Rpb247XHJcbiAgICB0aGlzLnRyZWUubm9kZU9wZW4gJiYgbm9kZS5sZWFmICYmIHRoaXMudHJlZS5vblRvZ2dsZShldmVudCwgbm9kZSk7XHJcbiAgICBpZiAodGhpcy50cmVlLmFjdGl2YXRlZE5vZGUpIHtcclxuICAgICAgaWYgKHRoaXMudHJlZS5hY3RpdmF0ZWROb2RlLmlkID09PSBub2RlLmlkICYmICF0aGlzLnRyZWUuYWxsb3dNYW55QWN0aXZhdGVkKSByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnRyZWUuYWN0aXZhdGVkTm9kZSA9IG5vZGU7XHJcbiAgICB0aGlzLnRyZWUuYWN0aXZhdGVkQ2hhbmdlLmVtaXQobm9kZSk7XHJcbiAgICBjaGFuZ2UgJiYgY2hhbmdlKCk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG9uQ2hlY2tib3hDaGFuZ2UoKSB7XHJcbiAgICB0aGlzLnNldENoZWNrYm94KCk7XHJcbiAgICB0aGlzLnRyZWUuY2hlY2tib3hDaGFuZ2UuZW1pdCh0aGlzLm5vZGUpO1xyXG4gIH1cclxuXHJcbiAgc2V0Q2hlY2tib3goKSB7XHJcbiAgICBpZiAoIXRoaXMudHJlZS5sZXZlbENoZWNrKSByZXR1cm47XHJcbiAgICB0aGlzLm5vZGUuaW5kZXRlcm1pbmF0ZSA9IHRoaXMubm9kZS5jaGVja2VkO1xyXG4gICAgdGhpcy5ub2RlLmNoaWxkcmVuICYmIHRoaXMuc2V0Q2hpbGRyZW5DaGVja2JveCh0aGlzLm5vZGUuY2hlY2tlZCBhcyBib29sZWFuKTtcclxuICAgIGlmICh0aGlzLnZpcnR1YWxTY3JvbGwpIHtcclxuICAgICAgY29uc3Qgc2V0UGFyZW50ID0gKG5vZGU6IFhUcmVlTm9kZSkgPT4ge1xyXG4gICAgICAgIGxldCBwYXJlbnQgPSB0aGlzLnRyZWUubm9kZXMuZmluZCgoeDogWFRyZWVOb2RlKSA9PiB4LmlkID09PSBub2RlLnBpZCk7XHJcbiAgICAgICAgaWYgKCFwYXJlbnQgfHwgWElzRW1wdHkocGFyZW50LmNoaWxkcmVuKSkgcmV0dXJuO1xyXG4gICAgICAgIGxldCBjaGVja2VkTGlzdCA9IHBhcmVudC5jaGlsZHJlbj8uZmlsdGVyKCh5OiBYVHJlZU5vZGUpID0+IHkuY2hlY2tlZCk7XHJcbiAgICAgICAgbGV0IGluZGV0ZXJtaW5hdGVMaXN0ID0gcGFyZW50LmNoaWxkcmVuPy5maWx0ZXIoKHk6IFhUcmVlTm9kZSkgPT4geS5pbmRldGVybWluYXRlKTtcclxuICAgICAgICBwYXJlbnQuY2hlY2tlZCA9IGNoZWNrZWRMaXN0Py5sZW5ndGggPT09IHBhcmVudC5jaGlsZHJlbj8ubGVuZ3RoO1xyXG4gICAgICAgIHBhcmVudC5pbmRldGVybWluYXRlID0gKGNoZWNrZWRMaXN0IGFzIFhUcmVlTm9kZVtdKS5sZW5ndGggPiAwIHx8IChpbmRldGVybWluYXRlTGlzdCBhcyBYVHJlZU5vZGVbXSkubGVuZ3RoID4gMDtcclxuICAgICAgICBwYXJlbnQuY2hhbmdlICYmIHBhcmVudC5jaGFuZ2UoKTtcclxuICAgICAgICBzZXRQYXJlbnQocGFyZW50KTtcclxuICAgICAgfTtcclxuICAgICAgc2V0UGFyZW50KHRoaXMubm9kZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnBhcmVudD8uc2V0UGFyZW50Q2hlY2tib3goKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldENoaWxkcmVuQ2hlY2tib3goY2hlY2tlZDogYm9vbGVhbikge1xyXG4gICAgY29uc3Qgc2V0Q2hpbGRyZW4gPSAoY2hpbGRyZW46IFhUcmVlTm9kZVtdLCBpc0NoZWNrZWQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgaWYgKFhJc0VtcHR5KGNoaWxkcmVuKSkgcmV0dXJuO1xyXG4gICAgICBmb3IgKGxldCB4IG9mIGNoaWxkcmVuKSB7XHJcbiAgICAgICAgaWYgKHguZGlzYWJsZWQpIGNvbnRpbnVlO1xyXG4gICAgICAgIHguY2hlY2tlZCA9IGlzQ2hlY2tlZDtcclxuICAgICAgICB4LmluZGV0ZXJtaW5hdGUgPSBpc0NoZWNrZWQ7XHJcbiAgICAgICAgeC5jaGFuZ2UgJiYgeC5jaGFuZ2UoKTtcclxuICAgICAgICBzZXRDaGlsZHJlbih4LmNoaWxkcmVuIGFzIFhUcmVlTm9kZVtdLCBpc0NoZWNrZWQpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgc2V0Q2hpbGRyZW4odGhpcy5ub2RlLmNoaWxkcmVuIGFzIFhUcmVlTm9kZVtdLCBjaGVja2VkKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHNldFBhcmVudENoZWNrYm94KCkge1xyXG4gICAgaWYgKFhJc0VtcHR5KHRoaXMubm9kZS5jaGlsZHJlbikpIHJldHVybjtcclxuICAgIGxldCBjaGVja2VkTGlzdCA9IHRoaXMubm9kZS5jaGlsZHJlbj8uZmlsdGVyKCh4KSA9PiB4LmNoZWNrZWQpO1xyXG4gICAgbGV0IGluZGV0ZXJtaW5hdGVMaXN0ID0gdGhpcy5ub2RlLmNoaWxkcmVuPy5maWx0ZXIoKHgpID0+IHguaW5kZXRlcm1pbmF0ZSk7XHJcbiAgICB0aGlzLm5vZGUuY2hlY2tlZCA9IGNoZWNrZWRMaXN0Py5sZW5ndGggPT09IHRoaXMubm9kZS5jaGlsZHJlbj8ubGVuZ3RoO1xyXG4gICAgdGhpcy5ub2RlLmluZGV0ZXJtaW5hdGUgPSAoY2hlY2tlZExpc3QgYXMgWFRyZWVOb2RlW10pLmxlbmd0aCA+IDAgfHwgKGluZGV0ZXJtaW5hdGVMaXN0IGFzIFhUcmVlTm9kZVtdKS5sZW5ndGggPiAwO1xyXG4gICAgdGhpcy5wYXJlbnQ/LnNldFBhcmVudENoZWNrYm94KCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRJbmRldGVybWluYXRlKG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgY29uc3QgZ2V0Q2hpbGRyZW4gPSAoY2hpbGRyZW46IFhUcmVlTm9kZVtdKSA9PiB7XHJcbiAgICAgIGlmIChYSXNFbXB0eShjaGlsZHJlbikpIHJldHVybjtcclxuICAgICAgY2hpbGRyZW4uZm9yRWFjaCgoeCkgPT4ge1xyXG4gICAgICAgIGlmICh4LmluZGV0ZXJtaW5hdGUgfHwgeC5jaGVja2VkKSB7XHJcbiAgICAgICAgICBub2RlLmluZGV0ZXJtaW5hdGUgPSB0cnVlO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBnZXRDaGlsZHJlbih4LmNoaWxkcmVuIGFzIFhUcmVlTm9kZVtdKTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgZ2V0Q2hpbGRyZW4obm9kZS5jaGlsZHJlbiBhcyBYVHJlZU5vZGVbXSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBnZXROb2RlRGlzYWJsZWQoZGlzYWJsZWQ/OiBib29sZWFuKSB7XHJcbiAgICByZXR1cm4gZGlzYWJsZWQgYXMgWEJvb2xlYW47XHJcbiAgfVxyXG5cclxuICBvbkFjdGlvbihldmVudDogRXZlbnQsIGFjdGlvbjogWFRyZWVBY3Rpb24sIG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgYWN0aW9uLmhhbmRsZXIgJiYgYWN0aW9uLmhhbmRsZXIobm9kZSk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIHRyYWNrQnlJdGVtKF9pbmRleDogbnVtYmVyLCBpdGVtOiBYVHJlZUFjdGlvbiB8IFhUcmVlTm9kZSkge1xyXG4gICAgcmV0dXJuIGl0ZW0uaWQ7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cIngtdHJlZS1ub2RlLWNvbnRlbnRcIlxyXG4gIFtjbGFzcy54LWFjdGl2YXRlZF09XCJ0cmVlLmFjdGl2YXRlZE5vZGU/LmlkID09PSBub2RlLmlkXCJcclxuICBbc3R5bGUucGFkZGluZy1sZWZ0LnJlbV09XCJwYWRkaW5nTGVmdFwiXHJcbiAgW3N0eWxlLmhlaWdodC5yZW1dPVwibm9kZS5oZWlnaHQgPyBub2RlLmhlaWdodCA6IG5vZGVIZWlnaHQgPyBub2RlSGVpZ2h0IDogJydcIlxyXG4gIFtzdHlsZS5hbGlnbi1pdGVtc109XCJub2RlLmFsaWduSXRlbXMgPyBub2RlLmFsaWduSXRlbXMgOiBub2RlQWxpZ25JdGVtc1wiXHJcbiAgKGNsaWNrKT1cIm9uQWN0aXZhdGUoJGV2ZW50LCBub2RlKVwiXHJcbj5cclxuICA8eC1pY29uXHJcbiAgICAqbmdJZj1cIiFub2RlLmxvYWRpbmdcIlxyXG4gICAgW2NsYXNzLmlzLWxlYWZdPVwiIW5vZGUubGVhZlwiXHJcbiAgICBbY2xhc3MuaXMtb3Blbl09XCJub2RlLm9wZW5cIlxyXG4gICAgdHlwZT1cImZ0by1jaGV2cm9uLXJpZ2h0XCJcclxuICAgIChjbGljayk9XCIhdHJlZS5ub2RlT3BlbiAmJiB0cmVlLm9uVG9nZ2xlKCRldmVudCwgbm9kZSlcIlxyXG4gID48L3gtaWNvbj5cclxuICA8eC1pY29uICpuZ0lmPVwibm9kZS5sb2FkaW5nXCIgdHlwZT1cImZ0by1sb2FkZXJcIiBbc3Bpbl09XCJub2RlLmxvYWRpbmdcIj48L3gtaWNvbj5cclxuICA8eC1jaGVja2JveFxyXG4gICAgKm5nSWY9XCJ0cmVlLmNoZWNrYm94XCJcclxuICAgIFtkYXRhXT1cIlt7IGxhYmVsOiAnJywgaWQ6IG5vZGUuaWQgfV1cIlxyXG4gICAgWyhuZ01vZGVsKV09XCJub2RlLmNoZWNrZWRcIlxyXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGVja2JveENoYW5nZSgpXCJcclxuICAgIFtpbmRldGVybWluYXRlXT1cIm5vZGUuaW5kZXRlcm1pbmF0ZVwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZ2V0Tm9kZURpc2FibGVkKG5vZGUuZGlzYWJsZWQpXCJcclxuICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gID48L3gtY2hlY2tib3g+XHJcbiAgPHNwYW5cclxuICAgIGNsYXNzPVwieC10cmVlLW5vZGUtbGFiZWxcIlxyXG4gICAgW2NsYXNzLm5vd3JhcF09XCJub2RlLm5vd3JhcCA9PT0gZmFsc2UgfHwgbm9kZS5ub3dyYXAgPT09IHRydWUgPyBub2RlLm5vd3JhcCA6IG5vZGVOb3dyYXBcIlxyXG4gICAgW3RpdGxlXT1cIm5vZGUubGFiZWxcIlxyXG4gICAgKm5nSWY9XCIhdHJlZS5sYWJlbFRwbDsgZWxzZSBsYWJlbFRwbFwiXHJcbiAgICA+e3sgbm9kZS5sYWJlbCB9fTwvc3BhblxyXG4gID5cclxuICA8bmctdGVtcGxhdGUgI2xhYmVsVHBsPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cInRyZWUubGFiZWxUcGw7IGNvbnRleHQ6IHsgJG5vZGU6IG5vZGUgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgPHNwYW4gY2xhc3M9XCJ4LXRyZWUtbm9kZS1vcGVyYXRpb25zXCI+XHJcbiAgICA8eC1saW5rXHJcbiAgICAgICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgdHJlZS5hY3Rpb25zOyB0cmFja0J5OiB0cmFja0J5SXRlbVwiXHJcbiAgICAgIFtpY29uXT1cImFjdGlvbi5pY29uXCJcclxuICAgICAgW3RpdGxlXT1cImFjdGlvbi5sYWJlbFwiXHJcbiAgICAgIChjbGljayk9XCJvbkFjdGlvbigkZXZlbnQsIGFjdGlvbiwgbm9kZSlcIlxyXG4gICAgPjwveC1saW5rPlxyXG4gIDwvc3Bhbj5cclxuPC9kaXY+XHJcbjx1bCAqbmdJZj1cIiF2aXJ0dWFsU2Nyb2xsICYmIChub2RlLmNoaWxkcmVuTG9hZGVkIHx8IChub2RlLmxlYWYgJiYgbm9kZS5vcGVuKSlcIiBbaGlkZGVuXT1cIiFub2RlLm9wZW5cIj5cclxuICA8bGlcclxuICAgIHgtdHJlZS1ub2RlXHJcbiAgICAqbmdGb3I9XCJsZXQgY2hpbGQgb2Ygbm9kZS5jaGlsZHJlbjsgdHJhY2tCeTogdHJhY2tCeUl0ZW1cIlxyXG4gICAgW25vZGVdPVwiY2hpbGRcIlxyXG4gICAgW3BhcmVudF09XCJ0aGlzXCJcclxuICAgIFtsYXp5XT1cImxhenlcIlxyXG4gICAgW2xhenlEYXRhXT1cImxhenlEYXRhXCJcclxuICAgIFtub2RlSGVpZ2h0XT1cIm5vZGVIZWlnaHRcIlxyXG4gICAgW25vZGVOb3dyYXBdPVwibm9kZU5vd3JhcFwiXHJcbiAgICBbbm9kZUFsaWduSXRlbXNdPVwibm9kZUFsaWduSXRlbXNcIlxyXG4gICAgW3RyZWVdPVwidHJlZVwiXHJcbiAgPjwvbGk+XHJcbjwvdWw+XHJcbiJdfQ==