@scion/workbench 18.0.0-beta.1 → 18.0.0-beta.10

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 (275) hide show
  1. package/_index.scss +7 -5
  2. package/design/_workbench-global-styles.scss +18 -0
  3. package/design/_workbench-icon-font.scss +1 -1
  4. package/design/_workbench-popup-global-styles.scss +1 -1
  5. package/design/{_workbench-view-drag-image-global-styles.scss → _workbench-view-global-styles.scss} +1 -2
  6. package/esm2022/lib/common/class-list.mjs +67 -29
  7. package/esm2022/lib/common/math.util.mjs +16 -0
  8. package/esm2022/lib/common/objects.util.mjs +7 -1
  9. package/esm2022/lib/common/operators.mjs +1 -12
  10. package/esm2022/lib/common/uid.util.mjs +22 -0
  11. package/esm2022/lib/content-projection/content-as-overlay.component.mjs +85 -28
  12. package/esm2022/lib/content-projection/workbench-element-references.mjs +32 -0
  13. package/esm2022/lib/dialog/dialog-header/dialog-header.component.mjs +3 -8
  14. package/esm2022/lib/dialog/movable.directive.mjs +3 -3
  15. package/esm2022/lib/dialog/resizable.directive.mjs +3 -3
  16. package/esm2022/lib/dialog/workbench-dialog.component.mjs +25 -23
  17. package/esm2022/lib/dialog/workbench-dialog.mjs +61 -1
  18. package/esm2022/lib/dialog//311/265workbench-dialog.mjs +98 -60
  19. package/esm2022/lib/dialog//311/265workbench-dialog.service.mjs +26 -23
  20. package/esm2022/lib/executor/latest-task-executor.mjs +55 -0
  21. package/esm2022/lib/executor/single-task-executor.mjs +9 -19
  22. package/esm2022/lib/filter-field/filter-field.component.mjs +5 -5
  23. package/esm2022/lib/layout/grid-element/grid-element.component.mjs +8 -18
  24. package/esm2022/lib/layout/main-area-layout/main-area-layout.component.mjs +18 -21
  25. package/esm2022/lib/layout/migration/model/workbench-layout-migration-v5.model.mjs +11 -0
  26. package/esm2022/lib/layout/migration/model/workbench-layout-migration-v6.model.mjs +11 -0
  27. package/esm2022/lib/layout/migration/workbench-layout-migration-v3.service.mjs +4 -4
  28. package/esm2022/lib/layout/migration/workbench-layout-migration-v5.service.mjs +67 -0
  29. package/esm2022/lib/layout/migration/workbench-layout-migration-v6.service.mjs +59 -0
  30. package/esm2022/lib/layout/stringifier.mjs +70 -0
  31. package/esm2022/lib/layout/workbench-layout.component.mjs +18 -22
  32. package/esm2022/lib/layout/workbench-layout.mjs +1 -1
  33. package/esm2022/lib/layout/workbench-layout.model.mjs +1 -1
  34. package/esm2022/lib/layout/workbench-layout.service.mjs +26 -24
  35. package/esm2022/lib/layout/workbench-layouts.util.mjs +1 -9
  36. package/esm2022/lib/layout/workench-layout-serializer.service.mjs +19 -27
  37. package/esm2022/lib/layout//311/265workbench-layout.factory.mjs +3 -2
  38. package/esm2022/lib/layout//311/265workbench-layout.mjs +73 -62
  39. package/esm2022/lib/logging/logging-support.mjs +7 -13
  40. package/esm2022/lib/logging//311/265logger.mjs +10 -10
  41. package/esm2022/lib/message-box/message-box-footer/message-box-footer.component.mjs +7 -6
  42. package/esm2022/lib/message-box/message-box-header/message-box-header.component.mjs +3 -3
  43. package/esm2022/lib/message-box/workbench-message-box.component.mjs +2 -2
  44. package/esm2022/lib/message-box//311/265workbench-message-box.service.mjs +3 -2
  45. package/esm2022/lib/microfrontend-platform/common/microfrontend.util.mjs +22 -6
  46. package/esm2022/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.mjs +28 -21
  47. package/esm2022/lib/microfrontend-platform/initialization/ng-zone-observable-decorator.mjs +3 -3
  48. package/esm2022/lib/microfrontend-platform/initialization/workbench-host-manifest-interceptor.service.mjs +11 -1
  49. package/esm2022/lib/microfrontend-platform/manifest-object-cache.service.mjs +63 -0
  50. package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-capability-validator.interceptor.mjs +5 -4
  51. package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog.component.mjs +6 -10
  52. package/esm2022/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.mjs +18 -9
  53. package/esm2022/lib/microfrontend-platform/microfrontend-host-message-box/microfrontend-host-message-box.component.mjs +7 -6
  54. package/esm2022/lib/microfrontend-platform/microfrontend-host-message-box/text-message/text-message.component.mjs +3 -3
  55. package/esm2022/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.mjs +15 -13
  56. package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-capability-validator.interceptor.mjs +3 -2
  57. package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box.component.mjs +6 -11
  58. package/esm2022/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-capability-validator.interceptor.mjs +39 -0
  59. package/esm2022/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-installer.service.mjs +120 -0
  60. package/esm2022/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-intent-handler.interceptor.mjs +55 -0
  61. package/esm2022/lib/microfrontend-platform/microfrontend-perspective/workbench-perspective-data.mjs +19 -0
  62. package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-capability-validator.interceptor.mjs +4 -3
  63. package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-intent-handler.interceptor.mjs +11 -12
  64. package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.mjs +12 -28
  65. package/esm2022/lib/microfrontend-platform/microfrontend-splash/microfrontend-splash.component.mjs +3 -3
  66. package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view-command-handler.service.mjs +11 -27
  67. package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.mjs +91 -71
  68. package/esm2022/lib/microfrontend-platform/public_api.mjs +2 -1
  69. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-validator.interceptor.mjs +5 -4
  70. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-intent-handler.interceptor.mjs +18 -16
  71. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-routes.mjs +30 -8
  72. package/esm2022/lib/microfrontend-platform/stable-capability-id-assigner.interceptor.mjs +32 -0
  73. package/esm2022/lib/microfrontend-platform/workbench-microfrontend-support.mjs +26 -8
  74. package/esm2022/lib/notification/notification-list.component.mjs +4 -8
  75. package/esm2022/lib/notification/notification.component.mjs +4 -5
  76. package/esm2022/lib/notification/notification.service.mjs +5 -4
  77. package/esm2022/lib/page-not-found/page-not-found.component.mjs +5 -7
  78. package/esm2022/lib/part/part-action-bar/part-action-bar.component.mjs +11 -19
  79. package/esm2022/lib/part/part-action-bar/part-action.directive.mjs +4 -4
  80. package/esm2022/lib/part/part-bar/part-bar.component.mjs +333 -264
  81. package/esm2022/lib/part/part-portal.pipe.mjs +8 -8
  82. package/esm2022/lib/part/part.component.mjs +33 -42
  83. package/esm2022/lib/part/view-context-menu/text.component.mjs +16 -12
  84. package/esm2022/lib/part/view-context-menu/view-menu.component.mjs +4 -6
  85. package/esm2022/lib/part/view-context-menu/view-menu.directive.mjs +2 -2
  86. package/esm2022/lib/part/view-context-menu/view-menu.service.mjs +48 -49
  87. package/esm2022/lib/part/view-list/view-list.component.mjs +41 -48
  88. package/esm2022/lib/part/view-list-button/view-list-button.component.mjs +22 -26
  89. package/esm2022/lib/part/view-list-item/view-list-item.component.mjs +15 -17
  90. package/esm2022/lib/part/view-tab/view-tab.component.mjs +99 -110
  91. package/esm2022/lib/part/view-tab-content/view-tab-content.component.mjs +3 -4
  92. package/esm2022/lib/part/view-tab-drag-image/view-tab-drag-image.component.mjs +16 -17
  93. package/esm2022/lib/part/workbench-part-action.registry.mjs +18 -42
  94. package/esm2022/lib/part/workbench-part.model.mjs +10 -1
  95. package/esm2022/lib/part/workbench-part.registry.mjs +11 -45
  96. package/esm2022/lib/part//311/265workbench-part.model.mjs +71 -55
  97. package/esm2022/lib/perspective/workbench-grid-merger.service.mjs +3 -3
  98. package/esm2022/lib/perspective/workbench-perspective.model.mjs +1 -1
  99. package/esm2022/lib/perspective/workbench-perspective.registry.mjs +11 -43
  100. package/esm2022/lib/perspective/workbench-perspective.service.mjs +71 -62
  101. package/esm2022/lib/perspective/workench-perspective-serializer.service.mjs +2 -2
  102. package/esm2022/lib/perspective//311/265workbench-perspective.model.mjs +62 -47
  103. package/esm2022/lib/popup/popup.component.mjs +3 -3
  104. package/esm2022/lib/popup/popup.config.mjs +27 -25
  105. package/esm2022/lib/popup/popup.service.mjs +169 -174
  106. package/esm2022/lib/portal/wb-component-portal.mjs +18 -17
  107. package/esm2022/lib/public_api.mjs +1 -1
  108. package/esm2022/lib/registry/workbench-object-registry.mjs +38 -17
  109. package/esm2022/lib/routing/public_api.mjs +2 -2
  110. package/esm2022/lib/routing/routing.model.mjs +1 -1
  111. package/esm2022/lib/routing/routing.util.mjs +215 -0
  112. package/esm2022/lib/routing/workbench-auxiliary-route-installer.service.mjs +110 -0
  113. package/esm2022/lib/routing/workbench-dialog-differ.mjs +3 -3
  114. package/esm2022/lib/routing/workbench-layout-differ.mjs +3 -10
  115. package/esm2022/lib/routing/workbench-message-box-differ.mjs +3 -3
  116. package/esm2022/lib/routing/workbench-navigational-states.mjs +2 -2
  117. package/esm2022/lib/routing/workbench-popup-differ.mjs +3 -3
  118. package/esm2022/lib/routing/workbench-route-guards.mjs +57 -0
  119. package/esm2022/lib/routing/workbench-url-observer.service.mjs +140 -148
  120. package/esm2022/lib/routing/workbench-view-outlet-differ.mjs +58 -0
  121. package/esm2022/lib/routing//311/265workbench-router.service.mjs +119 -74
  122. package/esm2022/lib/startup/splash/splash.component.mjs +3 -3
  123. package/esm2022/lib/startup/workbench-launcher.service.mjs +22 -10
  124. package/esm2022/lib/testing/workbench.provider.mjs +2 -2
  125. package/esm2022/lib/theme/workbench-theme-switcher.service.mjs +15 -19
  126. package/esm2022/lib/view/public_api.mjs +1 -2
  127. package/esm2022/lib/view/view-move-handler.service.mjs +71 -56
  128. package/esm2022/lib/view/view-portal.pipe.mjs +7 -7
  129. package/esm2022/lib/view/view.component.mjs +54 -42
  130. package/esm2022/lib/view/workbench-view.model.mjs +1 -1
  131. package/esm2022/lib/view/workbench-view.registry.mjs +11 -45
  132. package/esm2022/lib/view//311/265workbench-view.model.mjs +183 -153
  133. package/esm2022/lib/view-dnd/grid-drop-targets.util.mjs +2 -2
  134. package/esm2022/lib/view-dnd/view-drag.service.mjs +87 -71
  135. package/esm2022/lib/view-dnd/view-drop-placeholder-renderer.service.mjs +6 -6
  136. package/esm2022/lib/view-dnd/view-drop-zone.directive.mjs +6 -6
  137. package/esm2022/lib/view-dnd/view-tab-drag-image-renderer.service.mjs +43 -56
  138. package/esm2022/lib/workbench-config.mjs +2 -2
  139. package/esm2022/lib/workbench-id.mjs +3 -3
  140. package/esm2022/lib/workbench.component.mjs +66 -54
  141. package/esm2022/lib/workbench.constants.mjs +1 -5
  142. package/esm2022/lib/workbench.model.mjs +1 -1
  143. package/esm2022/lib/workbench.provider.mjs +3 -9
  144. package/esm2022/lib/workbench.service.mjs +1 -1
  145. package/esm2022/lib//311/265workbench.service.mjs +38 -42
  146. package/fesm2022/scion-workbench.mjs +4054 -3276
  147. package/fesm2022/scion-workbench.mjs.map +1 -1
  148. package/lib/common/class-list.d.ts +35 -22
  149. package/lib/common/math.util.d.ts +7 -0
  150. package/lib/common/objects.util.d.ts +4 -0
  151. package/lib/common/operators.d.ts +1 -6
  152. package/lib/common/uid.util.d.ts +9 -0
  153. package/lib/content-projection/content-as-overlay.component.d.ts +39 -22
  154. package/lib/content-projection/workbench-element-references.d.ts +13 -0
  155. package/lib/dialog/workbench-dialog.component.d.ts +3 -2
  156. package/lib/dialog/workbench-dialog.d.ts +57 -13
  157. package/lib/dialog//311/265workbench-dialog.d.ts +38 -24
  158. package/lib/dialog//311/265workbench-dialog.service.d.ts +10 -11
  159. package/lib/executor/latest-task-executor.d.ts +26 -0
  160. package/lib/executor/single-task-executor.d.ts +5 -8
  161. package/lib/filter-field/filter-field.component.d.ts +1 -1
  162. package/lib/layout/grid-element/grid-element.component.d.ts +1 -8
  163. package/lib/layout/main-area-layout/main-area-layout.component.d.ts +0 -4
  164. package/lib/layout/migration/model/workbench-layout-migration-v5.model.d.ts +36 -0
  165. package/lib/layout/migration/model/workbench-layout-migration-v6.model.d.ts +35 -0
  166. package/lib/layout/migration/workbench-layout-migration-v5.service.d.ts +12 -0
  167. package/lib/layout/migration/workbench-layout-migration-v6.service.d.ts +12 -0
  168. package/lib/layout/stringifier.d.ts +26 -0
  169. package/lib/layout/workbench-layout.component.d.ts +4 -5
  170. package/lib/layout/workbench-layout.d.ts +9 -6
  171. package/lib/layout/workbench-layout.model.d.ts +4 -3
  172. package/lib/layout/workbench-layout.service.d.ts +14 -16
  173. package/lib/layout/workbench-layouts.util.d.ts +0 -6
  174. package/lib/layout/workench-layout-serializer.service.d.ts +13 -16
  175. package/lib/layout//311/265workbench-layout.d.ts +18 -19
  176. package/lib/layout//311/265workbench-layout.factory.d.ts +3 -2
  177. package/lib/logging//311/265logger.d.ts +2 -3
  178. package/lib/microfrontend-platform/common/microfrontend.util.d.ts +5 -1
  179. package/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.d.ts +7 -3
  180. package/lib/microfrontend-platform/manifest-object-cache.service.d.ts +33 -0
  181. package/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.d.ts +3 -6
  182. package/lib/microfrontend-platform/microfrontend-host-message-box/microfrontend-host-message-box.component.d.ts +2 -1
  183. package/lib/microfrontend-platform/microfrontend-host-message-box/text-message/text-message.component.d.ts +1 -1
  184. package/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.d.ts +2 -1
  185. package/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-capability-validator.interceptor.d.ts +10 -0
  186. package/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-installer.service.d.ts +24 -0
  187. package/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-intent-handler.interceptor.d.ts +20 -0
  188. package/lib/microfrontend-platform/microfrontend-perspective/workbench-perspective-data.d.ts +9 -0
  189. package/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-intent-handler.interceptor.d.ts +4 -8
  190. package/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.d.ts +0 -4
  191. package/lib/microfrontend-platform/microfrontend-view/microfrontend-view-command-handler.service.d.ts +5 -12
  192. package/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.d.ts +23 -33
  193. package/lib/microfrontend-platform/public_api.d.ts +1 -0
  194. package/lib/microfrontend-platform/routing/microfrontend-view-capability-validator.interceptor.d.ts +1 -1
  195. package/lib/microfrontend-platform/routing/microfrontend-view-intent-handler.interceptor.d.ts +3 -7
  196. package/lib/microfrontend-platform/routing/microfrontend-view-routes.d.ts +9 -2
  197. package/lib/microfrontend-platform/stable-capability-id-assigner.interceptor.d.ts +11 -0
  198. package/lib/notification/notification-list.component.d.ts +0 -2
  199. package/lib/page-not-found/page-not-found.component.d.ts +1 -0
  200. package/lib/part/part-action-bar/part-action-bar.component.d.ts +3 -4
  201. package/lib/part/part-action-bar/part-action.directive.d.ts +2 -2
  202. package/lib/part/part-bar/part-bar.component.d.ts +73 -63
  203. package/lib/part/part-portal.pipe.d.ts +3 -5
  204. package/lib/part/part.component.d.ts +9 -12
  205. package/lib/part/view-context-menu/text.component.d.ts +3 -4
  206. package/lib/part/view-context-menu/view-menu.directive.d.ts +1 -1
  207. package/lib/part/view-context-menu/view-menu.service.d.ts +13 -17
  208. package/lib/part/view-list/view-list.component.d.ts +8 -21
  209. package/lib/part/view-list-button/view-list-button.component.d.ts +8 -11
  210. package/lib/part/view-list-item/view-list-item.component.d.ts +3 -7
  211. package/lib/part/view-tab/view-tab.component.d.ts +19 -29
  212. package/lib/part/view-tab-drag-image/view-tab-drag-image.component.d.ts +4 -4
  213. package/lib/part/workbench-part-action.registry.d.ts +3 -23
  214. package/lib/part/workbench-part.model.d.ts +8 -27
  215. package/lib/part/workbench-part.registry.d.ts +3 -26
  216. package/lib/part//311/265workbench-part.model.d.ts +23 -17
  217. package/lib/perspective/workbench-perspective.model.d.ts +18 -25
  218. package/lib/perspective/workbench-perspective.registry.d.ts +3 -26
  219. package/lib/perspective/workbench-perspective.service.d.ts +16 -14
  220. package/lib/perspective/workench-perspective-serializer.service.d.ts +1 -1
  221. package/lib/perspective//311/265workbench-perspective.model.d.ts +30 -21
  222. package/lib/popup/popup.config.d.ts +11 -10
  223. package/lib/popup/popup.service.d.ts +15 -28
  224. package/lib/portal/wb-component-portal.d.ts +21 -5
  225. package/lib/public_api.d.ts +1 -1
  226. package/lib/registry/workbench-object-registry.d.ts +10 -6
  227. package/lib/routing/public_api.d.ts +2 -2
  228. package/lib/routing/routing.model.d.ts +25 -13
  229. package/lib/routing/{router.util.d.ts → routing.util.d.ts} +28 -1
  230. package/lib/routing/{workbench-auxiliary-routes-registrator.service.d.ts → workbench-auxiliary-route-installer.service.d.ts} +10 -3
  231. package/lib/routing/workbench-layout-differ.d.ts +1 -2
  232. package/lib/routing/workbench-navigational-states.d.ts +8 -4
  233. package/lib/{view/workbench-view-route-guards.d.ts → routing/workbench-route-guards.d.ts} +8 -2
  234. package/lib/routing/workbench-url-observer.service.d.ts +31 -55
  235. package/lib/routing/workbench-view-outlet-differ.d.ts +32 -0
  236. package/lib/routing//311/265workbench-router.service.d.ts +22 -18
  237. package/lib/startup/workbench-launcher.service.d.ts +4 -5
  238. package/lib/testing/workbench.provider.d.ts +3 -1
  239. package/lib/theme/workbench-theme-switcher.service.d.ts +4 -6
  240. package/lib/view/public_api.d.ts +0 -1
  241. package/lib/view/view-move-handler.service.d.ts +16 -14
  242. package/lib/view/view-portal.pipe.d.ts +1 -3
  243. package/lib/view/view.component.d.ts +21 -12
  244. package/lib/view/workbench-view.model.d.ts +88 -36
  245. package/lib/view/workbench-view.registry.d.ts +3 -27
  246. package/lib/view//311/265workbench-view.model.d.ts +62 -71
  247. package/lib/view-dnd/view-drag.service.d.ts +79 -49
  248. package/lib/view-dnd/view-drop-placeholder-renderer.service.d.ts +1 -1
  249. package/lib/view-dnd/view-tab-drag-image-renderer.service.d.ts +12 -36
  250. package/lib/workbench-config.d.ts +19 -7
  251. package/lib/workbench.component.d.ts +16 -30
  252. package/lib/workbench.constants.d.ts +0 -5
  253. package/lib/workbench.model.d.ts +31 -3
  254. package/lib/workbench.service.d.ts +58 -56
  255. package/lib//311/265workbench.service.d.ts +18 -31
  256. package/package.json +5 -5
  257. package/esm2022/lib/common/filter-by-predicate.pipe.mjs +0 -27
  258. package/esm2022/lib/common/filter-by-text.pipe.mjs +0 -39
  259. package/esm2022/lib/common/uuid.util.mjs +0 -17
  260. package/esm2022/lib/content-projection/content-projection.directive.mjs +0 -101
  261. package/esm2022/lib/content-projection/view-container.reference.mjs +0 -68
  262. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-id-assigner.interceptor.mjs +0 -41
  263. package/esm2022/lib/page-not-found/format-url.pipe.mjs +0 -26
  264. package/esm2022/lib/part/part-action-bar/part-action-filter.pipe.mjs +0 -26
  265. package/esm2022/lib/routing/router.util.mjs +0 -126
  266. package/esm2022/lib/routing/workbench-auxiliary-routes-registrator.service.mjs +0 -94
  267. package/esm2022/lib/view/workbench-view-route-guards.mjs +0 -47
  268. package/lib/common/filter-by-predicate.pipe.d.ts +0 -10
  269. package/lib/common/filter-by-text.pipe.d.ts +0 -12
  270. package/lib/common/uuid.util.d.ts +0 -8
  271. package/lib/content-projection/content-projection.directive.d.ts +0 -30
  272. package/lib/content-projection/view-container.reference.d.ts +0 -42
  273. package/lib/microfrontend-platform/routing/microfrontend-view-capability-id-assigner.interceptor.d.ts +0 -10
  274. package/lib/page-not-found/format-url.pipe.d.ts +0 -11
  275. package/lib/part/part-action-bar/part-action-filter.pipe.d.ts +0 -11
@@ -7,84 +7,79 @@
7
7
  *
8
8
  * SPDX-License-Identifier: EPL-2.0
9
9
  */
10
- import { Injectable } from '@angular/core';
10
+ import { assertNotInReactiveContext, computed, inject, Injectable } from '@angular/core';
11
11
  import { BehaviorSubject } from 'rxjs';
12
+ import { WorkbenchRouter } from './routing/workbench-router.service';
13
+ import { WORKBENCH_VIEW_REGISTRY } from './view/workbench-view.registry';
14
+ import { WorkbenchPerspectiveService } from './perspective/workbench-perspective.service';
15
+ import { WORKBENCH_PART_REGISTRY } from './part/workbench-part.registry';
16
+ import { WORKBENCH_PERSPECTIVE_REGISTRY } from './perspective/workbench-perspective.registry';
17
+ import { WORKBENCH_PART_ACTION_REGISTRY } from './part/workbench-part-action.registry';
18
+ import { WorkbenchThemeSwitcher } from './theme/workbench-theme-switcher.service';
19
+ import { WorkbenchLayoutService } from './layout/workbench-layout.service';
12
20
  import { throwError } from './common/throw-error.util';
13
21
  import * as i0 from "@angular/core";
14
- import * as i1 from "./routing/workbench-router.service";
15
- import * as i2 from "./perspective/workbench-perspective.registry";
16
- import * as i3 from "./part/workbench-part.registry";
17
- import * as i4 from "./part/workbench-part-action.registry";
18
- import * as i5 from "./view/workbench-view.registry";
19
- import * as i6 from "./perspective/workbench-perspective.service";
20
- import * as i7 from "./layout/workbench-layout.service";
21
- import * as i8 from "./theme/workbench-theme-switcher.service";
22
22
  export class ɵWorkbenchService {
23
- constructor(_workbenchRouter, _perspectiveRegistry, _partRegistry, _partActionRegistry, _viewRegistry, _perspectiveService, _layoutService, _workbenchThemeSwitcher) {
24
- this._workbenchRouter = _workbenchRouter;
25
- this._perspectiveRegistry = _perspectiveRegistry;
26
- this._partRegistry = _partRegistry;
27
- this._partActionRegistry = _partActionRegistry;
28
- this._viewRegistry = _viewRegistry;
29
- this._perspectiveService = _perspectiveService;
30
- this._layoutService = _layoutService;
31
- this._workbenchThemeSwitcher = _workbenchThemeSwitcher;
23
+ constructor() {
24
+ this._workbenchRouter = inject(WorkbenchRouter);
25
+ this._perspectiveRegistry = inject(WORKBENCH_PERSPECTIVE_REGISTRY);
26
+ this._partRegistry = inject(WORKBENCH_PART_REGISTRY);
27
+ this._partActionRegistry = inject(WORKBENCH_PART_ACTION_REGISTRY);
28
+ this._viewRegistry = inject(WORKBENCH_VIEW_REGISTRY);
29
+ this._perspectiveService = inject(WorkbenchPerspectiveService);
30
+ this._layoutService = inject(WorkbenchLayoutService);
31
+ this._workbenchThemeSwitcher = inject(WorkbenchThemeSwitcher);
32
32
  this.viewMenuItemProviders$ = new BehaviorSubject([]);
33
- this.layout$ = this._layoutService.layout$;
34
- this.perspectives$ = this._perspectiveRegistry.perspectives$;
35
- this.parts$ = this._partRegistry.parts$;
36
- this.views$ = this._viewRegistry.views$;
37
- this.theme$ = this._workbenchThemeSwitcher.theme$;
38
- }
39
- get layout() {
40
- return this._layoutService.layout ?? throwError('[NullLayoutError] Workbench layout not created yet.');
41
- }
42
- /** @inheritDoc */
43
- get perspectives() {
44
- return this._perspectiveRegistry.perspectives;
33
+ this.layout = computed(() => this._layoutService.layout() ?? throwError('[NullLayoutError] Workbench layout not created yet.'));
34
+ this.perspectives = this._perspectiveRegistry.objects;
35
+ this.parts = this._partRegistry.objects;
36
+ this.views = this._viewRegistry.objects;
37
+ this.theme = this._workbenchThemeSwitcher.theme;
38
+ this.activePerspective = this._perspectiveService.activePerspective;
45
39
  }
46
40
  /** @inheritDoc */
47
41
  getPerspective(perspectiveId) {
48
42
  return this._perspectiveRegistry.get(perspectiveId, { orElse: null });
49
43
  }
50
44
  /** @inheritDoc */
51
- get parts() {
52
- return this._partRegistry.parts;
53
- }
54
- /** @inheritDoc */
55
45
  getPart(partId) {
56
46
  return this._partRegistry.get(partId, { orElse: null });
57
47
  }
58
48
  /** @inheritDoc */
59
- get views() {
60
- return this._viewRegistry.views;
61
- }
62
- /** @inheritDoc */
63
49
  getView(viewId) {
64
50
  return this._viewRegistry.get(viewId, { orElse: null });
65
51
  }
66
52
  /** @inheritDoc */
67
53
  registerPerspective(perspective) {
54
+ assertNotInReactiveContext(this.registerPerspective, 'Call WorkbenchService.registerPerspective() in a non-reactive (non-tracking) context, such as within the untracked() function.');
68
55
  return this._perspectiveService.registerPerspective(perspective);
69
56
  }
70
57
  /** @inheritDoc */
71
58
  switchPerspective(id) {
59
+ assertNotInReactiveContext(this.switchPerspective, 'Call WorkbenchService.switchPerspective() in a non-reactive (non-tracking) context, such as within the untracked() function.');
72
60
  return this._perspectiveService.switchPerspective(id);
73
61
  }
74
62
  /** @inheritDoc */
75
63
  async resetPerspective() {
64
+ assertNotInReactiveContext(this.resetPerspective, 'Call WorkbenchService.resetPerspective() in a non-reactive (non-tracking) context, such as within the untracked() function.');
76
65
  await this._perspectiveService.resetPerspective();
77
66
  }
78
67
  /** @inheritDoc */
79
68
  async closeViews(...viewIds) {
69
+ assertNotInReactiveContext(this.closeViews, 'Call WorkbenchService.closeViews() in a non-reactive (non-tracking) context, such as within the untracked() function.');
80
70
  return this._workbenchRouter.navigate(layout => viewIds.reduce((layout, viewId) => layout.removeView(viewId), layout));
81
71
  }
82
72
  /** @inheritDoc */
83
73
  registerPartAction(action) {
84
- return this._partActionRegistry.register(action);
74
+ assertNotInReactiveContext(this.registerPartAction, 'Call WorkbenchService.registerPartAction() in a non-reactive (non-tracking) context, such as within the untracked() function.');
75
+ this._partActionRegistry.register(action);
76
+ return {
77
+ dispose: () => this._partActionRegistry.unregister(action),
78
+ };
85
79
  }
86
80
  /** @inheritDoc */
87
81
  registerViewMenuItem(factoryFn) {
82
+ assertNotInReactiveContext(this.registerViewMenuItem, 'Call WorkbenchService.registerViewMenuItem() in a non-reactive (non-tracking) context, such as within the untracked() function.');
88
83
  this.viewMenuItemProviders$.next(this.viewMenuItemProviders$.value.concat(factoryFn));
89
84
  return {
90
85
  dispose: () => {
@@ -94,13 +89,14 @@ export class ɵWorkbenchService {
94
89
  }
95
90
  /** @inheritDoc */
96
91
  switchTheme(theme) {
92
+ assertNotInReactiveContext(this.switchTheme, 'Call WorkbenchService.switchTheme() in a non-reactive (non-tracking) context, such as within the untracked() function.');
97
93
  return this._workbenchThemeSwitcher.switchTheme(theme);
98
94
  }
99
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ɵWorkbenchService, deps: [{ token: i1.WorkbenchRouter }, { token: i2.WorkbenchPerspectiveRegistry }, { token: i3.WorkbenchPartRegistry }, { token: i4.WorkbenchPartActionRegistry }, { token: i5.WorkbenchViewRegistry }, { token: i6.WorkbenchPerspectiveService }, { token: i7.WorkbenchLayoutService }, { token: i8.WorkbenchThemeSwitcher }], target: i0.ɵɵFactoryTarget.Injectable }); }
95
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ɵWorkbenchService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
100
96
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ɵWorkbenchService, providedIn: 'root' }); }
101
97
  }
102
98
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ɵWorkbenchService, decorators: [{
103
99
  type: Injectable,
104
100
  args: [{ providedIn: 'root' }]
105
- }], ctorParameters: () => [{ type: i1.WorkbenchRouter }, { type: i2.WorkbenchPerspectiveRegistry }, { type: i3.WorkbenchPartRegistry }, { type: i4.WorkbenchPartActionRegistry }, { type: i5.WorkbenchViewRegistry }, { type: i6.WorkbenchPerspectiveService }, { type: i7.WorkbenchLayoutService }, { type: i8.WorkbenchThemeSwitcher }] });
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiybV3b3JrYmVuY2guc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL8m1d29ya2JlbmNoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxlQUFlLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFrQmpELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7OztBQUdyRCxNQUFNLE9BQU8saUJBQWlCO0lBVTVCLFlBQW9CLGdCQUFpQyxFQUNqQyxvQkFBa0QsRUFDbEQsYUFBb0MsRUFDcEMsbUJBQWdELEVBQ2hELGFBQW9DLEVBQ3BDLG1CQUFnRCxFQUNoRCxjQUFzQyxFQUN0Qyx1QkFBK0M7UUFQL0MscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUNqQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQThCO1FBQ2xELGtCQUFhLEdBQWIsYUFBYSxDQUF1QjtRQUNwQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQTZCO1FBQ2hELGtCQUFhLEdBQWIsYUFBYSxDQUF1QjtRQUNwQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQTZCO1FBQ2hELG1CQUFjLEdBQWQsY0FBYyxDQUF3QjtRQUN0Qyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXdCO1FBVG5ELDJCQUFzQixHQUFHLElBQUksZUFBZSxDQUErQixFQUFFLENBQUMsQ0FBQztRQVU3RixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDO1FBQzNDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQztRQUM3RCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENB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Q0FBQztZQUNyRyxDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxrQkFBa0I7SUFDWCxXQUFXLENBQUMsS0FBYTtRQUM5QixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekQsQ0FBQzs4R0FqR1UsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FETCxNQUFNOzsyRkFDbEIsaUJBQWlCO2tCQUQ3QixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMiBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7V29ya2JlbmNoTWVudUl0ZW1GYWN0b3J5Rm4sIFdvcmtiZW5jaFBhcnRBY3Rpb24sIFdvcmtiZW5jaFRoZW1lfSBmcm9tICcuL3dvcmtiZW5jaC5tb2RlbCc7XG5pbXBvcnQge0Rpc3Bvc2FibGV9IGZyb20gJy4vY29tbW9uL2Rpc3Bvc2FibGUnO1xuaW1wb3J0IHtXb3JrYmVuY2hTZXJ2aWNlfSBmcm9tICcuL3dvcmtiZW5jaC5zZXJ2aWNlJztcbmltcG9ydCB7V29ya2JlbmNoUm91dGVyfSBmcm9tICcuL3JvdXRpbmcvd29ya2JlbmNoLXJvdXRlci5zZXJ2aWNlJztcbmltcG9ydCB7V29ya2JlbmNoVmlld1JlZ2lzdHJ5fSBmcm9tICcuL3ZpZXcvd29ya2JlbmNoLXZpZXcucmVnaXN0cnknO1xuaW1wb3J0IHtXb3JrYmVuY2hQZXJzcGVjdGl2ZVNlcnZpY2V9IGZyb20gJy4vcGVyc3BlY3RpdmUvd29ya2JlbmNoLXBlcnNwZWN0aXZlLnNlcnZpY2UnO1xuaW1wb3J0IHtXb3JrYmVuY2hQZXJzcGVjdGl2ZURlZmluaXRpb259IGZyb20gJy4vcGVyc3BlY3RpdmUvd29ya2JlbmNoLXBlcnNwZWN0aXZlLm1vZGVsJztcbmltcG9ydCB7V29ya2JlbmNoUGFydFJlZ2lzdHJ5fSBmcm9tICcuL3BhcnQvd29ya2JlbmNoLXBhcnQucmVnaXN0cnknO1xuaW1wb3J0IHvJtVdvcmtiZW5jaFZpZXd9IGZyb20gJy4vdmlldy/JtXdvcmtiZW5jaC12aWV3Lm1vZGVsJztcbmltcG9ydCB7ybVXb3JrYmVuY2hQYXJ0fSBmcm9tICcuL3BhcnQvybV3b3JrYmVuY2gtcGFydC5tb2RlbCc7XG5pbXBvcnQge8m1V29ya2JlbmNoUGVyc3BlY3RpdmV9IGZyb20gJy4vcGVyc3BlY3RpdmUvybV3b3JrYmVuY2gtcGVyc3BlY3RpdmUubW9kZWwnO1xuaW1wb3J0IHtXb3JrYmVuY2hQZXJzcGVjdGl2ZVJlZ2lzdHJ5fSBmcm9tICcuL3BlcnNwZWN0aXZlL3dvcmtiZW5jaC1wZXJzcGVjdGl2ZS5yZWdpc3RyeSc7XG5pbXBvcnQge1dvcmtiZW5jaFBhcnRBY3Rpb25SZWdpc3RyeX0gZnJvbSAnLi9wYXJ0L3dvcmtiZW5jaC1wYXJ0LWFjdGlvbi5yZWdpc3RyeSc7XG5pbXBvcnQge1dvcmtiZW5jaFRoZW1lU3dpdGNoZXJ9IGZyb20gJy4vdGhlbWUvd29ya2JlbmNoLXRoZW1lLXN3aXRjaGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtWaWV3SWR9IGZyb20gJy4vdmlldy93b3JrYmVuY2gtdmlldy5tb2RlbCc7XG5pbXBvcnQge8m1V29ya2JlbmNoTGF5b3V0fSBmcm9tICcuL2xheW91dC/JtXdvcmtiZW5jaC1sYXlvdXQnO1xuaW1wb3J0IHtXb3JrYmVuY2hMYXlvdXRTZXJ2aWNlfSBmcm9tICcuL2xheW91dC93b3JrYmVuY2gtbGF5b3V0LnNlcnZpY2UnO1xuaW1wb3J0IHt0aHJvd0Vycm9yfSBmcm9tICcuL2NvbW1vbi90aHJvdy1lcnJvci51dGlsJztcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgybVXb3JrYmVuY2hTZXJ2aWNlIGltcGxlbWVudHMgV29ya2JlbmNoU2VydmljZSB7XG5cbiAgcHVibGljIHJlYWRvbmx5IGxheW91dCQ6IE9ic2VydmFibGU8ybVXb3JrYmVuY2hMYXlvdXQ+O1xuICBwdWJsaWMgcmVhZG9ubHkgcGVyc3BlY3RpdmVzJDogT2JzZXJ2YWJsZTxyZWFkb25seSDJtVdvcmtiZW5jaFBlcnNwZWN0aXZlW10+O1xuICBwdWJsaWMgcmVhZG9ubHkgcGFydHMkOiBPYnNlcnZhYmxlPHJlYWRvbmx5IMm1V29ya2JlbmNoUGFydFtdPjtcbiAgcHVibGljIHJlYWRvbmx5IHZpZXdzJDogT2JzZXJ2YWJsZTxyZWFkb25seSDJtVdvcmtiZW5jaFZpZXdbXT47XG4gIHB1YmxpYyByZWFkb25seSB0aGVtZSQ6IE9ic2VydmFibGU8V29ya2JlbmNoVGhlbWUgfCBudWxsPjtcblxuICBwdWJsaWMgcmVhZG9ubHkgdmlld01lbnVJdGVtUHJvdmlkZXJzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8V29ya2JlbmNoTWVudUl0ZW1GYWN0b3J5Rm5bXT4oW10pO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3dvcmtiZW5jaFJvdXRlcjogV29ya2JlbmNoUm91dGVyLFxuICAgICAgICAgICAgICBwcml2YXRlIF9wZXJzcGVjdGl2ZVJlZ2lzdHJ5OiBXb3JrYmVuY2hQZXJzcGVjdGl2ZVJlZ2lzdHJ5LFxuICAgICAgICAgICAgICBwcml2YXRlIF9wYXJ0UmVnaXN0cnk6IFdvcmtiZW5jaFBhcnRSZWdpc3RyeSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfcGFydEFjdGlvblJlZ2lzdHJ5OiBXb3JrYmVuY2hQYXJ0QWN0aW9uUmVnaXN0cnksXG4gICAgICAgICAgICAgIHByaXZhdGUgX3ZpZXdSZWdpc3RyeTogV29ya2JlbmNoVmlld1JlZ2lzdHJ5LFxuICAgICAgICAgICAgICBwcml2YXRlIF9wZXJzcGVjdGl2ZVNlcnZpY2U6IFdvcmtiZW5jaFBlcnNwZWN0aXZlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfbGF5b3V0U2VydmljZTogV29ya2JlbmNoTGF5b3V0U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfd29ya2JlbmNoVGhlbWVTd2l0Y2hlcjogV29ya2JlbmNoVGhlbWVTd2l0Y2hlcikge1xuICAgIHRoaXMubGF5b3V0JCA9IHRoaXMuX2xheW91dFNlcnZpY2UubGF5b3V0JDtcbiAgICB0aGlzLnBlcnNwZWN0aXZlcyQgPSB0aGlzLl9wZXJzcGVjdGl2ZVJlZ2lzdHJ5LnBlcnNwZWN0aXZlcyQ7XG4gICAgdGhpcy5wYXJ0cyQgPSB0aGlzLl9wYXJ0UmVnaXN0cnkucGFydHMkO1xuICAgIHRoaXMudmlld3MkID0gdGhpcy5fdmlld1JlZ2lzdHJ5LnZpZXdzJDtcbiAgICB0aGlzLnRoZW1lJCA9IHRoaXMuX3dvcmtiZW5jaFRoZW1lU3dpdGNoZXIudGhlbWUkO1xuICB9XG5cbiAgcHVibGljIGdldCBsYXlvdXQoKTogybVXb3JrYmVuY2hMYXlvdXQge1xuICAgIHJldHVybiB0aGlzLl9sYXlvdXRTZXJ2aWNlLmxheW91dCA/PyB0aHJvd0Vycm9yKCdbTnVsbExheW91dEVycm9yXSBXb3JrYmVuY2ggbGF5b3V0IG5vdCBjcmVhdGVkIHlldC4nKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgZ2V0IHBlcnNwZWN0aXZlcygpOiByZWFkb25seSDJtVdvcmtiZW5jaFBlcnNwZWN0aXZlW10ge1xuICAgIHJldHVybiB0aGlzLl9wZXJzcGVjdGl2ZVJlZ2lzdHJ5LnBlcnNwZWN0aXZlcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgZ2V0UGVyc3BlY3RpdmUocGVyc3BlY3RpdmVJZDogc3RyaW5nKTogybVXb3JrYmVuY2hQZXJzcGVjdGl2ZSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9wZXJzcGVjdGl2ZVJlZ2lzdHJ5LmdldChwZXJzcGVjdGl2ZUlkLCB7b3JFbHNlOiBudWxsfSk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGdldCBwYXJ0cygpOiByZWFkb25seSDJtVdvcmtiZW5jaFBhcnRbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcnRSZWdpc3RyeS5wYXJ0cztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgZ2V0UGFydChwYXJ0SWQ6IHN0cmluZyk6IMm1V29ya2JlbmNoUGFydCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9wYXJ0UmVnaXN0cnkuZ2V0KHBhcnRJZCwge29yRWxzZTogbnVsbH0pO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBnZXQgdmlld3MoKTogcmVhZG9ubHkgybVXb3JrYmVuY2hWaWV3W10ge1xuICAgIHJldHVybiB0aGlzLl92aWV3UmVnaXN0cnkudmlld3M7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGdldFZpZXcodmlld0lkOiBWaWV3SWQpOiDJtVdvcmtiZW5jaFZpZXcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fdmlld1JlZ2lzdHJ5LmdldCh2aWV3SWQsIHtvckVsc2U6IG51bGx9KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgcmVnaXN0ZXJQZXJzcGVjdGl2ZShwZXJzcGVjdGl2ZTogV29ya2JlbmNoUGVyc3BlY3RpdmVEZWZpbml0aW9uKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX3BlcnNwZWN0aXZlU2VydmljZS5yZWdpc3RlclBlcnNwZWN0aXZlKHBlcnNwZWN0aXZlKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgc3dpdGNoUGVyc3BlY3RpdmUoaWQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9wZXJzcGVjdGl2ZVNlcnZpY2Uuc3dpdGNoUGVyc3BlY3RpdmUoaWQpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBhc3luYyByZXNldFBlcnNwZWN0aXZlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuX3BlcnNwZWN0aXZlU2VydmljZS5yZXNldFBlcnNwZWN0aXZlKCk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGFzeW5jIGNsb3NlVmlld3MoLi4udmlld0lkczogVmlld0lkW10pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5fd29ya2JlbmNoUm91dGVyLm5hdmlnYXRlKGxheW91dCA9PiB2aWV3SWRzLnJlZHVjZSgobGF5b3V0LCB2aWV3SWQpID0+IGxheW91dC5yZW1vdmVWaWV3KHZpZXdJZCksIGxheW91dCkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyByZWdpc3RlclBhcnRBY3Rpb24oYWN0aW9uOiBXb3JrYmVuY2hQYXJ0QWN0aW9uKTogRGlzcG9zYWJsZSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcnRBY3Rpb25SZWdpc3RyeS5yZWdpc3RlcihhY3Rpb24pO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyByZWdpc3RlclZpZXdNZW51SXRlbShmYWN0b3J5Rm46IFdvcmtiZW5jaE1lbnVJdGVtRmFjdG9yeUZuKTogRGlzcG9zYWJsZSB7XG4gICAgdGhpcy52aWV3TWVudUl0ZW1Qcm92aWRlcnMkLm5leHQodGhpcy52aWV3TWVudUl0ZW1Qcm92aWRlcnMkLnZhbHVlLmNvbmNhdChmYWN0b3J5Rm4pKTtcbiAgICByZXR1cm4ge1xuICAgICAgZGlzcG9zZTogKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLnZpZXdNZW51SXRlbVByb3ZpZGVycyQubmV4dCh0aGlzLnZpZXdNZW51SXRlbVByb3ZpZGVycyQudmFsdWUuZmlsdGVyKGl0ID0+IGl0ICE9PSBmYWN0b3J5Rm4pKTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgc3dpdGNoVGhlbWUodGhlbWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl93b3JrYmVuY2hUaGVtZVN3aXRjaGVyLnN3aXRjaFRoZW1lKHRoZW1lKTtcbiAgfVxufVxuIl19
101
+ }], ctorParameters: () => [] });
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiybV3b3JrYmVuY2guc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL8m1d29ya2JlbmNoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUMsMEJBQTBCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUlyQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDbkUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFFeEYsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFJdkUsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDNUYsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDckYsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFHaEYsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDekUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDJCQUEyQixDQUFDOztBQUdyRCxNQUFNLE9BQU8saUJBQWlCO0lBbUI1QjtRQWpCaUIscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzNDLHlCQUFvQixHQUFHLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQzlELGtCQUFhLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDaEQsd0JBQW1CLEdBQUcsTUFBTSxDQUFDLDhCQUE4QixD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LCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjIgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7YXNzZXJ0Tm90SW5SZWFjdGl2ZUNvbnRleHQsIGNvbXB1dGVkLCBpbmplY3QsIEluamVjdGFibGUsIFNpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1dvcmtiZW5jaE1lbnVJdGVtRmFjdG9yeUZuLCBXb3JrYmVuY2hQYXJ0QWN0aW9uLCBXb3JrYmVuY2hUaGVtZX0gZnJvbSAnLi93b3JrYmVuY2gubW9kZWwnO1xuaW1wb3J0IHtEaXNwb3NhYmxlfSBmcm9tICcuL2NvbW1vbi9kaXNwb3NhYmxlJztcbmltcG9ydCB7V29ya2JlbmNoU2VydmljZX0gZnJvbSAnLi93b3JrYmVuY2guc2VydmljZSc7XG5pbXBvcnQge1dvcmtiZW5jaFJvdXRlcn0gZnJvbSAnLi9yb3V0aW5nL3dvcmtiZW5jaC1yb3V0ZXIuc2VydmljZSc7XG5pbXBvcnQge1dPUktCRU5DSF9WSUVXX1JFR0lTVFJZfSBmcm9tICcuL3ZpZXcvd29ya2JlbmNoLXZpZXcucmVnaXN0cnknO1xuaW1wb3J0IHtXb3JrYmVuY2hQZXJzcGVjdGl2ZVNlcnZpY2V9IGZyb20gJy4vcGVyc3BlY3RpdmUvd29ya2JlbmNoLXBlcnNwZWN0aXZlLnNlcnZpY2UnO1xuaW1wb3J0IHtXb3JrYmVuY2hQZXJzcGVjdGl2ZSwgV29ya2JlbmNoUGVyc3BlY3RpdmVEZWZpbml0aW9ufSBmcm9tICcuL3BlcnNwZWN0aXZlL3dvcmtiZW5jaC1wZXJzcGVjdGl2ZS5tb2RlbCc7XG5pbXBvcnQge1dPUktCRU5DSF9QQVJUX1JFR0lTVFJZfSBmcm9tICcuL3BhcnQvd29ya2JlbmNoLXBhcnQucmVnaXN0cnknO1xuaW1wb3J0IHvJtVdvcmtiZW5jaFZpZXd9IGZyb20gJy4vdmlldy/JtXdvcmtiZW5jaC12aWV3Lm1vZGVsJztcbmltcG9ydCB7ybVXb3JrYmVuY2hQYXJ0fSBmcm9tICcuL3BhcnQvybV3b3JrYmVuY2gtcGFydC5tb2RlbCc7XG5pbXBvcnQge8m1V29ya2JlbmNoUGVyc3BlY3RpdmV9IGZyb20gJy4vcGVyc3BlY3RpdmUvybV3b3JrYmVuY2gtcGVyc3BlY3RpdmUubW9kZWwnO1xuaW1wb3J0IHtXT1JLQkVOQ0hfUEVSU1BFQ1RJVkVfUkVHSVNUUll9IGZyb20gJy4vcGVyc3BlY3RpdmUvd29ya2JlbmNoLXBlcnNwZWN0aXZlLnJlZ2lzdHJ5JztcbmltcG9ydCB7V09SS0JFTkNIX1BBUlRfQUNUSU9OX1JFR0lTVFJZfSBmcm9tICcuL3BhcnQvd29ya2JlbmNoLXBhcnQtYWN0aW9uLnJlZ2lzdHJ5JztcbmltcG9ydCB7V29ya2JlbmNoVGhlbWVTd2l0Y2hlcn0gZnJvbSAnLi90aGVtZS93b3JrYmVuY2gtdGhlbWUtc3dpdGNoZXIuc2VydmljZSc7XG5pbXBvcnQge1ZpZXdJZH0gZnJvbSAnLi92aWV3L3dvcmtiZW5jaC12aWV3Lm1vZGVsJztcbmltcG9ydCB7ybVXb3JrYmVuY2hMYXlvdXR9IGZyb20gJy4vbGF5b3V0L8m1d29ya2JlbmNoLWxheW91dCc7XG5pbXBvcnQge1dvcmtiZW5jaExheW91dFNlcnZpY2V9IGZyb20gJy4vbGF5b3V0L3dvcmtiZW5jaC1sYXlvdXQuc2VydmljZSc7XG5pbXBvcnQge3Rocm93RXJyb3J9IGZyb20gJy4vY29tbW9uL3Rocm93LWVycm9yLnV0aWwnO1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyDJtVdvcmtiZW5jaFNlcnZpY2UgaW1wbGVtZW50cyBXb3JrYmVuY2hTZXJ2aWNlIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF93b3JrYmVuY2hSb3V0ZXIgPSBpbmplY3QoV29ya2JlbmNoUm91dGVyKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcGVyc3BlY3RpdmVSZWdpc3RyeSA9IGluamVjdChXT1JLQkVOQ0hfUEVSU1BFQ1RJVkVfUkVHSVNUUlkpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9wYXJ0UmVnaXN0cnkgPSBpbmplY3QoV09SS0JFTkNIX1BBUlRfUkVHSVNUUlkpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9wYXJ0QWN0aW9uUmVnaXN0cnkgPSBpbmplY3QoV09SS0JFTkNIX1BBUlRfQUNUSU9OX1JFR0lTVFJZKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfdmlld1JlZ2lzdHJ5ID0gaW5qZWN0KFdPUktCRU5DSF9WSUVXX1JFR0lTVFJZKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcGVyc3BlY3RpdmVTZXJ2aWNlID0gaW5qZWN0KFdvcmtiZW5jaFBlcnNwZWN0aXZlU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2xheW91dFNlcnZpY2UgPSBpbmplY3QoV29ya2JlbmNoTGF5b3V0U2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3dvcmtiZW5jaFRoZW1lU3dpdGNoZXIgPSBpbmplY3QoV29ya2JlbmNoVGhlbWVTd2l0Y2hlcik7XG5cbiAgcHVibGljIHJlYWRvbmx5IGxheW91dDogU2lnbmFsPMm1V29ya2JlbmNoTGF5b3V0PjtcbiAgcHVibGljIHJlYWRvbmx5IHBlcnNwZWN0aXZlczogU2lnbmFsPMm1V29ya2JlbmNoUGVyc3BlY3RpdmVbXT47XG4gIHB1YmxpYyByZWFkb25seSBwYXJ0czogU2lnbmFsPMm1V29ya2JlbmNoUGFydFtdPjtcbiAgcHVibGljIHJlYWRvbmx5IHZpZXdzOiBTaWduYWw8ybVXb3JrYmVuY2hWaWV3W10+O1xuICBwdWJsaWMgcmVhZG9ubHkgdGhlbWU6IFNpZ25hbDxXb3JrYmVuY2hUaGVtZSB8IG51bGw+O1xuICBwdWJsaWMgcmVhZG9ubHkgYWN0aXZlUGVyc3BlY3RpdmU6IFNpZ25hbDxXb3JrYmVuY2hQZXJzcGVjdGl2ZSB8IHVuZGVmaW5lZD47XG4gIHB1YmxpYyByZWFkb25seSB2aWV3TWVudUl0ZW1Qcm92aWRlcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxXb3JrYmVuY2hNZW51SXRlbUZhY3RvcnlGbltdPihbXSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5sYXlvdXQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9sYXlvdXRTZXJ2aWNlLmxheW91dCgpID8/IHRocm93RXJyb3IoJ1tOdWxsTGF5b3V0RXJyb3JdIFdvcmtiZW5jaCBsYXlvdXQgbm90IGNyZWF0ZWQgeWV0LicpKTtcbiAgICB0aGlzLnBlcnNwZWN0aXZlcyA9IHRoaXMuX3BlcnNwZWN0aXZlUmVnaXN0cnkub2JqZWN0cztcbiAgICB0aGlzLnBhcnRzID0gdGhpcy5fcGFydFJlZ2lzdHJ5Lm9iamVjdHM7XG4gICAgdGhpcy52aWV3cyA9IHRoaXMuX3ZpZXdSZWdpc3RyeS5vYmplY3RzO1xuICAgIHRoaXMudGhlbWUgPSB0aGlzLl93b3JrYmVuY2hUaGVtZVN3aXRjaGVyLnRoZW1lO1xuICAgIHRoaXMuYWN0aXZlUGVyc3BlY3RpdmUgPSB0aGlzLl9wZXJzcGVjdGl2ZVNlcnZpY2UuYWN0aXZlUGVyc3BlY3RpdmU7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGdldFBlcnNwZWN0aXZlKHBlcnNwZWN0aXZlSWQ6IHN0cmluZyk6IMm1V29ya2JlbmNoUGVyc3BlY3RpdmUgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fcGVyc3BlY3RpdmVSZWdpc3RyeS5nZXQocGVyc3BlY3RpdmVJZCwge29yRWxzZTogbnVsbH0pO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBnZXRQYXJ0KHBhcnRJZDogc3RyaW5nKTogybVXb3JrYmVuY2hQYXJ0IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcnRSZWdpc3RyeS5nZXQocGFydElkLCB7b3JFbHNlOiBudWxsfSk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGdldFZpZXcodmlld0lkOiBWaWV3SWQpOiDJtVdvcmtiZW5jaFZpZXcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fdmlld1JlZ2lzdHJ5LmdldCh2aWV3SWQsIHtvckVsc2U6IG51bGx9KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgcmVnaXN0ZXJQZXJzcGVjdGl2ZShwZXJzcGVjdGl2ZTogV29ya2JlbmNoUGVyc3BlY3RpdmVEZWZpbml0aW9uKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXNzZXJ0Tm90SW5SZWFjdGl2ZUNvbnRleHQodGhpcy5yZWdpc3RlclBlcnNwZWN0aXZlLCAnQ2FsbCBXb3JrYmVuY2hTZXJ2aWNlLnJlZ2lzdGVyUGVyc3BlY3RpdmUoKSBpbiBhIG5vbi1yZWFjdGl2ZSAobm9uLXRyYWNraW5nKSBjb250ZXh0LCBzdWNoIGFzIHdpdGhpbiB0aGUgdW50cmFja2VkKCkgZnVuY3Rpb24uJyk7XG4gICAgcmV0dXJuIHRoaXMuX3BlcnNwZWN0aXZlU2VydmljZS5yZWdpc3RlclBlcnNwZWN0aXZlKHBlcnNwZWN0aXZlKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgc3dpdGNoUGVyc3BlY3RpdmUoaWQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGFzc2VydE5vdEluUmVhY3RpdmVDb250ZXh0KHRoaXMuc3dpdGNoUGVyc3BlY3RpdmUsICdDYWxsIFdvcmtiZW5jaFNlcnZpY2Uuc3dpdGNoUGVyc3BlY3RpdmUoKSBpbiBhIG5vbi1yZWFjdGl2ZSAobm9uLXRyYWNraW5nKSBjb250ZXh0LCBzdWNoIGFzIHdpdGhpbiB0aGUgdW50cmFja2VkKCkgZnVuY3Rpb24uJyk7XG4gICAgcmV0dXJuIHRoaXMuX3BlcnNwZWN0aXZlU2VydmljZS5zd2l0Y2hQZXJzcGVjdGl2ZShpZCk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGFzeW5jIHJlc2V0UGVyc3BlY3RpdmUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXNzZXJ0Tm90SW5SZWFjdGl2ZUNvbnRleHQodGhpcy5yZXNldFBlcnNwZWN0aXZlLCAnQ2FsbCBXb3JrYmVuY2hTZXJ2aWNlLnJlc2V0UGVyc3BlY3RpdmUoKSBpbiBhIG5vbi1yZWFjdGl2ZSAobm9uLXRyYWNraW5nKSBjb250ZXh0LCBzdWNoIGFzIHdpdGhpbiB0aGUgdW50cmFja2VkKCkgZnVuY3Rpb24uJyk7XG4gICAgYXdhaXQgdGhpcy5fcGVyc3BlY3RpdmVTZXJ2aWNlLnJlc2V0UGVyc3BlY3RpdmUoKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgYXN5bmMgY2xvc2VWaWV3cyguLi52aWV3SWRzOiBWaWV3SWRbXSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGFzc2VydE5vdEluUmVhY3RpdmVDb250ZXh0KHRoaXMuY2xvc2VWaWV3cywgJ0NhbGwgV29ya2JlbmNoU2VydmljZS5jbG9zZVZpZXdzKCkgaW4gYSBub24tcmVhY3RpdmUgKG5vbi10cmFja2luZykgY29udGV4dCwgc3VjaCBhcyB3aXRoaW4gdGhlIHVudHJhY2tlZCgpIGZ1bmN0aW9uLicpO1xuICAgIHJldHVybiB0aGlzLl93b3JrYmVuY2hSb3V0ZXIubmF2aWdhdGUobGF5b3V0ID0+IHZpZXdJZHMucmVkdWNlKChsYXlvdXQsIHZpZXdJZCkgPT4gbGF5b3V0LnJlbW92ZVZpZXcodmlld0lkKSwgbGF5b3V0KSk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIHJlZ2lzdGVyUGFydEFjdGlvbihhY3Rpb246IFdvcmtiZW5jaFBhcnRBY3Rpb24pOiBEaXNwb3NhYmxlIHtcbiAgICBhc3NlcnROb3RJblJlYWN0aXZlQ29udGV4dCh0aGlzLnJlZ2lzdGVyUGFydEFjdGlvbiwgJ0NhbGwgV29ya2JlbmNoU2VydmljZS5yZWdpc3RlclBhcnRBY3Rpb24oKSBpbiBhIG5vbi1yZWFjdGl2ZSAobm9uLXRyYWNraW5nKSBjb250ZXh0LCBzdWNoIGFzIHdpdGhpbiB0aGUgdW50cmFja2VkKCkgZnVuY3Rpb24uJyk7XG4gICAgdGhpcy5fcGFydEFjdGlvblJlZ2lzdHJ5LnJlZ2lzdGVyKGFjdGlvbik7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc3Bvc2U6ICgpID0+IHRoaXMuX3BhcnRBY3Rpb25SZWdpc3RyeS51bnJlZ2lzdGVyKGFjdGlvbiksXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgcmVnaXN0ZXJWaWV3TWVudUl0ZW0oZmFjdG9yeUZuOiBXb3JrYmVuY2hNZW51SXRlbUZhY3RvcnlGbik6IERpc3Bvc2FibGUge1xuICAgIGFzc2VydE5vdEluUmVhY3RpdmVDb250ZXh0KHRoaXMucmVnaXN0ZXJWaWV3TWVudUl0ZW0sICdDYWxsIFdvcmtiZW5jaFNlcnZpY2UucmVnaXN0ZXJWaWV3TWVudUl0ZW0oKSBpbiBhIG5vbi1yZWFjdGl2ZSAobm9uLXRyYWNraW5nKSBjb250ZXh0LCBzdWNoIGFzIHdpdGhpbiB0aGUgdW50cmFja2VkKCkgZnVuY3Rpb24uJyk7XG4gICAgdGhpcy52aWV3TWVudUl0ZW1Qcm92aWRlcnMkLm5leHQodGhpcy52aWV3TWVudUl0ZW1Qcm92aWRlcnMkLnZhbHVlLmNvbmNhdChmYWN0b3J5Rm4pKTtcbiAgICByZXR1cm4ge1xuICAgICAgZGlzcG9zZTogKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLnZpZXdNZW51SXRlbVByb3ZpZGVycyQubmV4dCh0aGlzLnZpZXdNZW51SXRlbVByb3ZpZGVycyQudmFsdWUuZmlsdGVyKGl0ID0+IGl0ICE9PSBmYWN0b3J5Rm4pKTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgc3dpdGNoVGhlbWUodGhlbWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGFzc2VydE5vdEluUmVhY3RpdmVDb250ZXh0KHRoaXMuc3dpdGNoVGhlbWUsICdDYWxsIFdvcmtiZW5jaFNlcnZpY2Uuc3dpdGNoVGhlbWUoKSBpbiBhIG5vbi1yZWFjdGl2ZSAobm9uLXRyYWNraW5nKSBjb250ZXh0LCBzdWNoIGFzIHdpdGhpbiB0aGUgdW50cmFja2VkKCkgZnVuY3Rpb24uJyk7XG4gICAgcmV0dXJuIHRoaXMuX3dvcmtiZW5jaFRoZW1lU3dpdGNoZXIuc3dpdGNoVGhlbWUodGhlbWUpO1xuICB9XG59XG4iXX0=