ngx-tethys 18.0.8 → 18.1.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (607) hide show
  1. package/CHANGELOG.md +19 -1
  2. package/action/action.component.d.ts +1 -2
  3. package/affix/affix.component.d.ts +2 -4
  4. package/alert/alert.component.d.ts +11 -19
  5. package/anchor/anchor-link.component.d.ts +2 -4
  6. package/anchor/anchor.component.d.ts +2 -7
  7. package/arrow-switcher/arrow-switcher.component.d.ts +1 -2
  8. package/autocomplete/autocomplete.component.d.ts +1 -2
  9. package/autocomplete/autocomplete.trigger.directive.d.ts +3 -5
  10. package/autocomplete/overlay/autocomplete-container.component.d.ts +4 -4
  11. package/autocomplete/overlay/autocomplete.service.d.ts +3 -5
  12. package/avatar/avatar.component.d.ts +1 -3
  13. package/avatar/avatar.pipe.d.ts +0 -2
  14. package/back-top/back-top.component.d.ts +2 -4
  15. package/badge/badge.component.d.ts +2 -2
  16. package/breadcrumb/breadcrumb-item.component.d.ts +1 -2
  17. package/breadcrumb/breadcrumb.component.d.ts +1 -2
  18. package/button/button.component.d.ts +1 -2
  19. package/calendar/calendar-header.component.d.ts +1 -2
  20. package/calendar/calendar.component.d.ts +1 -2
  21. package/carousel/carousel-item.directive.d.ts +1 -2
  22. package/carousel/carousel.component.d.ts +1 -4
  23. package/carousel/carousel.service.d.ts +1 -2
  24. package/cascader/cascader.component.d.ts +4 -4
  25. package/checkbox/checkbox.component.d.ts +0 -2
  26. package/collapse/collapse-item.component.d.ts +2 -4
  27. package/color-picker/color-picker-panel.component.d.ts +2 -3
  28. package/color-picker/color-picker.component.d.ts +2 -4
  29. package/color-picker/coordinates.directive.d.ts +1 -2
  30. package/color-picker/parts/alpha/alpha.component.d.ts +1 -2
  31. package/color-picker/parts/hue/hue.component.d.ts +1 -2
  32. package/color-picker/parts/saturation/saturation.component.d.ts +1 -2
  33. package/copy/copy.directive.d.ts +0 -2
  34. package/core/click-positioner.d.ts +0 -2
  35. package/core/scroll.d.ts +1 -2
  36. package/core/update-host-class.service.d.ts +1 -2
  37. package/date-picker/abstract-picker.component.d.ts +1 -1
  38. package/date-picker/abstract-picker.directive.d.ts +2 -3
  39. package/date-picker/base-picker.component.d.ts +2 -3
  40. package/date-picker/date-picker.component.d.ts +2 -2
  41. package/date-picker/date-picker.directive.d.ts +1 -3
  42. package/date-picker/date-picker.service.d.ts +2 -2
  43. package/date-picker/index.d.ts +26 -27
  44. package/date-picker/lib/calendar/calendar-footer.component.d.ts +1 -2
  45. package/date-picker/lib/calendar/calendar-header.component.d.ts +0 -1
  46. package/date-picker/lib/date/date-header.component.d.ts +0 -3
  47. package/date-picker/lib/date/date-table-cell.component.d.ts +1 -1
  48. package/date-picker/lib/date/date-table.component.d.ts +1 -3
  49. package/date-picker/lib/date-carousel/date-carousel.component.d.ts +1 -2
  50. package/date-picker/lib/decade/decade-header.component.d.ts +1 -1
  51. package/date-picker/lib/month/month-header.component.d.ts +0 -3
  52. package/date-picker/lib/month/month-table.component.d.ts +1 -2
  53. package/date-picker/lib/popups/date-popup.component.d.ts +1 -4
  54. package/date-picker/lib/popups/inner-popup.component.d.ts +0 -2
  55. package/date-picker/lib/quarter/quarter-table.component.d.ts +1 -2
  56. package/date-picker/lib/year/year-header.component.d.ts +0 -1
  57. package/date-picker/month-picker.component.d.ts +2 -2
  58. package/date-picker/picker.component.d.ts +1 -3
  59. package/date-picker/picker.pipes.d.ts +0 -3
  60. package/date-picker/quarter-picker.component.d.ts +2 -2
  61. package/date-picker/range-picker.component.d.ts +2 -2
  62. package/date-picker/range-picker.directive.d.ts +2 -3
  63. package/date-picker/week-picker.component.d.ts +2 -2
  64. package/date-picker/year-picker.component.d.ts +2 -2
  65. package/date-range/date-range.component.d.ts +3 -11
  66. package/date-range/optional-dates/optional-dates.component.d.ts +0 -2
  67. package/dialog/body/dialog-body.component.d.ts +0 -2
  68. package/dialog/confirm/confirm.component.d.ts +2 -3
  69. package/dialog/dialog-container.component.d.ts +4 -5
  70. package/dialog/dialog.service.d.ts +4 -4
  71. package/dialog/footer/dialog-footer.component.d.ts +2 -2
  72. package/dialog/header/dialog-header.component.d.ts +2 -6
  73. package/divider/divider.component.d.ts +8 -2
  74. package/dot/dot.component.d.ts +1 -2
  75. package/drag-drop/drag-content.directive.d.ts +2 -3
  76. package/drag-drop/drag-handle.directive.d.ts +2 -3
  77. package/drag-drop/drag.directive.d.ts +4 -5
  78. package/drag-drop/drop-container.directive.d.ts +6 -3
  79. package/dropdown/dropdown-active.directive.d.ts +3 -4
  80. package/dropdown/dropdown-menu-item.directive.d.ts +1 -2
  81. package/dropdown/dropdown-submenu.component.d.ts +1 -3
  82. package/dropdown/dropdown.directive.d.ts +3 -5
  83. package/empty/empty.component.d.ts +6 -6
  84. package/esm2022/action/action.component.mjs +20 -21
  85. package/esm2022/affix/affix.component.mjs +11 -14
  86. package/esm2022/alert/alert.component.mjs +55 -81
  87. package/esm2022/anchor/anchor-link.component.mjs +23 -16
  88. package/esm2022/anchor/anchor.component.mjs +27 -24
  89. package/esm2022/arrow-switcher/arrow-switcher.component.mjs +25 -26
  90. package/esm2022/autocomplete/autocomplete.component.mjs +11 -11
  91. package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +30 -37
  92. package/esm2022/autocomplete/overlay/autocomplete-container.component.mjs +11 -15
  93. package/esm2022/autocomplete/overlay/autocomplete.service.mjs +14 -21
  94. package/esm2022/avatar/avatar-list/avatar-list.component.mjs +4 -4
  95. package/esm2022/avatar/avatar.component.mjs +27 -28
  96. package/esm2022/avatar/avatar.pipe.mjs +6 -7
  97. package/esm2022/back-top/back-top.component.mjs +14 -18
  98. package/esm2022/badge/badge.component.mjs +8 -9
  99. package/esm2022/breadcrumb/breadcrumb-item.component.mjs +7 -7
  100. package/esm2022/breadcrumb/breadcrumb.component.mjs +15 -17
  101. package/esm2022/button/button-icon.component.mjs +4 -4
  102. package/esm2022/button/button.component.mjs +15 -15
  103. package/esm2022/calendar/calendar-header.component.mjs +15 -15
  104. package/esm2022/calendar/calendar.component.mjs +14 -15
  105. package/esm2022/card/header.component.mjs +4 -4
  106. package/esm2022/carousel/carousel-item.directive.mjs +7 -6
  107. package/esm2022/carousel/carousel.component.mjs +13 -15
  108. package/esm2022/carousel/carousel.service.mjs +7 -9
  109. package/esm2022/cascader/cascader-li.component.mjs +4 -4
  110. package/esm2022/cascader/cascader-search-option.component.mjs +4 -4
  111. package/esm2022/cascader/cascader.component.mjs +15 -22
  112. package/esm2022/checkbox/checkbox.component.mjs +11 -13
  113. package/esm2022/collapse/collapse-item.component.mjs +21 -24
  114. package/esm2022/color-picker/color-picker-panel.component.mjs +14 -15
  115. package/esm2022/color-picker/color-picker.component.mjs +10 -11
  116. package/esm2022/color-picker/coordinates.directive.mjs +10 -10
  117. package/esm2022/color-picker/parts/alpha/alpha.component.mjs +6 -6
  118. package/esm2022/color-picker/parts/hue/hue.component.mjs +6 -6
  119. package/esm2022/color-picker/parts/saturation/saturation.component.mjs +9 -9
  120. package/esm2022/comment/comment.component.mjs +4 -4
  121. package/esm2022/copy/copy.directive.mjs +8 -12
  122. package/esm2022/core/click-positioner.mjs +6 -7
  123. package/esm2022/core/scroll.mjs +7 -9
  124. package/esm2022/core/store/store.mjs +1 -1
  125. package/esm2022/core/update-host-class.service.mjs +6 -6
  126. package/esm2022/date-picker/abstract-picker.component.mjs +5 -5
  127. package/esm2022/date-picker/abstract-picker.directive.mjs +42 -44
  128. package/esm2022/date-picker/base-picker.component.mjs +26 -26
  129. package/esm2022/date-picker/date-picker.component.mjs +10 -11
  130. package/esm2022/date-picker/date-picker.directive.mjs +6 -8
  131. package/esm2022/date-picker/date-picker.service.mjs +6 -10
  132. package/esm2022/date-picker/index.mjs +27 -28
  133. package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +7 -8
  134. package/esm2022/date-picker/lib/calendar/calendar-header.component.mjs +6 -7
  135. package/esm2022/date-picker/lib/date/date-header.component.mjs +6 -12
  136. package/esm2022/date-picker/lib/date/date-table-cell.component.mjs +4 -4
  137. package/esm2022/date-picker/lib/date/date-table.component.mjs +10 -12
  138. package/esm2022/date-picker/lib/date-carousel/date-carousel.component.mjs +16 -16
  139. package/esm2022/date-picker/lib/decade/decade-header.component.mjs +8 -11
  140. package/esm2022/date-picker/lib/decade/decade-table.component.mjs +4 -4
  141. package/esm2022/date-picker/lib/month/month-header.component.mjs +6 -12
  142. package/esm2022/date-picker/lib/month/month-table.component.mjs +9 -10
  143. package/esm2022/date-picker/lib/popups/date-popup.component.mjs +14 -29
  144. package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +14 -20
  145. package/esm2022/date-picker/lib/quarter/quarter-table.component.mjs +9 -10
  146. package/esm2022/date-picker/lib/year/year-header.component.mjs +6 -12
  147. package/esm2022/date-picker/lib/year/year-table.component.mjs +4 -4
  148. package/esm2022/date-picker/month-picker.component.mjs +9 -11
  149. package/esm2022/date-picker/picker.component.mjs +24 -35
  150. package/esm2022/date-picker/picker.pipes.mjs +10 -11
  151. package/esm2022/date-picker/quarter-picker.component.mjs +9 -11
  152. package/esm2022/date-picker/range-picker.component.mjs +9 -11
  153. package/esm2022/date-picker/range-picker.directive.mjs +6 -8
  154. package/esm2022/date-picker/week-picker.component.mjs +9 -11
  155. package/esm2022/date-picker/year-picker.component.mjs +9 -11
  156. package/esm2022/date-range/date-range.component.mjs +17 -18
  157. package/esm2022/date-range/optional-dates/optional-dates.component.mjs +9 -13
  158. package/esm2022/dialog/body/dialog-body.component.mjs +11 -12
  159. package/esm2022/dialog/confirm/confirm.component.mjs +10 -14
  160. package/esm2022/dialog/dialog-container.component.mjs +13 -18
  161. package/esm2022/dialog/dialog.service.mjs +10 -17
  162. package/esm2022/dialog/footer/dialog-footer.component.mjs +10 -14
  163. package/esm2022/dialog/header/dialog-header.component.mjs +17 -22
  164. package/esm2022/divider/divider.component.mjs +21 -13
  165. package/esm2022/dot/dot.component.mjs +7 -7
  166. package/esm2022/drag-drop/drag-content.directive.mjs +7 -9
  167. package/esm2022/drag-drop/drag-handle.directive.mjs +7 -9
  168. package/esm2022/drag-drop/drag.directive.mjs +13 -16
  169. package/esm2022/drag-drop/drop-container.directive.mjs +13 -13
  170. package/esm2022/dropdown/dropdown-active.directive.mjs +9 -12
  171. package/esm2022/dropdown/dropdown-menu-item.directive.mjs +12 -12
  172. package/esm2022/dropdown/dropdown-menu.component.mjs +11 -7
  173. package/esm2022/dropdown/dropdown-submenu.component.mjs +9 -10
  174. package/esm2022/dropdown/dropdown.directive.mjs +12 -10
  175. package/esm2022/empty/empty.component.mjs +17 -20
  176. package/esm2022/flexible-text/flexible-text.component.mjs +16 -17
  177. package/esm2022/form/form-group-error/form-group-error.component.mjs +12 -15
  178. package/esm2022/form/form-group-label.directive.mjs +9 -10
  179. package/esm2022/form/form-group.component.mjs +18 -22
  180. package/esm2022/form/form-submit.directive.mjs +6 -7
  181. package/esm2022/form/form-validator-loader.mjs +1 -1
  182. package/esm2022/form/form-validator.service.mjs +12 -13
  183. package/esm2022/form/form.directive.mjs +11 -16
  184. package/esm2022/form/from-group-footer/form-group-footer.component.mjs +13 -19
  185. package/esm2022/form/validator/unique-validator.directive.mjs +7 -10
  186. package/esm2022/fullscreen/fullscreen.component.mjs +10 -11
  187. package/esm2022/fullscreen/fullscreen.service.mjs +7 -10
  188. package/esm2022/grid/thy-col.directive.mjs +9 -14
  189. package/esm2022/grid/thy-grid-item.component.mjs +8 -14
  190. package/esm2022/grid/thy-grid.component.mjs +7 -8
  191. package/esm2022/guider/guider-hint/guider-hint.component.mjs +4 -4
  192. package/esm2022/guider/guider.directive.mjs +8 -9
  193. package/esm2022/guider/guider.service.mjs +12 -19
  194. package/esm2022/icon/icon-registry.mjs +11 -16
  195. package/esm2022/icon/icon.component.mjs +8 -9
  196. package/esm2022/image/image-group.component.mjs +7 -7
  197. package/esm2022/image/image.directive.mjs +11 -12
  198. package/esm2022/image/image.service.mjs +8 -14
  199. package/esm2022/image/preview/image-preview.component.mjs +36 -41
  200. package/esm2022/input/input-count.component.mjs +7 -10
  201. package/esm2022/input/input-group.component.mjs +15 -16
  202. package/esm2022/input/input-search.component.mjs +9 -10
  203. package/esm2022/input/input.component.mjs +17 -17
  204. package/esm2022/input/input.directive.mjs +12 -17
  205. package/esm2022/input-number/input-number.component.mjs +6 -6
  206. package/esm2022/layout/header.component.mjs +4 -4
  207. package/esm2022/layout/sidebar-header.component.mjs +4 -4
  208. package/esm2022/layout/sidebar.component.mjs +125 -121
  209. package/esm2022/list/list-item-meta.component.mjs +4 -4
  210. package/esm2022/list/selection/selection-list.mjs +25 -25
  211. package/esm2022/loading/loading.component.mjs +10 -11
  212. package/esm2022/mention/mention.directive.mjs +9 -14
  213. package/esm2022/mention/suggestions/suggestions.component.mjs +11 -12
  214. package/esm2022/menu/group/menu-group.component.mjs +37 -38
  215. package/esm2022/menu/item/action/menu-item-action.component.mjs +15 -16
  216. package/esm2022/menu/item/menu-item.component.mjs +8 -9
  217. package/esm2022/message/abstract/abstract-message-container.component.mjs +5 -5
  218. package/esm2022/message/abstract/abstract-message.component.mjs +6 -6
  219. package/esm2022/message/message-container.component.mjs +21 -15
  220. package/esm2022/message/message-queue.service.mjs +6 -8
  221. package/esm2022/message/message.component.mjs +9 -10
  222. package/esm2022/message/message.service.mjs +10 -11
  223. package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +4 -5
  224. package/esm2022/nav/icon-nav/icon-nav.component.mjs +6 -6
  225. package/esm2022/nav/nav-ink-bar.directive.mjs +9 -14
  226. package/esm2022/nav/nav-item.directive.mjs +8 -11
  227. package/esm2022/nav/nav.component.mjs +35 -38
  228. package/esm2022/nav/nav.pipe.mjs +6 -7
  229. package/esm2022/notify/notify-container.component.mjs +11 -14
  230. package/esm2022/notify/notify-queue.service.mjs +6 -8
  231. package/esm2022/notify/notify.component.mjs +10 -10
  232. package/esm2022/notify/notify.service.mjs +11 -12
  233. package/esm2022/pagination/pagination.component.mjs +41 -46
  234. package/esm2022/pagination/pagination.pipe.mjs +6 -7
  235. package/esm2022/popover/header/popover-header.component.mjs +15 -17
  236. package/esm2022/popover/popover-container.component.mjs +11 -13
  237. package/esm2022/popover/popover.directive.mjs +13 -12
  238. package/esm2022/popover/popover.service.mjs +14 -26
  239. package/esm2022/progress/progress-circle.component.mjs +4 -7
  240. package/esm2022/progress/progress-strip.component.mjs +10 -13
  241. package/esm2022/progress/progress.component.mjs +5 -8
  242. package/esm2022/property/property-item.component.mjs +13 -16
  243. package/esm2022/property-operation/property-operation.component.mjs +27 -28
  244. package/esm2022/radio/button/radio-button.component.mjs +9 -15
  245. package/esm2022/radio/group/radio-group.component.mjs +17 -17
  246. package/esm2022/radio/radio.component.mjs +12 -18
  247. package/esm2022/rate/rate.component.mjs +10 -10
  248. package/esm2022/resizable/resizable.directive.mjs +10 -12
  249. package/esm2022/resizable/resizable.service.mjs +7 -9
  250. package/esm2022/resizable/resize-handle.component.mjs +16 -14
  251. package/esm2022/resizable/resize-handles.component.mjs +12 -5
  252. package/esm2022/result/result.component.mjs +4 -4
  253. package/esm2022/segment/segment-item.component.mjs +15 -18
  254. package/esm2022/segment/segment.component.mjs +29 -30
  255. package/esm2022/select/custom-select/custom-select.component.mjs +19 -35
  256. package/esm2022/select/native-select/native-select.component.mjs +10 -11
  257. package/esm2022/shared/base-form-check.component.mjs +7 -8
  258. package/esm2022/shared/directives/string-or-template-outlet.directive.mjs +7 -7
  259. package/esm2022/shared/directives/thy-autofocus.directive.mjs +10 -10
  260. package/esm2022/shared/directives/thy-contextmenu.directive.mjs +8 -8
  261. package/esm2022/shared/directives/thy-ctrl-enter.directive.mjs +8 -8
  262. package/esm2022/shared/directives/thy-enter.directive.mjs +8 -8
  263. package/esm2022/shared/directives/thy-scroll.directive.mjs +21 -21
  264. package/esm2022/shared/directives/thy-show.mjs +11 -11
  265. package/esm2022/shared/directives/thy-stop-propagation.directive.mjs +7 -5
  266. package/esm2022/shared/directives/view-outlet.directive.mjs +7 -7
  267. package/esm2022/shared/ng-transclude.directive.mjs +6 -5
  268. package/esm2022/shared/option/group/option-group.component.mjs +10 -10
  269. package/esm2022/shared/option/list-option/list-option.component.mjs +14 -22
  270. package/esm2022/shared/option/option.component.mjs +11 -22
  271. package/esm2022/shared/select/select-control/select-control.component.mjs +27 -27
  272. package/esm2022/skeleton/skeleton-circle.component.mjs +7 -15
  273. package/esm2022/skeleton/skeleton-rectangle.component.mjs +7 -15
  274. package/esm2022/skeleton/stylized/bullet-list.component.mjs +8 -9
  275. package/esm2022/skeleton/stylized/list.component.mjs +8 -9
  276. package/esm2022/skeleton/stylized/paragraph.component.mjs +8 -9
  277. package/esm2022/slide/drawer/drawer-container.directive.mjs +6 -6
  278. package/esm2022/slide/slide-container.component.mjs +12 -16
  279. package/esm2022/slide/slide-header/slide-header.component.mjs +13 -14
  280. package/esm2022/slide/slide-ref.service.mjs +1 -1
  281. package/esm2022/slide/slide.service.mjs +8 -12
  282. package/esm2022/slider/slider.component.mjs +8 -8
  283. package/esm2022/space/space.component.mjs +16 -16
  284. package/esm2022/statistic/statistic.component.mjs +23 -23
  285. package/esm2022/stepper/step.component.mjs +6 -11
  286. package/esm2022/stepper/stepper-button.directive.mjs +10 -11
  287. package/esm2022/stepper/stepper.component.mjs +5 -5
  288. package/esm2022/strength/strength.component.mjs +11 -12
  289. package/esm2022/switch/switch.component.mjs +11 -11
  290. package/esm2022/table/table-column.component.mjs +58 -63
  291. package/esm2022/table/table-skeleton.component.mjs +35 -38
  292. package/esm2022/table/table.component.mjs +19 -29
  293. package/esm2022/tabs/tab-content.component.mjs +9 -9
  294. package/esm2022/tabs/tabs.component.mjs +22 -25
  295. package/esm2022/tag/tag.component.mjs +22 -22
  296. package/esm2022/time-picker/inner/inner-time-picker.component.mjs +12 -12
  297. package/esm2022/time-picker/time-picker-panel.component.mjs +31 -34
  298. package/esm2022/time-picker/time-picker.component.mjs +33 -43
  299. package/esm2022/timeline/timeline-item.component.mjs +15 -16
  300. package/esm2022/timeline/timeline.component.mjs +15 -16
  301. package/esm2022/tooltip/tooltip.component.mjs +17 -17
  302. package/esm2022/tooltip/tooltip.directive.mjs +11 -10
  303. package/esm2022/tooltip/tooltip.service.mjs +9 -13
  304. package/esm2022/transfer/transfer-list.component.mjs +9 -9
  305. package/esm2022/transfer/transfer.component.mjs +4 -4
  306. package/esm2022/tree/tree-node.component.mjs +16 -20
  307. package/esm2022/tree/tree.component.mjs +90 -96
  308. package/esm2022/tree-select/tree-select.component.mjs +28 -36
  309. package/esm2022/typography/bg-color.directive.mjs +9 -9
  310. package/esm2022/typography/text/text.component.mjs +3 -4
  311. package/esm2022/typography/text-color.directive.mjs +9 -9
  312. package/esm2022/upload/file-drop.directive.mjs +1 -1
  313. package/esm2022/upload/file-select-base.mjs +5 -6
  314. package/esm2022/upload/file-select.component.mjs +4 -3
  315. package/esm2022/upload/upload.service.mjs +6 -7
  316. package/esm2022/version.mjs +2 -2
  317. package/esm2022/vote/vote.component.mjs +4 -4
  318. package/esm2022/watermark/watermark.directive.mjs +12 -12
  319. package/fesm2022/ngx-tethys-action.mjs +20 -20
  320. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  321. package/fesm2022/ngx-tethys-affix.mjs +12 -14
  322. package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
  323. package/fesm2022/ngx-tethys-alert.mjs +54 -80
  324. package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
  325. package/fesm2022/ngx-tethys-anchor.mjs +48 -35
  326. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  327. package/fesm2022/ngx-tethys-arrow-switcher.mjs +25 -25
  328. package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
  329. package/fesm2022/ngx-tethys-autocomplete.mjs +63 -75
  330. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  331. package/fesm2022/ngx-tethys-avatar.mjs +32 -32
  332. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  333. package/fesm2022/ngx-tethys-back-top.mjs +15 -18
  334. package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
  335. package/fesm2022/ngx-tethys-badge.mjs +8 -8
  336. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  337. package/fesm2022/ngx-tethys-breadcrumb.mjs +19 -21
  338. package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
  339. package/fesm2022/ngx-tethys-button.mjs +16 -16
  340. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  341. package/fesm2022/ngx-tethys-calendar.mjs +26 -26
  342. package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
  343. package/fesm2022/ngx-tethys-card.mjs +3 -3
  344. package/fesm2022/ngx-tethys-card.mjs.map +1 -1
  345. package/fesm2022/ngx-tethys-carousel.mjs +23 -24
  346. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  347. package/fesm2022/ngx-tethys-cascader.mjs +19 -25
  348. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  349. package/fesm2022/ngx-tethys-checkbox.mjs +10 -11
  350. package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
  351. package/fesm2022/ngx-tethys-collapse.mjs +20 -22
  352. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  353. package/fesm2022/ngx-tethys-color-picker.mjs +47 -45
  354. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  355. package/fesm2022/ngx-tethys-comment.mjs +3 -3
  356. package/fesm2022/ngx-tethys-comment.mjs.map +1 -1
  357. package/fesm2022/ngx-tethys-copy.mjs +8 -12
  358. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  359. package/fesm2022/ngx-tethys-core.mjs +14 -16
  360. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  361. package/fesm2022/ngx-tethys-date-picker.mjs +2872 -2924
  362. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  363. package/fesm2022/ngx-tethys-date-range.mjs +24 -26
  364. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  365. package/fesm2022/ngx-tethys-dialog.mjs +61 -77
  366. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  367. package/fesm2022/ngx-tethys-divider.mjs +20 -12
  368. package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
  369. package/fesm2022/ngx-tethys-dot.mjs +6 -6
  370. package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
  371. package/fesm2022/ngx-tethys-drag-drop.mjs +33 -37
  372. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  373. package/fesm2022/ngx-tethys-dropdown.mjs +49 -43
  374. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  375. package/fesm2022/ngx-tethys-empty.mjs +18 -18
  376. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  377. package/fesm2022/ngx-tethys-flexible-text.mjs +16 -17
  378. package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
  379. package/fesm2022/ngx-tethys-form.mjs +74 -89
  380. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  381. package/fesm2022/ngx-tethys-fullscreen.mjs +14 -17
  382. package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
  383. package/fesm2022/ngx-tethys-grid.mjs +20 -29
  384. package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
  385. package/fesm2022/ngx-tethys-guider.mjs +20 -26
  386. package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
  387. package/fesm2022/ngx-tethys-icon.mjs +18 -22
  388. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  389. package/fesm2022/ngx-tethys-image.mjs +60 -65
  390. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  391. package/fesm2022/ngx-tethys-input-number.mjs +5 -5
  392. package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
  393. package/fesm2022/ngx-tethys-input.mjs +53 -60
  394. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  395. package/fesm2022/ngx-tethys-layout.mjs +129 -124
  396. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  397. package/fesm2022/ngx-tethys-list.mjs +27 -27
  398. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  399. package/fesm2022/ngx-tethys-loading.mjs +10 -10
  400. package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
  401. package/fesm2022/ngx-tethys-mention.mjs +19 -24
  402. package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
  403. package/fesm2022/ngx-tethys-menu.mjs +56 -57
  404. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  405. package/fesm2022/ngx-tethys-message.mjs +47 -41
  406. package/fesm2022/ngx-tethys-message.mjs.map +1 -1
  407. package/fesm2022/ngx-tethys-nav.mjs +61 -72
  408. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  409. package/fesm2022/ngx-tethys-notify.mjs +31 -34
  410. package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
  411. package/fesm2022/ngx-tethys-pagination.mjs +46 -51
  412. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  413. package/fesm2022/ngx-tethys-popover.mjs +51 -57
  414. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  415. package/fesm2022/ngx-tethys-progress.mjs +15 -24
  416. package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
  417. package/fesm2022/ngx-tethys-property-operation.mjs +27 -27
  418. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  419. package/fesm2022/ngx-tethys-property.mjs +14 -14
  420. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  421. package/fesm2022/ngx-tethys-radio.mjs +33 -39
  422. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  423. package/fesm2022/ngx-tethys-rate.mjs +9 -9
  424. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  425. package/fesm2022/ngx-tethys-resizable.mjs +43 -34
  426. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  427. package/fesm2022/ngx-tethys-result.mjs +3 -3
  428. package/fesm2022/ngx-tethys-result.mjs.map +1 -1
  429. package/fesm2022/ngx-tethys-segment.mjs +41 -44
  430. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  431. package/fesm2022/ngx-tethys-select.mjs +28 -44
  432. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  433. package/fesm2022/ngx-tethys-shared.mjs +135 -150
  434. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  435. package/fesm2022/ngx-tethys-skeleton.mjs +33 -47
  436. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  437. package/fesm2022/ngx-tethys-slide.mjs +33 -37
  438. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  439. package/fesm2022/ngx-tethys-slider.mjs +7 -7
  440. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  441. package/fesm2022/ngx-tethys-space.mjs +16 -16
  442. package/fesm2022/ngx-tethys-space.mjs.map +1 -1
  443. package/fesm2022/ngx-tethys-statistic.mjs +22 -22
  444. package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
  445. package/fesm2022/ngx-tethys-stepper.mjs +17 -22
  446. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  447. package/fesm2022/ngx-tethys-strength.mjs +11 -11
  448. package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
  449. package/fesm2022/ngx-tethys-switch.mjs +10 -10
  450. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  451. package/fesm2022/ngx-tethys-table.mjs +107 -124
  452. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  453. package/fesm2022/ngx-tethys-tabs.mjs +29 -32
  454. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  455. package/fesm2022/ngx-tethys-tag.mjs +21 -21
  456. package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
  457. package/fesm2022/ngx-tethys-time-picker.mjs +70 -80
  458. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  459. package/fesm2022/ngx-tethys-timeline.mjs +26 -26
  460. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  461. package/fesm2022/ngx-tethys-tooltip.mjs +35 -36
  462. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  463. package/fesm2022/ngx-tethys-transfer.mjs +10 -10
  464. package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
  465. package/fesm2022/ngx-tethys-tree-select.mjs +29 -37
  466. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  467. package/fesm2022/ngx-tethys-tree.mjs +102 -110
  468. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  469. package/fesm2022/ngx-tethys-typography.mjs +18 -18
  470. package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
  471. package/fesm2022/ngx-tethys-upload.mjs +11 -12
  472. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  473. package/fesm2022/ngx-tethys-vote.mjs +3 -3
  474. package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
  475. package/fesm2022/ngx-tethys-watermark.mjs +12 -12
  476. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  477. package/fesm2022/ngx-tethys.mjs +1 -1
  478. package/fesm2022/ngx-tethys.mjs.map +1 -1
  479. package/flexible-text/flexible-text.component.d.ts +1 -3
  480. package/form/form-group-error/form-group-error.component.d.ts +1 -3
  481. package/form/form-group-label.directive.d.ts +0 -2
  482. package/form/form-group.component.d.ts +1 -4
  483. package/form/form-submit.directive.d.ts +0 -2
  484. package/form/form-validator.service.d.ts +0 -2
  485. package/form/form.directive.d.ts +4 -4
  486. package/form/from-group-footer/form-group-footer.component.d.ts +2 -4
  487. package/form/validator/unique-validator.directive.d.ts +1 -4
  488. package/fullscreen/fullscreen.component.d.ts +0 -2
  489. package/fullscreen/fullscreen.service.d.ts +0 -2
  490. package/grid/thy-col.directive.d.ts +1 -2
  491. package/grid/thy-grid-item.component.d.ts +2 -4
  492. package/grid/thy-grid.component.d.ts +1 -3
  493. package/guider/guider.directive.d.ts +1 -3
  494. package/guider/guider.service.d.ts +0 -7
  495. package/icon/icon-registry.d.ts +1 -3
  496. package/icon/icon.component.d.ts +1 -3
  497. package/image/image-group.component.d.ts +1 -2
  498. package/image/image.directive.d.ts +1 -3
  499. package/image/image.service.d.ts +2 -2
  500. package/image/preview/image-preview.component.d.ts +1 -4
  501. package/input/input-count.component.d.ts +3 -4
  502. package/input/input-group.component.d.ts +1 -3
  503. package/input/input-search.component.d.ts +2 -2
  504. package/input/input.component.d.ts +1 -2
  505. package/input/input.directive.d.ts +2 -3
  506. package/input-number/input-number.component.d.ts +2 -2
  507. package/layout/sidebar.component.d.ts +44 -13
  508. package/list/selection/selection-list.d.ts +1 -2
  509. package/loading/loading.component.d.ts +0 -2
  510. package/loading/styles/loading.scss +3 -1
  511. package/mention/mention.directive.d.ts +4 -5
  512. package/mention/suggestions/suggestions.component.d.ts +2 -3
  513. package/menu/group/menu-group.component.d.ts +30 -8
  514. package/menu/item/action/menu-item-action.component.d.ts +2 -3
  515. package/menu/item/menu-item.component.d.ts +1 -2
  516. package/message/abstract/abstract-message-container.component.d.ts +1 -2
  517. package/message/abstract/abstract-message.component.d.ts +2 -2
  518. package/message/message-container.component.d.ts +1 -3
  519. package/message/message-queue.service.d.ts +1 -2
  520. package/message/message.component.d.ts +1 -3
  521. package/message/message.service.d.ts +3 -5
  522. package/nav/icon-nav/icon-nav.component.d.ts +2 -2
  523. package/nav/nav-ink-bar.directive.d.ts +2 -4
  524. package/nav/nav-item.directive.d.ts +3 -4
  525. package/nav/nav.component.d.ts +1 -3
  526. package/nav/nav.pipe.d.ts +0 -2
  527. package/notify/notify-container.component.d.ts +1 -3
  528. package/notify/notify-queue.service.d.ts +1 -2
  529. package/notify/notify.component.d.ts +2 -3
  530. package/notify/notify.service.d.ts +1 -4
  531. package/package.json +1 -1
  532. package/pagination/pagination.component.d.ts +2 -4
  533. package/pagination/pagination.pipe.d.ts +0 -2
  534. package/popover/header/popover-header.component.d.ts +0 -3
  535. package/popover/popover-container.component.d.ts +3 -4
  536. package/popover/popover.directive.d.ts +2 -5
  537. package/popover/popover.service.d.ts +4 -6
  538. package/progress/progress-circle.component.d.ts +0 -1
  539. package/progress/progress-strip.component.d.ts +0 -1
  540. package/progress/progress.component.d.ts +0 -1
  541. package/property/property-item.component.d.ts +6 -9
  542. package/property-operation/property-operation.component.d.ts +1 -3
  543. package/radio/button/radio-button.component.d.ts +2 -5
  544. package/radio/group/radio-group.component.d.ts +1 -2
  545. package/radio/radio.component.d.ts +2 -3
  546. package/rate/rate.component.d.ts +2 -2
  547. package/resizable/resizable.directive.d.ts +2 -4
  548. package/resizable/resizable.service.d.ts +2 -2
  549. package/resizable/resize-handle.component.d.ts +2 -7
  550. package/schematics/version.d.ts +1 -1
  551. package/schematics/version.js +1 -1
  552. package/segment/segment-item.component.d.ts +4 -5
  553. package/segment/segment.component.d.ts +2 -7
  554. package/select/custom-select/custom-select.component.d.ts +5 -5
  555. package/select/native-select/native-select.component.d.ts +1 -1
  556. package/shared/base-form-check.component.d.ts +1 -1
  557. package/shared/directives/string-or-template-outlet.directive.d.ts +1 -2
  558. package/shared/directives/thy-autofocus.directive.d.ts +0 -2
  559. package/shared/directives/thy-contextmenu.directive.d.ts +1 -2
  560. package/shared/directives/thy-ctrl-enter.directive.d.ts +1 -2
  561. package/shared/directives/thy-enter.directive.d.ts +1 -2
  562. package/shared/directives/thy-scroll.directive.d.ts +1 -2
  563. package/shared/directives/thy-show.d.ts +1 -2
  564. package/shared/directives/thy-stop-propagation.directive.d.ts +2 -2
  565. package/shared/directives/view-outlet.directive.d.ts +1 -2
  566. package/shared/ng-transclude.directive.d.ts +1 -1
  567. package/shared/option/group/option-group.component.d.ts +1 -2
  568. package/shared/option/list-option/list-option.component.d.ts +6 -7
  569. package/shared/option/option.component.d.ts +5 -5
  570. package/shared/select/select-control/select-control.component.d.ts +1 -2
  571. package/skeleton/skeleton-circle.component.d.ts +1 -4
  572. package/skeleton/skeleton-rectangle.component.d.ts +5 -5
  573. package/skeleton/stylized/bullet-list.component.d.ts +9 -1
  574. package/slide/drawer/drawer-container.directive.d.ts +1 -2
  575. package/slide/slide-container.component.d.ts +3 -4
  576. package/slide/slide-header/slide-header.component.d.ts +0 -2
  577. package/slide/slide.service.d.ts +3 -3
  578. package/slider/slider.component.d.ts +2 -2
  579. package/space/space.component.d.ts +1 -2
  580. package/statistic/statistic.component.d.ts +1 -2
  581. package/stepper/step.component.d.ts +1 -2
  582. package/stepper/stepper-button.directive.d.ts +0 -3
  583. package/strength/strength.component.d.ts +0 -1
  584. package/switch/switch.component.d.ts +1 -1
  585. package/table/table-column.component.d.ts +32 -8
  586. package/table/table-skeleton.component.d.ts +1 -3
  587. package/table/table.component.d.ts +3 -5
  588. package/tabs/tabs.component.d.ts +1 -3
  589. package/tag/tag.component.d.ts +7 -3
  590. package/time-picker/inner/inner-time-picker.component.d.ts +2 -4
  591. package/time-picker/time-picker-panel.component.d.ts +1 -3
  592. package/time-picker/time-picker.component.d.ts +1 -2
  593. package/timeline/timeline-item.component.d.ts +1 -3
  594. package/timeline/timeline.component.d.ts +1 -3
  595. package/tooltip/tooltip.component.d.ts +1 -2
  596. package/tooltip/tooltip.directive.d.ts +6 -9
  597. package/tooltip/tooltip.service.d.ts +2 -4
  598. package/transfer/transfer-list.component.d.ts +1 -2
  599. package/tree/tree-node.component.d.ts +5 -21
  600. package/tree/tree.component.d.ts +1 -2
  601. package/tree-select/tree-select.component.d.ts +5 -6
  602. package/typography/bg-color.directive.d.ts +0 -2
  603. package/typography/text-color.directive.d.ts +1 -2
  604. package/upload/file-select-base.d.ts +2 -3
  605. package/upload/file-select.component.d.ts +1 -0
  606. package/upload/upload.service.d.ts +0 -2
  607. package/watermark/watermark.directive.d.ts +1 -2
@@ -2,7 +2,7 @@ import { Component, ContentChild, EventEmitter, HostBinding, Input, Output, Temp
2
2
  import { TransferDirection } from './transfer.interface';
3
3
  import { ThyFlexibleText } from 'ngx-tethys/flexible-text';
4
4
  import { ThyIcon } from 'ngx-tethys/icon';
5
- import { NgIf, NgClass, NgTemplateOutlet } from '@angular/common';
5
+ import { NgClass, NgTemplateOutlet } from '@angular/common';
6
6
  import { ThyTransferList } from './transfer-list.component';
7
7
  import * as i0 from "@angular/core";
8
8
  /**
@@ -135,11 +135,11 @@ export class ThyTransfer {
135
135
  : [...otherListData.lock, ...otherListData.unlock];
136
136
  }
137
137
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTransfer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
138
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: ThyTransfer, isStandalone: true, selector: "thy-transfer", inputs: { thyData: "thyData", thyrenderLeftTemplateRef: "thyrenderLeftTemplateRef", thyrenderRightTemplateRef: "thyrenderRightTemplateRef", thyTitles: "thyTitles", thyRightCanLock: "thyRightCanLock", thyRightLockMax: "thyRightLockMax", thyRightMax: "thyRightMax", thyAutoMove: "thyAutoMove", thyLeftDraggable: "thyLeftDraggable", thyRightDraggable: "thyRightDraggable" }, outputs: { thyDraggableUpdate: "thyDraggableUpdate", thyChange: "thyChange" }, host: { properties: { "class": "this.hostClass" } }, queries: [{ propertyName: "templateRef", first: true, predicate: ["renderTemplate"], descendants: true }, { propertyName: "leftContentRef", first: true, predicate: ["renderLeftTemplate"], descendants: true }, { propertyName: "rightContentRef", first: true, predicate: ["renderRightTemplate"], descendants: true }], ngImport: i0, template: "<thy-transfer-list\n [items]=\"allDataSource\"\n [title]=\"leftTitle\"\n [draggable]=\"thyLeftDraggable\"\n [disabled]=\"thyRightMax <= rightDataSource.length\"\n [renderContentRef]=\"leftContentRef\"\n (draggableUpdate)=\"onDragUpdate('left', $event)\"\n [template]=\"leftTemplateRef\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\"\n>\n <ng-template #leftTemplateRef let-item>\n <div (click)=\"onSelect(item.direction === 'left' ? 'left' : 'right', { item: item })\" class=\"list-item-content\">\n <ng-container *ngIf=\"thyLeftDraggable\">\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n </ng-container>\n <div class=\"item-name\" [ngClass]=\"{ 'un-select-item': item.direction !== 'right' }\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n <thy-icon *ngIf=\"item.direction === 'right'\" class=\"text-primary item-status\" thyIconName=\"check\"></thy-icon>\n </div>\n </ng-template>\n</thy-transfer-list>\n\n<div class=\"thy-transfer-operation\">\n <div class=\"thy-transfer-operation-body\">\n <thy-icon thyIconName=\"angle-right\" class=\"operation-link\"></thy-icon>\n <br />\n <thy-icon thyIconName=\"angle-left\" class=\"operation-link\"></thy-icon>\n </div>\n</div>\n\n<thy-transfer-list\n [items]=\"rightDataSource\"\n [title]=\"rightTitle\"\n [draggable]=\"thyRightDraggable\"\n (draggableUpdate)=\"onDragUpdate('right', $event)\"\n [canLock]=\"thyRightCanLock\"\n [maxLock]=\"thyRightLockMax\"\n [max]=\"thyRightMax\"\n [template]=\"rightTemplateRef\"\n [renderContentRef]=\"rightContentRef\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\"\n>\n <ng-template #rightTemplateRef let-item>\n <ng-container *ngIf=\"thyRightDraggable\">\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n </ng-container>\n <div class=\"item-name\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n <a class=\"link-secondary\" *ngIf=\"item.direction === 'right' && !item.isFixed\" (click)=\"onSelect('right', { item: item })\">\n <thy-icon class=\"item-status\" thyIconName=\"close\"></thy-icon>\n </a>\n </ng-template>\n</thy-transfer-list>\n\n<ng-template #thyTransferListItem let-item>\n <ng-template *ngIf=\"templateRef\" [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n <ng-container *ngIf=\"!templateRef\">\n <thy-flexible-text [thyTooltipContent]=\"item.title\">\n {{ item.title }}\n </thy-flexible-text>\n </ng-container>\n</ng-template>\n", dependencies: [{ kind: "component", type: ThyTransferList, selector: "thy-transfer-list", inputs: ["title", "items", "draggable", "canLock", "maxLock", "max", "disabled", "template", "renderContentRef"], outputs: ["draggableUpdate", "selectItem", "unselectItem"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }], encapsulation: i0.ViewEncapsulation.None }); }
138
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyTransfer, isStandalone: true, selector: "thy-transfer", inputs: { thyData: "thyData", thyrenderLeftTemplateRef: "thyrenderLeftTemplateRef", thyrenderRightTemplateRef: "thyrenderRightTemplateRef", thyTitles: "thyTitles", thyRightCanLock: "thyRightCanLock", thyRightLockMax: "thyRightLockMax", thyRightMax: "thyRightMax", thyAutoMove: "thyAutoMove", thyLeftDraggable: "thyLeftDraggable", thyRightDraggable: "thyRightDraggable" }, outputs: { thyDraggableUpdate: "thyDraggableUpdate", thyChange: "thyChange" }, host: { properties: { "class": "this.hostClass" } }, queries: [{ propertyName: "templateRef", first: true, predicate: ["renderTemplate"], descendants: true }, { propertyName: "leftContentRef", first: true, predicate: ["renderLeftTemplate"], descendants: true }, { propertyName: "rightContentRef", first: true, predicate: ["renderRightTemplate"], descendants: true }], ngImport: i0, template: "<thy-transfer-list\n [items]=\"allDataSource\"\n [title]=\"leftTitle\"\n [draggable]=\"thyLeftDraggable\"\n [disabled]=\"thyRightMax <= rightDataSource.length\"\n [renderContentRef]=\"leftContentRef\"\n (draggableUpdate)=\"onDragUpdate('left', $event)\"\n [template]=\"leftTemplateRef\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\"\n >\n <ng-template #leftTemplateRef let-item>\n <div (click)=\"onSelect(item.direction === 'left' ? 'left' : 'right', { item: item })\" class=\"list-item-content\">\n @if (thyLeftDraggable) {\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n }\n <div class=\"item-name\" [ngClass]=\"{ 'un-select-item': item.direction !== 'right' }\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n @if (item.direction === 'right') {\n <thy-icon class=\"text-primary item-status\" thyIconName=\"check\"></thy-icon>\n }\n </div>\n </ng-template>\n</thy-transfer-list>\n\n<div class=\"thy-transfer-operation\">\n <div class=\"thy-transfer-operation-body\">\n <thy-icon thyIconName=\"angle-right\" class=\"operation-link\"></thy-icon>\n <br />\n <thy-icon thyIconName=\"angle-left\" class=\"operation-link\"></thy-icon>\n </div>\n</div>\n\n<thy-transfer-list\n [items]=\"rightDataSource\"\n [title]=\"rightTitle\"\n [draggable]=\"thyRightDraggable\"\n (draggableUpdate)=\"onDragUpdate('right', $event)\"\n [canLock]=\"thyRightCanLock\"\n [maxLock]=\"thyRightLockMax\"\n [max]=\"thyRightMax\"\n [template]=\"rightTemplateRef\"\n [renderContentRef]=\"rightContentRef\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\"\n >\n <ng-template #rightTemplateRef let-item>\n @if (thyRightDraggable) {\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n }\n <div class=\"item-name\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n @if (item.direction === 'right' && !item.isFixed) {\n <a class=\"link-secondary\" (click)=\"onSelect('right', { item: item })\">\n <thy-icon class=\"item-status\" thyIconName=\"close\"></thy-icon>\n </a>\n }\n </ng-template>\n</thy-transfer-list>\n\n<ng-template #thyTransferListItem let-item>\n @if (templateRef) {\n <ng-template [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n }\n @if (!templateRef) {\n <thy-flexible-text [thyTooltipContent]=\"item.title\">\n {{ item.title }}\n </thy-flexible-text>\n }\n</ng-template>\n", dependencies: [{ kind: "component", type: ThyTransferList, selector: "thy-transfer-list", inputs: ["title", "items", "draggable", "canLock", "maxLock", "max", "disabled", "template", "renderContentRef"], outputs: ["draggableUpdate", "selectItem", "unselectItem"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }], encapsulation: i0.ViewEncapsulation.None }); }
139
139
  }
140
140
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTransfer, decorators: [{
141
141
  type: Component,
142
- args: [{ selector: 'thy-transfer', encapsulation: ViewEncapsulation.None, standalone: true, imports: [ThyTransferList, NgIf, ThyIcon, NgClass, NgTemplateOutlet, ThyFlexibleText], template: "<thy-transfer-list\n [items]=\"allDataSource\"\n [title]=\"leftTitle\"\n [draggable]=\"thyLeftDraggable\"\n [disabled]=\"thyRightMax <= rightDataSource.length\"\n [renderContentRef]=\"leftContentRef\"\n (draggableUpdate)=\"onDragUpdate('left', $event)\"\n [template]=\"leftTemplateRef\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\"\n>\n <ng-template #leftTemplateRef let-item>\n <div (click)=\"onSelect(item.direction === 'left' ? 'left' : 'right', { item: item })\" class=\"list-item-content\">\n <ng-container *ngIf=\"thyLeftDraggable\">\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n </ng-container>\n <div class=\"item-name\" [ngClass]=\"{ 'un-select-item': item.direction !== 'right' }\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n <thy-icon *ngIf=\"item.direction === 'right'\" class=\"text-primary item-status\" thyIconName=\"check\"></thy-icon>\n </div>\n </ng-template>\n</thy-transfer-list>\n\n<div class=\"thy-transfer-operation\">\n <div class=\"thy-transfer-operation-body\">\n <thy-icon thyIconName=\"angle-right\" class=\"operation-link\"></thy-icon>\n <br />\n <thy-icon thyIconName=\"angle-left\" class=\"operation-link\"></thy-icon>\n </div>\n</div>\n\n<thy-transfer-list\n [items]=\"rightDataSource\"\n [title]=\"rightTitle\"\n [draggable]=\"thyRightDraggable\"\n (draggableUpdate)=\"onDragUpdate('right', $event)\"\n [canLock]=\"thyRightCanLock\"\n [maxLock]=\"thyRightLockMax\"\n [max]=\"thyRightMax\"\n [template]=\"rightTemplateRef\"\n [renderContentRef]=\"rightContentRef\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\"\n>\n <ng-template #rightTemplateRef let-item>\n <ng-container *ngIf=\"thyRightDraggable\">\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n </ng-container>\n <div class=\"item-name\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n <a class=\"link-secondary\" *ngIf=\"item.direction === 'right' && !item.isFixed\" (click)=\"onSelect('right', { item: item })\">\n <thy-icon class=\"item-status\" thyIconName=\"close\"></thy-icon>\n </a>\n </ng-template>\n</thy-transfer-list>\n\n<ng-template #thyTransferListItem let-item>\n <ng-template *ngIf=\"templateRef\" [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n <ng-container *ngIf=\"!templateRef\">\n <thy-flexible-text [thyTooltipContent]=\"item.title\">\n {{ item.title }}\n </thy-flexible-text>\n </ng-container>\n</ng-template>\n" }]
142
+ args: [{ selector: 'thy-transfer', encapsulation: ViewEncapsulation.None, standalone: true, imports: [ThyTransferList, ThyIcon, NgClass, NgTemplateOutlet, ThyFlexibleText], template: "<thy-transfer-list\n [items]=\"allDataSource\"\n [title]=\"leftTitle\"\n [draggable]=\"thyLeftDraggable\"\n [disabled]=\"thyRightMax <= rightDataSource.length\"\n [renderContentRef]=\"leftContentRef\"\n (draggableUpdate)=\"onDragUpdate('left', $event)\"\n [template]=\"leftTemplateRef\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\"\n >\n <ng-template #leftTemplateRef let-item>\n <div (click)=\"onSelect(item.direction === 'left' ? 'left' : 'right', { item: item })\" class=\"list-item-content\">\n @if (thyLeftDraggable) {\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n }\n <div class=\"item-name\" [ngClass]=\"{ 'un-select-item': item.direction !== 'right' }\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n @if (item.direction === 'right') {\n <thy-icon class=\"text-primary item-status\" thyIconName=\"check\"></thy-icon>\n }\n </div>\n </ng-template>\n</thy-transfer-list>\n\n<div class=\"thy-transfer-operation\">\n <div class=\"thy-transfer-operation-body\">\n <thy-icon thyIconName=\"angle-right\" class=\"operation-link\"></thy-icon>\n <br />\n <thy-icon thyIconName=\"angle-left\" class=\"operation-link\"></thy-icon>\n </div>\n</div>\n\n<thy-transfer-list\n [items]=\"rightDataSource\"\n [title]=\"rightTitle\"\n [draggable]=\"thyRightDraggable\"\n (draggableUpdate)=\"onDragUpdate('right', $event)\"\n [canLock]=\"thyRightCanLock\"\n [maxLock]=\"thyRightLockMax\"\n [max]=\"thyRightMax\"\n [template]=\"rightTemplateRef\"\n [renderContentRef]=\"rightContentRef\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\"\n >\n <ng-template #rightTemplateRef let-item>\n @if (thyRightDraggable) {\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n }\n <div class=\"item-name\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n @if (item.direction === 'right' && !item.isFixed) {\n <a class=\"link-secondary\" (click)=\"onSelect('right', { item: item })\">\n <thy-icon class=\"item-status\" thyIconName=\"close\"></thy-icon>\n </a>\n }\n </ng-template>\n</thy-transfer-list>\n\n<ng-template #thyTransferListItem let-item>\n @if (templateRef) {\n <ng-template [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n }\n @if (!templateRef) {\n <thy-flexible-text [thyTooltipContent]=\"item.title\">\n {{ item.title }}\n </thy-flexible-text>\n }\n</ng-template>\n" }]
143
143
  }], propDecorators: { hostClass: [{
144
144
  type: HostBinding,
145
145
  args: ['class']
@@ -177,4 +177,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
177
177
  type: ContentChild,
178
178
  args: ['renderRightTemplate']
179
179
  }] } });
180
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RyYW5zZmVyL3RyYW5zZmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90cmFuc2Zlci90cmFuc2Zlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFJLE9BQU8sRUFPSCxpQkFBaUIsRUFDcEIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQUU1RDs7OztHQUlHO0FBUUgsTUFBTSxPQUFPLFdBQVc7SUFQeEI7UUFRMEIsY0FBUyxHQUFHLGNBQWMsQ0FBQztRQUUxQyxtQkFBYyxHQUFzQixFQUFFLENBQUM7UUFFdkMsb0JBQWUsR0FBc0IsRUFBRSxDQUFDO1FBRXhDLGtCQUFhLEdBQXNCLEVBQUUsQ0FBQztRQU10QyxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUV0QixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBaUV6Qjs7V0FFRztRQUNPLHVCQUFrQixHQUF1QyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQUU1Rzs7O1dBR0c7UUFDTyxjQUFTLEdBQXlDLElBQUksWUFBWSxFQUEwQixDQUFDO0tBNkcxRztJQXJMRzs7O09BR0c7SUFDSCxJQUNJLE9BQU8sQ0FBQyxLQUF3QjtR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LENBQUMsR0FBRyxhQUFhLENBQUMsSUFBSSxFQUFFLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9ELENBQUM7OEdBck1RLFdBQVc7a0dBQVgsV0FBVywyM0JDNUJ4QiwwdUZBa0VBLDRDRHhDYyxlQUFlLDRPQUFFLElBQUksNkZBQUUsT0FBTyxzTUFBRSxPQUFPLG9GQUFFLGdCQUFnQixvSkFBRSxlQUFlOzsyRkFFM0UsV0FBVztrQkFQdkIsU0FBUzsrQkFDSSxjQUFjLGlCQUVULGlCQUFpQixDQUFDLElBQUksY0FDekIsSUFBSSxXQUNQLENBQUMsZUFBZSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsQ0FBQzs4QkFHL0QsU0FBUztzQkFBOUIsV0FBVzt1QkFBQyxPQUFPO2dCQXFCaEIsT0FBTztzQkFEVixLQUFLO2dCQU9HLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFFRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBT0YsU0FBUztzQkFEWixLQUFLO2dCQVVHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBS0csZUFBZTtzQkFBdkIsS0FBSztnQkFLRyxXQUFXO3NCQUFuQixLQUFLO2dCQVFGLFdBQVc7c0JBRGQsS0FBSztnQkFTRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBTUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUtJLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFNRyxTQUFTO3NCQUFsQixNQUFNO2dCQU15QixXQUFXO3NCQUExQyxZQUFZO3VCQUFDLGdCQUFnQjtnQkFNTSxjQUFjO3NCQUFqRCxZQUFZO3VCQUFDLG9CQUFvQjtnQkFNRyxlQUFlO3NCQUFuRCxZQUFZO3VCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICAgIERpcmVjdGlvbixcbiAgICBJbm5lclRyYW5zZmVyRHJhZ0V2ZW50LFxuICAgIFRoeVRyYW5zZmVyQ2hhbmdlRXZlbnQsXG4gICAgVGh5VHJhbnNmZXJEcmFnRXZlbnQsXG4gICAgVGh5VHJhbnNmZXJJdGVtLFxuICAgIFRoeVRyYW5zZmVyU2VsZWN0RXZlbnQsXG4gICAgVHJhbnNmZXJEaXJlY3Rpb25cbn0gZnJvbSAnLi90cmFuc2Zlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGh5RmxleGlibGVUZXh0IH0gZnJvbSAnbmd4LXRldGh5cy9mbGV4aWJsZS10ZXh0JztcbmltcG9ydCB7IFRoeUljb24gfSBmcm9tICduZ3gtdGV0aHlzL2ljb24nO1xuaW1wb3J0IHsgTmdJZiwgTmdDbGFzcywgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUaHlUcmFuc2Zlckxpc3QgfSBmcm9tICcuL3RyYW5zZmVyLWxpc3QuY29tcG9uZW50JztcblxuLyoqXG4gKiDnqb/moq3moYbnu4Tku7ZcbiAqIEBuYW1lIHRoeS10cmFuc2ZlclxuICogQG9yZGVyIDEwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXRyYW5zZmVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdHJhbnNmZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbVGh5VHJhbnNmZXJMaXN0LCBOZ0lmLCBUaHlJY29uLCBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0LCBUaHlGbGV4aWJsZVRleHRdXG59KVxuZXhwb3J0IGNsYXNzIFRoeVRyYW5zZmVyIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgaG9zdENsYXNzID0gJ3RoeS10cmFuc2Zlcic7XG5cbiAgICBwdWJsaWMgbGVmdERhdGFTb3VyY2U6IFRoeVRyYW5zZmVySXRlbVtdID0gW107XG5cbiAgICBwdWJsaWMgcmlnaHREYXRhU291cmNlOiBUaHlUcmFuc2Zlckl0ZW1bXSA9IFtdO1xuXG4gICAgcHVibGljIGFsbERhdGFTb3VyY2U6IFRoeVRyYW5zZmVySXRlbVtdID0gW107XG5cbiAgICBwdWJsaWMgbGVmdFRpdGxlOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgcmlnaHRUaXRsZTogc3RyaW5nO1xuXG4gICAgcHVibGljIHJpZ2h0RHJhZ2dhYmxlID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIF9hdXRvTW92ZSA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiDmlbDmja7mupBcbiAgICAgKiBAdHlwZSBUaHlUcmFuc2Zlckl0ZW1bXVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeURhdGEodmFsdWU6IFRoeVRyYW5zZmVySXRlbVtdKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplVHJhbnNmZXJEYXRhKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgpIHRoeXJlbmRlckxlZnRUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBJbnB1dCgpIHRoeXJlbmRlclJpZ2h0VGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKipcbiAgICAgKiB0aXRsZembhuWQiO+8jHRpdGxlWzBd5Li65bem5qCH6aKY77yMdGl0bGVbMV3kuLrlj7PmoIfpophcbiAgICAgKiBAdHlwZSBzdHJpbmdbXVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeVRpdGxlcyh2YWx1ZTogc3RyaW5nW10pIHtcbiAgICAgICAgdGhpcy5sZWZ0VGl0bGUgPSB2YWx1ZVswXSB8fCAnJztcbiAgICAgICAgdGhpcy5yaWdodFRpdGxlID0gdmFsdWVbMV0gfHwgJyc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5Y+z5L6n5YiX6KGo5piv5ZCm5Y+v5Lul6ZSB5a6aXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlSaWdodENhbkxvY2s6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiDlj7PkvqfplIHlrprmnIDlpKfmlbDph49cbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlSaWdodExvY2tNYXg6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIOWPs+S+p+mAieaLqeacgOWkp+aVsOmHj1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVJpZ2h0TWF4OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7mmK/lkKboh6rliqjnp7vliqhcbiAgICAgKiBAZGVzY3JpcHRpb24uZW4tdXMgQ3VycmVudGx5IG5vdCBpbXBsZW1lbnRlZCwgaW4gb3JkZXIgdG8gc3VwcG9ydCB0aGUgc2VsZWN0aW9ucyBtb3ZlXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUF1dG9Nb3ZlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2F1dG9Nb3ZlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5bem5L6n5YiX6KGo5piv5ZCm5ouW5YqoXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlMZWZ0RHJhZ2dhYmxlOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog5Y+z5L6n5YiX6KGo5piv5ZCm5ouW5YqoXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlSaWdodERyYWdnYWJsZTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEB0eXBlIEV2ZW50RW1pdHRlcjxUaHlUcmFuc2ZlckRyYWdFdmVudD5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5RHJhZ2dhYmxlVXBkYXRlOiBFdmVudEVtaXR0ZXI8VGh5VHJhbnNmZXJEcmFnRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxUaHlUcmFuc2ZlckRyYWdFdmVudD4oKTtcblxuICAgIC8qKlxuICAgICAqIFRyYW5zZmVy5Y+Y5YyW55qE5Zue6LCD5LqL5Lu2XG4gICAgICogQHR5cGUgRXZlbnRFbWl0dGVyPFRoeVRyYW5zZmVyQ2hhbmdlRXZlbnQ+XG4gICAgICovXG4gICAgQE91dHB1dCgpIHRoeUNoYW5nZTogRXZlbnRFbWl0dGVyPFRoeVRyYW5zZmVyQ2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxUaHlUcmFuc2ZlckNoYW5nZUV2ZW50PigpO1xuXG4gICAgLyoqXG4gICAgICog6K6+572u6Ieq5a6a5LmJSXRlbea4suafk+aVsOaNruaooeadv1xuICAgICAqIEB0eXBlIFRlbXBsYXRlUmVmXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgncmVuZGVyVGVtcGxhdGUnKSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKlxuICAgICAqIOiuvue9ruiHquWumuS5ieW3puS+p+WGheWuueaooeadv1xuICAgICAqIEB0eXBlIFRlbXBsYXRlUmVmXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgncmVuZGVyTGVmdFRlbXBsYXRlJykgbGVmdENvbnRlbnRSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7oh6rlrprkuYnlj7PkvqflhoXlrrnmqKHmnb9cbiAgICAgKiBAdHlwZSBUZW1wbGF0ZVJlZlxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ3JlbmRlclJpZ2h0VGVtcGxhdGUnKSByaWdodENvbnRlbnRSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBuZ09uSW5pdCgpIHt9XG5cbiAgICBpbml0aWFsaXplVHJhbnNmZXJEYXRhKGRhdGE6IFRoeVRyYW5zZmVySXRlbVtdID0gW10pIHtcbiAgICAgICAgdGhpcy5hbGxEYXRhU291cmNlID0gW107XG4gICAgICAgIHRoaXMubGVmdERhdGFTb3VyY2UgPSBbXTtcbiAgICAgICAgdGhpcy5yaWdodERhdGFTb3VyY2UgPSBbXTtcbiAgICAgICAgZGF0YS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgdGhpcy5hbGxEYXRhU291cmNlLnB1c2goaXRlbSk7XG4gICAgICAgICAgICBpZiAoaXRlbS5kaXJlY3Rpb24gPT09IFRyYW5zZmVyRGlyZWN0aW9uLmxlZnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxlZnREYXRhU291cmNlLnB1c2goaXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXRlbS5kaXJlY3Rpb24gPT09IFRyYW5zZmVyRGlyZWN0aW9uLnJpZ2h0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yaWdodERhdGFTb3VyY2UucHVzaChpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25TZWxlY3QoZnJvbTogRGlyZWN0aW9uLCBldmVudDogVGh5VHJhbnNmZXJTZWxlY3RFdmVudCkge1xuICAgICAgICBpZiAoZXZlbnQuaXRlbS5pc0ZpeGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudGh5UmlnaHRNYXggPD0gdGhpcy5yaWdodERhdGFTb3VyY2UubGVuZ3RoICYmIGZyb20gPT09IFRyYW5zZmVyRGlyZWN0aW9uLmxlZnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0byA9IGZyb20gPT09IFRyYW5zZmVyRGlyZWN0aW9uLmxlZnQgPyBUcmFuc2ZlckRpcmVjdGlvbi5yaWdodCA6IFRyYW5zZmVyRGlyZWN0aW9uLmxlZnQ7XG4gICAgICAgIGV2ZW50Lml0ZW0uY2hlY2tlZCA9ICFldmVudC5pdGVtLmNoZWNrZWQ7XG4gICAgICAgIGlmICh0aGlzLl9hdXRvTW92ZSkge1xuICAgICAgICAgICAgdGhpcy5vbk1vdmUodG8pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2VsZWN0SXRlbShldmVudDogVGh5VHJhbnNmZXJTZWxlY3RFdmVudCkge1xuICAgICAgICB0aGlzLm9uU2VsZWN0KFRyYW5zZmVyRGlyZWN0aW9uLmxlZnQsIGV2ZW50KTtcbiAgICB9XG5cbiAgICB1bnNlbGVjdEl0ZW0oZXZlbnQ6IFRoeVRyYW5zZmVyU2VsZWN0RXZlbnQpIHtcbiAgICAgICAgdGhpcy5vblNlbGVjdChUcmFuc2ZlckRpcmVjdGlvbi5yaWdodCwgZXZlbnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ3JvdXBMaXN0QnlJc0xvY2sobGlzdDogVGh5VHJhbnNmZXJJdGVtW10gPSBbXSkge1xuICAgICAgICBjb25zdCBsb2NrOiBUaHlUcmFuc2Zlckl0ZW1bXSA9IFtdLFxuICAgICAgICAgICAgdW5sb2NrOiBUaHlUcmFuc2Zlckl0ZW1bXSA9IFtdO1xuICAgICAgICBsaXN0LmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBpZiAoaXRlbS5pc0xvY2spIHtcbiAgICAgICAgICAgICAgICBsb2NrLnB1c2goaXRlbSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHVubG9jay5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHsgbG9jazogbG9jaywgdW5sb2NrOiB1bmxvY2sgfTtcbiAgICB9XG5cbiAgICBvbk1vdmUodG86IERpcmVjdGlvbikge1xuICAgICAgICBjb25zdCBmcm9tRGF0YVNvdXJjZSA9IHRvID09PSBUcmFuc2ZlckRpcmVjdGlvbi5yaWdodCA/IHRoaXMubGVmdERhdGFTb3VyY2UgOiB0aGlzLnJpZ2h0RGF0YVNvdXJjZTtcbiAgICAgICAgY29uc3QgdG9EYXRhU291cmNlID0gdG8gPT09IFRyYW5zZmVyRGlyZWN0aW9uLnJpZ2h0ID8gdGhpcy5yaWdodERhdGFTb3VyY2UgOiB0aGlzLmxlZnREYXRhU291cmNlO1xuICAgICAgICBjb25zdCBzZWxlY3Rpb25zID0gZnJvbURhdGFTb3VyY2UuZmlsdGVyKGl0ZW0gPT4gaXRlbS5jaGVja2VkKTtcbiAgICAgICAgY29uc3QgY2hhbmdlRXZlbnQ6IFRoeVRyYW5zZmVyQ2hhbmdlRXZlbnQgPSB7XG4gICAgICAgICAgICBmcm9tOiB0byA9PT0gVHJhbnNmZXJEaXJlY3Rpb24ucmlnaHQgPyBUcmFuc2ZlckRpcmVjdGlvbi5sZWZ0IDogVHJhbnNmZXJEaXJlY3Rpb24ucmlnaHQsXG4gICAgICAgICAgICB0bzogdG8sXG4gICAgICAgICAgICBpdGVtczogWy4uLnNlbGVjdGlvbnNdXG4gICAgICAgIH07XG4gICAgICAgIHNlbGVjdGlvbnMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gZnJvbURhdGFTb3VyY2UuaW5kZXhPZihpdGVtKTtcbiAgICAgICAgICAgIGNvbnN0IHJlbW92ZWQgPSBmcm9tRGF0YVNvdXJjZS5zcGxpY2UoaW5kZXgsIDEpWzBdO1xuICAgICAgICAgICAgcmVtb3ZlZC5jaGVja2VkID0gIXJlbW92ZWQuY2hlY2tlZDtcbiAgICAgICAgICAgIHJlbW92ZWQuZGlyZWN0aW9uID0gdG87XG4gICAgICAgICAgICB0b0RhdGFTb3VyY2UucHVzaChyZW1vdmVkKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMudGh5Q2hhbmdlLmVtaXQoe1xuICAgICAgICAgICAgLi4uY2hhbmdlRXZlbnQsXG4gICAgICAgICAgICBsZWZ0OiB0aGlzLmdyb3VwTGlzdEJ5SXNMb2NrKHRoaXMubGVmdERhdGFTb3VyY2UpLFxuICAgICAgICAgICAgcmlnaHQ6IHRoaXMuZ3JvdXBMaXN0QnlJc0xvY2sodGhpcy5yaWdodERhdGFTb3VyY2UpXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uRHJhZ1VwZGF0ZShkaXJlY3Rpb246IERpcmVjdGlvbiwgZXZlbnQ6IElubmVyVHJhbnNmZXJEcmFnRXZlbnQpIHtcbiAgICAgICAgY29uc3Qgb3RoZXJEaXJlY3Rpb25EYXRhID0gZGlyZWN0aW9uID09PSBUcmFuc2ZlckRpcmVjdGlvbi5sZWZ0ID8gdGhpcy5yaWdodERhdGFTb3VyY2UgOiB0aGlzLmxlZnREYXRhU291cmNlO1xuICAgICAgICBjb25zdCBvdGhlckxpc3REYXRhID0gdGhpcy5ncm91cExpc3RCeUlzTG9jayhvdGhlckRpcmVjdGlvbkRhdGEpO1xuICAgICAgICB0aGlzLnRoeURyYWdnYWJsZVVwZGF0ZS5lbWl0KHtcbiAgICAgICAgICAgIC4uLmV2ZW50LmRyYWdFdmVudCxcbiAgICAgICAgICAgIGxlZnQ6IGRpcmVjdGlvbiA9PT0gVHJhbnNmZXJEaXJlY3Rpb24ubGVmdCA/IGV2ZW50Lmxpc3REYXRhIDogb3RoZXJMaXN0RGF0YSxcbiAgICAgICAgICAgIHJpZ2h0OiBkaXJlY3Rpb24gPT09IFRyYW5zZmVyRGlyZWN0aW9uLnJpZ2h0ID8gZXZlbnQubGlzdERhdGEgOiBvdGhlckxpc3REYXRhXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMucmlnaHREYXRhU291cmNlID1cbiAgICAgICAgICAgIGRpcmVjdGlvbiA9PT0gVHJhbnNmZXJEaXJlY3Rpb24ucmlnaHRcbiAgICAgICAgICAgICAgICA/IFsuLi5ldmVudC5saXN0RGF0YS5sb2NrLCAuLi5ldmVudC5saXN0RGF0YS51bmxvY2tdXG4gICAgICAgICAgICAgICAgOiBbLi4ub3RoZXJMaXN0RGF0YS5sb2NrLCAuLi5vdGhlckxpc3REYXRhLnVubG9ja107XG4gICAgfVxufVxuIiwiPHRoeS10cmFuc2Zlci1saXN0XG4gIFtpdGVtc109XCJhbGxEYXRhU291cmNlXCJcbiAgW3RpdGxlXT1cImxlZnRUaXRsZVwiXG4gIFtkcmFnZ2FibGVdPVwidGh5TGVmdERyYWdnYWJsZVwiXG4gIFtkaXNhYmxlZF09XCJ0aHlSaWdodE1heCA8PSByaWdodERhdGFTb3VyY2UubGVuZ3RoXCJcbiAgW3JlbmRlckNvbnRlbnRSZWZdPVwibGVmdENvbnRlbnRSZWZcIlxuICAoZHJhZ2dhYmxlVXBkYXRlKT1cIm9uRHJhZ1VwZGF0ZSgnbGVmdCcsICRldmVudClcIlxuICBbdGVtcGxhdGVdPVwibGVmdFRlbXBsYXRlUmVmXCJcbiAgKHNlbGVjdEl0ZW0pPVwic2VsZWN0SXRlbSgkZXZlbnQpXCJcbiAgKHVuc2VsZWN0SXRlbSk9XCJ1bnNlbGVjdEl0ZW0oJGV2ZW50KVwiXG4+XG4gIDxuZy10ZW1wbGF0ZSAjbGVmdFRlbXBsYXRlUmVmIGxldC1pdGVtPlxuICAgIDxkaXYgKGNsaWNrKT1cIm9uU2VsZWN0KGl0ZW0uZGlyZWN0aW9uID09PSAnbGVmdCcgPyAnbGVmdCcgOiAncmlnaHQnLCB7IGl0ZW06IGl0ZW0gfSlcIiBjbGFzcz1cImxpc3QtaXRlbS1jb250ZW50XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGh5TGVmdERyYWdnYWJsZVwiPlxuICAgICAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJkcmFnXCIgY2xhc3M9XCJkcmFnLWhhbmRsZVwiPjwvdGh5LWljb24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLW5hbWVcIiBbbmdDbGFzc109XCJ7ICd1bi1zZWxlY3QtaXRlbSc6IGl0ZW0uZGlyZWN0aW9uICE9PSAncmlnaHQnIH1cIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRoeVRyYW5zZmVyTGlzdEl0ZW1cIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDx0aHktaWNvbiAqbmdJZj1cIml0ZW0uZGlyZWN0aW9uID09PSAncmlnaHQnXCIgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgaXRlbS1zdGF0dXNcIiB0aHlJY29uTmFtZT1cImNoZWNrXCI+PC90aHktaWNvbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvdGh5LXRyYW5zZmVyLWxpc3Q+XG5cbjxkaXYgY2xhc3M9XCJ0aHktdHJhbnNmZXItb3BlcmF0aW9uXCI+XG4gIDxkaXYgY2xhc3M9XCJ0aHktdHJhbnNmZXItb3BlcmF0aW9uLWJvZHlcIj5cbiAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJhbmdsZS1yaWdodFwiIGNsYXNzPVwib3BlcmF0aW9uLWxpbmtcIj48L3RoeS1pY29uPlxuICAgIDxiciAvPlxuICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cImFuZ2xlLWxlZnRcIiBjbGFzcz1cIm9wZXJhdGlvbi1saW5rXCI+PC90aHktaWNvbj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPHRoeS10cmFuc2Zlci1saXN0XG4gIFtpdGVtc109XCJyaWdodERhdGFTb3VyY2VcIlxuICBbdGl0bGVdPVwicmlnaHRUaXRsZVwiXG4gIFtkcmFnZ2FibGVdPVwidGh5UmlnaHREcmFnZ2FibGVcIlxuICAoZHJhZ2dhYmxlVXBkYXRlKT1cIm9uRHJhZ1VwZGF0ZSgncmlnaHQnLCAkZXZlbnQpXCJcbiAgW2NhbkxvY2tdPVwidGh5UmlnaHRDYW5Mb2NrXCJcbiAgW21heExvY2tdPVwidGh5UmlnaHRMb2NrTWF4XCJcbiAgW21heF09XCJ0aHlSaWdodE1heFwiXG4gIFt0ZW1wbGF0ZV09XCJyaWdodFRlbXBsYXRlUmVmXCJcbiAgW3JlbmRlckNvbnRlbnRSZWZdPVwicmlnaHRDb250ZW50UmVmXCJcbiAgKHNlbGVjdEl0ZW0pPVwic2VsZWN0SXRlbSgkZXZlbnQpXCJcbiAgKHVuc2VsZWN0SXRlbSk9XCJ1bnNlbGVjdEl0ZW0oJGV2ZW50KVwiXG4+XG4gIDxuZy10ZW1wbGF0ZSAjcmlnaHRUZW1wbGF0ZVJlZiBsZXQtaXRlbT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGh5UmlnaHREcmFnZ2FibGVcIj5cbiAgICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cImRyYWdcIiBjbGFzcz1cImRyYWctaGFuZGxlXCI+PC90aHktaWNvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8ZGl2IGNsYXNzPVwiaXRlbS1uYW1lXCI+XG4gICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidGh5VHJhbnNmZXJMaXN0SXRlbVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgICA8YSBjbGFzcz1cImxpbmstc2Vjb25kYXJ5XCIgKm5nSWY9XCJpdGVtLmRpcmVjdGlvbiA9PT0gJ3JpZ2h0JyAmJiAhaXRlbS5pc0ZpeGVkXCIgKGNsaWNrKT1cIm9uU2VsZWN0KCdyaWdodCcsIHsgaXRlbTogaXRlbSB9KVwiPlxuICAgICAgPHRoeS1pY29uIGNsYXNzPVwiaXRlbS1zdGF0dXNcIiB0aHlJY29uTmFtZT1cImNsb3NlXCI+PC90aHktaWNvbj5cbiAgICA8L2E+XG4gIDwvbmctdGVtcGxhdGU+XG48L3RoeS10cmFuc2Zlci1saXN0PlxuXG48bmctdGVtcGxhdGUgI3RoeVRyYW5zZmVyTGlzdEl0ZW0gbGV0LWl0ZW0+XG4gIDxuZy10ZW1wbGF0ZSAqbmdJZj1cInRlbXBsYXRlUmVmXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwidGVtcGxhdGVSZWZcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiPjwvbmctdGVtcGxhdGU+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhdGVtcGxhdGVSZWZcIj5cbiAgICA8dGh5LWZsZXhpYmxlLXRleHQgW3RoeVRvb2x0aXBDb250ZW50XT1cIml0ZW0udGl0bGVcIj5cbiAgICAgIHt7IGl0ZW0udGl0bGUgfX1cbiAgICA8L3RoeS1mbGV4aWJsZS10ZXh0PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RyYW5zZmVyL3RyYW5zZmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90cmFuc2Zlci90cmFuc2Zlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFJLE9BQU8sRUFPSCxpQkFBaUIsRUFDcEIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBRTVEOzs7O0dBSUc7QUFRSCxNQUFNLE9BQU8sV0FBVztJQVB4QjtRQVEwQixjQUFTLEdBQUcsY0FBYyxDQUFDO1FBRTFDLG1CQUFjLEdBQXNCLEVBQUUsQ0FBQztRQUV2QyxvQkFBZSxHQUFzQixFQUFFLENBQUM7UUFFeEMsa0JBQWEsR0FBc0IsRUFBRSxDQUFDO1FBTXRDLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRXRCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFpRXpCOztXQUVHO1FBQ08sdUJBQWtCLEdBQXVDLElBQUksWUFBWSxFQUF3QixDQUFDO1FBRTVHOzs7V0FHRztRQUNPLGNBQVMsR0FBeUMsSUFBSSxZQUFZLEVBQTBCLENBQUM7S0E2RzFHO0lBckxHOzs7T0FHRztJQUNILElBQ0ksT0FBTyxDQUFDLEtBQXdCO1FBQ2hDLElBQUks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LGFBQWEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0QsQ0FBQzs4R0FyTVEsV0FBVztrR0FBWCxXQUFXLDIzQkM1QnhCLHlyRkF3RUEsNENEOUNjLGVBQWUsNE9BQUUsT0FBTyxzTUFBRSxPQUFPLG9GQUFFLGdCQUFnQixvSkFBRSxlQUFlOzsyRkFFckUsV0FBVztrQkFQdkIsU0FBUzsrQkFDSSxjQUFjLGlCQUVULGlCQUFpQixDQUFDLElBQUksY0FDekIsSUFBSSxXQUNQLENBQUMsZUFBZSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDOzhCQUd6RCxTQUFTO3NCQUE5QixXQUFXO3VCQUFDLE9BQU87Z0JBcUJoQixPQUFPO3NCQURWLEtBQUs7Z0JBT0csd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUVHLHlCQUF5QjtzQkFBakMsS0FBSztnQkFPRixTQUFTO3NCQURaLEtBQUs7Z0JBVUcsZUFBZTtzQkFBdkIsS0FBSztnQkFLRyxlQUFlO3NCQUF2QixLQUFLO2dCQUtHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBUUYsV0FBVztzQkFEZCxLQUFLO2dCQVNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFNRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBS0ksa0JBQWtCO3NCQUEzQixNQUFNO2dCQU1HLFNBQVM7c0JBQWxCLE1BQU07Z0JBTXlCLFdBQVc7c0JBQTFDLFlBQVk7dUJBQUMsZ0JBQWdCO2dCQU1NLGNBQWM7c0JBQWpELFlBQVk7dUJBQUMsb0JBQW9CO2dCQU1HLGVBQWU7c0JBQW5ELFlBQVk7dUJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gICAgRGlyZWN0aW9uLFxuICAgIElubmVyVHJhbnNmZXJEcmFnRXZlbnQsXG4gICAgVGh5VHJhbnNmZXJDaGFuZ2VFdmVudCxcbiAgICBUaHlUcmFuc2ZlckRyYWdFdmVudCxcbiAgICBUaHlUcmFuc2Zlckl0ZW0sXG4gICAgVGh5VHJhbnNmZXJTZWxlY3RFdmVudCxcbiAgICBUcmFuc2ZlckRpcmVjdGlvblxufSBmcm9tICcuL3RyYW5zZmVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUaHlGbGV4aWJsZVRleHQgfSBmcm9tICduZ3gtdGV0aHlzL2ZsZXhpYmxlLXRleHQnO1xuaW1wb3J0IHsgVGh5SWNvbiB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRoeVRyYW5zZmVyTGlzdCB9IGZyb20gJy4vdHJhbnNmZXItbGlzdC5jb21wb25lbnQnO1xuXG4vKipcbiAqIOepv+aireahhue7hOS7tlxuICogQG5hbWUgdGh5LXRyYW5zZmVyXG4gKiBAb3JkZXIgMTBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktdHJhbnNmZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90cmFuc2Zlci5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtUaHlUcmFuc2Zlckxpc3QsIFRoeUljb24sIE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQsIFRoeUZsZXhpYmxlVGV4dF1cbn0pXG5leHBvcnQgY2xhc3MgVGh5VHJhbnNmZXIgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBob3N0Q2xhc3MgPSAndGh5LXRyYW5zZmVyJztcblxuICAgIHB1YmxpYyBsZWZ0RGF0YVNvdXJjZTogVGh5VHJhbnNmZXJJdGVtW10gPSBbXTtcblxuICAgIHB1YmxpYyByaWdodERhdGFTb3VyY2U6IFRoeVRyYW5zZmVySXRlbVtdID0gW107XG5cbiAgICBwdWJsaWMgYWxsRGF0YVNvdXJjZTogVGh5VHJhbnNmZXJJdGVtW10gPSBbXTtcblxuICAgIHB1YmxpYyBsZWZ0VGl0bGU6IHN0cmluZztcblxuICAgIHB1YmxpYyByaWdodFRpdGxlOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgcmlnaHREcmFnZ2FibGUgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgX2F1dG9Nb3ZlID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIOaVsOaNrua6kFxuICAgICAqIEB0eXBlIFRoeVRyYW5zZmVySXRlbVtdXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5RGF0YSh2YWx1ZTogVGh5VHJhbnNmZXJJdGVtW10pIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVUcmFuc2ZlckRhdGEodmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KCkgdGh5cmVuZGVyTGVmdFRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQElucHV0KCkgdGh5cmVuZGVyUmlnaHRUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKlxuICAgICAqIHRpdGxl6ZuG5ZCI77yMdGl0bGVbMF3kuLrlt6bmoIfpopjvvIx0aXRsZVsxXeS4uuWPs+agh+mimFxuICAgICAqIEB0eXBlIHN0cmluZ1tdXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5VGl0bGVzKHZhbHVlOiBzdHJpbmdbXSkge1xuICAgICAgICB0aGlzLmxlZnRUaXRsZSA9IHZhbHVlWzBdIHx8ICcnO1xuICAgICAgICB0aGlzLnJpZ2h0VGl0bGUgPSB2YWx1ZVsxXSB8fCAnJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlj7PkvqfliJfooajmmK/lkKblj6/ku6XplIHlrppcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVJpZ2h0Q2FuTG9jazogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIOWPs+S+p+mUgeWumuacgOWkp+aVsOmHj1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVJpZ2h0TG9ja01heDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog5Y+z5L6n6YCJ5oup5pyA5aSn5pWw6YePXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5UmlnaHRNYXg6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIOiuvue9ruaYr+WQpuiHquWKqOenu+WKqFxuICAgICAqIEBkZXNjcmlwdGlvbi5lbi11cyBDdXJyZW50bHkgbm90IGltcGxlbWVudGVkLCBpbiBvcmRlciB0byBzdXBwb3J0IHRoZSBzZWxlY3Rpb25zIG1vdmVcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5QXV0b01vdmUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fYXV0b01vdmUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlt6bkvqfliJfooajmmK/lkKbmi5bliqhcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUxlZnREcmFnZ2FibGU6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiDlj7PkvqfliJfooajmmK/lkKbmi5bliqhcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVJpZ2h0RHJhZ2dhYmxlOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQHR5cGUgRXZlbnRFbWl0dGVyPFRoeVRyYW5zZmVyRHJhZ0V2ZW50PlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSB0aHlEcmFnZ2FibGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxUaHlUcmFuc2ZlckRyYWdFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFRoeVRyYW5zZmVyRHJhZ0V2ZW50PigpO1xuXG4gICAgLyoqXG4gICAgICogVHJhbnNmZXLlj5jljJbnmoTlm57osIPkuovku7ZcbiAgICAgKiBAdHlwZSBFdmVudEVtaXR0ZXI8VGh5VHJhbnNmZXJDaGFuZ2VFdmVudD5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8VGh5VHJhbnNmZXJDaGFuZ2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFRoeVRyYW5zZmVyQ2hhbmdlRXZlbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7oh6rlrprkuYlJdGVt5riy5p+T5pWw5o2u5qih5p2/XG4gICAgICogQHR5cGUgVGVtcGxhdGVSZWZcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdyZW5kZXJUZW1wbGF0ZScpIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqXG4gICAgICog6K6+572u6Ieq5a6a5LmJ5bem5L6n5YaF5a655qih5p2/XG4gICAgICogQHR5cGUgVGVtcGxhdGVSZWZcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdyZW5kZXJMZWZ0VGVtcGxhdGUnKSBsZWZ0Q29udGVudFJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKlxuICAgICAqIOiuvue9ruiHquWumuS5ieWPs+S+p+WGheWuueaooeadv1xuICAgICAqIEB0eXBlIFRlbXBsYXRlUmVmXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgncmVuZGVyUmlnaHRUZW1wbGF0ZScpIHJpZ2h0Q29udGVudFJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIG5nT25Jbml0KCkge31cblxuICAgIGluaXRpYWxpemVUcmFuc2ZlckRhdGEoZGF0YTogVGh5VHJhbnNmZXJJdGVtW10gPSBbXSkge1xuICAgICAgICB0aGlzLmFsbERhdGFTb3VyY2UgPSBbXTtcbiAgICAgICAgdGhpcy5sZWZ0RGF0YVNvdXJjZSA9IFtdO1xuICAgICAgICB0aGlzLnJpZ2h0RGF0YVNvdXJjZSA9IFtdO1xuICAgICAgICBkYXRhLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFsbERhdGFTb3VyY2UucHVzaChpdGVtKTtcbiAgICAgICAgICAgIGlmIChpdGVtLmRpcmVjdGlvbiA9PT0gVHJhbnNmZXJEaXJlY3Rpb24ubGVmdCkge1xuICAgICAgICAgICAgICAgIHRoaXMubGVmdERhdGFTb3VyY2UucHVzaChpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpdGVtLmRpcmVjdGlvbiA9PT0gVHJhbnNmZXJEaXJlY3Rpb24ucmlnaHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJpZ2h0RGF0YVNvdXJjZS5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvblNlbGVjdChmcm9tOiBEaXJlY3Rpb24sIGV2ZW50OiBUaHlUcmFuc2ZlclNlbGVjdEV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudC5pdGVtLmlzRml4ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy50aHlSaWdodE1heCA8PSB0aGlzLnJpZ2h0RGF0YVNvdXJjZS5sZW5ndGggJiYgZnJvbSA9PT0gVHJhbnNmZXJEaXJlY3Rpb24ubGVmdCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRvID0gZnJvbSA9PT0gVHJhbnNmZXJEaXJlY3Rpb24ubGVmdCA/IFRyYW5zZmVyRGlyZWN0aW9uLnJpZ2h0IDogVHJhbnNmZXJEaXJlY3Rpb24ubGVmdDtcbiAgICAgICAgZXZlbnQuaXRlbS5jaGVja2VkID0gIWV2ZW50Lml0ZW0uY2hlY2tlZDtcbiAgICAgICAgaWYgKHRoaXMuX2F1dG9Nb3ZlKSB7XG4gICAgICAgICAgICB0aGlzLm9uTW92ZSh0byk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZWxlY3RJdGVtKGV2ZW50OiBUaHlUcmFuc2ZlclNlbGVjdEV2ZW50KSB7XG4gICAgICAgIHRoaXMub25TZWxlY3QoVHJhbnNmZXJEaXJlY3Rpb24ubGVmdCwgZXZlbnQpO1xuICAgIH1cblxuICAgIHVuc2VsZWN0SXRlbShldmVudDogVGh5VHJhbnNmZXJTZWxlY3RFdmVudCkge1xuICAgICAgICB0aGlzLm9uU2VsZWN0KFRyYW5zZmVyRGlyZWN0aW9uLnJpZ2h0LCBldmVudCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBncm91cExpc3RCeUlzTG9jayhsaXN0OiBUaHlUcmFuc2Zlckl0ZW1bXSA9IFtdKSB7XG4gICAgICAgIGNvbnN0IGxvY2s6IFRoeVRyYW5zZmVySXRlbVtdID0gW10sXG4gICAgICAgICAgICB1bmxvY2s6IFRoeVRyYW5zZmVySXRlbVtdID0gW107XG4gICAgICAgIGxpc3QuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgIGlmIChpdGVtLmlzTG9jaykge1xuICAgICAgICAgICAgICAgIGxvY2sucHVzaChpdGVtKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdW5sb2NrLnB1c2goaXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4geyBsb2NrOiBsb2NrLCB1bmxvY2s6IHVubG9jayB9O1xuICAgIH1cblxuICAgIG9uTW92ZSh0bzogRGlyZWN0aW9uKSB7XG4gICAgICAgIGNvbnN0IGZyb21EYXRhU291cmNlID0gdG8gPT09IFRyYW5zZmVyRGlyZWN0aW9uLnJpZ2h0ID8gdGhpcy5sZWZ0RGF0YVNvdXJjZSA6IHRoaXMucmlnaHREYXRhU291cmNlO1xuICAgICAgICBjb25zdCB0b0RhdGFTb3VyY2UgPSB0byA9PT0gVHJhbnNmZXJEaXJlY3Rpb24ucmlnaHQgPyB0aGlzLnJpZ2h0RGF0YVNvdXJjZSA6IHRoaXMubGVmdERhdGFTb3VyY2U7XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbnMgPSBmcm9tRGF0YVNvdXJjZS5maWx0ZXIoaXRlbSA9PiBpdGVtLmNoZWNrZWQpO1xuICAgICAgICBjb25zdCBjaGFuZ2VFdmVudDogVGh5VHJhbnNmZXJDaGFuZ2VFdmVudCA9IHtcbiAgICAgICAgICAgIGZyb206IHRvID09PSBUcmFuc2ZlckRpcmVjdGlvbi5yaWdodCA/IFRyYW5zZmVyRGlyZWN0aW9uLmxlZnQgOiBUcmFuc2ZlckRpcmVjdGlvbi5yaWdodCxcbiAgICAgICAgICAgIHRvOiB0byxcbiAgICAgICAgICAgIGl0ZW1zOiBbLi4uc2VsZWN0aW9uc11cbiAgICAgICAgfTtcbiAgICAgICAgc2VsZWN0aW9ucy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBmcm9tRGF0YVNvdXJjZS5pbmRleE9mKGl0ZW0pO1xuICAgICAgICAgICAgY29uc3QgcmVtb3ZlZCA9IGZyb21EYXRhU291cmNlLnNwbGljZShpbmRleCwgMSlbMF07XG4gICAgICAgICAgICByZW1vdmVkLmNoZWNrZWQgPSAhcmVtb3ZlZC5jaGVja2VkO1xuICAgICAgICAgICAgcmVtb3ZlZC5kaXJlY3Rpb24gPSB0bztcbiAgICAgICAgICAgIHRvRGF0YVNvdXJjZS5wdXNoKHJlbW92ZWQpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy50aHlDaGFuZ2UuZW1pdCh7XG4gICAgICAgICAgICAuLi5jaGFuZ2VFdmVudCxcbiAgICAgICAgICAgIGxlZnQ6IHRoaXMuZ3JvdXBMaXN0QnlJc0xvY2sodGhpcy5sZWZ0RGF0YVNvdXJjZSksXG4gICAgICAgICAgICByaWdodDogdGhpcy5ncm91cExpc3RCeUlzTG9jayh0aGlzLnJpZ2h0RGF0YVNvdXJjZSlcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25EcmFnVXBkYXRlKGRpcmVjdGlvbjogRGlyZWN0aW9uLCBldmVudDogSW5uZXJUcmFuc2ZlckRyYWdFdmVudCkge1xuICAgICAgICBjb25zdCBvdGhlckRpcmVjdGlvbkRhdGEgPSBkaXJlY3Rpb24gPT09IFRyYW5zZmVyRGlyZWN0aW9uLmxlZnQgPyB0aGlzLnJpZ2h0RGF0YVNvdXJjZSA6IHRoaXMubGVmdERhdGFTb3VyY2U7XG4gICAgICAgIGNvbnN0IG90aGVyTGlzdERhdGEgPSB0aGlzLmdyb3VwTGlzdEJ5SXNMb2NrKG90aGVyRGlyZWN0aW9uRGF0YSk7XG4gICAgICAgIHRoaXMudGh5RHJhZ2dhYmxlVXBkYXRlLmVtaXQoe1xuICAgICAgICAgICAgLi4uZXZlbnQuZHJhZ0V2ZW50LFxuICAgICAgICAgICAgbGVmdDogZGlyZWN0aW9uID09PSBUcmFuc2ZlckRpcmVjdGlvbi5sZWZ0ID8gZXZlbnQubGlzdERhdGEgOiBvdGhlckxpc3REYXRhLFxuICAgICAgICAgICAgcmlnaHQ6IGRpcmVjdGlvbiA9PT0gVHJhbnNmZXJEaXJlY3Rpb24ucmlnaHQgPyBldmVudC5saXN0RGF0YSA6IG90aGVyTGlzdERhdGFcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5yaWdodERhdGFTb3VyY2UgPVxuICAgICAgICAgICAgZGlyZWN0aW9uID09PSBUcmFuc2ZlckRpcmVjdGlvbi5yaWdodFxuICAgICAgICAgICAgICAgID8gWy4uLmV2ZW50Lmxpc3REYXRhLmxvY2ssIC4uLmV2ZW50Lmxpc3REYXRhLnVubG9ja11cbiAgICAgICAgICAgICAgICA6IFsuLi5vdGhlckxpc3REYXRhLmxvY2ssIC4uLm90aGVyTGlzdERhdGEudW5sb2NrXTtcbiAgICB9XG59XG4iLCI8dGh5LXRyYW5zZmVyLWxpc3RcbiAgW2l0ZW1zXT1cImFsbERhdGFTb3VyY2VcIlxuICBbdGl0bGVdPVwibGVmdFRpdGxlXCJcbiAgW2RyYWdnYWJsZV09XCJ0aHlMZWZ0RHJhZ2dhYmxlXCJcbiAgW2Rpc2FibGVkXT1cInRoeVJpZ2h0TWF4IDw9IHJpZ2h0RGF0YVNvdXJjZS5sZW5ndGhcIlxuICBbcmVuZGVyQ29udGVudFJlZl09XCJsZWZ0Q29udGVudFJlZlwiXG4gIChkcmFnZ2FibGVVcGRhdGUpPVwib25EcmFnVXBkYXRlKCdsZWZ0JywgJGV2ZW50KVwiXG4gIFt0ZW1wbGF0ZV09XCJsZWZ0VGVtcGxhdGVSZWZcIlxuICAoc2VsZWN0SXRlbSk9XCJzZWxlY3RJdGVtKCRldmVudClcIlxuICAodW5zZWxlY3RJdGVtKT1cInVuc2VsZWN0SXRlbSgkZXZlbnQpXCJcbiAgPlxuICA8bmctdGVtcGxhdGUgI2xlZnRUZW1wbGF0ZVJlZiBsZXQtaXRlbT5cbiAgICA8ZGl2IChjbGljayk9XCJvblNlbGVjdChpdGVtLmRpcmVjdGlvbiA9PT0gJ2xlZnQnID8gJ2xlZnQnIDogJ3JpZ2h0JywgeyBpdGVtOiBpdGVtIH0pXCIgY2xhc3M9XCJsaXN0LWl0ZW0tY29udGVudFwiPlxuICAgICAgQGlmICh0aHlMZWZ0RHJhZ2dhYmxlKSB7XG4gICAgICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cImRyYWdcIiBjbGFzcz1cImRyYWctaGFuZGxlXCI+PC90aHktaWNvbj5cbiAgICAgIH1cbiAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLW5hbWVcIiBbbmdDbGFzc109XCJ7ICd1bi1zZWxlY3QtaXRlbSc6IGl0ZW0uZGlyZWN0aW9uICE9PSAncmlnaHQnIH1cIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRoeVRyYW5zZmVyTGlzdEl0ZW1cIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIEBpZiAoaXRlbS5kaXJlY3Rpb24gPT09ICdyaWdodCcpIHtcbiAgICAgICAgPHRoeS1pY29uIGNsYXNzPVwidGV4dC1wcmltYXJ5IGl0ZW0tc3RhdHVzXCIgdGh5SWNvbk5hbWU9XCJjaGVja1wiPjwvdGh5LWljb24+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L3RoeS10cmFuc2Zlci1saXN0PlxuXG48ZGl2IGNsYXNzPVwidGh5LXRyYW5zZmVyLW9wZXJhdGlvblwiPlxuICA8ZGl2IGNsYXNzPVwidGh5LXRyYW5zZmVyLW9wZXJhdGlvbi1ib2R5XCI+XG4gICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwiYW5nbGUtcmlnaHRcIiBjbGFzcz1cIm9wZXJhdGlvbi1saW5rXCI+PC90aHktaWNvbj5cbiAgICA8YnIgLz5cbiAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJhbmdsZS1sZWZ0XCIgY2xhc3M9XCJvcGVyYXRpb24tbGlua1wiPjwvdGh5LWljb24+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjx0aHktdHJhbnNmZXItbGlzdFxuICBbaXRlbXNdPVwicmlnaHREYXRhU291cmNlXCJcbiAgW3RpdGxlXT1cInJpZ2h0VGl0bGVcIlxuICBbZHJhZ2dhYmxlXT1cInRoeVJpZ2h0RHJhZ2dhYmxlXCJcbiAgKGRyYWdnYWJsZVVwZGF0ZSk9XCJvbkRyYWdVcGRhdGUoJ3JpZ2h0JywgJGV2ZW50KVwiXG4gIFtjYW5Mb2NrXT1cInRoeVJpZ2h0Q2FuTG9ja1wiXG4gIFttYXhMb2NrXT1cInRoeVJpZ2h0TG9ja01heFwiXG4gIFttYXhdPVwidGh5UmlnaHRNYXhcIlxuICBbdGVtcGxhdGVdPVwicmlnaHRUZW1wbGF0ZVJlZlwiXG4gIFtyZW5kZXJDb250ZW50UmVmXT1cInJpZ2h0Q29udGVudFJlZlwiXG4gIChzZWxlY3RJdGVtKT1cInNlbGVjdEl0ZW0oJGV2ZW50KVwiXG4gICh1bnNlbGVjdEl0ZW0pPVwidW5zZWxlY3RJdGVtKCRldmVudClcIlxuICA+XG4gIDxuZy10ZW1wbGF0ZSAjcmlnaHRUZW1wbGF0ZVJlZiBsZXQtaXRlbT5cbiAgICBAaWYgKHRoeVJpZ2h0RHJhZ2dhYmxlKSB7XG4gICAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJkcmFnXCIgY2xhc3M9XCJkcmFnLWhhbmRsZVwiPjwvdGh5LWljb24+XG4gICAgfVxuICAgIDxkaXYgY2xhc3M9XCJpdGVtLW5hbWVcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0aHlUcmFuc2Zlckxpc3RJdGVtXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIj48L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICAgIEBpZiAoaXRlbS5kaXJlY3Rpb24gPT09ICdyaWdodCcgJiYgIWl0ZW0uaXNGaXhlZCkge1xuICAgICAgPGEgY2xhc3M9XCJsaW5rLXNlY29uZGFyeVwiIChjbGljayk9XCJvblNlbGVjdCgncmlnaHQnLCB7IGl0ZW06IGl0ZW0gfSlcIj5cbiAgICAgICAgPHRoeS1pY29uIGNsYXNzPVwiaXRlbS1zdGF0dXNcIiB0aHlJY29uTmFtZT1cImNsb3NlXCI+PC90aHktaWNvbj5cbiAgICAgIDwvYT5cbiAgICB9XG4gIDwvbmctdGVtcGxhdGU+XG48L3RoeS10cmFuc2Zlci1saXN0PlxuXG48bmctdGVtcGxhdGUgI3RoeVRyYW5zZmVyTGlzdEl0ZW0gbGV0LWl0ZW0+XG4gIEBpZiAodGVtcGxhdGVSZWYpIHtcbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidGVtcGxhdGVSZWZcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiPjwvbmctdGVtcGxhdGU+XG4gIH1cbiAgQGlmICghdGVtcGxhdGVSZWYpIHtcbiAgICA8dGh5LWZsZXhpYmxlLXRleHQgW3RoeVRvb2x0aXBDb250ZW50XT1cIml0ZW0udGl0bGVcIj5cbiAgICAgIHt7IGl0ZW0udGl0bGUgfX1cbiAgICA8L3RoeS1mbGV4aWJsZS10ZXh0PlxuICB9XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -1,16 +1,15 @@
1
1
  import { Subject } from 'rxjs';
2
2
  import { normalizePassiveListenerOptions } from '@angular/cdk/platform';
3
- import { Component, ContentChild, ElementRef, EventEmitter, HostBinding, Inject, Input, Output, TemplateRef, ViewChild, ViewEncapsulation, numberAttribute } from '@angular/core';
3
+ import { Component, ContentChild, ElementRef, EventEmitter, HostBinding, Input, Output, TemplateRef, ViewChild, ViewEncapsulation, numberAttribute, inject } from '@angular/core';
4
4
  import { THY_TREE_ABSTRACT_TOKEN } from './tree-abstract';
5
5
  import { ThyTreeNode } from './tree-node.class';
6
6
  import { ThyTreeNodeCheckState } from './tree.class';
7
7
  import { ThyTreeService } from './tree.service';
8
8
  import { ThyLoading } from 'ngx-tethys/loading';
9
9
  import { ThyIcon } from 'ngx-tethys/icon';
10
- import { NgIf, NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';
10
+ import { NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';
11
11
  import { coerceBooleanProperty } from 'ngx-tethys/util';
12
12
  import * as i0 from "@angular/core";
13
- import * as i1 from "./tree.service";
14
13
  const passiveEventListenerOptions = normalizePassiveListenerOptions({ passive: true });
15
14
  /**
16
15
  * 树形控件的节点组件
@@ -18,15 +17,9 @@ const passiveEventListenerOptions = normalizePassiveListenerOptions({ passive: t
18
17
  * @name thy-tree-node
19
18
  */
20
19
  export class ThyTreeNodeComponent {
21
- get nodeIcon() {
22
- return this.node.origin.icon;
23
- }
24
- get nodeIconStyle() {
25
- return this.node.origin.iconStyle;
26
- }
27
- constructor(root, thyTreeService) {
28
- this.root = root;
29
- this.thyTreeService = thyTreeService;
20
+ constructor() {
21
+ this.root = inject(THY_TREE_ABSTRACT_TOKEN);
22
+ this.thyTreeService = inject(ThyTreeService);
30
23
  /**
31
24
  * 设置 TreeNode 是否支持异步加载
32
25
  */
@@ -71,6 +64,12 @@ export class ThyTreeNodeComponent {
71
64
  this.destroy$ = new Subject();
72
65
  this.checkState = ThyTreeNodeCheckState;
73
66
  }
67
+ get nodeIcon() {
68
+ return this.node.origin.icon;
69
+ }
70
+ get nodeIconStyle() {
71
+ return this.node.origin.iconStyle;
72
+ }
74
73
  clickNode(event) {
75
74
  if (this.node.isDisabled) {
76
75
  this.expandNode(event);
@@ -154,16 +153,13 @@ export class ThyTreeNodeComponent {
154
153
  this.destroy$.next();
155
154
  this.destroy$.complete();
156
155
  }
157
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTreeNodeComponent, deps: [{ token: THY_TREE_ABSTRACT_TOKEN }, { token: i1.ThyTreeService }], target: i0.ɵɵFactoryTarget.Component }); }
158
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.0", type: ThyTreeNodeComponent, isStandalone: true, selector: "thy-tree-node", inputs: { node: "node", thyAsync: ["thyAsync", "thyAsync", coerceBooleanProperty], thyMultiple: ["thyMultiple", "thyMultiple", coerceBooleanProperty], thyDraggable: ["thyDraggable", "thyDraggable", coerceBooleanProperty], thyCheckable: ["thyCheckable", "thyCheckable", coerceBooleanProperty], thyClickBehavior: "thyClickBehavior", thyTitleTruncate: ["thyTitleTruncate", "thyTitleTruncate", coerceBooleanProperty], templateRef: "templateRef", emptyChildrenTemplateRef: "emptyChildrenTemplateRef", thyItemSize: ["thyItemSize", "thyItemSize", numberAttribute], thyIndent: ["thyIndent", "thyIndent", numberAttribute] }, outputs: { thyOnClick: "thyOnClick", thyDblClick: "thyDblClick", thyOnExpandChange: "thyOnExpandChange", thyOnCheckboxChange: "thyOnCheckboxChange" }, host: { properties: { "class.thy-tree-node": "this.thyTreeNodeClass", "class": "this.itemClass" } }, queries: [{ propertyName: "childrenTreeTemplateRef", first: true, predicate: ["childrenTree"], descendants: true }], viewQueries: [{ propertyName: "treeNodeWrapper", first: true, predicate: ["treeNodeWrapper"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div\n #treeNodeWrapper\n class=\"thy-tree-node-wrapper\"\n [class.active]=\"root.isSelected(node)\"\n [class.disabled]=\"node.isDisabled\"\n [class.expand]=\"node.children.length\"\n [style.height]=\"thyItemSize + 'px'\"\n (click)=\"clickNode($event)\"\n>\n <span class=\"thy-tree-index\" [style.width.px]=\"node.level * thyIndent\"></span>\n <span class=\"thy-tree-drag-icon\">\n <thy-icon thyIconName=\"drag\"></thy-icon>\n </span>\n <span class=\"thy-tree-expand\" (click)=\"expandNode($event)\">\n <ng-container *ngIf=\"isShowExpand(node)\">\n <ng-container *ngIf=\"(node.children && node.children.length > 0) || thyAsync || emptyChildrenTemplateRef\">\n <thy-icon\n *ngIf=\"root.thyIcons?.expand && root.thyIcons?.collapse; else defaultIcon\"\n class=\"thy-tree-expand-icon\"\n [thyIconName]=\"node.isExpanded ? root.thyIcons.expand : root.thyIcons.collapse\"\n ></thy-icon>\n <ng-template #defaultIcon>\n <thy-icon class=\"thy-tree-expand-icon\" [class.collapse]=\"!node.isExpanded\" thyIconName=\"caret-right-down\"></thy-icon>\n </ng-template>\n </ng-container>\n </ng-container>\n </span>\n\n <span class=\"thy-tree-node-content\" (dblclick)=\"dbClickNode($event)\">\n <input\n *ngIf=\"thyCheckable\"\n type=\"checkbox\"\n class=\"thy-tree-node-check\"\n [class.form-check-indeterminate]=\"node.isChecked === checkState.indeterminate\"\n [class.form-unchecked]=\"node.isChecked === checkState.unchecked\"\n [checked]=\"node.isChecked === checkState.checked\"\n [disabled]=\"node.isDisabled\"\n (click)=\"clickNodeCheck($event)\"\n />\n <ng-container *ngIf=\"!templateRef\">\n <ng-container *ngIf=\"nodeIcon\">\n <span class=\"thy-tree-node-icon\"> <i [ngClass]=\"nodeIcon\" [ngStyle]=\"nodeIconStyle\"></i></span>\n </ng-container>\n <span [title]=\"node.title\" class=\"thy-tree-node-title\" [class.truncate]=\"thyTitleTruncate\"> {{ node.title }}</span>\n </ng-container>\n <ng-container *ngIf=\"templateRef\">\n <ng-template\n [ngTemplateOutlet]=\"templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: node, node: node, origin: node?.origin }\"\n ></ng-template>\n </ng-container>\n </span>\n</div>\n<ng-container *ngIf=\"thyAsync\">\n <thy-loading *ngIf=\"node.isLoading\" [thyDone]=\"!node.isLoading\"></thy-loading>\n</ng-container>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyLoading, selector: "thy-loading", inputs: ["thyDone", "thyTip", "thyIsMask"] }], encapsulation: i0.ViewEncapsulation.None }); }
156
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTreeNodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
157
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyTreeNodeComponent, isStandalone: true, selector: "thy-tree-node", inputs: { node: "node", thyAsync: ["thyAsync", "thyAsync", coerceBooleanProperty], thyMultiple: ["thyMultiple", "thyMultiple", coerceBooleanProperty], thyDraggable: ["thyDraggable", "thyDraggable", coerceBooleanProperty], thyCheckable: ["thyCheckable", "thyCheckable", coerceBooleanProperty], thyClickBehavior: "thyClickBehavior", thyTitleTruncate: ["thyTitleTruncate", "thyTitleTruncate", coerceBooleanProperty], templateRef: "templateRef", emptyChildrenTemplateRef: "emptyChildrenTemplateRef", thyItemSize: ["thyItemSize", "thyItemSize", numberAttribute], thyIndent: ["thyIndent", "thyIndent", numberAttribute] }, outputs: { thyOnClick: "thyOnClick", thyDblClick: "thyDblClick", thyOnExpandChange: "thyOnExpandChange", thyOnCheckboxChange: "thyOnCheckboxChange" }, host: { properties: { "class.thy-tree-node": "this.thyTreeNodeClass", "class": "this.itemClass" } }, queries: [{ propertyName: "childrenTreeTemplateRef", first: true, predicate: ["childrenTree"], descendants: true }], viewQueries: [{ propertyName: "treeNodeWrapper", first: true, predicate: ["treeNodeWrapper"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div\n #treeNodeWrapper\n class=\"thy-tree-node-wrapper\"\n [class.active]=\"root.isSelected(node)\"\n [class.disabled]=\"node.isDisabled\"\n [class.expand]=\"node.children.length\"\n [style.height]=\"thyItemSize + 'px'\"\n (click)=\"clickNode($event)\"\n >\n <span class=\"thy-tree-index\" [style.width.px]=\"node.level * thyIndent\"></span>\n <span class=\"thy-tree-drag-icon\">\n <thy-icon thyIconName=\"drag\"></thy-icon>\n </span>\n <span class=\"thy-tree-expand\" (click)=\"expandNode($event)\">\n @if (isShowExpand(node)) {\n @if ((node.children && node.children.length > 0) || thyAsync || emptyChildrenTemplateRef) {\n @if (root.thyIcons?.expand && root.thyIcons?.collapse) {\n <thy-icon\n class=\"thy-tree-expand-icon\"\n [thyIconName]=\"node.isExpanded ? root.thyIcons.expand : root.thyIcons.collapse\"\n ></thy-icon>\n } @else {\n <thy-icon class=\"thy-tree-expand-icon\" [class.collapse]=\"!node.isExpanded\" thyIconName=\"caret-right-down\"></thy-icon>\n }\n }\n }\n </span>\n\n <span class=\"thy-tree-node-content\" (dblclick)=\"dbClickNode($event)\">\n @if (thyCheckable) {\n <input\n type=\"checkbox\"\n class=\"thy-tree-node-check\"\n [class.form-check-indeterminate]=\"node.isChecked === checkState.indeterminate\"\n [class.form-unchecked]=\"node.isChecked === checkState.unchecked\"\n [checked]=\"node.isChecked === checkState.checked\"\n [disabled]=\"node.isDisabled\"\n (click)=\"clickNodeCheck($event)\"\n />\n }\n @if (!templateRef) {\n @if (nodeIcon) {\n <span class=\"thy-tree-node-icon\"> <i [ngClass]=\"nodeIcon\" [ngStyle]=\"nodeIconStyle\"></i></span>\n }\n <span [title]=\"node.title\" class=\"thy-tree-node-title\" [class.truncate]=\"thyTitleTruncate\"> {{ node.title }}</span>\n }\n @if (templateRef) {\n <ng-template\n [ngTemplateOutlet]=\"templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: node, node: node, origin: node?.origin }\"\n ></ng-template>\n }\n </span>\n</div>\n@if (thyAsync) {\n @if (node.isLoading) {\n <thy-loading [thyDone]=\"!node.isLoading\"></thy-loading>\n }\n}\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyLoading, selector: "thy-loading", inputs: ["thyDone", "thyTip", "thyIsMask"] }], encapsulation: i0.ViewEncapsulation.None }); }
159
158
  }
160
159
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTreeNodeComponent, decorators: [{
161
160
  type: Component,
162
- args: [{ selector: 'thy-tree-node', encapsulation: ViewEncapsulation.None, standalone: true, imports: [NgIf, ThyIcon, NgClass, NgStyle, NgTemplateOutlet, ThyLoading], template: "<div\n #treeNodeWrapper\n class=\"thy-tree-node-wrapper\"\n [class.active]=\"root.isSelected(node)\"\n [class.disabled]=\"node.isDisabled\"\n [class.expand]=\"node.children.length\"\n [style.height]=\"thyItemSize + 'px'\"\n (click)=\"clickNode($event)\"\n>\n <span class=\"thy-tree-index\" [style.width.px]=\"node.level * thyIndent\"></span>\n <span class=\"thy-tree-drag-icon\">\n <thy-icon thyIconName=\"drag\"></thy-icon>\n </span>\n <span class=\"thy-tree-expand\" (click)=\"expandNode($event)\">\n <ng-container *ngIf=\"isShowExpand(node)\">\n <ng-container *ngIf=\"(node.children && node.children.length > 0) || thyAsync || emptyChildrenTemplateRef\">\n <thy-icon\n *ngIf=\"root.thyIcons?.expand && root.thyIcons?.collapse; else defaultIcon\"\n class=\"thy-tree-expand-icon\"\n [thyIconName]=\"node.isExpanded ? root.thyIcons.expand : root.thyIcons.collapse\"\n ></thy-icon>\n <ng-template #defaultIcon>\n <thy-icon class=\"thy-tree-expand-icon\" [class.collapse]=\"!node.isExpanded\" thyIconName=\"caret-right-down\"></thy-icon>\n </ng-template>\n </ng-container>\n </ng-container>\n </span>\n\n <span class=\"thy-tree-node-content\" (dblclick)=\"dbClickNode($event)\">\n <input\n *ngIf=\"thyCheckable\"\n type=\"checkbox\"\n class=\"thy-tree-node-check\"\n [class.form-check-indeterminate]=\"node.isChecked === checkState.indeterminate\"\n [class.form-unchecked]=\"node.isChecked === checkState.unchecked\"\n [checked]=\"node.isChecked === checkState.checked\"\n [disabled]=\"node.isDisabled\"\n (click)=\"clickNodeCheck($event)\"\n />\n <ng-container *ngIf=\"!templateRef\">\n <ng-container *ngIf=\"nodeIcon\">\n <span class=\"thy-tree-node-icon\"> <i [ngClass]=\"nodeIcon\" [ngStyle]=\"nodeIconStyle\"></i></span>\n </ng-container>\n <span [title]=\"node.title\" class=\"thy-tree-node-title\" [class.truncate]=\"thyTitleTruncate\"> {{ node.title }}</span>\n </ng-container>\n <ng-container *ngIf=\"templateRef\">\n <ng-template\n [ngTemplateOutlet]=\"templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: node, node: node, origin: node?.origin }\"\n ></ng-template>\n </ng-container>\n </span>\n</div>\n<ng-container *ngIf=\"thyAsync\">\n <thy-loading *ngIf=\"node.isLoading\" [thyDone]=\"!node.isLoading\"></thy-loading>\n</ng-container>\n" }]
163
- }], ctorParameters: () => [{ type: undefined, decorators: [{
164
- type: Inject,
165
- args: [THY_TREE_ABSTRACT_TOKEN]
166
- }] }, { type: i1.ThyTreeService }], propDecorators: { node: [{
161
+ args: [{ selector: 'thy-tree-node', encapsulation: ViewEncapsulation.None, standalone: true, imports: [ThyIcon, NgClass, NgStyle, NgTemplateOutlet, ThyLoading], template: "<div\n #treeNodeWrapper\n class=\"thy-tree-node-wrapper\"\n [class.active]=\"root.isSelected(node)\"\n [class.disabled]=\"node.isDisabled\"\n [class.expand]=\"node.children.length\"\n [style.height]=\"thyItemSize + 'px'\"\n (click)=\"clickNode($event)\"\n >\n <span class=\"thy-tree-index\" [style.width.px]=\"node.level * thyIndent\"></span>\n <span class=\"thy-tree-drag-icon\">\n <thy-icon thyIconName=\"drag\"></thy-icon>\n </span>\n <span class=\"thy-tree-expand\" (click)=\"expandNode($event)\">\n @if (isShowExpand(node)) {\n @if ((node.children && node.children.length > 0) || thyAsync || emptyChildrenTemplateRef) {\n @if (root.thyIcons?.expand && root.thyIcons?.collapse) {\n <thy-icon\n class=\"thy-tree-expand-icon\"\n [thyIconName]=\"node.isExpanded ? root.thyIcons.expand : root.thyIcons.collapse\"\n ></thy-icon>\n } @else {\n <thy-icon class=\"thy-tree-expand-icon\" [class.collapse]=\"!node.isExpanded\" thyIconName=\"caret-right-down\"></thy-icon>\n }\n }\n }\n </span>\n\n <span class=\"thy-tree-node-content\" (dblclick)=\"dbClickNode($event)\">\n @if (thyCheckable) {\n <input\n type=\"checkbox\"\n class=\"thy-tree-node-check\"\n [class.form-check-indeterminate]=\"node.isChecked === checkState.indeterminate\"\n [class.form-unchecked]=\"node.isChecked === checkState.unchecked\"\n [checked]=\"node.isChecked === checkState.checked\"\n [disabled]=\"node.isDisabled\"\n (click)=\"clickNodeCheck($event)\"\n />\n }\n @if (!templateRef) {\n @if (nodeIcon) {\n <span class=\"thy-tree-node-icon\"> <i [ngClass]=\"nodeIcon\" [ngStyle]=\"nodeIconStyle\"></i></span>\n }\n <span [title]=\"node.title\" class=\"thy-tree-node-title\" [class.truncate]=\"thyTitleTruncate\"> {{ node.title }}</span>\n }\n @if (templateRef) {\n <ng-template\n [ngTemplateOutlet]=\"templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: node, node: node, origin: node?.origin }\"\n ></ng-template>\n }\n </span>\n</div>\n@if (thyAsync) {\n @if (node.isLoading) {\n <thy-loading [thyDone]=\"!node.isLoading\"></thy-loading>\n }\n}\n" }]
162
+ }], propDecorators: { node: [{
167
163
  type: Input
168
164
  }], thyAsync: [{
169
165
  type: Input,
@@ -213,4 +209,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
213
209
  type: Input,
214
210
  args: [{ transform: numberAttribute }]
215
211
  }] } });
216
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90cmVlL3RyZWUtbm9kZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvdHJlZS90cmVlLW5vZGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RSxPQUFPLEVBQ0gsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUlMLE1BQU0sRUFFTixXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixFQUNqQixlQUFlLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSx1QkFBdUIsRUFBNEIsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFvQixxQkFBcUIsRUFBb0IsTUFBTSxjQUFjLENBQUM7QUFDekYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUV4RCxNQUFNLDJCQUEyQixHQUE0QiwrQkFBK0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBRWhIOzs7O0dBSUc7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O3VCQUFDLE9BQU87Z0JBS21CLFdBQVc7c0JBQWpELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQUtFLFNBQVM7c0JBQS9DLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbm9ybWFsaXplUGFzc2l2ZUxpc3RlbmVyT3B0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wbGF0Zm9ybSc7XG5pbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBudW1iZXJBdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFRIWV9UUkVFX0FCU1RSQUNUX1RPS0VOLCBUaHlUcmVlQWJzdHJhY3RDb21wb25lbnQgfSBmcm9tICcuL3RyZWUtYWJzdHJhY3QnO1xuaW1wb3J0IHsgVGh5VHJlZU5vZGUgfSBmcm9tICcuL3RyZWUtbm9kZS5jbGFzcyc7XG5pbXBvcnQgeyBUaHlUcmVlRW1pdEV2ZW50LCBUaHlUcmVlTm9kZUNoZWNrU3RhdGUsIFRoeUNsaWNrQmVoYXZpb3IgfSBmcm9tICcuL3RyZWUuY2xhc3MnO1xuaW1wb3J0IHsgVGh5VHJlZVNlcnZpY2UgfSBmcm9tICcuL3RyZWUuc2VydmljZSc7XG5pbXBvcnQgeyBUaHlMb2FkaW5nIH0gZnJvbSAnbmd4LXRldGh5cy9sb2FkaW5nJztcbmltcG9ydCB7IFRoeUljb24gfSBmcm9tICduZ3gtdGV0aHlzL2ljb24nO1xuaW1wb3J0IHsgTmdJZiwgTmdDbGFzcywgTmdTdHlsZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuXG5jb25zdCBwYXNzaXZlRXZlbnRMaXN0ZW5lck9wdGlvbnMgPSA8QWRkRXZlbnRMaXN0ZW5lck9wdGlvbnM+bm9ybWFsaXplUGFzc2l2ZUxpc3RlbmVyT3B0aW9ucyh7IHBhc3NpdmU6IHRydWUgfSk7XG5cbi8qKlxuICog5qCR5b2i5o6n5Lu255qE6IqC54K557uE5Lu2XG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgdGh5LXRyZWUtbm9kZVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS10cmVlLW5vZGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90cmVlLW5vZGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgVGh5SWNvbiwgTmdDbGFzcywgTmdTdHlsZSwgTmdUZW1wbGF0ZU91dGxldCwgVGh5TG9hZGluZ11cbn0pXG5leHBvcnQgY2xhc3MgVGh5VHJlZU5vZGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICAvKipcbiAgICAgKiBub2RlIOiKgueCueWxleeOsOaJgOmcgOeahOaVsOaNrlxuICAgICAqL1xuICAgIEBJbnB1dCgpIG5vZGU6IFRoeVRyZWVOb2RlO1xuXG4gICAgLyoqXG4gICAgICog6K6+572uIFRyZWVOb2RlIOaYr+WQpuaUr+aMgeW8guatpeWKoOi9vVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeUFzeW5jID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDorr7nva4gVHJlZU5vZGUg5piv5ZCm5pSv5oyB5aSa6YCJ6IqC54K5XG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgdGh5TXVsdGlwbGUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIOiuvue9riBUcmVlTm9kZSDmmK/lkKbmlK/mjIHmi5bmi73mjpLluo9cbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0aHlEcmFnZ2FibGUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIOiuvue9riBUcmVlTm9kZSDmmK/lkKbmlK/mjIEgQ2hlY2tib3gg6YCJ5oupXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgdGh5Q2hlY2thYmxlID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDngrnlh7voioLngrnnmoTooYzkuLrvvIxgZGVmYXVsdGAg5Li66YCJ5Lit5b2T5YmN6IqC54K577yMYHNlbGVjdENoZWNrYm94YCDkuLrpgInkuK3oioLngrnnmoQgQ2hlY2tib3jvvIwgYHRoeUNoZWNrYWJsZWAg5Li6IHRydWUg5pe255Sf5pWI44CCXG4gICAgICogQGRlZmF1bHQgZGVmYXVsdFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUNsaWNrQmVoYXZpb3I6IFRoeUNsaWNrQmVoYXZpb3I7XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7oioLngrnlkI3np7DmmK/lkKbmlK/mjIHotoXlh7rmiKrlj5ZcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeVRpdGxlVHJ1bmNhdGU6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiDorr7nva4gVHJlZU5vZGUg55qE5riy5p+T5qih5p2/XG4gICAgICovXG4gICAgQElucHV0KCkgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7lrZDnmoTnqbrmlbDmja7muLLmn5PmqKHmnb9cbiAgICAgKi9cbiAgICBASW5wdXQoKSBlbXB0eUNoaWxkcmVuVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKipcbiAgICAgKiDorr7nva4gbm9kZSDngrnlh7vkuovku7ZcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5T25DbGljazogRXZlbnRFbWl0dGVyPFRoeVRyZWVFbWl0RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxUaHlUcmVlRW1pdEV2ZW50PigpO1xuXG4gICAgLyoqXG4gICAgICog5Y+M5Ye7IG5vZGUg5LqL5Lu2XG4gICAgICovXG4gICAgQE91dHB1dCgpIHRoeURibENsaWNrOiBFdmVudEVtaXR0ZXI8VGh5VHJlZUVtaXRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFRoeVRyZWVFbWl0RXZlbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDngrnlh7vlsZXlvIDop6blj5Hkuovku7ZcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5T25FeHBhbmRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxUaHlUcmVlRW1pdEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8VGh5VHJlZUVtaXRFdmVudD4oKTtcblxuICAgIC8qKlxuICAgICAqIOiuvue9riBjaGVjayDpgInmi6nkuovku7ZcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5T25DaGVja2JveENoYW5nZTogRXZlbnRFbWl0dGVyPFRoeVRyZWVFbWl0RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxUaHlUcmVlRW1pdEV2ZW50PigpO1xuXG4gICAgLyoqXG4gICAgICog6K6+572uIGNoaWxkcmVuVHJlZSDnmoTmuLLmn5PmqKHmnb9cbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdjaGlsZHJlblRyZWUnKSBjaGlsZHJlblRyZWVUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKiBUaGUgbmF0aXZlIGA8ZGl2IGNsYXNzPVwidGh5LXRyZWUtbm9kZS13cmFwcGVyIHRoeS1zb3J0YWJsZS1pdGVtXCI+PC9kaXY+YCBlbGVtZW50LiAqL1xuICAgIEBWaWV3Q2hpbGQoJ3RyZWVOb2RlV3JhcHBlcicsIHsgc3RhdGljOiB0cnVlIH0pIHRyZWVOb2RlV3JhcHBlcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRoeS10cmVlLW5vZGUnKSB0aHlUcmVlTm9kZUNsYXNzID0gdHJ1ZTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBpdGVtQ2xhc3M6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOW8gOWQr+iZmuaLn+a7muWKqOaXtu+8jOWNleihjOiKgueCueeahOmrmOW6pu+8jOW9k2B0aHlTaXplYOS4umBkZWZhdWx0YOaXtu+8jOivpeWPguaVsOaJjeeUn+aViFxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRoeUl0ZW1TaXplID0gNDQ7XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7oioLngrnnvKnov5vot53nprvvvIznvKnov5vot53nprsgPSB0aHlJbmRlbnQgKiBub2RlLmxldmVsXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgdGh5SW5kZW50ID0gMjU7XG5cbiAgICBwdWJsaWMgZ2V0IG5vZGVJY29uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ub2RlLm9yaWdpbi5pY29uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbm9kZUljb25TdHlsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubm9kZS5vcmlnaW4uaWNvblN0eWxlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgY2hlY2tTdGF0ZSA9IFRoeVRyZWVOb2RlQ2hlY2tTdGF0ZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFRIWV9UUkVFX0FCU1RSQUNUX1RPS0VOKSBwdWJsaWMgcm9vdDogVGh5VHJlZUFic3RyYWN0Q29tcG9uZW50LFxuICAgICAgICBwdWJsaWMgdGh5VHJlZVNlcnZpY2U6IFRoeVRyZWVTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgcHVibGljIGNsaWNrTm9kZShldmVudDogRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMubm9kZS5pc0Rpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmV4cGFuZE5vZGUoZXZlbnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMudGh5Q2hlY2thYmxlICYmIHRoaXMudGh5Q2xpY2tCZWhhdmlvciA9PT0gJ3NlbGVjdENoZWNrYm94Jykge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xpY2tOb2RlQ2hlY2soZXZlbnQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5yb290LnRoeU11bHRpcGxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm9vdC50b2dnbGVUcmVlTm9kZSh0aGlzLm5vZGUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm9vdC5zZWxlY3RUcmVlTm9kZSh0aGlzLm5vZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRoeU9uQ2xpY2suZW1pdCh7XG4gICAgICAgICAgICBldmVudE5hbWU6ICdjbGljaycsXG4gICAgICAgICAgICBldmVudDogZXZlbnQsXG4gICAgICAgICAgICBub2RlOiB0aGlzLm5vZGVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGRiQ2xpY2tOb2RlKGV2ZW50OiBFdmVudCkge1xuICAgICAgICB0aGlzLnRoeURibENsaWNrLmVtaXQoe1xuICAgICAgICAgICAgZXZlbnROYW1lOiAnZGJjbGljaycsXG4gICAgICAgICAgICBldmVudDogZXZlbnQsXG4gICAgICAgICAgICBub2RlOiB0aGlzLm5vZGVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsaWNrTm9kZUNoZWNrKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKHRoaXMubm9kZS5pc0NoZWNrZWQgPT09IFRoeVRyZWVOb2RlQ2hlY2tTdGF0ZS51bmNoZWNrZWQpIHtcbiAgICAgICAgICAgIHRoaXMubm9kZS5zZXRDaGVja2VkKHRydWUpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubm9kZS5pc0NoZWNrZWQgPT09IFRoeVRyZWVOb2RlQ2hlY2tTdGF0ZS5jaGVja2VkKSB7XG4gICAgICAgICAgICB0aGlzLm5vZGUuc2V0Q2hlY2tlZChmYWxzZSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5ub2RlLmlzQ2hlY2tlZCA9PT0gVGh5VHJlZU5vZGVDaGVja1N0YXRlLmluZGV0ZXJtaW5hdGUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm5vZGUuY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUNoaWxkcmVuID0gdGhpcy5ub2RlLmNoaWxkcmVuLmZpbHRlcihpdGVtID0+ICFpdGVtLmlzRGlzYWJsZWQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzQWxsQWN0aXZlQ2hpbGRyZW5DaGVja2VkID0gYWN0aXZlQ2hpbGRyZW4uZXZlcnkoaXRlbSA9PiBpdGVtLmlzQ2hlY2tlZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnNldENoZWNrZWQoIWlzQWxsQWN0aXZlQ2hpbGRyZW5DaGVja2VkKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnNldENoZWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50aHlPbkNoZWNrYm94Q2hhbmdlLmVtaXQoe1xuICAgICAgICAgICAgZXZlbnROYW1lOiAnY2hlY2tib3hDaGFuZ2UnLFxuICAgICAgICAgICAgZXZlbnQ6IGV2ZW50LFxuICAgICAgICAgICAgbm9kZTogdGhpcy5ub2RlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBleHBhbmROb2RlKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5ub2RlLnNldEV4cGFuZGVkKCF0aGlzLm5vZGUuaXNFeHBhbmRlZCk7XG4gICAgICAgIGlmICh0aGlzLnJvb3QudGh5U2hvd0V4cGFuZCkge1xuICAgICAgICAgICAgdGhpcy50aHlPbkV4cGFuZENoYW5nZS5lbWl0KHtcbiAgICAgICAgICAgICAgICBldmVudE5hbWU6ICdleHBhbmQnLFxuICAgICAgICAgICAgICAgIGV2ZW50OiBldmVudCxcbiAgICAgICAgICAgICAgICBub2RlOiB0aGlzLm5vZGVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKHRoaXMudGh5QXN5bmMgJiYgdGhpcy5ub2RlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5zZXRMb2FkaW5nKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGlzU2hvd0V4cGFuZChub2RlOiBUaHlUcmVlTm9kZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5yb290LmlzU2hvd0V4cGFuZChub2RlKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pdGVtQ2xhc3MgPSB0aGlzLm5vZGU/Lml0ZW1DbGFzcz8uam9pbignICcpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMubm9kZSAmJiAhY2hhbmdlcy5ub2RlLmlzRmlyc3RDaGFuZ2UoKSkge1xuICAgICAgICAgICAgdGhpcy5pdGVtQ2xhc3MgPSBjaGFuZ2VzPy5ub2RlPy5jdXJyZW50VmFsdWUuaXRlbUNsYXNzPy5qb2luKCcgJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICN0cmVlTm9kZVdyYXBwZXJcbiAgY2xhc3M9XCJ0aHktdHJlZS1ub2RlLXdyYXBwZXJcIlxuICBbY2xhc3MuYWN0aXZlXT1cInJvb3QuaXNTZWxlY3RlZChub2RlKVwiXG4gIFtjbGFzcy5kaXNhYmxlZF09XCJub2RlLmlzRGlzYWJsZWRcIlxuICBbY2xhc3MuZXhwYW5kXT1cIm5vZGUuY2hpbGRyZW4ubGVuZ3RoXCJcbiAgW3N0eWxlLmhlaWdodF09XCJ0aHlJdGVtU2l6ZSArICdweCdcIlxuICAoY2xpY2spPVwiY2xpY2tOb2RlKCRldmVudClcIlxuPlxuICA8c3BhbiBjbGFzcz1cInRoeS10cmVlLWluZGV4XCIgW3N0eWxlLndpZHRoLnB4XT1cIm5vZGUubGV2ZWwgKiB0aHlJbmRlbnRcIj48L3NwYW4+XG4gIDxzcGFuICBjbGFzcz1cInRoeS10cmVlLWRyYWctaWNvblwiPlxuICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cImRyYWdcIj48L3RoeS1pY29uPlxuICA8L3NwYW4+XG4gIDxzcGFuIGNsYXNzPVwidGh5LXRyZWUtZXhwYW5kXCIgKGNsaWNrKT1cImV4cGFuZE5vZGUoJGV2ZW50KVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1Nob3dFeHBhbmQobm9kZSlcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIobm9kZS5jaGlsZHJlbiAmJiBub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDApIHx8IHRoeUFzeW5jIHx8IGVtcHR5Q2hpbGRyZW5UZW1wbGF0ZVJlZlwiPlxuICAgICAgICA8dGh5LWljb25cbiAgICAgICAgICAqbmdJZj1cInJvb3QudGh5SWNvbnM/LmV4cGFuZCAmJiByb290LnRoeUljb25zPy5jb2xsYXBzZTsgZWxzZSBkZWZhdWx0SWNvblwiXG4gICAgICAgICAgY2xhc3M9XCJ0aHktdHJlZS1leHBhbmQtaWNvblwiXG4gICAgICAgICAgW3RoeUljb25OYW1lXT1cIm5vZGUuaXNFeHBhbmRlZCA/IHJvb3QudGh5SWNvbnMuZXhwYW5kIDogcm9vdC50aHlJY29ucy5jb2xsYXBzZVwiXG4gICAgICAgID48L3RoeS1pY29uPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRJY29uPlxuICAgICAgICAgIDx0aHktaWNvbiBjbGFzcz1cInRoeS10cmVlLWV4cGFuZC1pY29uXCIgW2NsYXNzLmNvbGxhcHNlXT1cIiFub2RlLmlzRXhwYW5kZWRcIiB0aHlJY29uTmFtZT1cImNhcmV0LXJpZ2h0LWRvd25cIj48L3RoeS1pY29uPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvc3Bhbj5cblxuICA8c3BhbiBjbGFzcz1cInRoeS10cmVlLW5vZGUtY29udGVudFwiIChkYmxjbGljayk9XCJkYkNsaWNrTm9kZSgkZXZlbnQpXCI+XG4gICAgPGlucHV0XG4gICAgICAqbmdJZj1cInRoeUNoZWNrYWJsZVwiXG4gICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgY2xhc3M9XCJ0aHktdHJlZS1ub2RlLWNoZWNrXCJcbiAgICAgIFtjbGFzcy5mb3JtLWNoZWNrLWluZGV0ZXJtaW5hdGVdPVwibm9kZS5pc0NoZWNrZWQgPT09IGNoZWNrU3RhdGUuaW5kZXRlcm1pbmF0ZVwiXG4gICAgICBbY2xhc3MuZm9ybS11bmNoZWNrZWRdPVwibm9kZS5pc0NoZWNrZWQgPT09IGNoZWNrU3RhdGUudW5jaGVja2VkXCJcbiAgICAgIFtjaGVja2VkXT1cIm5vZGUuaXNDaGVja2VkID09PSBjaGVja1N0YXRlLmNoZWNrZWRcIlxuICAgICAgW2Rpc2FibGVkXT1cIm5vZGUuaXNEaXNhYmxlZFwiXG4gICAgICAoY2xpY2spPVwiY2xpY2tOb2RlQ2hlY2soJGV2ZW50KVwiXG4gICAgLz5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXRlbXBsYXRlUmVmXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibm9kZUljb25cIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aHktdHJlZS1ub2RlLWljb25cIj4gPGkgW25nQ2xhc3NdPVwibm9kZUljb25cIiBbbmdTdHlsZV09XCJub2RlSWNvblN0eWxlXCI+PC9pPjwvc3Bhbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPHNwYW4gW3RpdGxlXT1cIm5vZGUudGl0bGVcIiBjbGFzcz1cInRoeS10cmVlLW5vZGUtdGl0bGVcIiBbY2xhc3MudHJ1bmNhdGVdPVwidGh5VGl0bGVUcnVuY2F0ZVwiPiB7eyBub2RlLnRpdGxlIH19PC9zcGFuPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0ZW1wbGF0ZVJlZlwiPlxuICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlUmVmXCJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBub2RlLCBub2RlOiBub2RlLCBvcmlnaW46IG5vZGU/Lm9yaWdpbiB9XCJcbiAgICAgID48L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L3NwYW4+XG48L2Rpdj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJ0aHlBc3luY1wiPlxuICA8dGh5LWxvYWRpbmcgKm5nSWY9XCJub2RlLmlzTG9hZGluZ1wiIFt0aHlEb25lXT1cIiFub2RlLmlzTG9hZGluZ1wiPjwvdGh5LWxvYWRpbmc+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90cmVlL3RyZWUtbm9kZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvdHJlZS90cmVlLW5vZGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RSxPQUFPLEVBQ0gsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBSUwsTUFBTSxFQUVOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHVCQUF1QixFQUE0QixNQUFNLGlCQUFpQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQW9CLHFCQUFxQixFQUFvQixNQUFNLGNBQWMsQ0FBQztBQUN6RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUV4RCxNQUFNLDJCQUEyQixHQUE0QiwrQkFBK0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBRWhIOzs7O0dBSUc7QUFRSCxNQUFNLE9B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QVM7c0JBQS9DLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbm9ybWFsaXplUGFzc2l2ZUxpc3RlbmVyT3B0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wbGF0Zm9ybSc7XG5pbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIG51bWJlckF0dHJpYnV0ZSxcbiAgICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFRIWV9UUkVFX0FCU1RSQUNUX1RPS0VOLCBUaHlUcmVlQWJzdHJhY3RDb21wb25lbnQgfSBmcm9tICcuL3RyZWUtYWJzdHJhY3QnO1xuaW1wb3J0IHsgVGh5VHJlZU5vZGUgfSBmcm9tICcuL3RyZWUtbm9kZS5jbGFzcyc7XG5pbXBvcnQgeyBUaHlUcmVlRW1pdEV2ZW50LCBUaHlUcmVlTm9kZUNoZWNrU3RhdGUsIFRoeUNsaWNrQmVoYXZpb3IgfSBmcm9tICcuL3RyZWUuY2xhc3MnO1xuaW1wb3J0IHsgVGh5VHJlZVNlcnZpY2UgfSBmcm9tICcuL3RyZWUuc2VydmljZSc7XG5pbXBvcnQgeyBUaHlMb2FkaW5nIH0gZnJvbSAnbmd4LXRldGh5cy9sb2FkaW5nJztcbmltcG9ydCB7IFRoeUljb24gfSBmcm9tICduZ3gtdGV0aHlzL2ljb24nO1xuaW1wb3J0IHsgTmdDbGFzcywgTmdTdHlsZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuXG5jb25zdCBwYXNzaXZlRXZlbnRMaXN0ZW5lck9wdGlvbnMgPSA8QWRkRXZlbnRMaXN0ZW5lck9wdGlvbnM+bm9ybWFsaXplUGFzc2l2ZUxpc3RlbmVyT3B0aW9ucyh7IHBhc3NpdmU6IHRydWUgfSk7XG5cbi8qKlxuICog5qCR5b2i5o6n5Lu255qE6IqC54K557uE5Lu2XG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgdGh5LXRyZWUtbm9kZVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS10cmVlLW5vZGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90cmVlLW5vZGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbVGh5SWNvbiwgTmdDbGFzcywgTmdTdHlsZSwgTmdUZW1wbGF0ZU91dGxldCwgVGh5TG9hZGluZ11cbn0pXG5leHBvcnQgY2xhc3MgVGh5VHJlZU5vZGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICByb290ID0gaW5qZWN0KFRIWV9UUkVFX0FCU1RSQUNUX1RPS0VOKTtcbiAgICB0aHlUcmVlU2VydmljZSA9IGluamVjdChUaHlUcmVlU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiBub2RlIOiKgueCueWxleeOsOaJgOmcgOeahOaVsOaNrlxuICAgICAqL1xuICAgIEBJbnB1dCgpIG5vZGU6IFRoeVRyZWVOb2RlO1xuXG4gICAgLyoqXG4gICAgICog6K6+572uIFRyZWVOb2RlIOaYr+WQpuaUr+aMgeW8guatpeWKoOi9vVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeUFzeW5jID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDorr7nva4gVHJlZU5vZGUg5piv5ZCm5pSv5oyB5aSa6YCJ6IqC54K5XG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgdGh5TXVsdGlwbGUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIOiuvue9riBUcmVlTm9kZSDmmK/lkKbmlK/mjIHmi5bmi73mjpLluo9cbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0aHlEcmFnZ2FibGUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIOiuvue9riBUcmVlTm9kZSDmmK/lkKbmlK/mjIEgQ2hlY2tib3gg6YCJ5oupXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgdGh5Q2hlY2thYmxlID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDngrnlh7voioLngrnnmoTooYzkuLrvvIxgZGVmYXVsdGAg5Li66YCJ5Lit5b2T5YmN6IqC54K577yMYHNlbGVjdENoZWNrYm94YCDkuLrpgInkuK3oioLngrnnmoQgQ2hlY2tib3jvvIwgYHRoeUNoZWNrYWJsZWAg5Li6IHRydWUg5pe255Sf5pWI44CCXG4gICAgICogQGRlZmF1bHQgZGVmYXVsdFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUNsaWNrQmVoYXZpb3I6IFRoeUNsaWNrQmVoYXZpb3I7XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7oioLngrnlkI3np7DmmK/lkKbmlK/mjIHotoXlh7rmiKrlj5ZcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeVRpdGxlVHJ1bmNhdGU6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiDorr7nva4gVHJlZU5vZGUg55qE5riy5p+T5qih5p2/XG4gICAgICovXG4gICAgQElucHV0KCkgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7lrZDnmoTnqbrmlbDmja7muLLmn5PmqKHmnb9cbiAgICAgKi9cbiAgICBASW5wdXQoKSBlbXB0eUNoaWxkcmVuVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKipcbiAgICAgKiDorr7nva4gbm9kZSDngrnlh7vkuovku7ZcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5T25DbGljazogRXZlbnRFbWl0dGVyPFRoeVRyZWVFbWl0RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxUaHlUcmVlRW1pdEV2ZW50PigpO1xuXG4gICAgLyoqXG4gICAgICog5Y+M5Ye7IG5vZGUg5LqL5Lu2XG4gICAgICovXG4gICAgQE91dHB1dCgpIHRoeURibENsaWNrOiBFdmVudEVtaXR0ZXI8VGh5VHJlZUVtaXRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFRoeVRyZWVFbWl0RXZlbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDngrnlh7vlsZXlvIDop6blj5Hkuovku7ZcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5T25FeHBhbmRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxUaHlUcmVlRW1pdEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8VGh5VHJlZUVtaXRFdmVudD4oKTtcblxuICAgIC8qKlxuICAgICAqIOiuvue9riBjaGVjayDpgInmi6nkuovku7ZcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5T25DaGVja2JveENoYW5nZTogRXZlbnRFbWl0dGVyPFRoeVRyZWVFbWl0RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxUaHlUcmVlRW1pdEV2ZW50PigpO1xuXG4gICAgLyoqXG4gICAgICog6K6+572uIGNoaWxkcmVuVHJlZSDnmoTmuLLmn5PmqKHmnb9cbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdjaGlsZHJlblRyZWUnKSBjaGlsZHJlblRyZWVUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKiBUaGUgbmF0aXZlIGA8ZGl2IGNsYXNzPVwidGh5LXRyZWUtbm9kZS13cmFwcGVyIHRoeS1zb3J0YWJsZS1pdGVtXCI+PC9kaXY+YCBlbGVtZW50LiAqL1xuICAgIEBWaWV3Q2hpbGQoJ3RyZWVOb2RlV3JhcHBlcicsIHsgc3RhdGljOiB0cnVlIH0pIHRyZWVOb2RlV3JhcHBlcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRoeS10cmVlLW5vZGUnKSB0aHlUcmVlTm9kZUNsYXNzID0gdHJ1ZTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBpdGVtQ2xhc3M6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOW8gOWQr+iZmuaLn+a7muWKqOaXtu+8jOWNleihjOiKgueCueeahOmrmOW6pu+8jOW9k2B0aHlTaXplYOS4umBkZWZhdWx0YOaXtu+8jOivpeWPguaVsOaJjeeUn+aViFxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRoeUl0ZW1TaXplID0gNDQ7XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7oioLngrnnvKnov5vot53nprvvvIznvKnov5vot53nprsgPSB0aHlJbmRlbnQgKiBub2RlLmxldmVsXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgdGh5SW5kZW50ID0gMjU7XG5cbiAgICBwdWJsaWMgZ2V0IG5vZGVJY29uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ub2RlLm9yaWdpbi5pY29uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbm9kZUljb25TdHlsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubm9kZS5vcmlnaW4uaWNvblN0eWxlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgY2hlY2tTdGF0ZSA9IFRoeVRyZWVOb2RlQ2hlY2tTdGF0ZTtcblxuICAgIHB1YmxpYyBjbGlja05vZGUoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLm5vZGUuaXNEaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5leHBhbmROb2RlKGV2ZW50KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRoeUNoZWNrYWJsZSAmJiB0aGlzLnRoeUNsaWNrQmVoYXZpb3IgPT09ICdzZWxlY3RDaGVja2JveCcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsaWNrTm9kZUNoZWNrKGV2ZW50KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucm9vdC50aHlNdWx0aXBsZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvb3QudG9nZ2xlVHJlZU5vZGUodGhpcy5ub2RlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvb3Quc2VsZWN0VHJlZU5vZGUodGhpcy5ub2RlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50aHlPbkNsaWNrLmVtaXQoe1xuICAgICAgICAgICAgZXZlbnROYW1lOiAnY2xpY2snLFxuICAgICAgICAgICAgZXZlbnQ6IGV2ZW50LFxuICAgICAgICAgICAgbm9kZTogdGhpcy5ub2RlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBkYkNsaWNrTm9kZShldmVudDogRXZlbnQpIHtcbiAgICAgICAgdGhpcy50aHlEYmxDbGljay5lbWl0KHtcbiAgICAgICAgICAgIGV2ZW50TmFtZTogJ2RiY2xpY2snLFxuICAgICAgICAgICAgZXZlbnQ6IGV2ZW50LFxuICAgICAgICAgICAgbm9kZTogdGhpcy5ub2RlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGlja05vZGVDaGVjayhldmVudDogRXZlbnQpIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGlmICh0aGlzLm5vZGUuaXNDaGVja2VkID09PSBUaHlUcmVlTm9kZUNoZWNrU3RhdGUudW5jaGVja2VkKSB7XG4gICAgICAgICAgICB0aGlzLm5vZGUuc2V0Q2hlY2tlZCh0cnVlKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm5vZGUuaXNDaGVja2VkID09PSBUaHlUcmVlTm9kZUNoZWNrU3RhdGUuY2hlY2tlZCkge1xuICAgICAgICAgICAgdGhpcy5ub2RlLnNldENoZWNrZWQoZmFsc2UpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubm9kZS5pc0NoZWNrZWQgPT09IFRoeVRyZWVOb2RlQ2hlY2tTdGF0ZS5pbmRldGVybWluYXRlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5ub2RlLmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhY3RpdmVDaGlsZHJlbiA9IHRoaXMubm9kZS5jaGlsZHJlbi5maWx0ZXIoaXRlbSA9PiAhaXRlbS5pc0Rpc2FibGVkKTtcbiAgICAgICAgICAgICAgICBjb25zdCBpc0FsbEFjdGl2ZUNoaWxkcmVuQ2hlY2tlZCA9IGFjdGl2ZUNoaWxkcmVuLmV2ZXJ5KGl0ZW0gPT4gaXRlbS5pc0NoZWNrZWQpO1xuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5zZXRDaGVja2VkKCFpc0FsbEFjdGl2ZUNoaWxkcmVuQ2hlY2tlZCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5zZXRDaGVja2VkKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMudGh5T25DaGVja2JveENoYW5nZS5lbWl0KHtcbiAgICAgICAgICAgIGV2ZW50TmFtZTogJ2NoZWNrYm94Q2hhbmdlJyxcbiAgICAgICAgICAgIGV2ZW50OiBldmVudCxcbiAgICAgICAgICAgIG5vZGU6IHRoaXMubm9kZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZXhwYW5kTm9kZShldmVudDogRXZlbnQpIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMubm9kZS5zZXRFeHBhbmRlZCghdGhpcy5ub2RlLmlzRXhwYW5kZWQpO1xuICAgICAgICBpZiAodGhpcy5yb290LnRoeVNob3dFeHBhbmQpIHtcbiAgICAgICAgICAgIHRoaXMudGh5T25FeHBhbmRDaGFuZ2UuZW1pdCh7XG4gICAgICAgICAgICAgICAgZXZlbnROYW1lOiAnZXhwYW5kJyxcbiAgICAgICAgICAgICAgICBldmVudDogZXZlbnQsXG4gICAgICAgICAgICAgICAgbm9kZTogdGhpcy5ub2RlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmICh0aGlzLnRoeUFzeW5jICYmIHRoaXMubm9kZS5jaGlsZHJlbi5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUuc2V0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBpc1Nob3dFeHBhbmQobm9kZTogVGh5VHJlZU5vZGUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucm9vdC5pc1Nob3dFeHBhbmQobm9kZSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXRlbUNsYXNzID0gdGhpcy5ub2RlPy5pdGVtQ2xhc3M/LmpvaW4oJyAnKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzLm5vZGUgJiYgIWNoYW5nZXMubm9kZS5pc0ZpcnN0Q2hhbmdlKCkpIHtcbiAgICAgICAgICAgIHRoaXMuaXRlbUNsYXNzID0gY2hhbmdlcz8ubm9kZT8uY3VycmVudFZhbHVlLml0ZW1DbGFzcz8uam9pbignICcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAjdHJlZU5vZGVXcmFwcGVyXG4gIGNsYXNzPVwidGh5LXRyZWUtbm9kZS13cmFwcGVyXCJcbiAgW2NsYXNzLmFjdGl2ZV09XCJyb290LmlzU2VsZWN0ZWQobm9kZSlcIlxuICBbY2xhc3MuZGlzYWJsZWRdPVwibm9kZS5pc0Rpc2FibGVkXCJcbiAgW2NsYXNzLmV4cGFuZF09XCJub2RlLmNoaWxkcmVuLmxlbmd0aFwiXG4gIFtzdHlsZS5oZWlnaHRdPVwidGh5SXRlbVNpemUgKyAncHgnXCJcbiAgKGNsaWNrKT1cImNsaWNrTm9kZSgkZXZlbnQpXCJcbiAgPlxuICA8c3BhbiBjbGFzcz1cInRoeS10cmVlLWluZGV4XCIgW3N0eWxlLndpZHRoLnB4XT1cIm5vZGUubGV2ZWwgKiB0aHlJbmRlbnRcIj48L3NwYW4+XG4gIDxzcGFuICBjbGFzcz1cInRoeS10cmVlLWRyYWctaWNvblwiPlxuICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cImRyYWdcIj48L3RoeS1pY29uPlxuICA8L3NwYW4+XG4gIDxzcGFuIGNsYXNzPVwidGh5LXRyZWUtZXhwYW5kXCIgKGNsaWNrKT1cImV4cGFuZE5vZGUoJGV2ZW50KVwiPlxuICAgIEBpZiAoaXNTaG93RXhwYW5kKG5vZGUpKSB7XG4gICAgICBAaWYgKChub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMCkgfHwgdGh5QXN5bmMgfHwgZW1wdHlDaGlsZHJlblRlbXBsYXRlUmVmKSB7XG4gICAgICAgIEBpZiAocm9vdC50aHlJY29ucz8uZXhwYW5kICYmIHJvb3QudGh5SWNvbnM/LmNvbGxhcHNlKSB7XG4gICAgICAgICAgPHRoeS1pY29uXG4gICAgICAgICAgICBjbGFzcz1cInRoeS10cmVlLWV4cGFuZC1pY29uXCJcbiAgICAgICAgICAgIFt0aHlJY29uTmFtZV09XCJub2RlLmlzRXhwYW5kZWQgPyByb290LnRoeUljb25zLmV4cGFuZCA6IHJvb3QudGh5SWNvbnMuY29sbGFwc2VcIlxuICAgICAgICAgID48L3RoeS1pY29uPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8dGh5LWljb24gY2xhc3M9XCJ0aHktdHJlZS1leHBhbmQtaWNvblwiIFtjbGFzcy5jb2xsYXBzZV09XCIhbm9kZS5pc0V4cGFuZGVkXCIgdGh5SWNvbk5hbWU9XCJjYXJldC1yaWdodC1kb3duXCI+PC90aHktaWNvbj5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgPC9zcGFuPlxuXG4gIDxzcGFuIGNsYXNzPVwidGh5LXRyZWUtbm9kZS1jb250ZW50XCIgKGRibGNsaWNrKT1cImRiQ2xpY2tOb2RlKCRldmVudClcIj5cbiAgICBAaWYgKHRoeUNoZWNrYWJsZSkge1xuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgIGNsYXNzPVwidGh5LXRyZWUtbm9kZS1jaGVja1wiXG4gICAgICAgIFtjbGFzcy5mb3JtLWNoZWNrLWluZGV0ZXJtaW5hdGVdPVwibm9kZS5pc0NoZWNrZWQgPT09IGNoZWNrU3RhdGUuaW5kZXRlcm1pbmF0ZVwiXG4gICAgICAgIFtjbGFzcy5mb3JtLXVuY2hlY2tlZF09XCJub2RlLmlzQ2hlY2tlZCA9PT0gY2hlY2tTdGF0ZS51bmNoZWNrZWRcIlxuICAgICAgICBbY2hlY2tlZF09XCJub2RlLmlzQ2hlY2tlZCA9PT0gY2hlY2tTdGF0ZS5jaGVja2VkXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIm5vZGUuaXNEaXNhYmxlZFwiXG4gICAgICAgIChjbGljayk9XCJjbGlja05vZGVDaGVjaygkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICB9XG4gICAgQGlmICghdGVtcGxhdGVSZWYpIHtcbiAgICAgIEBpZiAobm9kZUljb24pIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aHktdHJlZS1ub2RlLWljb25cIj4gPGkgW25nQ2xhc3NdPVwibm9kZUljb25cIiBbbmdTdHlsZV09XCJub2RlSWNvblN0eWxlXCI+PC9pPjwvc3Bhbj5cbiAgICAgIH1cbiAgICAgIDxzcGFuIFt0aXRsZV09XCJub2RlLnRpdGxlXCIgY2xhc3M9XCJ0aHktdHJlZS1ub2RlLXRpdGxlXCIgW2NsYXNzLnRydW5jYXRlXT1cInRoeVRpdGxlVHJ1bmNhdGVcIj4ge3sgbm9kZS50aXRsZSB9fTwvc3Bhbj5cbiAgICB9XG4gICAgQGlmICh0ZW1wbGF0ZVJlZikge1xuICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlUmVmXCJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBub2RlLCBub2RlOiBub2RlLCBvcmlnaW46IG5vZGU/Lm9yaWdpbiB9XCJcbiAgICAgID48L25nLXRlbXBsYXRlPlxuICAgIH1cbiAgPC9zcGFuPlxuPC9kaXY+XG5AaWYgKHRoeUFzeW5jKSB7XG4gIEBpZiAobm9kZS5pc0xvYWRpbmcpIHtcbiAgICA8dGh5LWxvYWRpbmcgW3RoeURvbmVdPVwiIW5vZGUuaXNMb2FkaW5nXCI+PC90aHktbG9hZGluZz5cbiAgfVxufVxuIl19