ngx-tethys 18.1.0-next.0 → 18.1.0

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 (558) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/action/action.component.d.ts +1 -2
  3. package/affix/affix.component.d.ts +2 -4
  4. package/anchor/anchor-link.component.d.ts +2 -4
  5. package/anchor/anchor.component.d.ts +1 -4
  6. package/arrow-switcher/arrow-switcher.component.d.ts +1 -2
  7. package/autocomplete/autocomplete.component.d.ts +1 -2
  8. package/autocomplete/autocomplete.trigger.directive.d.ts +3 -5
  9. package/autocomplete/overlay/autocomplete-container.component.d.ts +4 -4
  10. package/autocomplete/overlay/autocomplete.service.d.ts +3 -5
  11. package/avatar/avatar.component.d.ts +1 -3
  12. package/avatar/avatar.pipe.d.ts +0 -2
  13. package/back-top/back-top.component.d.ts +2 -4
  14. package/badge/badge.component.d.ts +5 -14
  15. package/breadcrumb/breadcrumb-item.component.d.ts +1 -2
  16. package/breadcrumb/breadcrumb.component.d.ts +1 -2
  17. package/button/button.component.d.ts +1 -2
  18. package/calendar/calendar-header.component.d.ts +1 -2
  19. package/calendar/calendar.component.d.ts +1 -2
  20. package/carousel/carousel-item.directive.d.ts +1 -2
  21. package/carousel/carousel.component.d.ts +1 -4
  22. package/carousel/carousel.service.d.ts +1 -2
  23. package/cascader/cascader.component.d.ts +4 -4
  24. package/checkbox/checkbox.component.d.ts +0 -2
  25. package/collapse/collapse-item.component.d.ts +2 -4
  26. package/color-picker/color-picker-panel.component.d.ts +2 -3
  27. package/color-picker/color-picker.component.d.ts +2 -4
  28. package/color-picker/coordinates.directive.d.ts +1 -2
  29. package/color-picker/parts/alpha/alpha.component.d.ts +1 -2
  30. package/color-picker/parts/hue/hue.component.d.ts +1 -2
  31. package/color-picker/parts/saturation/saturation.component.d.ts +1 -2
  32. package/copy/copy.directive.d.ts +0 -2
  33. package/core/click-positioner.d.ts +0 -2
  34. package/core/scroll.d.ts +1 -2
  35. package/core/update-host-class.service.d.ts +1 -2
  36. package/date-picker/abstract-picker.component.d.ts +1 -1
  37. package/date-picker/abstract-picker.directive.d.ts +2 -3
  38. package/date-picker/base-picker.component.d.ts +2 -3
  39. package/date-picker/date-picker.component.d.ts +2 -2
  40. package/date-picker/date-picker.directive.d.ts +1 -3
  41. package/date-picker/date-picker.service.d.ts +2 -2
  42. package/date-picker/lib/calendar/calendar-footer.component.d.ts +1 -2
  43. package/date-picker/lib/calendar/calendar-header.component.d.ts +0 -1
  44. package/date-picker/lib/date/date-header.component.d.ts +0 -3
  45. package/date-picker/lib/date/date-table.component.d.ts +1 -3
  46. package/date-picker/lib/date-carousel/date-carousel.component.d.ts +1 -2
  47. package/date-picker/lib/decade/decade-header.component.d.ts +1 -1
  48. package/date-picker/lib/month/month-header.component.d.ts +0 -3
  49. package/date-picker/lib/month/month-table.component.d.ts +1 -2
  50. package/date-picker/lib/popups/date-popup.component.d.ts +1 -3
  51. package/date-picker/lib/popups/inner-popup.component.d.ts +1 -4
  52. package/date-picker/lib/quarter/quarter-table.component.d.ts +1 -2
  53. package/date-picker/lib/year/year-header.component.d.ts +0 -1
  54. package/date-picker/month-picker.component.d.ts +2 -2
  55. package/date-picker/picker.component.d.ts +1 -3
  56. package/date-picker/picker.pipes.d.ts +0 -3
  57. package/date-picker/quarter-picker.component.d.ts +2 -2
  58. package/date-picker/range-picker.component.d.ts +2 -2
  59. package/date-picker/range-picker.directive.d.ts +2 -3
  60. package/date-picker/week-picker.component.d.ts +2 -2
  61. package/date-picker/year-picker.component.d.ts +2 -2
  62. package/date-range/date-range.component.d.ts +1 -3
  63. package/date-range/optional-dates/optional-dates.component.d.ts +0 -2
  64. package/dialog/body/dialog-body.component.d.ts +0 -2
  65. package/dialog/confirm/confirm.component.d.ts +2 -3
  66. package/dialog/dialog-container.component.d.ts +4 -5
  67. package/dialog/dialog.service.d.ts +4 -4
  68. package/dialog/footer/dialog-footer.component.d.ts +2 -2
  69. package/dialog/header/dialog-header.component.d.ts +2 -6
  70. package/dot/dot.component.d.ts +1 -2
  71. package/drag-drop/drag-content.directive.d.ts +2 -3
  72. package/drag-drop/drag-handle.directive.d.ts +2 -3
  73. package/drag-drop/drag.directive.d.ts +4 -5
  74. package/drag-drop/drop-container.directive.d.ts +6 -3
  75. package/dropdown/dropdown-active.directive.d.ts +3 -4
  76. package/dropdown/dropdown-menu-item.directive.d.ts +1 -2
  77. package/dropdown/dropdown-submenu.component.d.ts +1 -3
  78. package/dropdown/dropdown.directive.d.ts +3 -5
  79. package/empty/empty.component.d.ts +6 -6
  80. package/esm2022/action/action.component.mjs +18 -18
  81. package/esm2022/affix/affix.component.mjs +11 -14
  82. package/esm2022/anchor/anchor-link.component.mjs +9 -10
  83. package/esm2022/anchor/anchor.component.mjs +11 -16
  84. package/esm2022/arrow-switcher/arrow-switcher.component.mjs +22 -22
  85. package/esm2022/autocomplete/autocomplete.component.mjs +7 -7
  86. package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +30 -37
  87. package/esm2022/autocomplete/overlay/autocomplete-container.component.mjs +11 -15
  88. package/esm2022/autocomplete/overlay/autocomplete.service.mjs +14 -21
  89. package/esm2022/avatar/avatar.component.mjs +24 -25
  90. package/esm2022/avatar/avatar.pipe.mjs +6 -7
  91. package/esm2022/back-top/back-top.component.mjs +11 -15
  92. package/esm2022/badge/badge.component.mjs +6 -6
  93. package/esm2022/breadcrumb/breadcrumb-item.component.mjs +7 -7
  94. package/esm2022/breadcrumb/breadcrumb.component.mjs +12 -12
  95. package/esm2022/button/button.component.mjs +12 -12
  96. package/esm2022/calendar/calendar-header.component.mjs +12 -12
  97. package/esm2022/calendar/calendar.component.mjs +12 -12
  98. package/esm2022/carousel/carousel-item.directive.mjs +7 -6
  99. package/esm2022/carousel/carousel.component.mjs +10 -12
  100. package/esm2022/carousel/carousel.service.mjs +7 -9
  101. package/esm2022/cascader/cascader.component.mjs +11 -16
  102. package/esm2022/checkbox/checkbox.component.mjs +7 -9
  103. package/esm2022/collapse/collapse-item.component.mjs +18 -21
  104. package/esm2022/color-picker/color-picker-panel.component.mjs +11 -12
  105. package/esm2022/color-picker/color-picker.component.mjs +10 -11
  106. package/esm2022/color-picker/coordinates.directive.mjs +10 -10
  107. package/esm2022/color-picker/parts/alpha/alpha.component.mjs +6 -6
  108. package/esm2022/color-picker/parts/hue/hue.component.mjs +6 -6
  109. package/esm2022/color-picker/parts/saturation/saturation.component.mjs +9 -9
  110. package/esm2022/copy/copy.directive.mjs +8 -12
  111. package/esm2022/core/click-positioner.mjs +6 -7
  112. package/esm2022/core/scroll.mjs +7 -9
  113. package/esm2022/core/store/store.mjs +1 -1
  114. package/esm2022/core/update-host-class.service.mjs +6 -6
  115. package/esm2022/date-picker/abstract-picker.component.mjs +5 -5
  116. package/esm2022/date-picker/abstract-picker.directive.mjs +42 -44
  117. package/esm2022/date-picker/base-picker.component.mjs +26 -26
  118. package/esm2022/date-picker/date-picker.component.mjs +6 -6
  119. package/esm2022/date-picker/date-picker.directive.mjs +6 -8
  120. package/esm2022/date-picker/date-picker.service.mjs +6 -10
  121. package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +5 -5
  122. package/esm2022/date-picker/lib/calendar/calendar-header.component.mjs +6 -7
  123. package/esm2022/date-picker/lib/date/date-header.component.mjs +3 -9
  124. package/esm2022/date-picker/lib/date/date-table.component.mjs +7 -9
  125. package/esm2022/date-picker/lib/date-carousel/date-carousel.component.mjs +12 -12
  126. package/esm2022/date-picker/lib/decade/decade-header.component.mjs +5 -8
  127. package/esm2022/date-picker/lib/month/month-header.component.mjs +3 -9
  128. package/esm2022/date-picker/lib/month/month-table.component.mjs +6 -7
  129. package/esm2022/date-picker/lib/popups/date-popup.component.mjs +12 -13
  130. package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +12 -13
  131. package/esm2022/date-picker/lib/quarter/quarter-table.component.mjs +6 -7
  132. package/esm2022/date-picker/lib/year/year-header.component.mjs +3 -9
  133. package/esm2022/date-picker/month-picker.component.mjs +6 -7
  134. package/esm2022/date-picker/picker.component.mjs +21 -22
  135. package/esm2022/date-picker/picker.pipes.mjs +10 -11
  136. package/esm2022/date-picker/quarter-picker.component.mjs +6 -7
  137. package/esm2022/date-picker/range-picker.component.mjs +6 -7
  138. package/esm2022/date-picker/range-picker.directive.mjs +6 -8
  139. package/esm2022/date-picker/week-picker.component.mjs +6 -7
  140. package/esm2022/date-picker/year-picker.component.mjs +6 -7
  141. package/esm2022/date-range/date-range.component.mjs +14 -15
  142. package/esm2022/date-range/optional-dates/optional-dates.component.mjs +8 -9
  143. package/esm2022/dialog/body/dialog-body.component.mjs +11 -12
  144. package/esm2022/dialog/confirm/confirm.component.mjs +10 -14
  145. package/esm2022/dialog/dialog-container.component.mjs +13 -18
  146. package/esm2022/dialog/dialog.service.mjs +10 -17
  147. package/esm2022/dialog/footer/dialog-footer.component.mjs +7 -11
  148. package/esm2022/dialog/header/dialog-header.component.mjs +14 -19
  149. package/esm2022/dot/dot.component.mjs +7 -7
  150. package/esm2022/drag-drop/drag-content.directive.mjs +7 -9
  151. package/esm2022/drag-drop/drag-handle.directive.mjs +7 -9
  152. package/esm2022/drag-drop/drag.directive.mjs +13 -16
  153. package/esm2022/drag-drop/drop-container.directive.mjs +13 -13
  154. package/esm2022/dropdown/dropdown-active.directive.mjs +9 -12
  155. package/esm2022/dropdown/dropdown-menu-item.directive.mjs +12 -12
  156. package/esm2022/dropdown/dropdown-submenu.component.mjs +9 -10
  157. package/esm2022/dropdown/dropdown.directive.mjs +12 -10
  158. package/esm2022/empty/empty.component.mjs +14 -17
  159. package/esm2022/flexible-text/flexible-text.component.mjs +16 -17
  160. package/esm2022/form/form-group-error/form-group-error.component.mjs +9 -12
  161. package/esm2022/form/form-group-label.directive.mjs +9 -10
  162. package/esm2022/form/form-group.component.mjs +15 -19
  163. package/esm2022/form/form-submit.directive.mjs +6 -7
  164. package/esm2022/form/form-validator-loader.mjs +1 -1
  165. package/esm2022/form/form-validator.service.mjs +12 -13
  166. package/esm2022/form/form.directive.mjs +11 -16
  167. package/esm2022/form/from-group-footer/form-group-footer.component.mjs +10 -16
  168. package/esm2022/form/validator/unique-validator.directive.mjs +7 -10
  169. package/esm2022/fullscreen/fullscreen.component.mjs +10 -11
  170. package/esm2022/fullscreen/fullscreen.service.mjs +7 -10
  171. package/esm2022/grid/thy-col.directive.mjs +9 -14
  172. package/esm2022/grid/thy-grid-item.component.mjs +8 -14
  173. package/esm2022/grid/thy-grid.component.mjs +7 -8
  174. package/esm2022/guider/guider.directive.mjs +8 -9
  175. package/esm2022/guider/guider.service.mjs +12 -19
  176. package/esm2022/icon/icon-registry.mjs +11 -16
  177. package/esm2022/icon/icon.component.mjs +8 -9
  178. package/esm2022/image/image-group.component.mjs +7 -7
  179. package/esm2022/image/image.directive.mjs +11 -12
  180. package/esm2022/image/image.service.mjs +8 -14
  181. package/esm2022/image/preview/image-preview.component.mjs +34 -38
  182. package/esm2022/input/input-count.component.mjs +7 -10
  183. package/esm2022/input/input-group.component.mjs +12 -13
  184. package/esm2022/input/input-search.component.mjs +7 -7
  185. package/esm2022/input/input.component.mjs +14 -14
  186. package/esm2022/input/input.directive.mjs +12 -17
  187. package/esm2022/input-number/input-number.component.mjs +6 -6
  188. package/esm2022/layout/sidebar.component.mjs +45 -51
  189. package/esm2022/list/selection/selection-list.mjs +25 -25
  190. package/esm2022/loading/loading.component.mjs +8 -8
  191. package/esm2022/mention/mention.directive.mjs +9 -14
  192. package/esm2022/mention/suggestions/suggestions.component.mjs +8 -9
  193. package/esm2022/menu/group/menu-group.component.mjs +34 -35
  194. package/esm2022/menu/item/action/menu-item-action.component.mjs +15 -16
  195. package/esm2022/menu/item/menu-item.component.mjs +6 -6
  196. package/esm2022/message/abstract/abstract-message-container.component.mjs +5 -5
  197. package/esm2022/message/abstract/abstract-message.component.mjs +6 -6
  198. package/esm2022/message/message-container.component.mjs +9 -11
  199. package/esm2022/message/message-queue.service.mjs +6 -8
  200. package/esm2022/message/message.component.mjs +7 -7
  201. package/esm2022/message/message.service.mjs +10 -11
  202. package/esm2022/nav/icon-nav/icon-nav.component.mjs +6 -6
  203. package/esm2022/nav/nav-ink-bar.directive.mjs +9 -14
  204. package/esm2022/nav/nav-item.directive.mjs +8 -11
  205. package/esm2022/nav/nav.component.mjs +32 -33
  206. package/esm2022/nav/nav.pipe.mjs +6 -7
  207. package/esm2022/notify/notify-container.component.mjs +8 -11
  208. package/esm2022/notify/notify-queue.service.mjs +6 -8
  209. package/esm2022/notify/notify.component.mjs +7 -7
  210. package/esm2022/notify/notify.service.mjs +11 -12
  211. package/esm2022/pagination/pagination.component.mjs +38 -43
  212. package/esm2022/pagination/pagination.pipe.mjs +6 -7
  213. package/esm2022/popover/header/popover-header.component.mjs +12 -14
  214. package/esm2022/popover/popover-container.component.mjs +11 -13
  215. package/esm2022/popover/popover.directive.mjs +13 -12
  216. package/esm2022/popover/popover.service.mjs +14 -26
  217. package/esm2022/progress/progress-strip.component.mjs +10 -13
  218. package/esm2022/property/property-item.component.mjs +10 -13
  219. package/esm2022/property-operation/property-operation.component.mjs +24 -25
  220. package/esm2022/radio/button/radio-button.component.mjs +9 -15
  221. package/esm2022/radio/group/radio-group.component.mjs +17 -17
  222. package/esm2022/radio/radio.component.mjs +8 -14
  223. package/esm2022/rate/rate.component.mjs +6 -6
  224. package/esm2022/resizable/resizable.directive.mjs +10 -12
  225. package/esm2022/resizable/resizable.service.mjs +7 -9
  226. package/esm2022/resizable/resize-handle.component.mjs +7 -8
  227. package/esm2022/segment/segment-item.component.mjs +12 -15
  228. package/esm2022/segment/segment.component.mjs +26 -26
  229. package/esm2022/select/custom-select/custom-select.component.mjs +14 -28
  230. package/esm2022/select/native-select/native-select.component.mjs +6 -6
  231. package/esm2022/shared/base-form-check.component.mjs +7 -8
  232. package/esm2022/shared/directives/string-or-template-outlet.directive.mjs +7 -7
  233. package/esm2022/shared/directives/thy-autofocus.directive.mjs +10 -10
  234. package/esm2022/shared/directives/thy-contextmenu.directive.mjs +8 -8
  235. package/esm2022/shared/directives/thy-ctrl-enter.directive.mjs +8 -8
  236. package/esm2022/shared/directives/thy-enter.directive.mjs +8 -8
  237. package/esm2022/shared/directives/thy-scroll.directive.mjs +21 -21
  238. package/esm2022/shared/directives/thy-show.mjs +11 -11
  239. package/esm2022/shared/directives/thy-stop-propagation.directive.mjs +7 -5
  240. package/esm2022/shared/directives/view-outlet.directive.mjs +7 -7
  241. package/esm2022/shared/ng-transclude.directive.mjs +6 -5
  242. package/esm2022/shared/option/group/option-group.component.mjs +10 -10
  243. package/esm2022/shared/option/list-option/list-option.component.mjs +12 -19
  244. package/esm2022/shared/option/option.component.mjs +9 -19
  245. package/esm2022/shared/select/select-control/select-control.component.mjs +23 -23
  246. package/esm2022/skeleton/skeleton-circle.component.mjs +7 -15
  247. package/esm2022/skeleton/skeleton-rectangle.component.mjs +7 -15
  248. package/esm2022/slide/drawer/drawer-container.directive.mjs +6 -6
  249. package/esm2022/slide/slide-container.component.mjs +12 -16
  250. package/esm2022/slide/slide-header/slide-header.component.mjs +10 -11
  251. package/esm2022/slide/slide-ref.service.mjs +1 -1
  252. package/esm2022/slide/slide.service.mjs +8 -12
  253. package/esm2022/slider/slider.component.mjs +8 -8
  254. package/esm2022/space/space.component.mjs +13 -13
  255. package/esm2022/statistic/statistic.component.mjs +20 -20
  256. package/esm2022/stepper/step.component.mjs +6 -11
  257. package/esm2022/stepper/stepper-button.directive.mjs +10 -11
  258. package/esm2022/strength/strength.component.mjs +11 -12
  259. package/esm2022/switch/switch.component.mjs +6 -6
  260. package/esm2022/table/table-column.component.mjs +58 -63
  261. package/esm2022/table/table-skeleton.component.mjs +32 -32
  262. package/esm2022/table/table.component.mjs +16 -24
  263. package/esm2022/tabs/tabs.component.mjs +19 -19
  264. package/esm2022/tag/tag.component.mjs +22 -22
  265. package/esm2022/time-picker/inner/inner-time-picker.component.mjs +10 -9
  266. package/esm2022/time-picker/time-picker-panel.component.mjs +27 -27
  267. package/esm2022/time-picker/time-picker.component.mjs +29 -29
  268. package/esm2022/timeline/timeline-item.component.mjs +12 -13
  269. package/esm2022/timeline/timeline.component.mjs +7 -8
  270. package/esm2022/tooltip/tooltip.component.mjs +14 -14
  271. package/esm2022/tooltip/tooltip.directive.mjs +11 -10
  272. package/esm2022/tooltip/tooltip.service.mjs +9 -13
  273. package/esm2022/transfer/transfer-list.component.mjs +6 -6
  274. package/esm2022/tree/tree-node.component.mjs +13 -17
  275. package/esm2022/tree/tree.component.mjs +86 -90
  276. package/esm2022/tree-select/tree-select.component.mjs +22 -27
  277. package/esm2022/typography/bg-color.directive.mjs +9 -9
  278. package/esm2022/typography/text-color.directive.mjs +9 -9
  279. package/esm2022/upload/file-drop.directive.mjs +1 -1
  280. package/esm2022/upload/file-select-base.mjs +5 -6
  281. package/esm2022/upload/file-select.component.mjs +4 -3
  282. package/esm2022/upload/upload.service.mjs +6 -7
  283. package/esm2022/version.mjs +2 -2
  284. package/esm2022/watermark/watermark.directive.mjs +12 -12
  285. package/fesm2022/ngx-tethys-action.mjs +17 -17
  286. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  287. package/fesm2022/ngx-tethys-affix.mjs +12 -14
  288. package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
  289. package/fesm2022/ngx-tethys-anchor.mjs +19 -22
  290. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  291. package/fesm2022/ngx-tethys-arrow-switcher.mjs +21 -21
  292. package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
  293. package/fesm2022/ngx-tethys-autocomplete.mjs +59 -71
  294. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  295. package/fesm2022/ngx-tethys-avatar.mjs +27 -27
  296. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  297. package/fesm2022/ngx-tethys-back-top.mjs +12 -15
  298. package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
  299. package/fesm2022/ngx-tethys-badge.mjs +5 -5
  300. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  301. package/fesm2022/ngx-tethys-breadcrumb.mjs +16 -16
  302. package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
  303. package/fesm2022/ngx-tethys-button.mjs +11 -11
  304. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  305. package/fesm2022/ngx-tethys-calendar.mjs +21 -21
  306. package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
  307. package/fesm2022/ngx-tethys-carousel.mjs +20 -21
  308. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  309. package/fesm2022/ngx-tethys-cascader.mjs +11 -15
  310. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  311. package/fesm2022/ngx-tethys-checkbox.mjs +6 -7
  312. package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
  313. package/fesm2022/ngx-tethys-collapse.mjs +17 -19
  314. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  315. package/fesm2022/ngx-tethys-color-picker.mjs +44 -42
  316. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  317. package/fesm2022/ngx-tethys-copy.mjs +8 -12
  318. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  319. package/fesm2022/ngx-tethys-core.mjs +14 -16
  320. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  321. package/fesm2022/ngx-tethys-date-picker.mjs +192 -216
  322. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  323. package/fesm2022/ngx-tethys-date-range.mjs +20 -20
  324. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  325. package/fesm2022/ngx-tethys-dialog.mjs +56 -72
  326. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  327. package/fesm2022/ngx-tethys-dot.mjs +6 -6
  328. package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
  329. package/fesm2022/ngx-tethys-drag-drop.mjs +33 -37
  330. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  331. package/fesm2022/ngx-tethys-dropdown.mjs +39 -37
  332. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  333. package/fesm2022/ngx-tethys-empty.mjs +15 -15
  334. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  335. package/fesm2022/ngx-tethys-flexible-text.mjs +16 -17
  336. package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
  337. package/fesm2022/ngx-tethys-form.mjs +67 -82
  338. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  339. package/fesm2022/ngx-tethys-fullscreen.mjs +14 -17
  340. package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
  341. package/fesm2022/ngx-tethys-grid.mjs +20 -29
  342. package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
  343. package/fesm2022/ngx-tethys-guider.mjs +17 -23
  344. package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
  345. package/fesm2022/ngx-tethys-icon.mjs +18 -22
  346. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  347. package/fesm2022/ngx-tethys-image.mjs +57 -62
  348. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  349. package/fesm2022/ngx-tethys-input-number.mjs +5 -5
  350. package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
  351. package/fesm2022/ngx-tethys-input.mjs +46 -53
  352. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  353. package/fesm2022/ngx-tethys-layout.mjs +45 -50
  354. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  355. package/fesm2022/ngx-tethys-list.mjs +24 -24
  356. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  357. package/fesm2022/ngx-tethys-loading.mjs +7 -7
  358. package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
  359. package/fesm2022/ngx-tethys-mention.mjs +16 -21
  360. package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
  361. package/fesm2022/ngx-tethys-menu.mjs +51 -52
  362. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  363. package/fesm2022/ngx-tethys-message.mjs +33 -35
  364. package/fesm2022/ngx-tethys-message.mjs.map +1 -1
  365. package/fesm2022/ngx-tethys-nav.mjs +55 -64
  366. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  367. package/fesm2022/ngx-tethys-notify.mjs +26 -29
  368. package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
  369. package/fesm2022/ngx-tethys-pagination.mjs +44 -49
  370. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  371. package/fesm2022/ngx-tethys-popover.mjs +48 -54
  372. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  373. package/fesm2022/ngx-tethys-progress.mjs +9 -12
  374. package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
  375. package/fesm2022/ngx-tethys-property-operation.mjs +24 -24
  376. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  377. package/fesm2022/ngx-tethys-property.mjs +11 -11
  378. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  379. package/fesm2022/ngx-tethys-radio.mjs +29 -35
  380. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  381. package/fesm2022/ngx-tethys-rate.mjs +5 -5
  382. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  383. package/fesm2022/ngx-tethys-resizable.mjs +22 -25
  384. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  385. package/fesm2022/ngx-tethys-segment.mjs +35 -38
  386. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  387. package/fesm2022/ngx-tethys-select.mjs +20 -34
  388. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  389. package/fesm2022/ngx-tethys-shared.mjs +128 -143
  390. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  391. package/fesm2022/ngx-tethys-skeleton.mjs +11 -25
  392. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  393. package/fesm2022/ngx-tethys-slide.mjs +30 -34
  394. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  395. package/fesm2022/ngx-tethys-slider.mjs +7 -7
  396. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  397. package/fesm2022/ngx-tethys-space.mjs +13 -13
  398. package/fesm2022/ngx-tethys-space.mjs.map +1 -1
  399. package/fesm2022/ngx-tethys-statistic.mjs +19 -19
  400. package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
  401. package/fesm2022/ngx-tethys-stepper.mjs +13 -18
  402. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  403. package/fesm2022/ngx-tethys-strength.mjs +11 -11
  404. package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
  405. package/fesm2022/ngx-tethys-switch.mjs +5 -5
  406. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  407. package/fesm2022/ngx-tethys-table.mjs +103 -115
  408. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  409. package/fesm2022/ngx-tethys-tabs.mjs +19 -19
  410. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  411. package/fesm2022/ngx-tethys-tag.mjs +21 -21
  412. package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
  413. package/fesm2022/ngx-tethys-time-picker.mjs +61 -58
  414. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  415. package/fesm2022/ngx-tethys-timeline.mjs +16 -16
  416. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  417. package/fesm2022/ngx-tethys-tooltip.mjs +32 -33
  418. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  419. package/fesm2022/ngx-tethys-transfer.mjs +5 -5
  420. package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
  421. package/fesm2022/ngx-tethys-tree-select.mjs +23 -28
  422. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  423. package/fesm2022/ngx-tethys-tree.mjs +96 -102
  424. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  425. package/fesm2022/ngx-tethys-typography.mjs +15 -15
  426. package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
  427. package/fesm2022/ngx-tethys-upload.mjs +11 -12
  428. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  429. package/fesm2022/ngx-tethys-watermark.mjs +12 -12
  430. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  431. package/fesm2022/ngx-tethys.mjs +1 -1
  432. package/fesm2022/ngx-tethys.mjs.map +1 -1
  433. package/flexible-text/flexible-text.component.d.ts +1 -3
  434. package/form/form-group-error/form-group-error.component.d.ts +1 -3
  435. package/form/form-group-label.directive.d.ts +0 -2
  436. package/form/form-group.component.d.ts +1 -4
  437. package/form/form-submit.directive.d.ts +0 -2
  438. package/form/form-validator.service.d.ts +0 -2
  439. package/form/form.directive.d.ts +4 -4
  440. package/form/from-group-footer/form-group-footer.component.d.ts +2 -4
  441. package/form/validator/unique-validator.directive.d.ts +1 -4
  442. package/fullscreen/fullscreen.component.d.ts +0 -2
  443. package/fullscreen/fullscreen.service.d.ts +0 -2
  444. package/grid/thy-col.directive.d.ts +1 -2
  445. package/grid/thy-grid-item.component.d.ts +2 -4
  446. package/grid/thy-grid.component.d.ts +1 -3
  447. package/guider/guider.directive.d.ts +1 -3
  448. package/guider/guider.service.d.ts +0 -7
  449. package/icon/icon-registry.d.ts +1 -3
  450. package/icon/icon.component.d.ts +1 -3
  451. package/image/image-group.component.d.ts +1 -2
  452. package/image/image.directive.d.ts +1 -3
  453. package/image/image.service.d.ts +2 -2
  454. package/image/preview/image-preview.component.d.ts +1 -4
  455. package/input/input-count.component.d.ts +3 -4
  456. package/input/input-group.component.d.ts +1 -3
  457. package/input/input-search.component.d.ts +2 -2
  458. package/input/input.component.d.ts +1 -2
  459. package/input/input.directive.d.ts +2 -3
  460. package/input-number/input-number.component.d.ts +2 -2
  461. package/layout/sidebar.component.d.ts +44 -13
  462. package/list/selection/selection-list.d.ts +1 -2
  463. package/loading/loading.component.d.ts +0 -2
  464. package/loading/styles/loading.scss +3 -1
  465. package/mention/mention.directive.d.ts +4 -5
  466. package/mention/suggestions/suggestions.component.d.ts +2 -3
  467. package/menu/group/menu-group.component.d.ts +12 -26
  468. package/menu/item/action/menu-item-action.component.d.ts +2 -3
  469. package/menu/item/menu-item.component.d.ts +1 -2
  470. package/message/abstract/abstract-message-container.component.d.ts +1 -2
  471. package/message/abstract/abstract-message.component.d.ts +2 -2
  472. package/message/message-container.component.d.ts +1 -3
  473. package/message/message-queue.service.d.ts +1 -2
  474. package/message/message.component.d.ts +1 -3
  475. package/message/message.service.d.ts +3 -5
  476. package/nav/icon-nav/icon-nav.component.d.ts +2 -2
  477. package/nav/nav-ink-bar.directive.d.ts +2 -4
  478. package/nav/nav-item.directive.d.ts +3 -4
  479. package/nav/nav.component.d.ts +1 -3
  480. package/nav/nav.pipe.d.ts +0 -2
  481. package/notify/notify-container.component.d.ts +1 -3
  482. package/notify/notify-queue.service.d.ts +1 -2
  483. package/notify/notify.component.d.ts +2 -3
  484. package/notify/notify.service.d.ts +1 -4
  485. package/package.json +1 -1
  486. package/pagination/pagination.component.d.ts +7 -19
  487. package/pagination/pagination.pipe.d.ts +0 -2
  488. package/popover/header/popover-header.component.d.ts +0 -3
  489. package/popover/popover-container.component.d.ts +3 -4
  490. package/popover/popover.directive.d.ts +2 -5
  491. package/popover/popover.service.d.ts +4 -6
  492. package/progress/progress-strip.component.d.ts +0 -1
  493. package/property/property-item.component.d.ts +6 -6
  494. package/property-operation/property-operation.component.d.ts +1 -3
  495. package/radio/button/radio-button.component.d.ts +2 -5
  496. package/radio/group/radio-group.component.d.ts +1 -2
  497. package/radio/radio.component.d.ts +2 -3
  498. package/rate/rate.component.d.ts +2 -2
  499. package/resizable/resizable.directive.d.ts +2 -4
  500. package/resizable/resizable.service.d.ts +2 -2
  501. package/resizable/resize-handle.component.d.ts +1 -3
  502. package/schematics/version.d.ts +1 -1
  503. package/schematics/version.js +1 -1
  504. package/segment/segment-item.component.d.ts +4 -5
  505. package/segment/segment.component.d.ts +1 -2
  506. package/select/custom-select/custom-select.component.d.ts +5 -5
  507. package/select/native-select/native-select.component.d.ts +1 -1
  508. package/shared/base-form-check.component.d.ts +1 -1
  509. package/shared/directives/string-or-template-outlet.directive.d.ts +1 -2
  510. package/shared/directives/thy-autofocus.directive.d.ts +0 -2
  511. package/shared/directives/thy-contextmenu.directive.d.ts +1 -2
  512. package/shared/directives/thy-ctrl-enter.directive.d.ts +1 -2
  513. package/shared/directives/thy-enter.directive.d.ts +1 -2
  514. package/shared/directives/thy-scroll.directive.d.ts +1 -2
  515. package/shared/directives/thy-show.d.ts +1 -2
  516. package/shared/directives/thy-stop-propagation.directive.d.ts +2 -2
  517. package/shared/directives/view-outlet.directive.d.ts +1 -2
  518. package/shared/ng-transclude.directive.d.ts +1 -1
  519. package/shared/option/group/option-group.component.d.ts +1 -2
  520. package/shared/option/list-option/list-option.component.d.ts +5 -10
  521. package/shared/option/option.component.d.ts +5 -5
  522. package/shared/select/select-control/select-control.component.d.ts +1 -2
  523. package/skeleton/skeleton-circle.component.d.ts +1 -4
  524. package/skeleton/skeleton-rectangle.component.d.ts +5 -5
  525. package/slide/drawer/drawer-container.directive.d.ts +1 -2
  526. package/slide/slide-container.component.d.ts +3 -4
  527. package/slide/slide-header/slide-header.component.d.ts +0 -2
  528. package/slide/slide.service.d.ts +3 -3
  529. package/slider/slider.component.d.ts +2 -2
  530. package/space/space.component.d.ts +1 -2
  531. package/statistic/statistic.component.d.ts +1 -2
  532. package/stepper/step.component.d.ts +1 -2
  533. package/stepper/stepper-button.directive.d.ts +0 -3
  534. package/strength/strength.component.d.ts +0 -1
  535. package/switch/switch.component.d.ts +1 -1
  536. package/table/table-column.component.d.ts +32 -8
  537. package/table/table-skeleton.component.d.ts +3 -12
  538. package/table/table.component.d.ts +3 -5
  539. package/tabs/tabs.component.d.ts +1 -2
  540. package/tag/tag.component.d.ts +7 -3
  541. package/time-picker/inner/inner-time-picker.component.d.ts +2 -4
  542. package/time-picker/time-picker-panel.component.d.ts +1 -2
  543. package/time-picker/time-picker.component.d.ts +1 -2
  544. package/timeline/timeline-item.component.d.ts +1 -3
  545. package/timeline/timeline.component.d.ts +1 -3
  546. package/tooltip/tooltip.component.d.ts +1 -2
  547. package/tooltip/tooltip.directive.d.ts +6 -9
  548. package/tooltip/tooltip.service.d.ts +2 -4
  549. package/transfer/transfer-list.component.d.ts +1 -2
  550. package/tree/tree-node.component.d.ts +5 -21
  551. package/tree/tree.component.d.ts +1 -2
  552. package/tree-select/tree-select.component.d.ts +5 -6
  553. package/typography/bg-color.directive.d.ts +0 -2
  554. package/typography/text-color.directive.d.ts +1 -2
  555. package/upload/file-select-base.d.ts +2 -3
  556. package/upload/file-select.component.d.ts +1 -0
  557. package/upload/upload.service.d.ts +0 -2
  558. package/watermark/watermark.directive.d.ts +1 -2
@@ -5,13 +5,11 @@ import { filter, startWith, takeUntil } from 'rxjs/operators';
5
5
  import { ViewportRuler } from '@angular/cdk/overlay';
6
6
  import { PortalModule } from '@angular/cdk/portal';
7
7
  import { DOCUMENT } from '@angular/common';
8
- import { ChangeDetectorRef, Component, ElementRef, Inject, NgZone, Renderer2, ViewChild } from '@angular/core';
8
+ import { ChangeDetectorRef, Component, ElementRef, NgZone, Renderer2, ViewChild, inject } from '@angular/core';
9
9
  import { useHostRenderer } from '@tethys/cdk/dom';
10
10
  import { thySlideAnimations } from './slide-animations';
11
11
  import { slideAbstractOverlayOptions, ThySlideConfig } from './slide.config';
12
12
  import * as i0 from "@angular/core";
13
- import * as i1 from "./slide.config";
14
- import * as i2 from "@angular/cdk/overlay";
15
13
  /**
16
14
  * @private
17
15
  */
@@ -50,14 +48,15 @@ export class ThySlideContainer extends ThyAbstractOverlayContainer {
50
48
  get drawerContainerElementClass() {
51
49
  return `thy-slide-${this.config.mode}-drawer-container`;
52
50
  }
53
- constructor(elementRef, document, config, changeDetectorRef, renderer, viewportRuler, ngZone) {
51
+ constructor() {
52
+ const changeDetectorRef = inject(ChangeDetectorRef);
54
53
  super(slideAbstractOverlayOptions, changeDetectorRef);
55
- this.elementRef = elementRef;
56
- this.document = document;
57
- this.config = config;
58
- this.renderer = renderer;
59
- this.viewportRuler = viewportRuler;
60
- this.ngZone = ngZone;
54
+ this.elementRef = inject(ElementRef);
55
+ this.document = inject(DOCUMENT);
56
+ this.config = inject(ThySlideConfig);
57
+ this.renderer = inject(Renderer2);
58
+ this.viewportRuler = inject(ViewportRuler);
59
+ this.ngZone = inject(NgZone);
61
60
  this.animationState = 'void';
62
61
  this.slideContainerStyles = {};
63
62
  this.ngUnsubscribe$ = new Subject();
@@ -160,7 +159,7 @@ export class ThySlideContainer extends ThyAbstractOverlayContainer {
160
159
  this.ngUnsubscribe$.next();
161
160
  this.ngUnsubscribe$.complete();
162
161
  }
163
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThySlideContainer, deps: [{ token: i0.ElementRef }, { token: DOCUMENT }, { token: i1.ThySlideConfig }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i2.ViewportRuler }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
162
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThySlideContainer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
164
163
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: ThySlideContainer, isStandalone: true, selector: "thy-slide-container", host: { attributes: { "tabindex": "-1" }, listeners: { "@slideContainer.start": "onAnimationStart($event)", "@slideContainer.done": "onAnimationDone($event)" }, properties: { "class.thy-slide-push": "isPush", "class.thy-slide-side": "isSide", "class.thy-slide-over": "!isPush && !isSide", "attr.role": "'slide'", "@slideContainer": "animationState", "style.width.px": "slideContainerStyles.width", "style.height.px": "slideContainerStyles.height", "style.max-height.px": "slideContainerStyles.height" }, classAttribute: "thy-slide-container" }, viewQueries: [{ propertyName: "portalOutlet", first: true, predicate: ThyPortalOutlet, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: ` <ng-template thyPortalOutlet></ng-template> `, isInline: true, dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: ThyPortalOutlet, selector: "[thyPortalOutlet]", inputs: ["thyPortalOutlet"], exportAs: ["thyPortalOutlet"] }], animations: [thySlideAnimations.slideContainer] }); }
165
164
  }
166
165
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThySlideContainer, decorators: [{
@@ -186,11 +185,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
186
185
  standalone: true,
187
186
  imports: [PortalModule, ThyPortalOutlet]
188
187
  }]
189
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: undefined, decorators: [{
190
- type: Inject,
191
- args: [DOCUMENT]
192
- }] }, { type: i1.ThySlideConfig }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i2.ViewportRuler }, { type: i0.NgZone }], propDecorators: { portalOutlet: [{
188
+ }], ctorParameters: () => [], propDecorators: { portalOutlet: [{
193
189
  type: ViewChild,
194
190
  args: [ThyPortalOutlet, { static: true }]
195
191
  }] } });
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGUtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zbGlkZS9zbGlkZS1jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFhLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWxELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxjQUFjLEVBQXFCLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFFaEc7O0dBRUc7QUFzQkgsTUFBTSxPQUFPLGlCQUFrQixTQUFRLDJCQUEyQjtJQWtCOUQsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztJQUN4RSxDQUFDO0lBRUQsSUFB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LHdCQUF3QixFQUFFLHlCQUF5Qjt3QkFDbkQsa0JBQWtCLEVBQUUsNEJBQTRCO3dCQUNoRCxtQkFBbUIsRUFBRSw2QkFBNkI7d0JBQ2xELHVCQUF1QixFQUFFLDZCQUE2QjtxQkFDekQ7b0JBQ0QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUM7aUJBQzNDOzswQkE0RFEsTUFBTTsyQkFBQyxRQUFROytLQXpEcEIsWUFBWTtzQkFEWCxTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaHlBYnN0cmFjdE92ZXJsYXlDb250YWluZXIsIFRoeVBvcnRhbE91dGxldCB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgeyBoZWxwZXJzIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgc3RhcnRXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEFuaW1hdGlvbkV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBWaWV3cG9ydFJ1bGVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgUG9ydGFsTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3QsIE5nWm9uZSwgT25EZXN0cm95LCBSZW5kZXJlcjIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdXNlSG9zdFJlbmRlcmVyIH0gZnJvbSAnQHRldGh5cy9jZGsvZG9tJztcblxuaW1wb3J0IHsgdGh5U2xpZGVBbmltYXRpb25zIH0gZnJvbSAnLi9zbGlkZS1hbmltYXRpb25zJztcbmltcG9ydCB7IHNsaWRlQWJzdHJhY3RPdmVybGF5T3B0aW9ucywgVGh5U2xpZGVDb25maWcsIFRoeVNsaWRlRnJvbVR5cGVzIH0gZnJvbSAnLi9zbGlkZS5jb25maWcnO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXNsaWRlLWNvbnRhaW5lcicsXG4gICAgdGVtcGxhdGU6IGAgPG5nLXRlbXBsYXRlIHRoeVBvcnRhbE91dGxldD48L25nLXRlbXBsYXRlPiBgLFxuICAgIGFuaW1hdGlvbnM6IFt0aHlTbGlkZUFuaW1hdGlvbnMuc2xpZGVDb250YWluZXJdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktc2xpZGUtY29udGFpbmVyJyxcbiAgICAgICAgJ1tjbGFzcy50aHktc2xpZGUtcHVzaF0nOiAnaXNQdXNoJyxcbiAgICAgICAgJ1tjbGFzcy50aHktc2xpZGUtc2lkZV0nOiAnaXNTaWRlJyxcbiAgICAgICAgJ1tjbGFzcy50aHktc2xpZGUtb3Zlcl0nOiAnIWlzUHVzaCAmJiAhaXNTaWRlJyxcbiAgICAgICAgdGFiaW5kZXg6ICctMScsXG4gICAgICAgICdbYXR0ci5yb2xlXSc6IGAnc2xpZGUnYCxcbiAgICAgICAgJ1tAc2xpZGVDb250YWluZXJdJzogJ2FuaW1hdGlvblN0YXRlJyxcbiAgICAgICAgJyhAc2xpZGVDb250YWluZXIuc3RhcnQpJzogJ29uQW5pbWF0aW9uU3RhcnQoJGV2ZW50KScsXG4gICAgICAgICcoQHNsaWRlQ29udGFpbmVyLmRvbmUpJzogJ29uQW5pbWF0aW9uRG9uZSgkZXZlbnQpJyxcbiAgICAgICAgJ1tzdHlsZS53aWR0aC5weF0nOiAnc2xpZGVDb250YWluZXJTdHlsZXMud2lkdGgnLFxuICAgICAgICAnW3N0eWxlLmhlaWdodC5weF0nOiAnc2xpZGVDb250YWluZXJTdHlsZXMuaGVpZ2h0JyxcbiAgICAgICAgJ1tzdHlsZS5tYXgtaGVpZ2h0LnB4XSc6ICdzbGlkZUNvbnRhaW5lclN0eWxlcy5oZWlnaHQnXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtQb3J0YWxNb2R1bGUsIFRoeVBvcnRhbE91dGxldF1cbn0pXG5leHBvcnQgY2xhc3MgVGh5U2xpZGVDb250YWluZXIgZXh0ZW5kcyBUaHlBYnN0cmFjdE92ZXJsYXlDb250YWluZXIgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIEBWaWV3Q2hpbGQoVGh5UG9ydGFsT3V0bGV0LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHBvcnRhbE91dGxldDogVGh5UG9ydGFsT3V0bGV0O1xuXG4gICAgYW5pbWF0aW9uT3BlbmluZ0RvbmU6IE9ic2VydmFibGU8QW5pbWF0aW9uRXZlbnQ+O1xuXG4gICAgYW5pbWF0aW9uQ2xvc2luZ0RvbmU6IE9ic2VydmFibGU8QW5pbWF0aW9uRXZlbnQ+O1xuXG4gICAgYW5pbWF0aW9uU3RhdGU6IFRoeVNsaWRlRnJvbVR5cGVzID0gJ3ZvaWQnO1xuXG4gICAgc2xpZGVDb250YWluZXJTdHlsZXM6IHsgd2lkdGg/OiBudW1iZXI7IGhlaWdodD86IG51bWJlciB9ID0ge307XG5cbiAgICBwcml2YXRlIGRyYXdlckNvbnRhaW5lckVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gICAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBwcml2YXRlIGhvc3RSZW5kZXJlciA9IHVzZUhvc3RSZW5kZXJlcigpO1xuXG4gICAgZ2V0IGlzUHVzaCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLm1vZGUgPT09ICdwdXNoJyAmJiAhIXRoaXMuZHJhd2VyQ29udGFpbmVyRWxlbWVudDtcbiAgICB9XG5cbiAgICBnZXQgaXNTaWRlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25maWcubW9kZSA9PT0gJ3NpZGUnICYmICEhdGhpcy5kcmF3ZXJDb250YWluZXJFbGVtZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGlzTGVmdE9yUmlnaHQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5mcm9tID09PSAnbGVmdCcgfHwgdGhpcy5jb25maWcuZnJvbSA9PT0gJ3JpZ2h0JztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBob3N0T2Zmc2V0KCkge1xuICAgICAgICBsZXQgb2Zmc2V0ID0gMDtcbiAgICAgICAgaWYgKHRoaXMuaXNMZWZ0T3JSaWdodCkge1xuICAgICAgICAgICAgb2Zmc2V0ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGggKyB0aGlzLmNvbmZpZy5vZmZzZXQgfHwgMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9mZnNldCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodCArIHRoaXMuY29uZmlnLm9mZnNldCB8fCAwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvZmZzZXQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgdHJhbnNmb3JtKCkge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuY29uZmlnLmZyb20pIHtcbiAgICAgICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgICAgICAgIHJldHVybiBgdHJhbnNsYXRlWCgke3RoaXMuaG9zdE9mZnNldH1weClgO1xuICAgICAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAgICAgICAgIHJldHVybiBgdHJhbnNsYXRlWCgtJHt0aGlzLmhvc3RPZmZzZXR9cHgpYDtcbiAgICAgICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGB0cmFuc2xhdGVZKCR7dGhpcy5ob3N0T2Zmc2V0fXB4KWA7XG4gICAgICAgICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICAgICAgICAgIHJldHVybiBgdHJhbnNsYXRlWSgke3RoaXMuaG9zdE9mZnNldH1weClgO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgZHJhd2VyQ29udGFpbmVyRWxlbWVudENsYXNzKCkge1xuICAgICAgICByZXR1cm4gYHRoeS1zbGlkZS0ke3RoaXMuY29uZmlnLm1vZGV9LWRyYXdlci1jb250YWluZXJgO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IGFueSxcbiAgICAgICAgcHVibGljIGNvbmZpZzogVGh5U2xpZGVDb25maWcsXG4gICAgICAgIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIHZpZXdwb3J0UnVsZXI6IFZpZXdwb3J0UnVsZXIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmVcbiAgICApIHtcbiAgICAgICAgc3VwZXIoc2xpZGVBYnN0cmFjdE92ZXJsYXlPcHRpb25zLCBjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uT3BlbmluZ0RvbmUgPSB0aGlzLmFuaW1hdGlvblN0YXRlQ2hhbmdlZC5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKChldmVudDogQW5pbWF0aW9uRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXZlbnQucGhhc2VOYW1lID09PSAnZG9uZScgJiYgZXZlbnQudG9TdGF0ZSA9PT0gdGhpcy5hbmltYXRpb25TdGF0ZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uQ2xvc2luZ0RvbmUgPSB0aGlzLmFuaW1hdGlvblN0YXRlQ2hhbmdlZC5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKChldmVudDogQW5pbWF0aW9uRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXZlbnQucGhhc2VOYW1lID09PSAnZG9uZScgJiYgZXZlbnQudG9TdGF0ZSA9PT0gJ2V4aXQnO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXREcmF3ZXJDb250YWluZXJFbGVtZW50KCk7XG4gICAgICAgIHRoaXMuY2hlY2tDb250YWluZXJXaXRoaW5WaWV3cG9ydCgpO1xuICAgICAgICB0aGlzLmFkZERyYXdlckNvbnRhaW5lckVsZW1lbnRDbGFzcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0RHJhd2VyQ29udGFpbmVyRWxlbWVudCgpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbmZpZy5kcmF3ZXJDb250YWluZXIgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB0aGlzLmRyYXdlckNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLmNvbmZpZy5kcmF3ZXJDb250YWluZXIgJiYgZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLmNvbmZpZy5kcmF3ZXJDb250YWluZXIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5kcmF3ZXJDb250YWluZXIgaW5zdGFuY2VvZiBFbGVtZW50UmVmKSB7XG4gICAgICAgICAgICB0aGlzLmRyYXdlckNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLmNvbmZpZy5kcmF3ZXJDb250YWluZXIubmF0aXZlRWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jb25maWcuZHJhd2VyQ29udGFpbmVyIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuZHJhd2VyQ29udGFpbmVyRWxlbWVudCA9IHRoaXMuY29uZmlnLmRyYXdlckNvbnRhaW5lciBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U2xpZGVDb250YWluZXJTdHlsZXMoKSB7XG4gICAgICAgIGxldCB3aWR0aCwgaGVpZ2h0LCB0b3AsIGxlZnQ7XG4gICAgICAgIGNvbnN0IGRyYXdlckNvbnRhaW5lckVsZW1lbnRSZWN0ID0gKHRoaXMuZHJhd2VyQ29udGFpbmVyRWxlbWVudCB8fCBkb2N1bWVudC5ib2R5KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgaWYgKHRoaXMuaXNMZWZ0T3JSaWdodCkge1xuICAgICAgICAgICAgaGVpZ2h0ID0gZHJhd2VyQ29udGFpbmVyRWxlbWVudFJlY3QuaGVpZ2h0O1xuICAgICAgICAgICAgdG9wID0gZHJhd2VyQ29udGFpbmVyRWxlbWVudFJlY3QudG9wO1xuICAgICAgICAgICAgdGhpcy5ob3N0UmVuZGVyZXIuc2V0U3R5bGUoJ3RvcCcsIGAke3RvcH1weGApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgd2lkdGggPSBkcmF3ZXJDb250YWluZXJFbGVtZW50UmVjdC53aWR0aDtcbiAgICAgICAgICAgIGxlZnQgPSBkcmF3ZXJDb250YWluZXJFbGVtZW50UmVjdC5sZWZ0O1xuICAgICAgICAgICAgdGhpcy5ob3N0UmVuZGVyZXIuc2V0U3R5bGUoJ2xlZnQnLCBgJHtsZWZ0fXB4YCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zbGlkZUNvbnRhaW5lclN0eWxlcyA9IHtcbiAgICAgICAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgICAgICAgIGhlaWdodDogaGVpZ2h0XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja0NvbnRhaW5lcldpdGhpblZpZXdwb3J0KCkge1xuICAgICAgICB0aGlzLnZpZXdwb3J0UnVsZXJcbiAgICAgICAgICAgIC5jaGFuZ2UoMTAwKVxuICAgICAgICAgICAgLnBpcGUoc3RhcnRXaXRoKG51bGwpLCB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlJCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5zZXRTbGlkZUNvbnRhaW5lclN0eWxlcygpKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkRHJhd2VyQ29udGFpbmVyRWxlbWVudENsYXNzKCkge1xuICAgICAgICBpZiAodGhpcy5kcmF3ZXJDb250YWluZXJFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZHJhd2VyQ29udGFpbmVyRWxlbWVudCwgdGhpcy5kcmF3ZXJDb250YWluZXJFbGVtZW50Q2xhc3MpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW1vdmVEcmF3ZXJDb250YWluZXJFbGVtZW50Q2xhc3MoKSB7XG4gICAgICAgIGlmICh0aGlzLmRyYXdlckNvbnRhaW5lckVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5kcmF3ZXJDb250YWluZXJFbGVtZW50LCB0aGlzLmRyYXdlckNvbnRhaW5lckVsZW1lbnRDbGFzcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldERyYXdlckNvbnRhaW5lckVsZW1lbnRTdHlsZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNTaWRlKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZHJhd2VyQ29udGFpbmVyRWxlbWVudCwgYG1hcmdpbi0ke3RoaXMuY29uZmlnLmZyb219YCwgYCR7dGhpcy5ob3N0T2Zmc2V0fXB4YCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc1B1c2gpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5kcmF3ZXJDb250YWluZXJFbGVtZW50LCBgdHJhbnNmb3JtYCwgdGhpcy50cmFuc2Zvcm0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW1vdmVEcmF3ZXJDb250YWluZXJFbGVtZW50U3R5bGUoKSB7XG4gICAgICAgIGlmICh0aGlzLmlzU2lkZSkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZSh0aGlzLmRyYXdlckNvbnRhaW5lckVsZW1lbnQsIGBtYXJnaW4tJHt0aGlzLmNvbmZpZy5mcm9tfWApO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNQdXNoKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKHRoaXMuZHJhd2VyQ29udGFpbmVyRWxlbWVudCwgYHRyYW5zZm9ybWApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYmVmb3JlQXR0YWNoUG9ydGFsKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb25maWcub2Zmc2V0KSB7XG4gICAgICAgICAgICB0aGlzLmhvc3RSZW5kZXJlci5zZXRTdHlsZSh0aGlzLmNvbmZpZy5mcm9tLCBgJHt0aGlzLmNvbmZpZy5vZmZzZXR9cHhgKTtcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uU3RhdGUgPSBoZWxwZXJzLmNhbWVsQ2FzZShbJ29mZnNldCcsIHRoaXMuY29uZmlnLmZyb21dKSBhcyBUaHlTbGlkZUZyb21UeXBlcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uU3RhdGUgPSB0aGlzLmNvbmZpZy5mcm9tO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0RHJhd2VyQ29udGFpbmVyRWxlbWVudFN0eWxlKCk7XG4gICAgfVxuXG4gICAgYmVmb3JlRGV0YWNoUG9ydGFsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbW92ZURyYXdlckNvbnRhaW5lckVsZW1lbnRTdHlsZSgpO1xuICAgIH1cblxuICAgIG9uQW5pbWF0aW9uRG9uZShldmVudDogQW5pbWF0aW9uRXZlbnQpIHtcbiAgICAgICAgdGhpcy5hbmltYXRpb25TdGF0ZUNoYW5nZWQuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgb25BbmltYXRpb25TdGFydChldmVudDogQW5pbWF0aW9uRXZlbnQpIHtcbiAgICAgICAgdGhpcy5hbmltYXRpb25TdGF0ZUNoYW5nZWQuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5yZW1vdmVEcmF3ZXJDb250YWluZXJFbGVtZW50Q2xhc3MoKTtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgICB9XG59XG4iXX0=
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGUtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zbGlkZS9zbGlkZS1jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQWEsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWxELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxjQUFjLEVBQXFCLE1BQU0sZ0JBQWdCLENBQUM7O0FBRWhHOztHQUVHO0FBc0JILE1BQU0sT0FBTyxpQkFBa0IsU0FBUSwyQkFBMkI7SUF5QjlELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDeEUsQ0FBQztJQUVELElBQUks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RUFBRSxnQkFBZ0I7d0JBQ3JDLHlCQUF5QixFQUFFLDBCQUEwQjt3QkFDckQsd0JBQXdCLEVBQUUseUJBQXlCO3dCQUNuRCxrQkFBa0IsRUFBRSw0QkFBNEI7d0JBQ2hELG1CQUFtQixFQUFFLDZCQUE2Qjt3QkFDbEQsdUJBQXVCLEVBQUUsNkJBQTZCO3FCQUN6RDtvQkFDRCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQztpQkFDM0M7d0RBVUcsWUFBWTtzQkFEWCxTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaHlBYnN0cmFjdE92ZXJsYXlDb250YWluZXIsIFRoeVBvcnRhbE91dGxldCB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgeyBoZWxwZXJzIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgc3RhcnRXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEFuaW1hdGlvbkV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBWaWV3cG9ydFJ1bGVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgUG9ydGFsTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBOZ1pvbmUsIE9uRGVzdHJveSwgUmVuZGVyZXIyLCBWaWV3Q2hpbGQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdXNlSG9zdFJlbmRlcmVyIH0gZnJvbSAnQHRldGh5cy9jZGsvZG9tJztcblxuaW1wb3J0IHsgdGh5U2xpZGVBbmltYXRpb25zIH0gZnJvbSAnLi9zbGlkZS1hbmltYXRpb25zJztcbmltcG9ydCB7IHNsaWRlQWJzdHJhY3RPdmVybGF5T3B0aW9ucywgVGh5U2xpZGVDb25maWcsIFRoeVNsaWRlRnJvbVR5cGVzIH0gZnJvbSAnLi9zbGlkZS5jb25maWcnO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXNsaWRlLWNvbnRhaW5lcicsXG4gICAgdGVtcGxhdGU6IGAgPG5nLXRlbXBsYXRlIHRoeVBvcnRhbE91dGxldD48L25nLXRlbXBsYXRlPiBgLFxuICAgIGFuaW1hdGlvbnM6IFt0aHlTbGlkZUFuaW1hdGlvbnMuc2xpZGVDb250YWluZXJdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktc2xpZGUtY29udGFpbmVyJyxcbiAgICAgICAgJ1tjbGFzcy50aHktc2xpZGUtcHVzaF0nOiAnaXNQdXNoJyxcbiAgICAgICAgJ1tjbGFzcy50aHktc2xpZGUtc2lkZV0nOiAnaXNTaWRlJyxcbiAgICAgICAgJ1tjbGFzcy50aHktc2xpZGUtb3Zlcl0nOiAnIWlzUHVzaCAmJiAhaXNTaWRlJyxcbiAgICAgICAgdGFiaW5kZXg6ICctMScsXG4gICAgICAgICdbYXR0ci5yb2xlXSc6IGAnc2xpZGUnYCxcbiAgICAgICAgJ1tAc2xpZGVDb250YWluZXJdJzogJ2FuaW1hdGlvblN0YXRlJyxcbiAgICAgICAgJyhAc2xpZGVDb250YWluZXIuc3RhcnQpJzogJ29uQW5pbWF0aW9uU3RhcnQoJGV2ZW50KScsXG4gICAgICAgICcoQHNsaWRlQ29udGFpbmVyLmRvbmUpJzogJ29uQW5pbWF0aW9uRG9uZSgkZXZlbnQpJyxcbiAgICAgICAgJ1tzdHlsZS53aWR0aC5weF0nOiAnc2xpZGVDb250YWluZXJTdHlsZXMud2lkdGgnLFxuICAgICAgICAnW3N0eWxlLmhlaWdodC5weF0nOiAnc2xpZGVDb250YWluZXJTdHlsZXMuaGVpZ2h0JyxcbiAgICAgICAgJ1tzdHlsZS5tYXgtaGVpZ2h0LnB4XSc6ICdzbGlkZUNvbnRhaW5lclN0eWxlcy5oZWlnaHQnXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtQb3J0YWxNb2R1bGUsIFRoeVBvcnRhbE91dGxldF1cbn0pXG5leHBvcnQgY2xhc3MgVGh5U2xpZGVDb250YWluZXIgZXh0ZW5kcyBUaHlBYnN0cmFjdE92ZXJsYXlDb250YWluZXIgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgICBwcml2YXRlIGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgICBjb25maWcgPSBpbmplY3QoVGh5U2xpZGVDb25maWcpO1xuICAgIHByaXZhdGUgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgICBwcml2YXRlIHZpZXdwb3J0UnVsZXIgPSBpbmplY3QoVmlld3BvcnRSdWxlcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmUgPSBpbmplY3QoTmdab25lKTtcblxuICAgIEBWaWV3Q2hpbGQoVGh5UG9ydGFsT3V0bGV0LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHBvcnRhbE91dGxldDogVGh5UG9ydGFsT3V0bGV0O1xuXG4gICAgYW5pbWF0aW9uT3BlbmluZ0RvbmU6IE9ic2VydmFibGU8QW5pbWF0aW9uRXZlbnQ+O1xuXG4gICAgYW5pbWF0aW9uQ2xvc2luZ0RvbmU6IE9ic2VydmFibGU8QW5pbWF0aW9uRXZlbnQ+O1xuXG4gICAgYW5pbWF0aW9uU3RhdGU6IFRoeVNsaWRlRnJvbVR5cGVzID0gJ3ZvaWQnO1xuXG4gICAgc2xpZGVDb250YWluZXJTdHlsZXM6IHsgd2lkdGg/OiBudW1iZXI7IGhlaWdodD86IG51bWJlciB9ID0ge307XG5cbiAgICBwcml2YXRlIGRyYXdlckNvbnRhaW5lckVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gICAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBwcml2YXRlIGhvc3RSZW5kZXJlciA9IHVzZUhvc3RSZW5kZXJlcigpO1xuXG4gICAgZ2V0IGlzUHVzaCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLm1vZGUgPT09ICdwdXNoJyAmJiAhIXRoaXMuZHJhd2VyQ29udGFpbmVyRWxlbWVudDtcbiAgICB9XG5cbiAgICBnZXQgaXNTaWRlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25maWcubW9kZSA9PT0gJ3NpZGUnICYmICEhdGhpcy5kcmF3ZXJDb250YWluZXJFbGVtZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGlzTGVmdE9yUmlnaHQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5mcm9tID09PSAnbGVmdCcgfHwgdGhpcy5jb25maWcuZnJvbSA9PT0gJ3JpZ2h0JztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBob3N0T2Zmc2V0KCkge1xuICAgICAgICBsZXQgb2Zmc2V0ID0gMDtcbiAgICAgICAgaWYgKHRoaXMuaXNMZWZ0T3JSaWdodCkge1xuICAgICAgICAgICAgb2Zmc2V0ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGggKyB0aGlzLmNvbmZpZy5vZmZzZXQgfHwgMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9mZnNldCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodCArIHRoaXMuY29uZmlnLm9mZnNldCB8fCAwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvZmZzZXQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgdHJhbnNmb3JtKCkge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuY29uZmlnLmZyb20pIHtcbiAgICAgICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgICAgICAgIHJldHVybiBgdHJhbnNsYXRlWCgke3RoaXMuaG9zdE9mZnNldH1weClgO1xuICAgICAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAgICAgICAgIHJldHVybiBgdHJhbnNsYXRlWCgtJHt0aGlzLmhvc3RPZmZzZXR9cHgpYDtcbiAgICAgICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGB0cmFuc2xhdGVZKCR7dGhpcy5ob3N0T2Zmc2V0fXB4KWA7XG4gICAgICAgICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICAgICAgICAgIHJldHVybiBgdHJhbnNsYXRlWSgke3RoaXMuaG9zdE9mZnNldH1weClgO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgZHJhd2VyQ29udGFpbmVyRWxlbWVudENsYXNzKCkge1xuICAgICAgICByZXR1cm4gYHRoeS1zbGlkZS0ke3RoaXMuY29uZmlnLm1vZGV9LWRyYXdlci1jb250YWluZXJgO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBjb25zdCBjaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICAgICAgc3VwZXIoc2xpZGVBYnN0cmFjdE92ZXJsYXlPcHRpb25zLCBjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uT3BlbmluZ0RvbmUgPSB0aGlzLmFuaW1hdGlvblN0YXRlQ2hhbmdlZC5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKChldmVudDogQW5pbWF0aW9uRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXZlbnQucGhhc2VOYW1lID09PSAnZG9uZScgJiYgZXZlbnQudG9TdGF0ZSA9PT0gdGhpcy5hbmltYXRpb25TdGF0ZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uQ2xvc2luZ0RvbmUgPSB0aGlzLmFuaW1hdGlvblN0YXRlQ2hhbmdlZC5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKChldmVudDogQW5pbWF0aW9uRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXZlbnQucGhhc2VOYW1lID09PSAnZG9uZScgJiYgZXZlbnQudG9TdGF0ZSA9PT0gJ2V4aXQnO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXREcmF3ZXJDb250YWluZXJFbGVtZW50KCk7XG4gICAgICAgIHRoaXMuY2hlY2tDb250YWluZXJXaXRoaW5WaWV3cG9ydCgpO1xuICAgICAgICB0aGlzLmFkZERyYXdlckNvbnRhaW5lckVsZW1lbnRDbGFzcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0RHJhd2VyQ29udGFpbmVyRWxlbWVudCgpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbmZpZy5kcmF3ZXJDb250YWluZXIgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB0aGlzLmRyYXdlckNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLmNvbmZpZy5kcmF3ZXJDb250YWluZXIgJiYgZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLmNvbmZpZy5kcmF3ZXJDb250YWluZXIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5kcmF3ZXJDb250YWluZXIgaW5zdGFuY2VvZiBFbGVtZW50UmVmKSB7XG4gICAgICAgICAgICB0aGlzLmRyYXdlckNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLmNvbmZpZy5kcmF3ZXJDb250YWluZXIubmF0aXZlRWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jb25maWcuZHJhd2VyQ29udGFpbmVyIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuZHJhd2VyQ29udGFpbmVyRWxlbWVudCA9IHRoaXMuY29uZmlnLmRyYXdlckNvbnRhaW5lciBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U2xpZGVDb250YWluZXJTdHlsZXMoKSB7XG4gICAgICAgIGxldCB3aWR0aCwgaGVpZ2h0LCB0b3AsIGxlZnQ7XG4gICAgICAgIGNvbnN0IGRyYXdlckNvbnRhaW5lckVsZW1lbnRSZWN0ID0gKHRoaXMuZHJhd2VyQ29udGFpbmVyRWxlbWVudCB8fCBkb2N1bWVudC5ib2R5KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgaWYgKHRoaXMuaXNMZWZ0T3JSaWdodCkge1xuICAgICAgICAgICAgaGVpZ2h0ID0gZHJhd2VyQ29udGFpbmVyRWxlbWVudFJlY3QuaGVpZ2h0O1xuICAgICAgICAgICAgdG9wID0gZHJhd2VyQ29udGFpbmVyRWxlbWVudFJlY3QudG9wO1xuICAgICAgICAgICAgdGhpcy5ob3N0UmVuZGVyZXIuc2V0U3R5bGUoJ3RvcCcsIGAke3RvcH1weGApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgd2lkdGggPSBkcmF3ZXJDb250YWluZXJFbGVtZW50UmVjdC53aWR0aDtcbiAgICAgICAgICAgIGxlZnQgPSBkcmF3ZXJDb250YWluZXJFbGVtZW50UmVjdC5sZWZ0O1xuICAgICAgICAgICAgdGhpcy5ob3N0UmVuZGVyZXIuc2V0U3R5bGUoJ2xlZnQnLCBgJHtsZWZ0fXB4YCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zbGlkZUNvbnRhaW5lclN0eWxlcyA9IHtcbiAgICAgICAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgICAgICAgIGhlaWdodDogaGVpZ2h0XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja0NvbnRhaW5lcldpdGhpblZpZXdwb3J0KCkge1xuICAgICAgICB0aGlzLnZpZXdwb3J0UnVsZXJcbiAgICAgICAgICAgIC5jaGFuZ2UoMTAwKVxuICAgICAgICAgICAgLnBpcGUoc3RhcnRXaXRoKG51bGwpLCB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlJCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5zZXRTbGlkZUNvbnRhaW5lclN0eWxlcygpKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkRHJhd2VyQ29udGFpbmVyRWxlbWVudENsYXNzKCkge1xuICAgICAgICBpZiAodGhpcy5kcmF3ZXJDb250YWluZXJFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZHJhd2VyQ29udGFpbmVyRWxlbWVudCwgdGhpcy5kcmF3ZXJDb250YWluZXJFbGVtZW50Q2xhc3MpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW1vdmVEcmF3ZXJDb250YWluZXJFbGVtZW50Q2xhc3MoKSB7XG4gICAgICAgIGlmICh0aGlzLmRyYXdlckNvbnRhaW5lckVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5kcmF3ZXJDb250YWluZXJFbGVtZW50LCB0aGlzLmRyYXdlckNvbnRhaW5lckVsZW1lbnRDbGFzcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldERyYXdlckNvbnRhaW5lckVsZW1lbnRTdHlsZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNTaWRlKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZHJhd2VyQ29udGFpbmVyRWxlbWVudCwgYG1hcmdpbi0ke3RoaXMuY29uZmlnLmZyb219YCwgYCR7dGhpcy5ob3N0T2Zmc2V0fXB4YCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc1B1c2gpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5kcmF3ZXJDb250YWluZXJFbGVtZW50LCBgdHJhbnNmb3JtYCwgdGhpcy50cmFuc2Zvcm0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW1vdmVEcmF3ZXJDb250YWluZXJFbGVtZW50U3R5bGUoKSB7XG4gICAgICAgIGlmICh0aGlzLmlzU2lkZSkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZSh0aGlzLmRyYXdlckNvbnRhaW5lckVsZW1lbnQsIGBtYXJnaW4tJHt0aGlzLmNvbmZpZy5mcm9tfWApO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNQdXNoKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKHRoaXMuZHJhd2VyQ29udGFpbmVyRWxlbWVudCwgYHRyYW5zZm9ybWApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYmVmb3JlQXR0YWNoUG9ydGFsKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb25maWcub2Zmc2V0KSB7XG4gICAgICAgICAgICB0aGlzLmhvc3RSZW5kZXJlci5zZXRTdHlsZSh0aGlzLmNvbmZpZy5mcm9tLCBgJHt0aGlzLmNvbmZpZy5vZmZzZXR9cHhgKTtcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uU3RhdGUgPSBoZWxwZXJzLmNhbWVsQ2FzZShbJ29mZnNldCcsIHRoaXMuY29uZmlnLmZyb21dKSBhcyBUaHlTbGlkZUZyb21UeXBlcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uU3RhdGUgPSB0aGlzLmNvbmZpZy5mcm9tO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0RHJhd2VyQ29udGFpbmVyRWxlbWVudFN0eWxlKCk7XG4gICAgfVxuXG4gICAgYmVmb3JlRGV0YWNoUG9ydGFsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbW92ZURyYXdlckNvbnRhaW5lckVsZW1lbnRTdHlsZSgpO1xuICAgIH1cblxuICAgIG9uQW5pbWF0aW9uRG9uZShldmVudDogQW5pbWF0aW9uRXZlbnQpIHtcbiAgICAgICAgdGhpcy5hbmltYXRpb25TdGF0ZUNoYW5nZWQuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgb25BbmltYXRpb25TdGFydChldmVudDogQW5pbWF0aW9uRXZlbnQpIHtcbiAgICAgICAgdGhpcy5hbmltYXRpb25TdGF0ZUNoYW5nZWQuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5yZW1vdmVEcmF3ZXJDb250YWluZXJFbGVtZW50Q2xhc3MoKTtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgICB9XG59XG4iXX0=
@@ -1,16 +1,21 @@
1
- import { Component, ContentChild, TemplateRef, Input, HostBinding } from '@angular/core';
1
+ import { Component, ContentChild, TemplateRef, Input, HostBinding, inject } from '@angular/core';
2
2
  import { ThySlideService } from '../slide.service';
3
3
  import { ThyAction } from 'ngx-tethys/action';
4
4
  import { ThyIcon } from 'ngx-tethys/icon';
5
5
  import { NgTemplateOutlet } from '@angular/common';
6
6
  import * as i0 from "@angular/core";
7
- import * as i1 from "../slide.service";
8
7
  /**
9
8
  * 滑动弹出框的头部组件
10
9
  * @name thy-slide-header
11
10
  * @order 40
12
11
  */
13
12
  export class ThySlideHeader {
13
+ constructor() {
14
+ this.thySlideService = inject(ThySlideService);
15
+ this.isIconFont = false;
16
+ this._iconName = '';
17
+ this.slideLayoutHeader = true;
18
+ }
14
19
  /**
15
20
  * 标题的图标
16
21
  */
@@ -26,24 +31,18 @@ export class ThySlideHeader {
26
31
  get thyIcon() {
27
32
  return this._iconName;
28
33
  }
29
- constructor(thySlideService) {
30
- this.thySlideService = thySlideService;
31
- this.isIconFont = false;
32
- this._iconName = '';
33
- this.slideLayoutHeader = true;
34
- }
35
34
  ngOnInit() { }
36
35
  closeModal(event) {
37
36
  event.stopPropagation();
38
37
  this.thySlideService.close();
39
38
  }
40
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThySlideHeader, deps: [{ token: i1.ThySlideService }], target: i0.ɵɵFactoryTarget.Component }); }
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThySlideHeader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
41
40
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThySlideHeader, isStandalone: true, selector: "thy-slide-header", inputs: { thyTitle: "thyTitle", thyIcon: "thyIcon" }, host: { properties: { "class.thy-slide-header": "this.slideLayoutHeader" } }, queries: [{ propertyName: "headerTemplate", first: true, predicate: ["thyHeader"], descendants: true }, { propertyName: "headerOperateTemplate", first: true, predicate: ["thyHeaderOperate"], descendants: true }], ngImport: i0, template: "@if (headerTemplate) {\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"></ng-template>\n} @else {\n <h3 class=\"thy-slide-header-title\">\n @if (!isIconFont && thyIcon) {\n <thy-icon [thyIconName]=\"thyIcon\"></thy-icon>\n } @else {\n @if (thyIcon) {\n <i class=\"wft {{ thyIcon }}\"></i>\n }\n }\n {{ thyTitle }}\n </h3>\n <div class=\"thy-slide-header-main\">\n <ng-container>\n @if (headerOperateTemplate) {\n <ng-template [ngTemplateOutlet]=\"headerOperateTemplate\"> </ng-template>\n }\n </ng-container>\n </div>\n <a href=\"javascript:;\" class=\"mr-n2\" thyAction thyActionIcon=\"close\" (click)=\"closeModal($event)\"></a>\n}\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }] }); }
42
41
  }
43
42
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThySlideHeader, decorators: [{
44
43
  type: Component,
45
44
  args: [{ selector: 'thy-slide-header', standalone: true, imports: [NgTemplateOutlet, ThyIcon, ThyAction], template: "@if (headerTemplate) {\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"></ng-template>\n} @else {\n <h3 class=\"thy-slide-header-title\">\n @if (!isIconFont && thyIcon) {\n <thy-icon [thyIconName]=\"thyIcon\"></thy-icon>\n } @else {\n @if (thyIcon) {\n <i class=\"wft {{ thyIcon }}\"></i>\n }\n }\n {{ thyTitle }}\n </h3>\n <div class=\"thy-slide-header-main\">\n <ng-container>\n @if (headerOperateTemplate) {\n <ng-template [ngTemplateOutlet]=\"headerOperateTemplate\"> </ng-template>\n }\n </ng-container>\n </div>\n <a href=\"javascript:;\" class=\"mr-n2\" thyAction thyActionIcon=\"close\" (click)=\"closeModal($event)\"></a>\n}\n" }]
46
- }], ctorParameters: () => [{ type: i1.ThySlideService }], propDecorators: { slideLayoutHeader: [{
45
+ }], propDecorators: { slideLayoutHeader: [{
47
46
  type: HostBinding,
48
47
  args: ['class.thy-slide-header']
49
48
  }], thyTitle: [{
@@ -57,4 +56,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
57
56
  type: ContentChild,
58
57
  args: ['thyHeaderOperate']
59
58
  }] } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGUtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zbGlkZS9zbGlkZS1oZWFkZXIvc2xpZGUtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9zbGlkZS9zbGlkZS1oZWFkZXIvc2xpZGUtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQVUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFFbkQ7Ozs7R0FJRztBQU9ILE1BQU0sT0FBTyxjQUFjO0lBWXZCOztPQUVHO0lBQ0gsSUFBYSxPQUFPLENBQUMsS0FBYTtRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUMzQixDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQzVCLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFjRCxZQUFvQixlQUFnQztRQUFoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUF2Q3BELGVBQVUsR0FBRyxLQUFLLENBQUM7UUFFWCxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRWdCLHNCQUFpQixHQUFHLElBQUksQ0FBQztJQW1DVCxDQUFDO0lBRXhELFFBQVEsS0FBSSxDQUFDO0lBRWIsVUFBVSxDQUFDLEtBQVk7UUFDbkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakMsQ0FBQzs4R0EvQ1EsY0FBYztrR0FBZCxjQUFjLHFhQ2pCM0IsZ3NCQXNCQSw0Q0RQYyxnQkFBZ0Isb0pBQUUsT0FBTyxzTUFBRSxTQUFTOzsyRkFFckMsY0FBYztrQkFOMUIsU0FBUzsrQkFDSSxrQkFBa0IsY0FFaEIsSUFBSSxXQUNQLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQztvRkFPUixpQkFBaUI7c0JBQXZELFdBQVc7dUJBQUMsd0JBQXdCO2dCQUs1QixRQUFRO3NCQUFoQixLQUFLO2dCQUtPLE9BQU87c0JBQW5CLEtBQUs7Z0JBaUJxQixjQUFjO3NCQUF4QyxZQUFZO3VCQUFDLFdBQVc7Z0JBTVMscUJBQXFCO3NCQUF0RCxZQUFZO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBUZW1wbGF0ZVJlZiwgSW5wdXQsIE9uSW5pdCwgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoeVNsaWRlU2VydmljZSB9IGZyb20gJy4uL3NsaWRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGh5QWN0aW9uIH0gZnJvbSAnbmd4LXRldGh5cy9hY3Rpb24nO1xuaW1wb3J0IHsgVGh5SWNvbiB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLyoqXG4gKiDmu5HliqjlvLnlh7rmoYbnmoTlpLTpg6jnu4Tku7ZcbiAqIEBuYW1lIHRoeS1zbGlkZS1oZWFkZXJcbiAqIEBvcmRlciA0MFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1zbGlkZS1oZWFkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zbGlkZS1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXQsIFRoeUljb24sIFRoeUFjdGlvbl1cbn0pXG5leHBvcnQgY2xhc3MgVGh5U2xpZGVIZWFkZXIgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIGlzSWNvbkZvbnQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgX2ljb25OYW1lID0gJyc7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRoeS1zbGlkZS1oZWFkZXInKSBzbGlkZUxheW91dEhlYWRlciA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiDmoIfpophcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlUaXRsZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog5qCH6aKY55qE5Zu+5qCHXG4gICAgICovXG4gICAgQElucHV0KCkgc2V0IHRoeUljb24odmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9pY29uTmFtZSA9IHZhbHVlO1xuICAgICAgICBpZiAodmFsdWUuaW5jbHVkZXMoJ3d0ZicpKSB7XG4gICAgICAgICAgICB0aGlzLmlzSWNvbkZvbnQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pc0ljb25Gb250ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgdGh5SWNvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ljb25OYW1lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOiHquWumuS5ieWktOaooeadv1xuICAgICAqIEB0eXBlIFRlbXBsYXRlUmVmXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgndGh5SGVhZGVyJykgaGVhZGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKipcbiAgICAgKiDlpLTpg6jmk43kvZzljLrln5/mqKHmnb9cbiAgICAgKiBAdHlwZSBUZW1wbGF0ZVJlZlxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ3RoeUhlYWRlck9wZXJhdGUnKSBoZWFkZXJPcGVyYXRlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRoeVNsaWRlU2VydmljZTogVGh5U2xpZGVTZXJ2aWNlKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7fVxuXG4gICAgY2xvc2VNb2RhbChldmVudDogRXZlbnQpIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMudGh5U2xpZGVTZXJ2aWNlLmNsb3NlKCk7XG4gICAgfVxufVxuIiwiQGlmIChoZWFkZXJUZW1wbGF0ZSkge1xuICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGVyVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxufSBAZWxzZSB7XG4gIDxoMyBjbGFzcz1cInRoeS1zbGlkZS1oZWFkZXItdGl0bGVcIj5cbiAgICBAaWYgKCFpc0ljb25Gb250ICYmIHRoeUljb24pIHtcbiAgICAgIDx0aHktaWNvbiBbdGh5SWNvbk5hbWVdPVwidGh5SWNvblwiPjwvdGh5LWljb24+XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaWYgKHRoeUljb24pIHtcbiAgICAgICAgPGkgY2xhc3M9XCJ3ZnQge3sgdGh5SWNvbiB9fVwiPjwvaT5cbiAgICAgIH1cbiAgICB9XG4gICAge3sgdGh5VGl0bGUgfX1cbiAgPC9oMz5cbiAgPGRpdiBjbGFzcz1cInRoeS1zbGlkZS1oZWFkZXItbWFpblwiPlxuICAgIDxuZy1jb250YWluZXI+XG4gICAgICBAaWYgKGhlYWRlck9wZXJhdGVUZW1wbGF0ZSkge1xuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGVyT3BlcmF0ZVRlbXBsYXRlXCI+IDwvbmctdGVtcGxhdGU+XG4gICAgICB9XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8YSBocmVmPVwiamF2YXNjcmlwdDo7XCIgY2xhc3M9XCJtci1uMlwiIHRoeUFjdGlvbiB0aHlBY3Rpb25JY29uPVwiY2xvc2VcIiAoY2xpY2spPVwiY2xvc2VNb2RhbCgkZXZlbnQpXCI+PC9hPlxufVxuIl19
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGUtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zbGlkZS9zbGlkZS1oZWFkZXIvc2xpZGUtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9zbGlkZS9zbGlkZS1oZWFkZXIvc2xpZGUtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQVUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFbkQ7Ozs7R0FJRztBQU9ILE1BQU0sT0FBTyxjQUFjO0lBTjNCO1FBT1ksb0JBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFbEQsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVYLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFFZ0Isc0JBQWlCLEdBQUcsSUFBSSxDQUFDO0tBeUNuRTtJQWxDRzs7T0FFRztJQUNILElBQWEsT0FBTyxDQUFDLEtBQWE7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDM0IsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUM1QixDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBY0QsUUFBUSxLQUFJLENBQUM7SUFFYixVQUFVLENBQUMsS0FBWTtRQUNuQixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqQyxDQUFDOzhHQS9DUSxjQUFjO2tHQUFkLGNBQWMscWFDakIzQixnc0JBc0JBLDRDRFBjLGdCQUFnQixvSkFBRSxPQUFPLHNNQUFFLFNBQVM7OzJGQUVyQyxjQUFjO2tCQU4xQixTQUFTOytCQUNJLGtCQUFrQixjQUVoQixJQUFJLFdBQ1AsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDOzhCQVNSLGlCQUFpQjtzQkFBdkQsV0FBVzt1QkFBQyx3QkFBd0I7Z0JBSzVCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS08sT0FBTztzQkFBbkIsS0FBSztnQkFpQnFCLGNBQWM7c0JBQXhDLFlBQVk7dUJBQUMsV0FBVztnQkFNUyxxQkFBcUI7c0JBQXRELFlBQVk7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIFRlbXBsYXRlUmVmLCBJbnB1dCwgT25Jbml0LCBIb3N0QmluZGluZywgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlTbGlkZVNlcnZpY2UgfSBmcm9tICcuLi9zbGlkZS5zZXJ2aWNlJztcbmltcG9ydCB7IFRoeUFjdGlvbiB9IGZyb20gJ25neC10ZXRoeXMvYWN0aW9uJztcbmltcG9ydCB7IFRoeUljb24gfSBmcm9tICduZ3gtdGV0aHlzL2ljb24nO1xuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbi8qKlxuICog5ruR5Yqo5by55Ye65qGG55qE5aS06YOo57uE5Lu2XG4gKiBAbmFtZSB0aHktc2xpZGUtaGVhZGVyXG4gKiBAb3JkZXIgNDBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktc2xpZGUtaGVhZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2xpZGUtaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0LCBUaHlJY29uLCBUaHlBY3Rpb25dXG59KVxuZXhwb3J0IGNsYXNzIFRoeVNsaWRlSGVhZGVyIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBwcml2YXRlIHRoeVNsaWRlU2VydmljZSA9IGluamVjdChUaHlTbGlkZVNlcnZpY2UpO1xuXG4gICAgaXNJY29uRm9udCA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBfaWNvbk5hbWUgPSAnJztcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MudGh5LXNsaWRlLWhlYWRlcicpIHNsaWRlTGF5b3V0SGVhZGVyID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIOagh+mimFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVRpdGxlOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDmoIfpopjnmoTlm77moIdcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXQgdGh5SWNvbih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2ljb25OYW1lID0gdmFsdWU7XG4gICAgICAgIGlmICh2YWx1ZS5pbmNsdWRlcygnd3RmJykpIHtcbiAgICAgICAgICAgIHRoaXMuaXNJY29uRm9udCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmlzSWNvbkZvbnQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCB0aHlJY29uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faWNvbk5hbWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog6Ieq5a6a5LmJ5aS05qih5p2/XG4gICAgICogQHR5cGUgVGVtcGxhdGVSZWZcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCd0aHlIZWFkZXInKSBoZWFkZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKlxuICAgICAqIOWktOmDqOaTjeS9nOWMuuWfn+aooeadv1xuICAgICAqIEB0eXBlIFRlbXBsYXRlUmVmXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgndGh5SGVhZGVyT3BlcmF0ZScpIGhlYWRlck9wZXJhdGVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIG5nT25Jbml0KCkge31cblxuICAgIGNsb3NlTW9kYWwoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLnRoeVNsaWRlU2VydmljZS5jbG9zZSgpO1xuICAgIH1cbn1cbiIsIkBpZiAoaGVhZGVyVGVtcGxhdGUpIHtcbiAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlYWRlclRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbn0gQGVsc2Uge1xuICA8aDMgY2xhc3M9XCJ0aHktc2xpZGUtaGVhZGVyLXRpdGxlXCI+XG4gICAgQGlmICghaXNJY29uRm9udCAmJiB0aHlJY29uKSB7XG4gICAgICA8dGh5LWljb24gW3RoeUljb25OYW1lXT1cInRoeUljb25cIj48L3RoeS1pY29uPlxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmICh0aHlJY29uKSB7XG4gICAgICAgIDxpIGNsYXNzPVwid2Z0IHt7IHRoeUljb24gfX1cIj48L2k+XG4gICAgICB9XG4gICAgfVxuICAgIHt7IHRoeVRpdGxlIH19XG4gIDwvaDM+XG4gIDxkaXYgY2xhc3M9XCJ0aHktc2xpZGUtaGVhZGVyLW1haW5cIj5cbiAgICA8bmctY29udGFpbmVyPlxuICAgICAgQGlmIChoZWFkZXJPcGVyYXRlVGVtcGxhdGUpIHtcbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlYWRlck9wZXJhdGVUZW1wbGF0ZVwiPiA8L25nLXRlbXBsYXRlPlxuICAgICAgfVxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgPGEgaHJlZj1cImphdmFzY3JpcHQ6O1wiIGNsYXNzPVwibXItbjJcIiB0aHlBY3Rpb24gdGh5QWN0aW9uSWNvbj1cImNsb3NlXCIgKGNsaWNrKT1cImNsb3NlTW9kYWwoJGV2ZW50KVwiPjwvYT5cbn1cbiJdfQ==
@@ -29,4 +29,4 @@ export class ThyInternalSlideRef extends ThyAbstractInternalOverlayRef {
29
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyInternalSlideRef, decorators: [{
30
30
  type: Injectable
31
31
  }], ctorParameters: () => [{ type: i1.OverlayRef }, { type: i2.ThySlideContainer }, { type: i3.ThySlideConfig }] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGUtcmVmLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2xpZGUvc2xpZGUtcmVmLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDZCQUE2QixFQUE4QixxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRW5ILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFFN0U7OztHQUdHO0FBQ0gsTUFBTSxPQUFnQixXQUFrQyxTQUFRLHFCQUFvRDtDQUFHO0FBRXZIOztHQUVHO0FBRUgsTUFBTSxPQUFPLG1CQUNULFNBQVEsNkJBQTREO0lBR3BFLFlBQVksVUFBc0IsRUFBRSxpQkFBb0MsRUFBRSxNQUFzQjtRQUM1RixLQUFLLENBQUMsMkJBQTJCLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxjQUFjLENBQUMsUUFBcUM7UUFDaEQsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0MsQ0FBQzs4R0FWUSxtQkFBbUI7a0hBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRoeUFic3RyYWN0SW50ZXJuYWxPdmVybGF5UmVmLCBUaHlBYnN0cmFjdE92ZXJsYXlQb3NpdGlvbiwgVGh5QWJzdHJhY3RPdmVybGF5UmVmIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcblxuaW1wb3J0IHsgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgVGh5U2xpZGVDb250YWluZXIgfSBmcm9tICcuL3NsaWRlLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgc2xpZGVBYnN0cmFjdE92ZXJsYXlPcHRpb25zLCBUaHlTbGlkZUNvbmZpZyB9IGZyb20gJy4vc2xpZGUuY29uZmlnJztcblxuLyoqXG4gKiBAcHVibGljXG4gKiBAb3JkZXIgMzBcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRoeVNsaWRlUmVmPFQsIFRSZXN1bHQgPSB1bmtub3duPiBleHRlbmRzIFRoeUFic3RyYWN0T3ZlcmxheVJlZjxULCBUaHlTbGlkZUNvbnRhaW5lciwgVFJlc3VsdD4ge31cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRoeUludGVybmFsU2xpZGVSZWY8VCA9IHVua25vd24sIFRSZXN1bHQgPSB1bmtub3duPlxuICAgIGV4dGVuZHMgVGh5QWJzdHJhY3RJbnRlcm5hbE92ZXJsYXlSZWY8VCwgVGh5U2xpZGVDb250YWluZXIsIFRSZXN1bHQ+XG4gICAgaW1wbGVtZW50cyBUaHlTbGlkZVJlZjxUPlxue1xuICAgIGNvbnN0cnVjdG9yKG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYsIGNvbnRhaW5lckluc3RhbmNlOiBUaHlTbGlkZUNvbnRhaW5lciwgY29uZmlnOiBUaHlTbGlkZUNvbmZpZykge1xuICAgICAgICBzdXBlcihzbGlkZUFic3RyYWN0T3ZlcmxheU9wdGlvbnMsIG92ZXJsYXlSZWYsIGNvbnRhaW5lckluc3RhbmNlLCBjb25maWcpO1xuICAgIH1cblxuICAgIHVwZGF0ZVBvc2l0aW9uKHBvc2l0aW9uPzogVGh5QWJzdHJhY3RPdmVybGF5UG9zaXRpb24pOiB0aGlzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlR2xvYmFsUG9zaXRpb24ocG9zaXRpb24pO1xuICAgIH1cbn1cbiJdfQ==
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGUtcmVmLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2xpZGUvc2xpZGUtcmVmLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDZCQUE2QixFQUE4QixxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRW5ILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFFN0U7OztHQUdHO0FBQ0gsTUFBTSxPQUFnQixXQUFrQyxTQUFRLHFCQUFvRDtDQUFHO0FBRXZIOztHQUVHO0FBRUgsTUFBTSxPQUFPLG1CQUNULFNBQVEsNkJBQTREO0lBR3BFLFlBQVksVUFBc0IsRUFBRSxpQkFBb0MsRUFBRSxNQUFzQjtRQUM1RixLQUFLLENBQUMsMkJBQTJCLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxjQUFjLENBQUMsUUFBcUM7UUFDaEQsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0MsQ0FBQzs4R0FWUSxtQkFBbUI7a0hBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRoeUFic3RyYWN0SW50ZXJuYWxPdmVybGF5UmVmLCBUaHlBYnN0cmFjdE92ZXJsYXlQb3NpdGlvbiwgVGh5QWJzdHJhY3RPdmVybGF5UmVmIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcblxuaW1wb3J0IHsgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBUaHlTbGlkZUNvbnRhaW5lciB9IGZyb20gJy4vc2xpZGUtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBzbGlkZUFic3RyYWN0T3ZlcmxheU9wdGlvbnMsIFRoeVNsaWRlQ29uZmlnIH0gZnJvbSAnLi9zbGlkZS5jb25maWcnO1xuXG4vKipcbiAqIEBwdWJsaWNcbiAqIEBvcmRlciAzMFxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVGh5U2xpZGVSZWY8VCwgVFJlc3VsdCA9IHVua25vd24+IGV4dGVuZHMgVGh5QWJzdHJhY3RPdmVybGF5UmVmPFQsIFRoeVNsaWRlQ29udGFpbmVyLCBUUmVzdWx0PiB7fVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGh5SW50ZXJuYWxTbGlkZVJlZjxUID0gdW5rbm93biwgVFJlc3VsdCA9IHVua25vd24+XG4gICAgZXh0ZW5kcyBUaHlBYnN0cmFjdEludGVybmFsT3ZlcmxheVJlZjxULCBUaHlTbGlkZUNvbnRhaW5lciwgVFJlc3VsdD5cbiAgICBpbXBsZW1lbnRzIFRoeVNsaWRlUmVmPFQ+XG57XG4gICAgY29uc3RydWN0b3Iob3ZlcmxheVJlZjogT3ZlcmxheVJlZiwgY29udGFpbmVySW5zdGFuY2U6IFRoeVNsaWRlQ29udGFpbmVyLCBjb25maWc6IFRoeVNsaWRlQ29uZmlnKSB7XG4gICAgICAgIHN1cGVyKHNsaWRlQWJzdHJhY3RPdmVybGF5T3B0aW9ucywgb3ZlcmxheVJlZiwgY29udGFpbmVySW5zdGFuY2UsIGNvbmZpZyk7XG4gICAgfVxuXG4gICAgdXBkYXRlUG9zaXRpb24ocG9zaXRpb24/OiBUaHlBYnN0cmFjdE92ZXJsYXlQb3NpdGlvbik6IHRoaXMge1xuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVHbG9iYWxQb3NpdGlvbihwb3NpdGlvbik7XG4gICAgfVxufVxuIl19
@@ -5,13 +5,11 @@ import { Directionality } from '@angular/cdk/bidi';
5
5
  import { coerceElement } from '@angular/cdk/coercion';
6
6
  import { Overlay } from '@angular/cdk/overlay';
7
7
  import { ComponentPortal } from '@angular/cdk/portal';
8
- import { Inject, Injectable, Injector, Optional } from '@angular/core';
8
+ import { Injectable, Injector, inject } from '@angular/core';
9
9
  import { ThySlideContainer } from './slide-container.component';
10
10
  import { ThyInternalSlideRef, ThySlideRef } from './slide-ref.service';
11
11
  import { slideAbstractOverlayOptions, slideDefaultConfigValue, THY_SLIDE_DEFAULT_CONFIG, ThySlideConfig } from './slide.config';
12
12
  import * as i0 from "@angular/core";
13
- import * as i1 from "@angular/cdk/overlay";
14
- import * as i2 from "./slide.config";
15
13
  /**
16
14
  * @public
17
15
  * @order 10
@@ -73,8 +71,11 @@ export class ThySlideService extends ThyAbstractOverlayService {
73
71
  }
74
72
  return openedOverlay;
75
73
  }
76
- constructor(overlay, injector, defaultConfig) {
74
+ constructor() {
75
+ const defaultConfig = inject(THY_SLIDE_DEFAULT_CONFIG, { optional: true });
77
76
  const slideDefaultConfig = Object.assign({}, slideDefaultConfigValue, defaultConfig);
77
+ const overlay = inject(Overlay);
78
+ const injector = inject(Injector);
78
79
  super(slideAbstractOverlayOptions, overlay, injector, slideDefaultConfig);
79
80
  }
80
81
  /**
@@ -94,15 +95,10 @@ export class ThySlideService extends ThyAbstractOverlayService {
94
95
  ngOnDestroy() {
95
96
  this.dispose();
96
97
  }
97
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThySlideService, deps: [{ token: i1.Overlay }, { token: i0.Injector }, { token: THY_SLIDE_DEFAULT_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
98
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThySlideService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
98
99
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThySlideService }); }
99
100
  }
100
101
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThySlideService, decorators: [{
101
102
  type: Injectable
102
- }], ctorParameters: () => [{ type: i1.Overlay }, { type: i0.Injector }, { type: i2.ThySlideConfig, decorators: [{
103
- type: Optional
104
- }, {
105
- type: Inject,
106
- args: [THY_SLIDE_DEFAULT_CONFIG]
107
- }] }] });
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zbGlkZS9zbGlkZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUQseUJBQXlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQTZCLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBYSxRQUFRLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBRWxHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsdUJBQXVCLEVBQUUsd0JBQXdCLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFFaEk7OztHQUdHO0FBRUgsTUFBTSxPQUFPLGVBQWdCLFNBQVEseUJBQTREO0lBQ3JGLDJCQUEyQixDQUFDLE1BQXNCO1FBQ3RELElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLGFBQWEsQ0FBYyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFD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ZUFBZTs7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVTs7MEJBK0VGLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50VHlwZU9yVGVtcGxhdGVSZWYsIFRoeUFic3RyYWN0T3ZlcmxheVJlZiwgVGh5QWJzdHJhY3RPdmVybGF5U2VydmljZSB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VBcnJheSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7IGNvZXJjZUVsZW1lbnQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciwgT25EZXN0cm95LCBPcHRpb25hbCwgU3RhdGljUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgVGh5U2xpZGVDb250YWluZXIgfSBmcm9tICcuL3NsaWRlLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGh5SW50ZXJuYWxTbGlkZVJlZiwgVGh5U2xpZGVSZWYgfSBmcm9tICcuL3NsaWRlLXJlZi5zZXJ2aWNlJztcbmltcG9ydCB7IHNsaWRlQWJzdHJhY3RPdmVybGF5T3B0aW9ucywgc2xpZGVEZWZhdWx0Q29uZmlnVmFsdWUsIFRIWV9TTElERV9ERUZBVUxUX0NPTkZJRywgVGh5U2xpZGVDb25maWcgfSBmcm9tICcuL3NsaWRlLmNvbmZpZyc7XG5cbi8qKlxuICogQHB1YmxpY1xuICogQG9yZGVyIDEwXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUaHlTbGlkZVNlcnZpY2UgZXh0ZW5kcyBUaHlBYnN0cmFjdE92ZXJsYXlTZXJ2aWNlPFRoeVNsaWRlQ29uZmlnLCBUaHlTbGlkZUNvbnRhaW5lcj4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgb3JpZ2luRWxlbWVudEFkZEFjdGl2ZUNsYXNzKGNvbmZpZzogVGh5U2xpZGVDb25maWcpIHtcbiAgICAgICAgaWYgKGNvbmZpZy5vcmlnaW4pIHtcbiAgICAgICAgICAgIGNvZXJjZUVsZW1lbnQ8SFRNTEVsZW1lbnQ+KGNvbmZpZy5vcmlnaW4pLmNsYXNzTGlzdC5hZGQoLi4uY29lcmNlQXJyYXkoY29uZmlnLm9yaWdpbkFjdGl2ZUNsYXNzKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG9yaWdpbkVsZW1lbnRSZW1vdmVBY3RpdmVDbGFzcyhjb25maWc6IFRoeVNsaWRlQ29uZmlnKSB7XG4gICAgICAgIGlmIChjb25maWcub3JpZ2luKSB7XG4gICAgICAgICAgICBjb2VyY2VFbGVtZW50PEhUTUxFbGVtZW50Pihjb25maWcub3JpZ2luKS5jbGFzc0xpc3QucmVtb3ZlKC4uLmNvZXJjZUFycmF5KGNvbmZpZy5vcmlnaW5BY3RpdmVDbGFzcykpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGJ1aWxkT3ZlcmxheUNvbmZpZyhjb25maWc6IFRoeVNsaWRlQ29uZmlnKTogT3ZlcmxheUNvbmZpZyB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRDbGFzc2VzOiBzdHJpbmdbXSA9IFsndGh5LXNsaWRlLW92ZXJsYXktcGFuZScsIGB0aHktc2xpZGUtJHtjb25maWcuZnJvbX1gXTtcbiAgICAgICAgY29uc3Qgb3ZlcmxheUNvbmZpZyA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuYnVpbGRCYXNlT3ZlcmxheUNvbmZpZyhjb25maWcsIGRlZmF1bHRDbGFzc2VzKSxcbiAgICAgICAgICAgIHdpZHRoOiBjb25maWcud2lkdGhcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIG92ZXJsYXlDb25maWc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGF0dGFjaE92ZXJsYXlDb250YWluZXIob3ZlcmxheTogT3ZlcmxheVJlZiwgY29uZmlnOiBUaHlTbGlkZUNvbmZpZyk6IFRoeVNsaWRlQ29udGFpbmVyIHtcbiAgICAgICAgY29uc3QgdXNlckluamVjdG9yID0gY29uZmlnICYmIGNvbmZpZy52aWV3Q29udGFpbmVyUmVmICYmIGNvbmZpZy52aWV3Q29udGFpbmVyUmVmLmluamVjdG9yO1xuICAgICAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICAgICAgICBwYXJlbnQ6IHVzZXJJbmplY3RvciB8fCB0aGlzLmluamVjdG9yLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBUaHlTbGlkZUNvbmZpZywgdXNlVmFsdWU6IGNvbmZpZyB9XVxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgY29udGFpbmVyUG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbChUaHlTbGlkZUNvbnRhaW5lciwgY29uZmlnLnZpZXdDb250YWluZXJSZWYsIGluamVjdG9yKTtcbiAgICAgICAgY29uc3QgY29udGFpbmVyUmVmID0gb3ZlcmxheS5hdHRhY2g8VGh5U2xpZGVDb250YWluZXI+KGNvbnRhaW5lclBvcnRhbCk7XG4gICAgICAgIHJldHVybiBjb250YWluZXJSZWYuaW5zdGFuY2U7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZUFic3RyYWN0T3ZlcmxheVJlZjxUPihcbiAgICAgICAgb3ZlcmxheVJlZjogT3ZlcmxheVJlZixcbiAgICAgICAgY29udGFpbmVySW5zdGFuY2U6IFRoeVNsaWRlQ29udGFpbmVyLFxuICAgICAgICBjb25maWc6IFRoeVNsaWRlQ29uZmlnXG4gICAgKTogVGh5QWJzdHJhY3RPdmVybGF5UmVmPFQsIFRoeVNsaWRlQ29udGFpbmVyLCBhbnk+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaHlJbnRlcm5hbFNsaWRlUmVmKG92ZXJsYXlSZWYsIGNvbnRhaW5lckluc3RhbmNlLCBjb25maWcpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVJbmplY3RvcjxUPihcbiAgICAgICAgY29uZmlnOiBUaHlTbGlkZUNvbmZpZyxcbiAgICAgICAgb3ZlcmxheVJlZjogVGh5QWJzdHJhY3RPdmVybGF5UmVmPFQsIFRoeVNsaWRlQ29udGFpbmVyLCBhbnk+LFxuICAgICAgICBjb250YWluZXJJbnN0YW5jZTogVGh5U2xpZGVDb250YWluZXJcbiAgICApOiBJbmplY3RvciB7XG4gICAgICAgIGNvbnN0IHVzZXJJbmplY3RvciA9IGNvbmZpZyAmJiBjb25maWcudmlld0NvbnRhaW5lclJlZiAmJiBjb25maWcudmlld0NvbnRhaW5lclJlZi5pbmplY3RvcjtcblxuICAgICAgICBjb25zdCBpbmplY3Rpb25Ub2tlbnM6IFN0YXRpY1Byb3ZpZGVyW10gPSBbXG4gICAgICAgICAgICB7IHByb3ZpZGU6IFRoeVNsaWRlQ29udGFpbmVyLCB1c2VWYWx1ZTogY29udGFpbmVySW5zdGFuY2UgfSxcbiAgICAgICAgICAgIHsgcHJvdmlkZTogVGh5U2xpZGVSZWYsIHVzZVZhbHVlOiBvdmVybGF5UmVmIH1cbiAgICAgICAgXTtcblxuICAgICAgICBpZiAoY29uZmlnLmRpcmVjdGlvbiAmJiAoIXVzZXJJbmplY3RvciB8fCAhdXNlckluamVjdG9yLmdldDxEaXJlY3Rpb25hbGl0eSB8IG51bGw+KERpcmVjdGlvbmFsaXR5LCBudWxsKSkpIHtcbiAgICAgICAgICAgIGluamVjdGlvblRva2Vucy5wdXNoKHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBEaXJlY3Rpb25hbGl0eSxcbiAgICAgICAgICAgICAgICB1c2VWYWx1ZToge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogY29uZmlnLmRpcmVjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlOiBvZigpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gSW5qZWN0b3IuY3JlYXRlKHsgcGFyZW50OiB1c2VySW5qZWN0b3IgfHwgdGhpcy5pbmplY3RvciwgcHJvdmlkZXJzOiBpbmplY3Rpb25Ub2tlbnMgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvdmVybGF5SXNPcGVuZWQoY29uZmlnOiBUaHlTbGlkZUNvbmZpZykge1xuICAgICAgICBjb25zdCBvcGVuZWRPdmVybGF5ID0gdGhpcy5nZXRBYnN0cmFjdE92ZXJsYXlCeUlkKGNvbmZpZy5pZCk7XG4gICAgICAgIGNvbnN0IHNsaWRlQ29uZmlnID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5kZWZhdWx0Q29uZmlnLCBjb25maWcpO1xuICAgICAgICBpZiAoIXNsaWRlQ29uZmlnLmRpc2FibGVDbG9zZUxhdGVzdCkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZShvcGVuZWRPdmVybGF5KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3BlbmVkT3ZlcmxheTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgb3ZlcmxheTogT3ZlcmxheSxcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KFRIWV9TTElERV9ERUZBVUxUX0NPTkZJRylcbiAgICAgICAgZGVmYXVsdENvbmZpZzogVGh5U2xpZGVDb25maWdcbiAgICApIHtcbiAgICAgICAgY29uc3Qgc2xpZGVEZWZhdWx0Q29uZmlnID0gT2JqZWN0LmFzc2lnbih7fSwgc2xpZGVEZWZhdWx0Q29uZmlnVmFsdWUsIGRlZmF1bHRDb25maWcpO1xuICAgICAgICBzdXBlcihzbGlkZUFic3RyYWN0T3ZlcmxheU9wdGlvbnMsIG92ZXJsYXksIGluamVjdG9yLCBzbGlkZURlZmF1bHRDb25maWcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaJk+W8gOa7keWKqOW8ueWHuuahhlxuICAgICAqL1xuICAgIG9wZW48VCwgVERhdGEgPSB1bmtub3duLCBUUmVzdWx0ID0gdW5rbm93bj4oXG4gICAgICAgIGNvbXBvbmVudE9yVGVtcGxhdGVSZWY6IENvbXBvbmVudFR5cGVPclRlbXBsYXRlUmVmPFQ+LFxuICAgICAgICBjb25maWc6IFRoeVNsaWRlQ29uZmlnPFREYXRhPlxuICAgICk6IFRoeVNsaWRlUmVmPFQsIFRSZXN1bHQ+IHtcbiAgICAgICAgaWYgKHRoaXMub3ZlcmxheUlzT3BlbmVkKGNvbmZpZykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzbGlkZVJlZiA9IHRoaXMub3Blbk92ZXJsYXk8VCwgVFJlc3VsdD4oY29tcG9uZW50T3JUZW1wbGF0ZVJlZiwgY29uZmlnKTtcbiAgICAgICAgdGhpcy5vcmlnaW5FbGVtZW50QWRkQWN0aXZlQ2xhc3Moc2xpZGVSZWYuY29udGFpbmVySW5zdGFuY2UuY29uZmlnKTtcbiAgICAgICAgc2xpZGVSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vcmlnaW5FbGVtZW50UmVtb3ZlQWN0aXZlQ2xhc3Moc2xpZGVSZWYuY29udGFpbmVySW5zdGFuY2UuY29uZmlnKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBzbGlkZVJlZjtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kaXNwb3NlKCk7XG4gICAgfVxufVxuIl19
103
+ }], ctorParameters: () => [] });
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zbGlkZS9zbGlkZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUQseUJBQXlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQTZCLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUE2QixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSx1QkFBdUIsRUFBRSx3QkFBd0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFaEk7OztHQUdHO0FBRUgsTUFBTSxPQUFPLGVBQWdCLFNBQVEseUJBQTREO0lBQ3JGLDJCQUEyQixDQUFDLE1BQXNCO1FBQ3RELElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLGFBQWEsQ0FBYyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1FBQ3RHLENBQUM7SUFDTCxDQUFDO0lBRU8sOEJBQThCLENBQUMsTUFBc0I7UUFDekQsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsYUFBYSxDQUFjLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7UUFDekcsQ0FBQztJQUNMLENBQUM7SUFFUyxrQkFBa0IsQ0FBQyxNQUFzQjtRQUMvQyxNQUFNLGNBQWMsR0FBYSxDQUFDLHdCQUF3QixFQUFFLGFBQWEsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDeEYsTUFBTSxhQUFhLEdBQUc7WUFDbEIsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQztZQUN0RCxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7U0FDdEIsQ0FBQztRQUNGLE9BQU8sYUFBYSxDQUFDO0lBQ3pCLENBQUM7SUFFUyxzQkFBc0IsQ0FBQyxPQUFtQixFQUFFLE1BQXNCO1FBQ3hFLE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBSSxNQUFNLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztRQUMzRixNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQzdCLE1BQU0sRUFBRSxZQUFZLElBQUksSUFBSSxDQUFDLFFBQVE7WUFDckMsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQztTQUM3RCxDQUFDLENBQUM7UUFDSCxNQUFNLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbEcsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBb0IsZUFBZSxDQUFDLENBQUM7UUFDeEUsT0FBTyxZQUFZLENBQUMsUUFBUSxDQUFDO0lBQ2pDLENBQUM7SUFFUyx3QkFBd0IsQ0FDOUIsVUFBc0IsRUFDdEIsaUJBQW9DLEVBQ3BDLE1BQXNCO1FBRXRCLE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVTLGNBQWMsQ0FDcEIsTUFBc0IsRUFDdEIsVUFBNEQsRUFDNUQsaUJBQW9DO1FBRXBDLE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBSSxNQUFNLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztRQUUzRixNQUFNLGVBQWUsR0FBcUI7WUFDdEMsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFO1lBQzNELEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFO1NBQ2pELENBQUM7UUFFRixJQUFJLE1BQU0sQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLFlBQVksSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQXdCLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDeEcsZUFBZSxDQUFDLElBQUksQ0FBQztnQkFDakIsT0FBTyxFQUFFLGNBQWM7Z0JBQ3ZCLFFBQVEsRUFBRTtvQkFDTixLQUFLLEVBQUUsTUFBTSxDQUFDLFNBQVM7b0JBQ3ZCLE1BQU0sRUFBRSxFQUFFLEVBQUU7aUJBQ2Y7YUFDSixDQUFDLENBQUM7UUFDUCxDQUFDO1FBRUQsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLFlBQVksSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFFTyxlQUFlLENBQUMsTUFBc0I7UUFDMUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3RCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlCLENBQUM7UUFDRCxPQUFPLGFBQWEsQ0FBQztJQUN6QixDQUFDO0lBRUQ7UUFDSSxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsd0JBQXdCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUUsQ0FBQztRQUM1RSxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLHVCQUF1QixFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3JGLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoQyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFbEMsS0FBSyxDQUFDLDJCQUEyQixFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLENBQ0Esc0JBQXFELEVBQ3JELE1BQTZCO1FBRTdCLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQy9CLE9BQU87UUFDWCxDQUFDO1FBQ0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBYSxzQkFBc0IsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM5RSxJQUFJLENBQUMsMkJBQTJCLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BFLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2xDLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0UsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQixDQUFDOzhHQXhHUSxlQUFlO2tIQUFmLGVBQWU7OzJGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRUeXBlT3JUZW1wbGF0ZVJlZiwgVGh5QWJzdHJhY3RPdmVybGF5UmVmLCBUaHlBYnN0cmFjdE92ZXJsYXlTZXJ2aWNlIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUFycmF5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHsgY29lcmNlRWxlbWVudCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgT25EZXN0cm95LCBTdGF0aWNQcm92aWRlciwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFRoeVNsaWRlQ29udGFpbmVyIH0gZnJvbSAnLi9zbGlkZS1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRoeUludGVybmFsU2xpZGVSZWYsIFRoeVNsaWRlUmVmIH0gZnJvbSAnLi9zbGlkZS1yZWYuc2VydmljZSc7XG5pbXBvcnQgeyBzbGlkZUFic3RyYWN0T3ZlcmxheU9wdGlvbnMsIHNsaWRlRGVmYXVsdENvbmZpZ1ZhbHVlLCBUSFlfU0xJREVfREVGQVVMVF9DT05GSUcsIFRoeVNsaWRlQ29uZmlnIH0gZnJvbSAnLi9zbGlkZS5jb25maWcnO1xuXG4vKipcbiAqIEBwdWJsaWNcbiAqIEBvcmRlciAxMFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGh5U2xpZGVTZXJ2aWNlIGV4dGVuZHMgVGh5QWJzdHJhY3RPdmVybGF5U2VydmljZTxUaHlTbGlkZUNvbmZpZywgVGh5U2xpZGVDb250YWluZXI+IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIG9yaWdpbkVsZW1lbnRBZGRBY3RpdmVDbGFzcyhjb25maWc6IFRoeVNsaWRlQ29uZmlnKSB7XG4gICAgICAgIGlmIChjb25maWcub3JpZ2luKSB7XG4gICAgICAgICAgICBjb2VyY2VFbGVtZW50PEhUTUxFbGVtZW50Pihjb25maWcub3JpZ2luKS5jbGFzc0xpc3QuYWRkKC4uLmNvZXJjZUFycmF5KGNvbmZpZy5vcmlnaW5BY3RpdmVDbGFzcykpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvcmlnaW5FbGVtZW50UmVtb3ZlQWN0aXZlQ2xhc3MoY29uZmlnOiBUaHlTbGlkZUNvbmZpZykge1xuICAgICAgICBpZiAoY29uZmlnLm9yaWdpbikge1xuICAgICAgICAgICAgY29lcmNlRWxlbWVudDxIVE1MRWxlbWVudD4oY29uZmlnLm9yaWdpbikuY2xhc3NMaXN0LnJlbW92ZSguLi5jb2VyY2VBcnJheShjb25maWcub3JpZ2luQWN0aXZlQ2xhc3MpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBidWlsZE92ZXJsYXlDb25maWcoY29uZmlnOiBUaHlTbGlkZUNvbmZpZyk6IE92ZXJsYXlDb25maWcge1xuICAgICAgICBjb25zdCBkZWZhdWx0Q2xhc3Nlczogc3RyaW5nW10gPSBbJ3RoeS1zbGlkZS1vdmVybGF5LXBhbmUnLCBgdGh5LXNsaWRlLSR7Y29uZmlnLmZyb219YF07XG4gICAgICAgIGNvbnN0IG92ZXJsYXlDb25maWcgPSB7XG4gICAgICAgICAgICAuLi50aGlzLmJ1aWxkQmFzZU92ZXJsYXlDb25maWcoY29uZmlnLCBkZWZhdWx0Q2xhc3NlcyksXG4gICAgICAgICAgICB3aWR0aDogY29uZmlnLndpZHRoXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBvdmVybGF5Q29uZmlnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhdHRhY2hPdmVybGF5Q29udGFpbmVyKG92ZXJsYXk6IE92ZXJsYXlSZWYsIGNvbmZpZzogVGh5U2xpZGVDb25maWcpOiBUaHlTbGlkZUNvbnRhaW5lciB7XG4gICAgICAgIGNvbnN0IHVzZXJJbmplY3RvciA9IGNvbmZpZyAmJiBjb25maWcudmlld0NvbnRhaW5lclJlZiAmJiBjb25maWcudmlld0NvbnRhaW5lclJlZi5pbmplY3RvcjtcbiAgICAgICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgICAgICAgcGFyZW50OiB1c2VySW5qZWN0b3IgfHwgdGhpcy5pbmplY3RvcixcbiAgICAgICAgICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogVGh5U2xpZGVDb25maWcsIHVzZVZhbHVlOiBjb25maWcgfV1cbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoVGh5U2xpZGVDb250YWluZXIsIGNvbmZpZy52aWV3Q29udGFpbmVyUmVmLCBpbmplY3Rvcik7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IG92ZXJsYXkuYXR0YWNoPFRoeVNsaWRlQ29udGFpbmVyPihjb250YWluZXJQb3J0YWwpO1xuICAgICAgICByZXR1cm4gY29udGFpbmVyUmVmLmluc3RhbmNlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVBYnN0cmFjdE92ZXJsYXlSZWY8VD4oXG4gICAgICAgIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYsXG4gICAgICAgIGNvbnRhaW5lckluc3RhbmNlOiBUaHlTbGlkZUNvbnRhaW5lcixcbiAgICAgICAgY29uZmlnOiBUaHlTbGlkZUNvbmZpZ1xuICAgICk6IFRoeUFic3RyYWN0T3ZlcmxheVJlZjxULCBUaHlTbGlkZUNvbnRhaW5lciwgYW55PiB7XG4gICAgICAgIHJldHVybiBuZXcgVGh5SW50ZXJuYWxTbGlkZVJlZihvdmVybGF5UmVmLCBjb250YWluZXJJbnN0YW5jZSwgY29uZmlnKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlSW5qZWN0b3I8VD4oXG4gICAgICAgIGNvbmZpZzogVGh5U2xpZGVDb25maWcsXG4gICAgICAgIG92ZXJsYXlSZWY6IFRoeUFic3RyYWN0T3ZlcmxheVJlZjxULCBUaHlTbGlkZUNvbnRhaW5lciwgYW55PixcbiAgICAgICAgY29udGFpbmVySW5zdGFuY2U6IFRoeVNsaWRlQ29udGFpbmVyXG4gICAgKTogSW5qZWN0b3Ige1xuICAgICAgICBjb25zdCB1c2VySW5qZWN0b3IgPSBjb25maWcgJiYgY29uZmlnLnZpZXdDb250YWluZXJSZWYgJiYgY29uZmlnLnZpZXdDb250YWluZXJSZWYuaW5qZWN0b3I7XG5cbiAgICAgICAgY29uc3QgaW5qZWN0aW9uVG9rZW5zOiBTdGF0aWNQcm92aWRlcltdID0gW1xuICAgICAgICAgICAgeyBwcm92aWRlOiBUaHlTbGlkZUNvbnRhaW5lciwgdXNlVmFsdWU6IGNvbnRhaW5lckluc3RhbmNlIH0sXG4gICAgICAgICAgICB7IHByb3ZpZGU6IFRoeVNsaWRlUmVmLCB1c2VWYWx1ZTogb3ZlcmxheVJlZiB9XG4gICAgICAgIF07XG5cbiAgICAgICAgaWYgKGNvbmZpZy5kaXJlY3Rpb24gJiYgKCF1c2VySW5qZWN0b3IgfHwgIXVzZXJJbmplY3Rvci5nZXQ8RGlyZWN0aW9uYWxpdHkgfCBudWxsPihEaXJlY3Rpb25hbGl0eSwgbnVsbCkpKSB7XG4gICAgICAgICAgICBpbmplY3Rpb25Ub2tlbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogRGlyZWN0aW9uYWxpdHksXG4gICAgICAgICAgICAgICAgdXNlVmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGNvbmZpZy5kaXJlY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZTogb2YoKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIEluamVjdG9yLmNyZWF0ZSh7IHBhcmVudDogdXNlckluamVjdG9yIHx8IHRoaXMuaW5qZWN0b3IsIHByb3ZpZGVyczogaW5qZWN0aW9uVG9rZW5zIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgb3ZlcmxheUlzT3BlbmVkKGNvbmZpZzogVGh5U2xpZGVDb25maWcpIHtcbiAgICAgICAgY29uc3Qgb3BlbmVkT3ZlcmxheSA9IHRoaXMuZ2V0QWJzdHJhY3RPdmVybGF5QnlJZChjb25maWcuaWQpO1xuICAgICAgICBjb25zdCBzbGlkZUNvbmZpZyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZGVmYXVsdENvbmZpZywgY29uZmlnKTtcbiAgICAgICAgaWYgKCFzbGlkZUNvbmZpZy5kaXNhYmxlQ2xvc2VMYXRlc3QpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2Uob3BlbmVkT3ZlcmxheSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9wZW5lZE92ZXJsYXk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRDb25maWcgPSBpbmplY3QoVEhZX1NMSURFX0RFRkFVTFRfQ09ORklHLCB7IG9wdGlvbmFsOiB0cnVlIH0pITtcbiAgICAgICAgY29uc3Qgc2xpZGVEZWZhdWx0Q29uZmlnID0gT2JqZWN0LmFzc2lnbih7fSwgc2xpZGVEZWZhdWx0Q29uZmlnVmFsdWUsIGRlZmF1bHRDb25maWcpO1xuICAgICAgICBjb25zdCBvdmVybGF5ID0gaW5qZWN0KE92ZXJsYXkpO1xuICAgICAgICBjb25zdCBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgICAgICAgc3VwZXIoc2xpZGVBYnN0cmFjdE92ZXJsYXlPcHRpb25zLCBvdmVybGF5LCBpbmplY3Rvciwgc2xpZGVEZWZhdWx0Q29uZmlnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmiZPlvIDmu5HliqjlvLnlh7rmoYZcbiAgICAgKi9cbiAgICBvcGVuPFQsIFREYXRhID0gdW5rbm93biwgVFJlc3VsdCA9IHVua25vd24+KFxuICAgICAgICBjb21wb25lbnRPclRlbXBsYXRlUmVmOiBDb21wb25lbnRUeXBlT3JUZW1wbGF0ZVJlZjxUPixcbiAgICAgICAgY29uZmlnOiBUaHlTbGlkZUNvbmZpZzxURGF0YT5cbiAgICApOiBUaHlTbGlkZVJlZjxULCBUUmVzdWx0PiB7XG4gICAgICAgIGlmICh0aGlzLm92ZXJsYXlJc09wZW5lZChjb25maWcpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2xpZGVSZWYgPSB0aGlzLm9wZW5PdmVybGF5PFQsIFRSZXN1bHQ+KGNvbXBvbmVudE9yVGVtcGxhdGVSZWYsIGNvbmZpZyk7XG4gICAgICAgIHRoaXMub3JpZ2luRWxlbWVudEFkZEFjdGl2ZUNsYXNzKHNsaWRlUmVmLmNvbnRhaW5lckluc3RhbmNlLmNvbmZpZyk7XG4gICAgICAgIHNsaWRlUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMub3JpZ2luRWxlbWVudFJlbW92ZUFjdGl2ZUNsYXNzKHNsaWRlUmVmLmNvbnRhaW5lckluc3RhbmNlLmNvbmZpZyk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gc2xpZGVSZWY7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuZGlzcG9zZSgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { Component, forwardRef, Input, EventEmitter, ChangeDetectorRef, ViewChild, ElementRef, HostBinding, Output, NgZone, numberAttribute } from '@angular/core';
1
+ import { Component, forwardRef, Input, EventEmitter, ChangeDetectorRef, ViewChild, ElementRef, HostBinding, Output, NgZone, numberAttribute, inject } from '@angular/core';
2
2
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
3
  import { fromEvent } from 'rxjs';
4
4
  import { clamp, coerceBooleanProperty } from 'ngx-tethys/util';
@@ -51,11 +51,11 @@ export class ThySlider extends TabIndexDisabledControlValueAccessorMixin {
51
51
  this.sizeClassName = `thy-slider-${size}`;
52
52
  }
53
53
  }
54
- constructor(cdr, ngZone, ref) {
54
+ constructor() {
55
55
  super();
56
- this.cdr = cdr;
57
- this.ngZone = ngZone;
58
- this.ref = ref;
56
+ this.cdr = inject(ChangeDetectorRef);
57
+ this.ngZone = inject(NgZone);
58
+ this.ref = inject(ElementRef);
59
59
  /**
60
60
  * 是否切换为纵轴模式
61
61
  */
@@ -263,7 +263,7 @@ export class ThySlider extends TabIndexDisabledControlValueAccessorMixin {
263
263
  const integerLength = valueString.indexOf('.') + 1;
264
264
  return integerLength >= 0 ? valueString.length - integerLength : 0;
265
265
  }
266
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThySlider, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
266
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThySlider, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
267
267
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.0", type: ThySlider, isStandalone: true, selector: "thy-slider", inputs: { thyVertical: ["thyVertical", "thyVertical", coerceBooleanProperty], thyDisabled: ["thyDisabled", "thyDisabled", coerceBooleanProperty], thyMax: ["thyMax", "thyMax", numberAttribute], thyMin: ["thyMin", "thyMin", numberAttribute], thyStep: ["thyStep", "thyStep", numberAttribute], thyType: "thyType", thyColor: "thyColor", thySize: "thySize" }, outputs: { thyAfterChange: "thyAfterChange" }, host: { properties: { "attr.tabindex": "tabIndex", "class.slider-vertical": "this.thyVertical", "class.slider-disabled": "this.thyDisabled", "class.thy-slider": "this._thySlider", "class.cursor-pointer": "this._pointer" } }, providers: [
268
268
  {
269
269
  provide: NG_VALUE_ACCESSOR,
@@ -283,7 +283,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
283
283
  ], host: {
284
284
  '[attr.tabindex]': `tabIndex`
285
285
  }, standalone: true, imports: [NgStyle], template: "<div class=\"thy-slider-rail\" #sliderRail>\n <div class=\"thy-slider-track\" #sliderTrack [ngStyle]=\"{ 'background-color': thyColor }\"></div>\n <div class=\"thy-slider-pointer\" #sliderPointer [ngStyle]=\"{ 'border-color': thyColor }\"></div>\n</div>\n" }]
286
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i0.ElementRef }], propDecorators: { thyVertical: [{
286
+ }], ctorParameters: () => [], propDecorators: { thyVertical: [{
287
287
  type: HostBinding,
288
288
  args: ['class.slider-vertical']
289
289
  }, {
@@ -343,4 +343,4 @@ function verifyStepValues(ctx) {
343
343
  throw new Error('(max - min) must be divisible by step.');
344
344
  }
345
345
  }
346
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zbGlkZXIvc2xpZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9zbGlkZXIvc2xpZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBTVQsVUFBVSxFQUNWLEtBQUssRUFDTCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLE1BQU0sRUFDTixNQUFNLEVBQ04sZUFBZSxFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUE0QixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0QsT0FBTyxFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRixPQUFPLEVBQUUseUNBQXlDLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQU0xQzs7OztHQUlHO0FBaUJILE1BQU0sT0FBTyxTQUNULFNBQVEseUNBQXlDO0lBVWpEOztPQUVHO0lBQ0gsSUFFYSxXQUFXLENBQUMsS0FBYztRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQWEsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFD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LElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxHQUFjO0lBQ3BDLElBQUksR0FBRyxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO0lBQzFELENBQUM7U0FBTSxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2xGLE1BQU0sSUFBSSxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIE9uSW5pdCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBmb3J3YXJkUmVmLFxuICAgIElucHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBPdXRwdXQsXG4gICAgTmdab25lLFxuICAgIG51bWJlckF0dHJpYnV0ZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjbGFtcCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IHRhcCwgcGx1Y2ssIG1hcCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRhYkluZGV4RGlzYWJsZWRDb250cm9sVmFsdWVBY2Nlc3Nvck1peGluIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IHVzZUhvc3RSZW5kZXJlciB9IGZyb20gJ0B0ZXRoeXMvY2RrL2RvbSc7XG5pbXBvcnQgeyBOZ1N0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuZXhwb3J0IHR5cGUgVGh5U2xpZGVyVHlwZSA9ICdwcmltYXJ5JyB8ICdzdWNjZXNzJyB8ICdpbmZvJyB8ICd3YXJuaW5nJyB8ICdkYW5nZXInO1xuXG5leHBvcnQgdHlwZSBUaHlTbGlkZXJTaXplID0gJ3NtJyB8ICdtZCcgfCAnbGcnO1xuXG4vKipcbiAqIOa7keWKqOi+k+WFpeadoee7hOS7tlxuICogQG5hbWUgdGh5LXNsaWRlclxuICogQG9yZGVyIDEwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXNsaWRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NsaWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGh5U2xpZGVyKSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLnRhYmluZGV4XSc6IGB0YWJJbmRleGBcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nU3R5bGVdXG59KVxuZXhwb3J0IGNsYXNzIFRoeVNsaWRlclxuICAgIGV4dGVuZHMgVGFiSW5kZXhEaXNhYmxlZENvbnRyb2xWYWx1ZUFjY2Vzc29yTWl4aW5cbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG57XG4gICAgLyoqXG4gICAgICog5piv5ZCm5YiH5o2i5Li657q16L205qih5byPXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zbGlkZXItdmVydGljYWwnKVxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pXG4gICAgdGh5VmVydGljYWwgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuemgeeUqFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3Muc2xpZGVyLWRpc2FibGVkJylcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KVxuICAgIG92ZXJyaWRlIHNldCB0aHlEaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gdmFsdWU7XG4gICAgICAgIHRoaXMudG9nZ2xlRGlzYWJsZWQoKTtcbiAgICB9XG4gICAgb3ZlcnJpZGUgZ2V0IHRoeURpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy50aHktc2xpZGVyJykgX3RoeVNsaWRlciA9IHRydWU7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmN1cnNvci1wb2ludGVyJykgX3BvaW50ZXIgPSB0cnVlO1xuXG4gICAgQFZpZXdDaGlsZCgnc2xpZGVyUmFpbCcsIHsgc3RhdGljOiB0cnVlIH0pIHNsaWRlclJhaWw6IEVsZW1lbnRSZWY7XG5cbiAgICBAVmlld0NoaWxkKCdzbGlkZXJUcmFjaycsIHsgc3RhdGljOiB0cnVlIH0pIHNsaWRlclRyYWNrOiBFbGVtZW50UmVmO1xuXG4gICAgQFZpZXdDaGlsZCgnc2xpZGVyUG9pbnRlcicsIHsgc3RhdGljOiB0cnVlIH0pIHNsaWRlclBvaW50ZXI6IEVsZW1lbnRSZWY7XG5cbiAgICAvKipcbiAgICAgKiDmnIDlpKflgLxcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0aHlNYXggPSAxMDA7XG5cbiAgICAvKipcbiAgICAgKiDmnIDlsI/lgLxcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0aHlNaW4gPSAwO1xuXG4gICAgLyoqXG4gICAgICog5q2l6ZW/77yM6ZyA6KaB6KKrIHRoeU1heCAtIHRoeU1pbiDnmoTlt67lgLzmlbTpmaTjgIJcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0aHlTdGVwID0gMTtcblxuICAgIC8qKlxuICAgICAqIOWIh+aNouS4u+mimOexu+Wei1xuICAgICAqIEB0eXBlIHByaW1hcnkgfCBzdWNjZXNzIHwgaW5mbyB8IHdhcm5pbmcgfCBkYW5nZXJcbiAgICAgKiBAZGVmYXVsdCBzdWNjZXNzXG4gICAgICovXG4gICAgQElucHV0KCkgc2V0IHRoeVR5cGUodHlwZTogVGh5U2xpZGVyVHlwZSkge1xuICAgICAgICBpZiAodHlwZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMudHlwZUNsYXNzTmFtZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMudHlwZUNsYXNzTmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmhvc3RSZW5kZXJlci5hZGRDbGFzcyh0eXBlID8gYHRoeS1zbGlkZXItJHt0eXBlfWAgOiAnJyk7XG4gICAgICAgICAgICB0aGlzLnR5cGVDbGFzc05hbWUgPSBgdGh5LXNsaWRlci0ke3R5cGV9YDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOmAmui/h+WPmOmHj+iuvue9ruminOiJslxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUNvbG9yOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDmu5HliqjovpPlhaXmnaHlpKflsI9cbiAgICAgKiBAdHlwZSBzbSB8IG1kIHwgbGdcbiAgICAgKiBAZGVmYXVsdCBzbVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHNldCB0aHlTaXplKHNpemU6IFRoeVNsaWRlclNpemUpIHtcbiAgICAgICAgaWYgKHNpemUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNpemVDbGFzc05hbWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhvc3RSZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnNpemVDbGFzc05hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5ob3N0UmVuZGVyZXIuYWRkQ2xhc3Moc2l6ZSA/IGB0aHktc2xpZGVyLSR7c2l6ZX1gIDogJycpO1xuICAgICAgICAgICAgdGhpcy5zaXplQ2xhc3NOYW1lID0gYHRoeS1zbGlkZXItJHtzaXplfWA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDnp7vliqjnu5PmnZ/lkI7nmoTlm57osIPvvIzlj4LmlbDkuLrlvZPliY3lgLxcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5QWZ0ZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgdmFsdWU6IG51bWJlciB9PigpO1xuXG4gICAgcHVibGljIHZhbHVlOiBudW1iZXI7XG5cbiAgICBwcml2YXRlIHR5cGVDbGFzc05hbWUgPSAnJztcblxuICAgIHByaXZhdGUgc2l6ZUNsYXNzTmFtZSA9ICcnO1xuXG4gICAgcHJpdmF0ZSBkcmFnU3RhcnRMaXN0ZW5lcjogT2JzZXJ2YWJsZTxudW1iZXI+O1xuXG4gICAgcHJpdmF0ZSBkcmFnTW92ZUxpc3RlbmVyOiBPYnNlcnZhYmxlPG51bWJlcj47XG5cbiAgICBwcml2YXRlIGRyYWdFbmRMaXN0ZW5lcjogT2JzZXJ2YWJsZTxFdmVudD47XG5cbiAgICBwcml2YXRlIGRyYWdTdGFydEhhbmRsZXI6IFN1YnNjcmlwdGlvbiB8IG51bGw7XG5cbiAgICBwcml2YXRlIGRyYWdNb3ZlSGFuZGxlcjogU3Vic2NyaXB0aW9uIHwgbnVsbDtcblxuICAgIHByaXZhdGUgZHJhZ0VuZEhhbmRsZXI6IFN1YnNjcmlwdGlvbiB8IG51bGw7XG5cbiAgICBwcml2YXRlIGhvc3RSZW5kZXJlciA9IHVzZUhvc3RSZW5kZXJlcigpO1xuXG4gICAgcHJpdmF0ZSBvbkNoYW5nZUNhbGxiYWNrID0gKHY6IGFueSkgPT4ge307XG5cbiAgICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrID0gKHY6IGFueSkgPT4ge307XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIHJlZjogRWxlbWVudFJlZlxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSB7XG4gICAgICAgICAgICB2ZXJpZnlNaW5BbmRNYXgodGhpcyk7XG4gICAgICAgICAgICB2ZXJpZnlTdGVwVmFsdWVzKHRoaXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50b2dnbGVEaXNhYmxlZCgpO1xuICAgICAgICBpZiAodGhpcy52YWx1ZSA9PT0gbnVsbCB8fCB0aGlzLnZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUodGhpcy5lbnN1cmVWYWx1ZUluUmFuZ2UobnVsbCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLnJlZ2lzdGVyTW91c2VFdmVudHNMaXN0ZW5lcnMoKTtcbiAgICAgICAgdGhpcy50b2dnbGVEaXNhYmxlZCgpO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUobmV3VmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldFZhbHVlKHRoaXMuZW5zdXJlVmFsdWVJblJhbmdlKG5ld1ZhbHVlKSk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkge1xuICAgICAgICAgICAgaWYgKGNoYW5nZXMuaGFzT3duUHJvcGVydHkoJ3RoeU1pbicpIHx8IGNoYW5nZXMuaGFzT3duUHJvcGVydHkoJ3RoeU1heCcpIHx8IGNoYW5nZXMuaGFzT3duUHJvcGVydHkoJ3RoeVN0ZXAnKSkge1xuICAgICAgICAgICAgICAgIHZlcmlmeU1pbkFuZE1heCh0aGlzKTtcbiAgICAgICAgICAgICAgICB2ZXJpZnlTdGVwVmFsdWVzKHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmVNb3VzZUxpc3RlbmVycygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdG9nZ2xlRGlzYWJsZWQoKSB7XG4gICAgICAgIGlmICh0aGlzLnRoeURpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLnVuc3Vic2NyaWJlTW91c2VMaXN0ZW5lcnMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaWJlTW91c2VMaXN0ZW5lcnMoWydzdGFydCddKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VmFsdWUodmFsdWU6IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy52YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVHJhY2tBbmRQb2ludGVyKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZW5zdXJlVmFsdWVJblJhbmdlKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBpZiAoIXRoaXMudmFsdWVNdXN0QmVWYWxpZCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRoeU1pbjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2xhbXAodmFsdWUsIHRoaXMudGh5TWluLCB0aGlzLnRoeU1heCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWx1ZU11c3RCZVZhbGlkKHZhbHVlOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICFpc05hTih0eXBlb2YgdmFsdWUgIT09ICdudW1iZXInID8gcGFyc2VGbG9hdCh2YWx1ZSkgOiB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVUcmFja0FuZFBvaW50ZXIoKSB7XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IHRoaXMudmFsdWVUb09mZnNldCh0aGlzLnZhbHVlKTtcbiAgICAgICAgdGhpcy51cGRhdGVTdHlsZShvZmZzZXQgLyAxMDApO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbHVlVG9PZmZzZXQodmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAoKHZhbHVlIC0gdGhpcy50aHlNaW4pICogMTAwKSAvICh0aGlzLnRoeU1heCAtIHRoaXMudGh5TWluKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVN0eWxlKG9mZnNldFBlcmNlbnRhZ2U6IG51bWJlcikge1xuICAgICAgICBjb25zdCBwZXJjZW50YWdlID0gTWF0aC5taW4oMSwgTWF0aC5tYXgoMCwgb2Zmc2V0UGVyY2VudGFnZSkpO1xuICAgICAgICBjb25zdCBvcmllbnRGaWVsZHM6IHN0cmluZ1tdID0gdGhpcy50aHlWZXJ0aWNhbCA/IFsnaGVpZ2h0JywgJ2JvdHRvbSddIDogWyd3aWR0aCcsICdsZWZ0J107XG4gICAgICAgIHRoaXMuc2xpZGVyVHJhY2submF0aXZlRWxlbWVudC5zdHlsZVtvcmllbnRGaWVsZHNbMF1dID0gYCR7cGVyY2VudGFnZSAqIDEwMH0lYDtcbiAgICAgICAgdGhpcy5zbGlkZXJQb2ludGVyLm5hdGl2ZUVsZW1lbnQuc3R5bGVbb3JpZW50RmllbGRzWzFdXSA9IGAke3BlcmNlbnRhZ2UgKiAxMDB9JWA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1bnN1YnNjcmliZU1vdXNlTGlzdGVuZXJzKGFjdGlvbnM6IHN0cmluZ1tdID0gWydzdGFydCcsICdtb3ZlJywgJ2VuZCddKSB7XG4gICAgICAgIGlmIChhY3Rpb25zLmluY2x1ZGVzKCdzdGFydCcpICYmIHRoaXMuZHJhZ1N0YXJ0SGFuZGxlcikge1xuICAgICAgICAgICAgdGhpcy5kcmFnU3RhcnRIYW5kbGVyLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB0aGlzLmRyYWdTdGFydEhhbmRsZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhY3Rpb25zLmluY2x1ZGVzKCdtb3ZlJykgJiYgdGhpcy5kcmFnTW92ZUhhbmRsZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZHJhZ01vdmVIYW5kbGVyLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB0aGlzLmRyYWdNb3ZlSGFuZGxlciA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFjdGlvbnMuaW5jbHVkZXMoJ2VuZCcpICYmIHRoaXMuZHJhZ0VuZEhhbmRsZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZHJhZ0VuZEhhbmRsZXIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuZHJhZ0VuZEhhbmRsZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdWJzY3JpYmVNb3VzZUxpc3RlbmVycyhhY3Rpb25zOiBzdHJpbmdbXSA9IFsnc3RhcnQnLCAnbW92ZScsICdlbmQnXSkge1xuICAgICAgICBpZiAoYWN0aW9ucy5pbmNsdWRlcygnc3RhcnQnKSAmJiB0aGlzLmRyYWdTdGFydExpc3RlbmVyICYmICF0aGlzLmRyYWdTdGFydEhhbmRsZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZHJhZ1N0YXJ0SGFuZGxlciA9IHRoaXMuZHJhZ1N0YXJ0TGlzdGVuZXIuc3Vic2NyaWJlKHRoaXMubW91c2VTdGFydE1vdmluZy5iaW5kKHRoaXMpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhY3Rpb25zLmluY2x1ZGVzKCdtb3ZlJykgJiYgdGhpcy5kcmFnTW92ZUxpc3RlbmVyICYmICF0aGlzLmRyYWdNb3ZlSGFuZGxlcikge1xuICAgICAgICAgICAgdGhpcy5kcmFnTW92ZUhhbmRsZXIgPSB0aGlzLmRyYWdNb3ZlTGlzdGVuZXIuc3Vic2NyaWJlKHRoaXMubW91c2VNb3ZpbmcuYmluZCh0aGlzKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYWN0aW9ucy5pbmNsdWRlcygnZW5kJykgJiYgdGhpcy5kcmFnRW5kTGlzdGVuZXIgJiYgIXRoaXMuZHJhZ0VuZEhhbmRsZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZHJhZ0VuZEhhbmRsZXIgPSB0aGlzLmRyYWdFbmRMaXN0ZW5lci5zdWJzY3JpYmUodGhpcy5tb3VzZVN0b3BNb3ZpbmcuYmluZCh0aGlzKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG1vdXNlU3RhcnRNb3ZpbmcodmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLnBvaW50ZXJDb250cm9sbGVyKHRydWUpO1xuICAgICAgICB0aGlzLnNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1vdXNlTW92aW5nKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZSh0aGlzLmVuc3VyZVZhbHVlSW5SYW5nZSh2YWx1ZSkpO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1vdXNlU3RvcE1vdmluZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wb2ludGVyQ29udHJvbGxlcihmYWxzZSk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB0aGlzLnRoeUFmdGVyQ2hhbmdlLmVtaXQoeyB2YWx1ZTogdGhpcy52YWx1ZSB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBvaW50ZXJDb250cm9sbGVyKG1vdmFibGU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKG1vdmFibGUpIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaWJlTW91c2VMaXN0ZW5lcnMoWydtb3ZlJywgJ2VuZCddKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudW5zdWJzY3JpYmVNb3VzZUxpc3RlbmVycyhbJ21vdmUnLCAnZW5kJ10pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByaXZhdGUgcmVnaXN0ZXJNb3VzZUV2ZW50c0xpc3RlbmVycygpIHtcbiAgICAgICAgY29uc3Qgb3JpZW50RmllbGQgPSB0aGlzLnRoeVZlcnRpY2FsID8gJ3BhZ2VZJyA6ICdwYWdlWCc7XG5cbiAgICAgICAgdGhpcy5kcmFnU3RhcnRMaXN0ZW5lciA9IHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBmcm9tRXZlbnQodGhpcy5yZWYubmF0aXZlRWxlbWVudCwgJ21vdXNlZG93bicpLnBpcGUoXG4gICAgICAgICAgICAgICAgcGx1Y2sob3JpZW50RmllbGQpLFxuICAgICAgICAgICAgICAgIG1hcCgocG9zaXRpb246IG51bWJlciwgaW5kZXgpID0+IHRoaXMubW91c2VQb3NpdGlvblRvQWRhcHRpdmVWYWx1ZShwb3NpdGlvbikpXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmRyYWdFbmRMaXN0ZW5lciA9IHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZXVwJyk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZHJhZ01vdmVMaXN0ZW5lciA9IHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZW1vdmUnKS5waXBlKFxuICAgICAgICAgICAgICAgIHRhcCgoZTogRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHBsdWNrKG9yaWVudEZpZWxkKSxcbiAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICAgICAgICAgIG1hcCgocG9zaXRpb246IG51bWJlcikgPT4gdGhpcy5tb3VzZVBvc2l0aW9uVG9BZGFwdGl2ZVZhbHVlKHBvc2l0aW9uKSksXG4gICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kcmFnRW5kTGlzdGVuZXIpXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1vdXNlUG9zaXRpb25Ub0FkYXB0aXZlVmFsdWUocG9zaXRpb246IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHNsaWRlclN0YXJ0UG9zaXRpb24gPSB0aGlzLmdldFNsaWRlclBhZ2VQb3NpdGlvbigpO1xuICAgICAgICBjb25zdCBzbGlkZXJMZW5ndGggPSB0aGlzLmdldFJhaWxMZW5ndGgoKTtcbiAgICAgICAgaWYgKCFzbGlkZXJMZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJhdGlvID0gdGhpcy5jb252ZXJ0UG9pbnRlclBvc2l0aW9uVG9SYXRpbyhwb3NpdGlvbiwgc2xpZGVyU3RhcnRQb3NpdGlvbiwgc2xpZGVyTGVuZ3RoKTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnJhdGlvVG9WYWx1ZShyYXRpbyk7XG4gICAgICAgIHJldHVybiBwYXJzZUZsb2F0KHZhbHVlLnRvRml4ZWQodGhpcy5nZXREZWNpbWFscyh0aGlzLnRoeVN0ZXApKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTbGlkZXJQYWdlUG9zaXRpb24oKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgcmVjdCA9IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IHdpbmRvdyA9IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldztcbiAgICAgICAgY29uc3Qgb3JpZW50RmllbGRzOiBzdHJpbmdbXSA9IHRoaXMudGh5VmVydGljYWwgPyBbJ2JvdHRvbScsICdwYWdlWU9mZnNldCddIDogWydsZWZ0JywgJ3BhZ2VYT2Zmc2V0J107XG4gICAgICAgIHJldHVybiByZWN0W29yaWVudEZpZWxkc1swXV0gKyB3aW5kb3dbb3JpZW50RmllbGRzWzFdXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFJhaWxMZW5ndGgoKSB7XG4gICAgICAgIGNvbnN0IG9yaWVudEZpbGVkID0gdGhpcy50aHlWZXJ0aWNhbCA/ICdjbGllbnRIZWlnaHQnIDogJ2NsaWVudFdpZHRoJztcblxuICAgICAgICByZXR1cm4gdGhpcy5zbGlkZXJSYWlsLm5hdGl2ZUVsZW1lbnRbb3JpZW50RmlsZWRdO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29udmVydFBvaW50ZXJQb3NpdGlvblRvUmF0aW8ocG9pbnRlclBvc2l0aW9uOiBudW1iZXIsIHN0YXJ0UG9zaXRpb246IG51bWJlciwgdG90YWxMZW5ndGg6IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy50aHlWZXJ0aWNhbCkge1xuICAgICAgICAgICAgcmV0dXJuIGNsYW1wKChzdGFydFBvc2l0aW9uIC0gcG9pbnRlclBvc2l0aW9uKSAvIHRvdGFsTGVuZ3RoLCAwLCAxKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2xhbXAoKHBvaW50ZXJQb3NpdGlvbiAtIHN0YXJ0UG9zaXRpb24pIC8gdG90YWxMZW5ndGgsIDAsIDEpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmF0aW9Ub1ZhbHVlKHJhdGlvOiBudW1iZXIpIHtcbiAgICAgICAgbGV0IHZhbHVlID0gKHRoaXMudGh5TWF4IC0gdGhpcy50aHlNaW4pICogcmF0aW8gKyB0aGlzLnRoeU1pbjtcbiAgICAgICAgY29uc3Qgc3RlcCA9IHRoaXMudGh5U3RlcDtcbiAgICAgICAgaWYgKHJhdGlvID09PSAwKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHRoaXMudGh5TWluO1xuICAgICAgICB9IGVsc2UgaWYgKHJhdGlvID09PSAxKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHRoaXMudGh5TWF4O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsdWUgPSBNYXRoLnJvdW5kKHZhbHVlIC8gc3RlcCkgKiBzdGVwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjbGFtcCh2YWx1ZSwgdGhpcy50aHlNaW4sIHRoaXMudGh5TWF4KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERlY2ltYWxzKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IGludGVnZXJMZW5ndGggPSB2YWx1ZVN0cmluZy5pbmRleE9mKCcuJykgKyAxO1xuICAgICAgICByZXR1cm4gaW50ZWdlckxlbmd0aCA+PSAwID8gdmFsdWVTdHJpbmcubGVuZ3RoIC0gaW50ZWdlckxlbmd0aCA6IDA7XG4gICAgfVxufVxuXG4vLyBOb3RlOiBrZWVwIGB2ZXJpZnlNaW5BbmRNYXhgIGFuZCBgdmVyaWZ5U3RlcFZhbHVlc2AgYXMgc2VwYXJhdGUgZnVuY3Rpb25zIChub3QgYXMgY2xhc3MgcHJvcGVydGllcylcbi8vIHNvIHRoZXkncmUgdHJlZS1zaGFrYWJsZSBpbiBwcm9kdWN0aW9uIG1vZGUuXG5cbmZ1bmN0aW9uIHZlcmlmeU1pbkFuZE1heChjdHg6IFRoeVNsaWRlcik6IHZvaWQgfCBuZXZlciB7XG4gICAgaWYgKGN0eC50aHlNaW4gPj0gY3R4LnRoeU1heCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21pbiB2YWx1ZSBtdXN0IGxlc3MgdGhhbiBtYXggdmFsdWUuJyk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGVwVmFsdWVzKGN0eDogVGh5U2xpZGVyKTogdm9pZCB8IG5ldmVyIHtcbiAgICBpZiAoY3R4LnRoeVN0ZXAgPD0gMCB8fCAhY3R4LnRoeVN0ZXApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdzdGVwIHZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIDAuJyk7XG4gICAgfSBlbHNlIGlmIChOdW1iZXIuaXNJbnRlZ2VyKGN0eC50aHlTdGVwKSAmJiAoY3R4LnRoeU1heCAtIGN0eC50aHlNaW4pICUgY3R4LnRoeVN0ZXApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCcobWF4IC0gbWluKSBtdXN0IGJlIGRpdmlzaWJsZSBieSBzdGVwLicpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0aHktc2xpZGVyLXJhaWxcIiAjc2xpZGVyUmFpbD5cbiAgPGRpdiBjbGFzcz1cInRoeS1zbGlkZXItdHJhY2tcIiAjc2xpZGVyVHJhY2sgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1jb2xvcic6IHRoeUNvbG9yIH1cIj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInRoeS1zbGlkZXItcG9pbnRlclwiICNzbGlkZXJQb2ludGVyIFtuZ1N0eWxlXT1cInsgJ2JvcmRlci1jb2xvcic6IHRoeUNvbG9yIH1cIj48L2Rpdj5cbjwvZGl2PlxuIl19
346
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zbGlkZXIvc2xpZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9zbGlkZXIvc2xpZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBTVQsVUFBVSxFQUNWLEtBQUssRUFDTCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLE1BQU0sRUFDTixNQUFNLEVBQ04sZUFBZSxFQUNmLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUE0QixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0QsT0FBTyxFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRixPQUFPLEVBQUUseUNBQXlDLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQU0xQzs7OztHQUlHO0FBaUJILE1BQU0sT0FBTyxTQUNULFNBQVEseUNBQXlDO0lBY2pEOztPQUVHO0lBQ0gsSUFFYSxXQUFXLENBQUMsS0FBYztRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQWEsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxRQUFR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QVMsZUFBZSxDQUFDLEdBQWM7SUFDbkMsSUFBSSxHQUFHLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztBQUNMLENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUFDLEdBQWM7SUFDcEMsSUFBSSxHQUFHLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztTQUFNLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbEYsTUFBTSxJQUFJLEtBQUssQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO0lBQzlELENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgT25Jbml0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5wdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIE91dHB1dCxcbiAgICBOZ1pvbmUsXG4gICAgbnVtYmVyQXR0cmlidXRlLFxuICAgIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjbGFtcCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IHRhcCwgcGx1Y2ssIG1hcCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRhYkluZGV4RGlzYWJsZWRDb250cm9sVmFsdWVBY2Nlc3Nvck1peGluIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IHVzZUhvc3RSZW5kZXJlciB9IGZyb20gJ0B0ZXRoeXMvY2RrL2RvbSc7XG5pbXBvcnQgeyBOZ1N0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuZXhwb3J0IHR5cGUgVGh5U2xpZGVyVHlwZSA9ICdwcmltYXJ5JyB8ICdzdWNjZXNzJyB8ICdpbmZvJyB8ICd3YXJuaW5nJyB8ICdkYW5nZXInO1xuXG5leHBvcnQgdHlwZSBUaHlTbGlkZXJTaXplID0gJ3NtJyB8ICdtZCcgfCAnbGcnO1xuXG4vKipcbiAqIOa7keWKqOi+k+WFpeadoee7hOS7tlxuICogQG5hbWUgdGh5LXNsaWRlclxuICogQG9yZGVyIDEwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXNsaWRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NsaWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGh5U2xpZGVyKSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLnRhYmluZGV4XSc6IGB0YWJJbmRleGBcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nU3R5bGVdXG59KVxuZXhwb3J0IGNsYXNzIFRoeVNsaWRlclxuICAgIGV4dGVuZHMgVGFiSW5kZXhEaXNhYmxlZENvbnRyb2xWYWx1ZUFjY2Vzc29yTWl4aW5cbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG57XG4gICAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIHByaXZhdGUgbmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG4gICAgcHJpdmF0ZSByZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKbliIfmjaLkuLrnurXovbTmqKHlvI9cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNsaWRlci12ZXJ0aWNhbCcpXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSlcbiAgICB0aHlWZXJ0aWNhbCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm56aB55SoXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zbGlkZXItZGlzYWJsZWQnKVxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pXG4gICAgb3ZlcnJpZGUgc2V0IHRoeURpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy50b2dnbGVEaXNhYmxlZCgpO1xuICAgIH1cbiAgICBvdmVycmlkZSBnZXQgdGh5RGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkO1xuICAgIH1cblxuICAgIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRoeS1zbGlkZXInKSBfdGh5U2xpZGVyID0gdHJ1ZTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY3Vyc29yLXBvaW50ZXInKSBfcG9pbnRlciA9IHRydWU7XG5cbiAgICBAVmlld0NoaWxkKCdzbGlkZXJSYWlsJywgeyBzdGF0aWM6IHRydWUgfSkgc2xpZGVyUmFpbDogRWxlbWVudFJlZjtcblxuICAgIEBWaWV3Q2hpbGQoJ3NsaWRlclRyYWNrJywgeyBzdGF0aWM6IHRydWUgfSkgc2xpZGVyVHJhY2s6IEVsZW1lbnRSZWY7XG5cbiAgICBAVmlld0NoaWxkKCdzbGlkZXJQb2ludGVyJywgeyBzdGF0aWM6IHRydWUgfSkgc2xpZGVyUG9pbnRlcjogRWxlbWVudFJlZjtcblxuICAgIC8qKlxuICAgICAqIOacgOWkp+WAvFxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRoeU1heCA9IDEwMDtcblxuICAgIC8qKlxuICAgICAqIOacgOWwj+WAvFxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRoeU1pbiA9IDA7XG5cbiAgICAvKipcbiAgICAgKiDmraXplb/vvIzpnIDopoHooqsgdGh5TWF4IC0gdGh5TWluIOeahOW3ruWAvOaVtOmZpOOAglxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRoeVN0ZXAgPSAxO1xuXG4gICAgLyoqXG4gICAgICog5YiH5o2i5Li76aKY57G75Z6LXG4gICAgICogQHR5cGUgcHJpbWFyeSB8IHN1Y2Nlc3MgfCBpbmZvIHwgd2FybmluZyB8IGRhbmdlclxuICAgICAqIEBkZWZhdWx0IHN1Y2Nlc3NcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXQgdGh5VHlwZSh0eXBlOiBUaHlTbGlkZXJUeXBlKSB7XG4gICAgICAgIGlmICh0eXBlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy50eXBlQ2xhc3NOYW1lKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ob3N0UmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy50eXBlQ2xhc3NOYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLmFkZENsYXNzKHR5cGUgPyBgdGh5LXNsaWRlci0ke3R5cGV9YCA6ICcnKTtcbiAgICAgICAgICAgIHRoaXMudHlwZUNsYXNzTmFtZSA9IGB0aHktc2xpZGVyLSR7dHlwZX1gO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog6YCa6L+H5Y+Y6YeP6K6+572u6aKc6ImyXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5Q29sb3I6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOa7keWKqOi+k+WFpeadoeWkp+Wwj1xuICAgICAqIEB0eXBlIHNtIHwgbWQgfCBsZ1xuICAgICAqIEBkZWZhdWx0IHNtXG4gICAgICovXG4gICAgQElucHV0KCkgc2V0IHRoeVNpemUoc2l6ZTogVGh5U2xpZGVyU2l6ZSkge1xuICAgICAgICBpZiAoc2l6ZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2l6ZUNsYXNzTmFtZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuc2l6ZUNsYXNzTmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmhvc3RSZW5kZXJlci5hZGRDbGFzcyhzaXplID8gYHRoeS1zbGlkZXItJHtzaXplfWAgOiAnJyk7XG4gICAgICAgICAgICB0aGlzLnNpemVDbGFzc05hbWUgPSBgdGh5LXNsaWRlci0ke3NpemV9YDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOenu+WKqOe7k+adn+WQjueahOWbnuiwg++8jOWPguaVsOS4uuW9k+WJjeWAvFxuICAgICAqL1xuICAgIEBPdXRwdXQoKSB0aHlBZnRlckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyB2YWx1ZTogbnVtYmVyIH0+KCk7XG5cbiAgICBwdWJsaWMgdmFsdWU6IG51bWJlcjtcblxuICAgIHByaXZhdGUgdHlwZUNsYXNzTmFtZSA9ICcnO1xuXG4gICAgcHJpdmF0ZSBzaXplQ2xhc3NOYW1lID0gJyc7XG5cbiAgICBwcml2YXRlIGRyYWdTdGFydExpc3RlbmVyOiBPYnNlcnZhYmxlPG51bWJlcj47XG5cbiAgICBwcml2YXRlIGRyYWdNb3ZlTGlzdGVuZXI6IE9ic2VydmFibGU8bnVtYmVyPjtcblxuICAgIHByaXZhdGUgZHJhZ0VuZExpc3RlbmVyOiBPYnNlcnZhYmxlPEV2ZW50PjtcblxuICAgIHByaXZhdGUgZHJhZ1N0YXJ0SGFuZGxlcjogU3Vic2NyaXB0aW9uIHwgbnVsbDtcblxuICAgIHByaXZhdGUgZHJhZ01vdmVIYW5kbGVyOiBTdWJzY3JpcHRpb24gfCBudWxsO1xuXG4gICAgcHJpdmF0ZSBkcmFnRW5kSGFuZGxlcjogU3Vic2NyaXB0aW9uIHwgbnVsbDtcblxuICAgIHByaXZhdGUgaG9zdFJlbmRlcmVyID0gdXNlSG9zdFJlbmRlcmVyKCk7XG5cbiAgICBwcml2YXRlIG9uQ2hhbmdlQ2FsbGJhY2sgPSAodjogYW55KSA9PiB7fTtcblxuICAgIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2sgPSAodjogYW55KSA9PiB7fTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSB7XG4gICAgICAgICAgICB2ZXJpZnlNaW5BbmRNYXgodGhpcyk7XG4gICAgICAgICAgICB2ZXJpZnlTdGVwVmFsdWVzKHRoaXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50b2dnbGVEaXNhYmxlZCgpO1xuICAgICAgICBpZiAodGhpcy52YWx1ZSA9PT0gbnVsbCB8fCB0aGlzLnZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUodGhpcy5lbnN1cmVWYWx1ZUluUmFuZ2UobnVsbCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLnJlZ2lzdGVyTW91c2VFdmVudHNMaXN0ZW5lcnMoKTtcbiAgICAgICAgdGhpcy50b2dnbGVEaXNhYmxlZCgpO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUobmV3VmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldFZhbHVlKHRoaXMuZW5zdXJlVmFsdWVJblJhbmdlKG5ld1ZhbHVlKSk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkge1xuICAgICAgICAgICAgaWYgKGNoYW5nZXMuaGFzT3duUHJvcGVydHkoJ3RoeU1pbicpIHx8IGNoYW5nZXMuaGFzT3duUHJvcGVydHkoJ3RoeU1heCcpIHx8IGNoYW5nZXMuaGFzT3duUHJvcGVydHkoJ3RoeVN0ZXAnKSkge1xuICAgICAgICAgICAgICAgIHZlcmlmeU1pbkFuZE1heCh0aGlzKTtcbiAgICAgICAgICAgICAgICB2ZXJpZnlTdGVwVmFsdWVzKHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmVNb3VzZUxpc3RlbmVycygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdG9nZ2xlRGlzYWJsZWQoKSB7XG4gICAgICAgIGlmICh0aGlzLnRoeURpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLnVuc3Vic2NyaWJlTW91c2VMaXN0ZW5lcnMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaWJlTW91c2VMaXN0ZW5lcnMoWydzdGFydCddKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VmFsdWUodmFsdWU6IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy52YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVHJhY2tBbmRQb2ludGVyKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZW5zdXJlVmFsdWVJblJhbmdlKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBpZiAoIXRoaXMudmFsdWVNdXN0QmVWYWxpZCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRoeU1pbjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2xhbXAodmFsdWUsIHRoaXMudGh5TWluLCB0aGlzLnRoeU1heCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWx1ZU11c3RCZVZhbGlkKHZhbHVlOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICFpc05hTih0eXBlb2YgdmFsdWUgIT09ICdudW1iZXInID8gcGFyc2VGbG9hdCh2YWx1ZSkgOiB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVUcmFja0FuZFBvaW50ZXIoKSB7XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IHRoaXMudmFsdWVUb09mZnNldCh0aGlzLnZhbHVlKTtcbiAgICAgICAgdGhpcy51cGRhdGVTdHlsZShvZmZzZXQgLyAxMDApO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbHVlVG9PZmZzZXQodmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAoKHZhbHVlIC0gdGhpcy50aHlNaW4pICogMTAwKSAvICh0aGlzLnRoeU1heCAtIHRoaXMudGh5TWluKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVN0eWxlKG9mZnNldFBlcmNlbnRhZ2U6IG51bWJlcikge1xuICAgICAgICBjb25zdCBwZXJjZW50YWdlID0gTWF0aC5taW4oMSwgTWF0aC5tYXgoMCwgb2Zmc2V0UGVyY2VudGFnZSkpO1xuICAgICAgICBjb25zdCBvcmllbnRGaWVsZHM6IHN0cmluZ1tdID0gdGhpcy50aHlWZXJ0aWNhbCA/IFsnaGVpZ2h0JywgJ2JvdHRvbSddIDogWyd3aWR0aCcsICdsZWZ0J107XG4gICAgICAgIHRoaXMuc2xpZGVyVHJhY2submF0aXZlRWxlbWVudC5zdHlsZVtvcmllbnRGaWVsZHNbMF1dID0gYCR7cGVyY2VudGFnZSAqIDEwMH0lYDtcbiAgICAgICAgdGhpcy5zbGlkZXJQb2ludGVyLm5hdGl2ZUVsZW1lbnQuc3R5bGVbb3JpZW50RmllbGRzWzFdXSA9IGAke3BlcmNlbnRhZ2UgKiAxMDB9JWA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1bnN1YnNjcmliZU1vdXNlTGlzdGVuZXJzKGFjdGlvbnM6IHN0cmluZ1tdID0gWydzdGFydCcsICdtb3ZlJywgJ2VuZCddKSB7XG4gICAgICAgIGlmIChhY3Rpb25zLmluY2x1ZGVzKCdzdGFydCcpICYmIHRoaXMuZHJhZ1N0YXJ0SGFuZGxlcikge1xuICAgICAgICAgICAgdGhpcy5kcmFnU3RhcnRIYW5kbGVyLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB0aGlzLmRyYWdTdGFydEhhbmRsZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhY3Rpb25zLmluY2x1ZGVzKCdtb3ZlJykgJiYgdGhpcy5kcmFnTW92ZUhhbmRsZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZHJhZ01vdmVIYW5kbGVyLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB0aGlzLmRyYWdNb3ZlSGFuZGxlciA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFjdGlvbnMuaW5jbHVkZXMoJ2VuZCcpICYmIHRoaXMuZHJhZ0VuZEhhbmRsZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZHJhZ0VuZEhhbmRsZXIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuZHJhZ0VuZEhhbmRsZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdWJzY3JpYmVNb3VzZUxpc3RlbmVycyhhY3Rpb25zOiBzdHJpbmdbXSA9IFsnc3RhcnQnLCAnbW92ZScsICdlbmQnXSkge1xuICAgICAgICBpZiAoYWN0aW9ucy5pbmNsdWRlcygnc3RhcnQnKSAmJiB0aGlzLmRyYWdTdGFydExpc3RlbmVyICYmICF0aGlzLmRyYWdTdGFydEhhbmRsZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZHJhZ1N0YXJ0SGFuZGxlciA9IHRoaXMuZHJhZ1N0YXJ0TGlzdGVuZXIuc3Vic2NyaWJlKHRoaXMubW91c2VTdGFydE1vdmluZy5iaW5kKHRoaXMpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhY3Rpb25zLmluY2x1ZGVzKCdtb3ZlJykgJiYgdGhpcy5kcmFnTW92ZUxpc3RlbmVyICYmICF0aGlzLmRyYWdNb3ZlSGFuZGxlcikge1xuICAgICAgICAgICAgdGhpcy5kcmFnTW92ZUhhbmRsZXIgPSB0aGlzLmRyYWdNb3ZlTGlzdGVuZXIuc3Vic2NyaWJlKHRoaXMubW91c2VNb3ZpbmcuYmluZCh0aGlzKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYWN0aW9ucy5pbmNsdWRlcygnZW5kJykgJiYgdGhpcy5kcmFnRW5kTGlzdGVuZXIgJiYgIXRoaXMuZHJhZ0VuZEhhbmRsZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZHJhZ0VuZEhhbmRsZXIgPSB0aGlzLmRyYWdFbmRMaXN0ZW5lci5zdWJzY3JpYmUodGhpcy5tb3VzZVN0b3BNb3ZpbmcuYmluZCh0aGlzKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG1vdXNlU3RhcnRNb3ZpbmcodmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLnBvaW50ZXJDb250cm9sbGVyKHRydWUpO1xuICAgICAgICB0aGlzLnNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1vdXNlTW92aW5nKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZSh0aGlzLmVuc3VyZVZhbHVlSW5SYW5nZSh2YWx1ZSkpO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1vdXNlU3RvcE1vdmluZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wb2ludGVyQ29udHJvbGxlcihmYWxzZSk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB0aGlzLnRoeUFmdGVyQ2hhbmdlLmVtaXQoeyB2YWx1ZTogdGhpcy52YWx1ZSB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBvaW50ZXJDb250cm9sbGVyKG1vdmFibGU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKG1vdmFibGUpIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaWJlTW91c2VMaXN0ZW5lcnMoWydtb3ZlJywgJ2VuZCddKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudW5zdWJzY3JpYmVNb3VzZUxpc3RlbmVycyhbJ21vdmUnLCAnZW5kJ10pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByaXZhdGUgcmVnaXN0ZXJNb3VzZUV2ZW50c0xpc3RlbmVycygpIHtcbiAgICAgICAgY29uc3Qgb3JpZW50RmllbGQgPSB0aGlzLnRoeVZlcnRpY2FsID8gJ3BhZ2VZJyA6ICdwYWdlWCc7XG5cbiAgICAgICAgdGhpcy5kcmFnU3RhcnRMaXN0ZW5lciA9IHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBmcm9tRXZlbnQodGhpcy5yZWYubmF0aXZlRWxlbWVudCwgJ21vdXNlZG93bicpLnBpcGUoXG4gICAgICAgICAgICAgICAgcGx1Y2sob3JpZW50RmllbGQpLFxuICAgICAgICAgICAgICAgIG1hcCgocG9zaXRpb246IG51bWJlciwgaW5kZXgpID0+IHRoaXMubW91c2VQb3NpdGlvblRvQWRhcHRpdmVWYWx1ZShwb3NpdGlvbikpXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmRyYWdFbmRMaXN0ZW5lciA9IHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZXVwJyk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZHJhZ01vdmVMaXN0ZW5lciA9IHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZW1vdmUnKS5waXBlKFxuICAgICAgICAgICAgICAgIHRhcCgoZTogRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHBsdWNrKG9yaWVudEZpZWxkKSxcbiAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICAgICAgICAgIG1hcCgocG9zaXRpb246IG51bWJlcikgPT4gdGhpcy5tb3VzZVBvc2l0aW9uVG9BZGFwdGl2ZVZhbHVlKHBvc2l0aW9uKSksXG4gICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kcmFnRW5kTGlzdGVuZXIpXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1vdXNlUG9zaXRpb25Ub0FkYXB0aXZlVmFsdWUocG9zaXRpb246IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHNsaWRlclN0YXJ0UG9zaXRpb24gPSB0aGlzLmdldFNsaWRlclBhZ2VQb3NpdGlvbigpO1xuICAgICAgICBjb25zdCBzbGlkZXJMZW5ndGggPSB0aGlzLmdldFJhaWxMZW5ndGgoKTtcbiAgICAgICAgaWYgKCFzbGlkZXJMZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJhdGlvID0gdGhpcy5jb252ZXJ0UG9pbnRlclBvc2l0aW9uVG9SYXRpbyhwb3NpdGlvbiwgc2xpZGVyU3RhcnRQb3NpdGlvbiwgc2xpZGVyTGVuZ3RoKTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnJhdGlvVG9WYWx1ZShyYXRpbyk7XG4gICAgICAgIHJldHVybiBwYXJzZUZsb2F0KHZhbHVlLnRvRml4ZWQodGhpcy5nZXREZWNpbWFscyh0aGlzLnRoeVN0ZXApKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTbGlkZXJQYWdlUG9zaXRpb24oKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgcmVjdCA9IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IHdpbmRvdyA9IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldztcbiAgICAgICAgY29uc3Qgb3JpZW50RmllbGRzOiBzdHJpbmdbXSA9IHRoaXMudGh5VmVydGljYWwgPyBbJ2JvdHRvbScsICdwYWdlWU9mZnNldCddIDogWydsZWZ0JywgJ3BhZ2VYT2Zmc2V0J107XG4gICAgICAgIHJldHVybiByZWN0W29yaWVudEZpZWxkc1swXV0gKyB3aW5kb3dbb3JpZW50RmllbGRzWzFdXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFJhaWxMZW5ndGgoKSB7XG4gICAgICAgIGNvbnN0IG9yaWVudEZpbGVkID0gdGhpcy50aHlWZXJ0aWNhbCA/ICdjbGllbnRIZWlnaHQnIDogJ2NsaWVudFdpZHRoJztcblxuICAgICAgICByZXR1cm4gdGhpcy5zbGlkZXJSYWlsLm5hdGl2ZUVsZW1lbnRbb3JpZW50RmlsZWRdO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29udmVydFBvaW50ZXJQb3NpdGlvblRvUmF0aW8ocG9pbnRlclBvc2l0aW9uOiBudW1iZXIsIHN0YXJ0UG9zaXRpb246IG51bWJlciwgdG90YWxMZW5ndGg6IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy50aHlWZXJ0aWNhbCkge1xuICAgICAgICAgICAgcmV0dXJuIGNsYW1wKChzdGFydFBvc2l0aW9uIC0gcG9pbnRlclBvc2l0aW9uKSAvIHRvdGFsTGVuZ3RoLCAwLCAxKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2xhbXAoKHBvaW50ZXJQb3NpdGlvbiAtIHN0YXJ0UG9zaXRpb24pIC8gdG90YWxMZW5ndGgsIDAsIDEpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmF0aW9Ub1ZhbHVlKHJhdGlvOiBudW1iZXIpIHtcbiAgICAgICAgbGV0IHZhbHVlID0gKHRoaXMudGh5TWF4IC0gdGhpcy50aHlNaW4pICogcmF0aW8gKyB0aGlzLnRoeU1pbjtcbiAgICAgICAgY29uc3Qgc3RlcCA9IHRoaXMudGh5U3RlcDtcbiAgICAgICAgaWYgKHJhdGlvID09PSAwKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHRoaXMudGh5TWluO1xuICAgICAgICB9IGVsc2UgaWYgKHJhdGlvID09PSAxKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHRoaXMudGh5TWF4O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsdWUgPSBNYXRoLnJvdW5kKHZhbHVlIC8gc3RlcCkgKiBzdGVwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjbGFtcCh2YWx1ZSwgdGhpcy50aHlNaW4sIHRoaXMudGh5TWF4KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERlY2ltYWxzKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IGludGVnZXJMZW5ndGggPSB2YWx1ZVN0cmluZy5pbmRleE9mKCcuJykgKyAxO1xuICAgICAgICByZXR1cm4gaW50ZWdlckxlbmd0aCA+PSAwID8gdmFsdWVTdHJpbmcubGVuZ3RoIC0gaW50ZWdlckxlbmd0aCA6IDA7XG4gICAgfVxufVxuXG4vLyBOb3RlOiBrZWVwIGB2ZXJpZnlNaW5BbmRNYXhgIGFuZCBgdmVyaWZ5U3RlcFZhbHVlc2AgYXMgc2VwYXJhdGUgZnVuY3Rpb25zIChub3QgYXMgY2xhc3MgcHJvcGVydGllcylcbi8vIHNvIHRoZXkncmUgdHJlZS1zaGFrYWJsZSBpbiBwcm9kdWN0aW9uIG1vZGUuXG5cbmZ1bmN0aW9uIHZlcmlmeU1pbkFuZE1heChjdHg6IFRoeVNsaWRlcik6IHZvaWQgfCBuZXZlciB7XG4gICAgaWYgKGN0eC50aHlNaW4gPj0gY3R4LnRoeU1heCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21pbiB2YWx1ZSBtdXN0IGxlc3MgdGhhbiBtYXggdmFsdWUuJyk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGVwVmFsdWVzKGN0eDogVGh5U2xpZGVyKTogdm9pZCB8IG5ldmVyIHtcbiAgICBpZiAoY3R4LnRoeVN0ZXAgPD0gMCB8fCAhY3R4LnRoeVN0ZXApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdzdGVwIHZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIDAuJyk7XG4gICAgfSBlbHNlIGlmIChOdW1iZXIuaXNJbnRlZ2VyKGN0eC50aHlTdGVwKSAmJiAoY3R4LnRoeU1heCAtIGN0eC50aHlNaW4pICUgY3R4LnRoeVN0ZXApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCcobWF4IC0gbWluKSBtdXN0IGJlIGRpdmlzaWJsZSBieSBzdGVwLicpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0aHktc2xpZGVyLXJhaWxcIiAjc2xpZGVyUmFpbD5cbiAgPGRpdiBjbGFzcz1cInRoeS1zbGlkZXItdHJhY2tcIiAjc2xpZGVyVHJhY2sgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1jb2xvcic6IHRoeUNvbG9yIH1cIj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInRoeS1zbGlkZXItcG9pbnRlclwiICNzbGlkZXJQb2ludGVyIFtuZ1N0eWxlXT1cInsgJ2JvcmRlci1jb2xvcic6IHRoeUNvbG9yIH1cIj48L2Rpdj5cbjwvZGl2PlxuIl19