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
@@ -1,5 +1,5 @@
1
- import { NgClass, NgIf, NgStyle, NgTemplateOutlet } from '@angular/common';
2
- import { Component, Directive, ElementRef, EventEmitter, Host, HostBinding, HostListener, Input, Optional, Output, TemplateRef, inject, numberAttribute } from '@angular/core';
1
+ import { NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';
2
+ import { Component, Directive, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output, TemplateRef, inject, numberAttribute } from '@angular/core';
3
3
  import { ThyHotkeyDispatcher } from '@tethys/cdk/hotkey';
4
4
  import { isMacPlatform } from '@tethys/cdk/is';
5
5
  import { ThyIcon } from 'ngx-tethys/icon';
@@ -8,8 +8,6 @@ import { ThyTooltipDirective } from 'ngx-tethys/tooltip';
8
8
  import { ThyLayoutDirective } from './layout.component';
9
9
  import { coerceBooleanProperty } from 'ngx-tethys/util';
10
10
  import * as i0 from "@angular/core";
11
- import * as i1 from "./layout.component";
12
- import * as i2 from "@tethys/cdk/hotkey";
13
11
  const LG_WIDTH = 300;
14
12
  const SIDEBAR_DEFAULT_WIDTH = 240;
15
13
  const SIDEBAR_COLLAPSED_WIDTH = 20;
@@ -19,6 +17,15 @@ const SIDEBAR_COLLAPSED_WIDTH = 20;
19
17
  * @order 20
20
18
  */
21
19
  export class ThySidebarDirective {
20
+ constructor() {
21
+ this.thyLayoutDirective = inject(ThyLayoutDirective, { optional: true, host: true });
22
+ this.sidebarIsolated = false;
23
+ this.isDivided = true;
24
+ /**
25
+ * sidebar 位置,默认在左侧
26
+ */
27
+ this.thyDirection = 'left';
28
+ }
22
29
  /**
23
30
  * 宽度,默认是 240px,传入 `lg` 大小时宽度是300px
24
31
  * @default 240px
@@ -59,15 +66,6 @@ export class ThySidebarDirective {
59
66
  set thyHasBorderLeft(value) {
60
67
  this.thyDivided = value;
61
68
  }
62
- constructor(thyLayoutDirective) {
63
- this.thyLayoutDirective = thyLayoutDirective;
64
- this.sidebarIsolated = false;
65
- this.isDivided = true;
66
- /**
67
- * sidebar 位置,默认在左侧
68
- */
69
- this.thyDirection = 'left';
70
- }
71
69
  ngOnInit() {
72
70
  if (this.thyLayoutDirective) {
73
71
  this.thyLayoutDirective.hasSidebar = true;
@@ -76,7 +74,7 @@ export class ThySidebarDirective {
76
74
  this.thyLayoutDirective.isSidebarRight = true;
77
75
  }
78
76
  }
79
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThySidebarDirective, deps: [{ token: i1.ThyLayoutDirective, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
77
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThySidebarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
80
78
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.0", type: ThySidebarDirective, isStandalone: true, selector: "[thySidebar]", inputs: { thyDirection: "thyDirection", thyTheme: "thyTheme", thyWidth: "thyWidth", thyIsolated: ["thyIsolated", "thyIsolated", coerceBooleanProperty], thyDivided: ["thyDivided", "thyDivided", coerceBooleanProperty], thyHasBorderRight: ["thyHasBorderRight", "thyHasBorderRight", coerceBooleanProperty], thyHasBorderLeft: ["thyHasBorderLeft", "thyHasBorderLeft", coerceBooleanProperty] }, host: { properties: { "class.thy-layout-sidebar-right": "thyDirection === \"right\"", "class.thy-layout-sidebar--clear-border-right": "thyDirection === \"left\" && !isDivided", "class.thy-layout-sidebar--clear-border-left": "thyDirection === \"right\" && !isDivided", "class.sidebar-theme-light": "thyTheme === \"light\"", "class.sidebar-theme-dark": "thyTheme === \"dark\"", "class.thy-layout-sidebar-isolated": "sidebarIsolated", "style.width.px": "this.thyLayoutSidebarWidth" }, classAttribute: "thy-layout-sidebar" }, ngImport: i0 }); }
81
79
  }
82
80
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThySidebarDirective, decorators: [{
@@ -94,11 +92,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
94
92
  },
95
93
  standalone: true
96
94
  }]
97
- }], ctorParameters: () => [{ type: i1.ThyLayoutDirective, decorators: [{
98
- type: Optional
99
- }, {
100
- type: Host
101
- }] }], propDecorators: { thyLayoutSidebarWidth: [{
95
+ }], propDecorators: { thyLayoutSidebarWidth: [{
102
96
  type: HostBinding,
103
97
  args: ['style.width.px']
104
98
  }], thyDirection: [{
@@ -127,6 +121,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
127
121
  * @order 21
128
122
  */
129
123
  export class ThySidebar {
124
+ constructor() {
125
+ this.elementRef = inject(ElementRef);
126
+ this.hotkeyDispatcher = inject(ThyHotkeyDispatcher);
127
+ this.sidebarDirective = inject(ThySidebarDirective);
128
+ /**
129
+ * 宽度是否可以拖拽
130
+ * @default false
131
+ */
132
+ this.thyDraggable = false;
133
+ /**
134
+ * 展示收起的触发器自定义模板,默认显示展开收起的圆形图标,设置为 null 表示不展示触发元素,手动控制展开收起状态
135
+ * @type null | undefined | TemplateRef<any>
136
+ * @default undefined
137
+ */
138
+ this.thyTrigger = undefined;
139
+ /**
140
+ * 收起状态改变后的事件
141
+ */
142
+ this.thyCollapsedChange = new EventEmitter();
143
+ /**
144
+ * 拖拽宽度的修改事件
145
+ */
146
+ this.thyDragWidthChange = new EventEmitter();
147
+ /**
148
+ * 收起后的宽度
149
+ */
150
+ this.thyCollapsedWidth = SIDEBAR_COLLAPSED_WIDTH;
151
+ this.isCollapsed = false;
152
+ this.originWidth = SIDEBAR_DEFAULT_WIDTH;
153
+ }
130
154
  get sidebarWidth() {
131
155
  if (this.thyCollapsible && this.thyCollapsed) {
132
156
  return this.thyCollapsedWidth;
@@ -176,36 +200,6 @@ export class ThySidebar {
176
200
  get dragMinWidth() {
177
201
  return this.thyDragMinWidth || this.thyCollapsedWidth;
178
202
  }
179
- constructor(elementRef, hotkeyDispatcher) {
180
- this.elementRef = elementRef;
181
- this.hotkeyDispatcher = hotkeyDispatcher;
182
- this.sidebarDirective = inject(ThySidebarDirective);
183
- /**
184
- * 宽度是否可以拖拽
185
- * @default false
186
- */
187
- this.thyDraggable = false;
188
- /**
189
- * 展示收起的触发器自定义模板,默认显示展开收起的圆形图标,设置为 null 表示不展示触发元素,手动控制展开收起状态
190
- * @type null | undefined | TemplateRef<any>
191
- * @default undefined
192
- */
193
- this.thyTrigger = undefined;
194
- /**
195
- * 收起状态改变后的事件
196
- */
197
- this.thyCollapsedChange = new EventEmitter();
198
- /**
199
- * 拖拽宽度的修改事件
200
- */
201
- this.thyDragWidthChange = new EventEmitter();
202
- /**
203
- * 收起后的宽度
204
- */
205
- this.thyCollapsedWidth = SIDEBAR_COLLAPSED_WIDTH;
206
- this.isCollapsed = false;
207
- this.originWidth = SIDEBAR_DEFAULT_WIDTH;
208
- }
209
203
  ngOnInit() {
210
204
  this.updateCollapseTip();
211
205
  }
@@ -266,43 +260,48 @@ export class ThySidebar {
266
260
  ngOnDestroy() {
267
261
  this.hotkeySubscription?.unsubscribe();
268
262
  }
269
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThySidebar, deps: [{ token: i0.ElementRef }, { token: i2.ThyHotkeyDispatcher }], target: i0.ɵɵFactoryTarget.Component }); }
270
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.0", type: ThySidebar, isStandalone: true, selector: "thy-sidebar", inputs: { thyDraggable: ["thyDraggable", "thyDraggable", coerceBooleanProperty], thyDragMaxWidth: ["thyDragMaxWidth", "thyDragMaxWidth", numberAttribute], thyDragMinWidth: ["thyDragMinWidth", "thyDragMinWidth", numberAttribute], thyTrigger: "thyTrigger", thyCollapsible: ["thyCollapsible", "thyCollapsible", coerceBooleanProperty], thyCollapsed: ["thyCollapsed", "thyCollapsed", coerceBooleanProperty], thyCollapsedWidth: ["thyCollapsedWidth", "thyCollapsedWidth", numberAttribute], thyDefaultWidth: "thyDefaultWidth" }, outputs: { thyCollapsedChange: "thyCollapsedChange", thyDragWidthChange: "thyDragWidthChange" }, host: { listeners: { "mouseenter": "mouseenter($event)", "mouseleave": "mouseleave($event)" }, properties: { "style.width.px": "this.sidebarWidth", "class.sidebar-collapse-show": "this.collapseVisibility", "class.remove-transition": "this.removeTransition" } }, hostDirectives: [{ directive: ThySidebarDirective, inputs: ["thyTheme", "thyTheme", "thyDirection", "thyDirection", "thyWidth", "thyWidth", "thyIsolated", "thyIsolated", "thyDivided", "thyDivided", "thyHasBorderLeft", "thyHasBorderLeft", "thyHasBorderRight", "thyHasBorderRight"] }], ngImport: i0, template: `
263
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThySidebar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
264
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThySidebar, isStandalone: true, selector: "thy-sidebar", inputs: { thyDraggable: ["thyDraggable", "thyDraggable", coerceBooleanProperty], thyDragMaxWidth: ["thyDragMaxWidth", "thyDragMaxWidth", numberAttribute], thyDragMinWidth: ["thyDragMinWidth", "thyDragMinWidth", numberAttribute], thyTrigger: "thyTrigger", thyCollapsible: ["thyCollapsible", "thyCollapsible", coerceBooleanProperty], thyCollapsed: ["thyCollapsed", "thyCollapsed", coerceBooleanProperty], thyCollapsedWidth: ["thyCollapsedWidth", "thyCollapsedWidth", numberAttribute], thyDefaultWidth: "thyDefaultWidth" }, outputs: { thyCollapsedChange: "thyCollapsedChange", thyDragWidthChange: "thyDragWidthChange" }, host: { listeners: { "mouseenter": "mouseenter($event)", "mouseleave": "mouseleave($event)" }, properties: { "style.width.px": "this.sidebarWidth", "class.sidebar-collapse-show": "this.collapseVisibility", "class.remove-transition": "this.removeTransition" } }, hostDirectives: [{ directive: ThySidebarDirective, inputs: ["thyTheme", "thyTheme", "thyDirection", "thyDirection", "thyWidth", "thyWidth", "thyIsolated", "thyIsolated", "thyDivided", "thyDivided", "thyHasBorderLeft", "thyHasBorderLeft", "thyHasBorderRight", "thyHasBorderRight"] }], ngImport: i0, template: `
271
265
  <ng-content></ng-content>
272
- <div
273
- thyResizable
274
- class="sidebar-drag"
275
- *ngIf="thyDraggable"
276
- thyBounds="window"
277
- [thyMaxWidth]="thyDragMaxWidth"
278
- [thyMinWidth]="dragMinWidth"
279
- (thyResize)="resizeHandler($event)"
280
- (thyResizeStart)="resizeStart()"
281
- (thyResizeEnd)="resizeEnd()"
282
- [style.display]="!isResizable ? 'contents' : null">
283
- <thy-resize-handle
284
- *ngIf="!thyCollapsed"
285
- [thyDirection]="sidebarDirective.thyDirection === 'right' ? 'left' : 'right'"
286
- class="sidebar-resize-handle"
287
- thyLine="true"
288
- (mouseenter)="toggleResizable($event, 'enter')"
289
- (mouseleave)="toggleResizable($event, 'leave')"
290
- (dblclick)="restoreToDefaultWidth()">
291
- </thy-resize-handle>
292
- </div>
293
- <div *ngIf="thyCollapsible" class="sidebar-collapse-line"></div>
294
- <div
295
- *ngIf="thyCollapsible && thyTrigger !== null"
296
- class="sidebar-collapse"
297
- [ngClass]="{ 'collapse-visible': collapseVisible, 'collapse-hidden': collapseHidden }"
298
- (click)="toggleCollapse($event)"
299
- [thyTooltip]="!thyTrigger && collapseTip">
300
- <ng-template [ngTemplateOutlet]="thyTrigger || defaultTrigger"></ng-template>
301
- <ng-template #defaultTrigger>
302
- <thy-icon class="sidebar-collapse-icon" [thyIconName]="this.thyCollapsed ? 'indent' : 'outdent'"></thy-icon>
303
- </ng-template>
304
- </div>
305
- `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyResizeHandle, selector: "thy-resize-handle, [thy-resize-handle]", inputs: ["thyDirection", "thyLine"], outputs: ["thyMouseDown"], exportAs: ["thyResizeHandle"] }, { kind: "directive", type: ThyResizableDirective, selector: "[thyResizable]", inputs: ["thyBounds", "thyMaxHeight", "thyMaxWidth", "thyMinHeight", "thyMinWidth", "thyGridColumnCount", "thyMaxColumn", "thyMinColumn", "thyLockAspectRatio", "thyPreview", "thyDisabled"], outputs: ["thyResize", "thyResizeStart", "thyResizeEnd"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
266
+ @if (thyDraggable) {
267
+ <div
268
+ thyResizable
269
+ class="sidebar-drag"
270
+ thyBounds="window"
271
+ [thyMaxWidth]="thyDragMaxWidth"
272
+ [thyMinWidth]="dragMinWidth"
273
+ (thyResize)="resizeHandler($event)"
274
+ (thyResizeStart)="resizeStart()"
275
+ (thyResizeEnd)="resizeEnd()"
276
+ [style.display]="!isResizable ? 'contents' : null">
277
+ @if (!thyCollapsed) {
278
+ <thy-resize-handle
279
+ [thyDirection]="sidebarDirective.thyDirection === 'right' ? 'left' : 'right'"
280
+ class="sidebar-resize-handle"
281
+ thyLine="true"
282
+ (mouseenter)="toggleResizable($event, 'enter')"
283
+ (mouseleave)="toggleResizable($event, 'leave')"
284
+ (dblclick)="restoreToDefaultWidth()">
285
+ </thy-resize-handle>
286
+ }
287
+ </div>
288
+ }
289
+ @if (thyCollapsible) {
290
+ <div class="sidebar-collapse-line"></div>
291
+ }
292
+ @if (thyCollapsible && thyTrigger !== null) {
293
+ <div
294
+ class="sidebar-collapse"
295
+ [ngClass]="{ 'collapse-visible': collapseVisible, 'collapse-hidden': collapseHidden }"
296
+ (click)="toggleCollapse($event)"
297
+ [thyTooltip]="!thyTrigger && collapseTip">
298
+ <ng-template [ngTemplateOutlet]="thyTrigger || defaultTrigger"></ng-template>
299
+ <ng-template #defaultTrigger>
300
+ <thy-icon class="sidebar-collapse-icon" [thyIconName]="this.thyCollapsed ? 'indent' : 'outdent'"></thy-icon>
301
+ </ng-template>
302
+ </div>
303
+ }
304
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyResizeHandle, selector: "thy-resize-handle, [thy-resize-handle]", inputs: ["thyDirection", "thyLine"], outputs: ["thyMouseDown"], exportAs: ["thyResizeHandle"] }, { kind: "directive", type: ThyResizableDirective, selector: "[thyResizable]", inputs: ["thyBounds", "thyMaxHeight", "thyMaxWidth", "thyMinHeight", "thyMinWidth", "thyGridColumnCount", "thyMaxColumn", "thyMinColumn", "thyLockAspectRatio", "thyPreview", "thyDisabled"], outputs: ["thyResize", "thyResizeStart", "thyResizeEnd"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
306
305
  }
307
306
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThySidebar, decorators: [{
308
307
  type: Component,
@@ -311,39 +310,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
311
310
  preserveWhitespaces: false,
312
311
  template: `
313
312
  <ng-content></ng-content>
314
- <div
315
- thyResizable
316
- class="sidebar-drag"
317
- *ngIf="thyDraggable"
318
- thyBounds="window"
319
- [thyMaxWidth]="thyDragMaxWidth"
320
- [thyMinWidth]="dragMinWidth"
321
- (thyResize)="resizeHandler($event)"
322
- (thyResizeStart)="resizeStart()"
323
- (thyResizeEnd)="resizeEnd()"
324
- [style.display]="!isResizable ? 'contents' : null">
325
- <thy-resize-handle
326
- *ngIf="!thyCollapsed"
327
- [thyDirection]="sidebarDirective.thyDirection === 'right' ? 'left' : 'right'"
328
- class="sidebar-resize-handle"
329
- thyLine="true"
330
- (mouseenter)="toggleResizable($event, 'enter')"
331
- (mouseleave)="toggleResizable($event, 'leave')"
332
- (dblclick)="restoreToDefaultWidth()">
333
- </thy-resize-handle>
334
- </div>
335
- <div *ngIf="thyCollapsible" class="sidebar-collapse-line"></div>
336
- <div
337
- *ngIf="thyCollapsible && thyTrigger !== null"
338
- class="sidebar-collapse"
339
- [ngClass]="{ 'collapse-visible': collapseVisible, 'collapse-hidden': collapseHidden }"
340
- (click)="toggleCollapse($event)"
341
- [thyTooltip]="!thyTrigger && collapseTip">
342
- <ng-template [ngTemplateOutlet]="thyTrigger || defaultTrigger"></ng-template>
343
- <ng-template #defaultTrigger>
344
- <thy-icon class="sidebar-collapse-icon" [thyIconName]="this.thyCollapsed ? 'indent' : 'outdent'"></thy-icon>
345
- </ng-template>
346
- </div>
313
+ @if (thyDraggable) {
314
+ <div
315
+ thyResizable
316
+ class="sidebar-drag"
317
+ thyBounds="window"
318
+ [thyMaxWidth]="thyDragMaxWidth"
319
+ [thyMinWidth]="dragMinWidth"
320
+ (thyResize)="resizeHandler($event)"
321
+ (thyResizeStart)="resizeStart()"
322
+ (thyResizeEnd)="resizeEnd()"
323
+ [style.display]="!isResizable ? 'contents' : null">
324
+ @if (!thyCollapsed) {
325
+ <thy-resize-handle
326
+ [thyDirection]="sidebarDirective.thyDirection === 'right' ? 'left' : 'right'"
327
+ class="sidebar-resize-handle"
328
+ thyLine="true"
329
+ (mouseenter)="toggleResizable($event, 'enter')"
330
+ (mouseleave)="toggleResizable($event, 'leave')"
331
+ (dblclick)="restoreToDefaultWidth()">
332
+ </thy-resize-handle>
333
+ }
334
+ </div>
335
+ }
336
+ @if (thyCollapsible) {
337
+ <div class="sidebar-collapse-line"></div>
338
+ }
339
+ @if (thyCollapsible && thyTrigger !== null) {
340
+ <div
341
+ class="sidebar-collapse"
342
+ [ngClass]="{ 'collapse-visible': collapseVisible, 'collapse-hidden': collapseHidden }"
343
+ (click)="toggleCollapse($event)"
344
+ [thyTooltip]="!thyTrigger && collapseTip">
345
+ <ng-template [ngTemplateOutlet]="thyTrigger || defaultTrigger"></ng-template>
346
+ <ng-template #defaultTrigger>
347
+ <thy-icon class="sidebar-collapse-icon" [thyIconName]="this.thyCollapsed ? 'indent' : 'outdent'"></thy-icon>
348
+ </ng-template>
349
+ </div>
350
+ }
347
351
  `,
348
352
  hostDirectives: [
349
353
  {
@@ -352,9 +356,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
352
356
  }
353
357
  ],
354
358
  standalone: true,
355
- imports: [NgTemplateOutlet, NgIf, ThyResizeHandle, ThyResizableDirective, ThyIcon, ThyTooltipDirective, NgClass, NgStyle]
359
+ imports: [NgTemplateOutlet, ThyResizeHandle, ThyResizableDirective, ThyIcon, ThyTooltipDirective, NgClass, NgStyle]
356
360
  }]
357
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i2.ThyHotkeyDispatcher }], propDecorators: { sidebarWidth: [{
361
+ }], propDecorators: { sidebarWidth: [{
358
362
  type: HostBinding,
359
363
  args: ['style.width.px']
360
364
  }], mouseenter: [{
@@ -396,4 +400,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
396
400
  type: HostBinding,
397
401
  args: ['class.remove-transition']
398
402
  }] } });
399
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGF5b3V0L3NpZGViYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNFLE9BQU8sRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osSUFBSSxFQUNKLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sV0FBVyxFQUNYLE1BQU0sRUFDTixlQUFlLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLHFCQUFxQixFQUFrQixlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUV4RCxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUM7QUFDckIsTUFBTSxxQkFBcUIsR0FBRyxHQUFHLENBQUM7QUFDbEMsTUFBTSx1QkFBdUIsR0FBRyxFQUFFLENBQUM7QUFNbkM7Ozs7R0FJRztBQWNILE1BQU0sT0FBTyxtQkFBbUI7SUFtQjVCOzs7T0FHRztJQUNILElBQ0ksUUFBUSxDQUFDLEtBQXNCO1FBQy9CLElBQUksS0FBSyxLQUFLLElBQUks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RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQWlCTSxZQUFZO3NCQUE1RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQVdKLGlCQUFpQjtzQkFBdkQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBSzVCLGVBQWU7c0JBQXZCLEtBQUs7Z0JBR0Ysa0JBQWtCO3NCQURyQixXQUFXO3VCQUFDLDZCQUE2QjtnQkFNdEMsZ0JBQWdCO3NCQURuQixXQUFXO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MsIE5nSWYsIE5nU3R5bGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3QsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIGluamVjdCxcbiAgICBudW1iZXJBdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlIb3RrZXlEaXNwYXRjaGVyIH0gZnJvbSAnQHRldGh5cy9jZGsvaG90a2V5JztcbmltcG9ydCB7IGlzTWFjUGxhdGZvcm0gfSBmcm9tICdAdGV0aHlzL2Nkay9pcyc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IFRoeVJlc2l6YWJsZURpcmVjdGl2ZSwgVGh5UmVzaXplRXZlbnQsIFRoeVJlc2l6ZUhhbmRsZSB9IGZyb20gJ25neC10ZXRoeXMvcmVzaXphYmxlJztcbmltcG9ydCB7IFRoeVRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUaHlMYXlvdXREaXJlY3RpdmUgfSBmcm9tICcuL2xheW91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcblxuY29uc3QgTEdfV0lEVEggPSAzMDA7XG5jb25zdCBTSURFQkFSX0RFRkFVTFRfV0lEVEggPSAyNDA7XG5jb25zdCBTSURFQkFSX0NPTExBUFNFRF9XSURUSCA9IDIwO1xuXG5leHBvcnQgdHlwZSBUaHlTaWRlYmFyVGhlbWUgPSAnd2hpdGUnIHwgJ2xpZ2h0JyB8ICdkYXJrJztcblxuZXhwb3J0IHR5cGUgVGh5U2lkZWJhckRpcmVjdGlvbiA9ICdsZWZ0JyB8ICdyaWdodCc7XG5cbi8qKlxuICog5L6n6L655qCP5biD5bGA5oyH5LukXG4gKiBAbmFtZSB0aHlTaWRlYmFyXG4gKiBAb3JkZXIgMjBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdGh5U2lkZWJhcl0nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktbGF5b3V0LXNpZGViYXInLFxuICAgICAgICAnW2NsYXNzLnRoeS1sYXlvdXQtc2lkZWJhci1yaWdodF0nOiAndGh5RGlyZWN0aW9uID09PSBcInJpZ2h0XCInLFxuICAgICAgICAnW2NsYXNzLnRoeS1sYXlvdXQtc2lkZWJhci0tY2xlYXItYm9yZGVyLXJpZ2h0XSc6ICd0aHlEaXJlY3Rpb24gPT09IFwibGVmdFwiICYmICFpc0RpdmlkZWQnLFxuICAgICAgICAnW2NsYXNzLnRoeS1sYXlvdXQtc2lkZWJhci0tY2xlYXItYm9yZGVyLWxlZnRdJzogJ3RoeURpcmVjdGlvbiA9PT0gXCJyaWdodFwiICYmICFpc0RpdmlkZWQnLFxuICAgICAgICAnW2NsYXNzLnNpZGViYXItdGhlbWUtbGlnaHRdJzogJ3RoeVRoZW1lID09PSBcImxpZ2h0XCInLFxuICAgICAgICAnW2NsYXNzLnNpZGViYXItdGhlbWUtZGFya10nOiAndGh5VGhlbWUgPT09IFwiZGFya1wiJyxcbiAgICAgICAgJ1tjbGFzcy50aHktbGF5b3V0LXNpZGViYXItaXNvbGF0ZWRdJzogJ3NpZGViYXJJc29sYXRlZCdcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVGh5U2lkZWJhckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgc2lkZWJhcklzb2xhdGVkID0gZmFsc2U7XG5cbiAgICBpc0RpdmlkZWQgPSB0cnVlO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS53aWR0aC5weCcpIHRoeUxheW91dFNpZGViYXJXaWR0aDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogc2lkZWJhciDkvY3nva7vvIzpu5jorqTlnKjlt6bkvqdcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlEaXJlY3Rpb246IFRoeVNpZGViYXJEaXJlY3Rpb24gPSAnbGVmdCc7XG5cbiAgICAvKipcbiAgICAgKiDkuLvpophcbiAgICAgKiBAdHlwZSB3aGl0ZSB8IGxpZ2h0IHwgZGFya1xuICAgICAqIEBkZWZhdWx0IHdoaXRlXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5VGhlbWU6IFRoeVNpZGViYXJUaGVtZTtcblxuICAgIC8qKlxuICAgICAqIOWuveW6pu+8jOm7mOiupOaYryAyNDBweO+8jOS8oOWFpSBgbGdgIOWkp+Wwj+aXtuWuveW6puaYrzMwMHB4XG4gICAgICogQGRlZmF1bHQgMjQwcHhcbiAgICAgKi9cbiAgICBASW5wdXQoJ3RoeVdpZHRoJylcbiAgICBzZXQgdGh5V2lkdGgodmFsdWU6IHN0cmluZyB8IG51bWJlcikge1xuICAgICAgICBpZiAodmFsdWUgPT09ICdsZycpIHtcbiAgICAgICAgICAgIHZhbHVlID0gTEdfV0lEVEg7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50aHlMYXlvdXRTaWRlYmFyV2lkdGggPSAodmFsdWUgYXMgbnVtYmVyKSB8fCBTSURFQkFSX0RFRkFVTFRfV0lEVEg7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5ZKM5Y+z5L6nIC/lt6bkvqfpmpTnprvvvIzlvZPkuLogdHJ1ZSDml7bot53lj7PkvqcgL+W3puS+p+S8muaciSBtYXJnaW7vvIzlkIzml7bovrnmoYbkvJrljrvmjolcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pXG4gICAgc2V0IHRoeUlzb2xhdGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2lkZWJhcklzb2xhdGVkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogc2lkZWJhciDmmK/lkKbmnInliIblibLnur/jgILlvZNgdGh5RGlyZWN0aW9uYOWAvOS4umBsZWZ0YOaXtu+8jOaOp+WItuWPs+S+p+aYr+WQpuacieWIhuWJsue6v++8m+W9k2B0aHlEaXJlY3Rpb25g5YC85Li6YHJpZ2h0YOaXtu+8jOaOp+WItuW3puS+p+aYr+WQpuacieWIhuWJsue6v+OAglxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KVxuICAgIHNldCB0aHlEaXZpZGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuaXNEaXZpZGVkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5Y+z5L6n5piv5ZCm5pyJ6L655qGG77yM5bey5bqf5byD77yM6K+35L2/55SoIHRoeURpdmlkZWRcbiAgICAgKiBAZGVwcmVjYXRlZCBwbGVhc2UgdXNlIHRoeURpdmlkZWRcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSlcbiAgICBzZXQgdGh5SGFzQm9yZGVyUmlnaHQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy50aHlEaXZpZGVkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5bem5L6n5piv5ZCm5pyJ6L655qGG77yM5bey5bqf5byD77yM6K+35L2/55SoIHRoeURpdmlkZWRcbiAgICAgKiBAZGVwcmVjYXRlZCBwbGVhc2UgdXNlIHRoeURpdmlkZWRcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSlcbiAgICBzZXQgdGh5SGFzQm9yZGVyTGVmdCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnRoeURpdmlkZWQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASG9zdCgpIHByaXZhdGUgdGh5TGF5b3V0RGlyZWN0aXZlOiBUaHlMYXlvdXREaXJlY3RpdmUpIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMudGh5TGF5b3V0RGlyZWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLnRoeUxheW91dERpcmVjdGl2ZS5oYXNTaWRlYmFyID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy50aHlEaXJlY3Rpb24gPT09ICdyaWdodCcpIHtcbiAgICAgICAgICAgIHRoaXMudGh5TGF5b3V0RGlyZWN0aXZlLmlzU2lkZWJhclJpZ2h0ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiDkvqfovrnmoI/luIPlsYDnu4Tku7ZcbiAqIEBuYW1lIHRoeS1zaWRlYmFyXG4gKiBAb3JkZXIgMjFcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktc2lkZWJhcicsXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICB0aHlSZXNpemFibGVcbiAgICAgICAgICAgIGNsYXNzPVwic2lkZWJhci1kcmFnXCJcbiAgICAgICAgICAgICpuZ0lmPVwidGh5RHJhZ2dhYmxlXCJcbiAgICAgICAgICAgIHRoeUJvdW5kcz1cIndpbmRvd1wiXG4gICAgICAgICAgICBbdGh5TWF4V2lkdGhdPVwidGh5RHJhZ01heFdpZHRoXCJcbiAgICAgICAgICAgIFt0aHlNaW5XaWR0aF09XCJkcmFnTWluV2lkdGhcIlxuICAgICAgICAgICAgKHRoeVJlc2l6ZSk9XCJyZXNpemVIYW5kbGVyKCRldmVudClcIlxuICAgICAgICAgICAgKHRoeVJlc2l6ZVN0YXJ0KT1cInJlc2l6ZVN0YXJ0KClcIlxuICAgICAgICAgICAgKHRoeVJlc2l6ZUVuZCk9XCJyZXNpemVFbmQoKVwiXG4gICAgICAgICAgICBbc3R5bGUuZGlzcGxheV09XCIhaXNSZXNpemFibGUgPyAnY29udGVudHMnIDogbnVsbFwiPlxuICAgICAgICAgICAgPHRoeS1yZXNpemUtaGFuZGxlXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhdGh5Q29sbGFwc2VkXCJcbiAgICAgICAgICAgICAgICBbdGh5RGlyZWN0aW9uXT1cInNpZGViYXJEaXJlY3RpdmUudGh5RGlyZWN0aW9uID09PSAncmlnaHQnID8gJ2xlZnQnIDogJ3JpZ2h0J1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzaWRlYmFyLXJlc2l6ZS1oYW5kbGVcIlxuICAgICAgICAgICAgICAgIHRoeUxpbmU9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJ0b2dnbGVSZXNpemFibGUoJGV2ZW50LCAnZW50ZXInKVwiXG4gICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwidG9nZ2xlUmVzaXphYmxlKCRldmVudCwgJ2xlYXZlJylcIlxuICAgICAgICAgICAgICAgIChkYmxjbGljayk9XCJyZXN0b3JlVG9EZWZhdWx0V2lkdGgoKVwiPlxuICAgICAgICAgICAgPC90aHktcmVzaXplLWhhbmRsZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJ0aHlDb2xsYXBzaWJsZVwiIGNsYXNzPVwic2lkZWJhci1jb2xsYXBzZS1saW5lXCI+PC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwidGh5Q29sbGFwc2libGUgJiYgdGh5VHJpZ2dlciAhPT0gbnVsbFwiXG4gICAgICAgICAgICBjbGFzcz1cInNpZGViYXItY29sbGFwc2VcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnY29sbGFwc2UtdmlzaWJsZSc6IGNvbGxhcHNlVmlzaWJsZSwgJ2NvbGxhcHNlLWhpZGRlbic6IGNvbGxhcHNlSGlkZGVuIH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUNvbGxhcHNlKCRldmVudClcIlxuICAgICAgICAgICAgW3RoeVRvb2x0aXBdPVwiIXRoeVRyaWdnZXIgJiYgY29sbGFwc2VUaXBcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0aHlUcmlnZ2VyIHx8IGRlZmF1bHRUcmlnZ2VyXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFRyaWdnZXI+XG4gICAgICAgICAgICAgICAgPHRoeS1pY29uIGNsYXNzPVwic2lkZWJhci1jb2xsYXBzZS1pY29uXCIgW3RoeUljb25OYW1lXT1cInRoaXMudGh5Q29sbGFwc2VkID8gJ2luZGVudCcgOiAnb3V0ZGVudCdcIj48L3RoeS1pY29uPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbiAgICBob3N0RGlyZWN0aXZlczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBkaXJlY3RpdmU6IFRoeVNpZGViYXJEaXJlY3RpdmUsXG4gICAgICAgICAgICBpbnB1dHM6IFsndGh5VGhlbWUnLCAndGh5RGlyZWN0aW9uJywgJ3RoeVdpZHRoJywgJ3RoeUlzb2xhdGVkJywgJ3RoeURpdmlkZWQnLCAndGh5SGFzQm9yZGVyTGVmdCcsICd0aHlIYXNCb3JkZXJSaWdodCddXG4gICAgICAgIH1cbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXQsIE5nSWYsIFRoeVJlc2l6ZUhhbmRsZSwgVGh5UmVzaXphYmxlRGlyZWN0aXZlLCBUaHlJY29uLCBUaHlUb29sdGlwRGlyZWN0aXZlLCBOZ0NsYXNzLCBOZ1N0eWxlXVxufSlcbmV4cG9ydCBjbGFzcyBUaHlTaWRlYmFyIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHNpZGViYXJEaXJlY3RpdmUgPSBpbmplY3QoVGh5U2lkZWJhckRpcmVjdGl2ZSk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLndpZHRoLnB4JykgZ2V0IHNpZGViYXJXaWR0aCgpIHtcbiAgICAgICAgaWYgKHRoaXMudGh5Q29sbGFwc2libGUgJiYgdGhpcy50aHlDb2xsYXBzZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRoeUNvbGxhcHNlZFdpZHRoO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2lkZWJhckRpcmVjdGl2ZS50aHlMYXlvdXRTaWRlYmFyV2lkdGg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJywgWyckZXZlbnQnXSlcbiAgICBtb3VzZWVudGVyKCRldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLnJlc2l6ZUhhbmRsZUhvdmVyKCRldmVudCwgJ2VudGVyJyk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScsIFsnJGV2ZW50J10pXG4gICAgbW91c2VsZWF2ZSgkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgdGhpcy5yZXNpemVIYW5kbGVIb3ZlcigkZXZlbnQsICdsZWF2ZScpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWuveW6puaYr+WQpuWPr+S7peaLluaLvVxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgdGh5RHJhZ2dhYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDmi5bmi73nmoTmnIDlpKflrr3luqZcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0aHlEcmFnTWF4V2lkdGg6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIOaLluaLveeahOacgOWwj+WuveW6plxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRoeURyYWdNaW5XaWR0aDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog5bGV56S65pS26LW355qE6Kem5Y+R5Zmo6Ieq5a6a5LmJ5qih5p2/77yM6buY6K6k5pi+56S65bGV5byA5pS26LW355qE5ZyG5b2i5Zu+5qCH77yM6K6+572u5Li6IG51bGwg6KGo56S65LiN5bGV56S66Kem5Y+R5YWD57Sg77yM5omL5Yqo5o6n5Yi25bGV5byA5pS26LW354q25oCBXG4gICAgICogQHR5cGUgbnVsbCB8IHVuZGVmaW5lZCB8IFRlbXBsYXRlUmVmPGFueT5cbiAgICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlUcmlnZ2VyOiBudWxsIHwgdW5kZWZpbmVkIHwgVGVtcGxhdGVSZWY8YW55PiA9IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIOaUtui1t+eKtuaAgeaUueWPmOWQjueahOS6i+S7tlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHRoeUNvbGxhcHNlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKlxuICAgICAqIOaLluaLveWuveW6pueahOS/ruaUueS6i+S7tlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHRoeURyYWdXaWR0aENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgLyoqXG4gICAgICog5byA5ZCv5pS26LW3L+WxleW8gOWKn+iDvVxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgc2V0IHRoeUNvbGxhcHNpYmxlKGNvbGxhcHNpYmxlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuY29sbGFwc2libGUgPSBjb2xsYXBzaWJsZTtcbiAgICAgICAgaWYgKHRoaXMuY29sbGFwc2libGUpIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaWJlSG90a2V5RXZlbnQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaG90a2V5U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IHRoeUNvbGxhcHNpYmxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2xsYXBzaWJsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKbmmK/mlLbotbdcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHNldCB0aHlDb2xsYXBzZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc0NvbGxhcHNlZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCB0aHlDb2xsYXBzZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzQ29sbGFwc2VkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaUtui1t+WQjueahOWuveW6plxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRoeUNvbGxhcHNlZFdpZHRoID0gU0lERUJBUl9DT0xMQVBTRURfV0lEVEg7XG5cbiAgICAvKipcbiAgICAgKiDpu5jorqTlrr3luqbvvIzlj4zlh7vlkI7lj6/mgaLlpI3liLDmraTlrr3luqbvvIzpu5jorqTmmK8gMjQwcHjvvIzkvKDlhaUgbGcg5aSn5bCP5pe25a695bqm5pivMzAwcHhcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlEZWZhdWx0V2lkdGg6IHN0cmluZyB8IG51bWJlcjtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3Muc2lkZWJhci1jb2xsYXBzZS1zaG93JylcbiAgICBnZXQgY29sbGFwc2VWaXNpYmlsaXR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy50aHlDb2xsYXBzZWQ7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5yZW1vdmUtdHJhbnNpdGlvbicpXG4gICAgZ2V0IHJlbW92ZVRyYW5zaXRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzUmVtb3ZlVHJhbnNpdGlvbjtcbiAgICB9XG5cbiAgICBjb2xsYXBzZVRpcDogc3RyaW5nO1xuXG4gICAgY29sbGFwc2libGU6IGJvb2xlYW47XG5cbiAgICBpc0NvbGxhcHNlZCA9IGZhbHNlO1xuXG4gICAgb3JpZ2luV2lkdGg6IG51bWJlciA9IFNJREVCQVJfREVGQVVMVF9XSURUSDtcblxuICAgIGNvbGxhcHNlVmlzaWJsZTogYm9vbGVhbjtcblxuICAgIGNvbGxhcHNlSGlkZGVuOiBib29sZWFuO1xuXG4gICAgaXNSZW1vdmVUcmFuc2l0aW9uOiBib29sZWFuO1xuXG4gICAgaXNSZXNpemFibGU6IGJvb2xlYW47XG5cbiAgICBnZXQgZHJhZ01pbldpZHRoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50aHlEcmFnTWluV2lkdGggfHwgdGhpcy50aHlDb2xsYXBzZWRXaWR0aDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhvdGtleVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIGhvdGtleURpc3BhdGNoZXI6IFRoeUhvdGtleURpc3BhdGNoZXJcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy51cGRhdGVDb2xsYXBzZVRpcCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3Vic2NyaWJlSG90a2V5RXZlbnQoKSB7XG4gICAgICAgIHRoaXMuaG90a2V5U3Vic2NyaXB0aW9uID0gdGhpcy5ob3RrZXlEaXNwYXRjaGVyLmtleWRvd24oWydDb250cm9sKy8nLCAnTWV0YSsvJ10pLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZUNvbGxhcHNlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQ29sbGFwc2VUaXAoKSB7XG4gICAgICAgIHRoaXMuY29sbGFwc2VUaXAgPSB0aGlzLnRoeUNvbGxhcHNlZCA/ICflsZXlvIAnIDogJ+aUtui1tyc7XG4gICAgICAgIHRoaXMuY29sbGFwc2VUaXAgPSB0aGlzLmNvbGxhcHNlVGlwICsgKGlzTWFjUGxhdGZvcm0oKSA/IGDvvIjijJggKyAvKWAgOiBg77yIQ3RybCArIC8pYCk7XG4gICAgfVxuXG4gICAgcmVzaXplSGFuZGxlcih7IHdpZHRoIH06IFRoeVJlc2l6ZUV2ZW50KSB7XG4gICAgICAgIGlmICh3aWR0aCA9PT0gdGhpcy5zaWRlYmFyRGlyZWN0aXZlLnRoeUxheW91dFNpZGViYXJXaWR0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRoeUNvbGxhcHNpYmxlICYmIHdpZHRoIDwgdGhpcy50aHlDb2xsYXBzZWRXaWR0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRoeUNvbGxhcHNpYmxlICYmIHdpZHRoID09PSB0aGlzLnRoeUNvbGxhcHNlZFdpZHRoKSB7XG4gICAgICAgICAgICB0aGlzLnRoeUNvbGxhcHNlZCA9IHRydWU7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlQ29sbGFwc2VUaXAoKSwgMjAwKTtcbiAgICAgICAgICAgIHRoaXMudGh5Q29sbGFwc2VkQ2hhbmdlLmVtaXQodGhpcy5pc0NvbGxhcHNlZCk7XG4gICAgICAgICAgICB0aGlzLnNpZGViYXJEaXJlY3RpdmUudGh5TGF5b3V0U2lkZWJhcldpZHRoID0gdGhpcy5vcmlnaW5XaWR0aDtcbiAgICAgICAgICAgIHRoaXMuY29sbGFwc2VWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zaWRlYmFyRGlyZWN0aXZlLnRoeUxheW91dFNpZGViYXJXaWR0aCA9IHdpZHRoO1xuICAgICAgICB0aGlzLnRoeURyYWdXaWR0aENoYW5nZS5lbWl0KHdpZHRoKTtcbiAgICB9XG5cbiAgICByZXNpemVTdGFydCgpIHtcbiAgICAgICAgdGhpcy5vcmlnaW5XaWR0aCA9IHRoaXMuc2lkZWJhckRpcmVjdGl2ZS50aHlMYXlvdXRTaWRlYmFyV2lkdGg7XG4gICAgICAgIHRoaXMuY29sbGFwc2VIaWRkZW4gPSB0cnVlO1xuICAgICAgICB0aGlzLmlzUmVtb3ZlVHJhbnNpdGlvbiA9IHRydWU7XG4gICAgfVxuXG4gICAgcmVzaXplRW5kKCkge1xuICAgICAgICB0aGlzLmNvbGxhcHNlSGlkZGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNSZW1vdmVUcmFuc2l0aW9uID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcmVzaXplSGFuZGxlSG92ZXIoZXZlbnQ6IE1vdXNlRXZlbnQsIHR5cGU6ICdlbnRlcicgfCAnbGVhdmUnKSB7XG4gICAgICAgIHRoaXMuY29sbGFwc2VWaXNpYmxlID0gdHlwZSA9PT0gJ2VudGVyJyAmJiAhdGhpcy50aHlDb2xsYXBzZWQgPyB0cnVlIDogZmFsc2U7XG4gICAgfVxuXG4gICAgdG9nZ2xlQ29sbGFwc2UoZXZlbnQ/OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIHRoaXMudGh5Q29sbGFwc2VkID0gIXRoaXMudGh5Q29sbGFwc2VkO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlQ29sbGFwc2VUaXAoKSwgMjAwKTtcbiAgICAgICAgdGhpcy50aHlDb2xsYXBzZWRDaGFuZ2UuZW1pdCh0aGlzLmlzQ29sbGFwc2VkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9nZ2xlUmVzaXphYmxlKGV2ZW50OiBNb3VzZUV2ZW50LCB0eXBlOiAnZW50ZXInIHwgJ2xlYXZlJykge1xuICAgICAgICB0aGlzLmlzUmVzaXphYmxlID0gdHlwZSA9PT0gJ2VudGVyJyA/IHRydWUgOiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXN0b3JlVG9EZWZhdWx0V2lkdGgoKSB7XG4gICAgICAgIGlmICh0aGlzLnRoeURlZmF1bHRXaWR0aCA9PT0gJ2xnJykge1xuICAgICAgICAgICAgdGhpcy50aHlEZWZhdWx0V2lkdGggPSBMR19XSURUSDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNpZGViYXJEaXJlY3RpdmUudGh5TGF5b3V0U2lkZWJhcldpZHRoID0gKHRoaXMudGh5RGVmYXVsdFdpZHRoIGFzIG51bWJlcikgfHwgU0lERUJBUl9ERUZBVUxUX1dJRFRIO1xuICAgICAgICB0aGlzLnRoeURyYWdXaWR0aENoYW5nZS5lbWl0KHRoaXMuc2lkZWJhckRpcmVjdGl2ZS50aHlMYXlvdXRTaWRlYmFyV2lkdGgpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhvdGtleVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB9XG59XG4iXX0=
403
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGF5b3V0L3NpZGViYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxFQUNILFNBQVMsRUFDVCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sV0FBVyxFQUNYLE1BQU0sRUFDTixlQUFlLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLHFCQUFxQixFQUFrQixlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFeEQsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDO0FBQ3JCLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxDQUFDO0FBQ2xDLE1BQU0sdUJBQXVCLEdBQUcsRUFBRSxDQUFDO0FBTW5DOzs7O0dBSUc7QUFjSCxNQUFNLE9BQU8sbUJBQW1CO0lBYmhDO1FBY1ksdUJBQWtCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUUsQ0FB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cUJBQXFCLEVBQUU7Z0JBaUJNLFlBQVk7c0JBQTVELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUU7Z0JBV0osaUJBQWlCO3NCQUF2RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFLNUIsZUFBZTtzQkFBdkIsS0FBSztnQkFHRixrQkFBa0I7c0JBRHJCLFdBQVc7dUJBQUMsNkJBQTZCO2dCQU10QyxnQkFBZ0I7c0JBRG5CLFdBQVc7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcywgTmdTdHlsZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIGluamVjdCxcbiAgICBudW1iZXJBdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlIb3RrZXlEaXNwYXRjaGVyIH0gZnJvbSAnQHRldGh5cy9jZGsvaG90a2V5JztcbmltcG9ydCB7IGlzTWFjUGxhdGZvcm0gfSBmcm9tICdAdGV0aHlzL2Nkay9pcyc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IFRoeVJlc2l6YWJsZURpcmVjdGl2ZSwgVGh5UmVzaXplRXZlbnQsIFRoeVJlc2l6ZUhhbmRsZSB9IGZyb20gJ25neC10ZXRoeXMvcmVzaXphYmxlJztcbmltcG9ydCB7IFRoeVRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUaHlMYXlvdXREaXJlY3RpdmUgfSBmcm9tICcuL2xheW91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcblxuY29uc3QgTEdfV0lEVEggPSAzMDA7XG5jb25zdCBTSURFQkFSX0RFRkFVTFRfV0lEVEggPSAyNDA7XG5jb25zdCBTSURFQkFSX0NPTExBUFNFRF9XSURUSCA9IDIwO1xuXG5leHBvcnQgdHlwZSBUaHlTaWRlYmFyVGhlbWUgPSAnd2hpdGUnIHwgJ2xpZ2h0JyB8ICdkYXJrJztcblxuZXhwb3J0IHR5cGUgVGh5U2lkZWJhckRpcmVjdGlvbiA9ICdsZWZ0JyB8ICdyaWdodCc7XG5cbi8qKlxuICog5L6n6L655qCP5biD5bGA5oyH5LukXG4gKiBAbmFtZSB0aHlTaWRlYmFyXG4gKiBAb3JkZXIgMjBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdGh5U2lkZWJhcl0nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktbGF5b3V0LXNpZGViYXInLFxuICAgICAgICAnW2NsYXNzLnRoeS1sYXlvdXQtc2lkZWJhci1yaWdodF0nOiAndGh5RGlyZWN0aW9uID09PSBcInJpZ2h0XCInLFxuICAgICAgICAnW2NsYXNzLnRoeS1sYXlvdXQtc2lkZWJhci0tY2xlYXItYm9yZGVyLXJpZ2h0XSc6ICd0aHlEaXJlY3Rpb24gPT09IFwibGVmdFwiICYmICFpc0RpdmlkZWQnLFxuICAgICAgICAnW2NsYXNzLnRoeS1sYXlvdXQtc2lkZWJhci0tY2xlYXItYm9yZGVyLWxlZnRdJzogJ3RoeURpcmVjdGlvbiA9PT0gXCJyaWdodFwiICYmICFpc0RpdmlkZWQnLFxuICAgICAgICAnW2NsYXNzLnNpZGViYXItdGhlbWUtbGlnaHRdJzogJ3RoeVRoZW1lID09PSBcImxpZ2h0XCInLFxuICAgICAgICAnW2NsYXNzLnNpZGViYXItdGhlbWUtZGFya10nOiAndGh5VGhlbWUgPT09IFwiZGFya1wiJyxcbiAgICAgICAgJ1tjbGFzcy50aHktbGF5b3V0LXNpZGViYXItaXNvbGF0ZWRdJzogJ3NpZGViYXJJc29sYXRlZCdcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVGh5U2lkZWJhckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHJpdmF0ZSB0aHlMYXlvdXREaXJlY3RpdmUgPSBpbmplY3QoVGh5TGF5b3V0RGlyZWN0aXZlLCB7IG9wdGlvbmFsOiB0cnVlLCBob3N0OiB0cnVlIH0pITtcblxuICAgIHNpZGViYXJJc29sYXRlZCA9IGZhbHNlO1xuXG4gICAgaXNEaXZpZGVkID0gdHJ1ZTtcblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUud2lkdGgucHgnKSB0aHlMYXlvdXRTaWRlYmFyV2lkdGg6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIHNpZGViYXIg5L2N572u77yM6buY6K6k5Zyo5bem5L6nXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5RGlyZWN0aW9uOiBUaHlTaWRlYmFyRGlyZWN0aW9uID0gJ2xlZnQnO1xuXG4gICAgLyoqXG4gICAgICog5Li76aKYXG4gICAgICogQHR5cGUgd2hpdGUgfCBsaWdodCB8IGRhcmtcbiAgICAgKiBAZGVmYXVsdCB3aGl0ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVRoZW1lOiBUaHlTaWRlYmFyVGhlbWU7XG5cbiAgICAvKipcbiAgICAgKiDlrr3luqbvvIzpu5jorqTmmK8gMjQwcHjvvIzkvKDlhaUgYGxnYCDlpKflsI/ml7blrr3luqbmmK8zMDBweFxuICAgICAqIEBkZWZhdWx0IDI0MHB4XG4gICAgICovXG4gICAgQElucHV0KCd0aHlXaWR0aCcpXG4gICAgc2V0IHRoeVdpZHRoKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSAnbGcnKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IExHX1dJRFRIO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudGh5TGF5b3V0U2lkZWJhcldpZHRoID0gKHZhbHVlIGFzIG51bWJlcikgfHwgU0lERUJBUl9ERUZBVUxUX1dJRFRIO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuWSjOWPs+S+pyAv5bem5L6n6ZqU56a777yM5b2T5Li6IHRydWUg5pe26Led5Y+z5L6nIC/lt6bkvqfkvJrmnIkgbWFyZ2lu77yM5ZCM5pe26L655qGG5Lya5Y675o6JXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KVxuICAgIHNldCB0aHlJc29sYXRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNpZGViYXJJc29sYXRlZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHNpZGViYXIg5piv5ZCm5pyJ5YiG5Ymy57q/44CC5b2TYHRoeURpcmVjdGlvbmDlgLzkuLpgbGVmdGDml7bvvIzmjqfliLblj7PkvqfmmK/lkKbmnInliIblibLnur/vvJvlvZNgdGh5RGlyZWN0aW9uYOWAvOS4umByaWdodGDml7bvvIzmjqfliLblt6bkvqfmmK/lkKbmnInliIblibLnur/jgIJcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSlcbiAgICBzZXQgdGh5RGl2aWRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmlzRGl2aWRlZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWPs+S+p+aYr+WQpuaciei+ueahhu+8jOW3suW6n+W8g++8jOivt+S9v+eUqCB0aHlEaXZpZGVkXG4gICAgICogQGRlcHJlY2F0ZWQgcGxlYXNlIHVzZSB0aHlEaXZpZGVkXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pXG4gICAgc2V0IHRoeUhhc0JvcmRlclJpZ2h0KHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudGh5RGl2aWRlZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOW3puS+p+aYr+WQpuaciei+ueahhu+8jOW3suW6n+W8g++8jOivt+S9v+eUqCB0aHlEaXZpZGVkXG4gICAgICogQGRlcHJlY2F0ZWQgcGxlYXNlIHVzZSB0aHlEaXZpZGVkXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pXG4gICAgc2V0IHRoeUhhc0JvcmRlckxlZnQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy50aHlEaXZpZGVkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLnRoeUxheW91dERpcmVjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy50aHlMYXlvdXREaXJlY3RpdmUuaGFzU2lkZWJhciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudGh5RGlyZWN0aW9uID09PSAncmlnaHQnKSB7XG4gICAgICAgICAgICB0aGlzLnRoeUxheW91dERpcmVjdGl2ZS5pc1NpZGViYXJSaWdodCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICog5L6n6L655qCP5biD5bGA57uE5Lu2XG4gKiBAbmFtZSB0aHktc2lkZWJhclxuICogQG9yZGVyIDIxXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXNpZGViYXInLFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgQGlmICh0aHlEcmFnZ2FibGUpIHtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICB0aHlSZXNpemFibGVcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNpZGViYXItZHJhZ1wiXG4gICAgICAgICAgICAgICAgdGh5Qm91bmRzPVwid2luZG93XCJcbiAgICAgICAgICAgICAgICBbdGh5TWF4V2lkdGhdPVwidGh5RHJhZ01heFdpZHRoXCJcbiAgICAgICAgICAgICAgICBbdGh5TWluV2lkdGhdPVwiZHJhZ01pbldpZHRoXCJcbiAgICAgICAgICAgICAgICAodGh5UmVzaXplKT1cInJlc2l6ZUhhbmRsZXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKHRoeVJlc2l6ZVN0YXJ0KT1cInJlc2l6ZVN0YXJ0KClcIlxuICAgICAgICAgICAgICAgICh0aHlSZXNpemVFbmQpPVwicmVzaXplRW5kKClcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cIiFpc1Jlc2l6YWJsZSA/ICdjb250ZW50cycgOiBudWxsXCI+XG4gICAgICAgICAgICAgICAgQGlmICghdGh5Q29sbGFwc2VkKSB7XG4gICAgICAgICAgICAgICAgICAgIDx0aHktcmVzaXplLWhhbmRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgW3RoeURpcmVjdGlvbl09XCJzaWRlYmFyRGlyZWN0aXZlLnRoeURpcmVjdGlvbiA9PT0gJ3JpZ2h0JyA/ICdsZWZ0JyA6ICdyaWdodCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzaWRlYmFyLXJlc2l6ZS1oYW5kbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdGh5TGluZT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwidG9nZ2xlUmVzaXphYmxlKCRldmVudCwgJ2VudGVyJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwidG9nZ2xlUmVzaXphYmxlKCRldmVudCwgJ2xlYXZlJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGRibGNsaWNrKT1cInJlc3RvcmVUb0RlZmF1bHRXaWR0aCgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvdGh5LXJlc2l6ZS1oYW5kbGU+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGlmICh0aHlDb2xsYXBzaWJsZSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNpZGViYXItY29sbGFwc2UtbGluZVwiPjwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIEBpZiAodGh5Q29sbGFwc2libGUgJiYgdGh5VHJpZ2dlciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2lkZWJhci1jb2xsYXBzZVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnY29sbGFwc2UtdmlzaWJsZSc6IGNvbGxhcHNlVmlzaWJsZSwgJ2NvbGxhcHNlLWhpZGRlbic6IGNvbGxhcHNlSGlkZGVuIH1cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVDb2xsYXBzZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbdGh5VG9vbHRpcF09XCIhdGh5VHJpZ2dlciAmJiBjb2xsYXBzZVRpcFwiPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0aHlUcmlnZ2VyIHx8IGRlZmF1bHRUcmlnZ2VyXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRUcmlnZ2VyPlxuICAgICAgICAgICAgICAgICAgICA8dGh5LWljb24gY2xhc3M9XCJzaWRlYmFyLWNvbGxhcHNlLWljb25cIiBbdGh5SWNvbk5hbWVdPVwidGhpcy50aHlDb2xsYXBzZWQgPyAnaW5kZW50JyA6ICdvdXRkZW50J1wiPjwvdGh5LWljb24+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgYCxcbiAgICBob3N0RGlyZWN0aXZlczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBkaXJlY3RpdmU6IFRoeVNpZGViYXJEaXJlY3RpdmUsXG4gICAgICAgICAgICBpbnB1dHM6IFsndGh5VGhlbWUnLCAndGh5RGlyZWN0aW9uJywgJ3RoeVdpZHRoJywgJ3RoeUlzb2xhdGVkJywgJ3RoeURpdmlkZWQnLCAndGh5SGFzQm9yZGVyTGVmdCcsICd0aHlIYXNCb3JkZXJSaWdodCddXG4gICAgICAgIH1cbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXQsIFRoeVJlc2l6ZUhhbmRsZSwgVGh5UmVzaXphYmxlRGlyZWN0aXZlLCBUaHlJY29uLCBUaHlUb29sdGlwRGlyZWN0aXZlLCBOZ0NsYXNzLCBOZ1N0eWxlXVxufSlcbmV4cG9ydCBjbGFzcyBUaHlTaWRlYmFyIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gICAgcHJpdmF0ZSBob3RrZXlEaXNwYXRjaGVyID0gaW5qZWN0KFRoeUhvdGtleURpc3BhdGNoZXIpO1xuXG4gICAgc2lkZWJhckRpcmVjdGl2ZSA9IGluamVjdChUaHlTaWRlYmFyRGlyZWN0aXZlKTtcblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUud2lkdGgucHgnKSBnZXQgc2lkZWJhcldpZHRoKCkge1xuICAgICAgICBpZiAodGhpcy50aHlDb2xsYXBzaWJsZSAmJiB0aGlzLnRoeUNvbGxhcHNlZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudGh5Q29sbGFwc2VkV2lkdGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zaWRlYmFyRGlyZWN0aXZlLnRoeUxheW91dFNpZGViYXJXaWR0aDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBbJyRldmVudCddKVxuICAgIG1vdXNlZW50ZXIoJGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIHRoaXMucmVzaXplSGFuZGxlSG92ZXIoJGV2ZW50LCAnZW50ZXInKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJywgWyckZXZlbnQnXSlcbiAgICBtb3VzZWxlYXZlKCRldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLnJlc2l6ZUhhbmRsZUhvdmVyKCRldmVudCwgJ2xlYXZlJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5a695bqm5piv5ZCm5Y+v5Lul5ouW5ou9XG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0aHlEcmFnZ2FibGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIOaLluaLveeahOacgOWkp+WuveW6plxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRoeURyYWdNYXhXaWR0aDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog5ouW5ou955qE5pyA5bCP5a695bqmXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgdGh5RHJhZ01pbldpZHRoOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDlsZXnpLrmlLbotbfnmoTop6blj5Hlmajoh6rlrprkuYnmqKHmnb/vvIzpu5jorqTmmL7npLrlsZXlvIDmlLbotbfnmoTlnIblvaLlm77moIfvvIzorr7nva7kuLogbnVsbCDooajnpLrkuI3lsZXnpLrop6blj5HlhYPntKDvvIzmiYvliqjmjqfliLblsZXlvIDmlLbotbfnirbmgIFcbiAgICAgKiBAdHlwZSBudWxsIHwgdW5kZWZpbmVkIHwgVGVtcGxhdGVSZWY8YW55PlxuICAgICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVRyaWdnZXI6IG51bGwgfCB1bmRlZmluZWQgfCBUZW1wbGF0ZVJlZjxhbnk+ID0gdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICog5pS26LW354q25oCB5pS55Y+Y5ZCO55qE5LqL5Lu2XG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgdGh5Q29sbGFwc2VkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgLyoqXG4gICAgICog5ouW5ou95a695bqm55qE5L+u5pS55LqL5Lu2XG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgdGh5RHJhZ1dpZHRoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICAvKipcbiAgICAgKiDlvIDlkK/mlLbotbcv5bGV5byA5Yqf6IO9XG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSBzZXQgdGh5Q29sbGFwc2libGUoY29sbGFwc2libGU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5jb2xsYXBzaWJsZSA9IGNvbGxhcHNpYmxlO1xuICAgICAgICBpZiAodGhpcy5jb2xsYXBzaWJsZSkge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpYmVIb3RrZXlFdmVudCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5ob3RrZXlTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgdGh5Q29sbGFwc2libGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbGxhcHNpYmxlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuaYr+aUtui1t1xuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgc2V0IHRoeUNvbGxhcHNlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmlzQ29sbGFwc2VkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IHRoeUNvbGxhcHNlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNDb2xsYXBzZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5pS26LW35ZCO55qE5a695bqmXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgdGh5Q29sbGFwc2VkV2lkdGggPSBTSURFQkFSX0NPTExBUFNFRF9XSURUSDtcblxuICAgIC8qKlxuICAgICAqIOm7mOiupOWuveW6pu+8jOWPjOWHu+WQjuWPr+aBouWkjeWIsOatpOWuveW6pu+8jOm7mOiupOaYryAyNDBweO+8jOS8oOWFpSBsZyDlpKflsI/ml7blrr3luqbmmK8zMDBweFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeURlZmF1bHRXaWR0aDogc3RyaW5nIHwgbnVtYmVyO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zaWRlYmFyLWNvbGxhcHNlLXNob3cnKVxuICAgIGdldCBjb2xsYXBzZVZpc2liaWxpdHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRoeUNvbGxhcHNlZDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnJlbW92ZS10cmFuc2l0aW9uJylcbiAgICBnZXQgcmVtb3ZlVHJhbnNpdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNSZW1vdmVUcmFuc2l0aW9uO1xuICAgIH1cblxuICAgIGNvbGxhcHNlVGlwOiBzdHJpbmc7XG5cbiAgICBjb2xsYXBzaWJsZTogYm9vbGVhbjtcblxuICAgIGlzQ29sbGFwc2VkID0gZmFsc2U7XG5cbiAgICBvcmlnaW5XaWR0aDogbnVtYmVyID0gU0lERUJBUl9ERUZBVUxUX1dJRFRIO1xuXG4gICAgY29sbGFwc2VWaXNpYmxlOiBib29sZWFuO1xuXG4gICAgY29sbGFwc2VIaWRkZW46IGJvb2xlYW47XG5cbiAgICBpc1JlbW92ZVRyYW5zaXRpb246IGJvb2xlYW47XG5cbiAgICBpc1Jlc2l6YWJsZTogYm9vbGVhbjtcblxuICAgIGdldCBkcmFnTWluV2lkdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRoeURyYWdNaW5XaWR0aCB8fCB0aGlzLnRoeUNvbGxhcHNlZFdpZHRoO1xuICAgIH1cblxuICAgIHByaXZhdGUgaG90a2V5U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy51cGRhdGVDb2xsYXBzZVRpcCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3Vic2NyaWJlSG90a2V5RXZlbnQoKSB7XG4gICAgICAgIHRoaXMuaG90a2V5U3Vic2NyaXB0aW9uID0gdGhpcy5ob3RrZXlEaXNwYXRjaGVyLmtleWRvd24oWydDb250cm9sKy8nLCAnTWV0YSsvJ10pLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZUNvbGxhcHNlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQ29sbGFwc2VUaXAoKSB7XG4gICAgICAgIHRoaXMuY29sbGFwc2VUaXAgPSB0aGlzLnRoeUNvbGxhcHNlZCA/ICflsZXlvIAnIDogJ+aUtui1tyc7XG4gICAgICAgIHRoaXMuY29sbGFwc2VUaXAgPSB0aGlzLmNvbGxhcHNlVGlwICsgKGlzTWFjUGxhdGZvcm0oKSA/IGDvvIjijJggKyAvKWAgOiBg77yIQ3RybCArIC8pYCk7XG4gICAgfVxuXG4gICAgcmVzaXplSGFuZGxlcih7IHdpZHRoIH06IFRoeVJlc2l6ZUV2ZW50KSB7XG4gICAgICAgIGlmICh3aWR0aCA9PT0gdGhpcy5zaWRlYmFyRGlyZWN0aXZlLnRoeUxheW91dFNpZGViYXJXaWR0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRoeUNvbGxhcHNpYmxlICYmIHdpZHRoIDwgdGhpcy50aHlDb2xsYXBzZWRXaWR0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRoeUNvbGxhcHNpYmxlICYmIHdpZHRoID09PSB0aGlzLnRoeUNvbGxhcHNlZFdpZHRoKSB7XG4gICAgICAgICAgICB0aGlzLnRoeUNvbGxhcHNlZCA9IHRydWU7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlQ29sbGFwc2VUaXAoKSwgMjAwKTtcbiAgICAgICAgICAgIHRoaXMudGh5Q29sbGFwc2VkQ2hhbmdlLmVtaXQodGhpcy5pc0NvbGxhcHNlZCk7XG4gICAgICAgICAgICB0aGlzLnNpZGViYXJEaXJlY3RpdmUudGh5TGF5b3V0U2lkZWJhcldpZHRoID0gdGhpcy5vcmlnaW5XaWR0aDtcbiAgICAgICAgICAgIHRoaXMuY29sbGFwc2VWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zaWRlYmFyRGlyZWN0aXZlLnRoeUxheW91dFNpZGViYXJXaWR0aCA9IHdpZHRoO1xuICAgICAgICB0aGlzLnRoeURyYWdXaWR0aENoYW5nZS5lbWl0KHdpZHRoKTtcbiAgICB9XG5cbiAgICByZXNpemVTdGFydCgpIHtcbiAgICAgICAgdGhpcy5vcmlnaW5XaWR0aCA9IHRoaXMuc2lkZWJhckRpcmVjdGl2ZS50aHlMYXlvdXRTaWRlYmFyV2lkdGg7XG4gICAgICAgIHRoaXMuY29sbGFwc2VIaWRkZW4gPSB0cnVlO1xuICAgICAgICB0aGlzLmlzUmVtb3ZlVHJhbnNpdGlvbiA9IHRydWU7XG4gICAgfVxuXG4gICAgcmVzaXplRW5kKCkge1xuICAgICAgICB0aGlzLmNvbGxhcHNlSGlkZGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNSZW1vdmVUcmFuc2l0aW9uID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcmVzaXplSGFuZGxlSG92ZXIoZXZlbnQ6IE1vdXNlRXZlbnQsIHR5cGU6ICdlbnRlcicgfCAnbGVhdmUnKSB7XG4gICAgICAgIHRoaXMuY29sbGFwc2VWaXNpYmxlID0gdHlwZSA9PT0gJ2VudGVyJyAmJiAhdGhpcy50aHlDb2xsYXBzZWQgPyB0cnVlIDogZmFsc2U7XG4gICAgfVxuXG4gICAgdG9nZ2xlQ29sbGFwc2UoZXZlbnQ/OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIHRoaXMudGh5Q29sbGFwc2VkID0gIXRoaXMudGh5Q29sbGFwc2VkO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlQ29sbGFwc2VUaXAoKSwgMjAwKTtcbiAgICAgICAgdGhpcy50aHlDb2xsYXBzZWRDaGFuZ2UuZW1pdCh0aGlzLmlzQ29sbGFwc2VkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9nZ2xlUmVzaXphYmxlKGV2ZW50OiBNb3VzZUV2ZW50LCB0eXBlOiAnZW50ZXInIHwgJ2xlYXZlJykge1xuICAgICAgICB0aGlzLmlzUmVzaXphYmxlID0gdHlwZSA9PT0gJ2VudGVyJyA/IHRydWUgOiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXN0b3JlVG9EZWZhdWx0V2lkdGgoKSB7XG4gICAgICAgIGlmICh0aGlzLnRoeURlZmF1bHRXaWR0aCA9PT0gJ2xnJykge1xuICAgICAgICAgICAgdGhpcy50aHlEZWZhdWx0V2lkdGggPSBMR19XSURUSDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNpZGViYXJEaXJlY3RpdmUudGh5TGF5b3V0U2lkZWJhcldpZHRoID0gKHRoaXMudGh5RGVmYXVsdFdpZHRoIGFzIG51bWJlcikgfHwgU0lERUJBUl9ERUZBVUxUX1dJRFRIO1xuICAgICAgICB0aGlzLnRoeURyYWdXaWR0aENoYW5nZS5lbWl0KHRoaXMuc2lkZWJhckRpcmVjdGl2ZS50aHlMYXlvdXRTaWRlYmFyV2lkdGgpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhvdGtleVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB9XG59XG4iXX0=
@@ -1,6 +1,6 @@
1
+ import { NgTemplateOutlet } from '@angular/common';
1
2
  import { Component, Input, HostBinding, ChangeDetectionStrategy, TemplateRef, ContentChild } from '@angular/core';
2
3
  import { ThyAvatar } from 'ngx-tethys/avatar';
3
- import { NgIf } from '@angular/common';
4
4
  import * as i0 from "@angular/core";
5
5
  /**
6
6
  * @name thy-list-item-meta,[thy-list-item-meta]
@@ -11,11 +11,11 @@ export class ThyListItemMeta {
11
11
  this.className = `thy-list-item-meta`;
12
12
  }
13
13
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyListItemMeta, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: ThyListItemMeta, isStandalone: true, selector: "thy-list-item-meta,[thy-list-item-meta]", inputs: { thyAvatar: "thyAvatar", thyTitle: "thyTitle", thyDescription: "thyDescription" }, host: { properties: { "class": "this.className" } }, queries: [{ propertyName: "avatarTemplateRef", first: true, predicate: ["metaAvatar"], descendants: true }, { propertyName: "titleTemplateRef", first: true, predicate: ["metaTitle"], descendants: true }, { propertyName: "descriptionTemplateRef", first: true, predicate: ["metaDescription"], descendants: true }], ngImport: i0, template: "<div class=\"thy-list-item-meta-avatar\">\n <ng-container *ngIf=\"thyAvatar; else avatarTemplateRef\">\n <thy-avatar [thySrc]=\"thyAvatar\"></thy-avatar>\n </ng-container>\n</div>\n<div class=\"thy-list-item-meta-content\">\n <div class=\"thy-list-item-meta-title\">\n <ng-container *ngIf=\"thyTitle; else titleTemplateRef\">{{ thyTitle }}</ng-container>\n </div>\n <div class=\"thy-list-item-meta-description\">\n <ng-container *ngIf=\"thyDescription; else descriptionTemplateRef\">{{ thyDescription }}</ng-container>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyAvatar, selector: "thy-avatar", inputs: ["thyShowName", "thySrc", "thyName", "thySize", "thyShowRemove", "thyRemovable", "thyImgClass", "thyDisabled", "thyLoading", "thyFetchPriority"], outputs: ["thyOnRemove", "thyRemove", "thyError"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyListItemMeta, isStandalone: true, selector: "thy-list-item-meta,[thy-list-item-meta]", inputs: { thyAvatar: "thyAvatar", thyTitle: "thyTitle", thyDescription: "thyDescription" }, host: { properties: { "class": "this.className" } }, queries: [{ propertyName: "avatarTemplateRef", first: true, predicate: ["metaAvatar"], descendants: true }, { propertyName: "titleTemplateRef", first: true, predicate: ["metaTitle"], descendants: true }, { propertyName: "descriptionTemplateRef", first: true, predicate: ["metaDescription"], descendants: true }], ngImport: i0, template: "<div class=\"thy-list-item-meta-avatar\">\n @if (thyAvatar) {\n <thy-avatar [thySrc]=\"thyAvatar\"></thy-avatar>\n } @else {\n <ng-template [ngTemplateOutlet]=\"avatarTemplateRef\"></ng-template>\n }\n</div>\n<div class=\"thy-list-item-meta-content\">\n <div class=\"thy-list-item-meta-title\">\n @if (thyTitle) {\n {{ thyTitle }}\n } @else {\n <ng-template [ngTemplateOutlet]=\"titleTemplateRef\"></ng-template>\n }\n </div>\n <div class=\"thy-list-item-meta-description\">\n @if (thyDescription) {\n {{ thyDescription }}\n } @else {\n <ng-template [ngTemplateOutlet]=\"descriptionTemplateRef\"></ng-template>\n }\n </div>\n</div>\n", dependencies: [{ kind: "component", type: ThyAvatar, selector: "thy-avatar", inputs: ["thyShowName", "thySrc", "thyName", "thySize", "thyShowRemove", "thyRemovable", "thyImgClass", "thyDisabled", "thyLoading", "thyFetchPriority"], outputs: ["thyOnRemove", "thyRemove", "thyError"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
15
15
  }
16
16
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyListItemMeta, decorators: [{
17
17
  type: Component,
18
- args: [{ selector: 'thy-list-item-meta,[thy-list-item-meta]', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, ThyAvatar], template: "<div class=\"thy-list-item-meta-avatar\">\n <ng-container *ngIf=\"thyAvatar; else avatarTemplateRef\">\n <thy-avatar [thySrc]=\"thyAvatar\"></thy-avatar>\n </ng-container>\n</div>\n<div class=\"thy-list-item-meta-content\">\n <div class=\"thy-list-item-meta-title\">\n <ng-container *ngIf=\"thyTitle; else titleTemplateRef\">{{ thyTitle }}</ng-container>\n </div>\n <div class=\"thy-list-item-meta-description\">\n <ng-container *ngIf=\"thyDescription; else descriptionTemplateRef\">{{ thyDescription }}</ng-container>\n </div>\n</div>\n" }]
18
+ args: [{ selector: 'thy-list-item-meta,[thy-list-item-meta]', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ThyAvatar, NgTemplateOutlet], template: "<div class=\"thy-list-item-meta-avatar\">\n @if (thyAvatar) {\n <thy-avatar [thySrc]=\"thyAvatar\"></thy-avatar>\n } @else {\n <ng-template [ngTemplateOutlet]=\"avatarTemplateRef\"></ng-template>\n }\n</div>\n<div class=\"thy-list-item-meta-content\">\n <div class=\"thy-list-item-meta-title\">\n @if (thyTitle) {\n {{ thyTitle }}\n } @else {\n <ng-template [ngTemplateOutlet]=\"titleTemplateRef\"></ng-template>\n }\n </div>\n <div class=\"thy-list-item-meta-description\">\n @if (thyDescription) {\n {{ thyDescription }}\n } @else {\n <ng-template [ngTemplateOutlet]=\"descriptionTemplateRef\"></ng-template>\n }\n </div>\n</div>\n" }]
19
19
  }], ctorParameters: () => [], propDecorators: { thyAvatar: [{
20
20
  type: Input
21
21
  }], thyTitle: [{
@@ -35,4 +35,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
35
35
  type: HostBinding,
36
36
  args: ['class']
37
37
  }] } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLW1ldGEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpc3QvbGlzdC1pdGVtLW1ldGEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2xpc3QvbGlzdC1pdGVtLW1ldGEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFdkM7OztHQUdHO0FBUUgsTUFBTSxPQUFPLGVBQWU7SUEyQnhCO1FBRnNCLGNBQVMsR0FBRyxvQkFBb0IsQ0FBQztJQUV4QyxDQUFDOzhHQTNCUCxlQUFlO2tHQUFmLGVBQWUsNmlCQ2Y1QiwwaUJBYUEsNENEQWMsSUFBSSw2RkFBRSxTQUFTOzsyRkFFaEIsZUFBZTtrQkFQM0IsU0FBUzsrQkFDSSx5Q0FBeUMsbUJBRWxDLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQzt3REFNakIsU0FBUztzQkFBakIsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR0MsaUJBQWlCO3NCQUR2QixZQUFZO3VCQUFDLFlBQVk7Z0JBSW5CLGdCQUFnQjtzQkFEdEIsWUFBWTt1QkFBQyxXQUFXO2dCQUlsQixzQkFBc0I7c0JBRDVCLFlBQVk7dUJBQUMsaUJBQWlCO2dCQUdULFNBQVM7c0JBQTlCLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIEhvc3RCaW5kaW5nLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVGVtcGxhdGVSZWYsIENvbnRlbnRDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGh5QXZhdGFyIH0gZnJvbSAnbmd4LXRldGh5cy9hdmF0YXInO1xuaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbi8qKlxuICogQG5hbWUgdGh5LWxpc3QtaXRlbS1tZXRhLFt0aHktbGlzdC1pdGVtLW1ldGFdXG4gKiBAb3JkZXIgNDBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktbGlzdC1pdGVtLW1ldGEsW3RoeS1saXN0LWl0ZW0tbWV0YV0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9saXN0LWl0ZW0tbWV0YS5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgVGh5QXZhdGFyXVxufSlcbmV4cG9ydCBjbGFzcyBUaHlMaXN0SXRlbU1ldGEge1xuICAgIC8qKlxuICAgICAqIOWIl+ihqOmhueeahOW3puS+p+WbvueJh1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUF2YXRhcjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog5YiX6KGo6aG555qE5qCH6aKYXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5VGl0bGU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOWIl+ihqOmhueeahOaPj+i/sOaWh+acrFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeURlc2NyaXB0aW9uOiBzdHJpbmc7XG5cbiAgICBAQ29udGVudENoaWxkKCdtZXRhQXZhdGFyJylcbiAgICBwdWJsaWMgYXZhdGFyVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAQ29udGVudENoaWxkKCdtZXRhVGl0bGUnKVxuICAgIHB1YmxpYyB0aXRsZVRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQENvbnRlbnRDaGlsZCgnbWV0YURlc2NyaXB0aW9uJylcbiAgICBwdWJsaWMgZGVzY3JpcHRpb25UZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBjbGFzc05hbWUgPSBgdGh5LWxpc3QtaXRlbS1tZXRhYDtcblxuICAgIGNvbnN0cnVjdG9yKCkge31cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0aHktbGlzdC1pdGVtLW1ldGEtYXZhdGFyXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0aHlBdmF0YXI7IGVsc2UgYXZhdGFyVGVtcGxhdGVSZWZcIj5cbiAgICA8dGh5LWF2YXRhciBbdGh5U3JjXT1cInRoeUF2YXRhclwiPjwvdGh5LWF2YXRhcj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJ0aHktbGlzdC1pdGVtLW1ldGEtY29udGVudFwiPlxuICA8ZGl2IGNsYXNzPVwidGh5LWxpc3QtaXRlbS1tZXRhLXRpdGxlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRoeVRpdGxlOyBlbHNlIHRpdGxlVGVtcGxhdGVSZWZcIj57eyB0aHlUaXRsZSB9fTwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInRoeS1saXN0LWl0ZW0tbWV0YS1kZXNjcmlwdGlvblwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0aHlEZXNjcmlwdGlvbjsgZWxzZSBkZXNjcmlwdGlvblRlbXBsYXRlUmVmXCI+e3sgdGh5RGVzY3JpcHRpb24gfX08L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLW1ldGEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpc3QvbGlzdC1pdGVtLW1ldGEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2xpc3QvbGlzdC1pdGVtLW1ldGEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUU5Qzs7O0dBR0c7QUFRSCxNQUFNLE9BQU8sZUFBZTtJQTJCeEI7UUFGc0IsY0FBUyxHQUFHLG9CQUFvQixDQUFDO0lBRXhDLENBQUM7OEdBM0JQLGVBQWU7a0dBQWYsZUFBZSw2aUJDZjVCLDhxQkF1QkEsNENEVmMsU0FBUyxvUUFBRSxnQkFBZ0I7OzJGQUU1QixlQUFlO2tCQVAzQixTQUFTOytCQUNJLHlDQUF5QyxtQkFFbEMsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLENBQUM7d0RBTTdCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSztnQkFLRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdDLGlCQUFpQjtzQkFEdkIsWUFBWTt1QkFBQyxZQUFZO2dCQUluQixnQkFBZ0I7c0JBRHRCLFlBQVk7dUJBQUMsV0FBVztnQkFJbEIsc0JBQXNCO3NCQUQ1QixZQUFZO3VCQUFDLGlCQUFpQjtnQkFHVCxTQUFTO3NCQUE5QixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIEhvc3RCaW5kaW5nLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVGVtcGxhdGVSZWYsIENvbnRlbnRDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGh5QXZhdGFyIH0gZnJvbSAnbmd4LXRldGh5cy9hdmF0YXInO1xuXG4vKipcbiAqIEBuYW1lIHRoeS1saXN0LWl0ZW0tbWV0YSxbdGh5LWxpc3QtaXRlbS1tZXRhXVxuICogQG9yZGVyIDQwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LWxpc3QtaXRlbS1tZXRhLFt0aHktbGlzdC1pdGVtLW1ldGFdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGlzdC1pdGVtLW1ldGEuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1RoeUF2YXRhciwgTmdUZW1wbGF0ZU91dGxldF1cbn0pXG5leHBvcnQgY2xhc3MgVGh5TGlzdEl0ZW1NZXRhIHtcbiAgICAvKipcbiAgICAgKiDliJfooajpobnnmoTlt6bkvqflm77niYdcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlBdmF0YXI6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOWIl+ihqOmhueeahOagh+mimFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVRpdGxlOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDliJfooajpobnnmoTmj4/ov7DmlofmnKxcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlEZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gICAgQENvbnRlbnRDaGlsZCgnbWV0YUF2YXRhcicpXG4gICAgcHVibGljIGF2YXRhclRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQENvbnRlbnRDaGlsZCgnbWV0YVRpdGxlJylcbiAgICBwdWJsaWMgdGl0bGVUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBDb250ZW50Q2hpbGQoJ21ldGFEZXNjcmlwdGlvbicpXG4gICAgcHVibGljIGRlc2NyaXB0aW9uVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY2xhc3NOYW1lID0gYHRoeS1saXN0LWl0ZW0tbWV0YWA7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHt9XG59XG4iLCI8ZGl2IGNsYXNzPVwidGh5LWxpc3QtaXRlbS1tZXRhLWF2YXRhclwiPlxuICBAaWYgKHRoeUF2YXRhcikge1xuICAgIDx0aHktYXZhdGFyIFt0aHlTcmNdPVwidGh5QXZhdGFyXCI+PC90aHktYXZhdGFyPlxuICB9IEBlbHNlIHtcbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiYXZhdGFyVGVtcGxhdGVSZWZcIj48L25nLXRlbXBsYXRlPlxuICB9XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJ0aHktbGlzdC1pdGVtLW1ldGEtY29udGVudFwiPlxuICA8ZGl2IGNsYXNzPVwidGh5LWxpc3QtaXRlbS1tZXRhLXRpdGxlXCI+XG4gICAgQGlmICh0aHlUaXRsZSkge1xuICAgICAge3sgdGh5VGl0bGUgfX1cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0aXRsZVRlbXBsYXRlUmVmXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICB9XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwidGh5LWxpc3QtaXRlbS1tZXRhLWRlc2NyaXB0aW9uXCI+XG4gICAgQGlmICh0aHlEZXNjcmlwdGlvbikge1xuICAgICAge3sgdGh5RGVzY3JpcHRpb24gfX1cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJkZXNjcmlwdGlvblRlbXBsYXRlUmVmXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICB9XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=